Технология 3D XPoint
Начнем с краткой информации по самой технологии 3D XPoint (читается как «три-ди кросс-поинт»). Сразу прошу извинений — детальную информацию о технологии мы на данный момент не раскрываем. Кроме того, фокус обзоров будет именно на конечных продуктах, нежели чем на самой технологии.
Во-первых, хотя технология является совместной разработкой компаний Intel и Micron, реализация технологии в виде продуктов находится в раздельном ведении каждого из вендоров. Таким образом, всё, что я буду рассказывать о продуктах на базе 3D XPoint, имеет отношение только к продуктам Intel.
Во-вторых, 3D XPoint – это не NAND, это не NOR, это не DRAM, а совершенно другой зверь. Не раскрывая деталей физической реализации памяти, опишу ключевые характеристики, а также отличия 3D XPoint от NAND и от DRAM.
- В отличие от NAND, нет привязки операций записи к страницам и привязки операций стирания к блокам. C 3D XPoint обращаться к данным на физическом уровне мы можем на уровне отдельной ячейки. Кроме того, нам не нужно удалять данные перед операцией записи – мы можем перезаписывать данные, что позволяет избавиться от операций read-modify-write и сильно упростить сборку мусора. Это приводит к уменьшению задержкек доступа (latency) и росту количества выполняемых операций ввода-вывода за секунду (IOPS); в дополнение к этому, операции записи выполняются почти так же быстро, как и операции чтения. Наконец, износостойкость (endurance) памяти 3D XPoint сильно выше по сравнению с NAND (такой эффект, как утечка электронов из ячеек, здесь не существует). Подводя итог, 3D XPoint быстрее и обладает большей износостойкостью по сравнению с NAND. Однако, было бы несправедливо не отметить недостаток 3D XPoint – это стоимость производства, которая на данный момент ощутимо выше по сравнению со стоимостью производства 3D NAND.
- В отличие от DRAM, 3D XPoint позволяет создавать устройства с большей плотностью хранения данных, является энергонезависимым типом памяти и, при этом, дешевле. Из недостатков в данном сравнении – 3D XPoint как технология реализации памяти несколько медленнее, чем DRAM (обратите внимание, сравниваем технологии, а не продукты на базе этих технологий).
Все вышеперечисленное касалось 3D XPoint как таковой – это, однако, имеет меньшее значение для пользователей, нежели чем характеристики конкретных устройств на базе 3D XPoint. Таким образом, наш разговор переходит в русло описания продуктов Intel Optane на базе этой технологии. Начнем с описания того, что же есть «Intel Optane». Если коротко, то это бренд для всех продуктов Intel на базе технологии 3D XPoint. Если объяснять более подробно, то Intel берет «вафли» 3D XPoint, проводит собственное тестирование и отбор чипов памяти, самостоятельно разрабатывает дизайн конечного устройства — создает контроллер SSD, разводку текстолита, прошивки; тестирует и валидирует конечное устройство, выводит его на рынок – вот это все скрывается под словами «Intel Optane».
Intel Optane
На данный момент, официально анонсировано и выпущено на рынок 2 принципиально разных продукта: Intel Optane Memory – для клиентских моделей использования — и Intel® Optane SSD DC P4800X – для серверного использования. В данной статье мы подробнее разберем клиентский продукт, серверный же будет темой следующего обзора.
Итак, Intel Optane Memory. Первое, что стоит понять об этом продукте – несмотря на название, это не DRAM, а NVMe SSD в форм-факторе M.2 2280-S3-B-M.
Вид сверху – под наклейкой 1 чип 3D XPoint (это версия 16ГБ, на 32ГБ расположены 2 чипа 3D XPoint – площадки под второй чип видны):
Модуль односторонний, так что обратная сторона пустая:
Устройство соответствует спецификации NVM Express 1.1. На данный момент на рынок выпущены емкости 16ГБ (используется один чип памяти 3D XPoint емкостью 16ГБ) и 32ГБ (используются два чипа памяти 3D XPoint емкостью 16ГБ каждый). Из интересных деталей дизайна:
- контроллер явлется внутренней разработкой Intel
- в дизайне не используется DRAM
- используются только 2 линии PCIe gen3, а не 4 линии, как многие могли бы ожидать
- заявленная износостойкость – 100ГБ записанных данных каждый день в течение 5 лет
Тест производительности
Теперь о производительности
(производительность версии 32ГБ выше из-за того, что используются 2 чипа памяти 3D XPoint против одного чипа у версии 16ГБ)
Казалось бы, производительность в плане пропускной способности и IOPS не впечатляет – однако, собака зарыта совсем не тут. Вся штука в том, что эти данные производительности замерялись при глубине очереди (queue depth) равной 4 – в отличие от прочих SSD, которые обычно замеряются с глубиной очереди 32 и выше. Именно на неглубоких очередях более всего заметно превосходство Optane. Для наглядности, вот график производительности разных типов устройств на разной глубине очереди*:
При этом, как показывают наши внутренние тесты, подавляющее большинство задач, с которыми сталкивается обычный пользователь дома или в офисе, имеют глубину очереди от 1 до 4 (более подробно – см. ниже), а спецификации SSD пишутся с использованием нагрузок с глубиной очереди 32 (для SATA) и более (для NVMe). Разница весьма наглядна.
Однако, Intel не позиционирует использование Optane Memory в качестве обычного SSD по понятным причинам – емкости устройств не хватит для пользовательских задач (за исключением некоторых интересных вариантов, как, например, небольшой, но быстрый и надежный загрузочный накопитель для Linux, или scratch disk для Adobe Photoshop, или небольшой, но быстрый кэш вместе с Intel Cache Acceleration Software, или интересное решение, описанное вот тут). Вся сила маркетингового аппарата Intel направлена на продвижение новой технологии ускорения (грубо говоря – кэширования, но это не совсем точное определение) медленного SATA-накопителя (будь то жесткий диск, твердотельный накопитель или даже некоторые гибридные модели) быстрым модулем Optane Memory.
Эта модель использования накладывает ограничения на поддерживаемые железо и ОС:
- Процессор Intel Core 7-го поколения или новее
- Чипсет Intel 200 Series или новее (полный список тут)
- BIOS, в который интегрирован UEFI-драйвер RST версии 15.5 или новее (15.7 для серии чипсетов X299). Да, legacy-режим БИОСа не поддерживается – для Optane Memory обязательна загрузка в режиме UEFI
- Windows 10 64-bit
- Драйвер Intel Rapid Storage Technology 15.5 или новее
- Загрузочный SATA-накопитель (именно его будет ускорять Optane Memory). Поддерживается только разметка GPT.
- 5МБ свободного пространства в конце SATA-накопителя – это нужно для метаданных RST
Настраивается это так:
- Убеждаемся, что BIOS материнской платы поддерживает Optane (см. выше; сейчас все “Optane Memory Ready” платы на 200 сериях чипсетов отгружаются с БИОСом, который поддерживает Optane Memory, однако на рынке еще можно найти платы из предыдущих партий – на них потребуется обновить БИОС).
И да, Intel провел громадную работу с производителями плат – все платы, которые поддерживают Optane Memory, имеют на коробке вот такой шильдик: - Берется система с SATA-накопителем, на который установлена Windows 10 64-bit (накопитель должен быть подключен SATA-порту, разведенному от Intel AHCI контроллера в чипсете, иначе RST его не увидит), разметка должна быть GPT.
- Подключается модуль Optane Memory (накопитель должен быть вставлен в M.2 слот с разведенными линиями PCIe от чипсета, поддерживающий «ремаппинг» линий PCIe на Intel AHCI контроллер, встроенный в чипсет)
- Скачивается утилита отсюда (можно выбрать стандартную утилиту RST, которая позволит управлять как конфигурациями с Optane Memory, так и обычными массивами RST, или упрощенную версию утилиты, которая позволяет только включать и выключать конфигурации Optane Memory и смотреть статистику).
- Устанавливается утилита, она же автоматически меняет SATA режим в БИОСе на режим RST/Optane (на это требуется одна перезагрузка системы), она же включает ускорение с помощью Optane Memory (на это требуется вторая перезагрузка системы). В результате вместо 2 дисковых устройств система будет видеть только одно – т.н. Optane Volume.
- PROFIT! А именно:
- более быстрая загрузка операционной системы
- ускорение большинства операций ввода-вывода (по сути – кэширование, однако достаточно умными алгоритмами).
Принцип работы
Также немного поговорим о том, как это все работает.
Во-первых, в момент активации Optane Memory, RST драйвер перенесет файлы, необходимые для загрузки ОС, а также файловую таблицу на быстрый Optane Memory накопитель. Ключевое здесь – именно перенесет, а не скопирует. Механика работы RST драйвера такова, что не все данные, лежащие в кэше на быстром устройстве, будут в обязательном порядке скопированы на медленное устройство. Это увеличивает общее быстродействие системы и, кроме того, решает проблему синхронизации данных. Однако, как можно понять, физический сбой Optane Memory с большой вероятностью приведет к потере доступа к данным на SATA-диске. Из-за того, что перенос данных происходит сразу в момент активации Optane Memory, уже первая же загрузка системы будет быстрее, чем до Optane Memory (особенно это заметно, если ускорялся жесткий диск, нежели чем SATA SSD – однако, и в последнем случае стоит ожидать увеличения производительности системы хранения).
Во-вторых, во время работы системы RST драйвер будет непрерывно производить кэширование. И здесь существует одно важное различие между модулями Optane Memory разной емкости – на устройстве емкостью 16ГБ поддерживается только кэширование на уровне блоков, на устройстве емкостью 32ГБ – кэширование на уровне блоков и кжширование на уровне файлов (оба работают одновременно). В случае блочного кэширования, решение о кэшировании того или иного блока происходит мгновенно в момент запроса на ввод-вывод. В случае файлового кэширования, драйвер мониторит частоту доступа к файлам и кладет все это в специальную таблицу, которую затем (в момент простоя системы или по расписанию пользователя) использует для определения того, какие файлы остаются в кэше, какие удаляются, а какие добавляются.
Оба вида кэширования используют довольно умные, на мой взгляд, алгоритмы принятия решения о кэшировании – глубоко описывать я их здесь не могу, но для общего понимания отмечу, что, например, не кэшируются видеофайлы (да, драйвер смотрит на расширение файла), в расчет принимается размер файла, определяется вид нагрузки – предпочтение в кэшировании отдается случайному доступу нежели чем последовательному, что имеет смысл в силу крайне медленной работы жестких дисков на операциях случайного доступа, и т.п. В интернетах я встречал некоторые негативные комментарии на тему того, что «кэш моментально забьется данными», «емкости 16ГБ ни на что не хватит» и тому подобное – как правило, это отзывы от людей, которые никогда не тестировали Optane Memory. Я еще не слышал негативных отзывов о производительности такого решения ни от кого из наших партнеров, с которыми работаю.
Несколько очень важных моментов.
- Если при включенном ускорении системы с помощью RST драйвера и Optane Memory необходимо подключить SATA-накопитель к другой системе, то нужно либо переносить всю конфигурацию (SATA-устройство + Optane Memory, при этом надо убедиться, что новая система поддерживает Optane Memory), либо предварительно выключить ускорение (это делается нажатием одной кнопки в утилите – при этом в момент выключения данные из кэша перенесутся на SATA-устройство, метаданные RST будут удалены, устройство Optane Memory будет очищено).
- Клонирование диска не сработает при включенном ускорении с Optane Memory, т.к. ни одна утилита не сможет работать с метаданными RST. Прямого клонирования раздела с метаданными будет недостаточно – дело в том, что метаданные привязаны к серийным номерам Optane Memory и SATA-устройства. С бэкапами на уровне файловой системы сложностей нет.
Зачем это нужно
Теперь пришло время подробнее поговорить про то, зачем все это вообще нужно. Начнем с более детального анализа нагрузок, которые испытывают системы обычных пользователей ПК. Еще до окончания разработки продукта Optane Memory, в рамках Intel Product Improvement Program мои коллеги провели исследование на предмет того, что обычные пользователи делают с компьютером дома и на работе. Результаты – количество действий разных типов, производимых пользователями (усредненные данные на 1 день пользования ПК):
Все эти события тесно связаны с производительностью системного диска, причем, как правило, они требуют случайного доступа к данным, с чем жесткие диски справляются крайне плохо. Таким образом, использование Optane Memory может значительно ускорить исполнение каждого из указанных выше действий.
Однако, спросите вы зачем мне покупать Optane Memory для ускорения жесткого диска, если я могу за те же деньги купить SATA SSD емкостью 128ГБ, положить на него ОС и ключевые приложения, а для прочих данных просто использовать жесткий диск? Здесь, с одной стороны, вопрос удобства – если вы имеете хоть какие-то базовые навыки, чтобы уметь выбирать, куда установить ОС/приложения (подозреваю, что все читатели GT попадают в эту категорию, однако, могу вас уверить, что, например, мои родители, как и большинство пользователей ПК, на это не способны), и при этом не будете лениться делать это каждого приложения (особенно проблематично для игр – при нынешних требованиях к дисковому пространству, 128ГБ забьются под ОС и 1-2 игры), то с этой точки зрения гибридная конфигурация SSD+HDD может быть для вас удобнее.
Однако, имейте в виду, что с Optane Memory никакого ручного переноса данных не требуется – как только вы перестаете пользоваться одним приложением и начинаете активнее пользоваться другим, необходимые данные буду довольно быстро добавлены в кэш. С другой стороны, вспомним график, который я привел выше – производительность в зависимости от глубины очереди. На небольших очередях задержки доступа к данным на Optane Memory гораздо ниже по сравнению с SATA SSD. Внутри Intel мы замерили, какая глубина очереди используется различными приложениями – вот результаты:
Глубина очереди при использовании приложений:
Глубина очереди при запуске приложений:
Распределение глубины очереди в течение типичного рабочего дня корпоративного пользователя (замерено на сотрудниках Intel, занимающих разные должности в компании):
Таким образом, распределение глубины очереди разных пользовательских нагрузок:
И мы уже видели, насколько лучше Optane Memory справляется в работой на неглубоких очередях.
Сравнение производительности системы с HDD против такой же системы с HDD + Optane Memory:
Еще одно интересное сравнение – тот же тест, но в системе без Optane Memory в 2 раза больше оперативной памяти:
И, на самом деле, это весьма валидное сравнение. Хотя некоторые виды нагрузок требуют большого количества оперативной памяти, львиная их доля требований к большим объемам памяти не имеет. Таким образом, для многих пользователей может иметь смысл поставить 4 ГБ памяти вместо 8 ГБ, а сэкономленные деньги вложить в ускорение системы хранения.
Заключение
Подводя итог, напомню, что Optane Memory может использоваться как самостоятельный SSD, но это не основная модель использования. Вся магия происходит при его использовании как ускорителя для медленного жесткого диска (или даже SATA SSD) – сравнительно небольшое вложение денег может ускорить быстродействие системы в несколько раз на большинстве пользовательских нагрузок. Это достигается за счет как аппаратной части (Optane Memory имеет ощутимо меньшие задержки доступа по сравнению с другими SSD на рынке, быстродействие на небольших очередях значительно выше альтернативных решений), так и программной – драйвер RST использует достаточно продвинутую логику для осуществления операций кэширования (и в этом отличие от предыдущей технологии – Intel Smart Response Technology). Это делает текущую реализацию отличной от всех тех решений по кэшированию/ускорению жестких дисков, что выспукались на рынок ранее, в том числе нами же.
Я очень заинтересован узнать мнение о продукте и решении в целом из комментариев – однако, хотелось бы избежать негатива во мнениях из-за непонимания работы решения или отсутствия опыта его использования. Если есть сомнения – лучше спросите, прежде чем пускаться в критику.
P.S. в следующей статье мы разберем серверный продукт на базе технологии 3D XPoint — Intel Optane SSD DC P4800X Series – вкупе с программным решением Intel Memory Drive Technology.
* Все тесты, указанные в этой статье, были проведены внутри Intel. Все тесты с Optane Memory были проведены на процессорах Intel Core 7-го поколения, тесты на глубину очереди с использованием процессора Intel Core 6-го поколения. Конфигурация системы, использованной для тестов:
Источник