Cosa succede se costringo ZFS a staccare un hot spare senza repliche valide?


9

Ho un pool ZFS composto da 6 RAIDZ. Uno dei RAIDZ è degradato, a causa della perdita di due dischi nella singola RAIDZ abbastanza vicini tra loro che ZFS non è stato in grado di recuperare dal primo errore prima che il secondo disco fallisse. Ecco l'output di "stato zpool" poco dopo il riavvio:

  pool: pod2
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go
config:

        NAME                                                 STATE     READ WRITE CKSUM
        pod2                                                 DEGRADED     0     0 29.3K
          raidz1-0                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F165XG    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1660X    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1678R    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1689F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16AW9    ONLINE       0     0     0
          raidz1-1                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C6E    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C9F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16FCD    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16JDQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17M6V    ONLINE       0     0     0
          raidz1-2                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MSZ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MXE    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XKB    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XMW    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17ZHY    ONLINE       0     0     0
          raidz1-3                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BM4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BRF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18XLP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09880    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F098BE    ONLINE       0     0     0
          raidz1-4                                           DEGRADED     0     0 58.7K
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B0M    ONLINE       0     0     0
            spare-1                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BEN  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01  ONLINE       0     0     0  837K resilvered
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6LC    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWD1    ONLINE       0     0     0
            spare-4                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C8G  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE  ONLINE       0     0     0  830K resilvered
          raidz1-5                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-1CH_Z1F2KNQP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BML0    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPV4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ78    ONLINE       0     0     0
          raidz1-6                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ9G    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQDF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQFQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CW1A    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BV7M    ONLINE       0     0     0
        spares
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49MB1      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001SS2      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001R0F      AVAIL   

errors: 37062187 data errors, use '-v' for a list

Quando il primo disco si è rotto, l'ho sostituito con uno hot spare e ha iniziato a resilver. Prima del completamento del resilver, un secondo disco non funzionava, quindi ho sostituito il secondo disco con un altro hot spare. Da allora inizierà il resilver, eseguirà circa il 50%, quindi inizierà a divorare la memoria fino a quando non consumerà tutto e causerà l'arresto anomalo del sistema operativo.

L'aggiornamento della RAM sul server non è un'opzione semplice a questo punto, e non mi è chiaro che farlo garantirebbe una soluzione. Capisco che ci sarà una perdita di dati in questa fase, ma se posso sacrificare il contenuto di questo RAIDZ per preservare il resto del pool, questo è un risultato perfettamente accettabile. Sto eseguendo il backup dei contenuti di questo server su un altro server, ma il problema del consumo di memoria forza un riavvio (o un arresto anomalo) ogni 48 ore circa, il che interrompe il mio backup rsync e il riavvio di rsync richiede tempo (può riprendere una volta scoperto da dove era stato interrotto, ma ci vuole molto tempo).

Penso che ZFS tentare di gestire due operazioni di sostituzione di riserva sia alla radice del problema di consumo di memoria, quindi desidero rimuovere uno dei hot spare in modo che ZFS possa lavorare su uno alla volta. Tuttavia, quando provo a staccare uno dei pezzi di ricambio, ottengo "impossibile staccare / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: nessuna replica valida". Forse posso usare l'opzione -f per forzare l'operazione, ma non mi è chiaro esattamente quale sarà il risultato, quindi volevo vedere se qualcuno ha qualche input prima di andare avanti.

Se riesco a portare il sistema in uno stato stabile in cui può rimanere operativo abbastanza a lungo per il completamento del backup, ho in programma di rimuoverlo per la revisione, ma con le condizioni attuali è bloccato in un po 'di un ciclo di recupero.


Hai taggato questo zfs-fuse. Questo è davvero un fusibile ZFS? Fornisci i dettagli del sistema operativo.
ewwhite,

Puoi scommettere ewwhite. Debian 6.0.6
jasongullickson

Quanta RAM ha questo sistema? Con quale frequenza hai cancellato l'array?
Chris S,

Perché stavi usando FUSE e non una vera implementazione ZFS? Soprattutto dato che qui c'è molto hardware. Sto pensando che questo array sia
completo

Al momento della creazione del sistema non esisteva un'implementazione ZFS nativa per Linux.
jasongullickson,

Risposte:


1

In questo momento puoi staccare i dischi UNAVAIL, ZFS non li usa più comunque.

Hai due dischi guasti in una configurazione RAIDZ-1. È molto probabile che tu stia osservando una perdita di dati e dovresti essere pronto per il ripristino dal backup.

Come nota a margine, RAIDZ ha dimostrato di essere molto traballante nella mia esperienza con OpenSolaris / Solaris11. Sconsiglio di utilizzarlo in QUALSIASI tipo di carico di lavoro di produzione.

Inoltre, per rafforzare ciò che ha detto ewwhite, FUSE non è l'opzione migliore. Coglierei l'occasione per migrare verso qualcosa di più stabile (forse FreeBSD 10).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.