Я изучаю рейды, так что, возможно, это какой-то основной вопрос, но он нигде не освещен ...
Когда я создаю raid 1, обновляю /etc/mdadm/mdadm.conf
как [1], запускаю update-initramfs -u, я могу перезагрузить компьютер и смонтировать его. Все отлично. Теперь я удаляю один диск и перезагружаюсь, чтобы симулировать критический сбой. raid будет ошибочно определен как raid 0 (ПОЧЕМУ?), неактивно (ПОЧЕМУ? потому что у нас "просто половина рейда0?" и как таковой не может быть использован. То, что я ожидал увидеть, было активным, деградированным двигателем, а не таким фатальным. В чем дело? См. [2] для описания состояния ошибки.
Смежный вопрос: почему mdadm.conf [1] содержит devices=/dev/sdb1,/dev/sdc1
если предположительно все разделы (соответственно, определенные в переменной DEVICE) должны быть проверены на наличие UID UID? Так почему эта часть генерируется? Для чего он используется и почему вместо него не используется раздел UUID? Может ли это быть использовано здесь?
[1] mdadm.conf
cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR alfonz19gmail.com
MAILFROM vboxSystem
# definitions of existing MD arrays
# This configuration was auto-generated on Sun, 10 Feb 2019 09:57:56 +0100 by mkconf
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:0 UUID=16624299:11ed3af5:3a8acd02:cd24d4d0
devices=/dev/sdb1,/dev/sdc1
root@mmucha-VirtualBox1:~# cat /etc/mdadm/mdadm.conf
[2] ошибочное состояние:
root@mmucha-VirtualBox1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdb1[0](S)
5236719 blocks super 1.2
unused devices: <none>
root@mmucha-VirtualBox1:~# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : mmucha-VirtualBox1:0 (local to host mmucha-VirtualBox1)
UUID : 16624299:11ed3af5:3a8acd02:cd24d4d0
Events : 19
Number Major Minor RaidDevice
- 8 17 - /dev/sdb1
ОБНОВЛЕНИЕ шаги создания
Я хотел бы поделиться чем-то неинтерактивным, но интерфейс и функциональность sfdisk не работают для меня; Когда я прошу его создать gpt disklabel type и написать, он «говорит», что все в порядке, но ничего не сделал. Эмм. Извините, вы получаете команды fdisk здесь.
Описание: Я создал 2 новых диска для существующей виртуальной машины Ubuntu 18.04, установил таблицу разделов gpt для обоих, создаю 1 раздел для обоих, создаю raid 1, создаю ext4fs, монтирую, создаю тестовый файл, обновляю mdadm.conf, запускаю update-initramfs и. Перезагрузись, проверь, работает. Выключение питания, удаление диска sde, загрузка. Та же ошибка.
релиз Ubuntu:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
FDISK:
fdisk /dev/sdd
g
n
1
t
29
p
w
Печать:
VDisk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E16A3CCE-1EF7-3D45-8AEF-A70B45B047CC
Device Start End Sectors Size Type
/dev/sdd1 2048 10485726 10483679 5G Linux filesystem
то же самое для /dev /sde:
Disk /dev/sde: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AEE480EE-DFA8-C245-8405-658B52C7DC0A
Device Start End Sectors Size Type
/dev/sde1 2048 10485726 10483679 5G Linux filesystem
создание рейда:
mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sd[d-e]1
mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Thu Feb 21 08:54:50 2019
Raid Level : raid1
Array Size : 5236672 (4.99 GiB 5.36 GB)
Used Dev Size : 5236672 (4.99 GiB 5.36 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Feb 21 08:55:16 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : mmucha-VirtualBox1:1 (local to host mmucha-VirtualBox1)
UUID : 1c873dd9:87220378:fc4de07a:99db62ae
Events : 17
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
форматирование и монтаж:
mkfs.ext4 /dev/md1
mkdir /media/raid1
mount /dev/md1 /media/raid1/
mdadm --detail --scan --verbose >> /etc/mdadm.conf
update-initramfs -u
cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR alfonz19gmail.com
MAILFROM vboxSystem
# definitions of existing MD arrays
# This configuration was auto-generated on Sun, 10 Feb 2019 09:57:56 +0100 by mkconf
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:0 UUID=16624299:11ed3af5:3a8acd02:cd24d4d0
devices=/dev/sdb1,/dev/sdc1
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=mmucha-VirtualBox1:1 UUID=1c873dd9:87220378:fc4de07a:99db62ae
devices=/dev/sdd1,/dev/sde1
И это все. Как уже упоминалось, если вы удалите 1 жесткий диск сейчас, вы не сможете смонтировать рейд:
sudo mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Raid Level : raid0
Total Devices : 1
Persistence : Superblock is persistent
State : inactive
Working Devices : 1
Name : mmucha-VirtualBox1:1 (local to host mmucha-VirtualBox1)
UUID : 1c873dd9:87220378:fc4de07a:99db62ae
Events : 23
Number Major Minor RaidDevice
- 8 49 - /dev/sdd1
ОБНОВЛЕНИЕ 2: я тестировал те же команды (минус update-initramfs -u) на Arch, и это работало без взлома. Я загрузился обратно в Ubuntu VM, где у меня было 2 набора рейдов с 2 накопителями уровня 1. Я снова снял один диск, и все заработало: чисто деградировало. Я даже не запускал эту ВМ один раз с прошлого раза. Хорошо, тогда я удалил один диск из другого набора. Так что теперь у меня должно быть 2 чистых деградированных диска на md0 и md1. Но у меня 2 чистых деградировали на md0 и md127. Но я знаю, что я знаю, что мне нужно остановить md127, запустить mdadm --assemble --scan
чтобы вернуть его на md1, запустить update-initramfs -u
, и после перезагрузки все должно быть хорошо. Но на удивление это не так. У меня есть md0 и md1, как и ожидалось, но в каждом наборе отсутствует 1 диск, в то время как 1 находится в состоянии clean degraded
а другой в inactive
с плохим уровнем. Но остановка и повторная сборка исправят это снова. Все это произошло без единой модификации mdadm.conf.
Это глубокая магия.