- Программный raid в Linux
- Что такое RAID
- Создание программного RAID в Linux
- Шаг 1. Установка mdadm
- Шаг 2. Подготовка дисков
- Шаг 3. Создание RAID 0
- Шаг 4. Тестирование RAID 0
- Шаг 5. Информация о RAID
- Шаг 6. Сохранение RAID массива
- Шаг 7. Переименование RAID массива
- Шаг 8. Удаление RAID массива
- Шаг 10. Создание массива RAID 1
- Выводы
- Как можно узнать состояние Raid в Linux Debian
- Похожие записи:
Программный raid в Linux
В высоконагруженных производственных серверах жесткие диски и SSD подключены не по отдельности, а объединены в специальные массивы, внутри которых данные физически хранятся на нескольких дисках одновременно, что обеспечивает лучшую сохранность данных при выходе дисков из строя, а также увеличивает скорость записи, так как данные можно записывать не на один диск, а сразу на несколько обходя ограничение скорости каждого диска. Такие массивы называются RAID.
Для создания RAID массивов используются аппаратные специальные контроллеры. Однако создать RAID массив можно и без такого контролера. Такие массивы называются программными. В этой статье мы рассмотрим как создать программный RAID Linux.
Что такое RAID
Аббревиатура RAID расшифровывается как Redundant Array of Inexpensive Disks. С помощью этой технологии вы можете превратить несколько реальных жестких дисков в один виртуальный диск с увеличенным объемом и скоростью передачи данных. Но объем полученного диска и параметры его работы уже зависят от выбранного режима работы RAID. Доступны такие режимы:
- RAID 0 — позволяет увеличить скорость записи. Все диски массива будут использоваться для записи данных, поэтому их скорости будут складываться. Например, если у вас есть три диска объемом 512 Гб и скоростью записи 200 Мб в секунду, то объединив их в RAID 0 вы получите виртуальный диск объемом 1,5 Тб и максимальной скоростью записи 600 Мб в секунду.
- RAID 1 — этот режим увеличивает сохранность данных. Во время записи одни и те же данные пишутся параллельно на подключённые диски. В результате у вас будет несколько копий одних и тех же данных. Если один из дисков массива выйдет из строя, система продолжит работать, так как данные есть ещё и на другом диске. Например, если вы объедините два диска по 1 Тб в RAID 1, то получите один виртуальный диск с объемом 1 Тб.
- RAID 10 — объединяет в себе два предыдущих варианта. Он может состоять как минимум из четырех дисков. В таком случае сначала создаются два массива RAID 1, а поверх них создается массив RAID 0 для увеличения производительности.
Конечно, существуют и другие режимы работы, но эти самые популярные. В сегодняшней статье мы рассмотрим как создать программный RAID уровней 0 и 1.
Создание программного RAID в Linux
Шаг 1. Установка mdadm
Для управления программными RAID массивами в Linux используется утилита mdadm. Для того чтобы установить её в Ubuntu или Debian выполните такую команду:
Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:
Шаг 2. Подготовка дисков
Посмотреть список дисков, подключённых к системе можно с помощью команды lsblk:
В этой статье я покажу как объединить три диска в RAID на примере дисков /dev/sda, /dev/sdb и /dev/sdc. Сначала необходимо определиться стоит ли размещать RAID непосредственно на диски или на разделы. Лучше выбрать разделы, так как это дает больше гибкости и безопасности. Во первых, операционная система может перезаписать суперблок RAID если он размещён прямо на диске. Во вторых, если вы выделяете весь диск под RAID, то у вас могут возникнуть проблемы при замене диска. Диски одинакового объема, обычно, немного отличаются у разных производителей. Поэтому для замены вам придется искать точно такой же диск с точно таким же реальным объемом. Если же у вас будет раздел, вы просто сможете создать раздел нужного объема.
Сначала нужно создать таблицу разделов на всех выбранных дисках:
sudo parted /dev/sda mklabel msdos
sudo parted /dev/sdb mklabel msdos
sudo parted /dev/sdc mklabel msdos
Если на диске уже существует таблица разделов программа предупредит о том, что создание новой сотрёт все данные с диска. После создания таблицы разделов следует создать по разделу на каждом диске. Например, создадим разделы размером 460 гигабайт. Для этого можно воспользоваться той же командой parted:
sudo parted /dev/sda mkpart primary ext4 2048 460Gb
sudo parted /dev/sdb mkpart primary ext4 2048 460Gb
sudo parted /dev/sdc mkpart primary ext4 2048 460Gb
Теперь диски готовы к размещению на них RAID:
Шаг 3. Создание RAID 0
Для создания RAID массива надо выполнить команду mdadm с опцией —create, указать режим работы массива, количество дисков и сами диски. Синтаксис команды такой:
$ sudo mdadm —create /dev/имя_массива —level= режим_работы —raid-devices= количество_устройств список устройств
sudo mdadm —create /dev/md0 —level=0 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
После выполнения этой команды вы увидите раздел raid в lsblk. С этим разделом можно работать как с любым обычным разделом в вашей системе.
Шаг 4. Тестирование RAID 0
Давайте для примера отформатируем полученный раздел в файловую систему Ext4, смонтируем и попробуем записывать туда файлы:
sudo mkfs -t ext4 /dev/md0
sudo mount /dev/md0 /mnt
Затем можно тестировать скорость с помощью dd:
sudo dd if=/dev/zero of=/mnt/file bs=1G count=5
Как видите, при записи 5 Гб данных мы получаем скорость 400 Мб/сек, это уже на уровне обычного SSD.
Шаг 5. Информация о RAID
Найти информацию обо всех созданных в системе RAID массивах вы можете в файле /proc/mdstat:
Именно так можно посмотреть RAID Linux. Посмотреть более детальную информацию о массиве /dev/md0 можно с помощью самой утилиты mdadm:
Здесь в том числе отображается состояние RAID Linux. Посмотреть детальную информацию о каждом устройстве, которое входит в RAID можно с помощью опции —examine:
sudo mdadm —examine /dev/sda1 /dev/sdb1 /dev/sdc1
Шаг 6. Сохранение RAID массива
В принципе, уже сейчас RAID массив работает и продолжит работать после перезагрузки, потому что mdadm просканирует все диски, найдёт метаданные массива и построит его. Но неизвестно какое имя программа присвоит полученному массиву и неизвестно все ли параметры будут восстановлены верно. Поэтому конфигурацию массива лучше сохранить. Для этого используйте такую команду:
sudo mdadm —detail —scan —verbose | sudo tee -a /etc/mdadm/mdadm.conf
Затем нужно пересоздать initramfs с поддержкой этого массива:
С полученным массивом можно обращаться как с обычным разделом диска. Например, для того чтобы автоматически монтировать его в систему добавьте такую строчку в /etc/fstab:
/dev/md0 /mnt/ ext4 defaults 0 0
На этом создание raid массива linux завершено.
Шаг 7. Переименование RAID массива
Если вы не выполните предыдущий пункт и перезагрузите компьютер, то можете получить RAID массив с именем md127 вместо md0, такое имя также может быть присвоено второму RAID массиву. Для того чтобы переименовать массив, его придется пересобрать. Для этого сначала остановите существующий массив:
Затем выполните команду переименования. Синтаксис у неё такой:
$ sudo mdadm —assemble —update= name —name =номер /dev/md_номер список устройств
sudo mdadm —assemble —update=name —name=0 /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
После этого следует повторить предыдущий шаг для уже правильного сохранения RAID устройства.
Шаг 8. Удаление RAID массива
Если вы не хотите чтобы ваши диски и дальше были объединены в RAID, его можно удалить. Для этого выполните такую команду:
Она удалит все метаданные с дисков /dev/md0. Дальше останется только удалить или закомментировать секцию данного RAID массива в /etc/mdadm/mdadm.conf
sudo vi /etc/mdadm/mdadm.conf
Шаг 10. Создание массива RAID 1
Теперь вы знаете как создать raid linux на примере RAID 0. Давайте ещё разберемся с RAID 1. Для создания RAID 1 используется такая же команда как и для RAID 0, но указывается другой уровень работы массива:
sudo mdadm —create /dev/md0 —level=1 —raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
Затем вы можете убедится что RAID создан посмотрев информацию о нём:
Ну и с помощью lsblk можно оценить размер устройства:
Как и ожидалось, размер не увеличился, поскольку копии данных будут записываться на все три диска. Теперь давайте посмотрим на скорость:
Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны.
Выводы
В этой статье мы рассмотрели как создать программный RAID в Linux. Как видите здесь нет ничего очень сложного. Может и программный RAID не такой производительный, как аппаратный, зато полностью решает задачи объединения дисков.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как можно узнать состояние Raid в Linux Debian
Если вы хотите посмотреть состояние рэйда в Линуксе, то для этого есть одна очень хорошая команда:
При ее вводе вы получите следующий результат:
Далее покажу, что она демонстрирует более подробно.
Если в самом начале вы видите следующие вещи, то значит все плагины подгрузились и все в порядке
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
Итак, md0, md1, md2 и далее означают RAID массивы, то есть каждый раздел имеет свой собственный рейд. С этим думаю тоже понятно. Хотя фрибсд часто удивляются и говорят, что создать один рейд и потом его резать на слайсы гораздо логичнее.
Но да не суть. Далее рассмотрим более подробно, что означают другие параметры при выводе команды.
md0 : active raid1 sda1[2] sdb1[1]
33553336 blocks super 1.2 [2/2] [UU]
md0 означает рейд с названием мд0, далее написано его состояние (мы видим что оно active) и видим тип рейда (raid1 — зеркальный). Физические диски в линуксе имеют обозначение sda, sdb, sdc и так далее, а логические разделы на них соответственно sda1, sda2 и так далее.
Мы видим в данном рейде sda1 и sdb1, то есть по одному логическому разделу с каждого из дисков,что правильно.
Далее видим количество блоков (их 33553336 blocks), что значит, честно говоря, не знаю, на деле мы видим в скобках сколько дисков из скольких рабочие (в данном случае видим 2 из 2, что есть хорошо).
Ну и последняя часть, где мы видим две [UU], показывает, какой из дисков в каком состоянии. Каждая буква У обозначает один физический диск и на картинке хорошо видно, что те рейд массивы, которые еще не собрались, выглядят иначе.
Кстати, на изображении виден рейд в момент сборки после замены одного плохого диска на новый, но как это детально делается я подробно опишу в одном из следующих своих выпусков.
Надеюсь, данная информация вам поможет лучше освоить Линукс, ведь сила консоли известна всем!