この手順は、ルート (/) 以外のすべてのファイルシステムに使用できます。 このタイプのバックアップは、動作中のファイルシステムのある時点での内容を保存することに注意してください。 ファイルシステムへの書き込みをロックしたときのファイルシステムの使用状況によっては、バックアップしたファイルやファイルの内容がディスク上の実際のファイルに対応しないことがあります。
この手順には次の制約があります。
この手順を 2 面ミラーに対して使用すると、1 つのサブミラーをバックアップのためにオフラインにしたときに、データの冗長性が失われます。 多面ミラーにはこの問題はありません。
バックアップの完了後に、再接続されたサブミラーを再同期するときに、システムにある程度のオーバーヘッドが生じます。
この手順の概要は次のとおりです。
ファイルシステムへの書き込みをロックします (UFS のみ)。 ルート (/) はロックしないようにします。
キャッシュのすべてのデータをディスクにフラッシュします。
metadetach コマンドを使って、このミラーの 1 つのサブミラーを切り離します。
ファイルシステムのロックを解除します。
fsck コマンドを使って、切り離されたサブミラーにファイルシステムがあることを確認します。
切り離されたサブミラーのデータをバックアップします。
metattach コマンドを使って、切り離されたサブミラーをミラーに再び接続します。
このような手順を定常的に使用する場合は、これをスクリプトにしておくと実行が容易になります。
より安全な方法としては、ミラーに 3 番目または 4 番目のサブミラーを接続し、これを再同期し、バックアップに使用します。 これによって、データの冗長性が常に保たれます。
metastat コマンドを実行して、ミラーが「正常 (Okay)」状態であることを確認します。
ミラーが「保守 (Maintenance)」状態の場合は、まずそれを修復する必要があります。
キャッシュのデータと UFS ロギングデータをディスクにフラッシュし、このファイルシステムの書き込みをロックします。
# /usr/sbin/lockfs -w mount point |
書き込みをロックする必要があるファイルシステムは UFS ボリュームだけです。 このボリュームがデータベース管理ソフトウェアなどのアプリケーション用に raw デバイスとして設定されている場合は、lockfs を実行する必要はありません。 (ただし、ベンダー提供の適切なユーティリティを実行してバッファをフラッシュしたり、アクセスをロックする必要がある場合もあります。)
ルート (/) の書き込みをロックするとシステムがハングアップしますので、絶対にロックしないでください。 ルートファイルシステムをバックアップしている場合は、この手順をスキップします。
ミラーから 1 つのサブミラーを切り離します。
# metadetach mirror submirror |
ここで、
は、ミラーのボリューム名です。
は、切り離すサブミラー (ボリューム) のボリューム名です。
読み取りは、他のサブミラーから引き続き行われます。 最初の書き込みが行われた時点でミラーは同期していない状態になります。 この不整合の状態は、手順1 でサブミラーが再び接続された時点で修復されます。
ファイルシステムのロックを解除し、書き込みを再開します。
# /usr/sbin/lockfs -u mount-point |
上の手順1 で使用したベンダー提供のユーティリティを使用して、必要なロック解除手順を実行しなければならない場合があります。
完全なバックアップを行うために、fsck コマンドを使って、切り離されたサブミラーのファイルシステムを調べます。
# fsck /dev/md/rdsk/name |
オフラインにしたサブミラーのバックアップをとります。
これには、ufsdump コマンド、または通常使用しているバックアップユーティリティを使用します。
適切なバックアップを確実に行うためには、raw ボリューム (/dev/md/rdsk/d4 など) を使用します。 「rdsk」では、2G バイトを超えるアクセスが可能です。
サブミラーを接続します。
# metattach mirror submirror |
サブミラーとミラーの再同期が自動的に開始されます。
この例では、ミラー d1 はサブミラー d2、d3、 d4 から構成されています。 サブミラー d3 を切り離して、このサブミラーのバックアップをとります。この間、サブミラー d2 と d4 はオンラインのままです。 このミラーにあるファイルシステムは /home1 です。
# /usr/sbin/lockfs -w /home1 # metadetach d1 d3 # /usr/sbin/lockfs -u /home1 # /usr/sbin/fsck /dev/md/rdsk/d3 (/dev/md/rdsk/d3 を使用してバックアップをとる) # metattach d1 d3 |