summaryrefslogtreecommitdiff
path: root/LINUX/DISK/Программный raid в Linux.md
diff options
context:
space:
mode:
Diffstat (limited to 'LINUX/DISK/Программный raid в Linux.md')
-rw-r--r--LINUX/DISK/Программный raid в Linux.md169
1 files changed, 169 insertions, 0 deletions
diff --git a/LINUX/DISK/Программный raid в Linux.md b/LINUX/DISK/Программный raid в Linux.md
new file mode 100644
index 0000000..af8e621
--- /dev/null
+++ b/LINUX/DISK/Программный raid в Linux.md
@@ -0,0 +1,169 @@
+### Доступны такие режимы:
+
+- **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 выполните такую команду:
+
+`sudo apt install mdadm`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid4-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid4.png)
+
+Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:
+
+`sudo yum install mdadm`
+
+### Шаг 2. Подготовка дисков
+
+Посмотреть список дисков, подключённых к системе можно с помощью команды lsblk:
+
+`lsblk`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid.png)
+
+В этой статье я покажу как объединить три диска в 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`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid1-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid1.png)
+
+Если на диске уже существует таблица разделов программа предупредит о том, что создание новой сотрёт все данные с диска. После создания таблицы разделов следует создать по разделу на каждом диске. Например, создадим разделы размером 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`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid2-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid2.png)
+
+Теперь диски готовы к размещению на них RAID:
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid3-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid3.png)
+
+### Шаг 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`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid5-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid5.png)
+
+После выполнения этой команды вы увидите раздел 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`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid8-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid8.png)
+
+Как видите, при записи 5 Гб данных мы получаем скорость 400 Мб/сек, это уже на уровне обычного SSD.
+
+### Шаг 5. Информация о RAID
+
+Найти информацию обо всех созданных в системе RAID массивах вы можете в файле **/proc/mdstat:**
+
+`cat /proc/mdstat`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid9-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid9.png)
+
+Именно так можно посмотреть RAID Linux. Посмотреть более детальную информацию о массиве /dev/md0 можно с помощью самой утилиты mdadm:
+
+`sudo mdadm --detail /dev/md0`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid10-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid10.png)
+
+Здесь в том числе отображается состояние RAID Linux. Посмотреть детальную информацию о каждом устройстве, которое входит в RAID можно с помощью опции **--examine**:
+
+`sudo mdadm --examine /dev/sda1 /dev/sdb1 /dev/sdc1`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid11-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid11.png)
+
+### Шаг 6. Сохранение RAID массива
+
+В принципе, уже сейчас RAID массив работает и продолжит работать после перезагрузки, потому что mdadm просканирует все диски, найдёт метаданные массива и построит его. Но неизвестно какое имя программа присвоит полученному массиву и неизвестно все ли параметры будут восстановлены верно. Поэтому конфигурацию массива лучше сохранить. Для этого используйте такую команду:
+
+`sudo mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid12-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid12.png)
+
+Затем нужно пересоздать initramfs с поддержкой этого массива:
+
+`sudo update-initramfs -u`
+
+С полученным массивом можно обращаться как с обычным разделом диска. Например, для того чтобы автоматически монтировать его в систему добавьте такую строчку в /etc/fstab:
+
+`sudo vi /etc/fstab`
+
+`/dev/md0 /mnt/ ext4 defaults 0 0`
+
+На этом создание raid массива linux завершено.
+
+### Шаг 7. Переименование RAID массива
+
+Если вы не выполните предыдущий пункт и перезагрузите компьютер, то можете получить RAID массив с именем md127 вместо md0, такое имя также может быть присвоено второму RAID массиву. Для того чтобы переименовать массив, его придется пересобрать. Для этого сначала остановите существующий массив:
+
+`sudo mdadm --stop /dev/md127`
+
+Затем выполните команду переименования. Синтаксис у неё такой:
+
+**$ 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, его можно удалить. Для этого выполните такую команду:
+
+`sudo mdadm --remove /dev/md0`
+
+Она удалит все метаданные с дисков /dev/md0. Дальше останется только удалить или закомментировать секцию данного RAID массива в /etc/mdadm/mdadm.conf
+
+`sudo vi /etc/mdadm/mdadm.conf`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid13-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid13.png)
+### Шаг 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 создан посмотрев информацию о нём:
+
+`sudo mdadm --detail /dev/md0`
+
+Ну и с помощью lsblk можно оценить размер устройства:
+
+`lsblk`
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid14-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid14.png)
+
+Как и ожидалось, размер не увеличился, поскольку копии данных будут записываться на все три диска. Теперь давайте посмотрим на скорость:
+
+[![](https://losst.pro/wp-content/uploads/2021/06/raid15-830x576.png)](https://losst.pro/wp-content/uploads/2021/06/raid15.png)
+
+Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны. \ No newline at end of file