Ciò è necessario quando non è disponibile una scheda controller RAID per il server e l'unica soluzione è il RAID software. Questo post apporta modifiche alle partizioni, quindi se sono presenti dati esistenti su qualsiasi disco utilizzato per questo scopo, è necessario eseguirne il backup prima di creare l'array RAID secondo le migliori pratiche standard.
1. Per eseguire il mirroring del disco, è necessario ottenere informazioni sulla partizione. Questo può essere fatto con uno dei seguenti comandi:
# parted /dev/sda u s p # fdisk -l /dev/sda
2. La tabella delle partizioni deve essere clonata utilizzando il seguente comando:
# sgdisk -R /dev/sdb /dev/sda
3. Dopo aver clonato la partizione, la nuova unità necessita di un GUID:
# sgdisk -G /dev/sdb
4. Tutte le partizioni di cui verrà eseguito il mirroring devono avere il flag RAID:
# parted /dev/sda setraid on # parted /dev/sdb set raid on # parted /dev/sdb set raid on # parted /dev/sdb set raid on
5. Crea un nuovo dispositivo RAID sulla partizione dal nuovo disco sulla partizione di avvio equivalente sul nuovo disco (quindi se /boot è montato su /dev/sda1, sul dispositivo RAID deve essere su /dev/sdb1)
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb1 --metadata=1.0Nota :se i metadati non sono 1.0, grub non sarà in grado di leggerli.
6. Creare lo stesso filesystem utilizzato dalla partizione /boot/efi. Di solito, il sistema vfat è quello predefinito:
# mkfs.vfat /dev/md1
7. Il nuovo array raid deve essere montato e anche i file dalla partizione /boot corrente devono essere copiati:
# mkdir /mnt/md1/efi # mount /dev/md1 /mnt/md1/efi # rsync -a /boot/ /mnt/md1/ # sync # umount /mnt/md1/efi # rmdir /mnt/md1
8. La partizione /boot corrente deve essere smontata e quella nuova deve prendere il suo posto:
# umount /boot/efi # mount /dev/md1 /boot/efi
9. Per completare il processo di mirroring, il vecchio disco deve essere aggiunto al nuovo array:
#mdadm /dev/md1 -a /dev/sda1
10. Lo stato RAID può essere monitorato con il seguente comando:
# mdadm -D /dev/md1
11. Per eseguire l'avvio dal disco RAID, è necessario modificare il file /etc/fstab, ma per questo è necessario l'UUID del nuovo dispositivo:
# blkid | grep md1
12. L'UUID ottenuto dal passaggio precedente deve sostituire quello vecchio in /etc/fstab. Il file può essere modificato usando vi ed è meglio commentare la riga corrente e aggiungerla di nuovo appena sotto, ma ovviamente con UUID modificato:
# cat /etc/fstab #UUID=6d36b3b0-0238-4c86-9368-f60b571fbab9 /boot xfs defaults 0 0 UUID="new UUID" /boot xfs defaults 0 0
Per la partizione LVM (usa un indice diverso per il nuovo dispositivo)
1. Il dispositivo RAID deve essere creato sulla partizione che ha lo stesso indice di quella corrente:
# mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb2 --metadata=1.2Nota :metadata 1.2 crea un'area riservata ai metadati all'inizio del disco. Ciò potrebbe influire sull'allocazione del PV, quindi è possibile che si verifichino errori con il comando pvmove, che verrà utilizzato nel passaggio successivo. Quindi, per aggirare questo tipo di errori, è possibile utilizzare i metadati 1.0.
2. Questo nuovo array deve essere aggiunto allo stesso gruppo di volumi, in cui si trova il dispositivo lvm corrente:
# vgextend vgname /dev/md2
3. Le estensioni fisiche devono essere spostate dalla vecchia partizione al nuovo array (il completamento dell'operazione richiederà del tempo):
# pvmove /dev/sda2 /dev/md2
4. Dopodiché la vecchia partizione deve essere rimossa dal gruppo di volumi e da LVM:
# vgreduce vgname /dev/sda2 # pvremove /dev/sda2
5. Per non riscontrare errori relativi a LVM, il valore del parametro use_lvmetad deve essere modificato da 1 a 0 all'interno del file /etc/lvm/lvm.conf:
# vi /etc/lvm/lvm.conf ............... use_lvmetad = 0 ...............
Quindi, il lvm2-lvmetad il servizio deve essere interrotto, disabilitato e mascherato:
# systemctl stop lvm2-lvmetad.service # systemctl disable lvm2-lvmetad.service --now # systemctl disable lvm2-lvmetad.socket --now # systemctl mask lvm2-lvmetad.socket
6. Per completare il processo di mirroring, la vecchia partizione deve essere aggiunta all'array:
# mdadm /dev/md2 -a /dev/sda2
7. Lo stato RAID può essere monitorato con il seguente comando:
# mdadm -D /dev/md2
Per lo SWAP su una partizione separata e non sotto LVM
1. Per lo scambio, l'array RAID deve essere creato in modo leggermente diverso e possono essere utilizzati i seguenti comandi, supponendo che lo scambio sia in sda3:
# mdadm --create swap --level=1 --raid-devices=2 missing /dev/sdb3 # mkswap /dev/md/swap # mdadm /dev/md/swap -a /dev/sda3
2. Lo stato RAID può essere monitorato con il seguente comando:
# mdadm -D /dev/md/swap
3. Dopo aver eseguito il mirroring delle partizioni di avvio, di scambio e di root, i metadati devono essere scansionati e inseriti in /etc/mdadm.conf file
# mdadm --examine --scan >/etc/mdadm.conf
4. Quindi, /etc/default/grub il file deve essere aggiornato con i nuovi UUID su GRUB_CMDLINE_LINUX riga:
Gli UUID possono essere ottenuti con il seguente comando:
# mdadm -D /dev/md* | grep UUID
Modifica il file grub, aggiungendo le nuove voci:
# vi /etc/default/grub #GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet" GRUB_CMDLINE_LINUX="crashkernel=auto rd.md.uuid=first uuid rd.md.uuid=second uuid rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet"
5. Quindi, aggiorna grub2.cfg file:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
6. Aggiorna EFI bootmgr. Per questo, la vecchia voce di avvio EFI deve essere rimossa:
# efibootmgr -v | grep Boot
output(esempio di comando efibootmgr da un Server virtuale):
BootCurrent: 0001 BootOrder: 0001,0006,0008,0004,0000,0005 Boot0000* Windows Boot Manager Vendor(99e275e7-75a0-4b37-a2e6-c5385e6c00cb,)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...N............... Boot0001* Oracle VM Server HD(1,800,3f800,91dfa48e-aad0-4a31-9ffe-e4356d8a36c6)File(\EFI\REDHAT\SHIM.EFI) Boot0004* Generic Usb Device Vendor(99e275e7-75a0-4b37-a2e6-c5385e6c00cb,) Boot0005* CD/DVD Device Vendor(99e275e7-75a0-4b37-a2e6-c5385e6c00cb,) Boot0006* WDC WD10EZEX-08WN4A0 BIOS(2,0,00)..BO Boot0008* IBA CL Slot 00FE v0113 BIOS(6,0,00)..BO
Sulla base dell'output di questo comando, le voci di avvio EFI devono essere eliminate con il seguente comando:
# efibootmgr -b 1 -B
In questo caso è solo una voce e il suo numero è 1. Successivamente, entrambe le partizioni EFI dovranno essere aggiunte a bootmgr:
# efibootmgr -c -d /dev/sda -p1 -l \\EFI\\redhat\\shimx64.efi -L "Oracle Linux RAID SDA" # efibootmgr -c -d /dev/sdb -p1 -l \\EFI\\redhat\\shimx64.efi -L "Oracle Linux RAID SDB"
7. L'immagine initramfs deve essere ricostruita usando mdadmconf :
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak # dracut -f --mdadmconf
8. Riavvia la macchina per verificare se tutto funziona come dovrebbe e se vengono utilizzati i nuovi dispositivi RAID.