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.
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.
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.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Karena ZFS menggabungkan fungsi RAID dan sistem file, solusi Anda perlu terlihat seperti berikut.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
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.
Bukankah itu akan secara signifikan menghambat kinerja penulisan? [...] CPU saya mendukung Intel AES-NI.
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 ke zfs
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.
Apakah ZFS akan menyadari kegagalan disk ketika beroperasi pada wadah LUKS alat-mapper sebagai lawan perangkat fisik?
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.
Bagaimana dengan deduplikasi dan fitur ZFS lainnya?
Semua fitur ZFS akan bekerja sama terlepas dari apakah penyimpanan blok yang mendasarinya dienkripsi atau tidak.
Ringkasan
- ZFS pada perangkat yang dienkripsi LUKS berfungsi dengan baik.
- Jika Anda memiliki enkripsi perangkat keras, Anda tidak akan melihat performa yang baik selama Anda menggunakan metode enkripsi yang didukung oleh perangkat keras Anda. Gunakan
cryptsetup benchmark
untuk melihat apa yang paling cocok untuk perangkat keras Anda.
- Pikirkan ZFS sebagai RAID dan sistem file yang digabungkan menjadi satu kesatuan. Lihat diagram ASCII di atas untuk tempat yang sesuai dengan tumpukan penyimpanan.
- Anda harus membuka kunci setiap perangkat blok terenkripsi LUKS yang digunakan sistem file ZFS.
- Pantau kesehatan perangkat keras penyimpanan dengan cara yang sama seperti yang Anda lakukan sekarang.
- Berhati-hatilah dengan perataan blok sistem file jika Anda menggunakan drive dengan blok 4K. Anda mungkin perlu bereksperimen dengan opsi luksformat atau pengaturan lain untuk mendapatkan perataan yang Anda butuhkan untuk kecepatan yang dapat diterima.