Сбрасываем информацию о существующих или ранее использованных RAID массивах на компьютере.
Если вы ранее создавали или подключали к своему компьютеру, программные RAID массивы, после их отключения необходимо стереть информацию о них.
Стереть не только в операционной системе, и так же удалить информацию о принадлежности дисков к массиву.
Все о RAID массивах, их виды, количество дисков необходимых для сборки определенного Raid массива. Какой массив подойдет вам и какой все же надежнее. Все это вы сможете прочитать в википедии тут.
Мы же сразу приступим к делу и начнем с проверки информации о массивах на нашем компьютере.
Проверяем есть ли работающие Raid — массивы
cat /proc/mdstat

Как видим есть массив md0, это raid 1, состоит из двух дисков sdb и sdc
Массив активный и оба диска работают как положено, о чем говорит слово active и знак [UU]

Если в знаке [UU] нет например первой буквы [_U], то проблема с первым диском или он отсутствует.
Если нет второго [U_] — соответственно,второй диск требует внимания.
Останавливаем службы использующие массив
sudo umount /mount/point
Размотнируем работающий массив md0 — имя массива, у вас может быть другое, его название мы узнали выполнив описанную выше команду.
sudo umount /dev/имя массива
Останавливаем и удаляем массив
sudo mdadm /dev/имя массива
Теперь обнулим информацию о принадлежности дисков к тем или иным массивам. Имена дисков мы узнали ранее,в моем случае это sdb и sdc

Выполняем по очереди, для каждого диска команду
sudo mdadm --zero-superblock /dev/имя диска 1
sudo mdadm --zero-superblock /dev/имя диска 2
И так для всех дисков, уже бывшего, рейда.
Теперь уберем все записи монтирования и определения массива при запуске системы.
Уберем запись в файле /etc/fstab
sudo nano /etc/fstab
За комментируем или сотрем строку о монтировании массива, выглядит она примерно так

После внесения изменений, сочетания клавиш для редактора Nano
CTRL+O — сохраняем
CTRL+X — закрываем
Так же поступаем и с определением массива в файле /etc/mdadm/mdadm.conf
sudo nano /etc/mdadm/mdadm.conf
Комментируем знаком # или удаляем строку нашего массива
![]()
Ну и обновляем инициализацию файловых систем для запуска нашей системы
sudo update-initramfs -u
Все можно перезагружать систему, массив расформирован.
Как собрать RAID — было рассказано ранее в этой статье.
Если есть, что добавить или сказать, оставляйте комментарии.
Всем Удачи!
26 января 2021
Как удалить RAID-массив Linux Software RAID (mdraid)
Перед тем, как удалять RAID-массив mdraid желательно остановить все службы и приложения использующие RAID-массив, после чего отмонтировать все имеющиеся подключения к RAID-массиву, например:
# umount /mount/point
Также не забываем удалить упоминание об удаляемом RAID-массиве из всех конфигурационных файлов, где он упоминается. Например, стоит проверить конфигурационный файл fstab (/etc/fstab)
Останавливаем RAID-массив:
# mdadm -S /dev/md0
mdadm: stopped /dev/md0
Чтобы в дальнейшем система не пыталась автоматически собрать массив (например после перезагрузки) из дисков, которые участвовали в RAID-массиве, необходимо очистить супер-блоки на этих дисках, например:
# mdadm --zero-superblock /dev/sda1 # mdadm --zero-superblock /dev/sdb1 # mdadm --zero-superblock /dev/sdc1
В завершении, убираем ссылки на разобранный RAID-массив в /etc/mdadm/mdadm.conf (в Debian) или в /etc/mdadm.conf (в CentOS), если они делались там ранее.
Проверено на следующих конфигурациях:
| Версия ОС | Версия mdadm |
|---|---|
| Debian GNU/Linux 9.4 (Stretch) x86_64 | v3.4 — 28th January 2016 |
| CentOS Linux 7.5.1804 | v4.0 — 2017-01-09 |
Автор первичной редакции:
Алексей Максимов
Время публикации: 19.06.2018 09:22
Here is a current state of my RAID5:
And it is rebuilding….
/dev/md10:
Version : 1.2
Creation Time : Sun Dec 19 13:28:26 2021
Raid Level : raid5
Array Size : 511667200 (487.96 GiB 523.95 GB)
Used Dev Size : 102333440 (97.59 GiB 104.79 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Tue Jan 4 02:55:13 2022
State : clean, degraded, recovering
Active Devices : 5
Working Devices : 6
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 2% complete
Name : qz-desktop:10
UUID : 9086174e:91b50e01:09a7fda1:eba8b0ad
Events : 4098
Number Major Minor RaidDevice State
0 259 25 0 active sync /dev/sdf16
1 259 26 1 active sync /dev/sdf17
3 259 27 2 active sync /dev/sdf18
4 8 7 3 active sync /dev/sda7
5 8 83 4 active sync /dev/sdf3
6 259 32 5 spare rebuilding /dev/sdf23
For test purposes I am trying remove device / partition
sudo mdadm --manage /dev/md10 --fail /dev/sdf3 --verbose
then I am receiving this
mdadm: set device faulty failed for /dev/sdf3: Device or resource busy
I understand I need to «kill» the process keeping the device busy.
Can somebody help me with EXACT commands
how to find the unwanted process ?
how to use «kill» to stop such process?
I have read some posts doing the above but not sure how to
implement them without totally destroying the RAID5 —
I just want to temporary remove ONE device / partition.
Thanks
Here is a current state of my RAID5:
And it is rebuilding….
/dev/md10:
Version : 1.2
Creation Time : Sun Dec 19 13:28:26 2021
Raid Level : raid5
Array Size : 511667200 (487.96 GiB 523.95 GB)
Used Dev Size : 102333440 (97.59 GiB 104.79 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Tue Jan 4 02:55:13 2022
State : clean, degraded, recovering
Active Devices : 5
Working Devices : 6
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 2% complete
Name : qz-desktop:10
UUID : 9086174e:91b50e01:09a7fda1:eba8b0ad
Events : 4098
Number Major Minor RaidDevice State
0 259 25 0 active sync /dev/sdf16
1 259 26 1 active sync /dev/sdf17
3 259 27 2 active sync /dev/sdf18
4 8 7 3 active sync /dev/sda7
5 8 83 4 active sync /dev/sdf3
6 259 32 5 spare rebuilding /dev/sdf23
For test purposes I am trying remove device / partition
sudo mdadm --manage /dev/md10 --fail /dev/sdf3 --verbose
then I am receiving this
mdadm: set device faulty failed for /dev/sdf3: Device or resource busy
I understand I need to «kill» the process keeping the device busy.
Can somebody help me with EXACT commands
how to find the unwanted process ?
how to use «kill» to stop such process?
I have read some posts doing the above but not sure how to
implement them without totally destroying the RAID5 —
I just want to temporary remove ONE device / partition.
Thanks
![]()

Системному администратору чаще приходится создавать RAID массивы, нежели их удалять. Сегодня удалим программный массив, созданный через mdadm.
Смотрим, что у нас примонтировано.
df -h

Массив /dev/md2, который смонтирован в папку /u04 — это наш кандидат на удаление. Для начала нужно демонтировать массив от папки /u04. Проверим fstab:
cat /etc/fstab

Удаляем строку, которая монтирует /u04 и сохраняем /etc/fstab.
Демонтируем /u04:
umount /u04
Проверим:
df -h
Да, папка /u04 теперь не примонтирована, можно работать с массивом.

Определяем разделы, из которых состоит массив:
mdadm --detail /dev/md2
У меня в массиве только один раздел /dev/nvme1n1p1. Вот такой у меня волшебный массив.
Останавливаем массив /dev/md2:
mdadm -S /dev/md2

Удаляем суперблоки на всех дисках бывшего массива и почистим диск:
mdadm --zero-superblock /dev/nvme1n1p1
wipefs --all --force /dev/nvme1n1p1

Проверим:
cat /proc/mdstat

Массив md2 отсутствует. После перезагрузки массив не соберётся, т.к. мы удалили все суперблоки.
Автор o_key, 05 октября 2013, 20:55:06
« назад — далее »
0 Пользователи и 1 гость просматривают эту тему.
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
История:
Создал массив с помощью mdadm, затем (по глупости) вытащил диски этого массива и заменил их дисками большего размера.
Теперь не могу остановить массив
root@debian:~# mdadm -S /dev/md0
mdadm: Unknown keyword —verbos
mdadm: failed to stop array /dev/md0: Device or resource busy
Perhaps a running process, mounted filesystem or active volume group?
root@debian:~#
вот состояние массива в данный момент:
root@debian:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1](F) sdb1[0]
292960148 blocks super 1.2 [2/1] [U_]
unused devices: <none>
root@debian:~#
вопрос, как мне остановить и удалить md0
?
заранее, спасибо
o_key, нет возможности вставить старые диски ?
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
Что дает
sudo mdadm --stop /dev/md0
?
Сообщение объединено: 05 октября 2013, 21:34:22
И до кучи
cat /etc/mdadm/mdadm.conf
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md0 --fail /dev/sdc1
mdadm --stop /dev/md0
Поправьте имена разделов если не те.
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
так я тоже пробовал, говорит что не найден /dev/sdb1 или /dev/sdc1
Тогда начнем сначала
fdisk -l
ls /dev/s*
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
отправил сервак в рибут, а он не запускается
теперь только в пнд посмотреть смогу, что случилось
Сообщение объединено: 06 октября 2013, 15:25:48
Подскажите, если запись о массиве не добавлять в mdadm.conf то после перезагрузки он должен остановиться и исчезнуть? Или ситуация разворачивается как то иначе?
o_key
-
- Новичок форума
- Сообщения: 6
- Записан
Да, после рестарта не прописанный в mdadm.conf массив, исчез
А сервак не запускался потому, что при замене дисков сбился boot order в bios
- Русскоязычное сообщество Debian GNU/Linux
-
►
-
►
Общие вопросы -
►
[Решено] проблема с удалением RAID с помощью mdadm
А это тут причем?
/dev/sdb* не монтировался никуда, и соответственно там его нет.
Я так думаю что проблема в том, что в md0,1,2,3 задействовано по одному разделу(устройству).
Т.е. я подключил к md только sdb.
sda пока не трогал.
Может как-то можно разрушить raid без удаления mdadm?
>Я так думаю что проблема в том, что в md0,1,2,3 задействовано по
>одному разделу(устройству).
>Т.е. я подключил к md только sdb.
>sda пока не трогал.
>
>
>Может как-то можно разрушить raid без удаления mdadm?
Как это?
Какая цель вообще?
>>Я так думаю что проблема в том, что в md0,1,2,3 задействовано по
>>одному разделу(устройству).
>>Т.е. я подключил к md только sdb.
>>sda пока не трогал.
>>
>>
>>Может как-то можно разрушить raid без удаления mdadm?
>
>Как это?
>Какая цель вообще?
Цель такая:
По «случайке» в RAID были загнаны разделы свопа 🙂
т.е /dev/md2 состоял из /dev/sda2, /dev/sdb2
Помечаешь, fail любой из разделов, далее делаешь remove и все удачно удаляется при условии чтов /dev/md2 остается хотябы один раздел.
т.е. если RAID раздел содержит всего один диск, его от туда удалить нельзя.
Вот я и хочу полностью удалить /dev/md2 и все диски из него.
p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2
>[оверквотинг удален]
>при условии чтов /dev/md2 остается хотябы один раздел.
>
>т.е. если RAID раздел содержит всего один диск, его от туда удалить
>нельзя.
>Вот я и хочу полностью удалить /dev/md2 и все диски из него.
>
>
>p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
>
>В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2
Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd на 82.
>[оверквотинг удален]
>>Вот я и хочу полностью удалить /dev/md2 и все диски из него.
>>
>>
>>p.s. Если сделать stop для /dev/md2 то после перезагрузки он опять стартует.
>>
>>В /etc/mdadm/mdadm.conf ничего не прописанно для /dev/md2
>
>Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
>Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd
>на 82.
fdisk видит /dev/sda2, /dev/sdb2 как >Т.е. они уже не fd (
Если остановить md2 и засунуть /dev/sda2, /dev/sdb2 в SWAP то после перезагрузки один из дисков всеравно будет в md2
>[оверквотинг удален]
>>
>>Суперблоки MD теперь прописаны на /dev/sda2, /dev/sdb2.
>>Останови /dev/md2, сделай mkswap /dev/sda2; mkswap /dev/sdb2, измени тип партиций с fd
>>на 82.
>
>fdisk видит /dev/sda2, /dev/sdb2 как
>Т.е. они уже не fd (
Linux auto Raid)
>
>Если остановить md2 и засунуть /dev/sda2, /dev/sdb2 в SWAP то после перезагрузки
>один из дисков всеравно будет в md2
>[оверквотинг удален]
>>
>>fdisk видит /dev/sda2, /dev/sdb2 как
>>Т.е. они уже не fd (
Все сработало, два диска подключились в SWAP. md2 скрылся.
Спасибо!
Источник
mdadm: Cannot open /dev/sda1: Device or resource busy
The Problem
When trying to re-add a device to a raid, you get the following message:
Whereas the mdstat command indicates that the device is inactive.
mdadm fail to create software raid device with Device or resource busy error message.
The solution
Pre-checks
Before we proceed, make sure that if partitions were part of any active FS.
The cause of issue
The cause of this issue can be that the device-mapper-multipath ( or other device-mapper modules ) has control over this device, therefore mdadm cannot access it. The command “dmsetup table” will show that this devices is controlled by the device-mapper ( see “man dmsetup” for more detailed information )
Workaround
As a workaround you can remove the device from the device-mapper table with the below command.
Permanent solution
As a solution you can either start your server without certain device-mapper modules, for example dmraid you can add “nodmraid” to the kernel command line in /etc/grub.conf as shown below.
or if device-mapper-multipath has control over this device you can add it to the blacklist section in /etc/multipath.conf
Reload the multipathd for changes to take effect:
The device-mapper should not take control at boot time.
Verify
Once you have performed the steps mentioned above, you should be ableto create the software RAID. To verify:
Источник
При подключении HDD в raid пишет Device or resource busy — что делать?
Не могу подключить /dev/sda в рейд /dev/md0 (в котором есть уже /dev/sdb).
Пишет, что /dev/sda занят.
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 1855469567 927733760 fd Linux raid autodetect
Device Boot Start End Blocks Id System
/dev/sda1 2048 1855469567 927733760 fd Linux raid autodetect
# cfdisk /dev/sda
Забавно, что:
sda1 swap (. )
sdb1 linux_raid_m
# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[0]
927602496 blocks super 1.2 [2/1] [U_]
# mount
/dev/md0p2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
# lsof | grep ‘sda’
ничего не возвращает
Источник
Ошибка device or resource busy
Часто при работе с флешками, дисками, образами или другими подобными объектами может возникать ошибка device or resource busy. Она может выводится, когда вы пытаетесь отмонтировать внешний диск, раздел, а также при попытке переместить или удалить файл.
В этой небольшой статье мы рассмотрим, почему может возникать данная ошибка, а также пути её устранения. Конечно, в случае с флешкой вы можете просто вынуть её из компьютера, но это не решение, потому что высока вероятность потерять не сохранённые данные. Есть пути обхода этой проблемы.
Что означает «device or resource busy»?
Это могло произойти потому, что программа ещё не завершила свою работу, зависла, возникли какие-либо проблемы в процессе её работы. Это актуально как для файлов, так и для съёмных носителей.
Как исправить device or resource busy?

Если вы не знаете какая программа мешает вам выполнить операцию, то это можно очень просто узнать с помощью команды lsof. Просто выполните её и отсейте только те записи, которые относятся к точке монтирования вашего носителя:
lsof | grep /media/sergiy/83AE-2346

Чтобы отсеять нужные процессы в самой утилите, используйте опцию +D, так даже лучше, потому что она не будет показывать системные службы, а отобразит только программу, которую надо завершить:
lsof +D /media/sergiy/83AE-2346

Теперь вы можете видеть все процессы, которые используют файлы на нашем носителе, и завершить их с помощью команды kill. В нашем случае надо завершить плеер totem с PID 5616:

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

Здесь вы тоже увидите всю необходимую информацию: будет отображаться пользователь, от имени которого запущен процесс. Точно так же можно его завершить:

Если вы закрыли все программы, но это не помогло, можно попытаться очистить файловый кэш системы с помощью такой команды:
sync && echo 2 > /proc/sys/vm/drop_caches
Выводы
В этой небольшой статье мы рассмотрели, как бороться с ошибкой device or resource busy Linux. Как видите, её очень просто исправить, даже если по началу кажется, что совсем непонятно, что можно сделать.
Источник
mdadm: device or resource busy
I just spent a few hours tracking an issue with mdadm (Linux utility used to manage software RAID devices) and figured I’d write a quick blog post to share the solution so others don’t have to waste time on the same.
As a short background, we use mdadm to create RAID-0 stripped devices for our Sugarcube analytics (OLAP) servers using Amazon EBS volumes.
The issue manifested itself as a random failure during device creation:
I searched and searched the interwebs and tried every trick I found to no avail. We don’t have dmraid installed on our Linux images (Ubuntu 12.04 LTS / Alestic cloud image) so there’s no possible conflict there. All devices were clean, as they are freshly created EBS volumes and I knew none of them were in use.
And yet after running it the devices were assigned to two different devices instead of just /dev/md0:
Looking into dmesg didn’t reveal anything interesting either:
And strangely, the creation or assembly would sometime work and sometime not:
I started suspecting I was facing some kind of underlying race condition where the devices would get assigned/locked during the device creation process. So I started googling for «mdadm create race» and I finally found a post that tipped me off. While it didn’t provide the solution, the post put me on the right track by mentioning udev and it took only a few more minutes to narrow down on the solution: disabling udev events during device creation to avoid contention on device handles.
Источник
Adblock
detector
Обновлено: 10.12.2022
Опубликовано: 08.03.2019
Тематические термины: RAID, Linux
mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.
Установка утилиты mdadm
Создание RAID
Подготовка носителей
Сборка отказоустойчивого массива
Файл mdadm.conf
Создание файловой системы и монтирование
Получение информации о RAID
Проверка целостности массива
Восстановление RAID
Заменой диска
Пересборка массива
Использование Hot Spare
Добавление диска к массиву
Удаление массива
Установка mdadm
Утилита mdadm может быть установлена одной командой.
Если используем CentOS / Red Hat:
yum install mdadm
Если используем Ubuntu / Debian:
apt-get install mdadm
Сборка RAID
Перед сборкой, стоит подготовить наши носители. Затем можно приступать к созданию рейд-массива.
Подготовка носителей
Сначала необходимо занулить суперблоки на дисках, которые мы будем использовать для построения RAID (если диски ранее использовались, их суперблоки могут содержать служебную информацию о других RAID):
mdadm —zero-superblock —force /dev/sd{b,c}
* в данном примере мы зануляем суперблоки для дисков sdb и sdc.
Если мы получили ответ:
mdadm: Unrecognised md component device — /dev/sdb
mdadm: Unrecognised md component device — /dev/sdc
… то значит, что диски не использовались ранее для RAID. Просто продолжаем настройку.
Далее нужно удалить старые метаданные и подпись на дисках:
wipefs —all —force /dev/sd{b,c}
Создание рейда
Для сборки избыточного массива применяем следующую команду:
mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}
* где:
- /dev/md0 — устройство RAID, которое появится после сборки;
- -l 1 — уровень RAID;
- -n 2 — количество дисков, из которых собирается массив;
- /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Мы должны увидеть что-то на подобие:
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
—metadata=0.90
mdadm: size set to 1046528K
Также система задаст контрольный вопрос, хотим ли мы продолжить и создать RAID — нужно ответить y:
Continue creating array? y
Мы увидим что-то на подобие:
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
Вводим команду:
lsblk
… и находим информацию о том, что у наших дисков sdb и sdc появился раздел md0, например:
…
sdb 8:16 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
sdc 8:32 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
…
* в примере мы видим собранный raid1 из дисков sdb и sdc.
Создание файла mdadm.conf
В файле mdadm.conf находится информация о RAID-массивах и компонентах, которые в них входят. Для его создания выполняем следующие команды:
mkdir /etc/mdadm
echo «DEVICE partitions» > /etc/mdadm/mdadm.conf
mdadm —detail —scan —verbose | awk ‘/ARRAY/ {print}’ >> /etc/mdadm/mdadm.conf
Пример содержимого:
DEVICE partitions
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=proxy.dmosk.local:0 UUID=411f9848:0fae25f9:85736344:ff18e41d
* в данном примере хранится информация о массиве /dev/md0 — его уровень 1, он собирается из 2-х дисков.
Создание файловой системы и монтирование массива
Создание файловой системы для массива выполняется также, как для раздела, например:
mkfs.ext4 /dev/md0
* данной командой мы создаем на md0 файловую систему ext4.
или:
mkfs.xfs /dev/md0
* для файловой системы xfs.
Примонтировать раздел можно командой:
mount /dev/md0 /mnt
* в данном случае мы примонтировали наш массив в каталог /mnt.
Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab.
Сначала смотрим идентификатор раздела:
blkid
Мы увидим что-то на подобие:
/dev/md0: UUID=»ffa7c082-7613-4dbc-ae62-3f5508652cf6″ TYPE=»ext4″
* в моем примере мы будем использовать идентификатор ffa7c082-7613-4dbc-ae62-3f5508652cf6.
Открываем теперь fstab и добавляем строку:
vi /etc/fstab
UUID=»ffa7c082-7613-4dbc-ae62-3f5508652cf6″ /mnt ext4 defaults 0 0
Если ранее мы монтировали раздел в каталог /mnt, вводим:
umount /mnt
И после:
mount -a
Мы должны увидеть примонтированный раздел md, например:
df -h
/dev/md0 990M 2,6M 921M 1% /mnt
Информация о RAID
Посмотреть состояние всех RAID можно командой:
cat /proc/mdstat
В ответ мы получим что-то на подобие:
md0 : active raid1 sdc[1] sdb[0]
1046528 blocks super 1.2 [2/2] [UU]
* где md0 — имя RAID устройства; raid1 sdc[1] sdb[0] — уровень избыточности и из каких дисков собран; 1046528 blocks — размер массива; [2/2] [UU] — количество юнитов, которые на данный момент используются.
** мы можем увидеть строку md0 : active(auto-read-only) — это означает, что после монтирования массива, он не использовался для записи.
Подробную информацию о конкретном массиве можно посмотреть командой:
mdadm -D /dev/md0
* где /dev/md0 — имя RAID устройства.
Пример ответа:
Version : 1.2
Creation Time : Wed Mar 6 09:41:06 2019
Raid Level : raid1
Array Size : 1046528 (1022.00 MiB 1071.64 MB)
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 6 09:41:26 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : proxy.dmosk.local:0 (local to host proxy.dmosk.local)
UUID : 304ad447:a04cda4a:90457d04:d9a4e884
Events : 17
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
* где:
- Version — версия метаданных.
- Creation Time — дата в время создания массива.
- Raid Level — уровень RAID.
- Array Size — объем дискового пространства для RAID.
- Used Dev Size — используемый объем для устройств. Для каждого уровня будет индивидуальный расчет: RAID1 — равен половине общего размера дисков, RAID5 — равен размеру, используемому для контроля четности.
- Raid Devices — количество используемых устройств для RAID.
- Total Devices — количество добавленных в RAID устройств.
- Update Time — дата и время последнего изменения массива.
- State — текущее состояние. clean — все в порядке.
- Active Devices — количество работающих в массиве устройств.
- Working Devices — количество добавленных в массив устройств в рабочем состоянии.
- Failed Devices — количество сбойных устройств.
- Spare Devices — количество запасных устройств.
- Consistency Policy — политика согласованности активного массива (при неожиданном сбое). По умолчанию используется resync — полная ресинхронизация после восстановления. Также могут быть bitmap, journal, ppl.
- Name — имя компьютера.
- UUID — идентификатор для массива.
- Events — количество событий обновления.
- Chunk Size (для RAID5) — размер блока в килобайтах, который пишется на разные диски.
Подробнее про каждый параметр можно прочитать в мануале для mdadm:
man mdadm
Также, информацию о разделах и дисковом пространстве массива можно посмотреть командой fdisk:
fdisk -l /dev/md0
Проверка целостности
Для проверки целостности вводим:
echo ‘check’ > /sys/block/md0/md/sync_action
Результат проверки смотрим командой:
cat /sys/block/md0/md/mismatch_cnt
* если команда возвращает 0, то с массивом все в порядке.
Остановка проверки:
echo ‘idle’ > /sys/block/md0/md/sync_action
Восстановление RAID
Рассмотрим два варианта восстановлении массива.
Замена диска
В случае выхода из строя одного из дисков массива, команда cat /proc/mdstat покажет следующее:
cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[0]
1046528 blocks super 1.2 [2/1] [U_]
* о наличии проблемы нам говорит нижнее подчеркивание вместо U — [U_] вместо [UU].
Или:
mdadm -D /dev/md0
…
Update Time : Thu Mar 7 20:20:40 2019
State : clean, degraded
…
* статус degraded говорит о проблемах с RAID.
Для восстановления, сначала удалим сбойный диск, например:
mdadm /dev/md0 —remove /dev/sdc
Теперь добавим новый:
mdadm /dev/md0 —add /dev/sde
Смотрим состояние массива:
mdadm -D /dev/md0
…
Update Time : Thu Mar 7 20:57:13 2019
State : clean, degraded, recovering
…
Rebuild Status : 40% complete
…
* recovering говорит, что RAID восстанавливается; Rebuild Status — текущее состояние восстановления массива (в данном примере он восстановлен на 40%).
Если синхронизация выполняется слишком медленно, можно увеличить ее скорость. Для изменения скорости синхронизации вводим:
echo ‘10000’ > /proc/sys/dev/raid/speed_limit_min
* по умолчанию скорость speed_limit_min = 1000 Кб, speed_limit_max — 200000 Кб. Для изменения скорости, можно поменять только минимальную.
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan
* данная команда сама найдет необходимую конфигурацию и восстановит RAID.
Также, мы можем указать, из каких дисков пересобрать массив:
mdadm —assemble /dev/md0 /dev/sdb /dev/sdc
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
Диском Hot Spare станет тот, который просто будет добавлен к массиву:
mdadm /dev/md0 —add /dev/sdd
Информация о массиве изменится, например:
mdadm -D /dev/md0
…
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
2 8 48 1 active sync /dev/sdc
3 8 32 — spare /dev/sdd
Проверить работоспособность резерва можно вручную, симулировав выход из строя одного из дисков:
mdadm /dev/md0 —fail /dev/sdb
И смотрим состояние:
mdadm -D /dev/md0
…
Rebuild Status : 37% complete
…
Number Major Minor RaidDevice State
3 8 32 0 spare rebuilding /dev/sdd
2 8 48 1 active sync /dev/sdc
0 8 16 — faulty /dev/sdb
…
* как видим, начинается ребилд. На замену вышедшему из строя sdb встал hot-spare sdd.
Добавить диск к массиву
В данном примере рассмотрим вариант добавления активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
Добавляем диск к массиву:
mdadm /dev/md0 —add /dev/sde
Новый диск мы увидим в качестве spare:
4 8 16 — spare /dev/sde
Теперь расширяем RAID:
mdadm -G /dev/md0 —raid-devices=3
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Удаление массива
При удалении массива внимателнее смотрите на имена массива и дисков и подставляйте свои значения.
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
umount /mnt
* где /mnt — каталог монтирования нашего RAID.
mdadm -S /dev/md0
* где /dev/md0 — массив, который мы хотим разобрать.
* если мы получим ошибку mdadm: fail to stop array /dev/md0: Device or resource busy, с помощью команды lsof -f — /dev/md0 смотрим процессы, которые используют раздел и останавливаем их.
Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd
* где диски /dev/sdb, /dev/sdc, /dev/sdd были частью массива md0.
А также удаляем метаданные и подпись:
wipefs —all —force /dev/sd{b,c,d}