2010-03-09 09:55:18 +0000 2010-03-09 09:55:18 +0000
31
31

Come far funzionare di nuovo un dispositivo RAID inattivo?

Dopo l'avvio, il mio dispositivo RAID1 (/dev/md_d0 *) a volte va in qualche strano stato e non posso montarlo.

* Originariamente ho creato /dev/md0 ma in qualche modo si è trasformato in /dev/md_d0.

# mount /opt
mount: wrong fs type, bad option, bad superblock on /dev/md_d0,
       missing codepage or helper program, or other error
       (could this be the IDE device where you in fact use
       ide-scsi so that sr0 or sda or so is needed?)
       In some cases useful info is found in syslog - try
       dmesg | tail or so

Il dispositivo RAID sembra essere inattivo in qualche modo:

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] 
                [raid4] [raid10] 
md_d0 : inactive sda4[0](S)
      241095104 blocks

# mdadm --detail /dev/md_d0
mdadm: md device /dev/md_d0 does not appear to be active.

La domanda è: come rendere il dispositivo nuovamente attivo (usando mdmadm, presumo)?

(Altre volte va bene (attivo) dopo il boot, e posso montarlo manualmente senza problemi. Ma ancora non monta automaticamente anche se l'ho in /etc/fstab:

/dev/md_d0 /opt ext4 defaults 0 0

Quindi una domanda bonus: **cosa dovrei fare per far montare automaticamente il dispositivo RAID a /opt all'avvio? )

Questa è una workstation Ubuntu 9.10. Informazioni di base sulla mia configurazione RAID in questa domanda .

Edit : Il mio /etc/mdadm/mdadm.conf si presenta così. Non ho mai toccato questo file, almeno a mano.

# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR <my mail address>

# definitions of existing MD arrays

# This file was auto-generated on Wed, 27 Jan 2010 17:14:36 +0200

In /proc/partitions l'ultima voce è md_d0 almeno ora, dopo il riavvio, quando il dispositivo è di nuovo attivo. (Non sono sicuro se sarebbe lo stesso quando è inattivo.)

Risoluzione : come Jimmy Hedman ha suggerito , ho preso l'uscita di mdadm --examine --scan:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=de8fbd92[...]

e l'ho aggiunto a /etc/mdadm/mdadm.conf, che sembra aver risolto il problema principale. Dopo aver cambiato /etc/fstab per usare di nuovo /dev/md0 (invece di /dev/md_d0), anche il dispositivo RAID viene montato automaticamente!

Risposte (9)

25
25
25
2010-03-10 12:34:08 +0000

Per la tua domanda bonus:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf
11
11
11
2011-08-01 02:41:23 +0000

Ho scoperto che devo aggiungere l'array manualmente in /etc/mdadm/mdadm.conf per far sì che Linux lo monti al riavvio. Altrimenti ottengo esattamente quello che hai qui - md_d1-dispositivi che sono inattivi ecc.

Il conf-file dovrebbe apparire come sotto - cioè una linea ARRAY per ogni md-device. Nel mio caso i nuovi array mancavano in questo file, ma se li avete elencati questo probabilmente non è una soluzione al vostro problema.

# definitions of existing MD arrays
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

Aggiungete un array per ogni md-device, e aggiungeteli dopo il commento incluso sopra, o se non esiste tale commento, alla fine del file. Si ottengono gli UUID facendo sudo mdadm -E --scan:

$ sudo mdadm -E --scan
ARRAY /dev/md0 level=raid5 num-devices=3 UUID=f10f5f96:106599e0:a2f56e56:f5d3ad6d
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=aa591bbe:bbbec94d:a2f56e56:f5d3ad6d

Come potete vedere potete praticamente copiare nel file l'output dello scan-result.

Io eseguo ubuntu desktop 10.04 LTS, e per quanto mi ricordi questo comportamento differisce dalla versione server di Ubuntu, tuttavia è passato così tanto tempo da quando ho creato i miei dispositivi md sul server che potrei sbagliarmi. Può anche essere che mi sia perso qualche opzione.

Comunque, aggiungere l'array nel file di configurazione sembra fare il trucco. Ho eseguito il suddetto raid 1 e raid 5 per anni senza problemi.

7
7
7
2012-03-21 22:21:47 +0000

Attenzione: Prima di tutto lasciatemi dire che quanto segue (a causa dell'uso di “–force”) mi sembra rischioso, e se avete dati irrecuperabili vi raccomanderei di fare copie delle partizioni coinvolte prima di iniziare a provare una qualsiasi delle cose che seguono. Tuttavia, questo ha funzionato per me.

Ho avuto lo stesso problema, con un array che veniva mostrato come inattivo, e niente di quello che ho fatto, incluso il “mdadm –examine –scan >/etc/mdadm.conf”, come suggerito da altri qui, ha aiutato.

Nel mio caso, quando ha cercato di avviare l'array RAID-5 dopo la sostituzione di un disco, diceva che era sporco (via dmesg):

md/raid:md2: not clean -- starting background reconstruction
md/raid:md2: device sda4 operational as raid disk 0
md/raid:md2: device sdd4 operational as raid disk 3
md/raid:md2: device sdc4 operational as raid disk 2
md/raid:md2: device sde4 operational as raid disk 4
md/raid:md2: allocated 5334kB
md/raid:md2: cannot start dirty degraded array.

causando la visualizzazione come inattivo in /proc/mdstat:

md2 : inactive sda4[0] sdd4[3] sdc4[2] sde4[5]
      3888504544 blocks super 1.2

Ho trovato che tutti i dispositivi avevano gli stessi eventi, tranne il drive che avevo sostituito (/dev/sdb4):

[root@nfs1 sr]# mdadm -E /dev/sd*4 | grep Event
mdadm: No md superblock detected on /dev/sdb4.
         Events : 8448
         Events : 8448
         Events : 8448
         Events : 8448

Tuttavia, i dettagli dell'array mostravano che aveva 4 dispositivi su 5 disponibili:

[root@nfs1 sr]# mdadm --detail /dev/md2
/dev/md2:
[...]
   Raid Devices : 5
  Total Devices : 4
[...]
 Active Devices : 4
Working Devices : 4
[...]
    Number Major Minor RaidDevice State
       0 8 4 0 inactive dirty /dev/sda4
       2 8 36 2 inactive dirty /dev/sdc4
       3 8 52 3 inactive dirty /dev/sdd4
       5 8 68 4 inactive dirty /dev/sde4

(Quanto sopra è a memoria sulla colonna “Stato”, non la trovo nel mio buffer di scorrimento).

Sono riuscito a risolverlo fermando l'array e poi riassemblandolo:

mdadm --stop /dev/md2
mdadm -A --force /dev/md2 /dev/sd[acde]4

A quel punto l'array era attivo, funzionante con 4 dei 5 dispositivi, e sono stato in grado di aggiungere il dispositivo sostitutivo e si sta ricostruendo. Sono in grado di accedere al file-system senza alcun problema.

5
5
5
2012-04-24 01:29:43 +0000

Stavo avendo problemi con Ubuntu 10.04 dove un errore in FStab impediva l'avvio del server.

Ho eseguito questo comando come menzionato nelle soluzioni precedenti:

mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Questo appenderà i risultati di “mdadm –examine –scan” a “/etc/mdadm/mdadm.conf”

Nel mio caso, questo era:

ARRAY /dev/md/0 metadata=1.2 UUID=2660925e:6d2c43a7:4b95519e:b6d110e7 name=localhost:0

Questo è un fakeraid 0. Il mio comando in /etc/fstab per montare automaticamente è:

/dev/md0 /home/shared/BigDrive ext3 defaults,nobootwait,nofail 0 0

La cosa importante qui è che tu abbia “nobootwait” e “nofail”. Nobootwait salterà qualsiasi messaggio di sistema che vi impedisca l'avvio. Nel mio caso, questo era su un server remoto quindi era essenziale.

Spero che questo aiuti qualcuno.

2
2
2
2010-03-09 10:46:27 +0000

Potete attivare il vostro dispositivo md con

mdadm -A /dev/md_d0

Suppongo che qualche script di avvio parta troppo presto, prima che uno dei membri del RAID sia stato scoperto o qualche problema simile. Come soluzione rapida e sporca, dovresti essere in grado di aggiungere questa linea a /etc/rc.local:

mdadm -A /dev/md_d0 && mount /dev/md_d0

Modifica: apparentemente il tuo /etc/mdadm/mdadm.conf contiene ancora il vecchio nome della configurazione. Modifica questo file e sostituisci le occorrenze di md0 con md_d0.

2
2
2
2011-08-15 01:56:27 +0000

Ho avuto un problema simile… il mio server non montava md2 dopo aver fatto crescere le partizioni dei dispositivi associati. Leggendo questo thread ho scoperto che il dispositivo RAID md2 aveva un nuovo UUID e la macchina stava cercando di usare quello vecchio.

Come suggerito… usando l'output di ‘md2’ da

mdadm --examine --scan

ho modificato /etc/mdadm/mdadm.conf e sostituito la vecchia linea UUID con quella emessa dal comando sopra e il mio problema è sparito.

2
2
2
2010-03-10 13:14:14 +0000

md_d0 : inactive sda4[0](S) sembra sbagliato per un array RAID1. Sembra suggerire che l'array non ha dispositivi attivi e un dispositivo di riserva (indicato dalla (S), si vedrebbe (F) per un dispositivo fallito e niente per un dispositivo OK/attivo) - per un array RAID1 che non è in esecuzione degradata ci dovrebbero essere almeno due dispositivi OK/attivi (e per un array degradato, almeno un dispositivo OK/attivo) e non si può attivare un array RAID1 senza dispositivi non di riserva non falliti (poiché i dispositivi di riserva non contengono una copia dei dati finché non vengono resi attivi quando un'altra unità fallisce). Se sto leggendo bene quell'output /proc/mdstat, non sarete in grado di attivare l'array nel suo stato attuale.

Ci sono unità fisiche nella macchina che non sono riuscite ad avviarsi? ls /dev/sd* elenca tutti i drive e le partizioni che normalmente ti aspetteresti di vedere su quella macchina?

2
2
2
2012-11-26 21:43:18 +0000

Quando pretendi di fare qualcosa con /dev/md[012346789} va a /dev/md{126,127...}./dev/md0 continua montato a /dev/md126 o /dev/md127 devi:

umount /dev/md127 o umount /dev/md126.

Questo è temporaneo per permettervi di eseguire comandi e alcune applicazioni senza fermare il sistema.

2
2
2
2017-02-14 23:24:17 +0000

Un modo semplice per far funzionare l'array, supponendo che non ci siano problemi hardware e che tu abbia abbastanza unità/partizioni per avviare l'array, è il seguente:

md20 : inactive sdf1[2](S)
      732442488 blocks super 1.2

 sudo mdadm --manage /dev/md20 --run

Potrebbe essere che, per qualsiasi ragione, l'array sia a posto, ma qualcosa ha impedito l'avvio o la costruzione. Nel mio caso questo è successo perché mdadm non sapeva che il nome originale dell'array era md127 e tutti i drive erano stati scollegati per quell'array. Quando ho ricollegato ho dovuto assemblare manualmente (probabilmente un bug in cui mdadm pensava che l'array fosse già attivo a causa del vecchio nome dell'array offline).