Proxmox software raid
Da MontelLUG WIKI.
Procedura di impostazione del Software RAID 1 su PROXMOX VE 3.2
La recentissima versione 3.2 di Proxmox VE (10 marzo 2014) presenta delle novità che non consentono di adottare le procedure indicate in questa pagina WIKI (e rispettivi collegamenti) di proxmox /wiki/Software_RAID https://pve.proxmox.com/wiki/Software_RAID tra le altre cose anche per l'adozione di una tabella delle partizioni GPT, in precedenza non presente.
Vi sono anche altre modifiche rispetto alle precedenti versioni, ma non è lo scopo di questo documento elencarle, pertanto si rinvia alla documentazione ufficiale sul sito: http://www.proxmox.com/ e https://pve.proxmox.com/wiki/Main_Page
Specifico subito che la seguente guida non è farina del mio sacco (lo si capisce dai termini che uso), ma è stata da me testata ed è funzionante. Riporto quindi di seguito i passaggi fondamentali, tratti da questo sito http://habrahabr.ru/post/218757/ (l'unico finora trovato) che tuttavia è scritto in cirillico.
Modifica dei repositori
Aprire con un editor di testo (a me piace nano) questo repository
# nano /etc/apt/sources.list.d/pve-enterprise.list
e commentare l'unica riga per rimuoverlo dagli aggiornamenti (salvo non abbiate sottoscritto il contratto e aggiungere questo repository
echo "deb http://download.proxmox.com/debian wheezy pve pve-no-subscription" >> /etc/apt/sources.list.d/proxmox.list
aggiornare ed installare gli strumenti necessari
# aptitude update && aptitude install mdadm initramfs-tools screen
(sinceramente non ho capito il motivo per cui installare screen)
Impostazione preliminare
# modprobe raid1
Copia della tabella delle partizioni da sda ad sdb: nelle guide in uso fino alla versione 3.1 si faceva riferimento a sfdisk, che tuttavia non gestisce GPT
# sgdisk -R /dev/sdb /dev/sda The operation has completed successfully. # sgdisk -G /dev/sdb The operation has completed successfully. # sgdisk --randomize-guids --move-second-header /dev/sdb The operation has completed successfully.
Controllare che l'esito sia corrispondente a questo e che le tabelle di sda e sdb siano uguali:
# parted -s /dev/sda print Model: ATA WDC WD5000AAKS-0 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB primary bios_grub 2 2097kB 537MB 535MB ext3 primary boot 3 537MB 500GB 500GB primary lvm
e questo:
# parted -s /dev/sdb print Model: ATA ST3500320NS (scsi) Disk /dev/sdb: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB primary bios_grub 2 2097kB 537MB 535MB primary boot 3 537MB 500GB 500GB primary lvm
Creazione degli array ed impostazione del device di boot
Modifica delle partizioni del secondo disco per la successiva aggiunta al RAID 1
# parted -s /dev/sdb set 2 "raid" on # parted -s /dev/sdb set 3 "raid" on
Controllare l'esito:
# parted -s /dev/sdb print Model: ATA ST3500320NS (scsi) Disk /dev/sdb: 500GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB primary bios_grub 2 2097kB 537MB 535MB primary raid 3 537MB 500GB 500GB primary raid
Predisporre le partizioni per l'inserimento del sistema RAID:
# mdadm --zero-superblock /dev/sdb2 mdadm: Unrecognised md component device - /dev/sdb2 # mdadm --zero-superblock /dev/sdb3 mdadm: Unrecognised md component device - /dev/sdb3
Creazione delle partizioni in RAID
# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started. # mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md2 started.
Verifica l'esito delle operazioni:
# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 sdb3[1] 487731008 blocks super 1.2 [2/1] [_U] md1 : active raid1 sdb2[1] 521920 blocks super 1.2 [2/1] [_U]
Modifica dei file di configurazione:
# cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig # mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Formattazione del nuovo dispositivo:
# mkfs.ext3 /dev/md1 mke2fs 1.42.5 (29-Jul-2012) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 130560 inodes, 521920 blocks 26096 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=67633152 64 block groups 8192 blocks per group, 8192 fragments per group 2040 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
Copia dei file presenti in /boot nel nuovo dispositivo:
# mkdir /mnt/md1 # mount /dev/md1 /mnt/md1 # cp -ax /boot/* /mnt/md1
Modifica della tabella del file system e impostazione della nuova partizione di boot (in RAID 1):
# nano /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> /dev/pve/root / ext3 errors=remount-ro 0 1 /dev/pve/data /var/lib/vz ext3 defaults 0 1 /dev/pve/swap none swap sw 0 0 proc /proc proc defaults 0 0 # commentare la seguente riga # UUID=d097457f-cac5-4c7f-9caa-5939785c6f36 /boot ext3 defaults 0 1 # aggiungere la seguente /dev/md1 /boot ext3 defaults 0 1
Incrociare le dita, fare una preghierina e riavviare:
# reboot
Modifica di GRUB, moduli e gestore init
# echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub # echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub # echo 'GRUB_TERMINAL=console' >> /etc/default/grub # echo raid1 >> /etc/modules # echo raid1 >> /etc/initramfs-tools/modules
(oppure aprire i file di configurazione con nano e decommentare le corrispondenti righe)
Aggiornamento di GRUB (qui io ho ottenuto degli errori generici di gestione di LVM, ma non hanno avuto inflenza):
# grub-install /dev/sda --recheck Installation finished. No error reported. # grub-install /dev/sdb --recheck Installation finished. No error reported. # update-grub Generating grub.cfg ... Found linux image: /boot/vmlinuz-2.6.32-27-pve Found initrd image: /boot/initrd.img-2.6.32-27-pve Found memtest86+ image: /memtest86+.bin Found memtest86+ multiboot image: /memtest86+_multiboot.bin done # update-initramfs -u update-initramfs: Generating /boot/initrd.img-2.6.32-27-pve
Inserimento delle partizioni del primo disco /dev/sda nell'array RAID
# parted -s /dev/sda set 2 "raid" on # mdadm --add /dev/md1 /dev/sda2 mdadm: added /dev/sda2
Controllare l'esito:
# cat /proc/mdstat Personalities : [raid1] md2 : active (auto-read-only) raid1 sdb3[1] 487731008 blocks super 1.2 [2/1] [_U] md1 : active raid1 sda2[2] sdb2[1] 521920 blocks super 1.2 [2/2] [UU] unused devices: <none>
Inserimento della partizione /dev/sda3 nell'array RAID; qui c'è parecchio tempo da aspettare se i dischi sono capienti: preparatevi per andare a bervi un buon caffè, per fare una passeggiata o per qualsiasi altra cosa abbiate piacere di fare; a me ci sono volute quasi 2 ore.
# screen bash # pvcreate /dev/md2 Writing physical volume data to disk "/dev/md2" Physical volume "/dev/md2" successfully created # vgextend pve /dev/md2 Volume group "pve" successfully extended # pvmove /dev/sda3 /dev/md2 /dev/sda3: Moved: 2.0% ... /dev/sda3: Moved: 100.0% # vgreduce pve /dev/sda3 Removed "/dev/sda3" from volume group "pve"
Inserimento anche dell'ultima partizione nel RAID.
# parted -s /dev/sda set 3 "raid" on # mdadm --add /dev/md2 /dev/sda3 mdadm: added /dev/sda3 # cat /proc/mdstat Personalities : [raid1] md2 : active raid1 sda3[2] sdb3[1] 487731008 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.3% (1923072/487731008) finish=155.4min speed=52070K/sec md1 : active raid1 sda2[2] sdb2[1] 521920 blocks super 1.2 [2/2] [UU] unused devices: <none>
FATTO!
Come è facile capire la partizione /dev/sda1 e /dev/sdb1 non sono in RAID, ma credo non sia rilevante. Seguendo la stessa procedura adottata per l'ultima partizione è possibile inserire anche questa in RAID.