Что такое SMR-диски и как их готовить
LVEE Winter 2016
Введение
Плотность записи на магнитные диски растёт, но расти она может не бесконечно. Текущая применяемая в накопителях технология, перпендикулярная магнитная запись, имеет теоретический предел плотности 1 Тбит/кв.дюйм.
Один из вариантов преодоления этого предела — так называемая черепичная магнитная запись, SMR (Shingled Magnetic Recording). В этой технологии используется тот факт, что ширина читающей головки заметно меньше, чем ширина записывающей головки. Соседние дорожки при записи располагаются с перекрытием, каждая следующая перезаписывает большую часть предыдущей, оставляя небольшую полоску нетронутых данных для чтения.
В первых же версиях SMR дисков, выпущенных Seagate и HGST, удалось повысить плотность записи на 25%.
Черепичное расположение дорожек приводит к тому, что запись на них должна производиться последовательно, иначе данные будут потеряны из-за перезаписи “вышележащей” дорожки “нижележащей”. Для того, чтобы работа с диском не превращалась в работу с “магнитной лентой” без возможности перемотки, диск делится на зоны. Внутри каждой зоны запись должна производиться последовательно, но работа с зонами может вестись в любом порядке.
Особенности работы SMR дисков
Как уже было сказано, накопители, использующие технологию SMR, разделены на зоны. Для удобства работы и возможности организации файловых систем на таких дисках, зоны делаются разных типов:
- Conventional, “обычная”, — зона, внутри которой возможны произвольные запись и чтение, как на классических магнитных дисках;
- Sequential Write, последовательной записи — должна производиться только последовательно, либо в которой произвольная запись эмулируется встроенным ПО накопителя (Sequential Write Required и Sequential Write Preferred, соответственно).
В зонах последовательной записи есть понятие “указателя записи”, Write Pointer (WP) – переменной, хранящейся на диске, которая указывает на место, где должна производиться следующая операция записи, чтобы не нарушить последовательность. В случае чтения за пределами записанной области или записи в сектор, отличный от значения WP, прошивка диска либо прерывает выполнение команды с ошибкой, либо эмулирует произвольные чтение-запись, в зависимости от типа зоны.
Также каждая зона может находиться в различных состояниях:
- Empty
- Implicit Open
- Explicit Open
- Closed
- Full
- Read Only
- Offline
Для некоторых дисков количество зон, одновременно находящихся в открытом состоянии, может быть ограничено.
DM, HA, HM диски
В зависимости от того, на какой стороне реализуется работа с зонами последовательной записи, накопители делятся на:
- Device Managed (DM) – накопители, в которых все действия, специфичные для SMR-технологии, спрятаны от контроллера и реализуются встроенным ПО. Для ОС они представляются, как обычные диски, аналогично уже привычным нам SSD, в которых внутренняя “кухня” точно так же скрыта за стандартными командами. Минус подхода — потери в быстродействии.
- Host Aware (HA) – диски, в которых произвольные чтение-запись также эмулируются встроенным ПО, но при этом присутствует набор команд, который позволяет операционной системе получить информацию о зонах и работать с ними;
- Host Managed (HM) – накопители, встроенное ПО которых никак не обрабатывает случаи произвольных чтения-записи в зоны последовательной записи, т.е., операционная система обязана обеспечивать корректность операций чтения-записи самостоятельно.
Текущий статус стандартов
Интерфейс работы с SMR дисками на данный момент ещё не стандартизован, но уже существуют черновики стандартов, определяющие модель работы накопителей и набор соответствующих команд:
- SCSI ZBC, Zoned Block Device — описывает набор зональных команд для накопителей с интерфейсом SCSI;
- ZAC, Zoned Device ATA Command Set — описывает набор зональных команд для ATA-устройств.
Поскольку черновики стандартов “пишутся на ходу”, то уже выпущенные производителями диски не всегда им соответствуют, местами отличия достаточно существенные (например, у HGST в некоторых командах параметры передаются в другом порядке), что необходимо учитывать при написании драйверов.
Linux:
уровень SCSI-устройства, libata:
Поддержка есть в основной ветке, Host-Managed диски определяются не как диски, но как SCSI устройства, что позволяет работать с ними через интерфейс SG_IO.
уровень блочного устройства:
Существует набор патчей от Dr. Hannes Reinecke (SUSE), которые реализуют интерфейс стандартного диска для SMR устройств и поддерживает работу с зонами. Эту же реализацию в немного изменённом виде использует Seagate в своём проекте портирования Ext4.
device mapper:
Существует две реализации ZDM (zoned device mapper): от Dr. Hannes Reinecke и от Seagate. Первая обеспечивает эмуляцию произвольных чтения-записи с помощью простого кэширования и перезаписи содержимого зон. Вторая — более сложный вариант, использующий динамическое отображение секторов и зон, подобно тому, как это делают контроллеры SSD дисков.
файловые системы:
Специализированных ФС нет. Есть наработки Seagate по портированию Ext4, также компанией HGST сейчас ведётся работа по добавлению поддержки SMR в btrfs. Btrfs в данном применении обещает быть более перспективной, чем Ext4, поскольку в ней изначально используется подход Copy on Write, за счёт чего необходимость перезаписи произвольных секторов сведена к минимуму.
Библиография:
- H. Reinecke. Strategies for running unmodified filesystems on SMR drives
- A. Palmer. SMR in Linux Systems
- https://github.com/Seagate/ZDM-Device-Mapper
- https://github.com/Seagate/SMR_FS-EXT4
- Zoned Device ATA Command Set (ZAC). Working Draft, r05. T13 Technical Committee of Accredited Standards Committee INCITS
- Zoned Block Commands (ZBC). Working Draft, r4b. T10 Technical Committee of Accredited Standards Committee INCITS
- HGST Ultrastar Archive Ha10. Hard disk drive specifications. Revision 1.0.
Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license
Back