私はさまざまなcryptsetup
ボリュームをベンチマークしていますが、Debianで予期しない結果を得ました。
私が使用した電話番号はこの言葉おおよその注意です。スライドの1つは、さまざまな構成のベンチマーク結果を示しています。
私の設定は同じではなく、すべてのテストを仮想マシンで実行するので、結果がまったく同じであるとは思わないが、スライドの内容を大まかに反映する必要があると思います。特に、認証された整合性モードのパフォーマンスは約35(AES-XTS、HMAC-SHA256)認証されていない製品(AES-XTS)、日記完成度と日記ではなく完成度の場合は35%です。
しかし、Ubuntu Server 20.04およびDebian 10.4と同様の結果は次のとおりです。
LUKS2 container:
Capacity 1056964608 B
Read 26.5MB/s
Write 8855kB/s
LUKS2 with hmac-sha256, no journal:
Capacity 1040322560 B
Read 19.0MB/s
Write 6352kB/s
LUKS2 with hmac-sha256, journaled:
Capacity 1040322560 B
Read 18.9MB/s
Write 6311kB/s
整合性を有効にすると、パフォーマンスが約30%低下することが予想されます。しかし、日記と日記ではない完全性の違いはわずかです。つまり、これは元のベンチマークよりはるかに優れているのでうれしいです。しかし、ジャーナルが実際に私の役割を果たしているかどうかはどうすればわかりますが、それではどうやってオプトアウトできますか?
これは私のcryptsetup
フォーマットコマンドです。
cryptsetup luksFormat --type luks2 /dev/sdb --sector-size 4096
cryptsetup luksFormat --type luks2 /dev/sdb --sector-size 4096 --integrity hmac-sha256
cryptsetup luksFormat --type luks2 /dev/sdb --sector-size 4096 --integrity hmac-sha256 --integrity-no-journal
ベンチマークコマンド:
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/dev/mapper/sdb --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75
VMは、それぞれDebianまたはUbuntuのデフォルト設定を使用してVirtualBox 6.1で構成されました。ディスクは 1 GB VDI で、サイズが固定され、ゼロで事前入力され、ホストバッファリングが無効になっています。デフォルトのSSDは4kセクタを使用するので--sector-size 4096
。
興味深いことに、デフォルト--integrity
のバリアントとバリアント--integrity-no-journal
の両方がsdb_dif
ログを含む中間マッピングデバイスを作成し、両方のデバイスはsdb
同じサイズです。
$ sudo integritysetup status /dev/mapper/sdb_dif
/dev/mapper/sdb_dif is active and is in use.
type: INTEGRITY
tag size: 32
integrity: (none)
device: /dev/sdb
sector size: 4096 bytes
interleave sectors: 32768
size: 2031880 sectors
mode: read/write
failures: 0
journal size: 8380416 bytes
journal watermark: 50%
journal commit time: 10000 ms
$ sudo blockdev --getsize64 /dev/mapper/sdb
1040322560
答え1
答えの要約:
cryptsetup format
無視するバナー--integrity-no-journal
。
代わりに、オプションは次のとおりです。
- 毎回
open
常に配信されます--integrity-no-journal
。 - 初めて開くとき(つまり、内部デバイスをファイルシステムにフォーマットする場合、または内部デバイスをMD RAIDに追加する場合)に、
--persistent --integrity-no-journal
保存--integrity-no-journal
設定を提供します。これにより、open
今後はフラグが不要になります。このオプションはcryptsetup
directを使用している場合にのみ適用され、効果はありませんintegritysetup
。 open
デバイスが編集されたときに発生しますrefresh --persistent --integrity-no-journal
。このオプションはcryptsetup
直接使用する場合にのみ適用され、効果はありませんintegritysetup
。
前のテキスト:
--integrity-no-journal
にロゴを提供しましたintegritysetup open
か?dm-integrity
そうだと思います。いいえフォーマットするときは、スーパーブロックに既存のログを保存します(いいえ)。
私は使用しますintegritysetup format /dev/sdb1 --no-wipe
。
次に、integritysetup open /dev/sdb1 int-sdb1
を使って開きますsync; echo 1 > /proc/sys/vm/drop_caches; dd count=16384 bs=4096 if=/dev/zero of=/dev/mapper/int-sdb1
。これは常に2.1 Mb / sから2.4 Mb / sの間の結果を提供します。
閉じてから再度開き、integritysetup open /dev/sdb1 int-sdb1 --integrity-no-journal
同じdd
コマンドを実行しました。今回は4.0Mb/sから7.0Mb/sに速度が向上しましたが、これはかなりの改善です。大きな違いは、おそらくフラッシュ変換レイヤーによるものです。それは不都合な使い捨て安価なディスクです。
私はそれを繰り返したintegritysetup format /dev/sdb1 --no-wipe --integrity-no-journal
。繰り返しますが、重要なのは寄付かどうかです--integrity-no-journal
。open
注文する、いいえ到着format
注文する。
したがって、これは不明確な質問かもしれませんintegritysetup
。コマンド--integrity-no=journal
によるとformat
。