Newsgroup: it.comp.os.linux.iniziare
Titolo: Correggere superblock raid1 software che ha la ROOT sopra?

Ok, ho questo raid1 software fatto con mdadm, persistent superblock 
versione 0.90: /dev/md0. Era stato creato con tre device, uno dei quali è 
stato marcato come fallato, rimosso, superblock-zerizzato e quindi usato 
per altro: nel raid restano due device: sda2 e sdd2. Ovviamente il raid1 
si presenta "clean, degraded" poiché nei superblock dei due device 
rimasti sta ancora scritto che il raid dovrebbe contare su 3 device.
Prima fondamentale domanda: ha senso che mi preoccupi di mettere le cose 
a posto, o me ne posso fregare altamente (cosa che mi piacerebbe tanto)?
Se è meglio metter le cose a posto, una soluzione sarebbe sicuramente: 
stoppare il raid; zerizzare i superblock dei due device rimasti; ricreare 
il raid, manualmente, coi soli due device (il che ricostruirebbe i 
superblock ma non danneggerebbe il filesystem che c'è sopra il raid); 
correggere in /etc/mdadm/mdadm.conf l'UUID del raid, mettendo quello 
nuovo, per futuri assemblaggi automatici.
Non posso fare direttamente così, però, perché sul raid1 c'è la /.   :-/
Il che ci porta alla domanda numero due: c'è un modo semplice di editare 
i superblock di un raid1 attivo on the fly? No, eh? ;)
In subordine, per evitare di agire da un sistema live, se è necessario 
avrei pensato di far così.
1) Marco come failed e poi rimuovo dal raid uno dei due device, sdd2:
# mdadm /dev/md0 --fail /dev/sdd2 ; mdadm /dev/md0 --remove /dev/sdd2
(se metto insieme le due cose nello stesso comando, esegue solo la prima 
e dà errore. Boh...).
2) Zerizzo il superblock di sdd2, e costruisco un nuovo raid1 così:
# mdadm --zero-superblock /dev/sdd2
# mdadm --create /dev/md5 -l1 -n2 /dev/sdd2 missing
3) Monto il nuovo raid1 su /mnt, e modifico /mnt/etc/mdadm/mdadm.conf, 
rimuovendo ogni riferimento a /dev/md0 e inserendo il riferimento al 
nuovo raid. Inoltre modifico /mnt/etc/fstab perché il nuovo /dev/md5 sia 
montato su /.
4) Modifico /etc/fstab perché /dev/md5 sia montato su /. Modifico 
/etc/mdadm/mdadm.conf, rimuovendo ogni riferimento a /dev/md0.
5) Riavvio. Non sono sicuro se il sistema ricostruirà solo /dev/md5 o 
anche /dev/md0. Su /dev/md5 e su /dev/md0 ci saranno due filesystem
collo stesso UUID, UUID che in grub.cfg identifica la root. Niente di 
che, col raid1 capita sempre... solo che qui appartengono a due raid1 
*diversi*. BTW: da dove verrà letto /etc/fstab? Però i due /etc/fstab 
sono uguali, per cui...
6) Se necessario stoppo /dev/md0; zerizzo il superblock di /dev/sda2; 
aggiungo /dev/sda2 a /dev/md5 (il che ricostruisce il superblock di sda2, 
e sincronizza rispetto a sdd2):
[ # mdadm -S /dev/md0 ]
# mdadm --zero-superblock /dev/sda2
# mdadm /dev/md5 --add /dev/sda2
Se qualcuno è arrivato sin qui, lo ringrazio comunque. :)
Allora, devo impelagarmi in questa roba, o vivo bene col clean degraded e 
buona notte al secchio? E se sì, 'sta trafila pare corretta?
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
____________________________________________________________________
Non sprecare i cicli idle della tua CPU, né quelli della tua GPU.
 
http://boinc.berkeley.edu
 
 
http://www.worldcommunitygrid.org/index.jsp
 
http://boincsimap.org/
 
http://www.gpugrid.net/
 

 buona notte al secchio? E se sì, 'sta trafila pare corretta?
Forse mi sfugge il significato di persistent super block ...
ma non basta usare mdadm per rimuovere  disco dal raid, e poi aggiornare i 
due file di configurazione in etc, quello che descrive il raid e quello di 
configurazione di mdadm?

 quello di configurazione di mdadm?
Uhm... *Due* file?
Qui io ho solo /etc/mdadm/mdadm.conf, che contiene fra le altre cose un 
riferimento al fatto che tale raid1 si basa su 3 device. Se lì cambio il 
3, o il file viene ignorato (come capita di solito, e il raid appunto 
vien su clean degraded in accordo a quanto scritto sui superblock), o, se 
si forza il suo parsing, la costruzione del raid AFAIR può fallire o 
meno, a seconda di quale numero sia il più alto, quello nei superblock o 
quello in mdadm.conf.


 Qui io ho solo /etc/mdadm/mdadm.conf, che contiene fra le altre cose un
]zac[
Un po' più sotto del testo nel link che hai postato (grazie):
]zac[
 The standard device naming for RAID arrays is /dev/mdN where N is an 
integer starting at 0. So, your first RAID array should be /dev/md0, your 
second /dev/md1, and so on.
 
 The raidtools package requires an entry in /etc/raidtab for every array. 
The format of an entry is as follows:
 
 
# Comments start with a #
raiddev <array device name eg. /dev/md0>
        raid-level <linear|0|1|4|5|6>
]zac[
Da quel ricordo bastava semplicemente rimuove il disco dal raid che il tools 
apposito (mdadm/raidtools), aggiornare raidtab.

 tools apposito (mdadm/raidtools), aggiornare raidtab.
Non c'è nessun raidtab.


 degraded e buona notte al secchio?
Buona l'ultima :-)
Però la tua procedura funziona.
Ma non hai la macchina fisicamente disponibile?
-- 
ValeRyo
XT600 "Katoki Pajama" - 
http://www.slimmit.com/go.asp?7Y9
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 Ma non hai la macchina fisicamente disponibile?
Per far tutto da cdlive, dici? Sì, ma ero curioso di trovare un'altra 
soluzione. :-p


 soluzione. :-p
E' che potresti fare direttamente
- tolgo /dev/sdd2 da md0
- create md5 /dev/sdd2 missing
- in md5 aggiusti mdadm.conf e fstab
- reboot, prima che grub avvii fai edit e metti root=/dev/md5
- --stop /dev/md0 --add /dev/md5 /dev/sda2
Non è necessario azzerare i superblock.
Però non lo farei mai senza avere davanti la macchina, o almeno
poter raggiungere la console da remoto.
Potresti anche indicare l'array da riga di comando del kernel,
ma non l'ho mai fatto. Dovrebbe essere una cosa del tipo
md=0,/dev/sdd2
in modo che il kernel carichi come md0 quello che avevi
creato come md5.


 remoto.
Ah, OK.
Grassie, ma siccome fra un due mesi ho idea di spostare su un SSD un po' 
di cose su un SSD, fra cui la /, mi sa che per ora lascio stare. :)
Grazie ancora.


 Raidtools,  mkraid... Berta che filava... ;)
]zac[
Ti ho riportato le informazioni che ho e che ho trovato, se su sei tanto 
sicuro e certo di come funziona il tuo raid, non dovresti avere problemi a 
fare da solo quello che chiedi, visto che aggiungere e togliere dischi dai 
raid č un evento quantomeno probabile.
Altrimenti, ma mi sembra strano, il persistent superblock č ha un problema 
grande come una casa, cosa che fa preferire berta che fila ( :P ).

 a fare da solo quello che chiedi
Addirittura... da solo. :(
Tremo tutto.
