linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] RAID1: c'è (almeno) una cosa che non capisco

Diego Guella diego.guella a sircomtech.com
Lun 18 Apr 2016 08:34:48 UTC
Premessa: il RAID, in generale, può lavorare in due "modalità": RAID 
dell'intero disco, con "supporto" delle partizioni, o RAID delle singole 
partizioni.

Non sono sicuro della modalità migliore in cui lavorare, ma per ora io 
ho visto usata molto più spesso la modalità "RAID delle singole 
partizioni".

Debian, in fase di installazione, quando specifichi un RAID ti crea un 
"RAID delle singole partizioni", anche se ricordo che era un 
procedimento abbastanza complicato (ora è un pò che non lo faccio, 
perchè le ultime installazioni che ho fatto erano spesso VPS o VM).


Il 16/04/2016 15:50, Luca Coianiz ha scritto:
> Allora... ho ricostruito il povero pinguino, acciaccato da una caduta di
> tensione mentre non avevo l'UPS.
> Siccome uso sempre RAID1, almeno uno dei due HD conteneva i dati che mi
> interessava ripristinare... e siccome il box che sto usando in questo 
> momento ha
> due soli canali SATA, ho dovuto iniziare con un HD ed il CD-ROM da cui 
> stavo
> facendo la netinstall, aggiungendo il secondo HD al RAID1 in seguito, 
> dopo aver
> staccato il CD-ROM.
>
> Ora, stiamo parlando di un sistema "legacy" con due dischi da 1 TB 
> Hitachi
> identici, per cui MBR e niente "scherzi da EFI".
> L'installazione sul singolo HD, visto come RAID1 degraded, ha funzionato
> perfettamente.
> Al che ho "aggiunto" l'altro:
> 1) MBR: sda -> file -> sdb via dd
Primo "errorino": così facendo hai duplicato, oltre alla tabella delle 
partizioni, l'ID del disco.
Questo potrebbe causare problemi in alcuni casi.
Meglio ricreare la sola tabella delle partizioni (mi sembra ci siano 
anche comandi appositi di fdisk o gparted per questo).


> 2) mdadm: add di sdb all'md0,
> che ha fatto il suo sync ed ora la situazione è la seguente:
>
> root a home:/usr/local/sbin# mdadm --detail /dev/md0
> /dev/md0:
>          Version : 1.2
>    Creation Time : Thu Apr  7 19:00:19 2016
>       Raid Level : raid1
>       Array Size : 974555136 (929.41 GiB 997.94 GB)
>    Used Dev Size : 974555136 (929.41 GiB 997.94 GB)
>     Raid Devices : 2
>    Total Devices : 2
>      Persistence : Superblock is persistent
>
>    Intent Bitmap : Internal
>
>      Update Time : Sat Apr 16 14:52:59 2016
>            State : clean
>   Active Devices : 2
> Working Devices : 2
>   Failed Devices : 0
>    Spare Devices : 0
>
>             Name : home:0  (local to host home)
>             UUID : 7f4567ba:f11083ad:f56eb5aa:f8d20bd8
>           Events : 54216
>
>      Number   Major   Minor   RaidDevice State
>         0       8        1        0      active sync   /dev/sda1
>         2       8       16        1      active sync   /dev/sdb
Hai aggiunto l'intero disco /dev/sdb, a un raid1 che conteneva la sola 
partizione /dev/sda1.
Direi proprio che questo è un errore da sistemare, il prima possibile: 
potrebbe venire riscritto l'MBR di /dev/sdb con dati che non sono roba 
da MBR.


Ti consiglio di:
- rimuovere /dev/sdb dall'array:
     mdadm /dev/md0 --fail /dev/sdb
     mdadm /dev/md0 --remove /dev/sdb
- azzerare almeno l'MBR di sdb
     dd if=/dev/zero of=/dev/sdb bs=512 count=1
- ri-creare le partizioni su sdb, uguali a quelle di sda, non usando il 
metodo di dd
- aggiungere il solo sdb1 all'array
     mdadm /dev/md0 -a /dev/sdb1


>   Sono "ragionevolmente convinto" che il RAID, inteso come sda1+sdb1 stia
> funzionando normalmente, ho solo il dubbio che stia usando solo sda5 e 
> non sdb5
> come swap.
Ricorda: al momento tu hai il RAID1 di sda1+sdb, non sda1+sdb1.
mdadm ti ha permesso di fare questo perchè sdb è più grande di sda1, 
quindi contiene abbastanza byte per fare il mirror di sda1. Gli ultimi 
byte del device non verranno usati.


Se vuoi fare il raid di swap (dovresti), devi:
-disattivare swap
-creare un'altro array (md1), con le sole sda5 sdb5
-creare spazio di swap su md1 con mkswap
-attivare swap su md1

Questo dopo aver sistemato il mescolotto tra raid di partizioni e raid 
di interi device.


Per completare il discorso, ci sarebbe da testare il boot da sdb, ma per 
quello devi districarti nel grub-setup o grub-install ...
Il GRUB attuale supporta il boot di un device raid1.



Maggiori informazioni sulla lista Lug