GNU/Linux >> Belajar Linux >  >> Linux

Enkripsi ZFS RAID dan LUKS di Linux

Solusi 1:

Salah satu server yang saya kelola menjalankan jenis konfigurasi yang Anda jelaskan. Ini memiliki enam hard drive 1TB dengan kumpulan RAIDZ terenkripsi LUKS di atasnya. Saya juga memiliki dua hard drive 3TB di cermin ZFS terenkripsi LUKS yang ditukar setiap minggu untuk dibawa keluar lokasi. Server telah menggunakan konfigurasi ini selama sekitar tiga tahun, dan saya tidak pernah mengalami masalah dengannya.

Jika Anda membutuhkan ZFS dengan enkripsi di Linux maka saya merekomendasikan pengaturan ini. Saya menggunakan ZFS-Fuse, bukan ZFS di Linux. Namun, saya yakin hal itu tidak berpengaruh pada hasil selain ZFS di Linux mungkin akan memiliki kinerja yang lebih baik daripada penyiapan yang saya gunakan.

Dalam penyiapan ini, data redundan dienkripsi beberapa kali karena LUKS tidak "mengetahui" Z-RAID. Dalam solusi LUKS-on-mdadm, data dienkripsi sekali dan hanya ditulis ke disk beberapa kali.

Perlu diingat bahwa LUKS tidak mengetahui RAID. Ia hanya tahu bahwa ia duduk di atas perangkat blok. Jika Anda menggunakan mdadm untuk membuat perangkat RAID lalu luksformat itu, mdadm yang mereplikasi data terenkripsi ke perangkat penyimpanan yang mendasarinya, bukan LUKS.

Pertanyaan 2.8 dari FAQ LUKS membahas apakah enkripsi harus di atas RAID atau sebaliknya. Ini memberikan diagram berikut.

Filesystem     <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks      <- bottom

Karena ZFS menggabungkan fungsionalitas RAID dan sistem file, solusi Anda harus 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 berharap akan menggunakan penyimpanan blok mentah daripada partisi. Meskipun Anda dapat membuat zpool menggunakan partisi, ini tidak disarankan karena akan menambah tingkat manajemen yang tidak berguna, dan perlu diperhitungkan saat menghitung berapa offset Anda untuk penyelarasan blok partisi.

Bukankah itu akan sangat menghambat kinerja tulis? [...] 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 lihat algoritme mana yang akan memberikan performa terbaik.

Pertanyaan tentang opsi yang direkomendasikan untuk LUKS ini mungkin juga berguna.

Mengingat Anda memiliki dukungan enkripsi perangkat keras, kemungkinan besar Anda akan 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 tertaut, ashift=12 akan mengatakan bahwa Anda menggunakan drive dengan ukuran blok 4K.

FAQ LUKS menyatakan bahwa partisi LUKS memiliki keselarasan 1 MB. Pertanyaan 6.12 dan 6.13 membahas hal ini secara rinci dan juga memberikan saran bagaimana membuat header partisi LUKS lebih besar. Namun, saya tidak yakin apakah 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 mengetahui kegagalan disk saat beroperasi pada wadah LUKS pemetaan perangkat dibandingkan dengan perangkat fisik?

ZFS akan mengetahui kegagalan disk sejauh dapat membaca dan menulis tanpa masalah. ZFS membutuhkan penyimpanan blok dan tidak peduli atau mengetahui tentang spesifikasi penyimpanan itu dan dari mana asalnya. Itu hanya melacak kesalahan baca, tulis, atau checksum yang ditemuinya. Terserah Anda untuk memantau kesehatan perangkat penyimpanan yang mendasarinya.

Dokumentasi ZFS memiliki bagian 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 dapat mengatasinya. Anda akan melakukan hal yang sama di sini seperti yang Anda lakukan untuk perangkat yang tidak memiliki ZFS. Periksa syslog untuk pesan dari driver SCSI, pengontrol HBA atau HD, dan/atau perangkat lunak pemantauan SMART, lalu lakukan tindakan yang sesuai.

Bagaimana dengan deduplikasi dan fitur ZFS lainnya?

Semua fitur ZFS akan berfungsi sama terlepas dari apakah penyimpanan blok yang mendasarinya dienkripsi atau tidak.

Ringkasan

  1. ZFS pada perangkat yang dienkripsi LUKS berfungsi dengan baik.
  2. Jika Anda memiliki enkripsi perangkat keras, Anda tidak akan melihat peningkatan kinerja selama Anda menggunakan metode enkripsi yang didukung oleh perangkat keras Anda. Gunakan cryptsetup benchmark untuk melihat apa yang akan bekerja paling baik pada perangkat keras Anda.
  3. Pikirkan ZFS sebagai RAID dan sistem file digabungkan menjadi satu kesatuan. Lihat diagram ASCII di atas untuk mengetahui tempatnya di tumpukan penyimpanan.
  4. Anda harus membuka kunci setiap perangkat blok terenkripsi LUKS yang digunakan oleh sistem file ZFS.
  5. Pantau kesehatan perangkat keras penyimpanan dengan cara yang sama seperti yang Anda lakukan sekarang.
  6. Perhatikan penyelarasan blok sistem file jika Anda menggunakan drive dengan blok 4K. Anda mungkin perlu bereksperimen dengan opsi luksformat atau setelan lain untuk mendapatkan penyelarasan yang Anda perlukan untuk kecepatan yang dapat diterima.

Pembaruan Februari 2020

Sudah enam tahun sejak saya menulis jawaban ini. ZFS di Linux v0.8.0 mendukung enkripsi asli, yang harus Anda pertimbangkan jika Anda tidak memiliki kebutuhan khusus untuk LUKS.

Solusi 2:

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 perangkat.


Linux
  1. Perintah Linux:pekerjaan, bg, dan fg

  2. Linux – Sysfs dan Devtmpfs?

  3. Linux Hapus File dan Direktori

  1. Buat brankas file terenkripsi di Linux

  2. penggunaan wildcard linux di cp dan mv

  3. ZFS di Linux, apakah itu berfungsi?

  1. Apa yang dipelajari Stratis dari ZFS, Btrfs, dan Volume Manager Linux

  2. Cara menggunakan snapshot, klon dan replikasi di ZFS di Linux

  3. Cara menginstal dan mengkonfigurasi ZFS di Linux menggunakan Debian Jessie 8.1