Saya berencana untuk menyiapkan drive 3x 2TB 7200rpm sebagai kumpulan Z-RAID terenkripsi LUKS di Linux (untuk solusi NAS).
Pemahaman saya tentang masalah yang dihadapi adalah bahwa satu-satunya cara untuk mencapai ini adalah untuk luksFormat
setiap perangkat fisik dan kemudian mengumpulkan zpool dari wadah LUKS yang tidak terkunci.
Saya memiliki keprihatinan berikut dengan ini:
Bukankah itu akan secara signifikan menghambat kinerja penulisan? Dalam pengaturan ini, data yang berlebihan dienkripsi beberapa kali karena LUKS tidak "menyadari" Z-RAID. Dalam solusi LUKS-on-mdadm data dienkripsi sekali dan hanya ditulis ke disk beberapa kali. CPU saya mendukung Intel AES-NI.
Apakah ZFS akan menyadari kegagalan disk ketika beroperasi pada wadah LUKS alat-mapper sebagai lawan perangkat fisik? Bagaimana dengan deduplikasi dan fitur ZFS lainnya?
sumber
Jawaban:
Salah satu server yang saya kelola menjalankan tipe konfigurasi yang Anda gambarkan. Ini memiliki enam hard drive 1TB dengan kolam RAIDZ terenkripsi LUKS di atasnya. Saya juga memiliki dua hard drive 3TB di cermin ZFS terenkripsi LUKS yang diganti setiap minggu untuk dikeluarkan di luar lokasi. Server telah menggunakan konfigurasi ini selama sekitar tiga tahun, dan saya tidak pernah punya masalah dengannya.
Jika Anda memiliki kebutuhan untuk ZFS dengan enkripsi di Linux maka saya merekomendasikan pengaturan ini. Saya menggunakan ZFS-Fuse, bukan ZFS di Linux. Namun, saya percaya bahwa tidak ada hubungannya dengan hasil selain ZFS di Linux mungkin akan memiliki kinerja yang lebih baik daripada pengaturan yang saya gunakan.
Perlu diingat bahwa LUKS tidak mengetahui adanya RAID. Itu hanya tahu bahwa itu duduk di atas perangkat blok. Jika Anda menggunakan mdadm untuk membuat perangkat RAID dan kemudian
luksformat
, mdadm yang mereplikasi data terenkripsi ke perangkat penyimpanan yang mendasarinya, bukan LUKS.Pertanyaan 2.8 dari LUKS FAQ membahas apakah enkripsi harus di atas RAID atau sebaliknya . Ini menyediakan diagram berikut.
Karena ZFS menggabungkan fungsi RAID dan sistem file, solusi Anda perlu terlihat seperti berikut.
Saya telah mencantumkan partisi mentah sebagai opsional karena ZFS mengharapkan bahwa itu akan menggunakan penyimpanan blok mentah daripada partisi. Meskipun Anda bisa membuat zpool menggunakan partisi, itu tidak disarankan karena akan menambah tingkat manajemen yang tidak berguna, dan itu perlu diperhitungkan saat menghitung berapa offset Anda untuk penyelarasan blok partisi.
Seharusnya tidak ada masalah kinerja selama Anda memilih metode enkripsi yang didukung oleh driver AES-NI Anda. Jika Anda memiliki cryptsetup 1.6.0 atau yang lebih baru, Anda dapat menjalankan
cryptsetup benchmark
dan melihat algoritma mana yang akan memberikan kinerja terbaik.Pertanyaan tentang opsi yang direkomendasikan untuk LUKS ini mungkin juga bermanfaat.
Karena Anda memiliki dukungan enkripsi perangkat keras, Anda cenderung menghadapi masalah kinerja karena ketidaksejajaran partisi.
ZFS di Linux telah menambahkan
ashift
properti kezfs
perintah untuk memungkinkan Anda menentukan ukuran sektor untuk hard drive Anda. Menurut FAQ yang ditautkan,ashift=12
akan mengatakan bahwa Anda menggunakan drive dengan ukuran blok 4K.LUKS FAQ menyatakan bahwa partisi LUKS memiliki keselarasan 1 MB. Pertanyaan 6.12 dan 6.13 membahas hal ini secara terperinci dan juga memberikan saran tentang cara membuat header partisi LUKS lebih besar. Namun, saya tidak yakin mungkin membuatnya cukup besar untuk memastikan bahwa sistem file ZFS Anda akan dibuat pada batas 4K. Saya akan tertarik mendengar bagaimana ini bekerja untuk Anda jika ini adalah masalah yang perlu Anda selesaikan. Karena Anda menggunakan drive 2TB, Anda mungkin tidak menghadapi masalah ini.
ZFS akan menyadari kegagalan disk sejauh dapat membaca dan menulis kepada mereka tanpa masalah. ZFS membutuhkan penyimpanan blok dan tidak peduli atau tahu tentang spesifik penyimpanan itu dan dari mana asalnya. Hanya melacak kesalahan baca, tulis, atau checksum yang ditemui. Terserah Anda untuk memantau kesehatan perangkat penyimpanan yang mendasarinya.
Dokumentasi ZFS memiliki bagian tentang pemecahan masalah yang layak dibaca. Bagian tentang mengganti atau memperbaiki perangkat yang rusak menjelaskan apa yang mungkin Anda temui selama skenario kegagalan dan bagaimana Anda bisa menyelesaikannya. Anda akan melakukan hal yang sama di sini untuk perangkat yang tidak memiliki ZFS. Periksa syslog untuk pesan dari driver SCSI Anda, HBA atau pengontrol HD, dan / atau perangkat lunak pemantauan SMART dan kemudian bertindak sesuai.
Semua fitur ZFS akan bekerja sama terlepas dari apakah penyimpanan blok yang mendasarinya dienkripsi atau tidak.
Ringkasan
cryptsetup benchmark
untuk melihat apa yang paling cocok untuk perangkat keras Anda.sumber
geli
digunakan untuk membuat perangkat terenkripsi dan data plaintext tersedia melalui perangkat kedua yang digunakan ZFS. Lihat poin kedua di doc.freenas.org/index.php/Volumes#Encryption .Implementasi alternatif adalah membuat perangkat blok ZVOL ( http://zfsonlinux.org/example-zvol.html ), gunakan LUKS untuk mengenkripsi ZVOL yang baru dibuat dan kemudian membuat sistem file ext4 (atau lainnya) di atas blok terenkripsi alat.
sumber