Первый взгляд на SMR-винчестер с трансляцией адресов WD Blue 60EZAZ емкостью 6 ТБ: немного результатов тестов и много скучной общей теории

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

Несмотря на экспансию твердотельных накопителей, «традиционные» жесткие диски остаются на первом месте по объему хранимой информации. В чем нет ничего удивительного, если посмотреть на такую потребительскую характеристику, как цена ее хранения. За последние 15 лет разрыв между «механикой» и флэш-памятью уменьшился, поскольку дешевели обе технологии, но вторая делала это быстрее – однако до паритета еще далеко. А цена — это как раз тот фактор, мимо которого пройти не может никто из пользователей. Иногда на первый план выходят другие параметры, что заставляет платить – но и в этом случае все стремятся сэкономить по возможности. А единственной возможностью в этом случае остается экономить на емкости – потому-то в телефонах, планшетах, ноутбуках используется флэш, но каких-то несколько сотен, а то и десятков гигабайт.


А вот в настольные системы или серверы обычно можно «набить» много емких «десктопных» винчестеров. Чем многие с успехом и пользуются, создавая гибридную СХД. Без SSD нормально обходиться давно уже невозможно, но не обязательно на нем держать все данные. Достаточно тех, к которым нужен быстрый доступ. Плюс программы, операционная система и т. п. А вот разная мультимедийная информация может спокойно полежать и на жестких дисках – фильм все равно откуда смотреть. Зато это стоит дешевле. И не обязательно ориентироваться на топовые модели, которые сами по себе дороги – простой «воздушный» диск на 6–8 ТБ перекрывает потребности многих пользователей. Можно купить такой SSD? Уже можно. Но стоить это будет дороже, чем жесткий диск на 18 ТБ. А жесткий диск на 6 ТБ может обойтись и не дороже приличного терабайтного SSD.

У многих до сих пор работают древние модели на 1–4 ТБ. Покупать такие уже невыгодно – но пока работают, повода менять их не возникает. Однако иногда работать перестают, или места все-таки начинает не хватать, или новый компьютер нужно собрать. Что заставляет пойти в магазин – и купить что-нибудь новое – надеясь на то, что оно не хуже старого. Да и что может пойти не так с воздушными дисками невысокой емкости, которые в продаже уже лет 10?

Может. Выбирают 6 ТБ, а не, допустим, 10–16 ТБ как правило для экономии. Но ведь и сами по себе жесткие диски в первую очередь способ сэкономить. Следовательно, бюджетные серии должны быть максимально дешевыми. И есть лишь одна современная технология, снижающая стоимость хранения данных при прочих равных – черепичная запись (SMR).

Что в ней хорошего? Возможность увеличить поперечную плотность записи за счет «убирания» промежутков между частью дорожек. При этом записывающие головки будут писать сразу ленту (совокупность нескольких дорожек), так что могут быть относительно грубыми и недорогими – но и скорость последовательной записи можно даже повысить. Казалось бы, идеальное решение – быстро и недорого. Но всё зависит от характера нагрузок, поскольку мы мгновенно лишаемся одного из ключевых преимуществ магнитных дисков: нельзя взять и в любой момент перезаписать любой произвольный сектор, не затрагивая информацию в соседних на радиусе. То есть получаем ту же проблему, что и у NAND-флэш: для изменения небольшой порции информации, следует прочитать большую, модифицировать, а только потом записывать. Учитывая же, что операции с произвольной адресацией для винчестеров и без того плохой случай, проблемы при использовании SMR только нарастают. Их приходится маскировать разными ухищрениями, способными помочь при небольших нагрузках – но это только усугубляет проблему при больших. Почему, собственно, SMR крайне не рекомендуется использовать во многих сценариях.

Но технологии не бывают плохими или хорошими – просто применять их нужно правильно. Под редко обновляемую файлопомойку (а это основная задача жестких дисков в персональных компьютерах) SMR годится – благо и на цене позволяет сэкономить. И заметно – как правило, 6 ТБ с SMR стоит как классика на 4 ТБ, а вместо классических 6 ТБ можно приобрести черепичные 8 ТБ. Лишние 2 ТБ – это замечательно. А вот использовать такой диск в качестве основного и единственного в персональном компьютере лучше не стоит. Только вот в таком качестве любые жесткие диски лучше не использовать, да и вообще все чаще приходится применять SSD не только «под систему». Это уже касается даже таких несерьезных на первый взгляд применений, как торренты – загрузить работой интернет-канал всего лишь на 500 Мбит/с, используя одиночный жесткий диск, невозможно. Когда каналы были медленными, а SSD – дорогими и «мелкими», никто об их использовании для торрентов даже не задумывался. Сейчас же иногда уже приходится, поскольку «обычный» винчестер просто будет тормозить процесс, а «черепичный»... Всякое возможно, а не только низкая производительность – в зависимости от используемых производителями методов маскировки особенностей технологии.


А какие операции не вызывают у черепицы проблем в принципе? Любимые жесткими дисками последовательное чтение и запись информации. Именно строго последовательное и в один поток – многопоточные операции по логике ближе к произвольной адресации, поскольку головами двигать уже приходится. Кстати – то же самое касается и записи больших количеств мелких файлов в обычной файловой системе: ведь при этом приходится обновлять информацию в таблице их размещения, а в журналируемых системах еще и кучу служебных данных не просто записывать, а перезаписывать.

Чтение с произвольной адресацией – тоже нормально. Не лучшее, что может случиться в жизни жесткого диска, но это верно для любого жесткого диска. А вот при записи разница между SMR и CMR кардинальная. Поскольку, повторю, можно изменить любой сектор на «классике», никак не затрагивая остальную информацию – но в принципе нельзя этого сделать на «черепичном» диске. Можем просто писать информацию в свободную ленту как угодно. Не можем что-то в ней изменить. Единственный способ – считать целиком, «подправить» и снова записать туда же или на другое место. Но емкость каждой ленты достаточно велика – поэтому если пытаться реализовать такой подход в ответ на простую запись произвольного сектора, то жди беды. То есть если такие запросы редки, то даже такое лобовое решение («прочитать-изменить-записать» ленту целиком) сработает нормально. А если это какой-нибудь торрент на «жирном» канале, то диск просто за таким количеством запросов не угонится – ему придется считывать и записывать мегабайты данных вместо каждых, допустим, четырех килобайт.

Именно эту проблему нужно решать – делать это можно разными способами. Seagate, например, попробовал реализовать многоуровневую технологию кэширования: в каждом SMR-диске компании есть порядка гигабайта флэш-памяти и некоторое количество дорожек с «обычными» промежутками, которые и принимают на себя «плохие» операции записи. В теории – на практике сам диск оперирует простыми командами: прочитать сектор с таким-то адресом или записать таковой. Так что может и ошибиться – и запихнет в кэш и некоторое количество последовательной записи, но тут лучше пересолить, чем наоборот . Запросы кончились – диск займется упаковкой данных в ленты. Всё хорошо – если медиакэш не кончится еще в процессе записи.

Ситуация чем-то похожа на многие SSD с динамическим SLC-кэшированием: которые сначала бодро и быстро записывают все свободные ячейки в однобитном режиме, а потом уже (при необходимости) начинают упаковывать данные в TLC/QLC-массив. Если же свободные ячейки кончатся раньше, чем записываемые данные, то придется одновременно и принимать новые данные, и упаковывать старые – откуда и характерный провал в скорости, как на картинке выше. Жесткому диску с медиакэш приходится заниматься тем же самым – только он делает это еще медленнее. Да и медиакэш не может быть большим. Это в SSD SLC-кэш может занимать до 1/4-1/3 от свободной емкости - жесткие диски такого себе позволить не могут. 

WD придерживается другого подхода – но тоже унаследованного от SSD фактически. В дисках компании применяется двухуровневая схема адресации с динамической трансляцией адресов логических (LBA) и физических (PBA) блоков данных. Все операции записи выполняются в первый же попавшийся свободный PBA (фактически в открытую в данный момент на запись ленту), а в таблицу трансляции записывается соответствие пары LBA-PBA. Поэтому запись всегда получается последовательной однопоточной – и это хорошо. А если нам надо изменить блок? Тоже ничего страшного – также записываем новые данные в свободный PBA и меняем запись в таблице трансляции. Раньше L0001 соответствовал P016D – а теперь его надо искать в PA240. А блок P016D просто помечаем как мусорный – в нем актуальных данных больше нет.

Раз есть мусор, значит его надо чистить. О том мусоре, что диск создал сам, он знает. А если система удаляет какой-то файл, то желательно послать диску команду TRIM – чтобы пометить ранее занятые им блоки как мусор. Классическим жестким дискам это не требовалось – именно потому, что любой сектор можно было переписать в любой момент не глядя. Дискам с трансляцией адресов – нужно.


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

А вот так могут себя вести бенчмарки. Слева – запуск чтения на чистом диске, справа – после его прописывания тестом записи. Почему такая разница? Пока данные физически не записывались, никакого соответствия LBA-PBA просто нет. А читаем-то мы по логическим адресам! И эта скорость никак не зависит от места расположения «предполагаемых» данных, а время доступа стремится к нулю, поскольку запрос по нераспределенным LBA обрабатывается практически мгновенно. Прописали диск последовательно? Получили такую же картинку, как и на обычном жестком диске. Прописали бы не последовательно – получили бы и чтение по произвольным адресам.

Последнее как раз и является проблемой данного подхода. В принципе, такое можно заметить и на SSD, но не в бытовых сценариях, а специально постаравшись. Время доступа при чтении у флэш-памяти низкое и практически не зависит от того, какой блок запрашивался перед этим. Поэтому существенной разницы между произвольной и последовательной адресацией часто нет. А жесткие диски – устройства, все-таки, больше последовательные. Не в той степени, как магнитные ленты, но хаотические перемещения блока магнитных головок занимают достаточно большое время. Соседние блоки друг за другом читаются быстро, однако... Если мы одновременно ведем запись нескольких файлов по произвольным адресам, то на диске физически получится каша – данные расположатся в порядке поступления. Относящиеся к разным файлам вперемешку. А логические блоки при этом могут идти последовательно – но их последовательное (с точки зрения логических адресов) чтение приведет к чтению с произвольной (физической) адресацией. Полный аналог фрагментации – только на уровне ниже файловой системы, так что и наводить порядок куда сложнее. И даже один файл может размазать по всему диску – если мы не просто запишем его один раз и оставим в покое, а будем модифицировать.

Есть ли нормальный универсальный способ борьбы с такой фрагментацией? Теоретически диск сам будет заниматься этим в простое – и действительно занимается. Это даже во время тестирования заметно – после окончания теста на запись с произвольной адресацией можно слушать стрёкот головок еще час, а то и больше. Всегда есть чем заняться – например, те же ленты уплотнить. Если в них остался только мусор, то добавить ленту к списку свободных и использовать в дальнейшем для записи. Если почти только мусор, то все ценные блоки можно скопировать в другую ленту – и свести задачу к уже решенной. Даже отдельные блоки при желании и свободном времени можно подвигать. Но всё это легко для внутреннего диска, а внешние и подключают на короткое время. Потом отключают – и заниматься своими делами им уже некогда.

Хотя иногда проблемы можно и исправить. Допустим, скачали мы несколько файлов тем же торрент-клиентом – и легли они вперемешку. Дальше просто копируем (не перемещаем!) их в пределах того же диска – и получаем «нормальную» последовательную запись. Либо просто на другой диск – там они будут нормальными. А вот на источнике могут остаться «дырки», которые в дальнейшем будут как-то заполняться новой информацией. В описанном примере – не останутся, но ведь мы можем переместить на другое устройство или удалить отдельный файл, оставив прочие скачанные надолго – и останется у нас фрагментированное свободное пространство. Которое уборка мусора позднее может и консолидировать – а может и нет.

В общем, при таком подходе многое начинает зависеть не от диска, а от сценария и интенсивности его использования. В роли банальной файлопомойки, куда файлы (желательно большие) просто копируются штатными средствами, потом лежат и иногда удаляются подобный диск может работать годами – и никто не заметит никакого подвоха. Использовать же подобный винчестер в качестве рабочего тоже можно. Как долго? Да сколько угодно. Но не забывая, что проблемы имеют тенденцию накапливаться. Даже SSD, где они куда менее выражены, «замучать» некоторыми сценариями до такого состояния, что тормоза будут видны невооруженным глазом, можно. С жесткими дисками это сделать тем более просто. А если сложными сценариями не увлекаться, а использовать диск для хранения «холодных» данных или там резервного копирования, так о всяких ужасах можно и не задумываться вообще.

При этом смоделировать «ужасы» не так уж и сложно. Но есть одна тонкость – любое моделирование синтетично, так что всегда возможны претензии, что переборщили или недосолили. Так что заниматься этим я, пожалуй, не буду. А бегло протестировать парой бенчей типичный черепичный винчестер с трансляцией адресов – почему бы и нет. Это условия, близкие к идеальным – но они могут и на практике сохраняться долго. Или неограниченно долго. Или не сохраняться – повторюсь, тут всё зависит не столько от диска, сколько от того, как им пользуются.

Диск – типовой WD Blue WD60EZAZ. Одно из самых дешевых предложений своего класса – 6 ТБ в пределах 10 тысяч рублей. В принципе, в тот же бюджет можно впихнуть SSD на 2 ТБ – но бюджетную модель со своими косяками, да и два – не шесть. Почему такие модели и актуальны. В первую очередь для тех данных, быстрый доступ к которым не требуется. Поскольку тут типичная для дешевых моделей скорость вращения пластин всего в 5400 об/мин. Пластин всего три – благодаря использованию SMR как раз. В принципе, в топовых моделях пара терабайт на пластину помещается и без черепицы, но в топовых – с соответствующими ценами. Хотя на деле стоимость хранения информации на самых дешевых «воздушных» шестерках уже повыше, чем на каком-нибудь топовом жестком диске на 18 ТБ. И скорость у последнего выше, и насчет потенциальных проблем SMR-технологии можно не думать. Но выложить придется сразу где-то 26 тысяч рублей – многовато. А 10 – терпимо. И для надежности лучше три диска купить вместо одного. Особенно если нет нужды хранить именно десятки терабайт сразу. Впрочем, это вообще отдельная тема.

Для начала – классические дисковые тесты в HD Tune Pro. Что бывает при попытке чтения непрописанного диска – показано выше. Если сначала прописать, а потом уже читать, то никаких аномалий – винчестер как винчестер.

А вот что касается файловых операций, то здесь много интересного – и есть кое-что необычное. Но начнем с обычного – как и следовало ожидать, все скорости снижаются от внешних ко внутренним дорожкам (я тесты жестких дисков провожу на первых и последних 300 ГБ). Чистое чтение – полная классика: в один поток те скорости, которые и можно ожидать от бюджетной модели на 5400 об/мин и не очень плотных пластин.  Напомню, что внушительные 2 ТБ на пластину тут получаются в первую очередь благодаря увеличению поперечной плотности записи – а она на скорость почти не влияет в отличие от продольной. Вот если взять топовые модели с 2 ТБ без SMR, да еще и на скорости 7200 об/мин, то там раза так в полтора выше будет. Но в принципе приемлемо. А переход к многопоточному чтению скорость режет раза в два – и это тоже традиционное положение дел. SSD в этом случае скорость обычно наращивают – жесткие диски наоборот.

Что необычного? Во-первых, на фоне чтения хорошо видно, что многопоточная запись диск почти не тормозит. Самую малость – можно пренебречь. И кто внимательно читал теоретическую муть выше, тот легко поймет – почему. Ну да – диск на самом деле такие операции неплохо линеаризует. Еще забавнее то, что с запись по произвольным адресам он делает то же самое. И это прекрасно видно по шаблону rw_rand_32. Штраф за произвольную адресацию, конечно, все равно есть – вот только диск с этим сценарием справляется раза в полтора быстрее, нежели топовые CMR-модели! Что это значит в бытовом плане? Что сказано выше, например – с торрентами на канале в 500 Мбит/с он справится (притормаживать процесс начнет только ближе к концу), а «классика» - нет. Другой вопрос, что «классику» в таком качестве можно эксплуатировать безболезненно и долго (если пренебречь ограниченной скоростью), а тут будет нарастать физическая фрагментация. Которую не так-то просто ликвидировать – утилиты на этом уровне не работают, ограничиваясь LBA. Но иногда и аккуратно – можно.

На самом деле если припрет, то такой диск можно использовать и в качестве основного и единственного накопителя в ПК. Но лучше этого не делать – и не только из-за нарастания проблем с фрагментацией. Это нам прекрасно показывает лучший комплексный бенчмарк PCMark10 Storage Full System Drive («лучший» он поскольку других подобных фактически и нет), результаты которого я привожу для двух жестких дисков и двух бюджетных SSD. Один даже экстремально дешевый – Acos SSD 2 ТБ, напомню, я решил купить для издевательств, поскольку он летом был самым дешевым на AliExpress. Ну и тормозит, конечно, порядком – QLC-память в паре с дешевым безбуферным контроллером взлететь не дает. Digma тоже дешевая – не только 1 ТБ, но и 2 ТБ уложится в 8 тысяч рублей. И уже работает куда бодрее. А жесткие диски... даже если взять пафосный IronWolf Pro – который CMR и 7200 об/мин, то все равно даже в прыжке не получится угнаться и за Acos. Так что и нечего зверушку зря мучать. WD Blue помедленнее и на такие сценарии не слишком рассчитан – и его это в еще большей степени касается.

В общем и целом бояться SMR не нужно – нужно его правильно использовать. Идеальный случай – файлопомойка, которая просто последовательно заполняется. А файлы записываются и, может быть, иногда удаляются – но прямо на таком диске не редактируются. И в RAID-массив в NAS его лучше не ставить. А воткнуть как отдельный том в тот же NAS – можно. Например, для какой-нибудь видеотеки сойдет. Только файлы лучше качать на другой диск, а потом уже спокойненько и последовательно переносить на этот. И т. п.

Тут, конечно, возникает вопрос: а может ну ее – жизнь с такими ограничениями. Не лучше ли без них? Лучше, конечно. Но дороже. За те деньги, что сейчас просят за WD Blue WD60EZAZ, можно купить диск без SMR – но только  на 4 ТБ. Если не двигаться в емкости, то платить придется раза в полтора дороже. И SSD это в еще большей степени касается: в тот же бюджет впишется только бюджетная модель на 2 ТБ. Приличная – раза в полтора дороже и тоже на 2 ТБ. А тут, всё-таки, 6 дешевых терабайт. Что иногда важно. И полезно – если использовать такой жесткий диск в комплексе с другими накопителями. Пусть каждый занимается своим делом – тогда и места будет много, и переплачивать за это не придется.