Solaris 10 10/09 および Oracle Solaris 10 9/10: これらのリリースでは、ZFS ファイルシステムに関する拡張機能として、次のものが用意されています。
スナップショットストリームプロパティーに関する ZFS の拡張機能 – ローカルのプロパティー設定と異なる受信プロパティーを設定できます。たとえば、圧縮プロパティーが無効に設定されたストリームを受信する一方で、受信側ファイルシステムでは圧縮を有効にする場合を考えます。このとき、受信するストリームに関して、圧縮プロパティーの値が受信側ではオフ、ローカルではオンということになります。ローカルの値は受信側の値に優先するため、送信側の設定によって受信側の値が置き換えられることを心配する必要はありません。zfs get コマンドを実行すると、圧縮プロパティーの実効値が VALUE 列の下に表示されます。
送信側とローカルのプロパティー値に関連した、ZFS の新しいコマンドオプションとプロパティーには次のものがあります。
ローカルのプロパティー値を受信値 (存在する場合) に戻すには、zfs inherit -S を使用します。プロパティーに受信値が存在しない場合、zfs inherit - S コマンドの動作は、-S オプションを指定しない zfs inherit コマンドと同じです。プロパティーに受信値が存在する場合、zfs inherit コマンドは、zfs inherit -S コマンドの発行によって継承値が受信値に戻されるまでの間、受信値を継承値でマスクします。
zfs get -o を使用すると、新しい非デフォルトの RECEIVED 列を含めることができます。または、zfs get -o all コマンドを使用すると、RECEIVED を含むすべての列を含めることができます。
zfs send -p オプションを使用すると、-R オプションを使用せずにプロパティーを送信ストリームに含めることができます。
また、zfs send -e オプションを使用すると、送信スナップショットの最後の要素を使用して新しいスナップショット名を決定できます。次の例では、poola/bee/cee@1 スナップショットを poold/eee ファイルシステムに送信し、スナップショット名の最後の要素 (cee@1) のみを使用して、受信側のファイルシステムおよびスナップショットを作成します。
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 - 21K - # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 - 21K - |
プール作成時の ZFS ファイルシステムプロパティーの設定 - ストレージプールを作成するときに ZFS ファイルシステムプロパティーを設定することができます。次の例では、プールと一緒に作成された ZFS ファイルシステムで圧縮が有効になっています。
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
ZFS ファイルシステムにおけるキャッシュプロパティーの設定 - 2 つの新しい ZFS ファイルシステムプロパティーを使用して、プライマリキャッシュ (ARC) およびセカンダリキャッシュ (L2ARC) にキャッシュされる内容を制御できます。キャッシュのプロパティーは、次のように設定します。
primarycache – ARC にキャッシュされる内容を制御します。
secondarycache – L2ARC にキャッシュされる内容を制御します。
両方のプロパティーに指定できる値 – all、none、metadata。all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。none に設定すると、ユーザーデータも、メタデータも、キャッシュされません。metadata に設定すると、メタデータのみがキャッシュされます。デフォルトは all です。
これらのプロパティーは、既存のファイルシステムに設定できます。または、ファイルシステムの作成時に設定できます。次に例を示します。
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
既存のファイルシステムでこれらのプロパティーを設定した場合、これらのプロパティーの値に基づいて、New I/O のみがキャッシュされます。
一部のデータベース環境では、ユーザーデータをキャッシュしないほうが利点が得られることがあります。キャッシュプロパティーの設定が、使用している環境に照らし合わせて適切かどうかを判定する必要があります。
ディスクスペースアカウンティングプロパティーの表示 – 新しい読み取り専用ファイルシステムプロパティーであり、クローン、ファイルシステム、ボリューム、およびスナップショットに関するディスク領域使用状況を確認する場合に役立ちます。属性は次のとおりです。
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 rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0 |
前述のコマンドは、zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume コマンドと同等です。
スナップショットの表示– listsnapshots プールプロパティーは、zfs list コマンドでスナップショット情報が表示されるかどうかを制御します。デフォルト値は on です。つまり、デフォルトでは、スナップショット情報は表示されます。
システムに存在する ZFS スナップショットの数が多い場合に、zfs list コマンドでスナップショット情報の表示を無効にするには、次のようにして listsnapshots プロパティーを無効にします。
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool |
listsnapshots プロパティーを無効にした場合、zfs list -t snapshots コマンドを使用してスナップショット情報を一覧表示できます。次に例を示します。
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K - 22K - pool/home/user1@today 0 - 18K - pool/home/user2@today 0 - 18K - pool/home/user3@today 0 - 18K - |