Un ringraziamento al mio amico Frank per il tutorial scritto, a breve posteremo il video realizzato da me con i passaggi a video!
Visto che è una procedura che faccio spesso, volevo condividerla con voi eseguiamo il boot da cd, e proseguiamo con l’installazione fino a quando l’installer chiede di formattare i dischi, selezioniamo “manuale” Decidiamo le dimensioni della partizione di root e dello swap, orientativamente 20GB in root sono sufficienti per un’installazione normale, mentre per lo swap come dimensione impostiamo il doppio della ram.
create quindi le partizioni, settiamo il tipo della partizioni a linux raid autodetect , per le partizioni di root, impostiamo anche il flag di boot (di entrambi i dischi).
avremo quindi una cosa di questo tipo…
$ fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c67c1
Device Boot Start End Blocks Id System /dev/sda1 1 365 2931831 fd
Linux raid autodetect /dev/sda2 366 2797 19535040 fd
Linux raid autodetect Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00053d83
Device Boot Start End Blocks Id System /dev/sdb1 1 365 2931831 fd
Linux raid autodetect /dev/sdb2 366 2797 19535040 fd
Linux raid autodetect la 1° partizione è usata come swap (3GB) in alcuni casi ho notato che è meglio non metterla sotto raid la 2° partizione serve per il SO (20GB)
P.S Ricordiamo che se utilizziamo i volumi LVM dobbiamo creare un volume /boot standalone (500MB circa) perche grub non gestisce il boot su volumi LVM
proseguiamo con il programma di partizionamento guidato, creando due dischi RAID in modalita RAID1 seguendo lo schema..
md0 == sda1, sdb1 md1 == sda2, sdb2
a questo punto si completa l’installazione normalmente, ed abbiamo quasi finito, dobbiamo solo ricordarci che il programma che esegue l’installazione ha caricato il grub solo nel primo disco di boot, quindi dobbiamo installarlo anche sul secondo.
### Procedura con Grub v1 ### # $ grub grub> device (hd0) /dev/sda grub> root (hd0,1) grub> setup (hd0) grub> device (hd0) /dev/sdb grub> root (hd0,1) grub> setup (hd0) grub> quit
### Procedura con Grub v2 ### $ grub-install /dev/sda $ grub-install /dev/sdb
Stato RAID: è sempre utile vedere come è fatto $ mdadm –query –detail /dev/md1 /dev/md1: Version : 0.90 Creation Time : Sat Jun 6 00:15:19 2009 Raid Level : raid1 Array Size : 2931712 (2.80 GiB 3.00 GB) Used Dev Size : 2931712 (2.80 GiB 3.00 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Tue Mar 13 22:17:08 2012 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 UUID : ad249657:82bbcbcd:44c8d3cc:c7bddde2 Events : 0.130 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda2 1 8 17 1 active sync /dev/sdb2
Controlliamo lo stato del Raid: $ cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sda4[0] sdb4[1] 878899968 blocks [2/2] [UU] md2 : active raid1 sda3[0] sdb3[1] 75392960 blocks [2/2] [UU] md1 : active raid1 sda2[0] sdb2[1] 19534976 blocks [2/2] [UU] md0 : active raid1 sda1[0] sdb1[1] 2931712 blocks [2/2] [UU] unused devices: <none>
Sostituzione disco guasto: qualora un disco si rompa, questo deve essere sostituito il prima possibile, magari sfruttando l’hot-swap hardware (come sata). In ogni caso la prima operazione da fare è rimuovere logicamente il disco, togliendolo dal raid con i comadi: Prima di tutto idetifichiamo quale Disco è rotto dai log o dalla query che abbiamo fatto prima:
$ dmesg raid1: Disk failure on sda2, disabling device. raid1: Operation continuing on 1 devices.
Rimuoviamo il disco dal Raid: $ /sbin/mdadm –assemble –scan $ mdadm /dev/md0 –fail /dev/sda2
$ mdadm –manage /dev/md0 –fail /dev/sda2 $ mdadm /dev/md0 –remove /dev/sda2
Identifichiamo il Disco dal Seriale: $ apt-get install smartmontools $ smartctl -i /dev/sda | grep Serial $ smartctl -i /dev/sdb | grep Serial
Spegniamo la macchina e a questo punto si sostituisce fisicamente il disco e si ricreano le partizioni, facendo attenzione alle dimensioni. è anche possibile copiare la tabella delle partizioni da un’ altro disco: $ sfdisk -d /dev/sda | sfdisk –force /dev/sdb
se invece vogliamo farlo con DD: $ dd if=/dev/sda of=/tmp/part.bak bs=512 count=1 (Backup) $ #dd if=/tmp/part.bak of=/dev/sdb bs=1 count=64 skip=446 seek=446 (Restore)
Se la tabella delle partizioni non è la classica msdos ma GPT (GUID Partition Table) possiamo copiarla cosi $ parted /dev/sda
GNU Parted 1.9.0 Using /dev/sda Welcome to GNU Parted! Type ‘help’ to view a list of commands. (parted) p Error: /dev/sda: unrecognised disk label (parted) mklabel gpt (parted) mkpart primary ext2 0 10M (parted) mkpart primary ext4 10M 100% (parted) set 1 bios_grub on (parted) p Model: ATA QEMU HARDDISK (scsi) Disk /dev/sda: 1074MB Sector size (logical/physical): 512B/512B Partition Table: gpt $ sgdisk -R /dev/sdb /dev/sda (Questo comando fa la stessa cosa si sfdisk ma su pt gpt)
attenzione: è possibile che richieda un reboot per vedere correttamente le partizioni. infine si aggiungono le partizioni nei volumi raid: $ mdadm –add /dev/md1 /dev/sda2 $ mdadm –manage /dev/md1 –add /dev/sda2
Creazione nuovi volumi RAID: con fdisk si aggiungono le nuove partizioni poi si crea un nuovo raid: $ mdadm –create –verbose /dev/md3 –level=1 –raid-devices=2 /dev/sda3 /dev/sdb3
Se abbiamo un disco che faceva parte di un raid e vogliamo rimuovere la configurazione rimasta sul disco, basta eseguire i seguenti comandi: $ mdadm –zero-superblock /dev/sdb1 $ mdadm –zero-superblock /dev/sdb2 $ mdadm –zero-superblock /dev/sdb3
un’altra simpatica utility che potrebbe tornare utile è hddtemp, questa software può tenere sotto controllo la temperatura dei dischi ed avvisarvi in caso di valori molto alti, e utile in ambienti dove il RAID è funzione 24/7.
$ apt-get install hddtemp $ hddtemp /dev/sda dev/sda: SAMSUNG HD300LD: 38 °C $ hddtemp /dev/sdb dev/sdb: SAMSUNG HD300LD: 44 °C