505 lines
16 KiB
Markdown
505 lines
16 KiB
Markdown
# Домашнее задание 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: <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
|
||
```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: <none>
|
||
|
||
```
|
||
|
||
После удаление диска имя нашего 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, а так же смена наздвание дисков, остается открытым. |