Перейти к содержимому

Как установить mdadm ubuntu

  • автор:

Sorry, you have been blocked

This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.

What can I do to resolve this?

You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

Cloudflare Ray ID: 7a29324d6c502486 • Your IP: Click to reveal 88.135.219.175 • Performance & security by Cloudflare

Программный RAID в Linux с помощью mdadm

date18.12.2019
userVyacheslavK
directoryCentOS, Linux
commentsкомментариев 13

mdadm – утилита для работы с программными RAID-массивами в Linux. В статье мы рассмотрим, как работать с утилитой mdadm (multiple disks admin) для создания массива, добавления дисков, управления дисками, добавление hot-spare и много другой полезной информации.

Установка утилиты управления программным RAID — mdadm

Чтобы установить утилиту mdadm, запустите команду установки:

  • Для Centos/Red Hat используется yum/dnf: yum install mdadm
  • Для Ubuntu/Debian: apt-get install mdadm

В резульатте в системе будет установлена сама утилита mdadm и необходимые библиотеки:

Создание RAID из 2-х дисков

У меня на сервере установлены два дополнительных диска и я хочу содать на низ програмное зеркало (RAID1). Диски пустые, данные на них не писались. Для начала, нужно занулить все суперблоки на дисках, которые мы будем добавлять в RAID-массив:

# mdadm —zero-superblock —force /dev/vd

mdadm --zero-superblock - очистка дисков передо добавлением в raid

У меня два есть два чистых диска vdb и vdc.

Данный листинг означает, что ни один из дисков ранее не был добавлен в массив.

Чтобы собрать программный RAID1 из двух дисков в устройстве /dev/md0, используйтк команду:

# mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/vd

Где «-l 1» — это тип массива, в нашем случае RAID1

А «-n 2«- это количество дисков, которое добавляется в массив.

# mdadm —create —verbose /dev/md0 —level=0 —raid-devices=2 /dev/vdb /dev/vdc

RAID 5 из трех или более дисков:

# mdadm —create —verbose /dev/md0 —level=5 —raid-devices=3 /dev/vdb /dev/ vdс /dev/vdd

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

mdadm - создать raid1 из 2-х дисков в Linux

Теперь при просмотре информации о дисках, мы видим наш массив:

Создание файловой системы на RAID, монтирование

Чтобы создать файловую систему ext4 на нашем RAID1 массиве из двух дисков, используйте команду:

создать файловую систему ext4 на raid томе

Создадим директорию backup и примонтируем к ней RAID устройство:

# mkdir /backup
# mount /dev/md0 /backup/

Массив смонтировался без ошибок. Чтобы не монтировать устройство каждый раз вручную, внесем изменения в fstab:

fstab - авто-монтирование raid устройства в каталог

Просмотр состояния, проверка целостности RAID массива

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

#echo ‘check’ > /sys/block/md0/md/sync_action

После чего, нужно посмотреть вывод файла:

Если в результате вы получаете 0, то с вашим массивом все в порядке:

проверка целостности raid в linux

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

#echo ‘idle’ > /sys/block/md0/md/sync_action

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

В листинге команды, видим информацию о нашем ранее созданном raid.

Более подробную информацию о конкретном raid-массиве, можно посмотреть командой:

mdadm -D /dev/md0 - получить информацию о raid массиве в linux

Разберем основные пункты листинга команды:

  • Version – версия метаданных;
  • Creation Time – дата и время создания raid-массива;
  • Raid Level – уровень raid-массива;
  • Array Size – объем дискового пространства для raid-массива;
  • Used Dev Size – используемый объем для устройств;
  • Raid Device – количество дисков в raid-массиве;
  • Total Devices – количество добавленных в raid-массив дисков;
  • State – текущее состояние (clean – все ОК);
  • Active Devices — количество активных дисков в raid-массиве;
  • Working Devises — количество рабочих дисков в raid-массиве;
  • Failed Devices – количество устройств со сбоями в raid-массиве;
  • Spare Devices – количество запасных дисков в raid-массиве;
  • Consistency Policy — параметр задающий тип синхронизации после сбоя в raid-массиве, rsync— полная синхронизация после восстановления raid-массива (доступны режимы bitmap, journal, ppl);
  • UUID – идентификатор raid-массива

Краткую информацию можно посмотреть с помощью утилиты fdisk:

Восстановление RAID при сбое, замена диска

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

Из листинга команды, вы видим, что только один диск активен. Так же о проблеме говорит [U_]. Когда оба диска рабочие, вывод будет [UU].

Подробная информация о RAID-массиве также показывает, что естт проблемы:

State : clean, degraded – данная строка указывает на то, что диск в raid-массиве поврежден.

В нашем случае нужно заменить неисправный диск /dev/vdc. Для восстановления массива, нужно удалить нерабочий диск и добавить новый.

Удаляем неиспраный диск:

# mdadm /dev/md0 —remove /dev/vdc

Добавляем в массив новый диск :

# mdadm /dev/md0 —add /dev/vdd

Восстановление диска запустится автоматически после добавления нового диска:

rebuild Status : 69% complete — показывает текущее состояние восстановления массива.

spare rebuilding /dev/vdd — показывает какой диск добавляется к массиву.

После восстановления массива, листинг по дискам выглядит так:

Добавление и удаление дисков в RAID массив на Linux

Чтобы разобрать ранее созданный массив, нужно отмонтировать его :

И выполнить команду:

После разбора массива, он не должен определяться как устройство:

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

# mdadm —assemble —scan

mdadm --assemble —scan пересборка массива

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

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

# mdadm /dev/md0 —fail /dev/vdc

После чего диск можно будет удалить командой::

# mdadm /dev/md0 —remove /dev/vdc

Добавляется новый диск, так же как и в случае с нерабочим диском:

# mdadm /dev/md0 —add /dev/vdd

Добавление Hot-Spare диска в RAID массив

Вы можете добавит в массив hot-spare диск для горячей замены при выходе из строя одного из активных дисков. Добавьте свободный диск в нужный массив:

# mdadm /dev/md0 —add /dev/vdc

После чего проверив статус raid-массива, мы увидим данный диск как spare:

mdadm - добавить hot-spare диск в raid массив

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

# mdadm /dev/md0 —fail /dev/vdb

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

mdadm - faulty - сбойный диск

Диск /dev/vdb помечен как нерабочий, а hot-spare диск стал одним из активных дисков RAID и запустился процесс восстановления.

Чтобы добавить дополнительный рабочий диск в RAID, нужно выполнить два шага.

Добавить пустой диск массиву:

# mdadm /dev/md0 —add /dev/vdb

Теперь данный диск будет отображаться как hot-spare, чтобы сделать его рабочим, расширим raid-массив:

# mdadm -G /dev/md0 —raid-devices=3

После чего запустится процесс пересборки массива:

mdadm - програмный raid linux spare rebuilding

После выполнения пересборки, все диски стали активны:

Удаление массива

Если вы хотите безвозвратно удалить raid-массив, используйте следующую схему:

# umount /backup – отмонтируем массив от директории

# mdadm -S /dev/md0 — останавливаем RAID устройство

После чего очищаем все суперблоки на дисках, из которых он был собран:

# mdadm —zero-superblock /dev/vdb
# mdadm —zero-superblock /dev/vdc

Mdmonitor: Мониторинг состояния RAID и email оповещения

Для мониторинга состояния RAID массива можно использовать службу mdmonitor. Сначала нужно создать файл /etc/mdadm.conf с конфигурацией текущего массива:

# mdadm –detail –scan > /etc/mdadm.conf

В конце файла /etc/mdadm.conf добавьте email адрес администратора, на который нужно слать оповещения о проблемах с RAID:

Останолось перезапустить службу mdmonitor через systemctl:

# systemctl restart mdmonitor

После этого система будет оповещать вас по email об ошибках в mdadm и неисправных дисках.

RAID массив в состоянии inactive

При сбоях оборудования или аварийного выключения по питанию, массив может перейти в состояние inactive. Все диски помечаются как неактивные, но ошибок на дисках нет.

В этом случае нужно остановить массив командой:

# mdadm —stop /dev/md0

И пересобрать его:

# mdadm —assemble —scan –force

Если массив прописан в /etc/fstab, нужно перемонтировать его командой:

Утилита mdadm упрощает работу с raid-массивами в Linux. В данной статье я описал основные моменты работы с данной утилитой, а также затронул самые частые вопросы, которые возникают при работе с raid-массивами через утилиту mdadm.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Installing via the GUI

ubuntu_raid_00.png

Warning: the /boot filesystem cannot use any softRAID level other than 1 with the stock Ubuntu bootloader. If you want to use some other RAID level for most things, you’ll need to create separate partitions and make a RAID1 device for /boot.

Warning: this will remove all data on hard drives.

1. Select «Manual» as your partition method

ubuntu_raid_01.png

2. Select your hard drive, and agree to «Create a new empty partition table on this device ?»

ubuntu_raid_02.png ubuntu_raid_03.png

3. Select the «FREE SPACE» on the 1st drive then select «automatically partition the free space

ubuntu_raid_04.png ubuntu_raid_05.png

4. Ubuntu will create 2 partitions: / and swap, as shown below:

ubuntu_raid_06.png

5. On / partition select «bootable flag» and set it to «on»

ubuntu_raid_06.png

6. Repeat steps 2 to 5 for the other hard drive

Configuring the RAID

  1. Once you have completed your partitioning in the main «Partition Disks» page select «Configure Software RAID»
  2. Select «Yes»
  3. Select «Create new MD drive»
  4. Select RAID type: RAID 0, RAID 1, RAID 5 or RAID 6
  5. Number of devices. RAID 0 and 1 need 2 drives. 3 for RAID 5 and 4 for RAID 6.
  6. Number of spare devices. Enter 0 if you have no spare drive.
  7. select which partitions to use..
  8. Repeat steps 3 to 7 with each pair of partitions you have created.
  9. Filesystem and mount points will need to be specified for each RAID device. By default they are set to «do not use».
  10. Once done, select finish.

Boot Loader

In case your next HDD won’t boot then simply install Grub to another drive:

Boot from Degraded Disk

  1. edit /etc/initramfs-tools/conf.d/mdadm
  2. change «BOOT_DEGRADED=false» to «BOOT_DEGRADED=true»
  • Additionally, this can be specified on the kernel boot line with the bootdegraded=[true|false]
  • You also can use #dpkg-reconfigure mdadm rather than CLI!

Verify the RAID

  1. shut-down your server
  2. remove the power and cable data of your first drive
  3. start your server and see if your server can boot from a degraded disk.

Troubleshooting

Swap space doesn’t come up, error message in dmesg

Provided the RAID is working fine this can be fixed with:

Using the mdadm CLI

For those that want full control over the RAID configuration, the mdadm CLI provides this.

Checking the status of your RAID

Two useful commands to check the status are:

From this information you can see that the available personalities on this machine are «raid1, raid6, raid4, and raid5» which means this machine is set-up to use raid devices configured in a raid1, raid6, raid4 and raid5 configuration.

You can also see in the three example meta devices that there are two raid 1 mirrored meta devices. These are md0 and md5. You can see that md5 is a raid1 array and made up of disk /dev/sda partition 7, and /dev/sdb partition 7, containing 62685504 blocks, with 2 out of 2 disks available and both in sync.

The same can be said of md0 only it is smaller (you can see from the blocks parameter) and is made up of /dev/sda1 and /dev/sdb1.

md6 is different in that we can see it is a raid 5 array, striped across three disks. These are /dev/sdc1, /dev/sde1 and /dev/sdd1, with a 64k «chunk» size or write size. Algorithm 2 shows it is a write algorithm pattern, which is «left disk to right disk» writing across the array. You can see that all three disks are present and in sync.

Replace * with the partition number.

Disk Array Operation

Note: You can add, remove disks, or set them as faulty without stopping an array.

1. To stop an array, type:

Where /dev/md0 is the array device.

2. To remove a disk from an array:

Where /dev/md0 is the array device and /dev/sda is the faulty disk.

3. Add a disk to an array:

Where /dev/md0 is the array device and /dev/sda is the new disk. Note: This is not the same as «growing» the array!

4. Start an Array, to reassemble (start) an array that was previously created:

ddadm will scan for defined arrays and start assembling it.

5. To track the status of the array as it gets started:

Known bugs

Ubuntu releases starting with 12.04 does not support nested raids like levels 1+0 or 5+0 due to an unresolved issue https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1171945

Resources

Installation/SoftwareRAID (последним исправлял пользователь Matt 2015-09-12 06:06:22)

The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details

Программный 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 выполните такую команду:

sudo apt install mdadm

Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:

sudo yum install mdadm

Шаг 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:

sudo mdadm —detail /dev/md0

Здесь в том числе отображается состояние 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 с поддержкой этого массива:

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

Шаг 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 можно оценить размер устройства:

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

Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны.

Выводы

В этой статье мы рассмотрели как создать программный RAID в Linux. Как видите здесь нет ничего очень сложного. Может и программный RAID не такой производительный, как аппаратный, зато полностью решает задачи объединения дисков.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar