2026-02-05 21:47:09 +03:00
2026-02-05 21:47:09 +03:00

Домашнее задание 2

Работа с mdadm

Для выполнение задания используется Ubuntu Server 24.04

Добавляем 5 hdd в VM

Добавил в VM 5 дисков по 1Gb.

Проверяем через lsblk, что диски присутствуют в системе

nimda@ubuntu:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                         8:0    0   20G  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0  1.8G  0 part /boot
└─sda3                      8:3    0 18.2G  0 part
  └─ubuntu--vg-ubuntu--lv 252:0    0   16G  0 lvm  /
sdb                         8:16   0    1G  0 disk
sdc                         8:32   0    1G  0 disk
sdd                         8:48   0    1G  0 disk
sde                         8:64   0    1G  0 disk
sdf                         8:80   0    1G  0 disk
sr0                        11:0    1  3.1G  0 rom

Создаем RAID 10

С помощью mdadm создаем RAID 10 из 4 дисков /dev/sdb, /dev/sdc, /dev/sdd и /dev/sde

nimda@ubuntu:~$ sudo mdadm --create /dev/md10 -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.

Проверим, что массив создался

nimda@ubuntu:~$ sudo mdadm -D /dev/md10
/dev/md10:
           Version : 1.2
     Creation Time : Sat Nov  8 10:04:56 2025
        Raid Level : raid10
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat Nov  8 10:05:06 2025
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : ubuntu:10  (local to host ubuntu)
              UUID : 324f837b:c5d3c762:18b2b81c:4821f1bd
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync set-A   /dev/sdb
       1       8       32        1      active sync set-B   /dev/sdc
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       64        3      active sync set-B   /dev/sde
       
       
nimda@ubuntu:~$ cat /proc/mdstat
Personalities : [raid0] [raid1] [raid4] [raid5] [raid6] [raid10] [linear]
md10 : active raid10 sde[3] sdd[2] sdc[1] sdb[0]
      2093056 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>


nimda@ubuntu:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE   MOUNTPOINTS
sda                         8:0    0   20G  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0  1.8G  0 part   /boot
└─sda3                      8:3    0 18.2G  0 part
  └─ubuntu--vg-ubuntu--lv 252:0    0   16G  0 lvm    /
sdb                         8:16   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
sdc                         8:32   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
sdd                         8:48   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
sde                         8:64   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
sdf                         8:80   0    1G  0 disk
sr0                        11:0    1  3.1G  0 rom




Разбиваем созданный райд md10 на разделы

Открываем утилиту parted

nimda@ubuntu:~$ sudo parted
GNU Parted 3.6
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Выбираем наш рейд уомандой select

(parted) select /dev/md10
Using /dev/md10
(parted)

С помощью команды print, можем убедиться, что разметки на нашем md10 нет

(parted) print
Error: /dev/md10: unrecognised disk label  # вот тут parted говорит, что не видит размеку
Model: Linux Software RAID Array (md)
Disk /dev/md10: 2143MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted)

Создаем разметку GPT

(parted) mklabel gpt
(parted)

Создаем 3 раздела, 1 разде будет занимать 30% диска, второй 40% и 3 30%

(parted) mkpart primari 0% 30%
(parted) mkpart primari 30% 70%
(parted) mkpart primari 70% 100%

Снова выполним комду print, чтобы увидить изменения

(parted) print
Model: Linux Software RAID Array (md)
Disk /dev/md10: 2143MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size   File system  Name     Flags
 1      1049kB  643MB   642MB               primari
 2      643MB   1501MB  858MB               primari
 3      1501MB  2142MB  642MB               primari

(parted)

Выйти можно при помощи команды quit

(parted) quit
Information: You may need to update /etc/fstab.

nimda@ubuntu:~$

Посмотрим, как отображаются наши разделы через lsblk

nimda@ubuntu:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE   MOUNTPOINTS
sda                         8:0    0   20G  0 disk
├─sda1                      8:1    0    1M  0 part
├─sda2                      8:2    0  1.8G  0 part   /boot
└─sda3                      8:3    0 18.2G  0 part
  └─ubuntu--vg-ubuntu--lv 252:0    0   16G  0 lvm    /
sdb                         8:16   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
  ├─md10p1                259:0    0  612M  0 part
  ├─md10p2                259:1    0  818M  0 part
  └─md10p3                259:2    0  612M  0 part
sdc                         8:32   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
  ├─md10p1                259:0    0  612M  0 part
  ├─md10p2                259:1    0  818M  0 part
  └─md10p3                259:2    0  612M  0 part
sdd                         8:48   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
  ├─md10p1                259:0    0  612M  0 part
  ├─md10p2                259:1    0  818M  0 part
  └─md10p3                259:2    0  612M  0 part
sde                         8:64   0    1G  0 disk
└─md10                      9:10   0    2G  0 raid10
  ├─md10p1                259:0    0  612M  0 part
  ├─md10p2                259:1    0  818M  0 part
  └─md10p3                259:2    0  612M  0 part
sdf                         8:80   0    1G  0 disk
sr0                        11:0    1  3.1G  0 rom

Создаем файловую систему на наших разделах

С помощью утилиты mkfs, создаем файловую систему ext4 на наших разделах

nimda@ubuntu:~$ sudo mkfs.ext4 /dev/md10p1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 156672 4k blocks and 39200 inodes
Filesystem UUID: fac0baf0-446d-46e2-b0d0-aa50b8546cd8
Superblock backups stored on blocks:
        32768, 98304

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

nimda@ubuntu:~$ sudo mkfs.ext4 /dev/md10p2
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 209408 4k blocks and 52416 inodes
Filesystem UUID: d4fd92a8-ed87-4c77-981d-51dd996d0c03
Superblock backups stored on blocks:
        32768, 98304, 163840

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

nimda@ubuntu:~$ sudo mkfs.ext4 /dev/md10p3
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 156672 4k blocks and 39200 inodes
Filesystem UUID: 0e4fdeef-684c-4941-9e2a-4ac78e10c040
Superblock backups stored on blocks:
        32768, 98304

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done


Примонтируем наши созданные разделы

Создаем 3 каталога

nimda@ubuntu:~$ sudo mkdir /mnt/part1
nimda@ubuntu:~$ sudo mkdir /mnt/part2
nimda@ubuntu:~$ sudo mkdir /mnt/part3

Монтируем разделы

nimda@ubuntu:~$ sudo mount /dev/md10p1 /mnt/part1
nimda@ubuntu:~$ sudo mount /dev/md10p2 /mnt/part2
nimda@ubuntu:~$ sudo mount /dev/md10p3 /mnt/part3

С помощь утилиты df и ключа -T (который покажет файловую систему), выведим информацию о монтированных дисках

nimda@ubuntu:~$ df -hT
Filesystem                        Type   Size  Used Avail Use% Mounted on
tmpfs                             tmpfs  192M  1.3M  191M   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv ext4    16G  5.1G  9.7G  35% /
tmpfs                             tmpfs  960M     0  960M   0% /dev/shm
tmpfs                             tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda2                         ext4   1.8G  199M  1.5G  13% /boot
tmpfs                             tmpfs  192M   12K  192M   1% /run/user/1000
/dev/md10p1                       ext4   586M   24K  543M   1% /mnt/part1
/dev/md10p2                       ext4   788M   24K  731M   1% /mnt/part2
/dev/md10p3                       ext4   586M   24K  543M   1% /mnt/part3

Ломаем и чиним RAID

Перед тем как начнем ломать raid, создим по 1 файлу на каждом из разделов

nimda@ubuntu:~$ echo "Файл на part 1" | sudo tee /mnt/part1/file_part1.txt
Файл на part 1
nimda@ubuntu:~$ echo "Файл на part 2" | sudo tee /mnt/part2/file_part2.txt
Файл на part 2
nimda@ubuntu:~$ echo "Файл на part 3" | sudo tee /mnt/part3/file_part3.txt
Файл на part 3


Удаляем диск /dev/sdb из виртуальной машины перезагржаемся, и смотрим что происходит с raid массивом.

nimda@ubuntu:~$ sudo mdadm -D /dev/md10
mdadm: cannot open /dev/md10: No such file or directory

После перезагрузки, mdadm не видит наш raid массив. Смотрим что находиться в mdstat

nimda@ubuntu:~$ cat /proc/mdstat
Personalities : [raid0] [raid1] [raid4] [raid5] [raid6] [raid10] [linear]
md127 : active (auto-read-only) raid10 sdb[1] sdd[2] sdc[3]
      2093056 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU]

unused devices: <none>

После удаление диска имя нашего raid поменялось на md127. Так же диски сменили имена, тот что был /dev/sdc стал /dev/sdb и т.д.

Вопрос проверяющему: А почему так происходит?

Ну ладно, продолжим работать с md127. Посмотрим состояние массива

nimda@ubuntu:~$ sudo mdadm -D /dev/md127
/dev/md127:
           Version : 1.2
     Creation Time : Sat Nov  8 10:04:56 2025
        Raid Level : raid10
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Sat Nov  8 11:07:08 2025
             State : clean, degraded
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : ubuntu:10  (local to host ubuntu)
              UUID : 324f837b:c5d3c762:18b2b81c:4821f1bd
            Events : 22

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       16        1      active sync set-B   /dev/sdb
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       32        3      active sync set-B   /dev/sdc

Статум нашего массива degraded, и так же отсутсвеет 1 диск в массиве

Примонтируем наши разделы

nimda@ubuntu:~$ sudo mount /dev/md127p1 /mnt/part1
nimda@ubuntu:~$ sudo mount /dev/md127p2 /mnt/part2
nimda@ubuntu:~$ sudo mount /dev/md127p3 /mnt/part3

Убедимся, что созданные файлы присутствуют на месте, даже на поломаном разделе

nimda@ubuntu:~$ ls /mnt/part1 /mnt/part2 /mnt/part3
/mnt/part1:
file_part1.txt  lost+found

/mnt/part2:
file_part2.txt  lost+found

/mnt/part3:
file_part3.txt  lost+found
nimda@ubuntu:~$

Добавляем в наш reid диск /dev/sde (при начале выполнения задания он был /dev/sdf)

nimda@ubuntu:~$ sudo mdadm /dev/md127 --add /dev/sde
mdadm: added /dev/sde

И смотрим состояние массива

nimda@ubuntu:~$ sudo mdadm -D /dev/md127
/dev/md127:
           Version : 1.2
     Creation Time : Sat Nov  8 10:04:56 2025
        Raid Level : raid10
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat Nov  8 11:32:33 2025
             State : clean, degraded, recovering
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 19% complete

              Name : ubuntu:10  (local to host ubuntu)
              UUID : 324f837b:c5d3c762:18b2b81c:4821f1bd
            Events : 60

    Number   Major   Minor   RaidDevice State
       4       8       64        0      spare rebuilding   /dev/sde
       1       8       16        1      active sync set-B   /dev/sdb
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       32        3      active sync set-B   /dev/sdc

Видим, что диск встал на место удаленного, и происходит ребилд raid массива.

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

nimda@ubuntu:~$ sudo mdadm -D /dev/md127
/dev/md127:
           Version : 1.2
     Creation Time : Sat Nov  8 10:04:56 2025
        Raid Level : raid10
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Sat Nov  8 11:32:38 2025
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : ubuntu:10  (local to host ubuntu)
              UUID : 324f837b:c5d3c762:18b2b81c:4821f1bd
            Events : 74

    Number   Major   Minor   RaidDevice State
       4       8       64        0      active sync set-A   /dev/sde
       1       8       16        1      active sync set-B   /dev/sdb
       2       8       48        2      active sync set-A   /dev/sdd
       3       8       32        3      active sync set-B   /dev/sdc

Вопрос про смену названия с md10 на md127, а так же смена наздвание дисков, остается открытым.

Description
Работа с mdadm
Readme 32 KiB