Saya memiliki ZFS mirrored pool dengan total empat drive. Dua drive dimaksudkan untuk digunakan untuk memutar cadangan di luar kantor. Harapan saya adalah bahwa setelah resilver awal saya dapat detach
dan kemudian attach
disk dan hanya melakukan resilver tambahan - namun dalam pengujian tampaknya melakukan resilver penuh terlepas dari apakah disk yang terpasang sudah mengandung hampir semua kumpulan isi.
Apakah menggunakan offline
/ online
mendekati memberi saya hasil yang diinginkan hanya memperbarui disk - daripada sepenuhnya membangunnya kembali? Atau agar pekerjaan ini seperti yang diharapkan, apakah saya perlu melakukan sesuatu yang sama sekali berbeda - seperti menggunakan setiap disk cadangan sebagai kumpulan 1-disk dan send
memasukkan snapshot terbaru ke dalamnya setiap kali perlu diperbarui?
zfs send
perintah untuk mengambil stream cadangan penuh atau tambahan yang disimpan ke disk cadangan, atau gunakanzfs recv
untuk membuat disk duplikat. Saya sangat merekomendasikan menggunakan beberapa jenis perangkat lunak untuk mengelola proses ini.Jawaban:
Jangan pergi jalan melanggar array ZFS untuk "memutar" disk di luar kantor. Seperti yang Anda lihat, membangun kembali waktu tinggi dan proses resilvering akan membaca / memverifikasi digunakan ukuran dataset.
Jika Anda memiliki kemampuan, snapshot dan mengirim data ke sistem jarak jauh adalah pendekatan yang bersih dan tidak mengganggu. Saya kira Anda bisa melalui proses memiliki kolam disk tunggal khusus, salin ke sana, dan ekspor / impor zpool ... tapi itu tidak terlalu elegan.
sumber
Setelah percobaan lebih lanjut, saya telah menemukan solusi yang adil, namun itu datang dengan trade-off yang signifikan. Disk yang telah
offline
tetapi tidak terlepas kemudian dapat dibawa kembali online dengan hanya operasi resilver tambahan (" Ketika perangkat dibawa online, setiap data yang telah ditulis ke kolam disinkronisasi ulang dengan perangkat yang baru tersedia. "). Dalam pengujian saya ini membawa waktu resilver untuk mirror 3-disk turun dari 28 jam menjadi sedikit lebih dari 30 menit, dengan sekitar 40GB data-delta.Imbalannya adalah bahwa kumpulan apa pun dengan disk offline akan ditandai sebagai terdegradasi. Asalkan masih ada setidaknya dua disk online (di kolam mirrored) ini secara efektif peringatan - integritas dan redundansi tetap utuh.
Seperti yang disebutkan orang lain, pendekatan keseluruhan ini jauh dari ideal - mengirim foto ke kolam jauh akan jauh lebih cocok, tetapi dalam kasus saya tidak layak.
Untuk meringkas, jika Anda perlu menghapus disk dari kumpulan dan kemudian menambahkannya kembali tanpa memerlukan resilver penuh maka pendekatan yang saya sarankan adalah:
zpool offline pool disk
hdparm -Y /dev/thedisk
zpool online pool disk
Dan, karena ini belum diuji, ada risiko bahwa operasi resilver delta tidak akurat. Kumpulan "live" dan / atau disk offline mungkin mengalami masalah. Saya akan memperbarui jika itu terjadi pada saya, tetapi untuk sekarang akan bereksperimen dengan pendekatan ini.
sumber
Pembaruan pada 2015 15 Oktober: Hari ini saya menemukan
zpool split
perintah, yang memisahkan kumpulan baru (dengan nama baru) dari kumpulan yang ada.split
jauh lebih bersih daripadaoffline
dandetach
, karena kedua kolam kemudian dapat ada (dan digosok secara terpisah) pada sistem yang sama. Pool baru juga bisa bersih (dan benar)export[ed]
sebelum dicabut dari sistem.(Posting asli saya berikut di bawah ini.)
Peringatan! Berbagai komentar pada halaman ini menyiratkan bahwa itu adalah (atau mungkin) mungkin untuk
zpool detach
drive, dan kemudian entah bagaimana pasang kembali drive dan mengakses data yang dikandungnya.Namun, menurut utas ini (dan eksperimen saya sendiri)
zpool detach
menghapus "kumpulan informasi" dari drive yang terlepas. Dengan kata lain, adetach
seperti pemformatan ulang drive yang cepat . Setelahdetach
banyak data mungkin masih ada di drive, tetapi secara praktis tidak mungkin untuk melakukan remount drive dan melihat data sebagai sistem file yang dapat digunakan.Akibatnya, bagi saya itu
detach
lebih destruktif daripadadestroy
, karena saya percayazpool import
dapat memulihkan kolam yang hancur!Sebuah
detach
adalah tidak satuumount
, atau suatuzpool export
, atau sebuahzpool offline
.Dalam eksperimen saya, jika saya pertama
zpool offline
perangkat dan kemudianzpool detach
perangkat yang sama, sisa kumpulan lupa perangkat yang pernah ada. Namun, karena perangkat itu sendirioffline[d]
sebelum itudetach[ed]
, perangkat itu sendiri tidak pernah diberitahudetach
. Oleh karena itu, perangkat itu sendiri masih memiliki informasi kumpulannya, dan dapat dipindahkan ke sistem lain dan kemudianimport[ed]
(dalam kondisi terdegradasi).Untuk perlindungan tambahan terhadap
detach
Anda, Anda bahkan dapat mencabut perangkat secara fisik setelahoffline
perintah, namun sebelum mengeluarkandetach
perintah.Saya berharap untuk menggunakan ini
offline
, laludetach
,import
proses untuk membuat cadangan kolam saya. Seperti poster aslinya, saya berencana menggunakan empat drive, dua di mirror konstan, dan dua untuk backup bulanan, berputar, off-site (dan off-line). Saya akan memverifikasi setiap cadangan dengan mengimpor dan menggosoknya pada sistem terpisah, sebelum memindahkannya ke luar lokasi. Tidak seperti poster aslinya, saya tidak keberatan menulis ulang seluruh drive cadangan setiap bulan. Bahkan, saya lebih suka penulisan ulang lengkap sehingga memiliki bit segar.sumber
Di mesin yang sama, sudahkah Anda mencoba membuat kumpulan baru dengan 2 drive di cermin? Selanjutnya, buat snapshot pada kumpulan kerja Anda lalu kirim snapshot itu ke kumpulan baru, ulangi, maka pengiriman snapshot berikutnya akan bersifat inkremental. Ini tidak sama dengan "mengirim data ke sistem jarak jauh" karena ini adalah kumpulan dalam sistem / server / mesin yang sama. Dengan pengaturan ini, Anda masih dapat menerapkan zpool split / offline / detach / attach tetapi Anda hanya melakukannya di kumpulan kedua (salinan) dan bukan pada kumpulan sumber.
sumber