次の ZFS ファイルシステムの機能は (Oracle Solaris 10 リリースでは利用できませんが) Oracle Solaris 11 では利用できます。
ZFS ファイルシステムの暗号化 – ZFS ファイルシステムを作成時に暗号化できます。Chapter 9, セキュリティーの管理を参照してください。
ZFS ファイルシステムの複製解除 – システム環境が ZFS データの複製解除をサポートできるかどうかを判断するための重要な情報については、ZFS データの複製解除の要件を参照してください。
ZFS ファイルシステム共有構文の変更 – NFS および SMB のファイルシステムの共有への変更点が含まれています。ZFS ファイルシステムの共有の変更点を参照してください。
ZFS のマニュアルページの変更 – zfs.1m のマニュアルページは、ZFS ファイルシステムの主要な機能が zfs.1m のページ内に残るように改訂されていますが、委任管理、暗号化、および共有の構文と例については次のページに記載されています。
ZFS ルートプール設定の簡素化 – Oracle Solaris での統合アーカイブのサポートにより、ルートプールの回復の設定が以前のリリースよりはるかに簡単になります。Oracle Solaris 11.3 でのシステム復旧とクローン を参照してください。
ZFS 送信ストリームのモニタリング – ZFS ストリーム送信の進捗状況をリアルタイムにモニタリングできます。Oracle Solaris 11.3 での ZFS ファイルシステムの管理 のZFS プール操作をモニターするを参照してください。
ZFS の一時的なプール名 – 共有ストレージまたは復旧シナリオでは、一時的なプール名でプールを作成またはインポートできます。Oracle Solaris 11.3 での ZFS ファイルシステムの管理 の一時的な名前でプールをインポートするを参照してください。
システムのインストールのあとで、ZFS ストレージプールと ZFS ファイルシステムの情報を確認します。
zpool status コマンドで ZFS ストレージプールの情報を表示します。
zfs list コマンドで ZFS ファイルシステムの情報を表示します。
インストール後の最初の BE の確認を参照してください。
利用可能なプールおよびファイルシステムの領域を特定するための zpool list および zfs list コマンドは、df および du コマンドより改善されています。旧バージョンのコマンドでは、プールおよびファイルシステムの領域を簡単に識別できず、下位のファイルシステムまたはスナップショットによって消費される領域の詳細を表示できません。
たとえば、次のルートプール (rpool) には 5.46G バイトが割り当て済みで、68.5G バイトが空き領域です。
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 74G 5.46G 68.5G 7% 1.00x ONLINE -
次の例に示すように、個々のファイルシステムの USED 列を確認することにより、プール領域の数値とファイルシステム領域の数値を比較すると、プールの領域が占める割合がわかります。
# zfs list -r rpool NAME USED AVAIL REFER MOUNTPOINT rpool 5.41G 67.4G 74.5K /rpool rpool/ROOT 3.37G 67.4G 31K legacy rpool/ROOT/solaris 3.37G 67.4G 3.07G / rpool/ROOT/solaris/var 302M 67.4G 214M /var rpool/dump 1.01G 67.5G 1000M - rpool/export 97.5K 67.4G 32K /rpool/export rpool/export/home 65.5K 67.4G 32K /rpool/export/home rpool/export/home/admin 33.5K 67.4G 33.5K /rpool/export/home/admin rpool/swap 1.03G 67.5G 1.00G -
zpool list コマンドによって報告される SIZE 値は、通常、プール内の物理ディスク領域の大きさですが、プールの冗長性レベルに応じて異なります。zfs list コマンドは、使用可能な領域のうち、ファイルシステムで利用できる領域を示します。これは、ディスク領域から ZFS プール冗長性メタデータオーバーヘッド (ある場合) を差し引いたものです。詳細は、次の例を参照してください。
非冗長性ストレージプール – 136G バイトの 1 つのディスクで作成されています。zpool list コマンドは SIZE および初期 FREE 値を 136G バイトとして報告します。次の例に示すように、zfs list コマンドによって報告される初期 AVAIL 領域は、プールメタデータオーバーヘッドが少量あるため 134G バイトです。
# zpool create tank c0t6d0 # zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT tank 136G 95.5K 136G 0% 1.00x ONLINE - # zfs list tank NAME USED AVAIL REFER MOUNTPOINT tank 72K 134G 21K /tank
ミラー化されたストレージプール – 136G バイトの 2 つのディスクで作成されています。zpool list コマンドは SIZE を 136G バイトおよび初期 FREE 値を 136G バイトと報告します。この報告は、デフレートされた領域値と呼ばれます。次の例に示すように、zfs list コマンドによって報告される初期 AVAIL 領域は、プールメタデータオーバーヘッドが少量あるため 134G バイトです。
# zpool create tank mirror c0t6d0 c0t7d0 # zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT tank 136G 95.5K 136G 0% 1.00x ONLINE - # zfs list tank NAME USED AVAIL REFER MOUNTPOINT tank 72K 134G 21K /tank
RAID-Z ストレージプール – 136G バイトの 3 つのディスクで作成されています。zpool list コマンドは SIZE を 408G バイトおよび初期 FREE 値を 408G バイトと報告します。この報告は、インフレートされたディスク領域値と呼ばれます。パリティー情報などの冗長性オーバーヘッドが含まれています。zfs list コマンドによって報告される初期 AVAIL 領域は、プール冗長性オーバーヘッドのため 133G バイトです。次の例は RAIDZ-2 プールを作成しています。
# zpool create tank raidz2 c0t6d0 c0t7d0 c0t8d0 # zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT tank 408G 286K 408G 0% 1.00x ONLINE - # zfs list tank NAME USED AVAIL REFER MOUNTPOINT tank 73.2K 133G 20.9K /tank
ZFS ファイルシステムを利用可能にする方法は、Oracle Solaris 10 リリースと次の点で似ています。
ZFS ファイルシステムは、作成時に自動的にマウントされ、システムのブート時に自動的に再マウントされます。
ZFS ファイルシステムに旧バージョンのマウントを作成する場合を除き、ZFS ファイルシステムをマウントするために /etc/vfstab ファイルを変更する必要はありません。旧バージョンのマウントを使用するよりも、ZFS ファイルシステムを自動マウントすることを推奨します。
ファイルシステムを共有するために、/etc/dfs/dfstab ファイルを変更する必要はありません。ZFS ファイルシステムの共有の変更点を参照してください。
UFS ルートと同様に、スワップデバイスは /etc/vfstab ファイルにエントリを持つ必要があります。
NFS 共有を使用することで、Oracle Solaris 10 システムと Oracle Solaris 11 システムの間でファイルシステムを共有できます。
NFS または SMB 共有を使用することで、Oracle Solaris 11 システム間でファイルシステムを共有できます。
Oracle Solaris 10 システムから ZFS ストレージプールをエクスポートしたあと、それを Oracle Solaris 11 システムにインポートできます。
ファイルシステムのモニタリングおよびファイルシステム操作に関するレポートに、fsstat コマンドを使用できます。異なる種類のアクティビティーをレポートするいくつかのオプションがあります。たとえば、マウントポイント別またはファイルシステムタイプ別に情報を表示できます。次の例では、fsstat コマンドは、ZFS モジュールが最初にロードされた時点からの ZFS ファイルシステムのすべての操作を表示します。
$ fsstat zfs new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 268K 145K 93.6K 28.0M 71.1K 186M 2.74M 12.9M 56.2G 1.61M 9.46G zfs
その他の例については、fsstat(1M) を参照してください。
user_reserve_hint_pct tunable パラメータは、アプリケーションのメモリー使用に関するヒントをシステムに提供します。このヒントは、アプリケーションでより多くのメモリーを使用できるように、ZFS Adaptive Replacement Cache (ARC) の増加を制限するために使用されます。このパラメータの使用については、https://support.oracle.com/ にある Oracle Solaris 11.2 での ZFS とアプリケーションの間でのメモリーの管理に関するドキュメント (Doc ID 1663862.1) を参照してください。
nfsmapid サービスを変更するための構文 (/etc/nsswitch.conf ファイル内の passwd および group エントリを使用して NFSv4 ユーザーおよびグループ ID をマッピングする) が変更されています。
nfsmapid サービスは次のとおりです。
# svcs mapid STATE STIE FMRI online Apr_25 svc:/network/nfs/mapid:default
次のようにサービスインスタンスを変更します。
# svccfg -s svc:/network/nfs/mapid:default svc:/network/nfs/mapid:default> listprop nfs-props application nfs-props/nfsmapid_domain astring fooold.com general framework general/complete astring general/enabled boolean false restarter framework NONPERSISTENT restarter/logfile astring /var/svc/log/network-nfs-mapid:default.log restarter/contract count 137 restarter/start_pid count 1325 restarter/start_method_timestamp time 1366921047.240441000 restarter/start_method_waitstatus integer 0 restarter/auxiliary_state astring dependencies_satisfied restarter/next_state astring none restarter/state astring online restarter/state_timestamp time 1366921047.247849000 general_ovr framework NONPERSISTENT general_ovr/enabled boolean true svc:/network/nfs/mapid:default> setprop nfs-props/nfsmapid_domain = newfoo.com svc:/network/nfs/mapid:default> listprop nfs-props application nfs-props/nfsmapid_domain astring foonew.com . . . svc:/network/nfs/mapid:default> exit # svcadm refresh svc:/network/nfs/mapid:default
Oracle Solaris 10 では、sharenfs または sharesmb プロパティーを設定して ZFS ファイルシステム共有を作成して公開します。または、レガシーの share コマンドを使用できます。Oracle Solaris 11 11/11 では、ファイル共有が強化され、コマンド構文が変更されました。この変更の詳細についてはOracle Solaris 11.2 での ZFS ファイルシステムの管理 の旧バージョンの ZFS 共有の構文を参照してください。
Oracle Solaris 11.1 以降、ZFS ファイル共有の次の機能拡張が行われました。
共有の構文は簡素化されています。ファイルシステムを共有するには、share.nfs または share.smb プロパティーを次のように設定します。
# zfs set share.nfs=on tank/home
子孫ファイルシステムへの共有プロパティーの継承の向上をサポート。前の例の share.nfs プロパティー値は、次の例に示すように、すべての子孫ファイルシステムに継承されます。
# zfs create tank/home/userA # zfs create tank/home/userB
次のように、追加のプロパティー値を指定するか、既存のファイルシステム共有の既存のプロパティー値を変更します。
# zfs set share.nfs.nosuid=on tank/home/userA
これらの追加のファイル共有の改善は、プールバージョン 34 と関連しています。Oracle Solaris 11.2 での ZFS ファイルシステムの管理 の新しい ZFS 共有構文を参照してください。
次の共有の移行の問題を確認してください。
Oracle Solaris 11 システムの後続の Oracle Solaris 11 リリースへのアップグレード – このリリースでのプロパティーの変更のために古い BE にブートする場合、ZFS 共有は正しくなくなります。ZFS 以外の共有は影響を受けません。古い BE でブートする予定がある場合は、ZFS データセットで共有構成を復元できるように、pkg update 操作の前に既存の共有構成のコピーを保存してください。
次の追加情報を確認してください。
古い BE で、sharemgr show -vp コマンドを使用して、すべての共有およびそれらの構成を一覧表示します。
zfs get sharenfs filesystem コマンドおよび zfs sharesmb filesystem コマンドを使用して、共有プロパティーの値を取得します。
古い BE でブートする場合は、sharenfs および sharesmb プロパティーを元の値にリセットします。
旧バージョンの共有解除動作 – unshare –a コマンドまたは unshareall コマンドを使用すると、共有の公開が解除されますが、SMF 共有リポジトリは更新されません。既存の共有を再度共有しようとすると、共有リポジトリの競合がチェックされ、エラーメッセージが表示されます。
複製解除 (dedup) プロパティーを使用して、ZFS ファイルシステムから冗長なデータを削除できます。ファイルシステムで dedup プロパティーが有効になっている場合、重複データブロックが同期的に削除されます。次の例に示すように、結果は一意のデータのみが格納され、共通のコンポーネントはファイル間で共有されます。
# zfs set dedup=on tank/home
次の手順を実行してシステムがデータの複製解除をサポートできるかどうかを判断するまでは、本稼働システムに常駐するファイルシステムで dedup プロパティーを有効にしないでください。
複製解除による領域の節約がデータに有益であるかどうかを判断します。データを複製解除できない場合、dedup を有効にしても無駄です。次のコマンドを実行すると、著しく大量のメモリーが使用されます。
# zdb -S tank Simulated DDT histogram: bucket allocated referenced ______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE ------ ------ ----- ----- ----- ------ ----- ----- ----- 1 2.27M 239G 188G 194G 2.27M 239G 188G 194G 2 327K 34.3G 27.8G 28.1G 698K 73.3G 59.2G 59.9G 4 30.1K 2.91G 2.10G 2.11G 152K 14.9G 10.6G 10.6G 8 7.73K 691M 529M 529M 74.5K 6.25G 4.79G 4.80G 16 673 43.7M 25.8M 25.9M 13.1K 822M 492M 494M 32 197 12.3M 7.02M 7.03M 7.66K 480M 269M 270M 64 47 1.27M 626K 626K 3.86K 103M 51.2M 51.2M 128 22 908K 250K 251K 3.71K 150M 40.3M 40.3M 256 7 302K 48K 53.7K 2.27K 88.6M 17.3M 19.5M 512 4 131K 7.50K 7.75K 2.74K 102M 5.62M 5.79M 2K 1 2K 2K 2K 3.23K 6.47M 6.47M 6.47M 8K 1 128K 5K 5K 13.9K 1.74G 69.5M 69.5M Total 2.63M 277G 218G 225G 3.22M 337G 263G 270G dedup = 1.20, compress = 1.28, copies = 1.03, dedup * compress / copies = 1.50
推定される dedup 率が 2 より大きい場合は、複製解除によって領域が節約される可能性があります。
この例では、dedup 率 (dedup = 1.20) が 2 より小さいため、複製解除の有効化は推奨されません。
システムに複製解除をサポートするための十分なメモリーがあることを次のように確認します。
コア内の各複製解除テーブルエントリは、およそ 320 バイトです。
割り当てられているブロック数に 320 を掛けます。
in-core DDT size = 2.63M x 320 = 841.60M
複製解除のパフォーマンスは、複製解除テーブルがメモリーに収まる場合に最適になります。テーブルをディスクに書き込む必要がある場合は、パフォーマンスが低下します。十分なメモリーリソースがない状態でファイルシステムに対する複製解除を有効にすると、ファイルシステム関連の操作時にシステム性能が低下する可能性があります。たとえば、十分なメモリーリソースがない状態で、dedup が有効になっている大容量のファイルシステムを削除すると、システム性能に影響が出る可能性があります。