Saya memiliki masalah yang sama dengan kebanyakan orang: bagaimana menciptakan solusi penyimpanan pribadi yang andal dengan fakta bahwa:
- Hard drive gagal dengan keteraturan yang mengkhawatirkan. Kehilangan file tidak dapat diterima.
- Saya akan membeli HDD baru dari waktu ke waktu. Tidak dapat dihindari, harga / GB terbaik adalah ukuran yang berbeda dari pembelian HDD terakhir.
2 artinya seiring waktu saya memiliki koleksi disk yang heterogen. Saya ingin menggunakan semuanya, dan disk yang gagal umumnya akan diganti oleh disk yang lebih besar.
- Integritas dan keandalan data lebih penting bagi saya daripada kecepatan.
Jadi setelah membenturkan kepala saya terhadap masalah ini selama beberapa hari (dan di belakang kepala saya selama bertahun-tahun) saya mengusulkan solusi berikut. Saya akan menjelaskan solusi yang telah saya uji berdasarkan ZFS linux asli yang tersedia di PPA Ubuntu , tetapi LVM, MD, dan btrfs dapat digunakan untuk mencapai hal yang sama. Untuk ini saya akan menggunakan RAID1 (ZFS mirror vdevs).
- Dengan set drive Anda, kelompokkan menjadi dua set disk, sehingga kapasitas setiap set sedekat mungkin dengan yang lain.
- Partisi disk yang lebih besar sehingga ada partisi dengan ukuran yang persis sama dengan salah satu disk yang lebih kecil, di grup lain.
- Buat mirror vdevs sehingga setiap disk memiliki mirrornya di disk lain.
Misalnya, pertimbangkan set disk drive 2TB baru, drive 750GB yang lebih tua, 2 drive 400GB yang lebih tua, dan satu drive 500GB yang lebih tua. Partisi cermin optimal memiliki 2TB ruang yang dapat digunakan dan dijelaskan dalam diagram berikut di mana ':' memisahkan partisi dan '|' memisahkan disk:
+------------------------------------------------------------------+
| 2TB (sda1) : (sda2) : (sda3) : (sda4) |
+------------------------------------------------------------------+--+
| 750 GB (sdb) | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1) :XX|
+---------------------------------------------------------------------+
Buat zpool Anda sebagai
zpool create archive mirror /dev/sda1 /dev/sdb mirror /dev/sda2 /dev/sdc mirror /dev/sda3 /dev/sdd mirror /dev/sda4 /dev/sde1
Ini menciptakan 4 vdev cermin. Jika salah satu disk gagal, ia dapat diganti (dengan ukuran disk apa saja) dan dipartisi untuk membuat ulang partisi yang hilang. Sangat penting bahwa ZFS vdevs dapat ditambahkan ke kumpulan tetapi tidak dihapus . Jadi, jika memungkinkan, ketika seseorang membeli drive baru, Anda ingin mengatur ulang vdev yang ada. Katakanlah pembelian berikutnya adalah drive 3TB. Konfigurasi optimal Anda dapat digunakan 3.5TB, seperti dijelaskan dalam diagram berikut. Sekarang ini adalah 5 pasang vdev. Ini dapat dicapai dengan partisi yang tepat dan gagal serta mempartisi ulang drive secara berturut-turut.
+--------------------------------------------------------------+-------------+
| 3 TB (sdf1) : (sdf2) : (sdf3) : (sdf4) | 500GB (sde) |
+--------------------------------------------------------------+-------------+-+
| 2TB (sda1) | 400GB (sdb) | 400GB (sdc) | 750GB (sdd1) : (sdd2) :X|
+------------------------------------------------------------------------------+
Mempertahankan pasangan drive mirroring ini juga bisa dilakukan dengan LVM atau dengan MD RAID, idenya adalah untuk memastikan setiap drive selalu memiliki drive mirror atau partisi. Karena semuanya dicerminkan, kita bebas untuk merusak drive dan mengatur ulang partisi ketika drive ditambahkan atau dihapus. Menggunakan LVM atau MD akan mungkin untuk menghapus drive dan menyusutkan array, jika diinginkan, dengan mengorbankan alat pemulihan yang kurang canggih di ZFS dibandingkan dengan BTRFS.
Ada komentar tentang prosedur ini? Skrip yang baik dapat menangani alokasi lossless dan penataan ulang drive. Adakah komentar tentang LVM vs MD vs. ZFS? Adakah komentar tentang kinerja array yang dihasilkan secara aneh? Apakah pengaturan data di beberapa partisi pada drive yang sama menyebabkan pencarian kepala berlebihan dan kegagalan awal?
BTRFS devs: semua orang menginginkan ini dan LVM atau MD secara teknis tidak diperlukan (dan menurut saya, kurang optimal). Membuatnya mudah untuk mempertahankan array heterogen yang redundan akan menjadi fitur pembunuh untuk btrfs. Ini adalah retasan pada LVM / MD / ZFS apa adanya. Meminimalkan resliver / resync sangat diinginkan.
Ya, ini jelas Drobo orang miskin. Seseorang seharusnya tidak memerlukan perangkat keras khusus untuk itu ...