Все действия происходят в QUME/KVM. В системе должно быть смонтирована 2 диска до начала установки
Рассмотрим шаги про добавление 2-го диска.
На последнем шаге обязательно ставим галочку:
Customize configuration before install
в следующем шаге в Add Hardware добавляем второй диск:
только после этого запускаем установку.
Установка Ubuntu 18.04
Рассмотрим часть про создание разделов:
Далее создаем на обеих дисках разметку без указания файловой системы:
Делаем разбивку каждого диска на 2-е части (1Gb и остаток от диска), в Вашем случае размеры могут быть другими.
Указав пустое поле Size, будет задействован весь оставшийся размер диска.
в итоге у нас получится:
Приводим второй диск к такому же состоянию:
У вас в USED DEVICES появился bios_grub, оставляем его нетронутым, в дальнейшем (уже после установки системы) мы создадим на втором диске раздел под GRUB
Теперь мы можем создать RAID1 - 2 штука:
Выбираем partition одинакового размера:
В итоге у нас должно получится в AVAILABLE DEVICES два устройства:
Приступаем к созданию partition на устройствах md0 и md1:
В моем случае md0 (он меньшего размера) идет под /boot:
А md1 идет под корень системы:
В итоге у нас должна получится такая разметка:
Далее Done и в следующем окне Continue :
Вся информация будет удалена, диски будут отформатированы
Далее следуем по меню чтобы завершить установку системы:
Reboot
Install GRUB
все последующие действия в системы выполняются от root
root@test:~# grub-install /dev/vdb
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: error: embedding is not possible, but this is required for RAID and LVM install.
root@test:~#
Ошибка при выполнении grub-install на vdb ожидаемая, так как там нету раздела по него.
Создаем раздел:
parted /dev/vdb set 1 bios_grub on
root@test:~# parted /dev/vdb set 1 bios_grub on
Information: You may need to update /etc/fstab.
root@test:~#
parted /dev/vdb print
root@test:~# parted /dev/vdb print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 16.1GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 1075MB 1074MB bios_grub
2 1075MB 16.1GB 15.0GB
root@test:~#
Все прошло успешно, повторяем попытку grub-install:
grub-install /dev/vdb
root@test:~# grub-install /dev/vdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@test:~#
Мы получили систему которая может грузиться с любого из /boot в случае выхода какого то из дисков. Далее мы протестируем как это работает и возможные применения такой схемы на практике.
[UU] - нам говорит о том что рейдах участвует по два диска, в нашем случае partition.
Выключаем систему, меняем загрузочный диск:
shutdownnow
Запускаем систему. Система загрузилась с VirtIO Disk 2.
VirtIO Disk 1 мы можем безболезненно отключить от системы, и система у нас останется в рабочем состоянии.
Второй диск вышел из строя
Представим ситуацию что какой-то из дисков, в нашем случае будет VirtlO Disk2, вышел из строя. Для имитации поломки, мы его удалим из системы.
До начала эксперимента проверяем что у нас все ок, и создадим в папке root файл, чтоб проверить синхронизацию с новым диском при отключении VirtlO Disk1😁 .
root@test:/home/test# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 vda2[0]
1046528 blocks super 1.2 [2/1] [U_]
md1 : active raid1 vda3[0]
14667776 blocks super 1.2 [2/1] [U_]
unused devices: <none>
root@test:/home/test#
Размечаем диск vdb по partition как у vda, для более корректного отображения в дереве, разметку делаем в том же порядке:
более детальную информацию по команде fdisk можно посмотреть в man fdisk
fdisk /dev/vdb
root@test:/home/test# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9bc6d9da.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-31457279, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-31457279, default 31457279): +1M
Created a new partition 1 of type 'Linux' and of size 1 MiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (4096-31457279, default 4096):
Last sector, +sectors or +size{K,M,G,T,P} (4096-31457279, default 31457279): +1G
Created a new partition 2 of type 'Linux' and of size 1 GiB.
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (3,4, default 3):
First sector (2101248-31457279, default 2101248):
Last sector, +sectors or +size{K,M,G,T,P} (2101248-31457279, default 31457279):
Created a new partition 3 of type 'Linux' and of size 14 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root@test:/home/test#
смотрим что у нас получилось по дискам:
lsblk
root@test:/home/test# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 89.1M 1 loop /snap/core/8268
sr0 11:0 1 1024M 0 rom
vda 252:0 0 15G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 1G 0 part
│ └─md0 9:0 0 1022M 0 raid1
│ └─md0p1 259:0 0 1018M 0 md /boot
└─vda3 252:3 0 14G 0 part
└─md1 9:1 0 14G 0 raid1
└─md1p1 259:1 0 14G 0 md /
vdb 252:16 0 15G 0 disk
├─vdb1 252:17 0 1M 0 part
├─vdb2 252:18 0 1G 0 part
└─vdb3 252:19 0 14G 0 part
root@test:/home/test#
Теперь можем восстановить "первый" RAID1 (md0):
mdadm /dev/md0 --add /dev/vdb2
К сожалению вывода у команды нет, но если запустить в отдельном окне:
root@test:/home/test# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x395de8c7.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-31457279, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-31457279, default 31457279): +1M
Created a new partition 1 of type 'Linux' and of size 1 MiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (2-4, default 2):
First sector (4096-31457279, default 4096):
Last sector, +sectors or +size{K,M,G,T,P} (4096-31457279, default 31457279): +1G
Created a new partition 2 of type 'Linux' and of size 1 GiB.
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (3,4, default 3):
First sector (2101248-31457279, default 2101248):
Last sector, +sectors or +size{K,M,G,T,P} (2101248-31457279, default 31457279):
Created a new partition 3 of type 'Linux' and of size 14 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root@test:/home/test#