内に含まその他のドキュメントサポート リソース | PDF 文書ファイルをダウンロードする (3443 KB)
第 25 章 UFS スナップショットの使用 (手順)この章では、UFS スナップショットの作成およびバックアップ方法について説明します。 UFS スナップショットの作成に関連した手順については、「UFS スナップショットの使用 (作業マップ)」を参照してください。 バックアップの実行方法の概要については、第 23 章UFS ファイルシステムのバックアップと復元 (概要)を参照してください。 UFS スナップショットの使用 (作業マップ)
UFS スナップショットの概要fssnap コマンドを使って、ファイルシステムをマウントした状態で、そのバックアップを作成できます。作成されるのは、ファイルシステムの読み取り専用スナップショットです。「スナップショット」は、バックアップ操作のためのファイルシステムの一時イメージです。 fssnap コマンドを実行すると、1 つの仮想デバイスと 1 つのバッキングストアファイルが作成されます。ユーザーは、既存の Solaris バックアップコマンドを使用して、実際のデバイスのように動作し実際のデバイスのように見える「仮想デバイス」をバックアップできます。「バッキングストアファイル」は、スナップショット作成後に変更されたデータのコピーを含むビットマップファイルです。 バッキングストアファイルを指定する際には、次の注意点に留意してください。
512G バイトを超える UFS ファイルシステムのスナップショットを作成する方法の詳細は、「マルチテラバイト UFS のスナップショットの作成」を参照してください。 なぜ UFS スナップショットを使用するかUFS スナップショット機能により、ファイルシステムのバックアップがより利用しやすく、簡単になりました。この機能を利用すれば、ファイルシステムをマウントした状態でバックアップを作成できます。また、このときマルチユーザーモードを保持できます。さらに、長期保存が必要な場合は、tar や cpio コマンドを使って、UFS スナップショットをテープにバックアップすることもできます。ufsdump コマンドでバックアップを実行する場合は、シングルユーザーモードにして、バックアップが完了するまでファイルシステムを非アクティブな状態にする必要があります。 fssnap コマンドは、企業レベルでないシステム管理者に、大規模な記憶容量を必要とせずに、Sun StorEdgeTM Instant Image のような企業レベルのツールのパワーを提供します。 UFS スナップショットの機能は、Instant Image 製品の機能に似ています。UFS スナップショットは大規模なファイルシステムをコピーできますが、企業レベルのシステムには Instant Image の方が適しています。UFS スナップショットは、小さめのシステムに適しています。Instant Image は、取り込まれるファイルシステム全体のサイズに等しい容量を割り当てます。ただし、UFS スナップショットが作成するバッキングストアファイルは、必要なディスク容量だけを占有します。 次の表は、UFS スナップショットと Instant Image との特徴的な違いを示します。
UFS スナップショットのパフォーマンス上の問題UFS スナップショットの初回作成時に、ファイルシステムのユーザーが短い一時停止に気づく場合があります。一時停止の時間は、取り込まれるファイルシステムのサイズに応じて増加します。スナップショットがアクティブな間、ファイルシステムの書き込み中、パフォーマンスに若干の影響が出る可能性があります。ただし、ファイルシステムの読み込み中には、このような影響はありません。 UFS スナップショットの作成と削除fssnap コマンドを使用して UFS スナップショットを作成する場合、バッキングストアファイルがどれだけのディスク容量を消費するかを監視してください。バッキングストアファイルは、はじめは容量をまったく使用しませんが、その後特によく使用されているシステムにおいて急速に拡大します。バッキングストアファイルが拡大するのに十分な容量を必ず確保してください。または -o maxsize=n [k,m,g] オプション (n [k,m,g] はバッキングストアファイル最大限のサイズ) でそのサイズを制限してください。 バッキングストアファイルに容量が不足する場合、スナップショットが削除されてしまうことがあり、バックアップが失敗します。スナップショットのエラーの可能性を調べるため、/var/adm/messages ファイルを検査してください。 バッキングストアパスのディレクトリを指定して、バッキングストアファイルは指定のディレクトリに作成することもできます。たとえば、/var/tmp を指定した場合、次のバッキングストアファイルが作成されます。
/export/home、/usr などのファイルシステムを個別に作成する代わりに大容量のルート (/) ファイルシステムを 1 つ作成した場合、これらのファイルシステムのスナップショットを個別に作成することはできません。たとえば、このシステムは、/usr 用の個別のファイルシステムを持ちません。次の Mounted on カラムの下を参照してください。
/usr ファイルシステムのスナップショットを作成しようとすると、次のようなメッセージが表示されます。
ここで、スナップショットを作成するファイルシステム (この例の場合、/usr ファイルシステム) 上にバッキングストアファイルを作成することはできません。 詳細は、fssnap_ufs(1M) のマニュアルページを参照してください。 マルチテラバイト UFS のスナップショットの作成マルチテラバイト UFS のスナップショットの作成は、より小さいサイズの UFS ファイルシステムに対するスナップショットの作成とほとんど同じです。唯一の違いは、ファイルシステム領域の 512G バイトごとにバッキングストアファイルが作成されるという点です。 512G バイトを超えるファイルシステムのスナップショットを作成する際には、次の注意点に留意してください。
512G バイトを超えるファイルシステムのスナップショットの作成例については、例 25–2 を参照してください。 詳細は、fssnap_ufs(1M) のマニュアルページを参照してください。
|
# df -k |
同じ場所に同じ名前の既存のバッキングストアファイルがないことを確認します。
# ls /backing-store-file |
UFS スナップショットを作成します。
# fssnap -F ufs -o bs=/backing-store-file /file-system |
バッキングストアファイルは、UFS スナップショットを使用して取り込むファイルシステムとは異なるファイルシステムに存在する必要があります。
スナップショットが作成されたことを確認します。
# /usr/lib/fs/ufs/fssnap -i /file-system |
次の例は、/usr ファイルシステムのスナップショットを作成する方法を示します。バッキングストアファイルは /scratch/usr.back.file です。仮想デバイスは /dev/fssnap/1 です。
# fssnap -F ufs -o bs=/scratch/usr.back.file /usr /dev/fssnap/1 |
次の例は、バッキングストアファイルを 500M バイトに制限する方法を示します。
# fssnap -F ufs -o maxsize=500m,bs=/scratch/usr.back.file /usr /dev/fssnap/1 |
次の例は、1.6T バイトの UFS ファイルシステムのスナップショットの作成方法を示しています。
# fssnap -F ufs -o bs=/var/tmp /datab /dev/fssnap/2 # /usr/lib/fs/ufs/fssnap -i /datab Snapshot number : 2 Block Device : /dev/fssnap/2 Raw Device : /dev/rfssnap/2 Mount point : /datab Device state : idle Backing store path : /var/tmp/snapshot3 Backing store size : 0 KB Maximum backing store size : Unlimited Snapshot create time : Wed Jul 16 14:43:32 2008 Copy-on-write granularity : 32 KB |
fssnap -i オプションを使用すると、システムの現在のスナップショットを表示できます。1 つのファイルシステムを指定する場合、そのファイルシステムのスナップショットについての詳細な情報が表示されます。特定のファイルシステムを指定しない場合は、現在の UFS スナップショットすべておよび対応する仮想デバイスの情報が表示されます。
次の例に示すように、拡張スナップショット情報を表示する場合は、UFS ファイルシステム固有の fssnap コマンドを使用してください。
スーパーユーザーになるか、同等の役割を引き受けます。
現在のすべてのスナップショットをリスト表示します。
次に例を示します。
# /usr/lib/fs/ufs/fssnap -i Snapshot number : 0 Block Device : /dev/fssnap/0 Raw Device : /dev/rfssnap/0 Mount point : /export/home Device state : idle Backing store path : /var/tmp/snapshot0 Backing store size : 0 KB Maximum backing store size : Unlimited Snapshot create time : Wed Jul 16 14:30:24 2008 Copy-on-write granularity : 32 KB |
特定のスナップショットについての詳細な情報を表示します。
次に例を示します。
# /usr/lib/fs/ufs/fssnap -i /export Snapshot number : 1 Block Device : /dev/fssnap/1 Raw Device : /dev/rfssnap/1 Mount point : /export Device state : idle Backing store path : /var/tmp/snapshot1 Backing store size : 0 KB Maximum backing store size : Unlimited Snapshot create time : Wed Jul 16 14:34:47 2008 Copy-on-write granularity : 32 KB |
UFS スナップショットを作成する際、バッキングストアファイルがリンクされないように指定できます。リンクされていないバッキングストアファイルは、スナップショットを削除した後で削除されます。UFS スナップショットを作成する際に -o unlink オプションを指定しない場合は、あとでバッキングストアファイルを手動で削除する必要があります。
バッキングストアファイルは、バッキングストアファイルの削除に -o unlink オプションを使用した場合はスナップショットが削除されるまで、またはバッキングストアファイルを手動で削除するまで、ディスク容量を使用します。
スナップショットは、システムをリブートするか、あるいは fssnap -d コマンドを使用して削除できます。このコマンドを使用するときには、UFS スナップショットを含むファイルシステムのパスを指定する必要があります。
スーパーユーザーになるか、同等の役割を引き受けます。
削除するスナップショットを特定します。
# /usr/lib/fs/ufs/fssnap -i |
スナップショットを削除します。
# fssnap -d /file-system Deleted snapshot 1. |
スナップショットの作成時に -o unlink オプションを使用しなかった場合は、そのバッキングストアファイルを手動で削除してください。
# rm /file-system/backing-store-file |
次の例では、-o unlink オプションを使用しなかった場合にスナップショットを削除する方法を示します。
# fssnap -i
0 /export/home
1 /export
# fssnap -d /export
Deleted snapshot 1.
# rm /var/tmp/snapshot1
|
UFS スナップショットの完全バックアップまたは増分バックアップを作成できます。UFS スナップショットのバックアップ作成に、標準の Solaris バックアップコマンドを使用できます。
UFS スナップショットを含む仮想デバイスは、標準の読み取り専用デバイスとして動作します。つまり、仮想デバイスを、ファイルシステムのデバイスをバックアップするかのようにバックアップできます。
ufsdump コマンドを使用して UFS スナップショットをバックアップする場合、バックアップ時にスナップショットの名前を指定できます。詳細は、次の手順を参照してください。
バックアップする UFS スナップショットを確認します。
# /usr/lib/fs/ufs/fssnap -i /file-system |
次に例を示します。
# /usr/lib/fs/ufs/fssnap -i /usr Snapshot number : 1 Block Device : /dev/fssnap/1 Raw Device : /dev/rfssnap/1 Mount point : /usr Device state : idle Backing store path : /var/tmp/snapshot2 Backing store size : 544 KB Maximum backing store size : Unlimited Snapshot create time : Wed Jul 16 14:38:29 2008 Copy-on-write granularity : 32 KB |
UFS スナップショットをバックアップします。
# ufsdump 0ucf /dev/rmt/0 /snapshot-name |
次に例を示します。
# ufsdump 0ucf /dev/rmt/0 /dev/rfssnap/1 |
スナップショットのバックアップが作成されたことを確認します。
次に例を示します。
# ufsrestore tf /dev/rmt/0 |
UFS スナップショットの増分バックアップでは、最後のスナップショット以降に変更のあったファイルだけがバックアップされます。ufsdump コマンドと N オプションを組み合わせて使用します。このオプションは、増分ダンプをトラックするために /etc/dumpdates ファイルに挿入されるファイルシステムのデバイス名を指定します。
次の例では、ufsdump コマンド内で fssnap コマンドを組み込んでファイルシステムの増分バックアップを作成しています。
スーパーユーザーになるか、同等の役割を引き受けます。
UFS スナップショットの増分バックアップを作成します。
次に例を示します。
# ufsdump 1ufN /dev/rmt/0 /dev/rdsk/c0t1d0s0 `fssnap -F ufs -o raw,bs= /export/scratch,unlink /dev/rdsk/c0t1d0s0` |
上記の例では、ブロックデバイスではなくraw デバイスの名前を表示するために -o raw オプションが使用されています。このオプションの使用により、raw デバイスを必要とするコマンド (ufsdump コマンドなど) に fssnap コマンドを組み込むことが簡単になります。
スナップショットのバックアップが作成されたことを確認します。
# ufsrestore ta /dev/rmt/0 |
tar コマンドを使用してスナップショットをバックアップする場合、バックアップを行う前にスナップショットをマウントします。
スーパーユーザーになるか、同等の役割を引き受けます。
スナップショット用のマウントポイントを作成します。
次に例を示します。
# mkdir /backups/home.bkup |
スナップショットをマウントします。
# mount -F ufs -o ro /dev/fssnap/1 /backups/home.bkup |
マウントスナップショットのディレクトリに移動します。
# cd /backups/home.bkup |
tar コマンドを使用して、スナップショットをバックアップします。
# tar cvf /dev/rmt/0 . |
仮想デバイスから作成されたバックアップは、基本的には、スナップショットがとられた時点でのオリジナルのファイルシステムの状態を表しています。ファイルシステムをバックアップから復元する場合は、オリジナルのファイルシステムから直接そのバックアップを作成したかのように復元します。そのような復元では、ufsrestore コマンドを使用します。ufsrestore コマンドを使用してファイルまたはファイルシステムを復元する方法については、第 26 章UFS ファイルとファイルシステムの復元 (手順)を参照してください。