Linux LUKS dan pilihan sistem file

12

Sistem file mana yang menampilkan kinerja terbaik ketika dijalankan pada partisi terenkripsi LUKS? Apakah masuk akal untuk menggunakan f2fs ketika partisi LUKS menggunakan SSD, atau apakah abstraksi mapper-perangkat membuat optimasi f2fs SSD tidak berguna?

Kevin
sumber

Jawaban:

8

Ada banyak saran, tetapi sangat sedikit hasil empiris untuk efisiensi penggunaan enkripsi.

Saya menemukan satu studi seperti itu : Pembandingan Linux SSD: Membandingkan sistem file dan metode enkripsi . Pada tabel di bawah, ukurannya nyata / pengguna / sistem dan hasil terbaik berwarna hijau sedangkan yang terburuk diwarnai merah:

Klik untuk gambar yang lebih besarKlik untuk gambar yang lebih besar

Berdasarkan hasil ini, penulis telah memutuskan untuk menggunakan dm-crypt dalam mode aes-xts-plain dengan 128 bit keylength dan btrfs dengan ssd alignment dan compress=lzo.

Artikel lain yang bermanfaat adalah Dampak Kinerja Enkripsi Disk Linux Di Ubuntu 14.04 LTS . Ia mempelajari penggunaan CPU selama instalasi pada tiga konfigurasi opsi pemasangan stok (tanpa enkripsi disk), metode enkripsi disk penuh menggunakan LUKS pada LVM dan enkripsi direktori home berbasis eCryptfs. Hasilnya dirangkum dalam grafik di bawah ini, dan kesimpulannya adalah bahwa instalasi tanpa enkripsi rata-rata 26%, sedangkan LUKS pada LVM dan enkripsi eCryptfs keduanya rata-rata sekitar 30 ~ 31%, sehingga keduanya hampir setara dalam kinerja.

klik untuk gambar besarKlik untuk gambar yang lebih besar

Artikel yang tidak memiliki hasil empiris tetapi banyak saran bagus adalah LinuX, SSD, dan enkripsi disk . Saya sarankan membaca artikel ini, dan berikut ini adalah saran utama yang diberikan:

  1. Untuk partisi SSD, Anda setidaknya harus menambahkan opsi pemasangan noatimedan nodiratimeuntuk menekan pembukuan waktu akses untuk file dan direktori.
  2. Siapkan ramdisks menggunakan tmpfs untuk file sementara.
  3. Ubah penjadwal disk untuk menggunakan noop atau tenggat waktu .
  4. Aktifkan cache tulis tingkat perangkat
  5. Parameter browser agar tidak menggunakan cache disk.
harrymc
sumber
5

Saya melakukan beberapa pengujian dengan sistem low-to-middle end. Hasil di bawah ini.

meja

Kesimpulannya, tampaknya enkripsi tidak membuat optimisasi sistem file tidak berguna. Seperti yang dapat Anda lihat di tabel, untuk dmcrypt / LUKS (AES256), sistem F2FSfile lebih cepat daripada EXT4di hampir semua skenario di mana ia lebih cepat secara default (tanpa enkripsi, yaitu). Agak mengherankan, itu juga memberikan manfaat nyata dalam kasus di mana ia tidak akan tanpa enkripsi - yaitu, Bonnie++ Sequential Output (Per char)dan Flexible I/O Tester Sequential Readtes.

Untuk skenario yang sama ini juga lebih lambat dalam dua tes (Sequential Write - Bonnie ++ dan FIO), tetapi tidak jauh lebih lambat. Jarak tempuh Anda mungkin beragam.

Saya tidak menguji EXT4 dengan AES-128bits karena waktu yang terbatas karena itu tidak penting untuk jawaban ini.

Catatan: Saya mengamati penyimpangan yang sangat besar dan aneh dalam pengujian dengan AES-128bits. Hingga 15% variasi dalam sebagian besar tes, dan bahkan 37% (!) Dalam satu kasus. Tidak yakin kenapa. Saya tidak menggunakan sistem untuk hal lain selama tes berlangsung. Sistem (root) itu sendiri dienkripsi dengan AES-256, jadi saya bisa memikirkan penjelasan hipotetis yang melibatkan jaringan pipa CPU / opcache, tapi ... Benar-benar belum tahu. (Ini juga terjadi ketika pengujian dari CD langsung, tanpa pernah membuka kunci partisi AES-256bit, jadi itu bukan alasannya).

Penyimpangan disimpan di bawah 3,6% (1,4% khas) di tempat lain. Saya mengadopsi margin kesalahan 4%. Dengan demikian, perbedaan yang lebih kecil dari 4% harus diabaikan untuk hasil ini.

Pengaturan tes:

SSD: Kingston SV300S37A/120G
Mainboard: ASUS Sabertooth 990FX R2.0
CPU: AMD FX-6350 @ stock
Kernel version: 4.11.3
IO Scheduler: CFQ
All tests were run using an 80GB secondary partition.

Tabel hasil dalam format ASCII (perbedaan yang dianggap "tidak relevan" dihilangkan):

                                                                                                                |+===================================+| 
                                                                                                                ||            % Change               ||
                                      |+=====================+=====================+=================+|         ||--------+--------+--------+--------||
                                      ||   (no encryption)   |       AES-256       |    AES-128      ||         ||   F2FS / EXT4   |Crypto / NoCrypto||
|+============+========================+----------+----------+----------+----------+------+----------||=========||--------+--------+--------+--------+|
|| Test suite | Test Method            | EXT4     | F2FS     | EXT4     | F2FS     | EXT4 | F2FS     || Unit    ||nocrypto| aes256 | aes128 | aes256 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
|| Manual     | Read                   | 390.6    | 391.59   | 320      | 325.6    | -    | 345.36   || MiB/s   ||        |        | -11.81 | -16.85 ||
||(cp and dd) | Write (zeros)          | 501.96   | 517.17   | 96.9     | 96.7     |      | 112.16   || MiB/s   ||        |        | -78.31 | -81.30 ||
||            | Write (random data)    | 100.44   | 97.99    | 91.8     | 89.5     |      | 97.64    || MiB/s   ||        |        |        | -08.66 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
||            | Seq. Output – Per char | 80.68    | 83.76    | 63.56    | 80.59    | -    | 75.56    || MiB/s   ||        | +26.79 | -09.79 |        ||
||            | Seq. Output – Block    | 498.92   | 492.42   | 104.74   | 101.13   |      | 90.9     || MiB/s   ||        |        | -81.54 | -79.46 ||
|| Bonnie++   | Seq. Output – Rewrite  | 196.4    | 198.99   | 74.69    | 70.8     |      | 70.27    || MiB/s   ||        | -05.21 | -64.69 | -64.42 ||
||            | Seq. Input - Per char  | 86.93    | 86.04    | 84.01    | 81.25    |      | 87.84    || MiB/s   ||        |        |        | -05.57 ||
||            | Seq. Input – Block     | 352.57   | 355.99   | 286.36   | 289.24   |      | 304.5    || MiB/s   ||        |        | -14.46 | -18.75 ||
||            | Random seeks           | 9452.9   | 9102.2   | 8142.3   | 8224.8   |      | 7431.4   || ops/s   ||        |        | -18.36 | -09.64 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| Fs-mark    | 1000 files, 1 thread   | 193.7    | 236.6    | 93.6     | 103.7    | -    | 73.9     || files/s || +18.13 | +10.79 | -68.77 | -56.17 ||
||            | 5000 files, 4 threads  | 310.1    | 348.8    | 90.9     | 99       |      | 91.6     || files/s || +11.10 | +08.91 | -73.74 | -71.62 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
||            | Random read            | 56.77    | 69.86    | 58.79    | 63.51    |      | 61.93    || MiB/s   ||        |        |        |        ||
||            |                        | 14188    | 17461    | 14695    | 15874    |      | 15479    || IOPS    || +23.07 | +08.02 | -11.35 | -09.09 ||
|| Flexible   |                        |          |          |          |          | -    |          ||         ||        |        |        |        ||
|| I/O        | Random write           | 59.91    | 78.99    | 52.2     | 63.75    |      | 67.75    || MiB/s   ||        |        |        |        ||
|| Tester     |                        | 14973    | 19745    | 13046    | 15935    |      | 16934    || IOPS    || +31.87 | +22.14 | -14.24 | -19.30 ||
||            |                        |          |          |          |          |      |          ||         ||        |        |        |        ||
||            | Sequential read        | 284.02   | 247.57   | 95.14    | 95.17    |      | 95.98    || MiB/s   ||        |        |        |        ||
||            |                        | 71001    | 61889    | 23781    | 23788    |      | 23991    || IOPS    || -12.83 |        | -61.24 | -61.56 ||
||            |                        |          |          |          |          |      |          ||         ||        |        |        |        ||
||            | Sequential write       | 94.06    | 100.77   | 100.63   | 96.56    |      | 86.93    || MiB/s   ||        |        |        |        ||
||            |                        | 23512    | 25188    | 25153    | 24137    |      | 21728    || IOPS    || +07.13 | -04.04 | -13.74 | -04.17 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
_
Marc.2377
sumber