Как стать автором
Обновить

Комментарии 56

«Persistent Memory (или Non-Volatile Memory) – комбинация DRAM с флэш-памятью, которая позволяет избежать потери данных при отключении питания. Поскольку DRAM (модуль DIMM) и NAND «сидят» на шине памяти, данная комбинация работает быстрее, чем флэш-память на карте PCIe. Вместе с тем, она дешевле DRAM DIMM «в чистом виде».»
Я правильно понимаю, что тут говорится, что комбинация модуль 8 ГБ DRAM + модуль 8 ГБ флэш будет стоить дешевле, чем просто модуль 8 ГБ DRAM?
Прошу прощения, утверждение, что новые модули Persistent Memory дешевле, чем обычные модули памяти — неверное. Убрал его из текста.

А модуль Persistent Memory сам уже представляет собой комбинацию DRAM и флэш, на одной плате.
«А модуль Persistent Memory сам уже представляет собой комбинацию DRAM и флэш, на одной плате. „
Можете пояснить, как будет соотноситься стоимость модуля N ГБ DRAM + K ГБ флэш и просто модуля N+K ГБ DRAM?
Поясните что вы подразумеваете под модулем N ГБ DRAM + K ГБ флэш, пожалуйста.
То, что Вы обозначаете как «комбинацию DRAM и флэш, на одной плате» :)
Я подразумеваю, и вся статья посвящена, одному единственному модулю 8 ГБ:

782692-B21 HPE 8GB NVDIMM 1R x4 DDR4-2133 Kit

Это именно DRAM + флэш на одной плате.

С чем бы Вы хотели его сравнить?
Если я правильно понимаю, то на нем 8 ГБ DRAM и 8 ГБ флэша.
Как будет соотноситься его стоимость со стоимостью модуля 16 ГБ DRAM аналогичного класса?
Примерно в 3 раза дороже. И примерно в 3,5 раза дороже модуля 8 ГБ — это сравнение более релевантное, т.к. с модулем NVDIMM системе доступно только 8ГБ памяти в виде блочного устройства хранения.
Тогда получается, что выгоднее купить вдвое больше оперативной памяти и получить производительность «all database in RAM». Будет и быстрее, и дешевле.
А энергонезависимость, имхо, не очень-то и нужна, сервера такого небюджетного класса все равно без UPS-ов обычно не ставят, сохранить изменённые данные они успеют и на обычные диски (SSD/HDD).
Тут дело скорее не в защите как таковой, а в методе, которым она реализуется. Конечно, in-memory вычисления не вчера появились, и как их использовать безопасно все уже научились. Но текущая реализация «сохранить данные на обычные диски» просто на порядок сложнее, чем просто работать с DRAM, не думая вообще что будет если отключится питание. Такой новый подход делает софт сильно проще, а значит в большинстве случаев дешевле на многие тысячи долларов — так что разница в цене окупается с лихвой.
Операция «сохранить данные на обычные диски», может быть, и сложнее, но она уже давно реализована, отлажена и т.д. Она выполняется при получении сигнала от UPS-а.
А в случае с этими новыми модулями еще приходится «строить экосистему», т.е. это расходы, которые, конечно, войдут в стоимость этих модулей и серверов.

Единственный плюс, который я вижу — меньше понадобится времени при включении на прогрев кэшей. Но это величина, имхо, порядка нескольких минут экономии в год.
Стоимость модулей вы уже знаете, стоимость серверов от использования модулей никак не меняется. Экосистему сейчас надо строить только в ту сторону, чтобы больше видов софта научились понимать, что в сервере есть такая память и не делали попыток следить за электропитанием (это если упростить). И она уже во многом готова — у нас есть драйвер для WS (в WS16 — нативный), SDK для Linux (скоро драйверы в ядре), поддержка в SQL Server 16 (в превью). Дальше будет больше. Прогресс не остановить :)
А можете в табличку производительности добавить колонку «Полная стоимость сервера» и еще колонку с производительностью, отнормированной по этой стоимости?
Все-таки не покидает меня ощущение, что последняя строчка с «all database in RAM» окажется выгоднее.
В ту же табличку разрешите полениться вставлять, но вот условные цены в прайс-листе:
конфигурация с 4xSAS 146 GB — 23705
2xSATA SSD 200 GB — 23355
2xNVMe 400 GB — 26275
2xNVMe 400 GB + 2xNVDIMM — 28425

Если сравнивать с 2xSSD — разница в цене 20%, а в производительности — 20 раз :)

Разница с конфигурацией, где мы все держим в памяти по цене на 25%, по производительности в 2,5 раза меньше. Но это все на open source PostgreSQL, где in-memory ничего не стоит. Во всех проприетарных СУБД in-memory как правило стоит заметных дополнительных денег. Ну и вообще мало кто до сих пор решится положить продуктивную базу в энергонезащищенную память, несмотря на отработанные технологии защиты данных :)
Хорошо, ваши модули умеют сохранять информацию если «внезапно» пропадет электричество, а как быть с 9 мегабайтами хлама (половина от 18 мен кеша например) необловленного из кэша процессора? По условиям задачи процессор уже уснул и все забыл. То есть надо при записи данных обязательно писать все сразу в основную память напрямую, иначе будет полная неразбериха после «внезапно отключился». Вы такой сценарий продумывали?
Кэш процессора мы здесь не учитываем и его не зазищаем. Что у нас есть сейчас — блочное устройство, работающее на близком к DRAM уровне производительности. Данные с этого устройства при выключении питания бэкапятся, а потом возвращаются обратно в DRAM. Софт должен уметь этим пользоваться, чтобы получалась какая-то польза.
Вопрос снимается в этой постановке, эти модули проецируются на основную память и «должны» использоваться «только» как физически реализованный RAM-диск со встроенным сохранением. Но кривой софт может там и программу запустить, и данные хранить абы как. В любом случае остается вопрос сохранения данных из мест незащищенных от внезапной пропажи питания.
Софт не сможет запустить там программу, т.к. не увидит этот модуль без драйвера в ОС. А драйвер не даст использовать это пространство для исполнения кода. Защита кэша процессора — да, это другая задача.
Если идет проецирование в адресное пространство процессора, то без защиты со стороны ОС ваши модули будут спроецированы на основное пространство со всеми вытекающими возможностями. Кроме того, если вы пишите про SSD доступ сотни микросекунд (хотя современные позволяют осуществлять IOPS 50 000+ что дает нам «десятки» 20 мкс и меньше), то и про свою память пишите что к ней можно получить доступ со скоростью десятки наносекунд а не единицы. Для динамической памяти скорость случайного доступа держится сейчас в районе 10-13 нс вроде, плюс время передачи пакета, для аналога ddr4 3200 это будет «0,3 нс» * «512 байт» / «8 размер слова» = 20 нс итого около 30 нс.
«Упрощенно говоря, это энергонезависимая память с производительностью оперативной памяти.»
Такого просто быть не может время изменения состояния ячейки Flash всегда больше времени закрытия/открытия транзистора. Но есть одно но — ресурс Flash памяти всегда ниже ресурса RAM из-за ограничения циклов перехаписи (Flash). И это обеспечивает стабильный рынок сбыта для компаний из-за частого выхода из строя таких устройств.

В скором будущем:
— RAM которая имеет ограничение количества циклов перезаписи.
— Рубашка, которая распадается после истечении оплаченного времени.

— Голова, которая отваливается по истечении оплаченого времени пользования мозгом.
Вы просто не обратили внимание на описание технологии. Модуль Persistent Memory — это модуль DRAM DDR4 + размещенная на той же плате энергонезависимая флешка. Она используется в том случае, если пропадает питание или происходит другой сбой, который требует защиты данных в памяти. В этом случае с помощью батарейки данные копируются из чипов DRAM на флешку.
Без разницы.
Окей. Только на данный это вещь-в-себе. DRAM — далеко не вся энергозависимая память, физически присутствующая в современных пк. Как возникающие проблемы с прочим оборудованием будем решать?
При цене в $899 за 8Gb планку памяти, сей чудный девайс в массы ещё долго будет добираться.
Ну как сказать. На тестовом сервере с PostgreSQL, стоимостью в прайс-листе около 30k USD мы достигли результатов, о которых раньше можно было думать только с системой на порядок (а то и больше) дороже. Так что в массы, конечно, решение дойдет не завтра, но интерес определенно есть :)
Это просто 8 ГиБ DRAM + 8 ГиБ Flash + запас энергии?

Только не говорите что это вместо давно обещанной памяти на мемристорах, пожалуйста.
Запас энергии идет отдельно — модуль питается от той же батарейки, что и кэш контроллера Smart Array.

Ну и конечно это не вместо мемристоров — это только предвестник. Технология для прокладывания дороги, доработки софтовой экосистемы. Но технология эта сама по себе уже достойна внимания.
К слову, небольшой конкурс — флешка (обычная USB-флешка :) ) в подарок тому, что первым определит модель самолета по силуэту:

http://www8.hp.com/us/en/products/servers/qualified-options/persistent.html

На Су-27 похож.
Уж очень напоминает Су-27 и машины с тем же планером — Су-30 и Су-35.
F16
У F-16 один двигатель.
И, кстати, передайте отдельное «спасибо» тому, кто воткнул картинку размером 6671*2283 пикселей на веб-страничку.
А вдруг вы с 4K монитора захотите посмотреть этот сайт :) Размер картинки, тем не менее, всего 80 КБ. Но спасибо за замечание, наш сайт мы улучшать любим.
Заранее извиняюсь за оффтоп, не хочется сделать это веткой авиафорума :) Большинство экспертов (в т.ч. в NASA :) ) утверждают, что это силуэт Су-27. Значит наш победитель — miksoft! Ура! :)

Но конечно никакого умысла в выборе картинки нет, просто дизайнерам силуэт показался очень динамичным (еще бы! :) ).
Справедливости ради, phprus дал более полный ответ и совсем незначительно позже :)
Предлагаю приз передать ему.
Спасибо!

Tigger, а для miksoft у Вас случайно нет сувенира, так как его ответ по сути тоже верный, а написаны они были нами одновременно?
Su-27 Flanker
Дешевый способ накрутить просмотры?
Просто намекают на цену.
А как это выглядит с точки зрения системного программиста?
Я же правильно догадываюсь, что есть некий драйвер, позволяющий отобразить в виртуальное адресное пространство процесса регион из данной персистентной памяти, и где то сохранить это отображение, так что после рестарта приложение может «подобрать» этот регион с сохраненными ранее данными?
Запись в данную память ведь происходит в обход кешей CPU?

А пока эти технологии добираются в массы — вполне можно обойтись быстрым сливом оперативки в SSD + бесперебойник. И вроде как софт для UPS умеет в гибернацию комп отправлять, а потом загружать с того же места всё. Меня вот печалят только бесперебойники, куча преобразований, сперва с 12 на 220, потом с 220 на 12 и 5 и 3, хотя можно было бы сделать UPS размером с CD-ROM и подключать его как промежуточные штекеры между разъемами на материнке и приводах, может быть тогда можно было достичь компактности и автономности как на ноутбуках.
Оптимально 220 преобразовать в 4 по 10,5/13,4 В (около 48 вольт) а уже с аккумуляторов выдавать на питания ЭВМ.
48 вольт постоянного тока относительно безопасно если на язычок не пробовать и КЗ не кидать и избавляемся от потерь при лишнем преобразовании, ну и средний ток около 10 ампер на нагрузку около 500 ватт вполне приемлем вместо 40-50 ампер с 12-и вольт.
Подскажите пожалуйста, эта гибридная ОЗУ, может быть как блочное устройство?
Да, сейчас она только так и используется.
И всё-таки HPE хоронит ленту — https://habrastorage.org/files/f1a/135/9cd/f1a1359cdde844e5985182928adb9512.png
Там просто обрезался низ картинки:

image
И тем не менее в новой иерархии хранения, которую предлагает HPE, для ленты места не нашлось.
Нашлось — я же показал. А вообще это просто картинка, не имеющая к судьбе лент никакого отношения. Мы сравнительно недавно запустили у себя LTO-7 и активно предлагаем ленты заказчикам.
Вот текст вашего поста. Где тут место для ленты?

«Справа – новые устройства хранения. Иерархия выглядит так:

Tier 0 = NVDIMM, задержка – наносекунды.
Tier 1 = PCIe SSD и PCIe Workload Accelerators (флэш-память NAND на SAS/SATA или на шине PCIe), задержка 100 микросекунд.
Tier 2 = SAS HDD (высокопроизводительные диски), задержка десятки миллисекунд.
Tier 3 = SATA HDD (диски большой емкости), задержка сотни миллисекунд.»
В двух словах пост про NVDIMM, это RAM disk + аппаратная защита данных от потери питания.
Не только. Пост про NVDIMM, это RAM disk + аппаратная защита данных от потери питания + интеграция с ОС и софтом, чтобы софт не боялся работать с RAM disk.
По большому счету:
Интеграция с ОС — это драйвера как у любого программного RAM диска.
Интеграция с софтов — это тюнинг софта. Чтобы он не использовал кэширование на всех уровнях.
Так?
Интеграция с ОС — да, драйверы, которые могут презентовать этот диск системе, как блочное устройство. Летом драйверы войдут в стандартную поставку WS16, чуть позже в ядро Linux.
Софт — тоже да.
И это уже готово, это не планы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий