Sata 3インターフェースのラップトップ(Samsung 840 Pro)に128 GB SSDがインストールされています。このラップトップには、i5 3210m Ivy Bridge Intelプロセッサーと8 GBのRAMもあります。
フルディスク暗号化を取得するためにグラフィカルインストーラーを使用して、Ubuntu 12.10をインストールしました。私は自分が得たものよりも良い結果をもたらさなければならないスペックを期待していたので、ちょっと失望しています。
これを見て SSDベンチマーク ページでは、私のプロセッサができると主張しています:
取得した数値を見ると、AES-NIが有効になっていない可能性があります。でもまず ...
暗号化されていないデータの読み取りは高速です。
# hdparm -Tt /dev/sda1
/dev/sda1:
Timing cached reads: 14814 MB in 2.00 seconds = 7411.70 MB/sec
Timing buffered disk reads: 242 MB in 0.48 seconds = 502.75 MB/sec
それは実際、SSDの「最大530 MB/s」の仕様に近く、dd
テストを実行しても上記と同様の結果が得られます。
暗号化されたデータの書き込みはdm-cryptでも高速です(それ以外の場合、eCryptfsの場合、書き込み時のパフォーマンスは100 MB/s未満です)、SSD仕様に近い数字です(書き込みはバッファリングされているかと思われます):
# dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 2.93896 s, 365 MB/s
ただし、暗号化されたデータの読み取りは別の話です。
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 5.85956 s, 183 MB/s
このメッセージを書いている間、私は実際に183 MB/sを得ることができました。これは、この数がさまざまだからです。通常は約150 MB/sですが、フレッシュブートで300 MB/sに近づきましたが、アプリを起動しなくてもパフォーマンスは200 MB/sに徐々に低下します。このテストを実行している間、I/Oを実行している他のプロセスはありません(iotop
で見られるように)。
また、悪い結果をもたらすhdparm
のテストもここにあります:
# hdparm -Tt /dev/mapper/sda2_crypt
/dev/mapper/sda2_crypt:
Timing cached reads: 14816 MB in 2.00 seconds = 7412.86 MB/sec
Timing buffered disk reads: 422 MB in 3.01 seconds = 140.11 MB/sec
また、htop
を見て実験を試みました。..i5プロセッサはハイパースレッディングを行うため、見たものをどのように解釈するかわかりませんが、他の2つのスレッドは未使用のままにします。実際、(バッファリングを防ぐために)2つの異なるファイルからdd
を使用して読み取る2つのプロセスを開始すると、iotop
は合計で約400 MB /秒を報告します。したがって、これは間違いなく、CPUに縛られているように感じます。
私の失望は、私のi5プロセッサーが AES-NI に対応しているという事実から来ています。上記と同じテストを使用して、暗号化されていないデータが500 MB /秒以上で読み取られています。そのため、暗号化されたパーティションが少なくとも3倍遅くなるという話をしています。
私のdm-cryptインストールがAES-NIを使用しているかどうかはわかりません。 lsmod
の出力は次のとおりです。
# lsmod | grep aes
aesni_intel 51038 35
cryptd 20404 10 ghash_clmulni_intel,aesni_intel
aes_x86_64 17256 1 aesni_intel
cryptsetup
の出力は次のとおりです。
# cryptsetup status sda2_crypt
/dev/mapper/sda2_crypt is active and is in use.
type: LUKS1
cipher: aes-xts-plain64
keysize: 512 bits
device: /dev/sda2
offset: 4096 sectors
size: 249565184 sectors
mode: read/write
flags: discards
それで、これは予想されますか? AES-NIはこれ以上のものを改善すべきではないでしょうか?
また、違いがあるかどうかを確認するためにAES-NIを無効にする方法は?そして、どういうわけかそれを有効にする必要がありますが、検索でヒントを見つけていません。
おかげで、
Samsung 840 Proは、ハードウェアAES暗号化をサポートしています。ラップトップBIOSがATAセキュリティ機能モードセットのマスターパスワードとユーザーパスワードをサポートしている場合は、幸運です。
BIOSでATAマスターパスワードを設定し、ドライブの安全な消去を行うことにより、ドライブファームウェアは新しいランダムAESキーを生成する必要があります。安全に消去した後、適切なATAマスターおよびユーザーパスワードを設定したことを確認してください。私が確立することができた限り(ここで私の投稿を参照してください http://vxlabs.com/2012/12/22/ssds-with-usable-built-in-hardware-based-full-disk- encryption / )Samsungは、ATAパスワードでAESキーも暗号化します。
これにより、フルスピードのAES暗号化が提供され、ソフトウェアは不要です。
Ubuntuに誤った設定があり、その結果、aesni_intelモジュールが、ブートロックされていないデバイスの暗号を処理するのに十分早くロードされません。私は私のマシンでこれを修正することができました:
Sudo vim /etc/initramfs-tools/modules
最後の行の下に、追加します
# enable h/w accelerated encryption
cryptd
aes_x86_64
aesni_intel
次に実行する
Sudo update-initramfs -u -k all
再起動してお楽しみください。この後、同様のSSDで、CPU使用量がほとんどない500MB/sの読み取りと書き込みが発生していました。
このバグの詳細は https://bugs.launchpad.net/ubuntu/+source/cryptsetup/+bug/908387/comments/7 にあります。