Обзор Apple 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 Гбит/с.
Следующая страница →
Виджет от SocialMart
⇣ Содержание
Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
Полный текст статьи читайте на 3DNews