GEOM eli を用いてのデータ整合性の確保 ― 2008年04月21日 16時03分29秒
geli init
に渡す引数が若干変更された。
o Can optionally perform data authentication (integrity verifica-
tion) utilizing one of the following algorithms: HMAC/MD5,
HMAC/SHA1, HMAC/RIPEMD160, HMAC/SHA256, HMAC/SHA384 or
HMAC/SHA512
これを用いると、geli にてデータの破損が検知される。graid3 と違い geli ではデータの修復が出来ないので、それこそセキュリティ的な観点からの整合性の意味が強い。ディスク構成に制限が無く重要なデータであれば、grade3 を構築した上に geli を動かしたい。この時、geli のデータ整合処理は必要はない。なお、graid3 は最低三台のディスクが必要だ。
geli この機能を使うとデータ検証用のデータをディスクに書き込むことになる。480 バイトのデータに対し 32 バイトのチェックサムが使われる。ディスクでは 512 バイト毎にデータを扱う。そして、geli ではデータとチェックサムが同一のセクタに配置される。それゆえ、チェックサムの値を変えずにデータのみを書き換えるのは不可能との事だ。
しかし、それゆえに初期値のブロックサイズを使うと実質的に使えるディスク容量が大幅に減る。初期値のままだと、50% から 60% ぐらいの容量しか使えなくなる。そこで、geli のデバイスサイズを 4kB の倍数にする。そうする事により、480 バイトのデータと 32 バイトのチェックサムが最も効率的に配置されるようになり、元のおよそ 89% の容量を使える様になる。
詳しい背景は、src/sys/geom/eli/g_eli_integrity.c にて、解説されている。
次回。
最近のコメント