Оригинал материала: https://3dnews.kz/904324

Обзор Apple Fusion Drive: реабилитация «гибридов»

Fusion Drive: компоненты. Как это работает

Вопреки ожиданиям, которые вызвало появление первых SSD в потребительских устройствах, сейчас совершенно очевидно, что тотальный переход на твердотельные накопители невозможен в обозримом будущем. Производители NAND Flash-памяти достигли больших успехов в плане снижения стоимости чипов, но цена гигабайта емкости на магнитных дисках все еще на порядок ниже, чем на SSD. Кроме того, с каждым шагом Flash-памяти на более «тонкую» производственную норму все труднее обеспечить надежность считывания заряда в ячейке и требуемое количество циклов перезаписи. У жестких дисков, напротив, еще есть неисчерпанный резерв увеличения емкости в стандартной конструкции с привычными GPP/GMR-головками (Perpendicular to Plane / Giant Magnetoresistance) и несколько экзотических технологий в перспективе.

Наиболее широко Flash-память применяется в мобильных устройствах, где преимущества твердотельных накопителей всецело оправдывают более высокую цену единицы объема. Если говорить об Apple, то как производитель безусловно дорогой техники она может устанавливать в компьютеры SSD, по емкости соперничающие с жесткими дисками, что мы и видим в топовых конфигурациях MacBook Air и MacBook Pro with Retina Display. А единственное мобильное устройство Apple, которое все еще поставляется в конфигурации с жестким диском, — это устаревающий с каждым годом MacBook Pro без «ретины».

В настольных компьютерах даже для Apple не так-то просто отбросить жесткий диск как базовый вариант накопителя. Если на Mac Pro (полностью переведенный на SSD) принцип экономии распространяется в ограниченной степени, то все три базовые модели iMac, которые сейчас производит Apple, имеют в составе жесткий диск емкостью 500 Гбайт — 1 Тбайт. Существуют опции с полностью твердотельным накопителем объемом до 256 или 512 Гбайт, которые требуют дополнительного вложения 200-500 долларов США сверх конфигурации с терабайтным HDD. А между этими крайностями — Fusion Drive, который представляет собой массив SSD объемом 128 Гбайт и жесткого диска на 1 или 3 Тбайт. Апгрейд «Мака» на Fusion Drive в сочетании с терабайтным диском также стоит $200, так что выбор предстоит нелегкий. О нем и пойдет речь.

Прим. Указаны цены для американского Apple Store. В России апгрейд с HHD объемом 1 Тбайт на Fusion Drive стоит 7 960 руб.

Если честно, автор данной статьи уже давно не ждет ничего хорошего от гибридных накопителей. Пока ни одно из протестированных в 3DNews решений не приблизилось к декларируемой производителями цели — сочетать быстродействие SSD и объем HDD с доступной ценой. Большинство «гибридов» построены по единой схеме: твердотельный компонент небольшого объема используется как кеш, в котором дублируется часто запрашиваемая информация с основного накопителя — HDD. В ряде случаев SSD также используется для кеширования записи. Предполагается, что после определенного периода адаптации кеш начинает дублировать наиболее ходовые данные — файлы ОС и приложений, а завалы редко востребованных ресурсов остаются на HDD. В этой концепции естественно, что чем больше твердотельный компонент гибридного накопителя, тем выше средняя производительность. К примеру, 8 Гбайт Flash-памяти, распаянных на дисках Seagate SSHD, явно недостаточно, чтобы система была столь же отзывчивой, как и полностью твердотельное хранилище. В лучшем случае можно говорить о промежуточном положении такого рода «гибридов» между SSD и HDD, хотя в численном выражении — даже не о среднем.

Более эффективный подход реализован в технологии Intel Smart Response, которая позволяет использовать в качестве кеша SSD отдельный SSD объемом вплоть до 64 Гбайт (при условии, что система построена на одном из определенных чипсетов Intel). Но одновременно растет цена, и по этой причине немногие из готовых компьютеров и ноутбуков наслаждаются такой роскошью. Наконец, при достаточно крупном SSD уже возникает мысль: а не следовало ли отказаться от кеширования и отвести его целиком под ОС и программы как отдельный том? Собственно, так и поступили с диском WD Black2, который представляет собой терабайтный HDD и отдельный SSD объемом 120 Гбайт в одном корпусе. Но опять-таки экономия на компонентах SSD, помноженная на сырое ПО, не позволяет и WD Black2 привести как пример удачного гибридного накопителя.

#Встречайте Fusion Drive

Итак, что к этому может добавить Apple? Рецепт Fusion Drive в целом такой же, как у того еврея из анекдота: «Больше заварки кладите». В роли твердотельного компонента массива в «Маках» выступают SSD объемом 128 Гбайт, и что немаловажно — с качественными контроллерами.

В принципе, это сама по себе удовлетворительная конфигурация для комфортной работы. Соблюдая определенную дисциплину, можно ОС и все ходовые файлы держать в пределах 128 Гбайт объема SSD (спросите пользователей MacBook Air), а медиатеку и другие тяжелые ресурсы вручную складировать на жестком диске. Однако Fusion Drive на то и Fusion, что SSD и HDD объединены в массив. В таком случае конечный результат зависит от того, как именно используется твердотельный накопитель.

Apple iMac 21.5” Mid 2014

Совокупный объем массива равен объему отдельных компонентов. Мы тестировали iMac с диагональю 21,5 дюйма, и в нашем случае это 1128 десятичных Гбайт (1 Тбайт HDD плюс 128 Гбайт SSD). То есть сразу можно сказать, что данные не дублируются, SSD не выполняет функцию кеша. Вместо этого имеет место эшелонирование (tiering): часто востребованные данные поступают на SSD, залежавшиеся — на HDD. Вопрос: каким образом определяются приоритеты? Но об этом позже.

#Fusion Drive: компоненты

Для начала нужно понять, какое железо нам досталось. В моделях iMac и Mac mini до 2013 года использовались вариации Samsung PM830 — не самого худшего накопителя для интерфейса SATA 6 Гбит/с. Сейчас Apple повсеместно внедрила SSD с нативным интерфейсом PCIe, который сулит немалый прирост быстродействия. Жесткий диск — объемом 1 Тбайт в форм-факторе 2,5 дюйма для младшего iMac и Mac mini или 1-3 Тбайт в форм-факторе 3,5 дюйма для 27-дюймового iMac.

Утилита System Information выдает производителя SSD. Если судить по наименованию APPLE SSD SD0128F, это такой же накопитель SanDisk, который можно встретить в Mac mini, а также MacBook Air и MacBook Pro with Retina Display образца 2014 года. Не исключено, что альтернативный вариант, который поставляет Samsung, также может попадаться в конфигурации Fusion Drive. Оба накопителя подключаются по интерфейсу PCIe 2x.

SSD SanDisk, фото iFixit

SSD SanDisk базируется на контроллере Marvell 88SS9183, с которым мы ранее познакомились на примере Plextor M6e. Чип обладает нативным интерфейсом PCIe с двумя линиями версии 2.0, данные передает по протоколу AHCI (в отличие от NVMe, специально предназначенного для твердотельных накопителей). Для соединения с микросхемами Flash-памяти предусмотрено восемь каналов. Разумеется, поддерживается команда TRIM.

Сам SSD выполнен в проприетарном форм-факторе, но любители экономии могут попытать счастья с планками сторонних производителей, собрав собственный Fusion Drive или используя SSD отдельно. Только с iMac это не так-то просто сделать, в отличие от Mac mini.

Контроллер Marvell сочетается с чипами Flash-памяти производства SanDisk. Судя по маркировке 05131 016G, это память типа eX2 ABL MLC NAND, произведенная по техпроцессу 19 нм. Ее отличительная особенность: часть ячеек работает в режиме псевдо-SLC и служит кешем, который ускоряет операции записи и одновременно продлевает жизнь микросхемы за счет дефрагментации запросов. Впрочем, таких ячеек здесь вряд ли много, поскольку в накопителе зарезервирован стандартный объем около 7% (разница между числом 128 Гбайт в бинарном и десятичном исчислении), который используется еще и для сборки мусора, подмены вышедших из строя ячеек и прочих служебных функций.

На обеих сторонах платы размещены восемь корпусов, каждый из которых содержит по два NAND-устройства емкостью 64 Гбит (8 Гбайт). Таким образом, в накопителе не только заполнены все восемь каналов контроллера, но и задействовано чередование NAND-устройств.

В общем, весьма достойные компоненты для SSD. Но вердикт оставим до окончания тестов, поскольку в случае с контроллерами Marvell многое зависит от встроенного ПО. Ранее мы чаще всего встречали их в накопителях Plextor с мастерски сделанной прошивкой. Посмотрим, как себя проявит SanDisk.

Жесткий диск в iMac 21.5” представляет собой банальный 2,5-дюймовый привод HGST серии Travelstar 5K1000 со скоростью вращения шпинделя 5400 об/мин. Здесь нет ничего особенного.

HGST Travelstar 5K1000 1 Тбайт (HTS541010A9E662), фото iFixit

#CoreStorage — основа Fusion Drive

Реализация Fusion Drive стала возможной за счет того, что, начиная с версии 10.7 (Lion), в OS X встроен CoreStorage — менеджер томов (volume manager), который представляет собой программную прослойку между файловой системой и накопителем. Благодаря ему и стало возможным перераспределение блоков данных между двумя физически отдельными устройствами, составляющими массив, абсолютно прозрачное для вышележащего стека ПО. В терминологии CoreStorage физические устройства называются Physical Volume и могут быть соединены в Logical Volume Group, обладающую непрерывным адресным пространством. Осталось только развернуть поверх этого Logical Volume, который и предъявляется ОС как обычный том. Затем в дело включается ПО, управляющее миграцией данных между эшелонами.

Внимательные читатели могут заметить, что в схеме присутствует еще одна сущность под названием Logical Volume Family, которая является контейнером для Logical Volume. Заключенные внутри LVF логические тома наследуют ее свойства, единственным из которых пока может выступать полнодисковое шифрование — за счет этого работает встроенный в OS X сервис FileVault 2.

При желании конструкцию можно разобрать командами из «Терминала», загрузившись в режиме восстановления ОС или с внешнего диска, и потом использовать SSD и HDD как отдельные накопители. На «Мак» с Fusion Drive также без проблем устанавливается Windows в раздел Boot Camp. Последний вырезается с конца логического тома и может включать едва ли не все адресное пространство жесткого диска, но не распространяется на SSD. Программа инсталляции Windows, как и сама установленная ОС впоследствии, видит маковские разделы, что оставляет возможность невзначай убить все содержимое Fusion Drive. При последующей установке OS X с нуля Disk Utility, обнаружив знакомое железо, предложит собрать все как было с полным уничтожением данных.

#Как это работает

Поскольку в случае с Fusion Drive мы имеем дело не с кешированным, а эшелонированным хранилищем, то первый вопрос — куда изначально поступают записанные в логический том данные. Выяснилось, что, покуда хватает емкости SSD, исключительно он и используется для записи. С помощью Dynamo, backend-компонента тестовой утилиты Iometer, на диске был создан файл объемом свыше 128 Гбайт, а в процессе регистрировалась загрузка накопителей с помощью iostat. Вначале проходили обращения исключительно к SSD, но, как только объем файла стал больше емкости SSD за вычетом установленной ОС, нагрузка полностью переключилась на жесткий диск.

Сразу же после того, как запись кончилась, команда fs_usage показала вал вызовов CoreStorage, из которых RdChunksCS и RdMigrCS запускают миграцию данных между эшелонами массива. Четвертая колонка листинга также показывает, что данные перемещаются кусками по 128-512 Кбайт. Таким образом, за счет крупного масштаба перемещений побочным эффектом является дефрагментация данных. Если просуммировать вызовы, то получится объем в районе 4 Гбайт. Последующие попытки записи показали, что каждый раз на SSD попадают первые 4 Гбайт файла, а затем CoreStorage выселяет такой же объем каких-то других блоков на жесткий диск. То есть на SSD всегда остается резерв 4 Гбайт, который обеспечивает запись свежепоступивших данных на высокой скорости.

Средняя скорость последовательного чтения и записи блоков по 256 Кбайт с очередью в четыре команды с SSD составляет 754 и 391 Мбайт/с (бинарных) соответственно. Очень достойно — притом что операции происходят поверх файловой системы. Скорость чтения/записи на HDD — 82-88 Мбайт/с.

Но как вызвать миграцию данных в обратном направлении — с HDD на SSD? Это оказалось довольно просто проделать с целыми файлами. Чтобы сразу попасть в адресное пространство жесткого диска, SSD был забит в ходе длительной записи большого файла, и одновременно с помощью dd был создан файл объемом 2 Гбайт с рандомизированным содержимым из /dev/zero. После прекращения записи немедленно последовала миграция, расчистившая 4 Гбайт объема на SSD.

Первое прочтение файла прошло со скоростью 87 Мбайт/с (большая часть нагрузки зарегистрирована на HDD). Но во второй раз файл уже был считан исключительно с SSD на скорости 427 Мбайт/с ( purge гарантировала предварительную очистку кеша). Впрочем, легко заметить, что скорость далека от максимума: файл очутился на SSD во фрагментированном состоянии.

Дальнейшие эксперименты показали, что Fusion Drive может переносить и отдельные куски крупных файлов. Из середины файла на 400 Гбайт, который в силу размера по большей части располагался на HDD, считывался диапазон блоков объемом 2 Гбайт. Два прохода зацикленного чтения по 30 с вызывают перемещение части блоков на SSD и резкий прирост общей производительности. Но для того чтобы все блоки оказались на SSD, а скорость чтения достигла максимума, понадобилось целых 34 прохода! Что интересно, этот метод сработал и для записи данных в тот же диапазон. В последнем случае пиковая скорость была достигнута на 15-м проходе.

Красный — чтение с SSD (disk0), синий — преимущественно с HDD (disk1). Зеленый — миграция блоков после итерации чтения

Получается, что алгоритмы, по которым Fusion Drive выбирает данные для миграции, действуют как на файловом, так и на блочном уровне. Причем файлы имеют приоритет. Доступ к избранным блокам внутри файлов CoreStorage расценивает как нетипичный сценарий, и нужно долго требовать, чтобы эти блоки получили повышение. Ну что ж, iMac — не лучший кандидат на роль сервера баз данных, а предпочтение целых файлов способствует меньшей фрагментации.

На следующем этапе мы протестируем SSD в составе Fusion Drive отдельно и сравним его с другими высокопроизводительными твердотельными накопителями с интерфейсом PCIe или SATA 6 Гбит/с.

Тестирование. Выводы

#Методика тестирования

Тестирование проводится в операционной системе Microsoft Windows 8.1 Professional x64 with Update, корректно распознающей и обслуживающей современные твердотельные накопители. Это значит, что в процессе прохождения тестов, как и при обычном повседневном использовании SSD, команда TRIM поддерживается и активно задействуется. Измерение производительности выполняется с накопителями, находящимися в «использованном» состоянии, которое достигается их предварительным заполнением данными. Перед каждым тестом накопители очищаются и обслуживаются с помощью команды TRIM. Между отдельными тестами выдерживается 15-минутная пауза, отведённая для корректной отработки технологии сборки мусора. Во всех тестах, если не указано иное, используются рандомизированные несжимаемые данные.

Используемые приложения и тесты:

Iometer 1.1.0

  1. Измерение скорости последовательного чтения и записи данных блоками по 256 Кбайт (наиболее типичный размер блока при последовательных операциях в десктопных задачах). Оценка скоростей выполняется в течение минуты, после чего вычисляется средний показатель.
  2. Измерение скорости случайного чтения и записи блоками размером 4 Кбайт (такой размер блока используется в подавляющем большинстве реальных операций). Тест проводится дважды — без очереди запросов и с очередью запросов глубиной 4 команды (типичной для десктопных приложений, активно работающих с разветвлённой файловой системой). Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скоростей выполняется в течение трёх минут, после чего вычисляется средний показатель.
  3. Установление зависимости скоростей случайного чтения и записи при работе накопителя с 4-килобайтными блоками от глубины очереди запросов (в пределах от одной до 32 команд). Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скоростей выполняется в течение трёх минут, после чего вычисляется средний показатель.
  4. Установление зависимости скоростей случайного чтения и записи при работе накопителя с блоками разного размера. Используются блоки объёмом от 512 байт до 256 Кбайт. Глубина очереди запросов в течение теста составляет 4 команды. Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скоростей выполняется в течение трёх минут, после чего вычисляется средний показатель.
  5. Измерение производительности при смешанной многопоточной нагрузке и установление её зависимости от соотношения между операциями чтения и записи. Используются последовательные операции чтения и записи блоков объёмом 128 Кбайт, выполняемые в два независимых потока. Соотношение между операциями чтения и записи варьируется с шагом 10 процентов. Оценка скоростей выполняется в течение трёх минут, после чего вычисляется средний показатель.
  6. Исследование падения производительности SSD при обработке непрерывного потока операций случайной записи. Чтобы проверить, насколько падает скорость записи на SSD по мере заполнения, мы поэтапно забиваем его случайными данными на блочном уровне и проводим с помощью Iometer тесты произвольной записи блоков по 4 Кбайт с глубиной очереди запросов 4. Затем на диск посылается команда TRIM (при помощи утилиты diskpart создается и форматируется раздел на весь объем диска) и еще раз измеряется скорость записи.

#Тестовый стенд

Устройства, выбранные для сравнения с Fusion Drive, были протестированы на компьютере с материнской платой ASUS Z97-Pro, процессором Core i5-4590 со встроенным графическим ядром Intel HD Graphics 4600 и 4 Гбайт RAM DDR3-1600 МГц. Диски с SATA-интерфейсом подключаются к контроллеру SATA 6 Гбит/с, встроенному в чипсет материнской платы, и работают в режиме AHCI. Накопители с интерфейсом PCI Express устанавливаются в полноскоростной слот PCI Express 3.0 x16. Используется драйвер Intel Rapid Storage Technology (RST).

Объём и скорость передачи данных в бенчмарках указываются в бинарных единицах (1 Кбайт = 1024 байт).

#Участники тестирования

#Производительность

Последовательные операции чтения и записи, Iometer

По графику видно, что для накопителя с нативным интерфейсом PCIe плата SanDisk, установленная в нашем iMac, звезд с неба не хватает. Скорость последовательного чтения блоков по 256 Кбайт с глубиной очереди в одну команду не превышает показатели добротных SSD для шины SATA 6 Гбит/с. Plextor M6e, построенный на таком же контроллере, демонстрирует гораздо более высокую производительность. Впрочем, обескураживающий результат SanDisk явно связан с короткой очередью команд в данном тесте.

При чтении в четыре команды производительность колоссальная и фактически упирается в предел возможностей используемого контроллера.

А вот плачевный итог теста на скорость записи был предсказуем. Модели емкостью 256 Гбайт, взятые для сравнения, пользуются чередованием четырех NAND-устройств (трех в случае Samsung 850 Pro) на каналах контроллера, а у SanDisk — только двукратное чередование.

Случайные операции чтения и записи, Iometer

Еще один тест, в котором плата SanDisk подвержена влиянию длины очереди команд. При чтении в одну команду на результат смешно смотреть, а при четырех командах в очереди SSD уже не то чтобы очень сильно отстоит от большинства соперников, включая Plextor M6e. Пропускная способность хост-интерфейса тут не имеет решающего значения, поэтому недосягаемым для SanDisk лидером является Samsung 850 Pro.

В тесте на скорость произвольной записи переход к более длинной очереди команд не спасает накопитель SanDisk. Производительность опять весьма скромная.

По скорости произвольного чтения коротких блоков SanDisk хотя и не может сравниться с лидирующими соперниками (коими являются Samsung 850 Pro и Plextor M6 Pro), но по крайней мере не отстает от приличного SSD для шины SATA 6 Гбит/с — OCZ Vector 150. При запросе более крупных блоков накопитель не представляет собой ничего выдающегося, и только с блоками по 256 Кбайт достигает в полной мере конкурентоспособной производительности.

Скорость произвольной записи с достаточно длинной очередью команд опять-таки определяется параллелизмом в конфигурации Flash-памяти. Накопителю объемом 128 Гбайт здесь рассчитывать не на что. Так и вышло: более емкие соперники демонстрируют более чем удвоенную производительность по сравнению с платой SanDisk, особенно если запрашиваются наиболее крупные блоки и, соответственно, силен компонент процедуры считывания данных, а не доступа к ним.

Деградация и восстановление производительности

Обратите внимание, что даже небольшое заполнение (96 Гбайт свободного места) уже сказывается на производительности SSD. Впрочем, в абсолютных значениях разница невелика, и по мере дальнейшей записи скорость не претерпевает больших изменений вплоть до того момента, когда остается всего 8 свободных гигабайт. Затем — предсказуемый коллапс производительности. TRIM работает без нареканий, хотя для полной очистки ячеек нужно подождать (15 минут вполне достаточно).

#Выводы

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

Перед покупателями «Маков» стоит выбор между Fusion Drive в конфигурации 128 Гбайт SSD + 1 Тбайт HDD или единственным SSD объемом 256 Гбайт за те же деньги. И по сути, выбор зависит от того, сколько у вас файлов, к которым требуется быстрый доступ. Пользователи, которые не качают ничего крупного или привыкли держать склад на внешних хранилищах, могут никогда и не почувствовать, что в компьютере не «чистый» SSD: пока есть возможность, Fusion Drive не трогает жесткий диск вовсе.

В более сложной ситуации, когда многие гигабайты цифрового скарба лежат на одном томе, подход Apple к гибридному хранилищу более эффективен, чем все, что нам попадалось до этого. Во-первых, мы не теряем в общем объеме массива, поскольку SSD и HDD образуют единое адресное пространство. Во-вторых, миграция между эшелонами весьма агрессивная. Fusion Drive всегда держит свободные 4 Гбайт на SSD, обеспечивая быструю запись новоприбывших файлов. Продвижение файлов с HDD на SSD происходит на раз. Кроме того, система берет в расчет активность как на блочном, так и на файловом уровне, предотвращая засорение SSD разрозненными блоками. В конечном счете даже при активной ротации данные быстро занимают подобающее им место.

В общем, наконец кто-то сделал гибридный накопитель, который не разочаровывает пользователя, вкусившего прелестей полноценного SSD. Единственная претензия: $200 за SSD объемом 128 Гбайт, пусть и на шине PCIe, — это дороговато для 2014 года (хотя именно в российской рознице аналогичный Plextor M6e тоже не найти дешевле 6 тыс. руб.). Кроме того, хотелось бы видеть опцию с SSD на 256 Гбайт. Вот это был бы по-настоящему универсальный вариант, которой бы удовлетворил запрос одновременно на существенный объем высокоскоростной памяти, жесткий диск и ПО, которое берет на себя заботу о распределении файлов.

Отдельно стоит сказать о выборе компонентов для Fusion Drive. К жесткому диску со скоростью вращения шпинделя 5400 об/мин нет претензий — при наличии SSD 7200 об/мин здесь были бы излишними. SSD от SanDisk также не ударил в грязь лицом и в состоянии использовать пропускную способность интерфейса PCIe. Но нельзя не отметить, что конфигурация с 128 Гбайт Flash-памяти сама по себе неизбежно уступает в быстродействии более емким SSD. Кроме того, у прошивки платы SanDisk есть такая особенность, что при слабой нагрузке с короткой очередью команд скорость оказывается довольно посредственной для SSD с шиной PCIe. Возможно, накопитель Samsung, который Apple также применяет в последних «Маках», избавлен от этого недостатка.

Выбор редактора


Оригинал материала: https://3dnews.kz/904324