# Домашнее задание 2 ## Работа с mdadm Для выполнение задания используется Ubuntu Server 24.04 ### Добавляем 5 hdd в VM Добавил в VM 5 дисков по 1Gb. Проверяем через lsblk, что диски присутствуют в системе ```bash 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 ```bash 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. ``` Проверим, что массив создался ```bash 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: 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 ```bash 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 ```bash (parted) select /dev/md10 Using /dev/md10 (parted) ``` С помощью команды print, можем убедиться, что разметки на нашем md10 нет ```bash (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 ```bash (parted) mklabel gpt (parted) ``` Создаем 3 раздела, 1 разде будет занимать 30% диска, второй 40% и 3 30% ```bash (parted) mkpart primari 0% 30% (parted) mkpart primari 30% 70% (parted) mkpart primari 70% 100% ``` Снова выполним комду print, чтобы увидить изменения ```bash (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 ```bash (parted) quit Information: You may need to update /etc/fstab. nimda@ubuntu:~$ ``` Посмотрим, как отображаются наши разделы через lsblk ```bash 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 на наших разделах ```bash 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 каталога ```bash nimda@ubuntu:~$ sudo mkdir /mnt/part1 nimda@ubuntu:~$ sudo mkdir /mnt/part2 nimda@ubuntu:~$ sudo mkdir /mnt/part3 ``` Монтируем разделы ```bash 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 (который покажет файловую систему), выведим информацию о монтированных дисках ```bash 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 файлу на каждом из разделов ```bash 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 массивом. ```bash nimda@ubuntu:~$ sudo mdadm -D /dev/md10 mdadm: cannot open /dev/md10: No such file or directory ``` После перезагрузки, mdadm не видит наш raid массив. Смотрим что находиться в mdstat ```bash 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: ``` После удаление диска имя нашего raid поменялось на md127. Так же диски сменили имена, тот что был /dev/sdc стал /dev/sdb и т.д. **Вопрос проверяющему: А почему так происходит?** Ну ладно, продолжим работать с md127. Посмотрим состояние массива ```bash 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 диск в массиве Примонтируем наши разделы ```bash nimda@ubuntu:~$ sudo mount /dev/md127p1 /mnt/part1 nimda@ubuntu:~$ sudo mount /dev/md127p2 /mnt/part2 nimda@ubuntu:~$ sudo mount /dev/md127p3 /mnt/part3 ``` Убедимся, что созданные файлы присутствуют на месте, даже на поломаном разделе ```bash 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) ```bash nimda@ubuntu:~$ sudo mdadm /dev/md127 --add /dev/sde mdadm: added /dev/sde ``` И смотрим состояние массива ```bash 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 массива. Через некоторое время, как пройдет ребилд, вновь смотрим состояние массива и убеждаемся, что с рейдом все впорядке ```bash 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, а так же смена наздвание дисков, остается открытым.