commit eda780c5e8bef00345752c582fa03fb9ba127a68 Author: alex Date: Thu Feb 5 21:47:09 2026 +0300 Добавить README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..5983731 --- /dev/null +++ b/README.md @@ -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: + + +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, а так же смена наздвание дисков, остается открытым. \ No newline at end of file