UbuntuでZFSを使ってみよう 第27回 ZFSのプロパティを見てみよう(9)
前回に引き続き、今回もZFSの設定可能なプロパティについて説明します。
設定可能なZFS ネイティブプロパティ(4)
keyformat=raw|hex|passphrase
keyformatは、ユーザーの暗号化キーをどのようなフォーマットで提供するかを設定します。このプロパティは、データセットが暗号化されている場合にのみ設定されます。
raw(生)キーとhex(16進)キーは、( 選択した暗号化スイートにかかわらず)32バイトの長さで、ランダムに生成されなければなりません。rawの鍵は以下のコマンドで生成できます。
# dd if=/dev/urandom of=/path/to/output/key bs=32 count=1
パスフレーズは 8 から 512 バイトの長さでなければならず、使用する前に PBKDF2(Password-Based Key Derivation Function 2)で処理されます。データセットの作成後に暗号化スイートは変更できませんが、キーフォーマットは zfs change-key
で変更できます。
keylocation=prompt|file://
zfs load-key
や zfs mount -l
などのコマンドで、ユーザーの暗号化キーがデフォルトでどこからロードされるかを制御します。このプロパティは、暗号化ルートである暗号化データセットにのみ設定されます。指定されていない場合、デフォルトは prompt です。
データセットの作成後に暗号化スイートは変更できませんが、keylocationは zfs set または zfs change-key のいずれかで行うことができます。promptが選択された場合、ZFSは暗号化されたデータにアクセスする必要があるときに、コマンドプロンプトでキーを要求します。この設定では、STDIN経由でキーを渡すこともできますが、ユーザーは秘密にしておくべきキーをコマンドラインに置かないように注意する必要があります。file URIを選択した場合、鍵は指定された絶対ファイルパスから読み込まれます。
pbkdf2iters=iterations
パスフレーズ暗号化キーを暗号化キーとして処理する際に実行する、PBKDF2の反復回数を制御します。このプロパティは、暗号化が有効で、キーフォーマットとしてパスフレーズが選択されている場合にのみ定義されます。PBKDF2 の目的は、ユーザーパスフレーズのブルートフォース攻撃時に必要な計算量を、大幅に増やすことです。そのために、攻撃者は各パスフレーズを計算量の多いハッシュ関数に何度も通してから、結果として得られる鍵を得ます。実際にパスフレーズを知っているユーザーは、このコストを一度だけ支払えばよいことになります。CPUの処理能力が向上するにつれ、総当り攻撃ができなくなるように、この数値を上げる必要があります。現在のデフォルトは35500で、最小値は100000です。このプロパティは、zfs change-key
で変更できます。
exec=on|off
このファイルシステム内からプロセスを実行できるかどうかを制御します。デフォルト値はonです。この onとoffの値は、マウントオプションのexecとnoexecに相当します。
filesystem_limit=count|none
データセットツリーのこのポイントの下に存在できる、ファイルシステムとボリュームの数を制限します。ユーザーが制限値の変更を許可している場合、制限値は強制されません。すでに filesystem_limit を持っているファイルシステムの子孫に filesystem_limit を設定しても、祖先の filesystem_limit を上書きするのではなく、追加の制限を課すことになります。この機能を使用するには、zpool のfilesystem_limit features を有効にする必要があります。
special_small_blocks=size
この値は、小さなファイルブロックを特別な割り当てクラスに含めるための、閾値となるブロックサイズを表します。この値以下のブロックは特別割り当てクラスに割り当てられ、それ以上のブロックは通常クラスに割り当てられます。有効な値は、0または2の累乗で、512Bから1Mまでです。デフォルトのサイズは0で、これは小さなファイルブロックが特別クラスに割り当てられないことを意味します。
このプロパティを設定する前に、特別クラスの vdev をプールに追加する必要があります。特別な割り当てクラスの詳細については、zpoolの説明時に行います。
mountpoint=path|none|legacy
このファイルシステムに使用されるマウントポイントを制御します。
ファイルシステムのマウントポイントのプロパティが変更されると、そのファイルシステムとマウントポイントを継承するすべての子がアンマウントされます。新しい値がlegacyであれば、マウントされないままです。プロパティがそれ以外のlegacyまたはnoneであった場合、またはプロパティが変更される前にマウントされていた場合は、自動的に新しい場所に再マウントされます。また、共有ファイルシステムは共有解除され、新しい場所で共有されるようになります。
終わりに
次回も、今回に引き続き、ZFSの設定可能なプロパティについて説明します。次回をお楽しみに。
さて、このコラムを掲載いただいているデジタル・ヒュージ・テクノロジー社は老舗のOSSインテグレーターです。特にLinuxは強く、OSSを活用した業務システムの実績も多いです。興味がある方は以下のページもご覧ください。
DHT OSS導入コンサルティングサービス