Untuk Anda semua ... ZFS atas Serangan apa pun adalah NYERI total dan dilakukan hanya oleh orang-orang MAD! ... seperti menggunakan ZFS dengan memori non ECC.
Dengan sampel, Anda akan memahami dengan lebih baik:
- ZFS lebih Raid1, satu disk memiliki sedikit berubah ketika tidak dimatikan ... pry semua yang Anda tahu, ZFS akan melihat beberapa kerusakan atau tidak tergantung pada disk apa yang dibaca (Raid controller tidak melihat bahwa bit berubah dan berpikir kedua disk OK ) ... jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.
- ZFS lebih Raid0, satu disk sedikit berubah ketika tidak dimatikan ... pry semua yang Anda tahu, (Raid controller tidak melihat bahwa bit berubah dan berpikir kedua disk OK) ... ZFS akan melihat kerusakan itu tetapi jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.
Di mana ZFS baik dalam mendeteksi Bit yang berubah ketika disk mana tanpa daya (pengontrol RAID tidak bisa melakukan itu), juga ketika sesuatu berubah tanpa diminta, dll.
Ini adalah masalah yang sama seperti ketika sedikit dalam modul RAM berubah secara spontan tanpa diminta untuk ... jika memori ECC, memori mengoreksi sendiri; jika tidak, data itu telah berubah, sehingga data akan dikirim ke disk yang dimodifikasi; mungkinkah perubahan itu bukan pada bagian UDEV, jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.
Itu adalah kelemahan pada ZFS ... VDEV gagal menyiratkan semua data hilang selamanya.
Hardware Raid dan Software Raid tidak dapat mendeteksi perubahan bit spontan, mereka tidak memiliki checksum, terburuk pada level Raid1 (mirros), mereka membaca tidak semua bagian dan membandingkannya, mereka mengira semua bagian akan selalu memiliki data yang sama, ALLWAYS (saya katakan itu keras) Raid mengandaikan data tidak berubah oleh hal lain / cara ... tetapi disk (sebagai memori) rentan terhadap perubahan bit spontan.
Jangan pernah menggunakan ZFS pada RAM non-ECC dan jangan pernah menggunakan ZFS pada disk yang digerebek, biarkan ZFS melihat semua disk, jangan tambahkan lapisan yang dapat merusak VDEV dan POOL Anda.
Cara mensimulasikan kegagalan seperti itu ... matikan PC, mengeluarkan satu disk Raid1 itu dan ubah hanya satu bit ... periksa kembali dan lihat bagaimana pengontrol Raid tidak dapat mengetahui bahwa telah berubah ... ZFS bisa karena semua bacaan diuji terhadap checksum dan jika tidak cocok, baca dari bagian lain ... Raid tidak pernah membaca lagi karena gagal (kecuali perangkat keras yang mustahil dibaca gagal) ... jika Raid dapat membacanya berpikir data itu OK (tetapi tidak pada kasus seperti itu) ) ... Raid hanya mencoba membaca dari disk lain jika di mana tertulis "hei, saya tidak bisa membaca dari sana, perangkat keras gagal" ... ZFS membaca dari disk lain jika checksum tidak cocok juga seolah-olah di mana ia membaca mengatakan "hei, saya tidak bisa membaca dari sana, perangkat keras gagal".
Semoga saya membiarkannya sangat jelas ... ZFS atas semua tingkat Raid adalah rasa sakit yang nyata dan risiko total untuk data Anda! serta ZFS pada memori non-ECC.
Tapi tidak ada yang mengatakan (kecuali saya) adalah:
- Jangan menggunakan disk dengan cache internal (tidak hanya itu yang SHDD, juga beberapa yang memiliki cache 8Mib ke 32MiB, dll) ... beberapa dari mereka menggunakan memori non-ECC untuk cache tersebut
- Jangan gunakan SATA NCQ (cara untuk menulis) karena dapat merusak ZFS jika daya kendur
Jadi disk apa yang digunakan?
- Setiap disk dengan baterai internal yang memastikan semua antrian akan dimasukkan ke disk pada kasus kegagalan daya dan menggunakan memori ECC di dalamnya (maaf, ada sangat sedikit dengan semua itu dan mahal).
Tapi, hei, kebanyakan orang tidak tahu semua ini dan tidak pernah punya masalah ... saya katakan kepada mereka: wow, betapa beruntungnya Anda, beli beberapa tiket lotre, sebelum keberuntungan hilang.
Risikonya ada ... kemungkinan kegagalan seperti itu terjadi ... jadi jawaban yang lebih baik adalah:
- Cobalah untuk tidak meletakkan lapisan antara ZFS dan di mana data benar-benar disimpan (RAM, Raid, NCQ, cache disk internal, dll) ... sebanyak yang Anda mampu.
Apa yang saya lakukan secara pribadi?
- Letakkan beberapa lapisan lagi ... saya menggunakan masing-masing 2,5 "disk SATA III 7200 rpm pada selungkup USB 3.1 Gen2 tipe C, saya menghubungkan beberapa selungkup ke Hub USB 3.1 Gen 2 Tipe A yang saya hubungkan ke PC; lainnya ke hub lain bahwa saya terhubung ke port root lain di PC, dll.
- Untuk sistem saya menggunakan konektor sata internal pada ZFS (level Raid0) karena saya menggunakan sistem Linux inmutable (Like a LiveCD), masing-masing mem-boot konten yang identik pada disk internal ... dan saya memiliki gambar Klon dari sistem yang dapat saya kembalikan (kurang dari sistem 1GiB) ... juga saya menggunakan trik untuk memiliki sistem yang terdapat pada file dan menggunakan RAM yang dipetakan drive di mana saya mengkloningnya saat boot, jadi setelah boot semua sistem berjalan di RAM ... meletakkan file seperti itu di sebuah DVD saya juga bisa boot dengan cara yang sama, jadi jika terjadi kegagalan disk internal, saya hanya boot dengan DVD dan sistem online lagi ... trik yang mirip dengan SystemRescueCD tetapi sedikit lebih rumit karena file ISO dapat di ZFS internal atau hanya menjadi DVD nyata dan saya tidak ingin dua versi berbeda.
Semoga saya bisa memberi sedikit cahaya pada ZFS terhadap Raid, itu benar-benar menyakitkan ketika ada yang salah!