Энергонезависимая память (PMEM): что это такое и как ее использовать

Последнее обновление: 02/12/2025
Автор: Исаак
  • Постоянная память (PMEM) создает новый уровень между DRAM и SSDсочетая низкую задержку с хранение нелетучий.
  • Он может функционировать как расширенная память или как сверхбыстрое хранилище в режимах App Direct, DAX, vPMem и vPMemDisk.
  • В Windows Linux и vSphere интегрируется как кэш, логический диск или виртуальный NVDIMM для ускорения базы данных и критические нагрузки.
  • Его ценность заключается в стратегических применениях, где скорость, устойчивость и емкость компенсируют более высокую стоимость по сравнению с NVMe.

Постоянная память PMEM

Постоянная память или PMEM Это одна из тех концепций, о которых все говорят, когда речь заходит об экстремальной производительности, базах данных в оперативной памяти или расширенной виртуализации. Это не просто «новый тип оперативной памяти» или «новый тип диска»: это новый уровень в иерархии памяти и хранения данных, сочетающий в себе лучшее из обоих миров.

Понимание того, что такое постоянная память, как она работает и чем отличается от других типов памяти. Понимание принципов работы традиционных DRAM, NVMe SSD и облачных хранилищ — ключ к принятию обоснованных технических решений. В этой статье мы подробно рассмотрим эту концепцию, рассмотрим режимы её использования (память, App Direct, vPMem, vPMemDisk и т. д.), её интеграцию с Windows, Linux, vSphere и контейнерными средами, а также реальные примеры использования и ограничения.

Что такое постоянная память (ПМЭМ или PMem)?

Постоянная память Это тип среды энергонезависимое хранилище Физически он поставляется в виде модуля DIMM, то есть устанавливается в стандартные слоты памяти сервера вместе с DRAM. В отличие от традиционной оперативной памяти, он сохраняет своё содержимое даже после выключения, перезагрузки, отключения питания или сбоя системы.

Его поведение находится на полпути между памятью и хранилищем.Он медленнее, чем чистая DRAM, но гораздо быстрее и с меньшей задержкой, чем SSD, даже NVMe. При установке в шина памятиДанные находятся гораздо ближе к процессору, чем в любом традиционном устройстве хранения данных, поэтому доступ измеряется в наносекундах, а не микросекундах или миллисекундах.

Модули постоянной памяти Они обладают гораздо большей ёмкостью, чем DRAM (распространённые размеры — 128 ГБ, 256 ГБ и 512 ГБ на модуль), и значительно более низкой стоимостью за гигабайт, чем ОЗУ, хотя всё ещё выше, чем у NVMe SSD. Именно поэтому они используются как промежуточный вариант: позволяют значительно расширить хранилище без полной стоимости чистой DRAM, а также обеспечивают более высокую скорость по сравнению с традиционными хранилищами.

Еще один ключевой момент — настойчивость.Данные сохраняются даже при контролируемом отключении системы или из-за сбоя питания. Это позволяет использовать PMEM в качестве чрезвычайно быстрое хранение для критических структур (метаданные, таблицы распределения, базы данных в памяти, бревна (транзакций и т. д.).

Основы PMEM и режимы доступа

Постоянная память не используется так же, как обычная оперативная память.В зависимости от операционной системы и платформы, она может быть представлена ​​как блочное хранилище, как память с байтовой адресацией или как гибрид того и другого. Здесь вступают в действие несколько фундаментальных концепций.

Методы доступа в Windows и Linux PMEM обычно делятся на два основных семейства:

  • Блокировать доступгде PMEM ведет себя как «классическое» устройство хранения данных, проходящее через файловую систему и стек хранения.
  • Прямой доступ (тип DAX), где он представлен как память с байтовой адресацией, что позволяет избежать использования значительной части стека хранения и дополнительно сократить задержку.

В режиме блочного доступаPMEM можно отформатировать с помощью таких файловых систем, как NTFS ReFS в Windows или EXT4/XFS в Linux используется как сверхбыстрый диск. Этот режим рекомендуется, когда требуются совместимость и простота, особенно для служб, не оптимизированных специально для энергонезависимой памяти.

В режиме DAXПриложение обращается к данным, напрямую отображая постоянную память в своё адресное пространство. Доступ осуществляется к памяти, а не к блоку, что обеспечивает минимальную задержку. Однако при неправильном программировании и настройке существует риск потери данных в случае неполной записи, поэтому сочетание DAX с такими механизмами, как... Таблица перевода блоков (BTT) или блокировать таблицы перевода.

Регионы, пространства имен и PmemDisk

Физические модули PMEM Ими редко управляют по отдельности из операционной системы. Обычно их группируют для повышения производительности, емкости или упрощения администрирования, и здесь задействовано несколько концепций.

Постоянная область памяти Это набор из одного или нескольких сгруппированных модулей, часто конфигурируемых в BIOS или UEFI сервера. Они часто образуют чередующийся набор, так что последовательные адреса памяти распределяются между несколькими модулями для увеличения доступной пропускной способности.

На таких платформах, как Windows Server и Azure LocalЛогические диски называются PmemDiskPmemDisk — это просто непрерывный диапазон адресов энергонезависимой памяти, который представляется системе так, как если бы это был дисковый накопитель или LUN.

Каждый модуль постоянной памяти содержит область хранения тегов. (область хранения меток, LSA), где хранятся метаданные конфигурации (пространства имен, членство в регионе и т. д.). Такие инструменты, как командлеты из PowerShell (Get-PmemDisk, Get-PmemPhysicalDevice, Get-PmemUnusedRegionи т. д.) позволяют увидеть, какие физические модули участвуют в каждом PmemDisk, проверить их состояние, а также создать или удалить логические диски постоянной памяти.

В средах ESXi/vSphereИдея та же, но терминология меняется: мы говорим о Пространства имен PMem Гипервизор обнаруживает эти тома и объединяет их в логические тома с помощью таблиц GPT. Затем эти тома монтируются как хранилища данных PMem, которые впоследствии предоставляются виртуальным машинам как vPMem или vPMemDisk.

  Типы приложений

Таблица трансляции блоков (BTT) и безопасность данных

Тонкая деталь сравнения PMEM и SSD Проблема в том, что модули постоянной памяти не включают в себя тот же тип защиты от «частичной записи», как стандарт. разорванные записи которые мы можем найти на многих деловых флеш-накопителях.

В случае отключения электроэнергии или сбоя системы Прямо в процессе записи может произойти запись новых данных, в то время как старые данные останутся, что приведёт к несогласованности секторов. Для снижения этого риска используется следующее: Таблица перевода блоков (BTT), слой, который предлагает атомарную семантику обновления секторов.

BTT действует как переводчик между логическими и физическими адресами И это гарантирует, что для приложений операции записи будут выглядеть как «традиционные блочные»: они либо завершатся полностью, либо останутся незамеченными. Включение BTT настоятельно рекомендуется как в режиме блочного доступа, так и в режиме DAX, особенно учитывая, что даже при доступе к данным приложения с использованием семантики памяти метаданные файловой системы по-прежнему используют блочную модель.

В Windows BTT является свойством PmemDiskПоэтому его необходимо включить во время его создания (например, с помощью New-VHD ... -AddressAbstractionType BTT) или преобразовать существующий жесткий диск в BTT с помощью Convert-VHDПосле преобразования желательно заново сгенерировать идентификатор пространства имен с помощью Set-VHD -ResetDiskIdentifier чтобы избежать конфликтов, если оба диска находятся на одной виртуальной машине.

Аппаратное обеспечение постоянной памяти: NVDIMM и Optane

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

  • NVDIMM-NМодули, объединяющие DRAM и NAND-флеш-память с резервным питанием от батареи или суперконденсаторов. При включении питания данные загружаются в DRAM; при выключении или потере питания данные записываются во флеш-память.
  • Intel Энергонезависимая память Optane DC (DCPMM): модули на основе технологии 3D XPoint, разработанные для обеспечения задержек, близких к оперативной памяти, и емкости, значительно превосходящей DRAM.

В Windows Server 2016 и 2019, Azure Local и других платформахПоддержка этих модулей различается в зависимости от версии, но общая идея одна и та же: их можно использовать как чистую постоянную память (App Direct) или как «расширенную» память (режим памяти).

Optane DC PMem поддерживает три основных режима работыкоторые обычно настраиваются в BIOS сервера:

  • Режим памятиPMEM выполняет функцию основной памяти высокой ёмкости, а DRAM используется как быстрый кэш для наиболее часто используемых данных. В этом режиме память ведёт себя как энергозависимая: при отключении питания данные теряются.
  • Режим прямого доступа к приложениюPMEM представляет собой постоянную энергонезависимую память, доступную операционной системе в виде областей хранения или памяти с байтовой адресацией. Это идеальный режим для баз данных в оперативной памяти, сверхбыстрых хранилищ и рабочих нагрузок, требующих сохранения данных.
  • Смешанный режимЧасть модуля зарезервирована для режима памяти, а другая часть — для App Direct, что позволяет сбалансировать расширенный объем энергозависимой памяти и постоянное хранилище.

Важно не путать «Режим памяти» с DAX.Режим памяти рассматривает PMEM как более медленную оперативную память и теряет настойчивостьDAX, тогда как это режим доступа к постоянным томам, которые сохраняют данные между перезагрузками.

PMEM в средах виртуализации (vSphere и ESXi)

В vSphere постоянная память поддерживается с версии 6.7. и более поздние версии. В этих средах модули PMEM хоста представляют собой высокоскоростное локальное хранилище данных, которое виртуальные машины могут использовать двумя способами.

vPMem (виртуальная постоянная память) PMEM представляет гостевую операционную систему как виртуальный NVDIMMС точки зрения виртуальной машины, похоже, что хост имеет физические модули NVDIMM, позволяющие гостевой операционной системе и приложениям получать доступ к постоянной памяти в режиме байтовой адресации.

vPMemDisk (виртуальный постоянный диск памяти) Работает иначе: постоянная память представлена ​​как виртуальный SCSI-диск, содержимое которого физически хранится в хранилище данных PMem хоста. Эта опция очень полезна для старых операционных систем или приложений, работающих только с дисками.

Резервирование PMEM для виртуальной машины Это происходит при создании диска vPMem или добавлении устройства vNVDIMM, и он остаётся зарезервированным для этой виртуальной машины независимо от того, включена она или выключена, до тех пор, пока не будет удалён или перенесён. В кластерах общий объём PMEM, потребляемый всеми виртуальными машинами, не может превышать общий объём, доступный в пуле хостов.

Относительно высокой доступности и миграцииЕсть несколько нюансов: виртуальную машину с vPMem можно мигрировать только на хост, на котором также доступен PMEM, тогда как виртуальную машину с vPMemDisk можно переместить на хост без PMEM, если диск реплицирован или перемещен в другой тип хранилища с помощью Storage vMotion.

Важным моментом является то, что PMEM — это локальное хранилище. к хозяину, и решения резервная копия Методы репликации, основанные на традиционных хранилищах, могут работать некорректно. Более того, в случае серьёзного сбоя хоста возможна потеря данных, если не реализована соответствующая стратегия защиты.

PMEM на Windows Server, Azure Local и Storage Spaces Direct

Windows Server 2019 и Azure Local интегрировать постоянную память с Прямые дисковые пространства (S2D)Это базовая технология SDS (программно-определяемого хранилища) в этих средах. Здесь PMEM может играть роль сверхбыстрый уровень кэша для остальных подразделений.

  Моноблок, ноутбук или настольный ПК: какой компьютер выбрать?

Storage Spaces Direct понимает четыре основных типа дисковPMem, NVMe, SSD и HDD. В зависимости от комбинации система автоматически настраивает, какой тип диска будет использоваться для кэширования, а какой — для хранения, следуя иерархии: PMem > NVMe > SSD > HDD.

Некоторые типичные комбинации::

  • PMem + NVMe + HDD: PMem как верхний кэш, NVMe и HDD как емкость.
  • NVMe + SSD: NVMe как кэш только для записи для SSD.
  • SSD + HDD: SSD как кэш для чтения/записи для HDD.

Когда кэш расположен над флэш-накопителями (например, NVMe на SSD), он настроен в режиме только писатьОперации чтения выполняются непосредственно с блоков емкости, поскольку их задержка уже очень низкая, и, таким образом, кэш можно выделить для консолидации операций записи и снижения износа.

Когда кэш находится выше HDD, действует в режиме Чтение и письмоОн сохраняет частые операции чтения, чтобы избежать случайного доступа к механическому диску, и поглощает пакеты записей, переупорядочивая операции таким образом, чтобы они достигали дисков в максимально последовательной последовательности.

В сценариях со смешанным использованием NVMe, SSD и HDDНакопители NVMe обычно служат кэшами как для SSD (только запись), так и для HDD (чтение и запись). Система динамически связывает кэш-накопители с накопителями ёмкости в соотношении 1:N и перераспределяет распределение при добавлении или удалении накопителей.

Если выходят из строя кэш-накопители PMem или NVMeДанные, которые еще не загружены в блоки памяти, теряются. только на этом сервереОднако избыточные копии на других узлах кластера (например, в конфигурации тройного зеркала) позволяют Storage Spaces Direct автоматически перестраивать информацию.

Постоянная память в Linux (пример: Red Hat Enterprise Linux)

В корпоративных средах Linux, таких как RHELPMEM обычно представлен в виде устройств /dev/pmemX или как устройства NVDIMM, управляемые через инструменты ядра (например, ndctl).

Red Hat и другие дистрибутивы разрешить использование модулей NVDIMM в качестве:

  • Блочное хранилище традиционный, отформатированный в EXT4, XFS и т. д.
  • Память с байтовой адресацией в режиме DAX, монтирование файловых систем с прямой поддержкой на устройствах pmem.
  • Системное корневое устройствоустановка самой операционной системы на NVDIMM для значительного сокращения времени загрузки Загрузка.

Так же как в Windows, мы говорим о памяти класса хранения (SCMЭтот термин относится к категории устройств, объединяющих хранилище и память. К распространённым вариантам использования относятся чрезвычайно требовательные базы данных, высокопроизводительные кэши, очереди сообщений и системы, требующие минимизации накладных расходов. El Tiempo восстановление после перезагрузки.

PMEM против DRAM, SSD, HDD и NVMe

Чтобы полностью понять ценность PMEM Стоит сравнить его с технологиями, которые мы уже используем ежедневно.

Динамическое ОЗУ Это самая быстрая универсальная память для сервера, но также и самая дорогая в пересчёте на гигабайт, и она полностью энергозависима. Типичные размеры модулей DIMM (16, 32, 64, 128 или 256 ГБ) растут в цене по мере увеличения ёмкости, что ограничивает количество устанавливаемых модулей, прежде чем стоимость станет чрезмерно высокой.

SSD и NVMe Они обеспечивают гораздо более высокую, чем жёсткие диски, надёжность и производительность, но всё же являются устройствами хранения, «удалёнными» от процессора: они подключаются через SATA, SAS или PCIe, а не через шину памяти. Время доступа у них, хоть и хорошее, всё же не дотягивает до показателей PMEM, которая по поведению ближе к оперативной памяти.

HDD Они по-прежнему выигрывают по стоимости за терабайт и чистой ёмкости, но их задержка и производительность случайных операций значительно отстают от DRAM и PMEM. Поэтому в современных архитектурах они резервируются для слоёв холодных данных и размещаются ниже слоёв флэш-памяти и/или PMEM.

PMEM находится между DRAM и NVMeНемного медленнее, чем чистая оперативная память, но с гораздо большими размерами модулей, более конкурентоспособной ценой за гигабайт и преимуществом в сохранении данных. По сравнению с SSD и NVMe, он обеспечивает меньшие задержки и побайтовый доступ, что делает его идеальным для задач в оперативной памяти, но и стоит дороже.

Варианты использования постоянной памяти

Приложения, которые больше всего выигрывают от PMEM Это те, которые сочетают в себе потребность в скорости и надежности данных или те, которым нужны огромные объемы памяти без резкого роста стоимости.

Некоторые распространенные примеры использования::

  • Базы данных в памяти такие как SAP HANA, Oracle In-Memory, REDIS или MSSQL с оптимизацией для PMEM.
  • Большие рабочие нагрузки данных (Hadoop, Spark, массовый анализ), где важно иметь большие наборы данных, готовые к работе в памяти при запуске.
  • Платформы виртуализации которые хотят сократить задержку хранения для некоторых критически важных виртуальных машин.
  • Машинное обучение и IAгде сверхбыстрый доступ к тренировочным наборам может значительно сократить время обучения.
  • геномная секвенирование и научный анализ, где обрабатываются большие наборы данных, очень чувствительные ко времени обработки.
  • Обработка данных IoT в режиме реального времени, чтобы быстро реагировать на масштабные события, регистрируемые датчиками.
  • Профессиональный монтаж и рендеринг видеоза счет ускорения доступа к большим файлам и сложным проектам.
  • Игровые и графические движки в серверных или облачных игровых средах, чтобы минимизировать время загрузки уровней и ресурсов.

На уровне инфраструктурыОн также используется в качестве постоянного кэширующего слоя поверх NVMe/SSD/HDD в таких системах, как Storage Spaces Direct, гарантируя, что вновь записанные или считанные данные будут располагаться максимально близко к ЦП без ущерба для отказоустойчивости.

Постоянное хранение в приложениях и контейнерах

Когда мы говорим о постоянном хранилище В мире веб-приложений и контейнеров основное внимание уделяется не только PMEM, но и любому механизму, обеспечивающему сохранность данных при перезапусках, развертываниях и обновлениях.

  Разрешения в FAT32 и NTFS: различия, использование и полное руководство

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

С прибытием контейнеров (Docker, Kubernetes и т. д.) проблема усугубляется. Контейнеры по своей природе недолговечны и не имеют состояния. При уничтожении контейнера всё, что хранилось исключительно в его внутренней файловой системе, уничтожается вместе с ним.

Вот почему используются тома и постоянные тома.Стандартный том Docker может пережить перезагрузку контейнера, но если контейнер будет удалён, а связанный с ним том будет удалён, данные будут потеряны. Постоянные тома (или монтированные объекты типа `<volume>`) отличаются. связыватьОни располагаются за пределами файловой системы контейнера, на хосте или на удаленном сервере хранения данных и сохраняются даже при повторном создании приложения.

Платформы, такие как Kubernetes Они вводят концепцию Постоянный том (PV) y Постоянная заявка на объем (PVC) абстрагировать физическое хранилище (это может быть жесткий диск, твердотельный накопитель, NAS, SAN, NFS, облачные решения или даже PMEM на хосте) и разрешить приложениям запрашивать «x гигабайт постоянного хранилища», не зная, что находится под ним.

Поставщики типа Kinsta или аналогичные Они используют постоянные тома Kubernetes

чтобы размещенные приложения сохраняли свои данные Надёжно. С точки зрения разработчика, размер и тип тома определены, а платформа сама сопоставляет его с правильным физическим хранилищем.

В этом контексте PMEM может действовать как сверхбыстрый бэкэнд для определенных постоянных томов (например, для баз данных с интенсивным вводом-выводом), в то время как остальные данные хранятся на SSD или HDD, что позволяет достичь баланса между производительностью и стоимостью.

Типы и архитектуры постоянного хранения

За пределами аппаратные средства ConcretoПостоянное хранилище может быть организовано в виде различных архитектур, каждая из которых подходит для определенных моделей использования.

Архитектура объекта Он хранит данные в виде объектов с метаданными и идентификатором, а не блоков или файлов. Он идеально подходит для неструктурированных данных (изображений, видео, документов) и широко используется в публичных облаках (S3, Azure Blob Storage и т. д.). Ключевым фактором здесь является масштабируемость и надёжность, а не сверхнизкая задержка.

Блочная архитектура Хранилище представлено в виде адресуемых блоков фиксированного размера. Это классическая модель дисков и LUN, которая является предпочтительной, когда речь идёт о HPC, базы данных, профессиональное редактирование видео или игры поскольку он обеспечивает низкую задержку, высокую производительность и хорошо контролируемые параллельные операции ввода-вывода.

Архитектура файла Он основан на общих или локальных файловых системах (EXT4, NTFS, NFS, SMB и т. д.). Он удобен для приложений, которым необходимо манипулировать файлами с путями, правами доступа и иерархиями, таких как веб-системы управления контентом (CMS), платформы совместной работы, системы управления мультимедийным контентом и т. д.

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

Преимущества и ограничения постоянной памяти

Основные преимущества ПМЭМ которые обычно цитируются в деловой среде:

  • Гораздо более высокая производительность по сравнению с традиционным хранилищем, особенно при небольших случайных чтениях/записях.
  • Уменьшенная задержка, находясь на шине памяти и имея возможность доступа по байтам.
  • Нет волатильности: данные сохраняются в случае отключения электроэнергии, сбоев или перезагрузок (в постоянных режимах).
  • Большая масштабируемость памяти по более низкой стоимости за ГБ, чем DRAM.
  • Лучшая совокупная стоимость владения Для сценариев, когда обновление DRAM будет чрезмерно дорогим, а твердотельный накопитель NVMe не обеспечивает желаемой задержки.
  • Расширенные параметры безопасности за счет возможности шифрования данных в модулях и обеспечения большей защиты «горячей» памяти.

Тем не менее, у него также есть свои недостатки и проблемы.:

  • Более высокая стоимость, чем SSD и NVMeПоэтому нет смысла заменять все хранилища на PMEM.
  • Ограниченная совместимость с определенным оборудованием, операционными системами или гипервизорами, особенно в старых средах.
  • Ограниченные возможности и предложение продукцииособенно после прекращения выпуска таких линеек, как Intel Optane.
  • Сложность принятияЧтобы получить от этого максимум пользы, вам необходимо адаптировать приложения, настроить файловые системы и иметь четкую стратегию сохранения данных.

Реальность такова, что постоянная память имеет больше смысла, если ее использовать стратегически.: как сверхбыстрый кэш, как промежуточный уровень емкости между DRAM и NVMe или как специализированная поддержка баз данных и рабочих нагрузок в памяти, где скорость и устойчивость компенсируют стоимость.

Хотя такие знаковые продукты, как Intel Optane, были сняты с производстваПотребности, удовлетворяемые PMEM, остаются прежними: больше памяти, быстрее, дешевле, чем DRAM, и с сохранением данных. Ожидается, что новые поколения памяти класса Storage, технологии многоуровневой памяти и гибридные решения продолжат исследовать этот сегмент между традиционной оперативной памятью и запоминающими устройствами.

Хранилище постоянной памяти (PMEM) и более широкая концепция сохранения данных Они стали ключевыми элементами современной инфраструктуры: они позволяют создавать более быстрые, масштабируемые и отказоустойчивые системы при условии, что их режимы, ограничения и соответствующие варианты использования хорошо понятны, и они сбалансированно сочетаются с жесткими дисками, твердотельными накопителями, NVMe и распределенными хранилищами.

пространства для хранения данных напрямую с сервера Windows
Теме статьи:
Storage Spaces Direct на Windows Server: полное руководство S2D