AES-NIは、Solaris 11でZFS v31暗号化を高速化します。

AES-NIは、Solaris 11でZFS v31暗号化を高速化します。

これがこの質問をするのに適した場所であるかどうかはわかりません。そうでない場合は、適切な場所に自由に移動してください。

ラボシステムのESXi 5.0からSolaris 11.11.11 VMでZFS v31の暗号化機能をテストしています。dd11台のディスクRAIDZ3で暗号化されたフォルダをテストすると、ひどい結果が得られました。

ddベンチマーク:

# time dd if=/dev/zero of=/mypool/storage/dd.tst bs=1024000 count=10000
10000+0 records in
10000+0 records out

real    1m52.604s
user    0m0.010s
sys     0m2.715s
# time dd if=/mypool/storage/dd.tst of=/dev/null bs=1024000
10000+0 records in
10000+0 records out

real    3m15.547s
user    0m0.015s
sys     0m4.768s

翻訳すると、次のようになります。

Write: 90.94 MB/s
Read: 52.366 MB/s

CPUも100%使用します。

これに対して暗号化がない場合、書き込み速度はほぼ700MB/秒、読み取り速度は約900MB/秒でした。

示されているように、isainfo -vaesはVMに渡されます。

# isainfo -v
64-bit amd64 applications
        xsave pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp cx16 sse3 sse2 sse
        fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
        xsave pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp ahf cx16 sse3 sse2
        sse fxsr mmx cmov sep cx8 tsc fpu

はい、あなたが何を考えているのか知っています。ベアメタルを試してみたはずですが、そうしました。ベアメタルで実行しても同じ結果が得られました。仮想マシンにあると述べた理由は、AES-NIが仮想マシンとまったく同じ仕様を使用して、ESXi 5.0のWindows 7 64ビット仮想マシンで実際にほぼ最高速度でTrueCryptと連携して動作するためです。

仮想マシンの仕様:

  • CPU:2コア(Intel Xeon E3-1235 @ 3.2GHz)
  • メモリ:8GB
  • SASコントローラ(Vt-dおよびPCIパススルー経由):IBM M1015(フラッシュITファームウェア)2個
  • HDD:11x 2TB Samsung F4EG(IBM M1015を使用)

トラブルシューティングはどこで始めるべきですか? Solaris 11でAES-NIアクセラレーション暗号化を使用して成功した人はいますか?それでは、設定はどうでしたか、特別な作業が必要でしたか?

ベストアンサー1

AES-NIはデフォルトで使用され、設定は不要です。 ZFSはSolarisカーネル暗号化フレームワークインタフェースを使用します。したがって、非常に単純な DTrace ビットを使用すると、Intel aesenc コマンドを使用する関数が呼び出されたかどうかがわかります。

#!/usr/sbin/dtrace -Fs
fbt::aes_encrypt_intel:entry
{
}

fbt::aes_encrypt_intel:return
{
}

ZFSの暗号化を有効にすると、チェックサムも自動的にsha256-macに切り替わります。したがって、checksum = on(例:fletcher4)ではなく、checksum = sha256を使用するZFSデータセットの比較はより公平です。

おすすめ記事