Имаме хардуер с BIOS. Твърдите дискове в машината са под 2ТВ и са във формат MSDOS. Ще изградим софтуерен RAID 1 масив, като системата ще може да се зарежда от двата диска. Разликата с предния вариант е, че ще ползваме LVM за дяловете. Ще представлява следното: (HDD) ╗ ╠════ (RAID) ════ (vg0) ════ (boot, swap и /) (HDD) ╝ Предимства: ● по-гъвкава система ● повече възможности за лесно управление Недостатък: ● натоварва системата ● изисква повече процесорно време и памет
Имаме 2 диска по 33GB и BIOS. Самата инсталация няма да я показвам, само ще уточня начина на разделяне на дисковете и RAID масива. По подробно можете да проверите на BIOS RAID1+MSDOS.
Всичко което е показано по-горе във вид на картинки мисля, че е ясно. Остана да дефинираме системата да се зарежда и от диск /dev/sdb. За тези които все пак не могат да се ориентират в няколко точки какво имаме. ● два диска /dev/sda и /dev/sdb ● RAID масив /dev/md0 изграден върху дискове /dev/sda и /dev/sdb Да проверим все пак:
lsblk sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sr0 11:0 1 1024M 0 rom
● имаме налична логическа група vg0 ● имаме налични логически дялове boot, swap и root ● имаме инсталиран GRUB на /dev/sda Да проверим в /etc/fstab кои дялове зареждаме.
nano /etc/fstab
#
Забележете разликата с BIOS RAID1+MSDOS. Тук зареждаме логическите дялове, а не RAID масива. Това е първото предимство на този метод. Лесно за управление. Поглеждайки /etc/fstab разбираме, че трябва само да инсталираме GRUB на /dev/sdb. Отново напомням да си инсталирате sudo пакета и да си вкарате потребителя в групата sudo или да оправите пътищата на root.
sudo update-initramfs -u -k all [sudo] password for cccp: Pa$$ update-initramfs: Generating /boot/initrd.img-5.10.0-30-amd64 update-initramfs: Generating /boot/initrd.img-5.10.0-18-amd64
sudo grub-install /dev/disk/by-id/ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001 Installing for i386-pc platform. Installation finished. No error reported.
Инсталирахме GRUB в /dev/sdb. В случая използвахме ID на диска. Това се прави с цел когато разменяте местата на дисковете (примерно от SATA_0 на SATA_1) да не разменяте /dev/sda на /dev/sdb а един път записано като ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001 на което и SATA да се сложи винаги ще е ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001. На практика в /boot се създаде папка /boot/grub и в нея се преконфигурира файла grub.cfg Сега ако премахнете първия диск системата успешно ще зареди от втория. Вярно няколко пъти ще покаже че логическата група vg0 не съществува но всичко се зарежда в крайна сметка. Да проверим все пак какво имаме:
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sr0 11:0 1 382M 0 rom
Дяла vg0 съществува но е на един диск и той е /dev/sda. Ние обаче го инсталирахме на /dev/sdb, но не точно така. Инсталирахме го на ID ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001, което отговаряше на /dev/sdb. Но сега диска стана /dev/sda, а ID е пак ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001. Да проверим:
ls -lha /dev/disk/by-id lrwxrwxrwx 1 root root 9 Jun 15 14:40 ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001 -> ../../sr0 lrwxrwxrwx 1 root root 9 Jun 15 14:40 ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001 -> ../../sda lrwxrwxrwx 1 root root 10 Jun 15 14:40 ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-name-vg0-boot -> ../../dm-0 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-name-vg0-root -> ../../dm-2 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-name-vg0-swap -> ../../dm-1 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-uuid-LVM-22oP227S02FKm6CAs5PQ071sfi3rZZY19UwB3qGBEKJPtfXbFYNj0bqydixMVWAO -> ../../dm-0 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-uuid-LVM-22oP227S02FKm6CAs5PQ071sfi3rZZY1tyoL5CN7l32mgzve1HcFn3XMOfFP6IMP -> ../../dm-2 lrwxrwxrwx 1 root root 10 Jun 15 14:40 dm-uuid-LVM-22oP227S02FKm6CAs5PQ071sfi3rZZY1Xq3HXNmveF5RbqdQfygZoz9k692be7T0 -> ../../dm-1 lrwxrwxrwx 1 root root 9 Jun 15 14:40 lvm-pv-uuid-qZglVO-jgBK-BXVH-5fsc-5vQk-VKi9-dkrIYM -> ../../md0 lrwxrwxrwx 1 root root 9 Jun 15 14:40 md-name-debian:0 -> ../../md0 lrwxrwxrwx 1 root root 9 Jun 15 14:40 md-uuid-004e992d:ea17bbae:2c5a48c4:186d3a0c -> ../../md0 lrwxrwxrwx 1 root root 9 Jun 15 14:40 wwn-0x5000c29f83e45399 -> ../../sda lrwxrwxrwx 1 root root 10 Jun 15 14:40 wwn-0x5000c29f83e45399-part1 -> ../../sda1
Диска е същия, просто вече е /dev/sda.
Имитирахме, че първия диск се чупи. Време да го заменим. Намираме същия диск (същия размер) и го поставяме. Зареждаме от ВТОРИЯ диск. Системата се зарежда.
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sr0 11:0 1 382M 0 rom
Диск /dev/sda не е дефиниран. Да проверим и RAID масива.
cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[1] 34567168 blocks super 1.2 [2/1] [_U]
В масива има един диск, при необходими два. Пръвия диск който върнахме в системата е неопределен затова е необходимо да се оразмери. Ще ползваме gdisk. В случая го нямаме, затова ще го инсталираме.
sudo apt install gdisk -y
Да проверим здравия диск как е оразмерен.
sudo gdisk -l /dev/sdb ### Много надписи ..... Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** Disk /dev/sdb: 69206016 sectors, 33.0 GiB Model: VMware Virtual S Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 719E57C9-0365-4443-8DA5-B44521528C59 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 69205982 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 69203967 33.0 GiB FD00 Linux RAID
Диска е във формат MBR. Да копираме MBR дяловете на /dev/sdb върху /dev/sda
sudo sfdisk -d /dev/sdb | sudo sfdisk /dev/sda Checking that no-one is using this disk right now ... OK Disk /dev/sda: 33 GiB, 35433480192 bytes, 69206016 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Created a new DOS disklabel with disk identifier 0x9cb3cb78. /dev/sda1: Created a new partition 1 of type 'Linux raid autodetect' and of size 33 GiB. /dev/sda2: Done. New situation: Disklabel type: dos Disk identifier: 0x9cb3cb78 Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 69203967 69201920 33G fd Linux raid autodetect The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Да проверим:
sudo gdisk -l /dev/sda GPT fdisk (gdisk) version 1.0.6 Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but partition table may be garbage. Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. *************************************************************** Disk /dev/sda: 69206016 sectors, 33.0 GiB Model: VMware Virtual S Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): E232620F-D965-478A-882C-F938A216AE8F Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 69205982 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 69203967 33.0 GiB FD00 Linux RAID
И още една проверка:
sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sr0 11:0 1 382M 0 rom
Диска още не е в масива. Можем лесно да проверим:
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1]
34567168 blocks super 1.2 [2/1] [_U]
unused devices:
Да го добавим:
sudo mdadm /dev/md0 -a /dev/sda1 mdadm: added /dev/sda1 cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[1] 34567168 blocks super 1.2 [2/1] [_U] [==========>..........] recovery = 54.9% (19004544/34567168) finish=1.2min speed=206107K/sec unused devices: <none>
Изчакваме RAID масива да се поправи на 100% Проверяваме наново:
cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[2] sdb1[1] 34567168 blocks super 1.2 [2/2] [UU]
Имаме 2 от 2 диска в масива и то синхронизирани. Отново проверяваме разпределението на дяловете.
sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 33G 0 disk └─sda1 8:1 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sdb 8:16 0 33G 0 disk └─sdb1 8:17 0 33G 0 part └─md0 9:0 0 33G 0 raid1 ├─vg0-boot 253:0 0 952M 0 lvm /boot ├─vg0-swap 253:1 0 3.7G 0 lvm [SWAP] └─vg0-root 253:2 0 28.3G 0 lvm / sr0 11:0 1 382M 0 rom
Двата диска са огледални. Това и трябваше да се получи. Остана да оправим bootloader-а
sudo grub-install /dev/disk/by-id/ata-VMware_Virtual_SATA_Hard_Drive_00000000000000000001 Installing for i386-pc platform. Installation finished. No error reported.
Готово, вече системата може да зарежда от двата диска.