Добавить README.md

This commit is contained in:
2026-02-05 21:47:09 +03:00
commit eda780c5e8

505
README.md Normal file
View File

@@ -0,0 +1,505 @@
# Домашнее задание 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, а так же смена наздвание дисков, остается открытым.