Установка raid 5 на сервер
Настраиваем программный RAID на UEFI-системах в Debian и Ubuntu
Программный RAID в Linux на основе MD-устройств успел отлично зарекомендовать себя в работе и пользуется заслуженной популярностью у администраторов, сочетая надежность и простоту создания и управления. Но со все более широким распространением UEFI-систем приходится сталкиваться с некоторыми особенностями. Многие, если есть такая возможность, переключают настройки в режим совместимости, но это неправильно, UEFI - это стандарт для современных устройств и поэтому надо учиться работе с ним.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Другой возможной альтернативой программного RAID является использование встроенного в материнскую плату или недорогого внешнего контроллера. Но в этом случае вы получаете проблему совместимости, такой массив будет работать только со своим семейством контроллеров, сегодня их не так и много, но тем не менее. Также вы не сможете производить работы по восстановлению и обслуживанию массива в онлайн, данные на дисках в это время будут недоступны.
Скажем больше, мы не видим никаких преимуществ у встроенных и недорогих контроллеров перед программной реализацией, особенно на простых массивах, не требующих сложных вычислений (RAID 1 и 10). А учитывая всю гибкость mdadm, программный RAID по многим параметрам будет выглядеть гораздо привлекательнее.
RAID-Mod
Для настройки контроллера нужно попасть в MegaRAID Configuration Utility, для этого нажимаем Ctrl+R при загрузке.
Попадаем в AVAGO JBOD BIOS Configuration Utility.
В разделе PD Mgmt видим 8 дисков, значит, попали куда нужно. Переходим в раздел Ctrl Mgmt.
Здесь нас интересует малозаметная кнопка Next. Нажимаем.
Personality Mode установлен в JBOD-Mode (current).
Меняем его на RAID-Mode.
Требуется перезагрузка. OK.
Нажимаем ESC и OK. Выходим из утилиты конфигурации.
Перезагружаем сервер, теперь RAID- контроллер поддерживает большее количество типов RAID массивов.
Нажимаем Ctrl+R и снова заходим в утилиту конфигурации RAID контроллера.
Установка дисков
Диски объёмом 12.8 ТБ:
Устанавливаю в сервер HP ProLiant DL360 Gen9:
В эту модель сервера можно установить максимум три таких диска. В первый слот понадобится полнопрофильная планка, во второй и третий — укороченная, придётся поработать отвёрткой.
Модели дисков можно посмотреть с помощью команды nvme из пакета nvme-cli:
После установки дисков и загрузки сервера выполняем:
Видим, что диски определились как nvme0n1, nvme2n1, nvme1n1.
Настройка загрузчика EFI и его копирование на второй раздел
Перед тем как настраивать загрузчик нам потребуется получить некоторые данные, в частности идентификаторы (UUID) разделов, их можно получить командой:
В полученном выводе прежде всего обратим внимание на идентификаторы EFI-разделов.
Как видим, разделы монтируются по идентификаторам и в случае выхода из строя первого диска вы не сможете загрузиться со второго, так как система не сможет смонтировать EFI-раздел. В некоторых источниках советуют изменить строку монтирования, используя вместо UUID явное указание устройства, например, /dev/sda1. Да, если мы отключим первый диск, то второй превратится в sda и система загрузится, но если диск выйдет из строя, физически определяясь в системе или на его месте будет новый диск без разметки, то такой фокус не сработает.
Правильно будет изменить идентификатор одного из разделов, чтобы они были одинаковы. Так как UUID раздела на первом диске уже используется в файлах конфигурации, то изменим его у раздела на втором диске.
Для работы с разделами FAT32 нам потребуется установить дополнительные утилиты:
После чего выполним:
Где 2396BE56 - идентификатор первого EFI-раздела (/dev/sda1), его следует указывать в одну строку без пробелов и тире, а /dev/sdb1 - второй EFI раздел.
Теперь получим список текущих загрузочных записей EFI:
Здесь нас интересует запись под номером 5 - debian, которая отвечает за загрузку системы и указывает на первый жесткий диск. Запомните или запишите путь к EFI-образу для загрузки системы: \EFI\debian\shimx64.efi.
Создадим аналогичную запись для второго диска:
Немного поясним назначение ключей команды:
- -c (--create) создать новую запись
- -d (--disk) диск, на котором находится системный раздел EFI
- -p (--part) номер раздела EFI
- -L (--label) метка(наименование) для загрузочной записи
- -l (--loader) путь образа EFI для загрузки
Так как наш EFI-раздел располагается в /dev/sdb1, то в опциях -d и -p указываем /dev/sdb и 1 соответственно, а в качестве пути указываем данные из первой загрузочной записи, которые мы получили на предыдущем шаге. Обратите внимание, что при указании пути к образу EFI используется обратный слеш.
Еще раз убедимся, что запись выполнена правильно:
Обе строки должны отличаться только меткой и GUID раздела (уникальный GPT-идентификатор, который позволяет микропрограмме UEFI найти нужный раздел).
Если обнаружена ошибка, то запись следует удалить и создать заново, для удаления используйте команду:
Ключ -b (--bootnum) указывает на номер записи, а -B ( --delete-bootnum) предписывает удалить ее.
Последним шагом скопируем содержимое загрузочного раздела с первого диска на второй, для этого смонтируем второй EFI-раздел:
И скопируем на него содержимое первого EFI-раздела:
После чего отмонтируем раздел:
На этом настройка завершена, система теперь может быть успешно загружена с любого диска.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Объединяю три диска в RAID 5 массив. На этот раз более полная версия от установки дисков до создания файловой системы. Операционная система Oracle Linux.
Создаём mdadm.conf
Чтобы после перезагрузки массив так и остался с названием md10, нужно сделать файл mdadm.conf. Создаём директорию:
Заполняем конфигурационный файл:
Конфигурационный файл создан.
Я перезагружаю сервер, чтобы проверить, что имя массива после перезагрузки md10, но это не обязательно.
Конфигурация разделов Linux с UEFI
Для примера рассмотрим применяемую по умолчанию во многих дистрибутивах схему со всеми файлами в одном разделе. Однако это не означает, что вам следует применять именно ее, данная схема выбрана нами для простоты подачи материала.
EFI - он же ESP (EFI system partition) - специальный раздел с файловой системой FAT который содержит загрузчик, вызываемый микропрограммой UEFI, должен находиться в основной таблице разделов и не может располагаться в программных RAID-массивах, томах LVM или пулах ZFS. Данный раздел должен располагаться на каждом диске, с которого предусматривается загрузка.
Linux RAID - специальные разделы, из которых собирается программный RAID, в нашем случае используется один массив md0, располагающийся на двух дисках. Данные разделы имеют специальные заголовки, что позволяет даже при подключении к другой системе правильно определить их тип и собрать массив заново.
Swap - раздел подкачки, используется как механизм виртуальной памяти, а также для организации режима сна (в настольных системах). Некоторые современные системы не используют раздел подкачки (Ubuntu) используя для этой цели специальный файл в корневом разделе. Swap можно объединить в программный RAID, но смысла в этом немного, более того, при использовании отдельных swap-разделов системе будет доступен вдвое больший объем для подкачки.
Создаём первый RAID5 массив
Если вы увидите вариант "Convert to RAID Disk", то смело на него нажимайте и конвертируйте все нужные диски (все 24 штуки) как RAID-диски. У меня этого нет, так что этот пункт я пропускаю, все диски у меня уже и так RAID-диски.
Создадим первый RAID5 массив. Выбираем Create Virtual Disk.
Select RAID Level — выбираем RAID5. Для выбора дисков нажимаем "Select Physical Disks".
Нужно выбрать 11 дисков с 0 по 10 слот.
Default Initialization ставлю Full. Virtual Disk Name — пишем любое удобное название, например, RAID5_1. Create Virtual Disk.
Подтверждаем операцию галкой Confirm. Yes.
OK. Массив создан.
Посмотрим свойства созданного массива.
Появился виртуальный диск RAID5_1 объёмом 109.135 ТБ.
Идёт фоновая инициализация массива.
RAID10
Первым создадим RAID10.
F2 (Operations), выбираем Create Virtual Drive.
Доступные типы RAID.
Выбираем RAID Level RAID-10, отмечаем первые 4 диска, указываем Name, нажимаем кнопку Advanced.
Устанавливаем галку Initialize, предупреждают, что данные на дисках будут уничтожены, OK.
OK. Выходим из окна дополнительных настроек.
Массив RAID10 создан. Ждем пару минут.
Инициализация массива завершена.
Заключение
Мы с вами создали на сервере Dell PowerEdge R740xd2 два RAID5 массива и два Global Spare диска, которые подходят к любому из созданных массивов. Полная инициализация массивов займёт несколько дней.
По умолчанию RAID контроллер AOC-S3108L-H8iR-16DD работает в режиме JBOD-Mode и поддерживает только RAID 0, 1, 10 массивы.
В документации к контроллеру сказано, что он поддерживает массивы RAID 0, 1, 5, 6, 10, 50 и 60.
Поэтому, перед тем как создавать RAID 5, нужно переключить RAID контроллер в режим RAID-Mode.
Создадим два RAID массива, один RAID10 из четырёх дисков, второй RAID5 из четырёх дисков.
Создание программного RAID при установке системы
Все дальнейшие действия мы будем производить на системе Debian 10, однако все сказанное будет справедливо для любой основанной на Debian системе, а с некоторыми поправками и для любого дистрибутива Linux.
Прежде всего создадим в начале каждого диска системный раздел EFI размером в 499 МБ (по умолчанию Debian и Ubuntu используют близкие к этому размеры разделов).
Затем выполним необходимую разметку, основное условие - одинаковые размеры томов на обоих дисках, тип файловой системы и точка монтирования не играют никакого значения, можете принять предлагаемые по умолчанию. В нашем случае будет создано два раздела почти на весь размер диска, оставляя немного места в конце для разделов подкачки. В итоге у вас должно получиться примерно так:
В итоге каждый диск содержит три раздела: ESP, будущие разделы Linux RAID и разделы подкачки. Порядок следования разделов и размер разделов для RAID должны быть одинаковы на обоих дисках. После того, как первоначальная разметка выполнена соберем программный RAID 1 из разделов для данных, в нашем случае sda2 и sdb2:
Теперь разметим созданный массив, создав там корневой раздел. Помните, что один программный массив Linux (md-устройство) может содержать только один раздел, если вам нужно несколько разделов, то потребуется создать несколько массивов.
Далее продолжаем установку в обычном режиме, программный RAID-массив создан, а к загрузчику мы вернемся после завершения этого процесса.
Создание файловой системы
Создаём файловую систему EXT4:
Определяем идентификатор UUID:
В ответ получаем:
Создаём директорию /u01 для монтирования:
В /etc/fstab добавляем опцию монтирования:
Теперь в системе есть новая директория на 24 ТБ. Директорией можно пользоваться, но осторожно, так как перестроение ещё не закончилось.
Имеется сервер Dell PowerEdge R740xd2, в котором установлено 24 HDD диска объёмом 12 ТБ в первой и второй корзине. Два дополнительных диска установлены в третьей корзине, на них уже настроен RAID1 под систему.
- HDD из первой корзины объединим в RAID5
- HDD из второй корзины тоже объединим в RAID5
- По одному диску из каждой корзины назначим в качестве Global Spare
mdadm — создаём RAID5
Я использую б/у диски из другого сервера, поэтому не помешает их почистить:
Проверим какие уже есть массивы:
Массивов нет, нам же проще. Создавать будем массив md10.
Массив /dev/md10 создан. Проверим состояние.
Состояние массива clean, degraded, recovering. Не пугаемся, всё в порядке. Начинается перестроение массива, но даже в таком состоянии диском можно уже пользоваться.
Немного расчётов
Все корзины подключены к аппаратному RAID контроллеру. В сервере Dell PowerEdge R740xd2 установлен аппаратный контроллер PERC H730P Mini. Это SAS контроллер, кэш на 8 ГБ с батарейкой. Может работать в режиме RAID и HBA. По умолчанию должен быть включён режим RAID, если это не так, то нужно будет переключить, при этом данные на дисках будут уничтожены. Поддерживается до 32 дисков, типы RAID: 0, 1, 5, 6, 10, 50, 60.
Из 24 дисков два будут запасными в режиме GLOBAL SPARE, остальные в двух массивах RAID5. Итого, по расчётам, массивы получатся объёмом:
(12 - 1 - 1) * 12 ТБ = 120 ТБ в каждом RAID5 массиве.
Некоторые особенности Ubuntu Server 18.04
Начиная с версии 18.04 Ubuntu Server по умолчанию предлагается с новым инсталлятором Subiquity, который очень просто отличить по обновленному внешнему виду:
При использовании данного инсталлятора вы не сможете установить систему на программный RAID (как на системах с UEFI, так и без), установка закончится ошибкой. Поэтому для создания программного RAID следует использовать сборку с классическим установщиком, которую можно получить в разделе альтернативных загрузок.
Также легко можно отличить дистрибутивы по наименованию, образ с Subiquity содержит в наименовании слово live (ubuntu-18.04.3-live-server-amd64.iso).
Создаём второй RAID5 массив и SPARE диск
Все те же самые операции выполняем для второй корзины.
В итоге получаем второй RAID5 массив RAID5_2.
Spare диски можно посмотреть в разделе Main Menu > Configuration Management > View Global Hot Spares.
Ссылки
Подготовка к созданию массивов
Дожидаемся вариантов загрузки.
Для входа в BIOS при загрузке нажимаем F2.
Выбирается System Setup.
Выбираем Device Settings.
Для управление RAID контроллером выбираем "Integrated RAID Controller: Dell PERC Configuration Utility".
Выбираем Configuration Management.
Ссылки
Подготовка GPT разделов
Объём NVMe превышает 2 ТБ, поэтому создадим GPT разделы на дисках, а уже потом объединим их в RAID5 массив. Есть разные способы создать GPT раздел:
Создаём GPT раздел на диске nvme0n1. Я использую fdisk:
Аналогично создаём GPT раздела на дисках nvme2n1, nvme1n1:
Проверяем что получилось:
У нас теперь есть три раздела:
- /dev/nvme0n1p1
- /dev/nvme2n1p1
- /dev/nvme1n1p1
RAID5
F2 (Operations), выбираем Create Virtual Drive.
Выбираем RAID Level RAID-5, отмечаем оставшиеся 4 диска, указываем Name, нажимаем кнопку Advanced.
Устанавливаем галку Initialize.
Предупреждают, что данные на дисках будут уничтожены, OK. Выходим из окна дополнительных настроек. OK.
Настройка программного RAID массива в среде Windows гораздо более простая задача, чем под Linux системами, однако и она имеет свои особенности. Зачастую неполные и отрывочные знания в данной области приводят к сложностям, а в среде администраторов ходят мифы и легенды о "капризности" и "глючности" данного механизма в Windows. В данной статье мы постараемся заполнить этот пробел.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Перед тем как продолжить, снова вспомним основной принцип построения аппаратных массиво: один элемент массива - один физический диск. Основа программных массивов - логический диск. Понимание этой разницы - залог успеха, то что применимо к аппаратному массиву, может оказаться катастрофическим для программного, особенно если речь идет об отказе одного из элементов массива.
Для создания программного RAID в среде Windows нам понадобится познакомиться с понятием динамического диска, так как программные массивы могут быть созданы только на них. Репутация динамических дисков неоднозначна, многие администраторы шарахаются от них, как черт от ладана. А зря, запомнив несколько простых правил работа с динамическими дисками становится столь же проста как с обычными.
Главное правило: установка или загрузка Windows с динамического тома возможна только в том случае, если этот диск был преобразован из системного или загрузочного тома. Т.е. если у вас стоит несколько экземпляров ОС, то после преобразования диска в динамический вы сможете загрузить лишь тот экземпляр, который находится на загрузочном разделе.
Исходя из этого правила становится очевидно, что для загрузочного и системного томов возможно создание только зеркального массива (RAID1), создание иных видов массива невозможно, так как они подразумевают установку системы на заранее созданный раздел.
А стоит ли овчинка выделки? Несмотря на все ограничения, стоит. Основной недостаток аппаратных массивов - привязка к конкретной модели контроллера. Если у вас сгорела материнская плата или контроллер, вам понадобится точно такой же (или материнская плата с аналогичным контроллером), иначе с данными можно попрощаться. В случае программного RAID достаточно машины с установленным Windows Server.
На практике работа с программными массивами и динамическими дисками производится через оснастку Хранение - Управление дисками в Диспетчере сервера. Для преобразования дисков в динамические достаточно щелкнуть на одном из них правой кнопкой мыши и выбрать Преобразовать в динамический диск, в открывшемся окне можно выбрать для преобразования сразу несколько дисков.
Стоит помнить, что эта операция необратимая и особое внимание следует уделить системному разделу, переразметить загрузочный диск у вас уже не получится (точнее он после этого перестанет быть загрузочным), единственное, что вы сможете - это расширить том за счет неразмеченного пространства.
Следующим шагом станет создание массива, щелкаем правой кнопкой мыши на нужном томе и выбираем желаемый вариант, в случае с системным и загрузочными томами вариант будет один - зеркало, потом вам будет предложено выбрать диск для размещения зеркального тома. По завершению создания массива тут же начнется его ресинхронизация.
Подключив дополнительные диски мы получим гораздо более широкие возможности, вы можете как объединить несколько дисков в отдельный том, так и создать RAID 0, 1 или 5.
В общем ничего сложного, однако множество ограничений способны отпугнуть кого угодно. Но не спешите делать скоропалительных выводов, по здравому размышлению никаких серьезных препятствий нет, так как обычно принято разносить систему и данные по разным дискам, учитывая копеечную стоимость современных дисков, это не влечет существенных затрат. Мы, например, для нашего тестового сервера создали зеркало для системного диска и RAID5 для данных.
Причем все это удовольствие можно реализовать на самой обычной бюджетной материнской плате, учитывая, что производительность программного массива ничем не отличается от дешевых аппаратных, данная технология выглядит очень привлекательно. О методах обеспечения отказоустойчивости и действиях при отказе дисков мы поговорим в нашей следующей статье.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
SPARE диск
Остался один диск в первой корзина, сделаем из него GLOBALSPARE для RAID5.
Заходим в Physical Disk Management.
Кликаем на диск в 11 слоте.
Operation — Assign Global HOT Spare. Go.
Операция выполнена. OK.
Если снова зайти в список физических дисков, то диск в 11 слоте отмечен как Hot Spare.
Читайте также: