Saya memiliki kelompok besar (> 100TB) ZFS (FUSE) di Debian yang kehilangan dua drive. Ketika drive gagal, saya menggantinya dengan suku cadang sampai saya dapat menjadwalkan pemadaman dan secara fisik mengganti disk buruk.
Ketika saya menurunkan sistem dan mengganti drive, kolam mulai resilver seperti yang diharapkan, tetapi ketika mencapai sekitar 80% selesai (ini biasanya memakan waktu sekitar 100 jam) itu restart lagi.
Saya tidak yakin apakah mengganti dua drive sekaligus menciptakan kondisi balapan, atau jika karena ukuran pool resilver membutuhkan waktu begitu lama sehingga proses sistem lain mengganggu dan menyebabkannya untuk restart, tetapi tidak ada indikasi yang jelas dalam hal ini. hasil 'status zpool' atau log sistem yang menunjukkan masalah.
Sejak itu saya telah memodifikasi cara saya meletakkan kumpulan ini untuk meningkatkan kinerja resilver tetapi setiap petunjuk atau saran untuk mengembalikan sistem ini ke produksi dihargai.
keluaran status zpool (kesalahannya baru sejak terakhir kali saya memeriksa):
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
?Jawaban:
Selamat dan uh-oh. Anda menemukan salah satu hal terbaik tentang ZFS, tetapi juga melakukan dosa konfigurasi.
Pertama, karena Anda menggunakan raidz1, Anda hanya memiliki satu data paritas disk. Namun, Anda memiliki dua drive gagal secara bersamaan. Satu-satunya hasil yang mungkin di sini adalah kehilangan data . Tidak ada jumlah resilver yang akan memperbaikinya.
Suku cadang Anda membantu Anda keluar sedikit di sini dan menyelamatkan Anda dari kegagalan total. Saya akan pergi mengambil risiko di sini dan mengatakan bahwa dua drive yang gagal tidak gagal pada saat yang sama dan bahwa cadangan pertama hanya sebagian disetting ulang sebelum drive kedua gagal.
Tampaknya sulit untuk diikuti. Ini gambarnya:
Ini sebenarnya adalah hal yang baik karena jika ini adalah array RAID tradisional, seluruh array Anda akan langsung offline begitu drive kedua gagal dan Anda TIDAK akan memiliki peluang untuk pemulihan di tempat. Tetapi karena ini adalah ZFS, ia masih dapat berjalan menggunakan potongan-potongan yang dimilikinya dan hanya mengembalikan kesalahan tingkat blok atau file untuk potongan-potongan yang tidak.
Inilah cara Anda memperbaikinya: Jangka pendek, dapatkan daftar file yang rusak dari
zpool status -v
dan salin file-file itu dari cadangan ke lokasi aslinya. Atau hapus file. Ini akan memungkinkan resilver untuk melanjutkan dan menyelesaikan.Ini adalah dosa konfigurasi Anda : Anda memiliki terlalu banyak drive dalam grup raidz.
Jangka panjang: Anda perlu mengkonfigurasi ulang drive Anda. Konfigurasi yang lebih tepat adalah mengatur drive ke grup kecil dengan 5 drive atau lebih di raidz1. ZFS akan secara otomatis menghapus seluruh grup kecil tersebut. Ini secara signifikan mengurangi waktu resilver ketika sebuah drive gagal karena hanya 5 drive yang perlu berpartisipasi daripada semuanya. Perintah untuk melakukan ini adalah sesuatu seperti:
sumber