1

Я изучаю рейды, так что, возможно, это какой-то основной вопрос, но он нигде не освещен ...

Когда я создаю 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.

Это глубокая магия.

1 ответ1

-1

Вы, должно быть, сделали что-то плохое. Попробуйте выполнить процедуру с самого начала и отправьте все шаги, которые вы сделали. Это должно работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .