Mam dużą (> 100 TB) pulę ZFS (FUSE) na Debianie, która straciła dwa dyski. Ponieważ dyski uległy awarii, zamieniłem je na części zamienne, aż mogłem zaplanować awarię i fizycznie wymienić złe dyski.
Kiedy zdjąłem system i wymieniłem dyski, pula zaczęła się resilverować zgodnie z oczekiwaniami, ale kiedy osiągnie około 80% ukończenia (zwykle zajmuje to około 100 godzin), ponownie się uruchamia.
Nie jestem pewien, czy zamiana dwóch dysków naraz stworzyła warunki wyścigu, czy też ze względu na wielkość puli resilver trwa tak długo, że inne procesy systemowe przerywają go i powodują jego ponowne uruchomienie, ale nie ma wyraźnego wskazania w wyniki „statusu zpool” lub logi systemowe wskazujące na problem.
Od tamtej pory zmieniłem sposób, w jaki rozplanowałem te pule, aby poprawić wydajność resilveringu, ale wszelkie wskazówki lub porady dotyczące przywrócenia tego systemu do produkcji są mile widziane.
wyjście statusu zpool (błędy są nowe od ostatniego sprawdzenia):
pool: pod
state: ONLINE
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 85h47m, 62.41% done, 51h40m to go
config:
NAME STATE READ WRITE CKSUM
pod ONLINE 0 0 2.79K
raidz1-0 ONLINE 0 0 5.59K
disk/by-id/wwn-0x5000c5003f216f9a ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWPK ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQAM ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPVD ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ2Y ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CVA3 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQHC ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPWW ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09X3Z ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ87 ONLINE 0 0 0
spare-10 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F20T1K ONLINE 0 0 0 1.45T resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BJN ONLINE 0 0 0 1.45T resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQG7 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQKM ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQEH ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C7Y ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWRF ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ7Y ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C7LN ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQAD ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CBRC ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZM ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPT9 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ0M ONLINE 0 0 0
spare-23 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F226B4 ONLINE 0 0 0 1.45T resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CCMV ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6NL ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWA1 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CVL6 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6TT ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPVX ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BGJ ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C9YA ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B50 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0AZ20 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BKJW ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F095Y2 ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F08YLD ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQGQ ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0B2YJ ONLINE 0 0 39 512 resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQBY ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0C9WZ ONLINE 0 0 0 67.3M resilvered
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQGE ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ5C ONLINE 0 0 0
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWWH ONLINE 0 0 0
spares
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CCMV INUSE currently in use
disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BJN INUSE currently in use
errors: 572 data errors, use '-v' for a list
zpool status
-v
?Odpowiedzi:
Gratulacje i tak. Natknąłeś się na jedną z lepszych rzeczy w ZFS, ale także popełniłeś grzech konfiguracji.
Po pierwsze, ponieważ używasz raidz1, masz tylko jeden dysk danych parzystości wartych jednego dysku. Wystąpiły jednak jednoczesne awarie dwóch dysków. Jedynym możliwym rezultatem jest tutaj utrata danych . Żadna ilość resilveringu tego nie naprawi.
Twoje części zamienne pomogły ci trochę tutaj i uratowały cię przed całkowicie katastrofalną awarią. Mam zamiar wyjść tutaj na całość i powiedzieć, że dwa dyski, które uległy awarii, nie zawiodły w tym samym czasie i że pierwszy zapasowy został tylko częściowo przywrócony do stanu początkowego przed awarią drugiego dysku.
Wydaje się to trudne do naśladowania. Oto zdjęcie:
To właściwie dobra rzecz, ponieważ gdyby była to tradycyjna macierz RAID, cała macierz po prostu przejdzie w tryb offline, gdy tylko drugi dysk ulegnie awarii i nie będzie szans na odzyskanie w miejscu. Ale ponieważ jest to ZFS, może nadal działać przy użyciu elementów, które ma i po prostu zwraca błędy bloku lub poziomu pliku dla elementów, których nie ma.
Oto jak to naprawić: krótkoterminowo, pobierz listę uszkodzonych plików
zpool status -v
i skopiuj je z kopii zapasowej do ich oryginalnych lokalizacji. Lub usuń pliki. Pozwoli to resilverowi wznowić i zakończyć.Oto twój grzech konfiguracji: masz zbyt wiele napędów w grupie podwyższonej.
Długoterminowo: musisz ponownie skonfigurować dyski. Bardziej odpowiednią konfiguracją byłoby rozmieszczenie napędów w małe grupy po 5 napędów w raidz1. ZFS automatycznie rozdzieli te małe grupy. To znacznie skraca czas działania resilvera w przypadku awarii dysków, ponieważ tylko 5 dysków musi brać udział zamiast wszystkich. Polecenie, aby to zrobić, wyglądałoby mniej więcej tak:
źródło