Разное

Дисковые raid массивы: что это, как создать и настроить?

Содержание

RAID-массивы на NVMe / Блог компании Selectel / Хабр

В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых аппаратных RAID-контроллеров с поддержкой NVMe.

Все разнообразие применений технологии RAID встречается в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.

В этой статье будет краткий обзор технологии RAID, небольшая инструкция по созданию RAID-массивов с помощью трех разных инструментов и сравнение производительности виртуальных дисков при использовании каждого из способов.

Что такое RAID?

Википедия дает исчерпывающее определение технологии RAID:

RAID (англ. Redundant Array of Independent Disks — избыточный массив независимых (самостоятельных) дисков) — технология виртуализации данных для объединения нескольких физических дисковых устройств в логический модуль для повышения отказоустойчивости и производительности.

Конфигурация дисковых массивов и используемые при этом технологии зависят от выбранного уровня RAID (RAID level). Уровни RAID стандартизированы в спецификации Common RAID Disk Data Format. Она описывает множество уровней RAID, однако самыми распространенными принято считать RAID0, RAID1, RAID5 и RAID6.

RAID0, или Stripes, — это уровень RAID, который объединяет два или более физических диска в один логический. Объем логического диска при этом равен сумме объемов физических дисков, входящих в массив. На этом уровне RAID отсутствует избыточность, а выход из строя одного диска может привести к потере всех данных в виртуальном диске.

Уровень RAID1, или Mirror, создает идентичные копии данных на двух и более дисках. Объем виртуального диска при этом не превышает объема минимального из физических дисков. Данные на виртуальном диске RAID1 будут доступны, пока хотя бы один физический диск из массива работает. Использование RAID1 добавляет избыточности, но является достаточно дорогим решением, так как в массивах из двух и более дисков доступен объем только одного.

Уровень RAID5 решает проблему дороговизны. Для создания массива с уровнем RAID5 необходимо как минимум 3 диска, при этом массив устойчив к выходу из строя одного диска. Данные в RAID5 хранятся блоками с контрольными суммами. Нет строгого деления на диски с данными и диски с контрольными суммами. Контрольные суммы в RAID5 — это результат операции XOR, примененной к N-1 блокам, каждый из которых взят со своего диска.

Хотя RAID-массивы повышают избыточность и предоставляют резервирование, они не подходят для хранения резервных копий.

После краткого экскурса по видам RAID-массивов можно переходить к устройствам и программам, которые позволяют собирать и использовать дисковые массивы.

Виды RAID-контроллеров


Существует два способа создать и использовать RAID-массивы: аппаратный и программный. Мы рассмотрим следующие решения:

  • Linux Software RAID.
  • Intel® Virtual RAID On CPU.
  • LSI MegaRAID 9460-8i.

Отметим, что решение Intel® работает на чипсете, из-за чего возникает вопрос, аппаратное это решение или программное. Так, например, гипервизор VMWare ESXi считает VROC программным и не поддерживает официально.

Linux Software RAID


Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет Linux Software RAID к используемым накопителям, — быть блочным устройством, доступным системе.

Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного способа. Linux Software RAID организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:

[email protected]:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] 
unused devices: <none>

Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:

[email protected]:~# modprobe raid456
[email protected]:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
unused devices: <none>

Все операции с дисковыми массивами производятся через утилиту командной строки mdadm. Сборка дискового массива производится в одну команду:

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/nvme1n1 /dev/nvme2n1

После выполнения этой команды в системе появится блочное устройство /dev/md0, которое представляет из тебя виртуальный диск.

Intel® Virtual RAID On CPU

Intel® VROC Standard Hardware Key
Intel® Virtual RAID On CPU (VROC) — это программно-аппаратная технология для создания RAID-массивов на базе чипсетов Intel®. Данная технология доступна в основном для материнских плат с поддержкой процессоров Intel® Xeon® Scalable. По умолчанию VROC недоступен. Для его активации необходимо установить аппаратный лицензионный ключ VROC.

Стандартная лицензия VROC позволяет создавать дисковые массивы с 0, 1 и 10 уровнями RAID. Премиальная версия расширяет этот список поддержкой RAID5.

Технология Intel® VROC в современных материнских платах работает совместно с Intel® Volume Management Device (VMD), которая обеспечивает возможность горячей замены для накопителей с интерфейсом NVMe.

Intel® VROC со стандартной лицензией Настройка массивов производится через Setup Utility при загрузке сервера. На вкладке Advanced появляется пункт Intel® Virtual RAID on CPU, в котором можно настроить дисковые массивы.Создание массива RAID1 на двух накопителях
Технология Intel® VROC имеет свои «козыри в рукаве». Дисковые массивы, собранные с помощью VROC, совместимы с Linux Software RAID. Это означает, что состояние массивов можно отслеживать в /proc/mdstat, а администрировать — через mdadm. Эта «особенность» официально поддерживается Intel. После сборки RAID1 в Setup Utility можно наблюдать синхронизацию накопителей в ОС:

[email protected]:~# cat /proc/mdstat 
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md126 : active raid1 nvme2n1[1] nvme1n1[0]
      1855832064 blocks super external:/md127/0 [2/2] [UU]
      [>....................]  resync =  1.3% (24207232/1855832064) finish=148.2min speed=205933K/sec
      
md127 : inactive nvme1n1[1](S) nvme2n1[0](S)
      10402 blocks super external:imsm
       
unused devices: <none>

Отметим, что через mdadm нельзя собирать массивы на VROC (собранные массивы будут Linux SW RAID), но можно менять в них диски и разбирать массивы.

LSI MegaRAID 9460-8i

Внешний вид контроллера LSI MegaRAID 9460-8i
RAID-контроллер является самостоятельным аппаратным решением. Контроллер работает только с накопителями, подключенными непосредственно к нему. Данный RAID-контроллер поддерживает до 24 накопителей с интерфейсом NVMe. Именно поддержка NVMe выделяет этот контроллер из множества других.Главное меню аппаратного контроллера
При использовании режима UEFI настройки контроллера интегрируются в Setup Utility. В сравнении с VROC меню аппаратного контроллера выглядит значительно сложнее.Создание RAID1 на двух дисках
Объяснение настройки дисковых массивов на аппаратном контроллере является достаточно тонкой темой и может стать поводом для полноценной статьи. Здесь же мы просто ограничимся созданием RAID0 и RAID1 с настройками по умолчанию.

Диски, подключенные в аппаратный контроллер, не видны операционной системе. Вместо этого контроллер «маскирует» все RAID-массивы под SAS-накопители. Накопители, подключенные в контроллер, но не входящие в состав дискового массива, не будут доступны ОС.

[email protected]:~# smartctl -i /dev/sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               AVAGO
Product:              MR9460-8i
Revision:             5.14
Compliance:           SPC-3
User Capacity:        1,999,844,147,200 bytes [1.99 TB]
Logical block size:   512 bytes
Rotation Rate:        Solid State Device
Logical Unit id:      0x000000000000000000000000000000
Serial number:        00000000000000000000000000000000
Device type:          disk
Local Time is:        Sun Oct 11 16:27:59 2020 MSK
SMART support is:     Unavailable - device lacks SMART capability.

Несмотря на маскировку под SAS-накопители, массивы с NVMe будут работать на скорости PCIe. Однако такая особенность позволяет загружаться с NVMe в Legacy.

Тестовый стенд


Каждый из способов организации дисковых массивов имеет свои физические плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?

Для достижения максимальной справедливости все тесты будут проведены на одном и том же сервере. Его конфигурация:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 GB;
  • LSI MegaRAID 9460-8i;
  • Intel® VROC Standard Hardware Key;
  • 4x Intel® SSD DC P4510 U.2 2TB;
  • 1x Samsung 970 EVO Plus M.2 500GB.

Тестируемыми выступают P4510, из которых одна половина подключена к материнской плате, а вторая — к RAID-контроллеру. На M.2 установлена операционная система Ubuntu 20.04, а тесты будут выполняться при помощи fio версии 3.16.

Тестирование


В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 4 КБ. Каждый тест длится 5 минут. Перед началом для соответствующего блочного устройства выставляется none в качестве планировщика I/O. Команда fio выглядит следующим образом:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --iodepth=1 --loops=1000 --runtime=300  --rw=<mode> --filename=<blkdev>

Из результатов fio мы берем clat 99.00%. Результаты приведены в таблице ниже.
Помимо задержек при обращении к данным, хочется увидеть производительность виртуальных накопителей и сравнить с производительностью физического диска. Команда для запуска fio:

fio --name=test --blocksize=4k --direct=1 --buffered=0 --ioengine=libaio  --loops=1000 --runtime=300  --iodepth=<threads> --rw=<mode> --filename=<blkdev>

Производительность измеряется в количестве операций ввода-вывода. Результаты представлены в таблице ниже.

Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.

Заключение

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

RAID-массив. Варианты RAID-массивов. Восстановление массива RAID-0 stripe

Введение

Пословицу «Пока гром не грянет, мужик не перекрестится» знает почти каждый. Жизненная она: пока та или иная проблема не коснется юзера вплотную, тот о ней даже не задумается. Умер блок питания и прихватил с собой пару-тройку девайсов — пользователь бросается искать статьи соответствующей тематики о вкусном и здоровом питании. Сгорел или начал глючить от перегрева процессор — в «Избранном» появляется пара-тройка ссылок на развесистые ветки форумов, на которых обсуждают охлаждение CPU.

С жесткими дисками та же история: как только очередной винт, хрустнув на прощание головками, покидает наш бренный мир, обладатель ПК начинает суетиться, чтобы обеспечить улучшение жизненных условий накопителя. Но даже самый навороченный кулер не может гарантировать диску долгую и счастливую жизнь. На срок службы накопителя влияет много факторов: и брак на производстве, и случайный пинок корпуса ногой (особенно если кузов стоит где-нибудь на полу), и пыль, прошедшая сквозь фильтры, и высоковольтная помеха, посланная блоком питания… Выход один — резервное копирование информации, а если требуется бэкап на ходу, то самое время строить RAID-массив, благо сегодня почти каждая материнка обладает каким-нибудь RAID-контроллером.

На этом месте мы остановимся и сделаем краткий экскурс в историю и теорию RAID-массивов. Сама аббревиатура RAID расшифровывается как Redundant Array of Independent Disks (избыточный массив независимых дисков). Раньше вместо independent употребляли inexpensive (недорогой), но со временем это определение потеряло актуальность: недорогими стали почти все дисковые накопители.

История RAID началась в 1987 году, когда появилась на свет статья «Корпус для избыточных массивов из дешевых дисков (RAID)», подписанная товарищами Петерсоном, Гибсоном и Катцем. В заметке была описана технология объединения нескольких обычных дисков в массив для получения более быстрого и надежного накопителя. Также авторы материала рассказывали читателям о нескольких типах массивов — от RAID-1 до RAID-5. Впоследствии к описанным почти двадцать лет назад массивам прибавился RAID-массив нулевого уровня, и он обрел популярность. Так что же представляют собой все эти RAID-x? В чем их суть? Почему они называются избыточными? В этом мы и постараемся разобраться.

Если говорить очень простым языком, то RAID — это такая штука, которая позволяет операционной системе не знать, сколько дисков установлено в компьютере. Объединение хардов в RAID-массив — процесс, прямо противоположный разбиению единого пространства на логические диски: мы формирует один логический накопитель на основе нескольких физических. Для того чтобы сделать это, нам потребуется или соответствующий софт (об этом варианте мы даже говорить не будем — ненужная это вещь), или RAID-контроллер, встроенный в материнку, или отдельный, вставляемый в слот PCI либо PCI Express. Именно контроллер объединяет диски в массив, а операционная система работает уже не с HDD, а с контроллером, который ей ничего ненужного не сообщает. А вот вариантов объединения нескольких дисков в один существует великое множество, точнее, около десяти.

Какими бывают RAID?

Самый простой из них — JBOD (Just a Bunch of Disks). Два винчестера склеены в один последовательно, информация записывается сначала на один, а затем на другой диск без разбиения ее на куски и блоки. Из двух накопителей по 200 Гбайт мы делаем один на 400 Гбайт, работающий практически с той же, а в реальности с чуть меньшей скоростью, что и каждый из двух дисков.

JBOD является частным случаем массива нулевого уровня, RAID-0. Встречается также другой вариант названия массивов этого уровня — stripe (полоска), полное наименование — Striped Disk Array without Fault Tolerance. Этот вариант тоже предполагает объединение n дисков в один с объемом, увеличенным в n раз, но диски объединяются не последовательно, а параллельно, и информация на них записывается блоками (объем блока задает пользователь при формировании RAID-массива).

То есть в случае, если на два накопителя, входящие в массив RAID-0, нужно записать последовательность цифр 123456, контроллер разделит эту цепочку на две части — 123 и 456 — и первую запишет на один диск, а вторую — на другой. Каждый диск может передавать данные… ну, пусть со скоростью 50 Мбайт/с, а суммарная скорость двух дисков, данные с которых берутся параллельно, составляет 100 Мбайт/c. Таким образом, скорость работы с данными должна увеличиться в n раз (реально, конечно, рост скорости меньше, так как потери на поиск данных и на передачу их по шине никто не отменял). Но этот прирост дается не просто так: при поломке хотя бы одного диска информация со всего массива теряется.

RAID-массив нулевого уровня. Данные разбиваются на блоки и раскидываются по дискам. Контроля четности и резервирования нет.

То есть никакой избыточности и никакого резервирования нет и в помине. Считать этот массив RAID-массивом можно лишь условно, тем не менее он очень популярен. Мало кто задумывается о надежности, ее ведь никак не измеришь бенчмарками, зато все понимают язык мегабайт в секунду. Это не плохо и не хорошо, просто такое явление есть. Ниже мы поговорим о том, как и рыбку съесть, и надежность сохранить. Восстановление RAID-0 после сбоя

Кстати, дополнительный минус stripe-массива заключается в его непереносимости. Я не имею в виду то, что он плохо переносит какие-то отдельные виды пищи или, к примеру, хозяев. На это ему наплевать, но перенести куда-то сам массив — это целая проблема. Даже если притащить к другу оба диска и драйверы контроллера в придачу, не факт, что они определятся как один массив и данными удастся воспользоваться. Более того, известны случаи, когда простое подключение (без записи чего-либо!) stripe-дисков к «неродному» (отличному от того, на котором формировался массив) контроллеру приводило к порче информации в массиве. Не знаем, насколько эта проблема актуальна сейчас, с появлением современных контроллеров, но все же советуем быть аккуратнее.

RAID-массив первого уровня из четырех дисков. Диски разбиты на пары, на накопителях внутри пары хранятся одинаковые данные.

Первый по-настоящему «избыточный» массив (и первый появившийся на свет RAID) — RAID-1. Его второе название — mirror (зеркало) — объясняет принцип работы: все отведенные под массив диски разбиваются на пары, а информация считывается и записывается сразу на оба диска. Получается, что у каждого из дисков в массиве есть точная копия. В такой системе возрастает не только надежность хранения данных, но и скорость их чтения (читать можно сразу с двух винчестеров), хотя скорость записи остается такой же, как и у одного накопителя.

Как можно догадаться, объем такого массива будет равен половине суммы объемов всех входящих в него винчестеров. Минус такого решения — хардов нужно в два раза больше. Но зато надежность этого массива реально даже не равна двойной надежности одиночного диска, а намного выше этого значения. Выход из строя двух винчестеров в течение… ну, скажем, суток маловероятен, если в дело не вмешался, к примеру, блок питания. В то же время любой здравомыслящий человек, увидев, что один диск в паре вышел из строя, тут же его заменит, и даже если сразу после этого отдаст концы второй диск, информация никуда не денется.

Как видите, и у RAID-0, и у RAID-1 есть свои недостатки. А как бы от них избавиться? Если у вас есть минимум четыре винчестера, вы можете создать конфигурацию RAID 0+1. Для этого массивы RAID-1 объединяются в массив RAID-0. Или наоборот, иногда создают массив RAID-1 из нескольких массивов RAID-0 (на выходе получится RAID-10, единственное преимущество которого — меньшее время восстановления данных при выходе одного диска из строя).

Надежность такой конфигурации из четырех винчестеров равна надежности массива RAID-1, а скорость фактически такая же, как у RAID-0 (реально она, скорее всего, будет чуть ниже из-за ограниченных возможностей контроллера). При этом одновременный выход из строя двух дисков не всегда означает полную потерю информации: это произойдет лишь в случае, если сломаются диски, содержащие одни и те же данные, что маловероятно. То есть если четыре диска разбиты на пары 1-2 и 3-4 и пары объединены в массив RAID-0, то лишь одновременная поломка дисков 1 и 2 или 3 и 4 приведет к потере данных, в то время как в случае безвременной кончины первого и третьего, второго и четвертого, первого и четвертого или второго и третьего винчестеров данные останутся в целости и сохранности.

Однако главный недостаток RAID-10 — высокая стоимость дисков. Все-таки цену четырех (минимум!) винчестеров маленькой не назовешь, особенно если реально нам доступен объем лишь двух из них (о надежности и о том, сколько она стоит, как мы уже говорили, мало кто думает). Большая (100%-я) избыточность хранения данных дает о себе знать. Все это привело к тому, что в последнее время популярность приобрел вариант массива под названием RAID-5. Для его реализации необходимо три диска. Помимо самой информации, контроллер складирует на накопителях массива еще и блоки контроля четности.

Не будем вдаваться в подробности работы алгоритма контроля четности, скажем только, что он позволяет в случае потери информации на одном из дисков восстановить ее, используя данные четности и живые данные с других дисков. Блок четности имеет объем одного физического диска и равномерно распределяется по всем винчестерам системы так, что потеря любого диска позволяет восстановить информацию с него с помощью блока четности, находящегося на другом диске массива. Информация же разбивается на большие блоки и записывается на диски поочередно, то есть по принципу 12-34-56 в случае с трехдисковым массивом.

Соответственно, общий объем такого массива — это объем всех дисков минус емкость одного из них. Восстановление данных, разумеется, происходит не мгновенно, но зато такая система имеет высокую производительность и запас надежности при минимальной стоимости (для массива объемом 1000 Гбайт нужно шесть дисков по 200 Гбайт). Впрочем, производительность такого массива все равно будет ниже скорости stripe-системы: при каждой операции записи контроллеру нужно обновлять еще и индекс четности.

RAID-0, RAID-1 и RAID 0+1, иногда еще RAID-5 — этими уровнями чаще всего исчерпываются возможности десктопных RAID-контроллеров. Более высокие уровни доступны лишь сложным системам, основой для которых служат SCSI-винчестеры. Однако счастливые обладатели SATA-контроллеров с поддержкой Matrix RAID (такие контроллеры встроены в южные мосты ICH6R и ICH7R от компании Intel) могут воспользоваться преимуществами массивов RAID-0 и RAID-1, имея всего два диска, а те, у кого есть плата с ICH7R, могут объединить RAID-5 и RAID-0, если у них есть четыре одинаковых накопителя.

Как это реализуется на практике? Разберем более простой случай с RAID-0 и RAID-1. Допустим, вы купили два харда по 400 Гбайт. Вы разбиваете каждый из накопителей на логические диски объемом 100 Гбайт и 300 Гбайт. После этого с помощью зашитой в BIOS утилиты Intel Application Accelerator RAID Option ROM вы объединяете 100-гигабайтные разделы в stripe-массив (RAID-0), а 300-гигабайтные — в массив Mirror (RAID-1). Теперь на быстрый диск объемом 200 Гбайт можно складывать, скажем, игрушки, видеоматериал и другие данные, требующие высокой скорости дисковой подсистемы и притом не очень важные (то есть те, о потере которых вы не будете очень сильно жалеть), а на зеркалируемый 300-гигабайтный диск вы перемещаете рабочие документы, архив почты, служебный софт и другие жизненно необходимые файлы. При выходе из строя одного диска вы лишаетесь того, что было размещено на массиве stripe, но данные, размещенные вами на втором логическом диске, дублируются на оставшемся накопителе.

Объединение уровней RAID-5 и RAID-0 подразумевает то, что часть объема четырех дисков отведена под быстрый stripe-массив, а другая часть (пусть это будут 300 Гбайт на каждом диске) приходится на блоки данных и блоки четности, то есть вы получаете один сверхбыстрый диск объемом 400 Гбайт (4 х 100 Гбайт) и один надежный, но менее быстрый массив объемом 900 Гбайт 4 х 300 Гбайт минус 300 Гбайт на блоки четности.

Как видите, технология эта крайне перспективна, и будет неплохо, если ее поддержат другие производители чипсетов и контроллеров. Очень уж заманчиво иметь на двух дисках массивы разных уровней, быстрые и надежные.

Вот, пожалуй, и все виды RAID-массивов, которые применяются в домашних системах. Однако в жизни вам могут встретиться RAID-2, 3, 4, 6 и 7. Так что давайте все-таки посмотрим, что это за уровни такие.

RAID-2. В массива такого типа диски делятся на две группы — для данных и для кодов коррекции ошибок, причем если данные хранятся на n дисках, то для складирования кодов коррекции необходимо n-1 дисков. Данные записываются на соответствующие винчестеры так же, как и в RAID-0, они разбиваются на небольшие блоки по числу дисков, предназначенных для хранения информации. Оставшиеся диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо винчестера из строя возможно восстановление информации. Метод Хемминга давно применяется в памяти типа ECC и позволяет на лету исправлять мелкие однобитовые ошибки, если они вдруг возникнут, а если ошибочно будут переданы два бита, это будет обнаружено опять-таки с помощью систем контроля четности. Впрочем, держать ради этого громоздкую структуру из почти двойного количества дисков никому не хотелось, и этот вид массива не получил распространения.

Структура массива RAID-3 такова: в массиве из n дисков данные разбиваются на блоки размером 1 байт и распределяются по n-1 дискам, а еще один диск используется для хранения блоков четности. В RAID-2 для этой цели стояло n-1 дисков, но большая часть информации на этих дисках использовалась только для коррекции ошибок на лету, а для простого восстановления в случае поломки диска достаточно меньшего ее количества, хватает и одного выделенного винчестера.

RAID третьего уровня с отдельным диском для хранения информации о четности. Резервирования нет, но данные восстановить можно.

Соответственно, отличия RAID-3 от RAID-2 очевидны: невозможность коррекции ошибок на лету и меньшая избыточность. Преимущества таковы: скорость чтения и записи данных высока, а для создания массива требуется совсем немного дисков, всего три. Но массив этого типа хорош только для однозадачной работы с большими файлами, так как наблюдаются проблемы со скоростью при частых запросах данных небольшого объема.

Массив пятого уровня отличается от RAID-3 тем, что блоки четности равномерно разбросаны по всем дискам массива.

RAID-4 похож на RAID-3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось «победить» проблему низкой скорости передачи данных небольшого объема. Запись же производится медленно из-за того, что четность для блока генерируется при записи и записывается на единственный диск. Используются массивы такого типа очень редко.

RAID-6 — это тот же самый RAID-5, но теперь на каждом из дисков массива хранятся два блока четности. Таким образом, при выходе двух дисков из строя информация все еще может быть восстановлена. Разумеется, повышение надежности привело к уменьшению полезного объема дисков и к увеличению минимального их количества: теперь при наличии n дисков в массиве общий объем, доступный для записи данных, будет равен объему одного диска, умноженному на n-2. Необходимость вычисления сразу двух контрольных сумм определяет второй недостаток, унаследованный RAID-6 от RAID-5, — низкую скорость записи данных.

RAID-7 — зарегистрированная марка компании Storage Computer Corporation. Структура массива такова: на n-1 дисках хранятся данные, один диск используется для складирования блоков четности. Но добавилось несколько важных деталей, призванных ликвидировать главный недостаток массивов такого типа: кэш данных и быстрый контроллер, заведующий обработкой запросов. Это позволило снизить количество обращений к дискам для вычисления контрольной суммы данных. В результате удалось значительно повысить скорость обработки данных (кое-где в пять и более раз).


Массив уровня RAID 0+1, или конструкция из двух массивов RAID-1, объединенных в RAID-0. Надежно, быстро, дорого.

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

Создание массива

Надеюсь, с выбором типа массива вы уже справились. Если на вашей плате есть RAID-контроллер, вам ничего, кроме нужного количества дисков и драйверов этого самого контроллера, не понадобится. Кстати, имейте в виду: есть смысл объединять в массивы только диски одинакового объема, причем лучше одной модели. С дисками разного объема может отказаться работать контроллер, и, скорее всего, вы сможете задействовать лишь часть большого диска, равную по объему меньшему из дисков. Кроме того, даже скорость stripe-массива будет определяться скоростью самого медленного из дисков. И мой вам совет: не пытайтесь сделать RAID-массив загрузочным. Это возможно, но в случае возникновения каких-либо сбоев в системе вам придется нелегко, так как восстановление работоспособности будет сильно затруднено. Кроме того, опасно размещать несколько систем на таком массиве: почти все программы, отвечающие за выбор ОС, убивают информацию из служебных областей винчестера и, соответственно, портят массив. Лучше выбрать иную схему: один диск — загрузочный, а остальные объединены в массив.


Matrix RAID в действии. Часть объема дисков используется массивом RAID-0, оставшуюся часть пространства забирает массив RAID-1.

Каждый RAID-массив начинается с BIOS RAID-контроллера. Иногда (только в случае с интегрированными контроллерами, да и то не всегда) он встроен в основной BIOS материнки, иногда расположен отдельно и активируется после прохождения самотестирования, но в любом случае вам туда надо. Именно в BIOS задаются нужные параметры массива, а также размеры блоков данных, используемые винчестеры и так далее. После того как вы все это определите, достаточно будет сохранить параметры, выйти из BIOS и вернуться в операционную систему.

Там обязательно нужно установить драйверы контроллера (как правило, дискета с ними прилагается к материнке или к самому контроллеру, но они могут быть записаны на диск с другими драйверами и служебным софтом), перезагрузиться, и все, массив готов к работе. Можете разбивать его на логические диски, форматировать и заполнять данными. Помните только о том, что RAID не панацея. Он спасет вас от потери данных при гибели винчестера и минимизирует последствия такого исхода, но не спасет от скачков напряжения в сети и сбоев некачественного блока питания, который убивает оба диска сразу, без оглядки на их «массивность».

Пренебрежительное отношение к качественному питанию и температурному режиму дисков может существенно сократить срок жизни HDD, бывает, все диски массива выходят из строя, а все данные оказываются безвозвратно потерянными. В частности, современные винчестеры (в особенности IBM и Hitachi) очень чувствительны к каналу +12 В и не любят даже малейшего изменения напряжения на нем, так что перед закупкой всего оборудования, необходимого для построения массива, стоит проверить соответствующие напряжения и при необходимости включить новый БП в список покупок.

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

Кроме того, RAID не отменяет необходимости регулярно изготавливать резервные копии данных. Зеркалирование зеркалированием, но если вы случайно испортите или сотрете файлы, второй диск вам никак не поможет. Так что делайте бэкап всякий раз, когда вы можете его делать. Это правило действует вне зависимости от наличия RAID-массивов внутри ПК.

Так что, are you RAIDy? Да? Отлично! Только в погоне за объемом и скоростью не забудьте другую пословицу: «Заставь дурака Богу молиться, он и лоб расшибет». Крепких вам дисков и надежных контроллеров!

Ценовая выгода шумного RAID

RAID — это хорошо даже без оглядки на деньги. Но давайте посчитаем цену простейшего stripe-массива объемом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт каждый обойдутся вам примерно в $230. RAID-контроллеры встроены в большинство материнских плат, то бишь мы получаем их бесплатно.

В то же время 400-гигабайтный диск той же модели стоит $280. Разница — $50, и на эти деньги можно приобрести мощный блок питания, который вам, несомненно, понадобится. Я уж не говорю о том, что производительность составного «диска» при более низкой цене будет почти вдвое выше производительности одного винчестера.

Проведем теперь подсчет, ориентируясь на общий объем 250 Гбайт. Дисков по 125 Гбайт не существует, так что возьмем два винчестера по 120 Гбайт. Цена каждого диска — $90, цена одного 250-гигабайтного винчестера — $130. Что ж, при таких объемах за производительность приходится платить. А если взять 300-гигабайтный массив? Два диска по 160 Гбайт — примерно $200, один на 300 Гбайт — $170… Опять не то. Получается, что выгоден RAID только при использовании дисков очень большого объема.



Производительность RAID

Делая аудит производительности систем на базе 1С, мы очень

часто сталкиваемся со значительными проблемами в дисковой системе, вызванными

неправильной ее архитектурой. Поэтому мы решили создать специальный RAID-калькулятор, который позволяет просчитать потенциальную производительность

дисковой подсистемы и облегчить процесс ее проектирования. Конечно же, кроме

дисковой подсистемы важно правильно подобрать и другие компоненты серверной

платформы, процесс подбора которых хорошо описан в статье Проектирование сервера 1С.

RAID-калькулятор

Реализация дисковых подсистем может быть довольно

разнообразная: могут использоваться локальные диски, подключенные к встроенному

контроллеру, или использоваться внешний контроллер, а также могут использоваться

системы SAN (СХД, Storage). Но во всех способах реализации диски объединяются в

логические пулы, которые называются RAID-массивами. Такое объединение решает в

основном вопрос сохранности данных, т.е. в случае выхода из строя одного из

дисков логического массива – он продолжает работать без остановки сервиса, а

главное без потери данных. А также объединение дисков в пул может решать вопрос

производительности пула, например, RAID 0 значительно увеличивает скорость

чтения, но при этом увеличивает вероятность выхода из строя массива.

Итак, RAID – это технология виртуализации данных,

которая объединяет несколько дисков в логический элемент для повышения

отказоустойчивости и повышения производительности.

IOPS

Важным показателем производительности дисковой подсистемы

является количество элементарных операций в единицу времени (IOPS), которые

может выполнить диск. Для дисковой подсистемы это операции чтения и записи

данных. При планировании нагрузки для дисковой подсистемы важно представлять,

какую нагрузку будет давать тот или иной сервис на дисковую подсистему. Обычно

такие значения выводятся эмпирическим путем согласно уже полученного опыта на

подобных проектах.

Поэтому рассчитывая количество дисков и тип RAID-массива,

важно обращать внимание на нагрузку по IOPS. Важно заметить, что считается общее

количество IOPS, которые потом нужно разделить на операции чтения и операции

записи, так, например, на СУБД серверах разделение будет 80% на запись и 20% на

чтение, а на файловых серверах наоборот 70% чтения и 30% записи, но все зависит

от сервиса, который будет размещаться. Также стоит заметить, что значение IOPS

для каждого диска, приведенные ниже в Таблице 1, приблизительные, поскольку

разные операции дают разную нагрузку, например, последовательная запись блоками

данных по 4к даст значительно больший показатель IOPS, чем случайное чтение

блоками по 128К. Кроме того, производительность дисковой подсистемы измеряется

не только количеством IOPS, но и очередью диска, откликом и другими счетчиками,

о которых мы расскажем чуть ниже.











Диск Количество IOPS
SATA 7200 100
SAS 10000 140
SAS 15000 210
SSD 8600

Таблица 1. Примерное значение IOPS в разрезе дисков

Также в расчете IOPS для RAID-массивов использовались

пенальти для каждого типа массива. Например, в RAID 1 для записи данных

происходит две операции на один диск и на второй диск, поэтому такой массив

имеет пенальти 2. В RAID 5 для записи данных происходит 4 операции: чтение

данных, чтение четности RAID, запись данных, запись четности, поэтому пенальти

составляет 4. Для массивов 50, 60, 61 рассчитывался кумулятивный эффект для

составляющих RAID массивов. Значение пенальти Raid приведены в Таблице 2.

Виды RAID-массивов

Существует несколько распространенных разновидностей RAID

Массивов (см. Таблицу 2).

Таблица 2. Наиболее распространенные типы RAID-массивов

RAID 60 и 61 являются комбинированием RAID-массивов 0 и 1

соответственно, сегментами которого вместо отдельных дисков являются массивы

RAID 6. Такие массивы наследуют все преимущества и недостатки составляющих их

RAID-массивов. На практике наиболее распространенными RAID-массивами являются

RAID 1, RAID 5 и RAID 10.

Показатели производительности дисковой подсистемы

Проверка производительности дисковой подсистемы должна

проводиться на основе следующих показателей:

% Активности диска

Показывает процент общей загруженности диска. Представляет из

себя сумму значений счетчиков — процент активности диска при чтении и процент

активности диска при записи. При использовании RAID-массивов часто можно увидеть

значения этого счетчика больше 100%.

% Бездействия диска

Показывает время простоя диска, т.е. время, в течении

которого диск оставался в состоянии покоя, не обрабатывая операции чтения

\записи. В отличии от предыдущего показателя лежит строго в диапазоне от 100%

(полный покой) до 0% (полная загрузка).

Обращений к диску

Этот показатель как раз и показывает количество IOPS.

Предельные значения как раз и указаны в расчетах. Показатель можно

детализировать на обращения к диску при записи и при чтении.

Среднее время обращения к диску

Среднее время в секундах, требуемое для выполнения диском

одной операции чтения или записи. Складывается из значений времени на обращение

при чтении и времени на обращение при записи.

Средняя длина очереди диска

Средняя длина очереди диска отображает количество операций

диска, поставленное в очередь за определенный интервал времени. Это значение

рассчитывается на основе закона Литтла, согласно которому количество запросов,

ожидающих обработки, в среднем равняется частоте поступления запросов,

умноженной на время обработки запроса.

Текущая длина очереди диска

Показывает количество операций с диском, которые ожидают

обработки на текущий момент времени.

Скорость обмена с диском

Значение, которое показывает среднее количество байт на

чтение/запись, отправленных на диск за одну секунду.

Средний размер одного обмена с диском

Количество байт, передаваемое за одну IOPS. Определяется как

среднеарифметическое за период времени.

Расщеплений ввода/вывода на диск

Частота разбиения операций записи/чтения на несколько

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

и вызывать увеличение показателя.

Таким образом, для правильной архитектуры дисковой подсистемы

важно сформировать требования к отказоустойчивости массива, которые зависят от

важности размещенной на дисках информации, а также спрогнозировать

приблизительную нагрузку в IOPS для формирования надежной и производительной

масштабируемой системы.

Сервисы на базе платформы 1С при работе с диском генерируют

значительно большее количество операций записи, чем чтения, поэтому для

максимального быстродействия дисковая подсистема должна иметь наибольшее

количество IOPS и наименьшее значение пенальти для RAID-массива.

Мы в своей работе рекомендуем использовать следующие RAID

массивы:

  • RAID 1 для формирования дисковой подсистемы для ОС.
  • RAID 10 для хранения 1С баз и данных, требования к скорости записи у которых

    высокие.
  • RAID 5 для хранения файловых данных.

EFSOL

Системная интеграция. Консалтинг

Создаем 1,5-Тб RAID-массив в домашних условиях / Накопители

Объемы информации растут быстрыми темпами. Так, согласно данным аналитической организации IDC, в 2006 году на Земле было сгенерировано около 161 млрд. Гб информации, или 161 экзабайт. Если представить этот объем информации в виде книг, то получится 12 обычных книжных полок, только длина их будет равна расстоянию от Земли до Солнца. Многие пользователи задумываются о приобретении все более емких накопителей, благо цены на них снижаются, и за 100 долларов сейчас можно приобрести современный винчестер на 320 Гб.

Большинство современных материнских плат имеют на борту интегрированный RAID-контроллер с возможностью организовывать массивы уровней 0 и 1. Так что всегда можно приобрести пару SATA-дисков и объединить их в RAID-массив. В данном материале как раз рассматривается процесс создания RAID-массивов уровней 0 и 1, сравнение их производительности. В качестве тестируемых взяты два современных жестких диска Seagate Barracuda ES (Enterprise Storage) максимальной емкости – 750 Гб.

Несколько слов о самой технологии. Избыточный массив независимых (или недорогих) дисковых накопителей (Redundant Array of Independent/Inexpensive Disks – RAID) разрабатывался в целях повышения отказоустойчивости и эффективности систем компьютерных запоминающих устройств. Технология RAID была разработана в Калифорнийском университете в 1987 году. В ее основу был положен принцип использования нескольких дисков небольшого объема, взаимодействующих друг с другом посредством специального программного и аппаратного обеспечения, в качестве одного диска большой емкости.

Первоначальная конструкция RAID-массивов предусматривала простое соединение областей памяти нескольких отдельных дисков. Однако в последствии оказалось, что подобная схема снижает надежность матрицы и практически не влияет на быстродействие. Например, четыре диска, объединенных в матрицу, будут сбоить в четыре раза чаще, чем один подобный накопитель. Для решения этой проблемы инженеры из института Беркли предложили шесть различных уровней RAID. Каждый из них характеризуется определенной отказоустойчивостью, емкостью винчестера и производительностью.

В июле 1992 года была создана организация RAID Advisory Board (RAB), которая занимается стандартизацией, классифицированием и изучением RAID. В настоящее время RAB определила семь стандартных уровней RAID. Избыточный массив независимых дисковых накопителей обычно реализуется с помощью платы контроллера RAID. В нашем случае жесткие диски подключались к интегрированному RAID-контроллеру материнской платы abit AN8-Ultra на базе чипсета nForce 4 Ultra. Для начала рассмотрим возможности, предлагаемые чипсетом для построения RAID-массивов. nForce 4 Ultra позволяет создавать RAID-массивы уровней 0, 1, 0+1, JBOD.

RAID 0 (Stripe)

Расслоение дисков, также известное как режим RAID 0, уменьшает число обращений к дискам при чтении и записи для многих приложений. Данные делятся между несколькими дисками в массиве так, чтобы операции чтения и записи проводились одновременно для нескольких дисков. Этот уровень обеспечивает высокую скорость выполнения операций чтения/записи (теоретически — удвоение), но низкую надежность. Для домашнего пользователя – наверное, самый интересный вариант, позволяющий добиться существенного роста скорости чтения и записи данных с накопителей.

RAID 1 (Mirror)

Зеркалирование дисков, известное как RAID 1, предназначено для тех, кто хочет легко резервировать наиболее важные данные. Каждая операция записи производится дважды, параллельно. Зеркальная, или дублированная, копия данных может храниться на том же диске или на втором резервном диске в массиве. RAID 1 обеспечивает резервную копию данных, если текущий том или диск поврежден или стал недоступен из-за сбоя в аппаратном обеспечении. Зеркалирование дисков может применяться для систем с высоким коэффициентом готовности или для автоматического резервирования данных вместо утомительной ручной процедуры дублирования информации на более дорогие и менее надежные носители.

RAID 0+1

Системы RAID 0 могут дублироваться с помощью RAID 1. Расслоение и зеркалирование дисков (RAID 0+1) обеспечивает более высокую производительность и защиту. Оптимальный способ по соотношению надежность/быстродействие, однако, требует большого количества накопителей.

JBOD

JBOD – данная аббревиатура расшифровывается как «Just a Bunch of Disks», то есть просто группа дисков. Данная технология позволяет объединять в массив диски различной емкости, правда, прироста скорости в этом случае не происходит, скорее, даже наоборот.

У рассматриваемого нами интегрированного RAID-контроллера NVIDIA RAID есть и другие интересные возможности:

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

Дисковая система предупреждения NVIDIA упрощает идентификацию, отображая на экране материнскую плату с указанием неработающего порта, чтобы вы точно знали, какой диск нужно заменить.

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

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

Кросс-контроллер RAID. В отличие от конкурентных многодисковых (RAID) технологий, решение NVIDIA поддерживает как Serial ATA (SATA), так и параллельные ATA накопители в рамках одного RAID массива. Пользователям необязательно знать семантику каждого жесткого диска, так как различия в их настройках очевидны.

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

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

Горячее подключение. Технология хранения NVIDIA поддерживает горячее подключение для SATA дисков. В случае сбоя диска пользователь может отключить неисправный диск без выключения системы и заменить его новым.

Пользовательский интерфейс NVIDIA. Благодаря интуитивно понятному интерфейсу любой пользователь, даже не имеющий опыта работы с RAID, может легко использовать и управлять технологией хранения NVIDIA (также известной как NVIDIA RAID). Несложный «мышиный» интерфейс позволит быстро определить диски для конфигурирования в массиве, активизировать расслоение и создать зеркальные томы. Конфигурация может быть легко изменена в любое время с помощью того же интерфейса.

Подключаем и конфигурируем

Итак, с теорией разобрались, теперь рассмотрим последовательность действий, необходимых для подключения и настройки жестких дисков для их работы в RAID-массиве 0 и 1 уровней.

Сначала подключаем диски к материнской плате. Необходимо подключить диски к первому и второму или третьему и четвертому SATA-разъемам, так как первые два относятся к первичному (Primary) контроллеру, а вторая пара – к вторичному (Secondary).

Включаем компьютер и заходим в BIOS. Выбираем пункт Integrated Peripherals, далее – пункт RAID Config. Нашему взору предстает следующая картинка:

Ставим RAID Enable, затем включаем RAID для того контроллера, куда подключили диски. На данном рисунке – это IDE Secondary Master и Slave, но нам нужно поставить Enabled в пункте SATA Primary или Secondary, в зависимости от того, куда вы подключили накопители. Нажимаем F10 и выходим из BIOS.

После перезагрузки появляется окошко конфигурирования RAID-дисков, чтобы настроить, нажимаем F10. NVIDIA RAID BIOS – именно тут и нужно выбрать, как именно сконфигурировать диски. Интерфейс очень понятный, просто выбираем нужные диски, размер блока, и все. После этого нам предложат отформатировать диски.

Для корректной работы RAID-массива в ОС Windows необходимо установить драйвер NVIDIA IDE Driver – он обычно имеется на диске с драйверами, идущем в комплекте с материнской платой.

После установки драйверов RAID-массив необходимо инициализировать. Сделать это несложно – кликаем правой кнопкой мыши по значку «Мой компьютер» на рабочем столе, заходим в «Управление – Управление дисками». Служба сама предложит инициализировать и форматировать диски. После прохождения данных процедур RAID-массив готов к использованию. Впрочем, перед установкой рекомендуем ознакомиться с полной инструкцией, идущей в комплекте с материнской платой – там все подробно расписано.

Seagate Barracuda ES 750 GB

Жесткий диск Seagate Barracuda ES был представлен в июне прошлого года. Винчестер был разработан для поддержки решений хранения данных, использующих наиболее быстрорастущие приложения – серверы большего объема, объемные медиа-материалы, а также различные схемы защиты данных.

Barracuda ES имеет интерфейс SATA, максимальную емкость в 750 Гб, а скорость вращения шпинделя составляет 7200 об/мин. Благодаря поддержке технологии Rotational Vibration Feed Forward (RVFF), повысилась надежность при работе в близко стоящих мультидисковых системах. Также стоит отметить технологию Workload Management, которая защищает диск от перегрева, что положительно сказывается на надежности дисков.

Как уже было отмечено выше, накопитель оснащен интерфейсом SATA II, поддерживает NCQ и имеет 8/16 Мб кэш. Доступны также 250, 400 и 500 Гб варианты.

На тестирование компания Seagate любезно предоставила два топовых накопителя ST3750640NS емкостью 750 Гб, оснащенных 16 Мб кэш-памяти. По своим техническим характеристикам диски Barracuda ES являются почти полной копией обычных десктопных винчестеров, и лишь более требовательны к условиям окружающей среды (температура, вибрация). Плюс, есть отличия в поддержке фирменных технологий.

Технические характеристики:















Скорость вращения шпинделя

7200 об/мин

Объем буфера

16 Мб

Среднее время ожидания

4,16 мс (номинальное)

Число головок (физическое)

8

Число пластин

4

Емкость

750 Гб

Интерфейс

SATA 3 Гбит/с, поддержка NCQ

Число пластин

4

Тип сервопривода

встроенный

Допустимые перегрузки при работе (чтение)

63G, 2 мс

Допустимые перегрузки при хранении

225G, 1 мс

Уровень шума

27 дБА (холостой режим)

Размеры

147х101,6х26,1 мм

Вес

720 граммов

Внешний вид

Так выглядит сам накопитель.

Примечательно, что диски отличаются как прошивками, так и контроллерами – в одном случае используется чип ST micro, в другом – Agere.

В комплекте с ним идет миниатюрный джампер, который переключает режим работы интерфейса с 3 Гбит/с на 1,5 Гбит/с.

Тестирование

Конфигурация тестового стенда:








Процессор

AMD Athlon 64 3000+

Материнская плата

Abit AN8-Ultra, nForce4 Ultra

Память

2х512Mb PC3200 Patriot (PSD1G4003K), 2,5-2-2-6-1Т

Основной жесткий диск

WD 1600JB, PATA, 8 Мб кэш, 160 Гб

Видеокарта

PCI-Express x16 GeForce 6600GT Galaxy 128 Мб

Корпус

Bigtower Chieftec BA-01BBB 420 Вт

Операционная Система

Windows XP Professional SP2

Несколько слов о системе охлаждения. Винчестеры установлены в корзину, которая охлаждалась одним 92 мм вентилятором Zalman ZM-F2. Для сравнения результаты испытуемого сравним еще с тремя жесткими дисками: IDE Samsung SP1604N, 2 Мб кэш, 160 Гб WD 1600JB, IDE, 8 Мб кэш, 160 Гб, WD4000YR емкостью 400 Гб, SATA, 16 Мб кэш, Seagate 7200.10 емкостью 250 Гб, SATA, 16 Мб кэш.

При тестировании использовалось следующее программное обеспечение:

  • FC Test 1.0 build 11;
  • PC Mark 05;
  • AIDA 32 3.93 (входящий в нее плагин для тестирования накопителей).

Ввиду того, что результаты Seagate Barracuda ES практически идентичны (разница укладывается в погрешность измерения) результатам Seagate Barracuda 7200.10 750 Гб, протестированного ранее, было решено не включать результаты тестирования одиночного накопителя, дабы не перегружать графики лишней информацией.

Результаты тестирования в программе AIDA 32 3.93:

Теперь результаты прогона тестового пакета PC Mark 05, вернее, входящих в него четырех тестов дисковой подсистемы. Общий результат тестирования таков: RAID-массив 0 уровня набрал 7429 «попугаев», RAID 1 – 5575 очков; результаты каждого теста:

Теперь несколько слов о тесте FC Test, автором которого является Сергей Громов. Эта программа эмулирует процесс создания/копирования файлов, при этом замеряя затраченное на эту процедуру время. Для тестов было использовано два паттерна (заранее подготовленного списка файлов) – для их создания были отсканированы две директории – папка Windows и Films. В итоге, было получено два паттерна – один объемом около 2,4 Гб с кучей небольших по размеру файлов и один объемом 3,8 Гб, с небольшим количеством объемных файлов. На первом этапе по паттерну создавались файлы, и фиксировалось время их создания. После этого файлы считывались, и также фиксировалось затраченное на это время. Затем, файлы копировались на тот же диск, где они были первоначально созданы. Такие результаты были получены в итоге:







Операция

Паттерн 1 (Windows)

Паттерн 2 (Films)

Время, с

Скорость, Мб/с

Время, с

Скорость, Мб/с

RAID 0

RAID 1

Single

RAID 0

RAID 1

Single

RAID 0

RAID 1

Single

RAID 0

RAID 1

Single

Создание файлов

74,8

92,8

102,3

31,9

25,7

23,3

72,9

103,5

83,6

52,4

36,9

45,7

Чтение

23,7

39,9

36,6

100,6

59,7

65,1

22,4

42,4

43,6

170,6

90,2

87,7

Копирование

93,8

147,7

143,3

25,4

16,1

16,6

122,4

175,4

115,0

31,2

21,8

33,2

Выводы

Следует сразу отметить, что для надежной эксплуатации данных накопителей желательно обеспечить им качественное охлаждение, ибо греются они довольно существенно. В режиме простоя температура жестких дисков была около 35-38 градусов, при копировании поднимаясь до 40 – в комнате было около 23 градусов.

Что касается производительности – тесты показали преимущества RAID 0 уровня, которое в некоторых приложениях было более чем двукратным. В режиме зеркалирования падение производительности почти не наблюдается, так что для тех, кому данные дороже самих винчестеров, Seagate Barracuda ES являются отличным выбором.

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

Так что накопители Seagate Barracuda ES можно смело рекомендовать к покупке, причем, у кого нет средств на приобретение топовых винчестеров по 750 Гб, легко может ограничиться менее емкими вариантами, ведь по скорости они идентичны тем, что участвовали в тестировании.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Глоссарий по RAID технологии / Накопители

AutoSwap (Автозамена) — функциональная замена вышедшей из строя сменной части в дисковой системе, выполняемая самой дисковой системой непосредственно без человеческого вмешательства. В это время дисковая система продолжает исполнять свою нормальную функцию (сравните с Hot Swap ).

Фоновая инициализация (Фоновая Инициализация) — процесс, при котором инициализация дискового массива идет в фоновом режиме.Использование фоновой инициализации позволяет получить доступ к дискому массиву уже через несколько минут вместо нескольких часов. Другое название Немедленная доступность RAID .

BBU — Блок резервного аккумулятора (Модуль Резервной Батареи) . BBU обеспечивает батарейную защиту питания для кэша контроллера RAID. В случае сбоя питания, BBU поможет сохранить данные в кэше.

BIOS — базовая система ввода / вывода (Основная система Ввода — Вывода) , программное обеспечение, которое определяет то, что компьютер может делать без обращения к программам.BIOS содержит весь код, требуемый, чтобы управлять клавиатурой, экраном, дискодами, последовательной связью и другими функциями. Обычно BIOS записан в микросхеме ROM, установленной на системной плате так, чтобы BIOS всегда был доступен и не зависел от наличия / сбоя дисковода. Иногда BIOSывается в микросхему флэш-памяти, позволяющую обновлять данные.

Мостовой RAID-контроллер (Мостовой RAID Контроллер) — устройство SCSI, занимающее один идентификатор на SCSI-шине, но через которое к SCSI-шине может подключаться несколько устройств.Обычно используется для управления внешними подсистемами RAID (сравните с внутренними PCI-подсистемами RAID -см. Internal RAID Controller ). Под этим термином часто понимается внешний контроллер RAID.

Скорость пакетной передачи данных (Импульсная Скорость передачи данных) — быстродействие, которое определяет количество данных, посланных или полученных в течение одной операции (сравните с Устойчивая скорость передачи данных — Потоковой скоростью передачи данных ).

Cache (Кэш) — внутренняя память контроллера позволяющая ускорять передачу данных к и от дисковода.

Cache Flush (Сброс Кэша) — относится к операции, при которой все не записанные блоки из Write-Back Cache (кэш с отложенной записью) записываются на рабочий дискод. Эта операция необходима перед выключением системы.

Кэширование (Кэширование) — Сохранение данных в предопределенной области дисковода или оперативной памяти (см.Кэш) . Кэширование позволяет получить быстрый доступ к недавно прочитанным / записанным данным для ускорения операций чтения / записи RAID систем, дисководов, компьютеров и серверов, или других периферийных устройств.

Кластер (Кластер) — группа терминалов или групп, подключенных к общему серверу или группу серверов, которые совместно могут заменить друг друга, если одно из устройств выйдет из строя.

Холодная замена — физическая замена вышедшей из строя сменной части в системе хранения данных, при которой, чтобы осуществить замену, в системе хранения данных выключается питание и требуется вмешательство оператора (сравните с Hot Swap — Горячей заменой и AutoSwap — Автозаменой ).

Последовательная проверка — относится к процессу, в котором проверяется целостность избыточных данных. Например, последовательная проверка «зеркалированного» дисковода позволяет удостовериться, что все данные на обоих дисковода полностью совпадают.

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

Degraded Mode (Ухудшенный режим) — режим RAID, когда один из дисководов вышел из строя.

Дифференциалный (Дифференциалный) — протокол, при котором информационные сигналы передаются путем изменения величины или направления тока, а не напряжения, как обычно, уменьшает чувствительность к электрическим помехам и позволяет увеличить скорость передачи данных и / или расстояние, на которое данные передаются.

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

Disk Failure Detection (Обнаружение неисправности дисководов) — RAID контроллер может автоматически повреждать повреждения SCSI дисководов.Процесс контроля основывается, среди прочего, на анализ времени выполнения команд, послание дисководу. Если дисковод в текущем времени не подтверждает выполнение команды, выполняется «сброс» дисковода и посылает повторно. Если команда снова не выполняется за заданное время, дисковод может быть контроллером отключен (установлен в режим «offline») и его состояние фиксируется, как «dead» («мертвый»). Многие RAID-контроллеры также контролируют ошибки четности SCSI-шины и другие потенциальные проблемы.

Disk Media Error Management (Система обработки Ошибок Дисководов) — RAID контроллеры способны обрабатывать ошибки внутреннего кэша и SCSI дисководов. Если установлен кэш с ECC, контроллер исправит одиночные и зафиксирует двойные ошибки. Дисководы могут быть запрограммированы так, чтобы сообщить об ошибках, даже если это восстановленные ошибки. Когда дисковод сообщает об ошибке во время чтения, контроллер считывает соответствующие данные из зеркального дискаода (RAID 1 или 0 + 1), или восстанавливает данные, используя информацию, хранящуюся в других блоках (RAID 3, RAID 5), и записывает данные назад на тот дисковод, который столкнулся с ошибкой.Если произошел сбой при записи, контроллер пропускает тот блок, в котором возникла ошибка, и затем записывает данные в следующий блок. Если проблема была успешно решена, то никакие сообщения об ошибках в систему не передаются.

Группы дисков или Пакеты дисков (Группы Дисков или Дисковые Пакеты) — группа дисководов (обычно одной модели), которые логически привязаны друг к другу и адресуются как единое устройство. В некоторых случаях такая группа может называться дисковым «пакетом», когда речь идет только о физических устройствах.До восьми дисководов могут быть сконфигурированы вместе как единая группа дисководов. Все устройства в группе дисководов должны иметь одинаковый объем, иначе от каждого из дисководов в группе будет восприниматься объемный объем самого маленького дисковода. Полный объем группы дисководов равен объему самого маленького дисковода в группе, умноженного на число дисководов в группе. Например, если вы имеете в пакете 4 диска по 400МБ каждый, и 1 дискод 200МБ, эффективная емкость, доступная для использования — составит только 1000МБ (5×200), а не 1800МБ.

Drive Traveling (Перемещение Диска) — Может произойти в процессе замены отказавшего дисковода, если диски будут использоваться на местах, отличных от тех, которые они занимали используем.

ECC — Код исправления ошибок (Код с Исправлением Ошибок) — Метод создания избыточной информации, которая может исправить ошибки в сохраняемых или передаваемых данных.

Внешний RAID-контроллер (Внешний RAID-Контроллер) — контроллер RAID, который находится в собственном (отдельном) корпусе, а не вставлен в системную плату РС или сервера.Часто внешние контроллеры RAID именуются как мостовые контроллер.

Failure (Отказ, сбой) — обнаруживаемое физическое изменение в оборудовании, восстанавливаемое путем замены компонента.

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

Fibre Channel (Волоконный Канал) — технология для передачи данных между компьютерными устройствами со скоростью до 1 Гбит / с (один миллиард битов в секунду). Эта технология часто используется для совместного использования запоминающих устройств и соединений дисковых контроллеров и дисководов. Fibre Channel, как связной интерфейс, составляет конкуренцию SCSI и просто незаменим, когда необходимо обеспечить скоростную связь между серверами или кластерами запоминающих устройств на расстоянии в насколько километров.Для работы на расстоянии до сотен метров в Fibre Channel используется коаксиальный кабель или обычная витая пара. На более длинных расстояниях требуется стекловолоконный кабель.

GAM — Global Array Manager — программный пакет фирмы Mylex, который позволяет системному администратору конфигурировать, контролировать и управлять массивом RAID через сеть. GAM позволяет в случае критических ситуаций, посылать сообщения администратору через электронную почту, факс, пэйджер, SNMP или запускать заданные приложения.

Hot Plug («Горячее» Подключение) — операция подключения или отключения устройства от шины, не прерывая работы других устройств, подключенных к шине.

Горячая замена дисков / Горячая замена (Горячая Перестановка / Горячая Замена Дисководов) — замена вышедших из строя дисководов без прерывания работы системы. Используемый системой должным образом сконфигурированный контроллер, управляющий избыточной дисковой системой, приводит к нарушению одного диска.В этом случае системе создается соответствующее сообщение для системного оператора. Через некоторое время, когда активизируется заменяющий дискиод, системный оператор может отказаться удалить дискиод, установить новый дискод, и дать контроллеру команду «восстановить» данные на новом дискоде, причем все это происходит без прерывания системных операций. Как только процесс восстановления будет закончен, контроллер вернется в защищенное от ошибок состояние.

Hot Spare (Горячее резервирование) — см. Резервная замена дисков

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

Hot Swap (Горячая замена) — процесс замены сменных компонентов в системе, в которой работает нормальная функция, и при которой требуется человеческое вмешательство.(Соответствующие с AutoSwap и Cold Swap ).

Внутренний RAID-контроллер (Внутренний RAID Контроллер) — контроллер, который постоянно находится внутри компьютера или сервера и постоянно подключен к PCI-шине.

JBOD — просто набор дисков / дисков (Независимые Диски / Дисководы) — один или несколько дисководов, подключенных к RAID-контроллеру, но не входящие в состав RAID-массивов, функционирующих независимо. Большинство контроллеров RAID-массивов режим JBOD.
Latency (Время ожидания) — 1. Время между посылкой запроса на выполнение ввода — вывод и начало выполнения операции. 2. Время между завершением процедуры поиска и моментом получения первого блока данных.

M.O.R.E. — Mylex Online RAID Expansion — Технология фирмы Mylex, позволяющая «на лету» расширять массив RAID.

Mirrored Cache (Зеркальный Кэш) — кэш-память, которая имеет копию данных от другого контроллера (в кластерных дисковых массивах).В случае отказа основного контроллера, второй контроллер может брать кэшированные данные и размещать их в дисковом массиве.

Зеркалирование (Зеркалирование / Дублирование) — Технология полного дублирования данных, например, с одного диска на другой дискод. Дублирование происходит при каждой операции чтения или записи. В результате каждый дискод является зеркальным отображением (дубликатом) другого дискаода. Этим же термином называют уровень RAID 1. Все контроллеры RAID зеркалирование.

MTBF — Среднее время наработки на отказ (Среднее время Безотказной Работы) — Средняя наработка на отказ, среднее время от начала работы до первого отказа.

MTDL — Среднее время до потери данных (Среднее время до Потери Данных) — среднее время от запуска до момента, пока отказ какой-либо составляющей дискового массива не будет вызывать постоянную потерю данных.

PCI Hot Plug (Горячая замена PCI устройстваств) — новейших компьютеров с PCI шиной, позволяющее производить замену PCI карт без полного выключения системы.
Очередь (Очередь) — последовательных команд или данных, ожидаемых обработки, обычно в с начала порядка следования.

RAID — избыточный массив независимых дисков (Избыточный Массив Независимых Дисков) — известно несколько различных форм выполнения RAID. Каждая форма именуется как «уровень RAID». Соответствующий уровень RAID для системы выбирается исходя из общего режима, является основным: объем дисковой системы, отказоустойчивость или быстродействие.Уровни RAID
(Уровни RAID) — в настоящее время наиболее широко поддерживаются четыре основных уровня RAID (RAID 0, RAID 1, RAID 3, RAID 5) и два специальных уровня RAID (RAID 0 + 1, и JBOD).

RAID Levels 0 (Уровень 0 или чередование) : Блоки данных размещаются на нескольких дисках, предоставляемых более высокой скоростью доступа, чем при размещении на одном дискоде. Этот уровень не обеспечивает никакого избыточности.

RAID Levels 1 (Уровень 1 или зеркалирование) : Дисководы объединены в пары и являются зеркальным отражением друг друга.Все данные на 100 процентов продублированы, но при этом занимают два раза больше дискового пространства.

RAID Levels 3 (Уровень 3) : Данные «росаны «по нескольким физическим разбитым дискодам. Помимо данных на одном из дисководов хранится информация о четности, которая информирует о восстановлении данных.

RAID Levels 5 (Уровень 5) : Данные «росаны «по нескольким физическим разбитым дискодам. Помимо данных на дисководах хранится информация о четности, которая занимается восстановлением данных.В отличие от уровней RAID 3 информация о четности распределена по всем дискодам для их равномерной загрузки.

RAID Levels 0 + 1 (Уровень 0 + 1) : Комбинация RAID 0 и RAID 1. Этот уровень обеспечивает избыточность за счет зеркалирования.

Уровни RAID JBOD (Уровень JBOD) : сокращение от «Just a Bunch of Drives» (Только Связка Дисководов). Каждый дисковод используется независимо, как если бы они были подключены к обыкновенному контроллеру дисководов.Этот уровень не избыточность данных.

RAID Levels 10 (Уровень 10) : Комбинирует (объединяет) RAID 0 и RAID 1, т.е. зеркалирование группы дисководов, объединенных в RAID 0 для максимального быстродействия. Этот уровень избыточности за счет зеркального отражения.

RAID Levels 30 (Уровень 30) : Комбинирует (объединяет) RAID 0 и RAID 3, т.е. используется контрольная сумма для группы дисководов, объединенных в RAID 0 для обеспечения максимального быстродействия.Информация о четности может установить для восстановления данных.

RAID Levels 50 (Уровень 50) : Комбинирует (объединяет) RAID 0 и RAID 5, т.е. используется перемещаемая контрольная сумма для группы дисководов, объединенных в RAID 0 для обеспечения предельного быстродействия. Информация о четности может установить для восстановления данных.

Миграция RAID (Перемещение RAID) — Способность RAID Контролируйте изменение уровня RAID без выключения системы.Многие современные контроллеры контейнеры перемещение RAID.

Recovery (Восстановление) — процесс восстановления данных от отказавшего дисковода, при котором используются данные от других дисководов.

Избыточность — включение в систему дополнительных однотипных компонентов, включая необходимые для работы, для повышения надежности системы.

Ротационная избыточность XOR (Распределенная Избыточность) — это относится к методу полного избыточности данных при требовании максимально использовать емкость дисковой памяти.В системе, сконфигурированной под RAID 3 или RAID 5 (которые требуют, по крайней мере, три SCSI дисковода), все блоки данных и четкости разделены между дискодами таким образом, что если один из дисководов будет удален (или даст сбой), то данные, находившиеся на нем могут быть восстановлены, используя данные и четности на оставшихся дисководах. В RAID 3 или RAID 5 массиве, объем дискового пространства, который занимает распределенную избыточность, эквивалентную объему любого диска.

SAF-TE — Отказоустойчивый корпус с доступом к SCSI (Доступный через SCSI шину Отказоустойчивый Корпус) — «открытые» технические требования, разработанные для обеспечения всестороннего и стандартизированного метода контроля и вывода информации о состоянии дисков, источников питания и систем охлаждения, используются в серверах высокой надежности и подсистемах хранения данных.Технические требования от аппаратного обеспечения вывода — вывода, операционных систем, серверов сервера, и выполнения RAID, потому что сам корпус представляется как просто еще одно устройство на SCSI шине. SAF-TE технические требования были использованы ведущими изготовителями серверов, устройств хранения данных и RAID контроллеров. Изделия, указанные в спецификации SAF-TE уменьшают стоимость контроля состояния корпусов, упрощают работу администратора сети, выдают аварийные уведомления и информацию о состоянии оборудования.

SCA — одинарный разъем (подключение через один разъем) — разновидность интерфейса SCSI, разработанного для стандартного подключения винчестеров для систем, использующих горячую замену (горячая замена). Для подключения дисководов с интерфейсом SCA к SCSI используется специальная коммутационная плата, обеспечивающая установку SCSI ID, и осуществляется терминация шины SCSI.

Состояние диска SCSI (состояние SCSI Дисковода) — относится к текущему состоянию диска SCSI.В любой момент времени, SCSI дисковод может быть в одном из пяти состояний: ГОТОВ, АКТИВИЗИРОВАННОЕ, ОЖИДАНИЕ, НЕРАБОЧИЙ или
ВОССТАНАВЛЕНИЕ. Контроллер SCSI хранит состояния подключенных к нему SCSI дисков в своей долговременной памяти. Эта информация сохраняется даже после отключения питания. Следовательно, если SCSI дисковод был
помечен как НЕРАБОЧИЙ в одном сеансе, он останется в НЕРАБОЧЕМ состоянии до тех пор, пока он не будет заменен или восстановлен, используя системную утилиту.Ниже представлены описания состояний:

Готово (Готов) : Диски SCSI находятся в состоянии «готов», если он включен и доступен, чтобы быть сконфигурированным в течение текущего сеанса, но остается не сконфигурированным.

Онлайн (Активизирован) : SCSI-диски находится в «активном» состоянии, если он включен, был определен как часть группы дисководов; и работает должным образом.

Ожидание (Ожидание) : диски SCSI находятся в состоянии «ожидание», если он включен, способен работать должным образом, но не было определено, как часть какой-либо группы дисководов.

Мертвый (Нерабочее) : SCSI-диски находится в «нерабочем» состоянии, если он не подключен к шине; или если он присутствует на шине, но на него не подано питание; или если он вышел из строя и был отключен контроллером. Когда контроллер обнаруживает отказ дисковода, он отключает этот дискод,
изменяя его состояние на «нерабочий». SCSI дисковод в состоянии «нерабочий»
не участвует в-либо операциях вывода — вывода и никакие команды на
он не передаются.

Rebuild (Восстановление) : SCSI-диски находятся в состоянии
«восстановления» во время этого процесса. В течение этого процесса,
данные восстанавливаются и записываются на дискиод. Это состояние также
именуется состоянием ‘Только для записи’ (WRO) («Только для записи»).

Сектор — минимальная единица объема хранения данных,
в котором данные защищены от ошибок.

Размер сегмента (Сегмента) Размер — параметр, задаваемый вместе
с размером полосы (размер полосы) и представляет собой размер данных, который
будет прочитан или написан за одну операцию.Размер сегмента (также известный
как «размер строки кэша») должен быть основан на размере строки, который
Вы выбрали. Обычно по умолчанию размер сегмента принимается равный 8КБайт.

SMART — Технология самоконтроля, анализа и отчетности (Технология
Самоконтроля, Анализа и Сообщения)
— промышленный стандарт предсказания
надежность и для IDE / ATA и SCSI дисководов жестких дисков. Дисководы жестких
дисков с функцией SMART заранее предупредить о возможном скором
отказе жесткого диска, благодаря чему важные данные могут быть защищены.

Резервная замена дисков («Hot Spare») (Резервная
Замена Дисководов («Горячее резервирование»)
— Одна из наиболее важных
Функции, которые обеспечивает RAID контроллер, с целью достижения безостановочное
обслуживание с высокой степенью отказоустойчивости. В случае выхода из
здание SCSI дисковода восстанавливающая операция будет выполнено RAID-контроллером
автоматически, если выполняются оба из следующих условий:

1) Имеется «резервный» SCSI-диски идентичного объема, подключенный
к тому же контроллеру;

2) Все системные диски и отказавший дисковод входят в состав
избыточной дисковой системы, например RAID 1, RAID 3, RAID 5 или RAID 0 + 1.
Обратите внимание: резервирование позволяет восстановить данные, находившиеся
на неисправном дискоде, если все дискиоды подключены к одному
и тому же RAID контроллеру.

«Резервный» дисковод может быть создан одним из двух способов:

1. Когда пользователь использует утилиту разметки, все диски, которые
подключены к контроллеру, но не настроены в любую из групп дисководов,
будут автоматически помечены как «резервные» дискиоды.

2.Дисковод может также быть добавлен (подключен позднее) к работающей системе и помечен как резервный, при помощи утилиты RAID контроллера для данной операционной системы.

В процессе автоматического восстановления система продолжает нормально работать, однако система может плохо плохо работать.

Для того, что бы использовать восстанавливающую особенность резервирования, вы всегда должны иметь резервный SCSI-диски в вашей системе.В случае сбоя дисковода, резервный дисковод автоматически заменил неисправный дискод, и данные будут восстановлены. После этого системный администратор может отключить и удалить неисправный дискиод, заменить его новым дискодом и сделать этот новый дискод резервным. Таблица резервных замен имеет предел 8 автоматических замен в любом сеансе (от момента включения питания / перезагрузки до следующего выключения питания / перезагрузки). Когда предел в 8 будет заменена, это произойдет, и последняя отказоустойчивая замена дисковода, но она не будет защищена в таблице замен.Чтобы очистить таблицу резервных, перезагрузить систему от загрузочной дискеты DOS, запрограммировать конфигурацию RAID-контроллера и выбрать опцию «Просмотреть / изменить конфигурацию» в главном меню. Выберете блок «Список Модификаций Дисковода». Вы должны сохранить конфигурацию без изменений и выйти из утилиты конфигурации. Это очистит таблицу замен. Вы можете загрузить вашу систему и продолжить нормальные операции. Обычно предел таблицы замен на 8 событий не должен вызывать никаких проблем, так как при условии, что дисковые устройства работают не чаще, чем один раз в год (SCSI диски имеют 5-летнюю гарантию), система должна функционировать непрерывно как минимум 8 лет, прежде чем таблица замен должна будет очищена.

Stripe Order (Порядок Полос) — порядок, в котором диски SCSI обслуживаются в пределах группы дисководов. Этот порядок должен соблюдаться, так как от этого зависит способность контроллера восстанавливать данные на вышедшем из строя дисководе.

Размер полосы (Размер Полосы) — размер полосы определяет как размер, в килобайтах (1024 байта) одиночной операции ввода / вывода. Полоса данных разделена по всем дискам в группе дисководов, при этом сами постоянно находятся в физических дисковых секторах, которые логически упорядочены с первого до последнего сектора.

Ширина полосы (Ширина Полосы) — количество разбитых на полосах SCSI дисководов в пределах группы дисководов.

Striping Disk Drives (Разметка дисководов) — метод, позволяющий объединить несколько дисководов в RAID в один логический диск. Разметка включает в себя разбиение полезного объема каждого диска на полосы (страйпы — полосы), которые могут быть размером от (512 байт), до нескольких мегабайт. Размер страйпов определяется исходя из типа программного обеспечения и интенсивности обмена данных.Затем эти страйпы вкруговую послойно объединяются, так что общий массив составлен из страйпов поочередно всех дисководов.

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

В однопользовательской системе приложений с интенсивным обменом и большим размером записей выгодно использовать небольшой размер страйпов. В этом случае скорость обмена увеличивается, что происходит считывание разных частей одной и той же записи с разных дисководов. К сожалению, размер записи практически полностью исключает одновременное выполнение разных операций чтения-записи, так как все диски участвуют в каждой операции.Это не страшно при работе в операционных системах типа DOS, так как такие операционные системы не «умеют» выполнять несколько одновременных обращений к дискоду. Видео- и аудио-приложения, а также медицинские приложения, работающие с высокими тарифами, работают в оптимальном режиме при небольшом размере страйпов массива. Потенциальным недостатком использования маленьких страйпов является то, что для достижения предельной скорости работы массива необходимо синхронизацию вращения дисководов.Если этого не делать, то в каждый момент времени диски будут иметь разный угол поворота. А это значит, что операция чтения или записи не будет завершена до тех пор, пока все диски не повернут в необходимое положение. В этом случае, чем ближе среднее время завершения к наихудшему случаю, чем среднее время завершения диска, находящегося в наиболее невыгодном положении. Синхронизация вращения дисков гарантирует, что все дискиоды начнут и закончат чтение одновременно. В этом случае среднее время доступа к точности среднего времени доступа одиночного дисковода.

Устойчивая скорость передачи данных (Скорость Непрерывной Передачи Данных) — скорость передачи данных для непрерывной работы при максимальном быстродействии.

Синхронная передача данных (Синхронная Передача Данных) — Передача данных, синхронизированная к определенному интервалу времени. Синхронная передача по SCSI происходит быстрее, чем асинхронная, потому что не требуется ожидания подтверждения каждого байта от приемного устройства.

Target ID — Идентификатор устройства SCSI, подключенного к SCSI контроллеру. Каждый SCSI каналу контроллер может быть подключен к 15 SCSI устройствам, каждый из которых должен иметь уникальный, отличный от других идентификаторов в диапазоне от 0 до 6, и от 8 до 15.

Прекращение — метод согласования нагрузки по полному волновому сопротивлению шины передачи данных, при котором устраняется отражение сигнала от физических концов шины.

Скорость передачи (Скорость передачи данных) — скорость, с которой перемещаются между центральным процессором и памятью или устройством ввода / вывода и обычно выражается количество передаваемых символов (байт) в секунду.

Кэш со сквозной записью (Кэш со Сквозной Записью) — относится к стратегии кэширования, при которой данные пишутся в кэш и на SCSI-дисках прежде, чем состояние завершения будет возвращено ведущей операционной системой. Эта стратегия кэширования считается наиболее безопасной, так как при этом вероятно, что сбой питания к потере данных. Однако через кэш приводит к некоторому производительности системы производительности.

Кэш с обратной записью (Кэш с Отложенной Записью) — относится к стратегии кэширования, при которой сигнал завершения операции записи запускается ведущей операционной системой, как только кэш (а не диски) принимает данные, которые должны быть записаны.На выбранных дисках SCSI эти данные запишутся только через некоторое время, но это почти не снизит производительность системы. Поддерживающая питание микросхем кэша, поддерживающая питание микросхем кэша.

Дополнительные материалы:

RAID 0 без дополнительного оборудования в Windows 2000
FAQ по практической реализации RAID

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL + ENTER.

.

RAID-массивы на NVMe / Блог компании Selectel / Хабр

В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых RAID-контроллеров с поддержкой NVMe.

Все разнообразие применений технологии RAID в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.

В этой статье будет краткий обзор технологии RAID, небольшая инструкция по созданию RAID-массивов с помощью трех разных инструментов и сравнения производительности виртуальных дисков при использовании каждого из способов.

Что такое RAID?

Википедия дает исчерпывающее определение технологии RAID:

RAID (англ. Redundant Array of Independent Disks — избыточный массив независимых (самостоятельных) дисков) — технология виртуализации данных для объединения физических нескольких дисковых устройств в логический модуль для повышения отказоустойчивости и производительности.

Конфигурация дисковых массивов и используемая при этом технология зависит от выбранного уровня RAID (уровень RAID) .Уровни RAID стандартизированы в спецификации Common RAID Disk Data Format. Она включает множество уровней RAID, однако самыми распространенными считаются RAID0, RAID1, RAID5 и RAID6.

RAID0 , или Stripes , — это уровень RAID, который объединяет два или более физических диска в один логический. Объем логического диска при этом равен сумме объема физических дисков, входящего в массив. На этом уровне RAID отсутствует избыточность, а выход из строя одного диска может привести к потере всех данных в виртуальном диске.

Уровень RAID1 , или Mirror , идентичные копии данных на двух и более дисках. Объем виртуального диска при этом не максимального минимального из физических дисков. Данные на виртуальном диске RAID1 будут доступны, пока бы один физический диск из массива работает. Использование RAID1 массивы избыточности, но является достаточно дорогим решением, как в массиве одного из двух и более дисков.

Уровень RAID5 решает проблему дороговизны.Для создания уровня с уровнем RAID5 необходимо как минимум 3 диска, при этом устойчивом к выходу из строя одного диска. Данные в RAID5 хранятся блоками с контрольными суммами. Нет строгого деления на диски с данными и диски с контрольными суммами. Контрольные суммы в RAID5 — это результат операции XOR, примененной к N-1 блокам, каждый из которых взят со своего диска.

Хотя RAID-массивы повышают избыточность и резервирование, они не подходят для хранения резервных копий.

После краткого экскурса по виду RAID-массивов можно переходить к устройствам и программам, которые позволяют собирать и использовать дисковые массивы.

Виды RAID-контроллеров

Существует два способа создания и использования RAID-массивов: аппаратный и программный. Мы рассмотрим следующие решения:

  • Linux Software RAID.
  • Intel® Virtual RAID на процессоре.
  • LSI MegaRAID 9460-8i.

Отметим, что решение Intel® работает на чипсете, из-за чего возникает вопрос, аппаратное это решение или программное.Так, например, гипервизор VMWare ESXi считает VROC программным и не поддерживает официально.

Linux Программный RAID

Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет программное обеспечение Linux RAID к используемым накопителям, — быть блочным, доступным системой.

Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного метода.Программный RAID Linux организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:

  root @ grindelwald: ~ # cat / proc / mdstat
Личности: [linear] [multipath] [raid0] [raid1] [raid10]
неиспользуемые устройства: <нет>
  

Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:

  root @ grindelwald: ~ # modprobe raid456
корень @ grindelwald: ~ # cat / proc / mdstat
Личности: [linear] [multipath] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
неиспользуемые устройства: <нет>  

Все операции с дисковыми массивами производятся через утилиту командной строки mdadm.Сборка дискового массива в одну команду:

  mdadm --create --verbose / dev / md0 --level = 1 --raid-devices = 2 / dev / nvme1n1 / dev / nvme2n1  

После выполнения этой команды в системе появится блочное устройство / dev / md0, которое представляет из тебя виртуальный диск.

Intel® Virtual RAID On CPU

Стандартный аппаратный ключ Intel® VROC
Intel® Virtual RAID On CPU (VROC) — это аппаратно-программная технология для создания RAID-массивов на базе чипсетов Intel®.Данная технология доступна в основном для материнских плат с поддержкой процессоров Intel® Xeon® Scalable. По умолчанию ВРОЦ недоступен. Для его активации установить аппаратный лицензионный ключ VROC.

Стандартная лицензия VROC позволяет создавать дисковые массивы с 0, 1 и 10 уровнями RAID. Премиальная версия расширяет этот список поддержки RAID5.

Технология Intel® VROC в современных материнских платах работает совместно с Intel® Volume Management Device (VMD), которая обеспечивает возможность быстрой замены для накопителей с интерфейсом NVMe.

Intel® VROC со стандартной лицензией Настройка массивов производится через Setup Utility при загрузке сервера. На вкладке Advanced появляется пункт Intel® Virtual RAID on CPU, в котором можно настроить дисковые массивы. Создание массива RAID1 на двух накопителях
Технология Intel® VROC имеет свои «козыри в рукаве». Дисковые массивы, собранные с помощью VROC, соответствия с Linux Software RAID. Это означает, что состояние массивов можно отслеживать в / proc / mdstat, а администрировать — через mdadm.Эта «особенность» официально поддерживается Intel. После сборки RAID1 в Setup Utility можно наблюдать синхронизацию накопителей в ОС:

  root @ grindelwald: ~ # cat / proc / mdstat
Личности: [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md126: активный raid1 nvme2n1 [1] nvme1n1 [0]
      1855832064 блоки супер внешние: / md127 / 0 [2/2] [UU]
      [> ....................] повторная синхронизация = 1,3% (24207232/1855832064) окончание = 148,2 мин, скорость = 205933 К / с
      
md127: неактивный nvme1n1 [1] (S) nvme2n1 [0] (S)
      10402 блока super external: imsm
       
неиспользуемые устройства: <нет>  

Отметить, что через mdadm нельзя собирать массивы на VROC (собранные массивы будут Linux SW RAID), но можно менять в них диски и разбирать массивы.

LSI MegaRAID 9460-8i

Внешний вид контроллера LSI MegaRAID 9460-8i
RAID-контроллер является самостоятельным аппаратным решением. Контроллер работает только с подключенными к нему накопителями. Данный RAID-контроллер поддерживает до 24 накопителей с интерфейсом NVMe. Именно NVMe выделяет этот контроллер поддержку из множества других. Главное меню аппаратного контроллера
При использовании режима UEFI настройки контроллера интегрируются в Setup Utility.В сравнении с VROC меню аппаратного контроллера выглядит значительно сложнее. Создание RAID1 на двух дисках
Объяснение дисковых массивов на аппаратном контроллере является достаточно тонкой темой и может стать поводом для полноценной статьи. Здесь же мы просто ограничимся созданием RAID0 и RAID1 с настройками по умолчанию.

Диски, подключенные в аппаратный контроллер, не видны операционной. Вместо этого контроллер «маскирует» все RAID-массивы под SAS-накопители.Накопители, подключенные в контроллер, но не входящие в состав дискового массива, не доступны ОС.

  корень @ grindelwald: ~ # smartctl -i / dev / sda
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-48-generic] (локальная сборка)
Copyright (C) 2002-19, Брюс Аллен, Кристиан Франке, www.smartmontools.org

=== НАЧАЛО ИНФОРМАЦИОННОГО РАЗДЕЛА ===
Производитель: AVAGO
Изделие: MR9460-8i
Версия: 5.14
Соответствие: SPC-3
Емкость пользователя: 1 999 844 147 200 байт [1.99 ТБ]
Размер логического блока: 512 байт
Скорость вращения: твердотельное устройство
Идентификатор логического устройства: 0x000000000000000000000000000000
Серийный номер: 00000000000000000000000000000000
Тип устройства: диск
Местное время: вс, 11 окт, 16:27:59 2020 MSK
Поддержка SMART: Недоступно - устройство не поддерживает SMART.  

Несмотря на маскировку под SAS-накопители, массивы с NVMe будут работать на скорости PCIe. Однако такая особенность позволяет загружаться с NVMe в Legacy.

Тестовый стенд

Каждый из организации дисковых массивов имеет свои способы плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?

Для достижения максимальной справедливости все тесты будут запущены на одном и том же сервере. Его конфигурация:

  • 2x Intel® Xeon® 6240;
  • 12x DDR4-2666 16 ГБ;
  • LSI MegaRAID 9460-8i;
  • Стандартный аппаратный ключ Intel® VROC;
  • 4x Intel® SSD DC P4510 U.2 2 ТБ;
  • 1x Samsung 970 EVO Plus M.2 500 ГБ.

Тестируемыми выступают P4510, из которых одна половина подключена к материнской плате, а вторая — к RAID-контроллеру. На M.2 установлена ​​операционная система Ubuntu 20.04, а тесты будут тесты при помощи fio 3.16.

Тестирование

В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 4 КБ. Каждый тест длится 5 минут. Перед началом блочного устройства не отображается в качестве планировщика ввода-вывода.Команда fio выглядит следующим образом:

  fio --name = test --blocksize = 4k --direct = 1 --buffered = 0 --ioengine = libaio --iodepth = 1 --loops = 1000 --runtime = 300 --rw = <режим> --filename =   

Из результатов fio мы берем clat 99.00%. Результаты приведены в таблице ниже.
Помимо задержек при обращении к данным, можно увидеть производительность виртуальных накопителей и сравнить с производственным накоплением диска. Команда для запуска fio:

  fio --name = test --blocksize = 4k --direct = 1 --buffered = 0 --ioengine = libaio --loops = 1000 --runtime = 300 --iodepth =  --rw = <режим> --filename =   

Производительность измеряется в операциях ввода-вывода.Результаты представлены в таблице ниже.

Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.

Заключение

Использование аппаратных решений для создания дисковых массивов из двух дисков выглядит нерационально. Тем не менее, существуют, где использование RAID-контроллеров оправдано. С появлением контроллеров с интерфейсом интерфейса NVMe у пользователей появляется возможность использовать более быстрые SSD в своих проектах.

.

Начнем с математики. Векторизация вычислений в реализации технологии RAID-6

Многие помнят публикации о «Рэйдикс» на Хабре «Как разработчики сидели в Петербурге и тихо ели грибы», в которой партнеры кратко изложили историю появления нашего продукта. Поэтому в первой статье своего Хаброблога мы бы хотели погрузиться в математические основы технологий RAIDIX.

Изображение: www.nonotak.com

Дисковый массив

Многие промышленные программно-аппаратные системы (системы управления ресурсами предприятия, оперативного анализа данных, управления цифровым контентом и др.)) требуют активного обмена данными между компьютерами и внешними накопителями данных. Быстродействие таких накопителей (жёстких дисков) значительно ниже, чем быстродействие оперативной памяти компьютера (как правило, и упирается в самый «медленный» её компонент). В связи с этим возникает задача увеличения скорости доступа к данным, хранимым на мобильных устройствах. Поэтому широкое распространение получили подсистемы хранения данных (СХД), объединяющие несколько широких дисков в единое логическое устройство.

Для повышения производительности в состав СХД включаются несколько дисковых накопителей с параллельного чтения и записи информации. Избыточный массив независимых / недорогих дисков — избыточный массив независимых жестких дисков (Chen, Lee, Gibson, Katz, & Patterson, 1993).

Данные технологии решают не только задачу повышения производительности СХД, но и сопутствующую ей задачу — повышение надёжности хранения данных: отдельные диски могут выходить из строя при работе системы.Надежность обеспечивается с помощью информационной системы: в системе используются дополнительные диски, которые записываются специальным образом вычисленные контрольные суммы, позволяющие восстановить информацию в системе одного или нескольких дисков СХД.

Введение избыточных дисков позволяет решить проблему надёжности, но влечёт за собой выполнение дополнительных действий, связанных с вычислением контрольных сумм при каждом чтении / записи данных с дисков.Производительность этих вычислений, в свою очередь, оказывает существенное влияние на производительность СХД в целом. В увеличении производительности RAID-вычислений наиболее востребованной практики технология RAID-6, позволяющая восстановить два вышедших из строя диска .

002. Предлагаемые детали реализации алгоритмов RAID-6 на платформе Intel 64. Данная информация используется в открытом источнике (Anvin, 2009), (Intel, 2012), мы же приводим ее в сжатом, удобочитаем видеом .Кроме того, мы представляем результаты сравнения библиотеки помехоустойчивого кодирования СХД RAIDIX с популярными библиотеками, реализующими похожий функционал: ISA-1 (Intel), Jerasure (Дж. Планк).

Уровни RAID

Вычислительные алгоритмы, которые используются при построении RAID-массивов, появлялись постепенно и впервые в этой системе в 1993 году в работе Chen, Lee, Gibson, Katz, & Patterson, 1993.

В соответствии с классификацией массивом RAID-0 именуется массив независимых дисков, в котором не предпринимаются меры по защите информации от утраты.Преимущество таких массивов по сравнению с одиночным диском состоит в том, что позволяет существенно увеличить производительность и производительность за счёт организации параллельного обмена данными.

Технология RAID-1 подразумевает дублирование каждого диска системы. Таким образом, массив RAID-1 имеет удвоенное количество дисков по сравнению с RAID-0, но из строя одного диска системы не влечёт за собой данных, поскольку в массиве для каждого диска имеется копия.

Технологии RAID-2 и RAID-3 не получили распространение на практике и мы опустим их описание.

Технология RAID-4 подразумевает использование одного дополнительного диска, на который записывается сумма (XOR) остальных дисков данных СХД:

Контрольная сумма (или синдром ) обновляется при выполнении каждой записи данных на диски СХД . Отметьте, что для этого нет необходимости вычислять (1) заново, а достаточно прибавить к синдрому разности старого и нового значения изменяемого диска. В случае выхода из строя одного из дисков уравнение (1) может быть решено относительно появившегося неизвестного, т.е. данные с утраченного диска будут восстановлены.

Очевидно, что операции чтения и записи синдрома происходит чаще. Этот диск становится самым загруженным массивом, т.е. слабым звеном с точки зрения производительности. Кроме того, он быстрее изнашивается. Для решения этой проблемы была предложена технология RAID-5, в которой для хранения синдромов используются части различных дисков системы (Рис. 1). Таким образом, загрузка дисков операциями чтения и записи выравнивается.

Рис. 1. Отличные технологии RAID-4 и RAID-5

Отметить, что технологии RAID-1 — RAID-5 позволяют восстанавливать данные в случае выхода из строя одного из дисков, но в случае утраты двух дисков эти технологии оказываются бессильны. Конечно, вероятность сильного выхода из строя двух дисков ниже, чем одного. Однако на практике замена отказавшего диска требует определенного времени, в течение которого данные остаются «беззащитными».Этот интервал может быть весьма длительным в случае, если системные администраторы работают в одну смену или систему в труднодоступном месте.

С другой стороны, при механической замене диска нельзя исключить возможность ошибки (замены исправного диска вместо неисправного), в результате чего перед нами вновь встает проблема восстановления двух дисков. Для решения указанных задач была предложена технология RAID-6, ориентированная на восстановление двух дисков.Рассмотрим данный алгоритм более подробно.

Технология RAID-6

Алгоритмы вычислений, использованного при построении СХД по спецификации RAID-6, приведенной (Анвин, 2009). Здесь мы изложим их в форме удобной для использования в рамках настоящего исследования.

С целью увеличения производительности системы данные, обычно накапливаются во внутреннем кэше системы хранения данных и записываются на диски в соответствии с внутренней стратегией кэширования, которая влияет на показатели системы в целом.При этом операции выполняются большими блоками данных, которые в дальнейшем будем называть страйпами (полосой).

Аналогично записи, при запросе на физическое чтение с дисков производится не только запрошенных данных, но и всего страйпа (или нескольких страйпов), в котором эти данные защищены. В дальнейшем остается в кэше системы в ожидании относящегося к нему запроса на чтение.

Для повышения производительности СХД страйп записывается и читается параллельно на все диски системы.Для этого он разбивается на блоки одинакового размера, которые будем обозначать. Количество блоков N равно количеству дисков данных в массиве. Для обеспечения отказоустойчивости в дисковый массив вводятся два дополнительных диска, которые будут обозначать P и Q. В страйп включим блоки, соответствующие массивы, а также дискам P и Q (Рис 2.) В случае выхода из строя одного или двух дисков СХД данные в соответствующие блоках восстанавливаются с использованием синдромов.

Рис.2. Структура страйпа

Отметьте, что в RAID-6 для поддержания равномерной нагрузки дисков, так же, как и в технологии RAID-5, синдромы разных страйпов помещаются на разные физические диски. Впрочем, для нашего исследования этот факт не релевантен. По умолчанию считаем, что все синдромы хранятся в последних блоках страйпа.

Для отдельных синдромов разобьём блоки на слова и будем повторять вычисления контрольных сумм для всех слов с одинаковыми номерами .Для каждого слова будем вычислять синдромы по следующим правилам:

Тогда в случае утраты дисков с номерами α и β можно составить следующую систему уравнений:

$$ display $$ \ left \ {\ begin {align} D_α + D_β & = P — \ sum {} D_i \\ q_αD_α + q_βD_β & = Q — \ sum {} q_iD_i \ end {align} \ right. i ≠ α, β; α ≠ β $$ дисплей $$

Если система однозначно разрешима для любых α и β, то в страйпе можно восстановить два любых утраченных блока. Следующие обозначения:

$$ display $$ P_ {α, β} = \ sum_ {i = 0 \\ i ≠ α \\ α ≠ β} ^ {N-1} D_i; \ bar {P} _ {α, β} = P — P_ {α, β} $$ display $$

$$ display $$ Q_ {α, β} = \ sum_ {i = 0 \\ i ≠ α \\ α ≠ β} ^ {N-1} q_iD_i; \ bar {Q} _ {α, β} = Q — Q_ {α, β} $$ дисплей $$

Тогда имеем:

$$ display $$ \ left \ {\ begin {align} D_α + D_β & = \ bar {P} _ {α, β} \\ q_αD_α + q_βD_β & = \ bar {Q} _ {α, β} \ end {выравнивается} \ right.\ Leftrightarrow \ left \ {\ begin {align} D_α & = \ bar {P} _ {α, β} — D_β \\ D_β & = \ frac {q_α \ bar {P} _ {α, β} — \ bar {Q} _ {α, β}} {q_α — q_β} \ end {align}, α ≠ β \ right. \ qquad (3) $$ дисплей $$

Для однозначной разрешимости (3) необходимо обеспечить, чтобы все и были различны и их разность была обратима в той алгебраической структуре, в которой производятся вычисления. Если в качестве структуры такой выбрать конечное поле (поле Галуа), то оба эти условия совпадают при правильном выборе примитивного элемента поля.{-1}, q_α, $ inline $, и использовать их в дальнейших вычислениях.

Скорость выполнения вычислений в рассматриваемой задаче критически важна для поддержания общей производительности СХД не только в случае выхода из строя двух дисков, но и в «штатном» режиме, когда все диски работоспособны. Это связано с тем, что страйп разбит на блоки, которые физически располагаются на разных дисках. Для чтения запускается операция параллельного чтения блоков со всех дисков системы. Когда все блоки прочитаны, из них собирается страйп, и операция чтения страйпа считается завершенной.При этом время чтения страйпа определяется временем чтения последнего блока.

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

отметим, что номер отказавшего диска заведомо известен. С практической точки зрения это означает, что факт выхода из строя какого-либо диска обнаруживает аппаратную систему контроля. Задача обнаружения «скрытой» потери данных, т.е. искажения данных на дисках, которые система работоспособными, в данном материале нами не рассматривалась.

Стоит отметить, что использованный выше термин «умножение» мы вкладывал особый смысл, отличный от умножения чисел, к которому мы привыкли со школы. Классическое понимание здесь не применимо, т.к. при перемножении двух чисел размерности n бит в результате мы получим размерность 2 бит. Следовательно, с каждым последующим умножением значения увеличивается размер всех блоков страйпа был одинаковым.

Далее рассмотрим, какие операции используются в практических расчетах, чем их сложность и как их можно оптимизировать.

Арифметические операции в конечных полях

Для детальной оценки трудоёмкости и снижения сложности вычислений в технологии RAID-6 необходимо более подробно рассмотреть вычисления в конечных полях.

Мы остановимся на полях вида, состоящих из элементов. Следуя (Лидл & Нидеррайтер, 1988), представим элементы поля как многочлены с двоичными коэффициентами степени не выше. Такие многочлены удобно записывать в виде машинных слов разрядности. Будем их записывать в шестнадцатеричной системе счисления, например:

$$ display $$ x ^ 7 + x ^ 5 + x ^ 2 + 1 → 10100101 → A5 \\ x ^ 5 + x ^ 3 + 1 → 101001 → 29 $ $ дисплей $$

Известно, что для любого поля получается путём факторизации кольца многочленов над GF (2) по модулю неприводимого многочлена степени.Назовем такой многочлен порождающим. Таким образом, сложение в поле можно выполнить как операцию сложения многочленов, а умножение — как операцию умножения многочленов по модулю порождающего многочлена. Т.е. результат умножения двух многочленов делится на порождающий многочлен и остаток от этого деления и оказывается конечным результатом умножения двух элементов поля.

Обширный список неприводимых многочленов приведён в (Серусси, 1998). Например, в качестве порождаемого многочлена для поля может быть выбран многочлен 171:.

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

В случае, когда степень порождающего многочлена не большой разрядности машинного слова, операция сложения элементов поля выполняется за одну машинную команду поразрядного исключающего «или».

Операция умножения выполняется в два этапа: поля умножаются как многочлены, а затем находится остаток от деления этого произведения на порождающий многочлен.Например:

При этом в пересчёте на элементарные операции производственного процесса до 2 (n-1) сложений в зависимости от значения сомножителей. Именно в этой «зависимости» и содержит существенный резерв производительности вычислений. Например, если выбрать
, то вычисление сумм вида можно выполнить по схеме Горнера:

т. е. в качестве сомножителя в операции умножения при вычислении синдромов P и Q можно зафиксировать многочлен.Умножение на многочлен сводится к операции сдвига на один разряд влево и сложения результата с модулем, если при сдвиге произошёл перенос. Например:

С учётом выбора формулы (2), (3) могут быть переписаны в следующем виде:

Вычисление синдромов

Восстановление двух утраченных дисков

$$ display $$ \ left \ {\ begin {align} D_α & = \ bar {P} _ {α, β} — D_β \\ D_β & = \ frac {\ bar {P} _ {α, β} — \ bar {Q} _ {α, β} x ^ {α-N + 1}} {1 — x ^ {α-β}} \ end {align}, α ≠ β \ right.\ qquad (3 ‘) $$ display $$

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

Отсюда следует, что и при восстановлении данных нам достаточно уметь складывать и умножать на.Эти операции следует осуществлять с максимальной длиной.

Векторизация вычислений

Тот факт, что для всех блоков данных и кодовых слов в этих блоках мы выполняем одинаковые действия, позволяет применять различные алгоритмы векторизации вычислений, используя такие расширения процессора Intel, как SSE, AVX, AVX2, AVX512. Суть такого подхода состоит в том, что мы загружаем в специальные регистры процессора сразу несколько кодовых слов. Например, при использовании SSE с размером регистра в 128 бит в одном регистре можно связать 16 элементов поля.Если же процессор поддерживает AVX512, то 64 элемента.

Рис. 3. Расположение данных в векторных регистрах

Такая идея расположения данных в векторных регистрах при вычислении используется в библиотеке ISA-L (Intel) и Jerasure (Джеймс Планк). Эти библиотеки помехоустойчивого кодирования очень популярны благодаря широкому функционалу и серьезным оптимизациям. Умножение элементов поля в этой библиотеке использует инструкцию SHUFFLE и вспомогательные предрассчитанные «таблицы умножения».Более подробное описание библиотек можно найти на сайтах Intel и Jerasure.

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

Одно из основных преимуществ RAIDIX состоит в оригинальном подходе, который позволяет увеличить скорость кодирования и декодирования данных более чем в два раза по сравнению с другими, уже «разогнанными» векторизацией, библиотеками.Данный подход в «Рэйдикс» называют «побитовым параллелизмом». У компании, кстати, есть патент на соответствующий метод расчета и реализации алгоритма.

В RAIDIX был применен иной подход к векторизации. Суть подход следующая: мысленно разместим регистры вертикально; с считать блоков данных 8 значений, равных размеру регистратора; используя SSE, получим 8 * 16 байт, при AVX — 8 * 32 байт.

Рис. 4. Вертикальное размещение регистров

В рамках данного мы разместили в регистрах количество элементов, сколько бит в одном векторном регистре.Умножение на всех элементов сразу выполняется за счет трех операций XOR и перестановки (переобозначения) этих 8 регистров. Другими словами, мы можем выполнить умножение сразу 128 или 256 элементов поля на х, используя всего несколько простых инструкций!

Рис. 5. Схема схемы умножения на X

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

Мы произвели сравнение алгоритмов RAIDIX с наиболее популярными библиотеками помехоустойчивого кодирования ISA-l и Jerasure. Сравнение касалось только скорости работы алгоритма кодирования или декодирования — без учета записи с дисков. Сравнение производилось на системе со следующей конфигурацией:

  • OC: Debian 8
  • Процессор: Intel Core i7-2600 3,40 ГГц
  • Оперативная память: 8 ГБ
  • Компилятор gcc 4.8

На рис.6 показано сравнение скорости кодирования и декодирования данных в RAID-6 на одно вычислительное ядро. Алгоритм RAIDIX обозначен как «rdx». Приведено аналогичное сравнение для алгоритмов RAID с тремя контрольными суммами (RAID-7.3).

Рис. 6. Сравнение скорости кодирования и декодирования в RAID 6

Рис. 7. Сравнение кодирования и декодирования в RAID 7.3

В отличие от ISA-L и Jerasure, некоторые части реализованы на Ассемблере, библиотека RAIDIX полностью написана на С, что позволяет легко переносить код «Рэйдикс» на новые или «экзотические» тип архитектуры.

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

Такая реализация операций кодирования и декодирования позволяет RAID-системам использовать возможности реконструкции и записи / чтения в режиме отказа на уровне нескольких десятков гигабайт в секунду.

Так, в качестве базового типа данных при векторизации, как правило, используется __m128i (SSE) или __m256i (AVX).Алгоритм использует простые простые операции XOR, заменив базовый тип на __m512i (AVX512), инженеры «Рэйдикс» смогли быстро пересобрать, запустить и протестировать алгоритмы на современных многоядерных процессорах Intel Xeon Phi. С другой стороны, при использовании long long (64 бита, стандартный тип С) в качестве алгоритмы «Рэйдикс» успешно запускаются на российских процессорах типа «Эльбрус».

Литература

  1. Анвин, Х. П. (21 мая 2009 г.). Математика RAID-6.Получено 18 ноября 2009 г., из Архивов ядра Linux: ftp.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf
  2. Чен, П. М., Ли, Э. К., Гибсон, Г. А., Кац, Р. Х., и Паттерсон, Д. А. (1993). RAID: высокопроизводительное и надежное вторичное хранилище. Технический отчет № UCB / CSD-93-778. Беркли: Департамент EECS, Калифорнийский университет.
  3. Intel. (1996-1999). Руководство пользователя Iometer, версия 2003.12.16. Получено 2012 г., из проекта Iometer: iometer.svn.sourceforge.net/viewvc/iometer/trunk/IOmeter/Docs/Iometer.pdf? revision = ГОЛОВКА
  4. Intel. (2012). Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32. Том 1, 2a, 2b, 2c, 3a, 3b, 3c.
  5. Серусси, Г. (1998). Таблица маловесных двоичных неприводимых многочленов. Лаборатория компьютерных систем Hewlett Packard, HPL-98-135.

.

Добавить комментарий

Ваш адрес email не будет опубликован.