RAID-1 recovery (automatica) che non funge
marco ghidinelli
marcogh a linux.it
Mar 14 Set 2004 22:58:18 UTC
On Tue, Sep 14, 2004 at 03:00:13PM +0200, Luca Coianiz wrote:
>
> Tenterò di essere stringato ;)
non ci crede nessuno. :)
innanzitutto una cosa: in questa situazione fare la cosa sbagliata e' un
attimo, e di solito e' quello che la gente fa quando si trova in questa
situazione.
quindi prima di fare qualsiasi cosa, leggi un po' di
documentazione e pensa bene prima di fare le cose.
> (la maggior parte del msg è dedicata ai log)
>
> Sep 13 20:31:13 home kernel: hda: dma_intr: status=0x51 { DriveReady
> SeekComplete Error }
problemi hw...
> Sep 13 20:31:13 home kernel: hda: dma_intr: error=0x40 { UncorrectableError
> }, LBAsect=656093, sector=61576
> Sep 13 20:31:13 home kernel: end_request: I/O error, dev 03:03 (hda), sector
> 61576
> Sep 13 20:31:13 home kernel: md0: no spare disk to reconstruct array! --
> continuing in degraded mode
--^^^^^^^^^^^^^^^^^^^^^^^^^^^
questo significa che tu dovresti ancora poter accedere a /med/md0 senza
alcun problema, soltanto che le modifiche che fai vengono scritte solo
su un disco.
> Sep 13 20:31:13 home kernel: md: recovery thread finished ...
> Sep 13 20:31:13 home kernel: md: md_do_sync() got signal ... exiting
> ---8<---
>
> Mi fa il boot da /dev/hda1 (quindi credo che hda sia danneggiato solo in
> modo logico, a parte la segnalazione di I/O error qui sopra, che m'ha dato
> solo una volta) ma poi in /dev/md0 inserisce solo il disco /dev/hdb3 e, dato
> che non ho uno spare, gira in modo degraded.
perfetto. quindi devi solo cambiare il disco...
> Cenni di config:
>
> - distro SuSE 8.0
> - RAID-1 software
> - 2 HD IDE da 40GB /dev/hda e /dev/hdb
> - partizioni (/etc/fstab):
> /dev/hda1 /boot (fuori RAID) Ext3 ok
> /dev/hdb1 /boot1 ( " " ) Ext3 ok
> /dev/hda2 swap ( " " ) ok
> /dev/hdb2 swap ( " " ) ok
> /dev/hda3 / RAID-1 Ext3 "fault"
> /dev/hdb3 / RAID-1 Ext3 ok
nota che potresti mettere anche /boot e lo swap in raid...
> home:/var/log # cat /proc/mdstat
> Personalities : [raid1]
> read_ahead 1024 sectors
> md0 : active raid1 hdb3[1]
> 39905344 blocks [2/1] [_U]
>
> unused devices: <none>
>
> Dato che hda3 non è utilizzato ho anche provato un fsck:
>
> home:/etc # e2fsck -cc -v /dev/hda3
> e2fsck 1.26 (3-Feb-2002)
> Checking for bad blocks (non-destructive read-write test): done
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/hda3: ***** FILE SYSTEM WAS MODIFIED *****
>
> 196741 inodes used (3%)
> 10295 non-contiguous inodes (5.2%)
> # of inodes with ind/dind/tind blocks: 17246/276/0
> 5776652 blocks used (57%)
> 0 bad blocks
> 0 large files
>
> 172746 regular files
> 13303 directories
> 1828 character device files
> 6690 block device files
> 6 fifos
> 527 links
> 2152 symbolic links (2132 fast symbolic links)
> 7 sockets
> --------
> 197259 files
>
> ...e non mi pare che riscontri problemi.
quindi sembra che il disco che ha avuto problemi adesso funzioni?
> Purtroppo come "tools" non è che abbia granchè:
>
> home:/var/log # l /sbin/raid*
l che comando e'?
> /sbin/raid0run -> mkraid*
> /sbin/raidautorun*
> /sbin/raidhotadd -> raidstart*
> /sbin/raidhotgenerateerror -> raidstart*
> /sbin/raidhotremove -> raidstart*
> /sbin/raidstart*
> /sbin/raidstop -> raidstart*
>
> In pratica il sistema sembra usare solo raidautorun, tant'è che non esiste
> nemmeno /etc/raidtab: quando ho provato ad usare raidstart s'è subito
> lamentato che mancava:
probabilmente usa il persistent superblock insieme all'md autodetect che
ti permette di stare senza /etc/raidtab
> home:/etc # raidstart /dev/md0
ma tu hai ancora md0 attivo... non puoi fare 'ste cose..
> home:/etc # raidstart /dev/md0
> /dev/md0: File exists
infatti...
> L'unica cosa che non ho ancora fatto è un mkfs: non sono molto pratico con
> i device ed ho troppa paura di sderenare la parte funzionante dell'array. :|
> (nel frattempo mi sto preoccupando del backup su un altro disco IDE da 30GB)
potresti semplicemente fare un raidhotadd (non ricordo la sintassi) in
modo da aggiungere /dev/hdb3 al raid md0... e a quel punto dovresti
uscire dalla modalita' degradata (per poi rientrarci quando il disco
ricomincera' ad avere problemi).
> Così a sensazione mi sembra un pò una situazione di stallo, in cui non
> posso andare indietro (stop del RAID), non posso andare avanti (il rebuild
> del mirror non avviene, non capisco il perchè nè riesco a forzarlo) e stando
> "fermo" non cambia nulla (mica siamo in windows che dopo un paio di reboot
> "qualcosa riparte" ;)). :|
>
> Consigli?
1) cambia il disco che ha avuto problemi
2) metti smartmontools che ti monitori lo stato di smart dei dischi
(prevede quando il disco sta per morire)
3) METTI I DUE DISCHI SU DUE CANALI IDE SEPARATI! (le prestazioni sono
uccise se metti i due dischi sullo stesso canale ide: sugli ide la
regola e': una unita' per canale.
4) ricrea sul disco nuovo le partizioni di dimensioni uguali a quelle
del primo disco
5) raidhotadd
6) metti qualche tool che ti controlli lo stato del raid in automatico
(mdadm oppure qualcosa del genere)
ciao!
--
BOFH excuse #376:
Budget cuts forced us to sell all the power cords for the servers.
Maggiori informazioni sulla lista
Lug
|