現在、Ubuntu(20.04.5 LTS)を使用して複数のデバイスを設定しようとしていますが、ドライブを暗号化する必要があるため、インストール中にLUKSを使用しています。 (このプロセスでは、「新しいUbuntuのインストールにLVMを使用する」+「セキュリティのために新しいUbuntuインストールを暗号化する」を選択しました。)
しかし、ドライブ暗号化は(予想どおり)はるかに遅いですが、この記事no_read_workqueue
no_write_workqueue
dm-crypt I / O操作を高速化するために2つのフラグと(最後の段落)を使用する可能性について説明します。注:私はNVMe SSDを使用しています。パッチは Linux カーネル 5.9 以降にマージされ、5.14 があるため使用できます。この機能をデフォルトで有効にするにはどうすればよいですか?
/etc/crypttab
フラグを追加してファイルを変更しました。
nvme0123abcdef-etc UUID=123abcdef-etc none luks,discard,no-write-workqueue,no-read-workqueue
これは速度をまったく変えません。
デフォルトのフラグを設定しようとしました。
cryptsetup --perf-no_read_workqueue --perf-no_write_workqueue --persistent refresh root
これによりエラーが発生します。--perf-no_read_workqueue: unknown option
cryptsetup luksDump /dev/sdaX | grep Flags
dmsetup table
また、->(「なし」が表示されている)または ->(が表示されている)を使用してもallow_discards
フラグは表示されません。
注:情報を取得するためにこのWikiページを使用しました。https://wiki.archlinux.org/title/Dm-crypt/Specialties
答え1
私はDebian 11についても同じ考えを持っていました。
/etc/crypttab 修正後に実行が必要
sudo update-initramfs -k all -u
起動設定を更新します。このコマンドが警告を表示すると、システムはこれらのオプションをサポートしていません。これはDebian 11の場合です(ただし、ランタイム変更はサポートされています)。
以下を使用して現在のフラグを確認できます。
sudo dmsetup table nvme0n1p3_crypt --showkeys
0 3515592704 crypt aes-xts-plain64 :64:logon:cryptsetup:asdf-asdf-asdf-asdf 0 259:3 32768 1 allow_discards
次のコマンドを使用して、実行時にオプションを変更できます。
sudo cryptsetup refresh nvme0n1p3_crypt --perf-no_read_workqueue --perf-no_write_workqueue --allow-discards
残念ながら、ディスク暗号化キーを再入力する必要があるため、自動化が困難になります。
しかし、これらのオプションには欠点がないようです。私のシステム(Ryzen 2700 + WD SN570 2TB)では、シーケンシャル書き込み性能は25%低下し、ランダムI / O性能は30%増加しました。
答え2
問題は、cryptsetup
バッグが古すぎるからである可能性が高いです。これらのパフォーマンスフラグのサポートはバージョン2.3.4に追加されました(参照:リリースノート)、Ubuntu 20.04ではバージョン2.2.2のみを使用できます(参照:Ubuntuパッケージ)。
したがって、最良の選択肢は最新のディストリビューションにアップグレードすることです。