Raid initialize что это
При создании программного устройства raid для Linux в качестве устройства raid10 я не понимаю, почему его нужно инициализировать. Тот же вопрос относится к raid1 или raid0, правда.
В конечном счете, большинство людей ставят какую-то файловую систему поверх нее, и эта файловая система не должна принимать какое-либо состояние данных на диске. Каждая запись влияет на оба диска в настройках raid10 или raid1, где записано N зеркал. Не должно быть никаких причин для первоначальной инициализации raid10, поскольку это произойдет со временем.
Я могу понять, почему для установки raid5 / 6, где есть требование четности, но даже тогда кажется, что это можно сделать лениво.
Просто так люди чувствуют себя лучше?
Хороший вопрос. Можно пропустить синхронизацию при создании RAID, и я натолкнулся на рекомендации для этого в случае, если одно или несколько базовых устройств являются SSD. Я не знаю, существуют ли сценарии, в которых синхронизация необходима для правильной работы.
Начальная синхронизация необходима, потому что любые различия между зеркалами будут отображаться как ошибки во время периодической проверки.
И вы должны делать периодические проверки.
Я понимаю, почему периодические проверки на удобочитаемость данных могут быть полезны. Но что хорошего в периодической проверке идентичности реплик? Такие проверки могут быть полезны, если они выполняются файловой системой, которая проверяет контрольные суммы данных. Но на уровне RAID без знания файловой системы вы не можете знать, какая из двух разных реплик хороша, вы не можете знать, как возникло несоответствие, и вы не можете знать, на какой файл (если есть) это повлияло. Таким образом, кажется, что оповещения о несоответствиях на этом уровне в основном бесполезны, поскольку администратор все равно ничего не может сделать с оповещениями.
Поскольку вам все равно нужно читать данные, затраты на их сравнение минимальны, но это может показать вам, что на одном из дисков возникла иная необнаруженная проблема (например, плохая память в собственном кеше диска). Затем администратор разбивает массив, вручную просматривает различия и выбирает, какой диск заменить.
Я знаю, что прошло много лет, но это единственная веская причина, которую я вижу. Я не думаю, что в противном случае имеет значение, если данные не синхронизированы, так как эти данные по определению еще не записаны, поэтому файловая система, примененная к диску raid, никогда не будет считывать эти блоки. Убедившись, что периодические проверки проходят с самого начала, это делает это необходимым. Спасибо!
Raid 1, будучи зеркалом, зависит от того, являются ли все диски в зеркале точными копиями друг друга. Возьмите ваш случайный жесткий диск и другой случайный жесткий диск, и у вас там могут быть другие данные, что нарушает это предположение. Вот почему инициализация необходима. Он просто копирует содержимое первого диска другим. Обратите внимание, что в некоторых случаях вы можете обойтись без инициализации дисков - обычно на новых устройствах уже есть нули, поэтому вы можете просто проигнорировать это. mdadm Вариант --assume-clean делает это, но предупреждает вас:
Скажите mdadm, что массив уже существовал и известен как чистый. Это может быть полезно при попытке восстановления после серьезного сбоя, поскольку вы можете быть уверены, что никакие данные не будут затронуты, если вы фактически не запишете в массив. Его также можно использовать при создании RAID1 или RAID10, если вы хотите избежать первоначальной повторной синхронизации, однако эта практика - хотя обычно безопасная - не рекомендуется. Используйте это, только если вы действительно знаете, что делаете.
Если вы этого не сделаете, между дисками и диском будет несоответствие, и вы не будете знать, что диск прочитает. Вы должны быть в полной безопасности с файловой системой (но обратите внимание на ниже), потому что, скорее всего, вы напишите, прежде чем что-то читать с этого устройства, и тогда все ясно.
Обратите внимание, что по крайней мере Linux mdadm будет инициализировать массив в фоновом режиме. Вы можете счастливо создать FS поверх него в первую секунду. Производительность пострадает до завершения инициализации, но это все.
а) При выполнении mkfs некоторых утилит проверьте, есть ли уже что-то на этом диске. Хотя это касается только нескольких известных областей диска, оно читает перед тем, как что-то написать, тем самым подвергая вас опасности.
б) Если вы делаете периодическую синхронизацию вашего массива, устройство RAID ничего не знает о вашей FS. Он просто читает каждый блок с каждого устройства и сравнивает их. И если вы не используете FS при копировании при записи (например, ZFS или BTRFS) и никогда не заполняете свою FS, вполне вероятно, что блок останется неинициализированным с точки зрения FS в течение многих лет.
Нужно ли заниматься архивированием данных в случае использования RAID?
О: Конечно да! RAID это вовсе не замена архивированию, основное его назначение это повышение скорости и надежности доступа к данным в нормальном режиме работы. Но только регулярное архивирование данных гарантировано обеспечит их сохранность при любых отказах оборудования, пожарах, потопах и прочих неприятностях.
Что такое Write Through и Write Back?
Это способ записи данных, полученных RAID контроллером, на дисковый массив. По другому эти способы еще называются так: прямая запись (Write Through) и отложенная запись (Write Back). Какой из этих способов будет использоваться определяется в BIOS-е контроллера (либо при создании массива, либо позднее).
- Write Through - данные записываются непосредственно на дисковый массив. Т.е. как только данные получены, они сразу же записываются на диски и после этого контроллер подает сигнал управляющей ОС о завершении операции.
- Write Back - данные записываются сначала в кэш, и только потом (либо по мере заполнения кэш-а, либо в моменты минимальной загрузки дисковой системы) из кэш-а на диски. При этом, сигнал о завершении операции записи передается управляющей ОС сразу же по получении данных кэш-ем контроллера.
Избежать описанной проблемы можно или с помощью установки на RAID контроллер BBU (см. ниже), или посредством подключения всего сервера через источник бесперебойного питания (UPS) с функцией программируемого выключения.
Кстати, некоторые RAID контроллеры не позволяют включить функцию Write Back без установленного BBU.
Тестовый стенд
Каждый из способов организации дисковых массивов имеет свои физические плюсы и минусы. Но есть ли разница в производительности при работе с дисковыми массивами?
Для достижения максимальной справедливости все тесты будут проведены на одном и том же сервере. Его конфигурация:
- 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.
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 можно наблюдать синхронизацию накопителей в ОС:
Отметим, что через mdadm нельзя собирать массивы на VROC (собранные массивы будут Linux SW RAID), но можно менять в них диски и разбирать массивы.
Почему повторная синхронизация с устройствами RAID1?
По той же причине вы повторно синхронизируете с устройствами RAID5 или любым другим уровнем (кроме RAID0). Он считывает все данные и сравнивает / проверяет контрольные суммы RAID (в RAID 5 или 6). Если бит был каким-либо образом перевернут (потому что память HD стала самопроизвольно перевернутой, потому что мобильные телефоны вас и ваших 5 соседей просто случайно вмешались в эту конкретную область тарелки, что угодно), это обнаружит несогласованность, но не сможет помочь тебе. Если, OTOH, один из жестких дисков просто сообщит «Я не могу прочитать этот блок», что более вероятно при неисправном диске, вы только что обнаружили сбой раньше и сократили время работы в ухудшенном режиме (считая от сбой диска, а не с того момента, когда вы заметили это). Рейд не поможет вам, если один диск выйдет из строя, а через месяц другой выйдет из строя, если вы не
С аппаратным RAID
Прежде чем сервер сможет использовать единое дисковое пространство RAID-массива, необходимо выполнить базовую настройку контроллера и логических дисков. Сделать это можно двумя способами:
- при помощи внутренней утилиты контроллера,
- утилитой из операционной системы.
Утилита позволяет не только управлять настройками контроллера, но и логическими устройствами. Инициализируем физические диски (вся информация на дисках при инициализации будет уничтожена) и создадим массив RAID-10 с помощью раздела Create Array. При создании система запросит желаемый размер страйпа, то есть размер блока данных за одну I/O-операцию:
- больший размер страйпа идеален для работы с файлами большого размера;
- меньший размер страйпа подойдет для обработки большого количества файлов небольшого размера.
Важно — размер страйпа задается только один раз (при создании массива) и это значение в дальнейшем изменить нельзя.
Сразу после того, как контроллеру отдана команда создания массива, также, как и с программным RAID, начинается процесс перестроения данных на дисках. Этот процесс работает в фоновом режиме, при этом логический диск становится сразу доступен для BIOS. Производительность дисковой подсистемы будет также снижена до завершения процесса. В случае, если было создано несколько массивов, то необходимо определить загрузочный массив с помощью сочетания клавиш Ctrl + B.
После того как статус массива изменился на Optimal, мы установили Bitrix24 и провели точно такой же тест. Результат теста:
Сразу становится понятно, что аппаратный 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-контроллера до требуемой версии в указанное время и сделают это максимально корректно.
Важно — не следует выполнять перепрошивку самостоятельно, поскольку любая ошибка может привести к потере данных!
Внешний вид
Мы выбрали решения Adaptec от компании Microsemi. Это RAID-контроллеры, зарекомендовавшие себя удобством использования и высокой производительностью. Их мы устанавливаем, если наш клиент решил заказать сервер произвольной или фиксированной конфигурации.
Для подключения дисков используются специальные интерфейсные кабели. Со стороны контроллера используются разъемы SFF8643. Каждый кабель позволяет подключить до 4-х дисков SAS или SATA (в зависимости от модели). Помимо этого интерфейсный кабель еще имеет восьмипиновый разъем SFF-8485 для шины SGPIO, о назначении которой поговорим чуть позже.
Помимо самого RAID-контроллера существует еще два дополнительных устройства, позволяющих увеличить надежность:
-
BBU (Battery Backup Unit) — модуль расширения с литий-ионной батареей, позволяющий поддерживать напряжение на энергозависимой микросхеме кэша. В случае внезапного обесточивания сервера его использование позволяет временно сохранить содержимое кэша, которое еще не было записано на диски.
Это особенно важно, когда включен режим отложенной записи кэша (Writeback). При пропадании электропитания содержимое кэша не будет сброшено на диски, что приведет к потере данных и, как следствие, штатная работа дискового массива будет нарушена.
Как создать raid
И так давайте рассмотрим как создать raid на данном контроллере adaptec. После инициализации рассмотрим создание RAID 0 и RAID 1 под систему, почитать по виды RAID можно по ссылке слева. Выбираем Create Array.
Описание кэширования LUN
- Read Caching > Данная настройка, по дефолту включена, это позволяет adaptec 8885 контроллеру сохранять данные в кэш на диске. Со включенным кэшом контроллер мониторит процесс чтений данных с пула дисков. Опция Enable MaxCache, аналогична Cache Cade у LSI, и смысл технологии в том, что если у вас есть обычные hdd и есть один или более ssd дисков, то их можно использовать для кэширования hdd массивов, что в десятки раз увеличивает количество операций ввода/вывода (iops)
- Write Caching > так же настройка включена по дефолту. Данный параметр означает. что включен режим write-back, в котором рейд контроллер отсылает ОС подтверждение о том что данные записались, только тогда когда они появились на дисках. При его работе производительность лучше, но данные могут потеряться если у вас будут проблемы с питанием, но если у вас подключена батарейка или флэш-модуль, то кэш сохранится еще на 72 часа, в течении которых вы должны устранить проблему с питанием. Если вы не восстановите электропитание, то контроллер не сможет перенести данные из кэша DRAM, на диски.
Далее можно приступать к установке операционной системы на созданные lun, в моем случае я буду ставить VMware ESXi 5.5.
Что такое BBU и зачем он нужен?
BBU (Battery Backup Unit) необходим для предотвращения потери данных находящихся в кэш-е RAID контроллера и еще не записанных на диск (отложенная запись - "write-back caching"), в случае аварийного выключения компьютерной системы.
Существуют три разновидности BBU:
- Просто BBU: это аккумулятор, который обеспечивает резервное питание кэша через RAID контроллер.
- Переносимые (Transportable) BBU (tBBU): это аккумулятор, который размещен непосредственно на модуле кэш и питает его независимо от RAID контроллера. В случае выхода из строя RAID контроллера, это позволяет перенести данные, сохраненные вкэш-е, на резервный контроллер и уже на нем завершить операцию записи данных.
- Flash BBU: основная идея заключается в следующем: в случае сбоя питания RAID контроллер копирует содержимое кэш-а в энергонезависимую память (например, в случае с технологией Adaptec » Zero-Maintenance Cache Protection - на NAND флэш накопитель). Питание, необходимое для завершения этого процесса, обеспечивается встроенным супер-конденсатором. После восстановления питания, данные из флэш памяти копируются обратно в кэш контроллера.
Инициализация дисков
Выбираем в главном меню пункт Logical Device Configuration
Первым делом, что бы вы могли создать создать raid массив, вам нужно проинициализировать ваши диски, для этого выбираем initialize Drives.
Пробелом выбираем нужный диск, он сразу будет у вас отображаться в правой части окна. Для подтверждения выбора жмем Enter.
Вас предупредят, что вся информация с дисков будет удалена, жмем Y и соглашаемся
С программным RAID
Несомненное преимущество программного RAID — простота использования. Массив в ОС Linux создается с помощью штатной утилиты mdadm. При установке операционной системы чаще всего создание массива предусмотрено непосредственно из установщика. В случае, когда такой возможности установщик не предоставляет, достаточно всего лишь перейти в соседнюю консоль с помощью сочетания клавиш Ctrl+Alt+F2 (где номер функциональной клавиши — это номер вызываемой tty).
Создать массив очень просто. Командой fdisk -l смотрим, какие диски присутствуют в системе. В нашем случае это 4 диска:
Проверяем, чтобы на дисках не было метаданных, например, от предыдущего массива:
В случае, если на одном или нескольких дисках будут метаданные, удалить их можно следующим образом (где sdX — требуемый диск):
Создадим на каждом диске разделы для будущего массива c помощью fdisk. В качестве типа раздела следует указать fd (Linux RAID autodetect).
Собираем массив RAID 10 из созданных разделов с помощью команды:
Сразу после этого будет создан массив /dev/md0 и будет запущен процесс перестроения данных на дисках. Для отслеживания текущего статуса процесса введите:
Пока процесс перестроения данных не будет завершен, скорость работы дискового массива будет снижена.
После установки операционной системы и Bitrix24 на созданный массив мы запустили стандартный тест и получили следующие результаты:
Что такое JBOD?
JBOD (Just a Bunch of Disks) это способ подключить диски к RAID контроллеру не создавая на них никакого RAID. Каждый из дисков доступен так же, как если бы он был подключен к обычному адаптеру. Эта конфигурация применяется когда необходимо иметь несколько независимых дисков, но не обеспечивает ни повышения скорости, ни отказоустойчивости.
Заключение
Использование аппаратных решений для создания дисковых массивов из двух дисков выглядит нерационально. Тем не менее, существуют задачи, где использование RAID-контроллеров оправдано. С появлением контроллеров с поддержкой интерфейса NVMe у пользователей появляется возможность использовать более быстрые SSD в своих проектах.
Всем привет, рад, что вы решили посмотреть вторую часть статьи по настройке и созданию raid массивов на контроллере adaptec raid 8885. Сегодня мы будем рассматривать, самые распространенные виды RAID, со всеми нюансами и рекомендациями, которые предписывают производители железа, но в любом случая, я вас призываю не верить на слово и производить свое тестирование со всеми настройками.
И так общие настройки для контроллера посмотрите в первой части настройки adaptec raid 8885.
Создаем RAID 0
Создать raid массив 0, можно из любого количества дисков или твердотельных SSD. Я выбираю пробелом два HP SAS диска по 600 гб.
- Выбираем RAID 0
- в Array Label можно написать предназначение массива
- Array Size > указываете нужный вам размер
- Stripe Size > размер блока, может принимать разные значения от 16-1024 кб, все зависит от задачи
- Read Cachin > кэш на чтение
- Write Caching > кэш на запись, про оба кэша в конце статьи.
- Criate RAID via > инициализация массива.
Жмем enter, вас предупредят, что все данные у вас будут уничтожены.
Я настоятельно рекомендую использовать данный вид рейд, только в тестовых целях, так как отказоустойчивость у него нулевая, выше я дал ссылку на виды рейд, почитайте их принципы
Температура
Вначале хотелось бы затронуть такую важную вещь, как температурный режим аппаратных RAID-контроллеров Adaptec. Все они оснащены небольшими пассивными радиаторами, что может вызвать ложное представление о небольшом тепловыделении.
Производитель контроллера приводит в качестве рекомендуемого значения воздушного потока — 200 LFM (linear feet per minute), что соответствует показателю 8,24 литра в секунду (или 1,02 метра в секунду). Рассчитаны такие контроллеры исключительно на установку в rackmount-корпусы, где такой воздушный поток создается скоростными штатными кулерами.
От 0°C до 40-55°C — рабочая температура большинства RAID-контроллеров Adaptec (в зависимости от наличия установленных модулей), рекомендованная производителем. Максимальная рабочая температура чипа составляет 100°C. Функционирование контроллера при повышенной температуре (более 85°C) может вывести его из строя. Удобства ради приводим под спойлером табличку рекомендуемых температур для разных серий контроллеров Adaptec.
Series 2 (2405, 2045, 2805) and 2405Q | 55°C без модулей |
Series 5 (5405, 5445, 5085, 5805, 51245, 51645, 52445) | 55°C без батарейного модуля, 40°C с батарейным модулем ABM-800 |
Series 5Z (5405Z, 5445Z, 5805Z, 5805ZQ) | 50°C с модулем ZMCP |
Series 5Q (5805Q) | 55°C без батарейного модуля, 40°C с батарейным модулем ABM-800 |
Series 6E (6405E, 6805E) | 55°C без модулей |
Series 6/6T (6405, 6445, 6805, 6405T, 6805T) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-600 |
Series 6Q (6805Q, 6805TQ) | 50°C с ZMCP модулем AFM-600 |
Series 7E (71605E) | 55°C без модулей |
Series 7 (7805, 71605, 71685, 78165, 72405) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-700 |
Series 7Q (7805Q, 71605Q) | 50°C с ZMCP модулем AFM-700 |
Series 8E (8405E, 8805E) | 55°C без модулей |
Series 8 (8405, 8805, 8885) | 55°C без ZMCP модуля, 50°C с ZMCP модулем AFM-700 |
Series 8Q (8885Q, 81605Z, 81605ZQ) | 50°C с ZMCP модулем AFM-700 |
Нашим клиентам не приходится беспокоиться о перегреве контроллеров, поскольку в наших дата-центрах поддерживается постоянный температурный режим, а сборка серверов произвольной конфигурации происходит с учетом особенностей таких комплектующих (о чем мы упоминали в нашей предыдущей статье).
Заключение
Использование аппаратного RAID-контроллера оправдано в большинстве случаев, когда требуется высокая скорость и надежность работы дисковой подсистемы.
Системные инженеры Selectel бесплатно выполнят базовую настройку дискового массива на аппаратном RAID-контроллере при заказе сервера произвольной конфигурации. В случае, если потребуется дополнительная помощь с настройкой, мы будем рады помочь в рамках нашей услуги администрирования. Также мы подготовили для наших читателей небольшую памятку по командам утилиты arcconf.
В данной статье мы расскажем про разные способы организации RAID-массивов, а также покажем один из первых аппаратных RAID-контроллеров с поддержкой NVMe.
Все разнообразие применений технологии RAID встречается в серверном сегменте. В клиентском сегменте чаще всего используется исключительно программный RAID0 или RAID1 на два диска.
В этой статье будет краткий обзор технологии RAID, небольшая инструкция по созданию RAID-массивов с помощью трех разных инструментов и сравнение производительности виртуальных дисков при использовании каждого из способов.
Что такое RAID и зачем он нужен?
Акроним RAID (Reudant Array of Independed Disks) избыточный массив независимых дисков, впервые был использован в 1988 году исследователями из института Беркли Паттерсоном (Patterson), Гибсоном (Gibson) и Кацем (Katz). Они описали конфигурацию массива из нескольких недорогих дисков, обеспечивающих высокие показатели по отказоустойчивости и производительности.
Наиболее "слабой" в смысле отказоустойчивости частью компьютерных систем всегда являлись жесткие диски, поскольку они, чуть ли не единственные из составляющих компьютера, имеют механические части. Данные записанные на жесткий диск доступны только пока доступен жесткий диск, и вопрос заключается не в том, откажет ли этот жесткий диск когда-нибудь, а в том, когда он откажет.
RAID обеспечивает метод доступа к нескольким жестким дискам, как если бы имелся один большой диск (SLED - single large expensive disk), распределяя информацию и доступ к ней по нескольким дискам, обеспечивая снижение риска потери данных, в случае отказа одного из винчестеров, и увеличивая скорость доступа к ним.
Обычно RAID используется в больших файл серверах или серверах приложений, когда важна, высока скорость и надежность доступа к данным. Сегодня RAID находит применение так же в настольных системах, работающих с CAD, мультимедийными задачами и когда требуется обеспечить высокую производительность дисковой системы.
Настройка мониторинга
Вопрос мониторинга статуса работы оборудования и возможности оповещения стоит достаточно остро для любого системного администратора. Для того чтобы настроить «связку» из Zabbix и RAID-контроллера Adaptec рекомендуем воспользоваться перечисленными решениями.
Зачастую требуется отслеживать состояние контроллера напрямую из гипервизора, например, VMware ESXi. Задача решается с помощью установки CIM-провайдера с помощью инструкции Microsemi.
RAID10
Теперь для RAID10 все вышеперечисленное выполняется. В конце концов, RAID10 - это просто умный способ сказать «я помещаю два моих устройства RAID1 в пару RAID0».
Скорость работы
Для того чтобы продемонстрировать, как наличие аппаратного RAID-контроллера способствует увеличению скорости работы сервера, мы решили собрать тестовый стенд со следующей конфигурацией:
- CPU Intel Xeon E3-1230v5;
- RAM 16 Gb DDR4 2133 ECC;
- 4 HDD емкостью по 1 ТБ.
Затем в этот же стенд поставим RAID-контроллер Adaptec ASR 7805 с модулем защиты кэша AFM-700, подключим к нему эти же жесткие диски и выполним точно такое же тестирование.
Настройка кэширования
Теперь пару слов о вариантах работы кэша на запись. Вариант Write Through означает, что контроллер сообщает операционной системе об успешном выполнении операции записи только после того, как данные будут фактически записаны на диски. Это повышает надежность сохранности данных, но никак не увеличивает производительность.
Чтобы достичь максимальной скорости работы, необходимо использовать вариант Write Back. При такой схеме работы контроллер будет сообщать операционной системе об успешной IO-операции сразу после того, как данные поступят в кэш.
Важно — при использовании Write Back настоятельно рекомендуется использовать BBU или ZMCP-модуль, поскольку без него при внезапном отключении электричества часть данных может быть утеряна.
Технические характеристики
LSI MegaRAID 9460-8i
Внешний вид контроллера LSI MegaRAID 9460-8i
RAID-контроллер является самостоятельным аппаратным решением. Контроллер работает только с накопителями, подключенными непосредственно к нему. Данный RAID-контроллер поддерживает до 24 накопителей с интерфейсом NVMe. Именно поддержка NVMe выделяет этот контроллер из множества других.
Главное меню аппаратного контроллера
При использовании режима UEFI настройки контроллера интегрируются в Setup Utility. В сравнении с VROC меню аппаратного контроллера выглядит значительно сложнее.
Создание RAID1 на двух дисках
Объяснение настройки дисковых массивов на аппаратном контроллере является достаточно тонкой темой и может стать поводом для полноценной статьи. Здесь же мы просто ограничимся созданием RAID0 и RAID1 с настройками по умолчанию.
Диски, подключенные в аппаратный контроллер, не видны операционной системе. Вместо этого контроллер «маскирует» все RAID-массивы под SAS-накопители. Накопители, подключенные в контроллер, но не входящие в состав дискового массива, не будут доступны ОС.
Несмотря на маскировку под SAS-накопители, массивы с NVMe будут работать на скорости PCIe. Однако такая особенность позволяет загружаться с NVMe в Legacy.
Создаем RAID 1
И так, так же как и с 0 рейдом, создадим на контроллере adaptec, зеркальный массив под установку системы. В Array Type выбираем RAID 1 (Mirror), для его создания нужно четное число дисков.
Также задаем описание, у меня это system. Stripe к сожалению задать не удается, режимы кэширования оставим по умолчанию
В пункте Create RAID via выбираем Quick init, быстрое формтирование массива.
Подтверждаем инициализацию рейд дисков
Для того чтобы, потом изменить настройки созданного рейд массива, следует выйти в меню Main Menu и выбрать пункт manage Arrays. У вас будет отображен список lun в List of Arrays. Как видите у меня есть RAID 1 и он состоит из двух дисков.
Снизу есть комбинации клавиш с помощью которых можно выполнять редактирование у созданных lunов.
Нажимаем CTRL+R и попадаем в пункт редактирования настроек кэширования. Выбираем значения Tab.
Тестирование
В первую очередь проверим задержки при работе с диском. Тест выполняется в один поток, размер блока 4 КБ. Каждый тест длится 5 минут. Перед началом для соответствующего блочного устройства выставляется none в качестве планировщика I/O. Команда fio выглядит следующим образом:
Из результатов fio мы берем clat 99.00%. Результаты приведены в таблице ниже.
Случайное чтение, мкс | Случайная запись, мкс | |
---|---|---|
Диск | 112 | 78 |
Linux SW RAID, RAID0 | 113 | 45 |
VROC, RAID0 | 112 | 46 |
LSI, RAID0 | 122 | 63 |
Linux SW RAID, RAID1 | 113 | 48 |
VROC, RAID1 | 113 | 45 |
LSI, RAID1 | 128 | 89 |
Помимо задержек при обращении к данным, хочется увидеть производительность виртуальных накопителей и сравнить с производительностью физического диска. Команда для запуска fio:
Производительность измеряется в количестве операций ввода-вывода. Результаты представлены в таблице ниже.
Случайное чтение 1 поток, IOPS | Случайная запись 1 поток, IOPS | Случайное чтение 128 потоков, IOPS | Случайная запись 128 потоков, IOPS | |
---|---|---|---|---|
Диск | 11300 | 40700 | 453000 | 105000 |
Linux SW RAID, RAID0 | 11200 | 52000 | 429000 | 232000 |
VROC, RAID0 | 11200 | 52300 | 441000 | 162000 |
LSI, RAID0 | 10900 | 44200 | 311000 | 160000 |
Linux SW RAID, RAID1 | 10000 | 48600 | 395000 | 147000 |
VROC, RAID1 | 10000 | 54400 | 378000 | 244000 |
LSI, RAID1 | 11000 | 34300 | 229000 | 248000 |
Легко заметить, что использование аппаратного контроллера дает увеличение задержек и просадку по производительности в сравнении с программными решениями.
Можно ли использовать в RAID массиве диски разного размера?
Да. можно. Но, при этом, используемая емкость у ВСЕХ дисков будет равна емкости наименьшего диска.
Из этого следует, что добавлять в уже существующий RAID массив можно только диски такого же или большего размера
Создаем RAID 10
И так, чтобы настроить raid массив 10, нам потребуется четное количество дисков. В моем случае это 6 ssd samsung evo 850. Выбираем диски пробелом и жмем Enter.
В Array Type выбираем нужное значение.
заполняем остальные значения, у меня вышло вот так и жмем done, так же контроллер вам порекомендует отключить для ssd кэширование, советую подтвердить на данном этапе, а потом сравнить во время тестирования с ним и без него.
Виды RAID-контроллеров
Существует два способа создать и использовать RAID-массивы: аппаратный и программный. Мы рассмотрим следующие решения:
- Linux Software RAID.
- Intel® Virtual RAID On CPU.
- LSI MegaRAID 9460-8i.
Управление контроллером
Непосредственно из операционной системы управление контроллером производится с помощью программного обеспечения, доступного для скачивания с сайта производителя. Доступны варианты для большинства операционных систем и гипервизоров:
- Debian,
- Ubuntu,
- Red Hat Linux,
- Fedora,
- SuSE Linux,
- FreeBSD,
- Solaris,
- Microsoft Windows,
- Citrix XenServer,
- VMware ESXi.
С помощью указанных утилит можно, не прерывая работу сервера, легко управлять логическими и физическими дисками. Также можно задействовать такой полезный функционал, как «подсветка диска». Мы уже упоминали про пятый кабель для подключения SGPIO — этот кабель подключается напрямую в бэкплейн (от англ. backplane — соединительная плата для накопителей сервера) и позволяет RAID-контроллеру полностью управлять световой индикацей каждого диска.
Следует помнить, что бэкплэйны поддерживают не только SGPIO, но и I2C. Переключение между этими режимами осуществляется чаще всего с помощью джамперов на самом бэкплэйне.
Каждому устройству, подключенному к аппаратному RAID-контроллеру Adaptec, присваивается идентификатор, состоящий из номера канала и номера физического диска. Номера каналов соответствуют номерам портов на контроллере.
Замена диска — штатная операция, впрочем, требующая однозначной идентификации. Если допустить ошибку при этой операции, можно потерять данные и прервать работу сервера. С аппаратным RAID-контроллером такая ошибка является редкостью.
Делается это очень просто:
-
Запрашивается список подключенных дисков к контроллеру:
Например, на платформах Supermicro штатная работа диска — зеленый или синий цвет, а «подсвеченный» диск будет моргать красным. Перепутать диски в этом случае невозможно, что позволит избежать ошибки из-за человеческого фактора.
Можно ли использовать в RAID массиве диски разных производителей?
Да, можно. Но при этом надо иметь ввиду, что точные размеры дисков одинаковой емкости (36/73/146. ГБ) у разных производителей могут отличаться на несколько килобайт. Когда вы создаете новый RAID массив, на это можно не обращать внимание, но если вы добавляете диски к уже существующему массиву (например, меняете вышедший из строя диск), то важно, чтобы новый диск был больше чем старые, или точно такого же размера.
Что такое Hotswap?
Создаем RAID 5
Самый противоречивый вид, с одной стороны может долго восстанавливаться, а с другой экономит место. Если у вас как и у меня будут ssd твердотельные диски, для тестирования, то советую попробовать пятерку. Для создания рейд 5 требуется минимум 3 диска, формула n-1, где n общее число дисков. В моем случае из 4 ssd и в системе увижу объем трех, четвертый будет скрыт под контрольные суммы.
Выбираем из списка RAID-5
Вот какие настройки у меня получились.
Жмем done. Так как у меня 4 ssd диска, то контроллер предложил, для увеличения производительности отключить на ssd дисках кэш на чтение и на запись.
При желании потом можно включить cache.
Что такое размер страйпа (stripe size)?
размер страйпа (stripe size) определяет объем данных записываемых за одну операцию ввода/вывода. размер страйпа задается в момент конфигурирования RAID массива и не может быть изменен позднее без переинициализации всего массива. Больший размер страйпа обеспечивает прирост производительности при работе с большими последовательными файлами (например, видео), меньший - обеспечивает большую эффективность в случае работы с большим количеством небольших файлов.
Что такое Hot Spare (Hotspare)?
Hot Spare - (Резервная Замена Дисководов ("Горячее резервирование")) - Одна из наиболее важных особенностей, которую обеспечивает RAID контроллер, с целью достичь безостановочное обслуживание с высокой степенью отказоустойчивости. В случае выхода из строя диска, восстанавливающая операция будет выполнена RAID контроллером автоматически, если выполняются оба из следующих условий:
- Имеется "резервный" диск идентичного объема, подключенный к тому же контроллеру и назначенный в качестве резервного, именно он и называется Hotspare ;
- Отказавший диск входит в состав избыточной дисковой системы, например RAID 1, RAID 3, RAID 5 или RAID 0+1.
Обратите внимание: резервирование позволяет восстановить данные, находившиеся на неисправном диске, если все диски подключены к одному и тому же RAID контроллеру.
"Резервный" диск может быть создан одним из двух способов:
- Когда пользователь выполняет утилиту разметки, все диски, которые подключены к контроллеру, но не сконфигурированы в любую из групп дисководов, будут автоматически помечены как "резервные" ( Hotspare ) диски (автоматический способ поддерживается далеко не всеми контроллерами).
- Диск может также быть помечен как резервный ( Hotspare ), при помощи соответствующей утилиты RAID контроллера.
В течение процесса автоматического восстановления система продолжает нормально функционировать, однако производительность системы может слегка ухудшиться.
Для того, что бы использовать восстанавливающую особенность резервирования, Вы должны всегда иметь резервный диск ( Hotspare ) в вашей системе. В случае сбоя дисковода, резервный дисковод автоматически заменит неисправный диск, и данные будут восстановлены. После этого, системный администратор может отключить и удалить неисправный диск, заменить его новым диском и сделать этот новый диск резервным.
Что такое Copyback Hot Spare?
Copyback Hot Spare это функция RAID контроллера, которая позволяет пользователям закрепить физическое расположение диска "горячего резерва" (Hot Spare), что позволяет улучшить управляемость системы.
Предостережение:
Это все неопределенное поведение. Почему я проверил на Linux, используя mdadm другие программные реализации RAID, может вести себя по-другому. Другие версии ядра Linux и / или mdadm инструментов, чем я использую, также могут вести себя по-другому.
Так-то лучше. Вы проверили утверждение о записи нулей? Я думаю, что он не записывает нули, а скорее копирует один из дисков на другой (ие).
While this only touches a few well-known regions of drive, it reads before you write anything, thus putting you in danger. В чем опасность? Я понимаю, что чтение может привести к чему угодно, но почему это приведет к некоторой опасности для пользователя, если (а) считываемая информация нигде не используется и (б) запись должна произойти?
@ kasperd вы правы, он копирует первое устройство на второе. Тест на urandom инициализированном устройстве с linux mdadm показывает, что первые 80 КБ остаются разными, как и последние 48 КБ. Последнее, вероятно, связано с округлением размера RAID до размера блока. Я не тестировал устройства разных размеров, но размер 80 + 48 - это как раз разница в размерах между устройством RAID и базовым блочным устройством.
Необходимо учитывать, что обычно во время инициализации система raid ВСЕГДА читает диск A и копирует его на диск B. Почему? Поскольку вы можете использовать диск во время его инициализации, вы можете записать данные в блоке 100 000. Как только raid init попадает в этот блок, и A, и B уже идентичны, поэтому ничего не происходит. Если бы он вместо этого обнулял блоки, он уничтожил бы хорошие данные. Таким образом, еще раз, я вижу две причины, чтобы убедиться, что блоки идентичны: «это всегда было сделано» и «чтобы вы могли запустить проверку позже» - я также подвергаю сомнению полезность этой проверки. Чтение это хорошо, сравнение? Точно сказать не могу.
Помните, что RAID 1 является зеркалом, а RAID 10 - полосой зеркал.
Вопрос в том, на каком диске в каждом зеркале действительны данные? В недавно созданном массиве это не может быть известно, поскольку диски могут иметь разные данные.
Помните также, что RAID работает на очень низком уровне; он ничего не знает о файловых системах или каких-либо данных, которые могут быть сохранены на диске. Может даже не быть используемой файловой системы.
Таким образом, инициализация в этих массивах состоит из данных с одного диска в каждом зеркале, копируемых как есть на другой диск.
Это также означает, что массив безопасен для использования с момента создания и может быть инициализирован в фоновом режиме; большинство RAID-контроллеров (и Linux mdraid) имеют опцию для этого или делают это автоматически.
Проще говоря, потому что два новых диска с самого начала не должны быть зеркальными копиями друг друга.
Их нужно превратить в идеальные копии друг друга.
Кроме того, инициализация включает настройку суперблока метаданных с информацией о конфигурации массива.
Файл / proc / mdstat должен сообщать вам, что устройство было запущено, что зеркало восстанавливается, и ETA завершения реконструкции. Реконструкция выполняется с использованием пропускной способности простоя ввода / вывода. Таким образом, ваша система по-прежнему должна реагировать, хотя светодиодные индикаторы диска также будут проявлять большую активность.
Процесс восстановления прозрачен, поэтому вы можете использовать устройство, даже если зеркало в данный момент находится на реконструкции.
Но почему они должны быть идеальными копиями друг друга? Что может сломаться из-за несовместимости двух секторов в секторах, которые никогда не использовались файловой системой?
RAID-массив @kasperd реализован на более низком уровне, чем любая файловая система. Таким образом, возникает вопрос, что такое «файловая система», на которую вы ссылаетесь.
@Taemyr Я не имею в виду какую-либо конкретную файловую систему. Выберите то, что вы предпочитаете, и объясните, что может сломаться, используя его на RAID-1, где реплики не были синхронизированы, до инициализации файловой системы.
В моем случае, как оригинальный плакат, мне все равно, какая файловая система. Я не знаю ни одной файловой системы, которая будет считывать сектора, в которые никогда не записывались данные, поэтому любое неопределенное состояние этих неписанных секторов не имеет значения.
Организация единого дискового пространства — задача, легко решаемая с помощью аппаратного RAID-контроллера. Однако следует вначале ознакомиться с особенностями использования и управления таким контроллером. Об этом сегодня расскажем в нашей статье.
Надежность и скорость работы дисковых накопителей — вопрос, волнующий каждого системного администратора. Несмотря на заверения производителей о качестве собственных устройств — HDD и SSD продолжают выходить из строя в самое неподходящее время, теряя драгоценные данные. Технология S.M.A.R.T. в большинстве случаев дает возможность оценить «здоровье» накопителя, но это не гарантирует того, что диск будет продолжать беспроблемно работать.
Предсказать выход диска из строя со 100%-ой точностью невозможно, поэтому следует предусмотреть вариант, при котором это не станет проблемой или причиной остановки сервисов. Использование RAID-массивов решает эту задачу. Рассмотрим три основных подхода, применяющихся для этой задачи:
- Программный RAID — наименее затратный вариант, но и наименее производительный. Массив создается средствами операционной системы, вся нагрузка по обработке данных «ложится на плечи» центрального процессора.
- Интегрированный аппаратный RAID (еще его часто называют Fake-RAID) — микрочип, установленный на материнскую плату, который берет на себя часть функционала аппаратного RAID-контроллера, работая в паре с центральным процессором. Этот подход работает чуть быстрее, чем программный RAID, но надежность у такого массива оставляет желать лучшего.
- Аппаратный RAID — это отдельный контроллер с собственным процессором и кэширующей памятью, полностью забирающий на себя выполнение всех дисковых операций. Наиболее затратный, однако, самый производительный и надежный вариант для использования.
Linux Software RAID
Программные RAID-массивы в семействе ОС Linux — достаточно распространенное решение как в клиентском сегменте, так и в серверном. Все, что нужно для создания массива, — утилита mdadm и несколько блочных устройств. Единственное требование, которое предъявляет Linux Software RAID к используемым накопителям, — быть блочным устройством, доступным системе.
Отсутствие затрат на оборудование и программное обеспечение — очевидное преимущество данного способа. Linux Software RAID организует дисковые массивы ценой процессорного времени. Список поддерживаемых уровней RAID и состояние текущих дисковых массивов можно посмотреть в файле mdstat, который находится в корне procfs:
Поддержка уровней RAID добавляется подключением соответствующего модуля ядра, например:
Все операции с дисковыми массивами производятся через утилиту командной строки mdadm. Сборка дискового массива производится в одну команду:
После выполнения этой команды в системе появится блочное устройство /dev/md0, которое представляет из тебя виртуальный диск.
Читайте также: