Не знаете, как использовать SSD Intel Optane DC в качестве дополнительной оперативной памяти с IMDT?

Я немного запутался в Intel Optane DC. Я хочу, чтобы мой Optane DC мог работать как с DRAM, так и с хранилищем. С одной стороны, я понял, что только «Intel Optane DC Persistent Memory DIMM» может работать как DRAM. Это потому, что у него есть 2 режима (режим памяти и режим App-Direct). С другой стороны, по этой ссылке: https://www.intel.com/content/www/us/en/products/docs/memory-storage/solid-state-drives/optane-ssd-dc-p4800x-mdt-rief.html Я прочитал, что «вместе DRAM и твердотельные накопители Intel® Optane ™ с технологией Intel® Memory Drive имитируют единый пул энергозависимой памяти». Я сбит с толку, может ли твердотельный накопитель Intel Optane DC работать как DRAM или только DIMM с постоянной памятью Intel?


person Yoni Goikhman    schedule 02.10.2019    source источник


Ответы (1)


Да, вы можете использовать P4800x с программным обеспечением Intel IMDT (Intel Memory Drive Technology), чтобы создать иллюзию большего объема оперативной памяти, используя Optane DC SSD в качестве места подкачки. Это то, что вам нужно. IMDT устанавливает гипервизор, который дает ОС иллюзию DRAM + SSD в качестве физической памяти, вместо того, чтобы просто позволить ОС использовать ее как пространство подкачки в обычном режиме.

По-видимому, это хорошо работает, когда у вас уже достаточно физической ОЗУ для большей части вашего рабочего набора, а IMDT имеет интеллектуальные алгоритмы предварительной выборки, которые пытаются выполнить подкачку до того, когда страница понадобится.

Одним из преимуществ запуска ОС под гипервизором IMDT вместо использования SSD в качестве пространства подкачки является то, что он заставит ОС использовать часть этого дополнительного пространства для кеширования страниц (также известного как кеширование диска), вместо того, чтобы использовать специальный код (некоторые из) SSD в качестве кеша для более медленного диска.


Но нет, это не постоянная память Optane DC, это что-то еще.

См. также ответ суперпользователя , чтобы узнать больше о Optane и Optane DC PM. И Хади Брайс добавил к нему несколько хороших разделов о IMDT для Optane SSD.

P4800x подключается через PCI-express (как вы можете видеть на рисунках на https://www.anandtech.com/show/11930/intel-optane-ssd-dc-p4800x-750gb-handson-review). Так что это не NV-DIMM; вы не можете вставить его в гнездо DIMM и получить доступ к нему ЦП по шине памяти. Форм-фактор не DIMM.

Что касается оборудования, у бренда Optane есть 3 вещи:

  • Твердотельные накопители Optane потребительского уровня. Просто быстрый PCIe NVMe, использующий память 3D XPoint вместо флэш-памяти NAND.

  • Корпоративные твердотельные накопители Optane DC. Просто быстрый PCIe NVMe с памятью 3D XPoint. Не принципиально отличается от потребительских товаров, только быстрее и потребляет больше энергии. P4800x это такой.

    Расширение функциональности ОЗУ здесь - это чистое программное обеспечение, довольно похожее (и, возможно, хуже), чем просто создание на нем раздела подкачки и разрешение ОС обрабатывать его подкачку. Особенно, если вы еще не использовали виртуализацию.

  • Enterprise Optane DC Постоянная память (сокращенно PM). Память 3D XPoint, которая действительно отображается (аппаратно) в физическое адресное пространство для доступа с помощью обычных инструкций загрузки / сохранения, без использования драйвера для каждого чтения / записи. например Linux mmap(MAP_SYNC) и использование clflush или clwb asm-инструкций в пользовательском пространстве для фиксации данных в постоянном хранилище.

    Однако PM по-прежнему медленнее, чем DRAM, поэтому, если вам просто нужна энергозависимая память, вы все равно можете использовать ее в качестве пространства подкачки, например IMDT. Одним из ключевых вариантов использования DC PM является предоставление базам данных возможности сохранять в постоянном хранилище без прохождения через ОС. Это позволяет выполнять внеочередное выполнение операций ввода-вывода, а также значительно снижает накладные расходы. .

См. Такие статьи, как https://www.techspot.com/news/79483-intel-announces-optane-dc-persistent-memory-dimms.html, что ставит постоянную память Optane DC выше Optane DC в классической пирамидальной иерархии хранения.

AFAIK, устройства Optane DC PM существуют только в форм-факторе DIMM, а не PCIe (и используют что-то вроде сигнализации DDR4). Это требует специальной поддержки со стороны ЦП, поскольку современные ЦП интегрируют контроллер памяти.

Теоретически у вас может быть устройство PCIe, которое предоставляет некоторое постоянное хранилище в области памяти PCIe. Они являются частью физического адресного пространства и могут быть настроены как кэшируемые с обратной записью. (Или они могут? Отображение обратной записи региона MMIO не работает) Таким образом, они могут быть отображены в памяти в виртуальное адресное пространство пользователя. Но я не думаю, что существуют какие-либо устройства с постоянной памятью PCIe Optane DC, вероятно, потому, что задержка команд PCIe (намного) выше, чем по шине DDR4. Пропускная способность также ниже. Таким образом, имеет смысл использовать его как пространство для быстрой подкачки (копирование на всю страницу), а не как кэшируемую физическую память с обратной записью, из-за которой промахи в кэше могут ждать очень долгое время.

(Маргарет Блум также комментирует, что размер блока записи может быть проблемой.)

то есть вам не нужна горячая часть вашего рабочего набора в памяти, к которой ЦП обращается по шине PCIe. Вы, вероятно, даже не хотите этого для Optane DC PM.


Optane / 3D XPoint - это всегда постоянное хранилище; Это зависит от программного обеспечения, воспользуетесь ли вы этим преимуществом или просто используете его как более медленную энергозависимую оперативную память.

Это не буквально DRAM, который имеет особое техническое значение (динамический = данные, хранящиеся в крошечных конденсаторах, которые необходимо часто обновлять). 3D XPoint не является динамичным и даже не изменчивым. Но вы можете использовать его как эквивалент, потому что память 3D XPoint имеет очень хорошую стойкость к записи (она не изнашивается, как флэш-память NAND). Если люди говорят об использовании Optane в качестве дополнительной памяти DRAM, они используют этот термин для обозначения энергозависимой оперативной памяти, выполняя ту же роль, которую выполняет DRAM традиционно.

person Peter Cordes    schedule 02.10.2019
comment
Я думаю, что OP заинтересован в Optane DC PM, но когда они его посмотрели, в результатах поиска обнаружился P4800x, который является SSD, а не PM, что привело к путанице. Термины Optane DC PM, Apache Pass и 3D XPoint не являются синонимами. Optane DC PM - это торговая марка модулей постоянной памяти, совместимых с DIMM. Apache Pass - это особый дизайн, представляющий первое поколение Optane DC PM. Это похоже на сравнение бренда Intel Core с микроархитектурой. 3D XPoint - это технология памяти, используемая в продуктах Optane DC PM и SSD. - person Hadi Brais; 02.10.2019
comment
Будущие поколения Optane DC PM и SSD были описаны Intel в эти слайды. - person Hadi Brais; 02.10.2019
comment
@HadiBrais: Значит, ни одно из их устройств PCIe не поддерживает отображение аппаратной памяти? Это просто быстрая подкачка NVMe + какой-то софт морочить ОС? Только PM действительно помещает хранилище в физическое адресное пространство? (И, кстати, в своем ответе я попытался использовать 3D XPoint, когда говорил конкретно о технологиях, используемых для ячеек памяти, а не только о продуктах, построенных из них. Но меня одурачили DC vs. DC Persistent Memory.) - person Peter Cordes; 02.10.2019
comment
Правильно, SSD-накопители Optane не доступны через ввод-вывод с отображением памяти (но файлы, безусловно, могут быть отображены в памяти, аналогично файлам жесткого диска). Напротив, к ПК Optane можно получить доступ, как к памяти DRAM, с помощью операций загрузки и сохранения. Я думаю, что ответ, на который вы ссылаетесь, уже говорит об этом. Ответ там просто неверно говорит о том, что Optane DC PM и Apache Pass являются синонимами. - person Hadi Brais; 02.10.2019
comment
@HadiBrais: Ах, спасибо за это исправление для моего ответа SuperUser, обновится. Значит, нет устройств PCIe Optane DC PM, которые открывают пространство физической памяти PCIe, только NVMe? В любом случае, mmap блочных устройств в виртуальном адресном пространстве не имеет значения и отвлекает внимание в этом контексте. Как вы знаете, mmaping файла (без MAP_SYNC) просто копирует в RAM и подделывает его с помощью программного обеспечения (ошибки страниц и грязный бит таблицы страниц). Интересной частью является отображение хранилища в физическое адресное пространство, что позволяет осуществлять постоянную фиксацию без взаимодействия с ОС. - person Peter Cordes; 02.10.2019
comment
Немного запутался. Меня не волнует скорость, мне просто нужна возможность работать как RAM. Сможет ли SSD это сделать? Если да, то основное различие между SSD и DIMM - это скорость и форм-фактор? Главное, что меня беспокоит, - это способность системы (с использованием SPDK) видеть его как RAM, даже если это использует программные уловки, а не является истинной DRAM. Эта статья: arstechnica.com/gadgets/2018/05/ представляет возможность использования его в качестве DRAM как чего-то особенного. Что мне не хватает? - person Yoni Goikhman; 02.10.2019
comment
Я отредактировал ваш ответ SuperUser, чтобы добавить дополнительную информацию. - person Hadi Brais; 02.10.2019
comment
@YoniGoikhman Да, постоянная память Intel Optane DC может это сделать. вы просто путаете две очень разные вещи: Optane DC PM и Optane DC SSD - это разные продукты с разными целями. Тоже тебе вопрос непонятен. Сначала вы сказали, что меня не волнует скорость, а затем спросите, является ли основное различие между SSD и DIMM скоростью. В любом случае, твердотельные накопители не будут отображаться как ОЗУ для ОС или любого приложения, если вы не используете IMDT, что обсуждается в связанном ответе. - person Hadi Brais; 03.10.2019
comment
@HadiBrais: Спасибо за редактирование SU. Рецензенты отклонили его, но я все же смог утвердить его вручную после того, как факт. - person Peter Cordes; 03.10.2019
comment
@HadiBrais Спасибо, я думаю, что IMDT - это то, что я искал. Мне нужно, чтобы он работал как запоминающее устройство, так и DRAM. Насколько я понимаю, если объединить SSD и IMDT, SSD сможет работать как RAM? Мне не нужна полная скорость ОЗУ, только его возможности и функциональность, когда это необходимо. - person Yoni Goikhman; 03.10.2019
comment
@YoniGoikhman: да, IMDT, по-видимому, является гипервизором, который использует SSD в качестве пространства подкачки для создания виртуальной машины, которая выглядит так, как будто у нее много оперативной памяти. IDK, почему это лучше, чем позволить ОС сделать это; возможно, Intel считает, что у них есть лучшие алгоритмы, и / или это вне каких-либо виртуальных машин по сравнению с наличием ОС внутри виртуальных машин, выполняющих подкачку. - person Peter Cordes; 03.10.2019
comment
Я думаю, потому что Intel не хочет делать IMDT с открытым исходным кодом, и они намерены поддерживать свои твердотельные накопители только для их продвижения. @YoniGoikhman Если это ответ на ваш вопрос, подумайте о том, чтобы проголосовать за и принять ответ. В противном случае уточните свой вопрос, отредактировав его. - person Hadi Brais; 03.10.2019
comment
@HadiBrais: Хороший аргумент в пользу открытого исходного кода и ограничения его собственными твердотельными накопителями. Но что делает IMDT такого, чего операционные системы еще не делают с разделами подкачки? Только собственные алгоритмы предварительной выборки / замены? то есть я говорю, что IMDT вообще не нужно существовать, за исключением маркетинговой точки зрения, согласно которой он работает как RAM. (Или IDK, если гипервизоры, такие как Xen, могут выполнять разбиение на страницы виртуальных машин. Динамическое совместное использование всего SSD в гипервизоре лучше, чем предоставление каждой виртуальной машине раздела подкачки) - person Peter Cordes; 03.10.2019
comment
Согласованный. Я думаю, что IMDT можно полностью реализовать в ОС. Это даже устранило бы необходимость и накладные расходы на виртуализацию. Также IMDT кажется, требует нетривиального объема настройки, который, возможно, можно было бы минимизировать, если бы он был реализован в ОС. - person Hadi Brais; 03.10.2019
comment
@HadiBrais: значительно обновил этот ответ, удалив мое неправильное предположение о регионах памяти PCIe. Если подумать, то у IMDT будет преимущество, заключающееся в том, что ОС будет использовать больше кэша страниц, то есть использовать Optane SSD для кэширования основного хранилища. Операционные системы обычно не делают этого с разделом подкачки / файлом подкачки. Не уверен, насколько это актуально для корпоративных рабочих нагрузок, особенно когда к нему нужно получить доступ путем подкачки в DRAM, а затем чтения оттуда. - person Peter Cordes; 03.10.2019
comment
Насколько я понимаю, существуют устройства, которые выставляют себя как постоянный диапазон MMIO, но не бесплатно. В спецификациях NVDIMM и ACPI это называется режимом BLK (блочный). Я не уверен, но подозреваю, что запись одного слова все еще невозможна с PM (особенно если он огромен), поэтому требуется промежуточный буфер и некоторая координация. Optane DC PM имеет все на борту и не требует какой-либо координации со стороны программного обеспечения (хотя интерфейс DDR-T, используемый HW, не документирован и может выполнять некоторую координацию?), Но другие устройства имеют явные отверстия для отображения данных и команд. . - person Margaret Bloom; 03.10.2019
comment
@MargaretBloom: если ваше постоянное хранилище MMIO подключено к кэш-памяти с обратной записью, вы будете фиксировать 64-байтовые строки с clflushopt или clwb. Я думаю, что это ожидаемый режим использования, хотя, поскольку вы упомянули об этом, я предполагаю, что некэшируемый, WC или даже WT могут быть вариантами. Я думаю, что 3D XPoint имеет внутреннюю побайтовую адресацию, но IDK касается протокола команд шины. В моем ответе меня интересовало, существуют ли какие-либо устройства (Intel), которые предоставляют постоянный диапазон MMIO через PCIe, а не через DDR-T. Тем не менее, спасибо за дополнительную информацию о спецификациях реальных модулей NV-DIMM. - person Peter Cordes; 03.10.2019
comment
Это может быть возможно (см. Ссылки здесь). Но я думаю, что само устройство ввода-вывода должно быть спроектировано так, чтобы обрабатывать мелкозернистый доступ (например, 64-байтовую гранулярность). Обычно это поддерживается для команд устройства, отправляемых драйвером для передачи блоков данных, но не для прямого доступа к данным. В противном случае единственная альтернатива - эмуляция, подобная IMDT. - person Hadi Brais; 03.10.2019
comment
Я больше думал о 1–4 КБ для страниц PM, если они делятся чем-нибудь с обычными устройствами NV (например, флэш-ПЗУ). В личку пока не копался, только гипотезу высказываю. Я действительно не знаю, как работают блочные (согласно спецификации) устройства :) Однажды я лучше взгляну на спецификацию и, надеюсь, таблицу данных. - person Margaret Bloom; 04.10.2019
comment
@MargaretBloom: Я так понимаю, что 3D XPoint действительно можно читать / писать с высокой степенью детализации, в отличие от больших блоков записи / стирания во флеш-памяти. Наряду с высокой стойкостью к записи (которая может сделать ненужным слой выравнивания износа / переназначения?) И высокой производительностью, это ключевая часть того, что делает его пригодным для использования в качестве NV-хранилища с отображением в память. pcper.com/2017/06/how-3d -xpoint-phase-change-memory-works говорит, что перезапись одного бита возможна без нарушения соседних ячеек. Его буквально не нужно стирать перед записью. - person Peter Cordes; 04.10.2019
comment
@PeterCordes Это действительно так. Очень классная ссылка, спасибо! - person Margaret Bloom; 04.10.2019