Чередование данных

Чередование данных — это техника сегментации логически последовательных данных, таких как файл, таким образом, чтобы последовательные сегменты хранились на разных физических устройствах хранения.

Чередование данных полезно, когда устройству обработки требуется получать информацию быстрее, чем может предоставить одно устройство хранения. При распределении сегментов данных по нескольким устройствам, к которым можно обращаться одновременно, увеличивается общая пропускная способность. Путём распределения сегментов на несколько устройств, которые могут быть доступны одновременно, полная пропускная способность увеличивается. Это также полезный метод балансировки ввода/вывода в среде массива дисков. Чередование используется в дисковых приводах массивов независимых дисков с избыточностью (RAID), контроллерах сетевых интерфейсов, дисковых массивах, копьютерах в кластерных файловых системах, grid хранилищах данных и RAM в некоторых системах

Метод

Один из способов чередования данных заключается в циклическом распределении последовательных блоков по накопителям, начиная с первого блока данных. Такой подход хорошо подходит для потоковой передачи данных, но последующие случайные обращения потребуют информации о том, на каком устройстве находятся нужные данные. Если данные хранятся таким образом, что физический адрес каждого блока данных напрямую связан с определенным устройством, то устройство, к которому нужно обратиться для получения каждого запрошенного блока, можно вычислить по адресу, не зная смещения данных в общей последовательности.

Могут быть использованы другие методы, при которых последовательные сегменты не хранятся на последовательных устройствах. Такое непоследовательное чередование может иметь преимущества в некоторых схемах коррекции ошибок.

Преимущества и недостатки

Преимущества чередования данных включают повышение производительности и пропускной способности. Последовательное чередование обращений к данным позволяет суммарно увеличить меньшую пропускную способность каждого устройства хранения данных, умножив её на количество используемых устройств. Увеличенная пропускная способность даёт возможность устройству обработки данных продолжать работу без перерывов и, следовательно, быстрее завершать свои процессы. Это проявляется в улучшении производительности обработки данных.

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

Терминология

Сегменты последовательных данных, записываемые или считываемые с диска до продолжения операции на следующем диске, обычно называют чанками (chunk — кусок, порция), а логические группы, образующие единую операцию чередования, называются страйпами или полосами. Количество данных в одном чанке (единице страйпа) часто выражается в байтах и может называться размером чанка, глубиной или длиной чередования. Число дисков данных в массиве иногда называется шириной страйпа, но это понятие также может относиться к объему данных в пределах одного страйпа[1][2][3][4].

Объем данных в одной полосе, умноженный на количество дисков данных в массиве (то есть глубина полосы, умноженная на ширину полосы, что в геометрической аналогии дало бы площадь), иногда называют размером полосы или шириной полосы[5]. Широкое чередование возникает, когда блоки данных распределяются по нескольким массивам, возможно, по всем дискам системы. Узкое чередование возникает, когда блоки данных распределяются в накопителях одного массива.

Приложения

Разделение данных применяется в некоторых базах данных, таких как Sybase, и некоторых RAID-устройствах под управлением программного или аппаратного обеспечения, таких как подсистема массива IBM 9394 RAMAC. Файловые системы кластеров также используют разделение данных. Автоматическое управление хранилищем (ASM) компании Oracle позволяет создавать ASM-файлы с крупным или мелким чередованием.

RAID
В некоторых конфигурациях RAID, таких как RAID 0, выход из строя одного диска в массиве приводит к полной потере всех данных. В других конфигурациях RAID, таких как RAID 5, который использует распределенную четность и обеспечивает избыточность, при отказе одного диска данные могут быть восстановлены с помощью остальных дисков массива.
LVM2
Чередование данных можно реализовать в Linux с помощью системы управления логическими томами (LVM). Система LVM позволяет настраивать степень детализации шаблона чередования. Инструменты LVM дают возможность применять чередование данных совместно с зеркалированием диска. LVM предоставляет дополнительное преимущество в виде кэширования чтения и записи на NVM Express для медленно вращающихся накопителей. LVM обладает и другими преимуществами, не связанными напрямую с чередованием данных (например, снимки, динамическое изменение размера и т. д.).
Btrfs и ZFS
Эти системы обладают функциями, схожими с RAID, но с повышенной безопасностью благодаря проверке целостности блоков для обнаружения поврежденных секторов. Кроме того, они предлагают гибкость в виде возможности добавлять произвольное количество дополнительных дисков. Также имеются и другие преимущества, не связанные напрямую с распределением данных (например, копирование при записи).

См. также

Примечания

  1. Red Hat Enterprise Linux 6 storage administration guide, chapter 6. The ext4 file system. Red Hat (9 октября 2014). Дата обращения: 8 февраля 2015.
  2. mdadm(8) – Linux man page. linux.die.net. Дата обращения: 8 февраля 2015.
  3. Linux kernel documentation: RAID setup. kernel.org (11 ноября 2014). Дата обращения: 8 февраля 2015.
  4. RAID chunk size (PDF). xyratex.com 6–7 (январь 2008). Дата обращения: 8 февраля 2015. Архивировано из оригинала 1 августа 2014 года.
  5. "Stripe depth is the size of the stripe, sometimes called stripe unit. Stripe width is the product of the stripe depth and the number of drives in the striped set."