以降の節では、ZFS ファイルシステムの新機能を概説します。
ZFS とフラッシュインストールのサポート - Solaris 10 10/09 では、JumpStart プロファイルをセットアップして、ZFS ルートプールのフラッシュアーカイブを識別できます。詳細は、『Solaris ZFS 管理ガイド』を参照してください。
ZFS のユーザーおよびグループ割り当ての設定 - Solaris の以前のリリースでは、割り当てと予約を ZFS ファイルシステムに適用し、容量の管理と予約を実行できました。Solaris のこのリリースでは、特定のユーザーやグループが所有するファイルによって消費される容量に割り当て制限を設定できます。ユーザーやグループの数が多い環境では、ユーザーやグループに対して割り当て制限を設定するのが有効です。zfs userspace および·zfs groupspace プロパティーを次のように使用して、ユーザーやグループに割り当て制限を設定できます。
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins |
ユーザーまたはグループの現在の割り当て制限の設定は、次のようにして表示できます。
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local |
実行権用 ZFS ACL Pass Through 継承の使用 - Solaris の以前のリリースでは、ACL 継承を適用して、すべてのファイルを 0664 または 0666 アクセス権で作成することができました。このリリースでは、継承された ACL に、ファイル作成モードの実行ビットをオプションとして含めることができます。このためには、新たに追加された実行権用 Pass Through 継承を使用します。
ZFS データセットで aclinherit=passthrough-x が有効になっている場合、cc または gcc ツールから生成された出力ファイルに実行権を含めることができます。継承された ACL に実行権が含まれていない場合、コンパイラからの実行可能な出力は、chmod コマンドを使用してファイルのアクセス権を変更するまで実行できません。
ZFS ストレージプールでのキャッシュデバイスの使用 – Solaris 10 10/09 リリースでは、プールを作成し、ストレージプールのデータをキャッシュするための「キャッシュデバイス」を指定することができます。キャッシュデバイスにより、メインメモリーとディスクの間にキャッシュ層が追加されます。キャッシュデバイスを使用すると、ほぼ静的なコンテンツをランダムに読み込む作業負荷のパフォーマンスが大幅に向上します。
プールの作成時に 1 つ以上のキャッシュデバイスを指定できます。次に例を示します。
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
キャッシュデバイスの使用が環境に照らし合わせて適切かどうかを判定するための詳細な情報は、『Solaris ZFS 管理ガイド』を参照してください。
ZFS プロパティーの拡張機能 - Solaris 10 10/09 リリースでは、ZFS プロパティーに次のような拡張が加えられています。
プールの作成時に、ZFS ファイルシステムプロパティーを設定できます。次の例では、プールの作成時に作成される ZFS ファイルシステムについて、圧縮が有効になります。
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
ZFS ファイルシステムに 2 つのプロパティーを設定することで、一次キャッシュ (ARC) または二次キャッシュ (L2ARC) にキャッシュされる内容を制御できます。キャッシュのプロパティーは、次のように設定します。
primarycache – ARC にキャッシュされる内容を制御します。
secondarycache - L2ARC にキャッシュされる内容を制御します。
これらのプロパティーは、既存のファイルシステムに設定できます。または、ファイルシステムの作成時に設定できます。次に例を示します。
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
一部のデータベース環境では、ユーザーデータをキャッシュしないほうが利点が得られることがあります。キャッシュプロパティーの設定が、使用している環境に照らし合わせて適切かどうかを判定する必要があります。
詳細は、『Solaris ZFS 管理ガイド』を参照してください。
容量使用のプロパティーを使用して、クローン、ファイルシステム、およびボリュームの容量使用を特定できますが、スナップショットの容量は特定できません。属性は次のとおりです。
usedbychildren - データセットの子によって使用される容量を特定します。この容量は、データベースのすべての子が破棄された場合に解放されます。このプロパティーの省略名は usedchild です。
usedbydataset - このデータセット自体によって使用される容量を特定します。この容量は、データベースが破棄された場合に解放されますが、このためには先にすべてのスナップショットを破棄し、refreservation をすべて削除する必要があります。このプロパティーの省略名は usedds です。
usedbyrefreservation - このデータセットの refreservation セットによって使用される容量を特定します。この容量は、refreservation が削除された場合に解放されます。このプロパティーの省略名は usedrefreserv です。
usedbysnapshots - このデータセットのスナップショットによって消費される容量を特定します。具体的には、これはデータセットのスナップショットがすべて破棄された場合に解放される容量です。これはスナップショットの used プロパティーの値を単純に合計した結果ではないことに注意してください。複数のスナップショットで共有されている容量も存在するためです。このプロパティーの省略名は usedsnap です。
これらの新しいプロパティーは、used プロパティーの値を、容量を消費する各種の要素に分割します。具体的には、used プロパティーの値は次のように分割されます。
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots |
これらのプロパティーは、zfs list -o space コマンドを使用して表示できます。次に例を示します。
# zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD pool 33.2G 72K 0 21K 0 51K rpool 27.0G 6.27G 20.5K 97K 0 6.27G rpool/ROOT 27.0G 4.73G 0 21K 0 4.73G rpool/ROOT/zfsBE 27.0G 4.73G 97.5M 4.63G 0 0 rpool/dump 27.0G 1.00G 16K 1.00G 0 0 rpool/export 27.0G 60K 16K 23K 0 21K rpool/export/home 27.0G 21K 0 21K 0 0 rpool/swap 27.5G 553M 0 41.5M 512M 0 |
このリリースでは、zfs list 出力からスナップショットは省かれています。listsnaps プールプロパティーは、zfs list コマンドでスナップ情報が表示されるかどうかを制御します。zfs list -t snapshots コマンドを使用すると、スナップショットの情報が表示されます。デフォルト値は off です。この設定ではスナップショット情報はデフォルトで表示されません。
ZFS ログデバイスの回復 – Solaris 10 10/09 リリースでは、zpool status コマンドで、ZFS によりインテントログ障害が識別されます。FMA は、これらのエラーも報告します。ZFS と FMA は両方とも、インテントログ障害から回復する方法を説明します。
たとえば、独立したログデバイスを持つプールへ同期書き込み操作が実行される前にシステムが突然シャットダウンする場合、インテントログに関連するエラーメッセージが zpool status 出力に表示されます。ログデバイスの障害を解決する方法の詳細は、『Solaris ZFS 管理ガイド』を参照してください。
ZFS ACL セットの使用 - Solaris 10 10/09 リリースでは、各種の ACL アクセス権を個別に適用する代わりに、NFSv4 形式の ACL をセットで適用できます。次のような ACL セットが提供されています。
full_set = すべてのアクセス権
modify_set = write_acl と write_owner を除くすべてのアクセス権
read_set = read_data、read_attributes、read_xattr、および read_acl
write_set = write_data、append_data、write_attributes、および write_xattr
これらの ACL セットは事前に定義されたものであり、変更することはできません。
これらの改善と変更の詳細は、『Solaris ZFS 管理ガイド』を参照してください。
関連する ZFS 機能については、次の新機能に関する項を参照してください。