Dd
使用 dd 和 nvme 準備加密的慢速 /dev/zero 格式,是否有特定於 nvme 的工具?
我嘗試準備一個用於加密的 nvme,所以我首先在 SO 上關注這篇文章。
但是dd的速度真的很慢(不到100mb/s)。我看到有一個新選項可以在核心 5.9 上加速 dm-crypt(請參閱這篇文章),但在更新我的核心之前,我想知道使用 nvme-cli 格式零工具是否等同於 /dev/zero 來準備磁碟:https ://manpages.debian.org/testing/nvme-cli/nvme-write-zeroes.1.en.html
在 luks2 格式之前準備磁碟的實際(並且非常慢)命令:
cryptsetup plainOpen --key-file /dev/urandom /dev/nvme0n1p2 ecrypt dd if=/dev/zero of=/dev/mapper/ecrypt bs=1M status=progress cryptsetup plainClose
更新 :
使用 dmcrypt 2.3.4 進入核心 5.12,我使用這個新的性能選項:
cryptsetup plainOpen --perf-no_read_workqueue --perf-no_write_workqueue --key-file /dev/urandom /dev/nvme0n1p2 ecrypt
dmsetup table
說選項已正確啟動:ecrypt: 0 1999358607 crypt aes-cbc-essiv:sha256 0000000000000000000000000000000000000000000000000000000000000000 0 259:2 0 2 no_read_workqueue no_write_workqueue
我還驗證了 AES 是用 cpuid 啟動的:
cpuid | grep -i aes | sort | uniq AES instruction = true VAES instructions = false
我有同樣的問題,dd 以 900mb/s 寫入零,然後慢慢降低到 45mb/s …
找到了答案,oflag=direct 會好很多,從 45 Mb/s 跳到 536 Mb/s :)
dd if=/dev/zero of=/dev/mapper/ecrypt oflag=direct bs=1M status=progress
感謝這兩個文章: