Discussione:
mdadm rimuovere da un raid un disco che non c'è più
(troppo vecchio per rispondere)
bc
2012-09-26 10:39:54 UTC
Permalink
Mi scuso, non ho capacità sysadmin. Ho postato qua la domanda perchè
temo che su iniziare non sapessero rispondermi.

Ho un raid1 software con funzioni di storage (Su c'è un unica partizione
ext4 con dei dati).

Per i dati non c'è problema, era un raid di backup, e comunque risulta
tranquillamente leggibile, quindi ne ho fatto un ulteriore copia e poi
mi sono messo a provare a ricostruirlo.

Il mio problema è che volevo imparare come sostituirgli il disco e
ricostruirlo (a rifarlo nuovo dopo un zero-superblok e un dd ).

mdadm -D /dev/md127

mi riporta che è fatto di 2 dischi di cui uno è su /dev/sdb e l'altro
non è ripostato, ma non esiste più. Ho letto su varie guide che bisogna
togliere con un mdadm --fault /dev/sd e poi mdadm --remove /dev/sd[x]
il disco/partizione guasta.

Si, ma se il PC non ha più il disco come faccio a riferirmi al device
per toglierlo? un nuovo /dev/sdc c'è, ma è il disco nuovo appena montato
e non è ancora menbro dell'array. Quello vecchio non risulta visibile.

Ho provato ad aggiungerlo senza prima togliere l'altro.
Prima mi sono ricopiato la tabella delle partizioni

sfdisk -d /dev/sdb | sfdisk /dev/sdc

e poi ho dato un mdadm --manage /dev/sd127 --add /dev/sdc
(ho provato anche re-add ma mi ha risposto che non poteva farlo)

ORA STA LAVORANDO, però vedo che non sta facendo quello che pensavo. Lo
lascio finire, ma mdadm -D /dev/md127 mi dice che lo ha aggiunto in
SPARE e ora lo sta sincronizzando.

Lo lascio finire sperando che quando finisce lo promuova Membro del raid
ATTIVO, ma non credo stia facendo quello che vorrei.
Jack
2012-09-26 13:49:35 UTC
Permalink
Post by bc
Si, ma se il PC non ha più il disco come faccio a riferirmi al device
per toglierlo? un nuovo /dev/sdc c'è, ma è il disco nuovo appena montato
e non è ancora menbro dell'array. Quello vecchio non risulta visibile.
cat /proc/mdstat

ti dovrebbe dare lo stato del raid, e anche che dev sono in raid.

per tutto il resto c'e' google :)

Ciao Jack
--
Yoda of Borg am I! Assimilated shall you be! Futile resistance is, hmm?
Alessandro
2012-09-26 13:56:53 UTC
Permalink
Subject: mdadm rimuovere da un raid un disco che non c'è più
Post by bc
Mi scuso, non ho capacità sysadmin. Ho postato qua la domanda perchè
Vabbeh, non è che un "sysadmin" è un jedi-cintura-nera. Impariamo tutti
da zero, e ognuno arriva dove può
Post by bc
Il mio problema è che volevo imparare come sostituirgli il disco e
ricostruirlo (a rifarlo nuovo dopo un zero-superblok e un dd ).
Niente di più semplice che usare un ambiente virtuale, ma volendo puoi
fare le prove in campo
Post by bc
mdadm -D /dev/md127
mi riporta che è fatto di 2 dischi di cui uno è su /dev/sdb e l'altro
non è ripostato, ma non esiste più. Ho letto su varie guide che bisogna
togliere con un mdadm --fault /dev/sd e poi mdadm --remove /dev/sd[x]
il disco/partizione guasta.
Infatti prima va marcato cmoe "fault" e poi rimosso. Tu come hai agito?

postaci il risultato di:
cat /proc/mdstat

Il disco vecchio non è nemmeno visibile con `cat /proc/partitions` ?
Post by bc
sfdisk -d /dev/sdb | sfdisk /dev/sdc
e poi ho dato un mdadm --manage /dev/sd127 --add /dev/sdc
perfetto
Post by bc
ORA STA LAVORANDO, però vedo che non sta facendo quello che pensavo. Lo
lascio finire, ma mdadm -D /dev/md127 mi dice che lo ha aggiunto in
SPARE e ora lo sta sincronizzando.
No, lo spare non mi risulta che venga sincronizzato, altrimenti non
sarebbe "spare". Rimane lì fermo, viene sincronizzato in caso di
problemi mentre il disco difettoso viene messo in fault

Ale
Andrea B.
2012-09-26 14:20:00 UTC
Permalink
Post by Alessandro
Post by bc
ORA STA LAVORANDO, però vedo che non sta facendo quello che pensavo. Lo
lascio finire, ma mdadm -D /dev/md127 mi dice che lo ha aggiunto in
SPARE e ora lo sta sincronizzando.
No, lo spare non mi risulta che venga sincronizzato, altrimenti non
sarebbe "spare". Rimane lì fermo, viene sincronizzato in caso di
problemi mentre il disco difettoso viene messo in fault
Si ma se l'array è degraded (e lo è visto che l'amico qui ha rancato via
uno dei dischi) avendo aggiunto uno spare questo andrebbe
automaticamente a rimpiazzare il disco mancante, L'array dovrebbe essere
in rebuilding...
--
In God we trust. All others must bring data
W. E. Deming
Alessandro
2012-09-26 15:28:54 UTC
Permalink
Post by Andrea B.
Si ma se l'array è degraded (e lo è visto che l'amico qui ha rancato via
uno dei dischi) avendo aggiunto uno spare questo andrebbe
automaticamente a rimpiazzare il disco mancante, L'array dovrebbe essere
in rebuilding...
Stiamo dicendo la stessa cosa: infatti, e credo sia una definizione,
l'array è "degraded" quando almeno un disco è in fault
bc
2012-09-26 16:10:21 UTC
Permalink
Il 26/09/2012 16:20, Andrea B. ha scritto:

rispondo in cima alla thread.

NON AVEVO FIDUCIA, ma a fatto bene il suo lavoro.
Ora ho di nuovo il mio array in raid1 normale in versione "BASE"
2 dischi senza il disco di SPARE

Non avevo fiducia perché nelle 4 ore abbondanti che ha impiegato per il
rebuil mi ha sempre scritto SPARE di fianco al disco che si stava
sincronizzando. Alla fine però il disco si trasforma in disco ATTIVO
dell'array.

Ricostruisco dall'history le operazioni che ho fatto (che credo
coincidano in quello che ho detto nel primo post) e appena ho un minuto
le posto a chiudere il thread
Post by Andrea B.
Post by Alessandro
Post by bc
ORA STA LAVORANDO, però vedo che non sta facendo quello che pensavo. Lo
lascio finire, ma mdadm -D /dev/md127 mi dice che lo ha aggiunto in
SPARE e ora lo sta sincronizzando.
No, lo spare non mi risulta che venga sincronizzato, altrimenti non
sarebbe "spare". Rimane lì fermo, viene sincronizzato in caso di
problemi mentre il disco difettoso viene messo in fault
Si ma se l'array è degraded (e lo è visto che l'amico qui ha rancato via
uno dei dischi) avendo aggiunto uno spare questo andrebbe
automaticamente a rimpiazzare il disco mancante, L'array dovrebbe essere
in rebuilding...
bc
2012-09-26 15:09:43 UTC
Permalink
Post by Alessandro
Il disco vecchio non è nemmeno visibile con `cat /proc/partitions` ?
no, col disco vecchio collegato il pc non si accende.
Post by Alessandro
No, lo spare non mi risulta che venga sincronizzato, altrimenti non
sarebbe "spare". Rimane lì fermo, viene sincronizzato in caso di
problemi mentre il disco difettoso viene messo in fault
Sincronizzazione in corso .... Al momento è nominato come SPARE. Che io
sappia, lo spare dovrebbe venire sincronizzato in caso di fault di uno
dei dischi e forse alla fine promosso a disco dell'array normale (ma
l'ultima è la mia speranza)

Comunque sono al 97%... Fra poco lo scopro
Alessandro
2012-09-26 15:34:24 UTC
Permalink
-------- Original Message --------
Post by bc
Post by Alessandro
Il disco vecchio non è nemmeno visibile con `cat /proc/partitions` ?
no, col disco vecchio collegato il pc non si accende.
Ci capisco sempre meno.. quindi il disco difettoso è sconnesso? Beh,
allora c'e' poco da marcare come "fault" o da rimuovere.
Post by bc
Sincronizzazione in corso .... Al momento è nominato come SPARE. Che io
sappia, lo spare dovrebbe venire sincronizzato in caso di fault di uno
dei dischi e forse alla fine promosso a disco dell'array normale (ma
l'ultima è la mia speranza)
Comunque sono al 97%... Fra poco lo scopro
Ok, doveva smettere di essere "spare".

Su /proc/mdstat il vecchio disco (quello rimosso) compare ancora? Questa
potrebbe essere una noia. Sarebbe comunque strano; per rimuovere il
disco difettato avete rebootato, giusto? (per dire che non si accende..)

Fammi sapere come va, sono interessato, anche se non ho capito la
dinamica della rimozione del vecchio disco

Ale
bc
2012-09-26 18:30:49 UTC
Permalink
Post by Alessandro
Su /proc/mdstat il vecchio disco (quello rimosso) compare ancora? Questa
potrebbe essere una noia. Sarebbe comunque strano; per rimuovere il
disco difettato avete rebootato, giusto? (per dire che non si accende..)
su /proc/mdstat (non so) mi sembra di no, ma non sono sicuro. (ora non
ho più la condizione in cui posso riprovare)

Sicuramente il riferimento al disco collegato compariva digitando
mdadm -D /dev/md127
Dove mostrava il disco presente e il secondo disco come degrade
pero indicato come
device, major , minor
0 0 0 degraded

Poi quando ho fatto mdadm --manage /dev/md127 --add /dev/sdc
finchè non ha finito la sincronizzazione il mio array (che
periodicamente ricontrollavo con mdadm -D /dev/md127) era composto di 3
dischi di cui 2 indicati come collegati collegati
uno rotto degraded
uno buono
uno in fase di sincronizzazione indicato come SPARE

Comunque penso sia una questione interessante che merita un ulteriore
indagine. (in sostanza penso basti fare la parte di --add dopo aver
copiato le partizioni ma non mi sento sicuro, voglio riprovare)

Quando ho iniziato ad usare il raid ho fatto solo la prova di
dividendere i dischi, e ho verificato che su entrambe fossero presenti e
leggibili i dati, il tutto anche su hardware differente. NON PERDERE I
DATI ERA QUELLO CHE MI INTERESSAVA. Ricostruire il raid è una comodità
in più, ma per l'uso che ne faccio non mi è indispensabile. Comunque
anche se non avevo provato, pensavo che avrei dovuto googleggiare di
meno per risolvere.

Ora devo finire una lavoro. Appena ho un pò di tempo MACCHINA da perdere
faccio una prova di sostituzione di un disco simulando il guasto che ho
avuto. E posto su questo thread la sequenza corretta per risolvere.

Al primo tentativo ho commesso degli errori, sono convinto solo al 90%
della sequenza che mi ha portato a risolvere.
ValeRyo Saeba
2012-09-26 20:41:54 UTC
Permalink
Post by bc
Ora devo finire una lavoro. Appena ho un pò di tempo MACCHINA da
perdere faccio una prova di sostituzione di un disco simulando il
guasto che ho avuto. E posto su questo thread la sequenza corretta
per risolvere.
Al primo tentativo ho commesso degli errori, sono convinto solo al 90%
della sequenza che mi ha portato a risolvere.
Non è che ci sia molto su cui discutere, mdadm è abbastanza stabile
e fortunatamente banale.

Se hai un array in funzione e vuoi togliere un disco,

mdadm --fail /dev/mdX /dev/sdX (se il disco è in funzione, altrimenti
il fail va da sé)

e poi per toglierlo dall'array
mdadm --remove /dev/mdX /dev/sdX

Se riavvii senza il disco rotto quanto sopra è inutile.

Per aggiungere un nuovo disco:
mdadm --add /dev/mdX /dev/sdX

il disco viene aggiunto come spare e poi dopo la sincronia diventa
parte dell'array.

In realtà 'disco' è errato, probabilmente userai partizioni.
--
ValeRyo
bc
2012-09-27 09:37:07 UTC
Permalink
Post by ValeRyo Saeba
il disco viene aggiunto come spare e poi dopo la sincronia diventa
parte dell'array.
Ieri lo speravo e alla fine l'ho verificato... ma nelle ricerche che ho
fatto su google questa parte non l'ho mai letta (ammetto che potrei
essere io, scemo a non averla vista). Per me tu sei la prima fonte che
lo ha detto.

Durante la sincronizzazione ho avuto più volte la tentazione di
interromperlo pensando che stesse facendo la cosa errata. Mi ha
trattenuto il fatto che comunque lo vedessi avanzare e che lo SPARE non
dovrebbe essere sincronizzato se non in caso di fallimento di uno dei
dischi... Tra una ricerca e l'altra la procedura ha raggiunto il 20% e
allora ho mi sono detto "FAN'$#@^, LASCIALO FINIRE"

Ad ogni modo ho liberato 3 hitachi da 320GB (più piccoli non ne ho) per
simulare la condizione in cui mi sono trovato e riprovare. Dopo averlo
fatto una prima volta, in effetti dovrebbe essere banale. Sono stati i
dubbi sul risultato a rendere la procedura difficile!

ValeRyo Saeba
2012-09-26 12:56:56 UTC
Permalink
Post by bc
ORA STA LAVORANDO, però vedo che non sta facendo quello che pensavo.
Lo lascio finire, ma mdadm -D /dev/md127 mi dice che lo ha aggiunto in
SPARE e ora lo sta sincronizzando.
Lo lascio finire sperando che quando finisce lo promuova Membro del
raid ATTIVO, ma non credo stia facendo quello che vorrei.
E' così che funziona, la ricostruzione avviene sullo spare.
Fai cat /proc/mdstat .
--
ValeRyo
Loading...