さて、とある事情でデータ暗号化が必須という事態が発生したので、色々なソリューション(←IT業界が大好きな表現)をチェックしていたのだが。
Windows Serverなら追加ライセンス等不要で使えてOS統合なので(統合管理が不要なら)お手軽、というBitLockerをチェックしていた時に、何だか引っかかるモノがあったので真面目にチェックしてみたのだが・・・。
BitLockerってReadは兎も角Writeが重てぇ
ということに今更気づいてしまったのであり。
具体的には、仮想マシンを使った検証環境の(巨大)ファイルコピーで、以下のようなCPU負荷率の数字が。
暗号化なし → 暗号化なし 8%
暗号化なし → 暗号化済み 19% (暗号化のみ:+11%)
暗号化済み → 暗号化なし 13% (復号のみ:+5%)
暗号化済し → 暗号化済み 25% (復号+暗号化:+17%)
♯一応仮想4コア・4GBメモリ・Windows Server 2012R2・Hyper-V。
以上のように、暗号化の方が復号より2倍近く重い、という実験結果が。
上記環境で転送速度は大体100~120MB/Sなので、本番環境で要求される数字と比べても控えめなのだが、それでこの数字かぁ・・・と。
まぁコレを「復号を頑張って軽くした」と評価するのか「暗号化が重過ぎる」と評価するのかは判断の世界だと思うが、一般的なクライアント環境では読込の方が圧倒的に多いので、それに向けてチューンしたという手法自体はまぁ悪くないかと。
・・・というか、BitLockerってやっぱりクライアント向け実装でないのかね。
サーバ用途だと(今回想定のように)ガンガン書き込むのが前提なんて特別珍しくもないワケで。
ん~やっぱりハードウェア暗号化を考えた方がいいかねぇ・・・。
あ、最後に。
MicrosoftはHyper-V環境で仮想マシンからBitLockerを使うことをサポートしていません、念のため。暗号化したければホスト側VHDや外部ストレージ側で暗号化しろとのこと。
とはいえ実際には動いてしまうしちょっと触っている範囲では不具合や制約にも遭遇したことは無いのだが、あくまで検証ですから、ということで。