Dd

使用 dd 和 nvme 準備加密的慢速 /dev/zero 格式,是否有特定於 nvme 的工具?

  • April 22, 2021

我嘗試準備一個用於加密的 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

感謝這兩個文章:

引用自:https://unix.stackexchange.com/questions/646257