このセクションでは、このリリースで新しく追加されたデータ管理機能について説明します。これらの機能により、将来の成長を見込んで容量を制限せずに設計を拡張し、拡張されたデータの整合性が提供されます。
トラステッドパス内での実行による不変ゾーンの構成も参照してください。
zpool remove コマンドを使用すると、最上位のデータデバイスを削除できます。最上位のデータデバイスを削除すると、削除対象デバイスからプール内の残りのデータデバイスにデータが移行されます。zpool status コマンドは、再同期化が完了するまで、削除操作の進行状況を報告します。
最上位のデータデバイスの削除については、Oracle Solaris ZFS デバイスの削除に関するブログ、Managing ZFS File Systems in Oracle Solaris 11.4 の Removing Devices From a Storage Pool、および zpool(8) のマニュアルページを参照してください。
デフォルトでは、ZFS プールのスクラブは 30 日ごとにバックグランドで実行され、優先度が自動的に調整されます。このスクラブの優先度はデフォルトで低くなっていますが、システムがアイドル状態にある場合は自動的に高くなります。スクラブの優先度は、指定されたスクラブの間隔、進行状況、およびシステム負荷に基づいて調整されます。zpool status コマンドによって、最後に成功したスクラブの開始時間が報告されます。
プールのスクラブのスケジュールをカスタマイズ (スクラブの無効化を含む) するには、scrubinterval プロパティーを設定します。scrubinterval および lastscrub プロパティーについては、Managing ZFS File Systems in Oracle Solaris 11.4 の Scheduled Data Scrubbing、および zpool(8) のマニュアルページを参照してください。
reflink() 関数と reflinkat() 関数を使用すると、ベースとなる ZFS テクノロジを活用してファイルを非常に速くコピーできます。reflink() 関数は、ベースとなるデータブロックの読み取りや書き込みを行わずに既存のファイルの内容で新しいファイルを作成します。既存のファイルと作成されるファイルは同じ ZFS プール内にある必要があります。
詳細は、reflink(3C) のマニュアルページを参照してください。
cp コマンドの –z オプション (高速コピー) では reflink を使用します。cp(1) のマニュアルページを参照してください。
Oracle Solaris 11.4 では、raw ZFS send ストリームを使用して、圧縮ファイルシステムの ZFS send ストリーム伝送を最適化し、ネットワーク伝送トラフィックを減らすことができます。
以前のリリースでは、圧縮された ZFS ファイルシステムの send ストリームが伝送後すぐに解凍され、その後、受信側で圧縮が有効になっている場合はそれらのブロックが再度圧縮されていました。Oracle Solaris 11.4 リリースでは、ストリーム内の圧縮ファイルシステムブロックは圧縮されたままであるため、これらの 2 つのステップが回避されます。この最適化を使用すると、ネットワーク伝送トラフィックも減少します。ZFS send ストリームを最適化するには、新しい zfs send –w オプションを使用して raw モードでストリームを送信します。この新しいオプションを有効にすると、send ストリームで raw ブロックの存在をエンコードできるため、受信側のシステムでは raw ブロックを圧縮せずに処理することを認識します。
たとえば、圧縮を有効にして ZFS ファイルシステムを作成し、スナップショットストリームを –w オプション付きとオプションなしで送信し、結果となるストリームサイズを確認するには、次のように設定します。
# zfs create compression=on pond/cdata # cp -r somefiles /pond/data # zfs snapshot pond/cdata@snap1 # zfs get compressratio pond/cdata@snap1 NAME PROPERTY VALUE SOURCE pond/cdata@snap1 compressratio 1.79x - # zfs send pond/cdata@snap1 > /tmp/stream # zfs send -w compress pond/cdata@snap1 > /tmp/cstream # ls -lh /tmp/*stream* -rw-r--r-- 1 root root 126M Feb 15 14:35 /tmp/cstream -rw-r--r-- 1 root root 219M Feb 15 14:35 /tmp/stream
以前のバージョンの Oracle Solaris が動作しているシステムでは、このようなストリームを受信できず、エラーメッセージが生成されます。
詳細は、Oracle Solaris 12 での ZFS ファイルシステムの管理を参照してください。
Oracle Solaris 11.4 では、ネットワーク伝送が中断されるか、エラーが発生した場合、ZFS send ストリームを中止された場所から再開できます。
ZFS send および receive を使用して ZFS スナップショットをシステム間で転送する方法は、これまでに次の問題に悩まされている ZFS ファイルシステムデータをレプリケートする場合に便利です。
ZFS 送信操作が完了するのに何時間または何日もかかることがあります。その間、ネットワーク障害やシステム障害によって、send 操作が中断されることがあります。
send 操作が完了しない場合に (ほとんど完了している場合でも)、最初から再開する必要があります。
ZFS send 操作で、中断が発生していない期間で大きなストリームを転送できないことがあります。
ストリーム全体の処理が完了するまで、ZFS recv 操作で伝送エラーを検出および報告できないことがあります。
この Oracle Solaris 11.4 リリースでは、次の新しいオプションを使用して、ZFS 送信ストリームが中断された時点から再開される方法を提供します。
zfs receive –C - 受信チェックポイントを stdout に書き込みます。
zfs send –C - 受信チェックポイントを stdin から読み取ります。
zfs send –s (チェックなし) - 新しい通信フォーマットを無効にします。
zfs list –I (状態) - 不完全なデータセットがデフォルトで表示されないときに不完全なデータセットを再帰的に表示します。
詳細は、Oracle Solaris 12 での ZFS ファイルシステムの管理を参照してください。
Oracle Solaris 11.4 リリースには、ZFS ファイルシステムの読み取りおよび書き込みをディスクに制限する機能があります。ZFS ファイルシステムに対する read 制限または write 制限を有効にするには、readlimit および writelimit プロパティーを 1 秒あたりのバイト数で設定します。これらの機能を使用すると、マルチテナント環境の ZFS I/O リソースを最適化できます。
defaultwritelimit および defaultreadlimit プロパティーが追加されたことで、多数の ZFS ファイルシステムの管理がさらに容易になりました。defaultwritelimit および defaultreadlimit プロパティーを設定すると、割り当てられた値がファイルシステムのすべての子孫によって継承されます。デフォルトの read 制限または write 制限を ZFS ファイルシステムに適用すると、その制限は子孫のファイルシステムにのみ適用され、そのファイルシステム自体には適用されません。読み取り専用の effectivereadlimit および effectivewritelimit プロパティーが追加されたことで、ファイルシステムに対して有効な制限を確認できるようになりました。報告される有効な制限は、親のファイルシステムと示されたファイルシステムの間の時点でもっとも低いデータ制限です。
たとえば、read 制限と write 制限を次のように設定するとします。
# zfs set writelimit=500mb pond/apps/web # zfs set readlimit=200mb pond/apps/logdata
次の例は、read 制限と write 制限の表示方法を示しています。
# zfs get -r writelimit,readlimit pond/apps NAME PROPERTY VALUE SOURCE pond/apps writelimit default default pond/apps readlimit default default pond/apps/logdata writelimit default default pond/apps/logdata readlimit 200M local pond/apps/web writelimit 500M local pond/apps/web readlimit default default pond/apps/web/tier1 writelimit default default pond/apps/web/tier1 readlimit default default
有効な書き込み制限を次のように表示できます。
# zfs get effectivewritelimit pond/apps/web NAME PROPERTY VALUE SOURCE pond/apps/web effectivewritelimit 500M local
詳細は、Oracle Solaris 12 での ZFS ファイルシステムの管理を参照してください。
Oracle Solaris 11.4 リリースでは、ZFS シャドウ移行操作が機能拡張によって改善され、移行エラーのモニタリングと進行中の移行の管理における可視性が向上しました。次の新しいオプションが導入されました。
shadowstat –E および –e - すべての移行または 1 回の移行での移行エラーのモニタリング用に提供されます。
shadowadm - 進行中の移行を制御します。
たとえば、複数の移行操作のシャドウ移行エラーを特定できます。
# shadowstat EST BYTES BYTES ELAPSED DATASET XFRD LEFT ERRORS TIME tank/logarchive 16.4M 195M 1 00:01:20 pond/dbarchive 4.49M 248M - 00:00:51 tank/logarchive 16.6M 194M 1 00:01:21 pond/dbarchive 4.66M 248M - 00:00:52 tank/logarchive 16.7M 194M 1 00:01:22 pond/dbarchive 4.80M 248M - 00:00:53 tank/logarchive 17.1M 194M 1 00:01:23 pond/dbarchive 5.00M 248M - 00:00:54 tank/logarchive 17.3M 194M 1 00:01:24 pond/dbarchive 5.16M 247M - 00:00:55
次のように特定の移行を識別できます。
# shadowstat -E tank/logarchive: PATH ERROR e-dir/socket Operation not supported pond/dbarchive: No errors encountered.
たとえば、開いているソケットは移行できないので移行を取り消すには、次のように設定します。
# shadowadm cancel tank/logarchive
詳細は、Oracle Solaris 12 での ZFS ファイルシステムの管理を参照してください。
Oracle Solaris 11.4 では、新しい ZFS ACL 機能を使用すると、NFS プロトコルとサーバーメッセージブロック (SMB) の両方で ZFS ファイルシステムを共有するときのエクスペリエンスを向上させることができます。aclinherit プロパティーの新しい継承値が導入され、その継承値によって passthrough セマンティクスは許可されますが、継承された owner@、group@、および everyone@ の各 ACE に設定された権限は、open、create、または mkdir システムコールで要求された値にオーバーライドされます。設定されている場合、継承可能な ACE にはその継承ビットが保存されています。この動作は、SMB および NFS 共有で ACL を自然な形で継承できるようにするために重要です。新しい値は passthrough-mode-preserve と呼ばれます。aclmode プロパティーの変更はありませんが、chmod 操作では aclinherit プロパティーに対する継承動作が考慮されます。特に、chmod 操作中に継承ビットが保存されます。
詳細は、Oracle Solaris 12 での ZFS ファイルシステムの管理を参照してください。
Oracle Solaris 11.4 には NFS version 4.1 でのサーバーのサポートが含まれています。このプロトコルには、次の新機能と考慮事項があります。
Exactly Once Semantics (EOS) - NFS version 4.1 プロトコルに信頼できる複製要求キャッシュを提供します。この複製要求キャッシュは、一時的なネットワーク障害や再伝送が発生した場合でも、削除要求などのべき等ではない要求が 1 回だけ実行されることを保証します。この機能により、NFS version 3 および NFS version 4 に関する長期にわたる問題が解消されました。
reclaim_complete - サーバーの再起動後すぐにサーバーで NFS サービスを再開できるようにする新しいプロトコル機能。NFS version 4 とは異なり、ユーザーはサービスに戻る前に一定の期間 (猶予期間と呼ばれる) 待機する必要はありません。reclaim_complete では、すべてのクライアントが回復したらすぐに、サーバーで猶予期間を終わらせることができます。この機能はは高可用性の環境で特に重要です。
計画された猶予期間のない回復 (PGR) - Oracle Solaris NFS version 4 サーバーまたは NFS version 4.1 サーバーでは、NFS サービスの再開または正常なシステムリブート後も NFS version 4 の状態を維持できるようになるため、NFS version 4 サーバーが NFS version 4 の状態を回復するために猶予期間に入ることはありません。この機能の利点は、NFS クライアントアプリケーションで NFS サービスの再開や正常なシステムリブート後に 90 秒間のデータ停止時間が発生する可能性を回避できることです。
次の相互運用性の問題を考慮してください。
Oracle Solaris NFS version 4.1 サーバーは Linux クライアントと VMware の両方をサポートしています。ただし、Linux クライアント用のサーバーでは委任を無効にするべきです。
Linux クライアントで委任を使用する場合は、ロックおよび状態内の回復に関する既知の問題があります。
# sharectl set -p server_delegation=off nfs
次のように NFS version 4.1 のサポートを無効にできます。
# sharectl set -p server_versmax=4.0 nfs
詳細は、Oracle Solaris 12 でのネットワークファイルシステムの管理を参照してください。
NFS Version 3 を使用してファイルシステムをマウントするときに、トランスポートとして TCP を選択した場合、初期マウント設定でも TCP がトランスポートとして使用されます。以前の Oracle Solaris リリースでは、マウント設定に UDP が使用され、TCP はマウントが確立されたあとにのみ使用されていました。
ファイアウォールを介して NFS マウントを許可する場合、この機能によってファイアウォールの構成を簡素化できる可能性があります。
また、この機能により、UDP トラフィックがブロックされているサイトで NFS Version 3 を使用できるようになります。
詳細は、Oracle Solaris 12 でのネットワークファイルシステムの管理、および mount_nfs(8) のマニュアルページを参照してください。
tmpfs ファイルシステムでは、拡張システム属性がサポートされています。tmpfs(4FS) および fgetattr(3C) のマニュアルページを参照してください。
Oracle Solaris 11.4 では Oracle Solaris SMB サーバーでの SMB 3.1.1 プロトコルのサポートを提供しており、次の SMB 機能が含まれています。
連続可用性共有 - この機能により、Oracle Solaris SMB サーバーではサーバーのクラッシュまたはリブートが発生した場合に共有に連続可用性を確保できます。
マルチチャネル - この機能により、Oracle Solaris SMB ファイルサーバーでは、1 回の SMB セッションで複数のネットワーク接続を使用できるようになり、スループットや耐障害性が向上します。
暗号化 - この機能により、Oracle Solaris SMB サーバーでは、クライアントとサーバーの間で SMB ネットワークトラフィックを暗号化できます。SMB 暗号化では、SMB セッションをセキュリティー保護し、改ざんや盗聴による攻撃を防御します。
詳細は、Managing SMB File Sharing and Windows Interoperability in Oracle Solaris 11.4、および smbstat(8) のマニュアルページを参照してください。