web-dev-qa-db-ja.com

LinuxLUKSとファイルシステムの選択

LUKS暗号化パーティションで実行したときに最高のパフォーマンスを示すファイルシステムはどれですか? LUKSパーティションがSSD上にあるときにf2fsを使用することは理にかなっていますか、それともデバイスマッパーの抽象化によってf2fsのSSD最適化が役に立たなくなりますか?

12
Kevin

アドバイスはたくさんありますが、暗号化の使用効率に関する経験的な結果はほとんどありません。

私はそのような研究の1つを見つけました: SSD Linuxベンチマーク:ファイルシステムと暗号化方法の比較 。以下の表では、メジャーはreal/user/sysであり、最良の結果は緑色で表示され、最悪の結果は赤色で表示されます。

click for a larger imageクリックすると大きな画像が表示されます

これらの結果に基づいて、作成者はdm-cryptをaes-xts-plainモードで使用し、128ビットのキー長とbtrfsをssdアライメントとcompress=lzoで使用することを決定しました。

もう1つの有用な記事は buntu 14.04 LTSでのLinuxディスク暗号化のパフォーマンスへの影響 です。ストックインストールオプション(ディスク暗号化なし)の3つの構成、LVMでLUKSを使用したフルディスク暗号化方式、およびeCryptfsベースのホームディレクトリ暗号化について、インストール中のCPU使用率を調査しました。結果は下のグラフにまとめられており、結論として、暗号化なしのインストールの平均は26%でしたが、LVM上のLUKSとeCryptfs暗号化の両方の平均は約30〜31%であり、パフォーマンスはほぼ同等です。

click for a large imageクリックすると大きな画像が表示されます

経験的な結果はありませんが、多くの良いアドバイスがある記事は LinuX、SSD、およびディスク暗号化 です。私はこの記事を読むことをお勧めします、そしてここに与えられた主なアドバイスがあります:

  1. SSDパーティションの場合、ファイルとディレクトリのアクセス時間の記録を抑制するために、少なくともマウントオプションnoatimenodiratimeを追加する必要があります。
  2. 一時ファイルにtmpfsを使用してramdiskを設定します。
  3. noop または deadline を使用するようにディスクスケジューラを変更します。
  4. デバイスレベルの書き込みキャッシュを有効にする
  5. ディスクキャッシュを使用しないようにブラウザをパラメータ設定します。
8
harrymc

ローエンドからミドルエンドのシステムでいくつかのテストを行いました。以下の結果。

table

結論として、暗号化によってファイルシステムの最適化が役に立たなくなるわけではないようです。表からわかるように、dmcrypt/LUKS(AES256)の場合、デフォルトで(暗号化なしで)高速であったほとんどすべてのシナリオで、_F2FS_ファイルシステムは_EXT4_よりも高速でした。やや意外なことに、暗号化なしでは機能しない場合、つまりBonnie++ Sequential Output (Per char)テストと_Flexible I/O Tester Sequential Read_テストでも顕著な利点がありました。

この同じシナリオでは、2つのテスト(シーケンシャル書き込み-Bonnie ++とFIO)でも遅くなりましたが、とにかくそれほど遅くはありませんでした。あなたのマイレージは異なる場合があります。

この回答には必須ではないため、時間が限られているため、EXT4をAES-128ビットでテストしませんでした。

注:AES-128ビットでのテストで非常に大きく奇妙な偏差が観察されました。ほとんどのテストで最大15%の変動があり、1つのケースでは37%(!)ですらあります。理由はわかりません。テストの間、私は他の目的でシステムを使用しませんでした。 システム(ルート)自体はAES-256で暗号化されているので、CPUパイプライン/ opcacheに関する架空の説明を考えることができますが、実際にはまだわかりません。 (これは、AES-256ビットパーティションのロックを解除せずにライブCDからテストする場合にも発生するため、理由はありません)

他の場所では、偏差は3.6%(通常1.4%)未満に保たれました。 4%の許容誤差を採用しています。したがって、これらの結果では、4%未満の差異は無視する必要があります。

テスト設定:

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

ASCII形式の結果の表(「無関係」と見なされる差異は省略されています):

_                                                                                                                |+===================================+| 
                                                                                                                ||            % 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 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
_
_
5
Marc.2377