Co się stanie, jeśli zmuszę ZFS do odłączenia hot spare bez prawidłowych replik?

9

Mam pulę ZFS wykonaną z 6 macierzy RAIDZ. Jeden z RAIDZ jest zdegradowany z powodu utraty dwóch dysków w jednym RAIDZ wystarczająco blisko siebie, aby ZFS nie był w stanie odzyskać sprawności po pierwszej awarii przed awarią drugiej. Oto dane wyjściowe ze „statusu zpool” wkrótce po ponownym uruchomieniu:

  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

Kiedy pierwszy dysk się zepsuł, wymieniłem go na gorący zapasowy dysk i zaczął się on resilverować. Przed ukończeniem resilvera drugi dysk się nie powiódł, więc wymieniłem drugi dysk na inny gorący zapasowy. Od tego momentu zacznie się resilverować, zrobić około 50%, a następnie zacznie pożerać pamięć, aż zje wszystko i spowoduje awarię systemu operacyjnego.

Uaktualnienie pamięci RAM na serwerze nie jest w tym momencie prostą opcją i nie jest dla mnie jasne, czy takie postępowanie gwarantowałoby rozwiązanie. Rozumiem, że na tym etapie nastąpi utrata danych, ale jeśli mogę poświęcić zawartość tego jednego RAIDZ, aby zachować resztę puli, jest to całkowicie akceptowalny wynik. Jestem w trakcie tworzenia kopii zapasowej zawartości tego serwera na innym serwerze, ale problem z zużyciem pamięci wymusza ponowne uruchamianie (lub awarię) co około 48 godzin, co przerywa moją kopię zapasową rsync, a ponowne uruchomienie rsync zajmuje dużo czasu (może wznowić, gdy zorientuje się, gdzie przerwał, ale zajmuje to bardzo dużo czasu).

Myślę, że ZFS próbujący poradzić sobie z dwoma zapasowymi operacjami zastępowania jest przyczyną problemu z zużyciem pamięci, więc chcę usunąć jedną z głównych części zapasowych, aby ZFS mógł pracować nad jedną naraz. Jednak gdy próbuję odłączyć jedną z części zapasowych, otrzymuję komunikat „nie można odłączyć / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: brak prawidłowych replik”. Być może mogę użyć opcji -f, aby wymusić operację, ale nie jest dla mnie jasne, jaki będzie tego wynik, dlatego przed przejściem do przodu chciałem sprawdzić, czy ktoś ma jakieś dane.

Jeśli uda mi się doprowadzić system do stabilnego stanu, w którym będzie mógł działać wystarczająco długo, aby wykonać kopię zapasową, planuję usunąć ją z powodu remontu, ale w obecnych warunkach utknął w pętli przywracania.

jasongullickson
źródło
Oznaczono to tagiem zfs-fuse. Czy to naprawdę jest bezpiecznik ZFS? Podaj szczegóły systemu operacyjnego.
ewwhite
Stawiasz ewwhite. Debian 6.0.6
jasongullickson
Ile pamięci RAM ma ten system? Jak często szorowałeś tablicę?
Chris S
Dlaczego używałeś FUSE, a nie prawdziwej implementacji ZFS? Zwłaszcza, że ​​tutaj jest dużo sprzętu. Myślę, że ta tablica jest skończona ...
ewwhite
W momencie budowania systemu nie było natywnej implementacji ZFS dla Linuksa.
jasongullickson

Odpowiedzi:

1

W tej chwili możesz odłączyć dyski UNAVAIL, ZFS i tak już ich nie używa.

Masz dwa uszkodzone dyski w konfiguracji RAIDZ-1. Jest bardzo prawdopodobne, że patrzysz na utratę danych i powinieneś być gotowy do przywrócenia z kopii zapasowej.

Na marginesie, RAIDZ okazało się bardzo niestabilne w moim doświadczeniu z OpenSolaris / Solaris11. Odradzałbym stosowanie go w KAŻDYM obciążeniu produkcyjnym.

Ponadto, aby wzmocnić to, co powiedział ewwhite, BEZPIECZNIK nie jest najlepszą opcją. Korzystam z okazji, aby dokonać migracji do czegoś bardziej stabilnego (być może FreeBSD 10).

Giovanni Tirloni
źródło