Международная конференция разработчиков
и пользователей свободного программного обеспечения

Что такое SMR-диски и как их готовить

Yauhen Kharuzhy, Minsk, belarus

LVEE Winter 2016

Brief review of Shingled Magnetic Recording (SMR) drives and status of their support in Linux is presented including projects which are currently in development supported by Seagate and HGST companies.

Введение

Плотность записи на магнитные диски растёт, но расти она может не бесконечно. Текущая применяемая в накопителях технология, перпендикулярная магнитная запись, имеет теоретический предел плотности 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, за счёт чего необходимость перезаписи произвольных секторов сведена к минимуму.

Библиография:

  1. H. Reinecke. Strategies for running unmodified filesystems on SMR drives
  2. A. Palmer. SMR in Linux Systems
  3. https://github.com/Seagate/ZDM-Device-Mapper
  4. https://github.com/Seagate/SMR_FS-EXT4
  5. Zoned Device ATA Command Set (ZAC). Working Draft, r05. T13 Technical Committee of Accredited Standards Committee INCITS
  6. Zoned Block Commands (ZBC). Working Draft, r4b. T10 Technical Committee of Accredited Standards Committee INCITS
  7. HGST Ultrastar Archive Ha10. Hard disk drive specifications. Revision 1.0.

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад