fssnap コマンドが Solaris 8 1/01 リリースで新規に追加されました。次に記載する情報は、『Solaris のシステム管理 (第 1 巻)』の「ファイルシステムのバックアップと復元 (概要)」に記載されているファイルシステムのバックアップについての情報を補足するものです。
最新のマニュアルページを参照するには、man コマンドを使用してください。Solaris 8 Update リリースのマニュアルページには、「Solaris 8 Reference Manual Collection」には記載されていない新しい情報も提供されています。
Solaris 8 1/01 リリースには、ファイルシステムのマウント中にファイルシステムをバックアップするための、新しい fssnap コマンドが含まれるようになりました。
fssnap コマンドを使用して、ファイルシステムの読み取り専用のスナップショットを作成することができます。スナップショットは、バックアップ操作のためのファイルシステムの一時的イメージです。
fssnap コマンドを実行すると、1 つの仮想デバイスと 1 つのバッキングストアファイルが作成されます。ユーザーは、既存の Solaris バックアップコマンドを使用して、実在のデバイスのように動作し実在のデバイスのように見えるこの仮想デバイスをバックアップすることができます。バッキングストアファイルは、スナップショットがとられてから変更されたデータのコピーを含んだビットマップ化ファイルです。
UFS スナップショットにより、バックアップ時に、ファイルシステムをマウントされた状態にしシステムをマルチユーザーモードにしておくことができます。これまでは、バックアップを実行するために ufsdump コマンドを使用する時は、ファイルシステムをアクティブでない状態に保つためにシステムをシングルユーザーモードにすることが推奨されていました。より確実なバックアップのために、tar や cpio などの追加の Solaris のバックアップコマンドを使用して UFS スナップショットのバックアップを行うこともできます。
fssnap コマンドにより、企業レベルではないシステムの管理者が、大規模な記憶容量の必要なく、Sun StorEdgeTM Instant Image のような企業レベルツールのパワーを得ることができます。
UFS スナップショットは、Instant Image 製品に似ています。Instant Image は、取り込まれるファイルシステム全体のサイズに等しいスペースを割り当てます。しかし、UFS スナップショットが作成するバッキングストアファイルは、必要なディスクスペースの容量しか占有せず、またバッキングストアファイルのサイズに上限を設定することもできます。
次の表は、UFS スナップショットと Instant Image との特徴的な違いを示します。
UFS スナップショット |
Instant Image |
---|---|
バッキングストアファイルのサイズは、スナップショットがとられた後のデータの変更量による |
バッキングストアファイルのサイズは、コピーされるファイルシステム全体のサイズに等しい |
システムのリブート後は保持されない |
システムのリブート後も保持される |
UFS ファイルシステムで動作する |
ルート (/) または /usr ファイルシステムでは使用できない |
Solaris 8 1/01 リリースに組み込まれている |
Enterprise Services Package に組み込まれている |
UFS スナップショットは大規模なファイルシステムをコピーすることができますが、企業レベルのシステムには Instant Image の方が適しています。UFS スナップショットは、小さめのシステムに適しています。
ファイルシステムのスナップショットが最初に作成される時、そのファイルシステムのユーザーは短い一時停止に気づくでしょう。一時停止の時間は、取り込まれるファイルシステムのサイズとともに増加します。ファイルシステムのスナップショットがアクティブな間、そのファイルシステムのユーザーは、ファイルシステムに書き込まれる際に若干のパフォーマンス上の影響に気づくでしょう。しかしファイルシステムが読まれる際には影響はありません。
fssnap コマンドを使用してファイルシステムのスナップショットを作成する際は、バッキングストアファイルがどれだけのディスクスペースを消費するかを監視してください。バッキングストアファイルは初めはスペースを全く使用せず、その後特によく使用されているシステムにおいて、急速に拡大します。バッキングストアファイルが拡大するのに十分なスペースを必ず確保しておくか、または -o maxsize=n [k,m,g] オプション (n [k,m,g] はバッキングストアファイルの最大限のサイズ) でそのサイズを制限してください。
バッキングストアファイルにスペースが不足する場合、スナップショットが削除されてしまうことがあり、バックアップが失敗します。スナップショットのエラーの可能性を調べるため、/var/adm/messages ファイルをチェックしてください。
スーパーユーザーになります。
ファイルシステムにバッキングストアファイル用の十分なディスクスペースがあることを確認します。
# df -k |
同じロケーションに同じ名前の既存のバッキングストアファイルが存在していないことを確認します。
# ls /file-system/backing-store-file |
ファイルシステムのスナップショットを作成します。
# fssnap -F ufs -o bs=/file-system/backing-store-file /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 /export/home /dev/fssnap/1 |
fssnap -i オプションの使用により、システムの現在のスナップショットを表示することができます。1 つのファイルシステムを指定する場合、そのスナップショットについての詳細な情報が表示されます。特定のファイルシステムを指定しない場合は、現在のすべてのファイルシステムのスナップショットとそれらに対応する仮想デバイスの情報が表示されます。
スーパーユーザーになります。
現在のスナップショットをリスト表示します。
# fssnap -i 0 / 1 /usr |
特定の 1 つのスナップショットについての詳細な情報を表示する場合は、次のように実行します。
# 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 : /scratch/usr.back.file Backing store size : 480 KB Maximum backing store size : Unlimited Snapshot create time : Tue Aug 08 09:57:07 2000 Copy-on-write granularity : 32 KB |
UFS スナップショットを作成する際、バッキングストアファイルがリンクされないように指定することができます。これは、そのバッキングストアファイルが、スナップショットが削除された後で削除されることを示します。UFS スナップショットを作成する際に -o unlink オプションを指定しない場合は、後で手動で削除する必要があります。
バッキングストアファイルは、バッキングストアファイルを削除するために -o unlink オプションを使用した場合はスナップショットが削除されるまで、そうでなければ手動で削除するまで、ディスクスペースを使用します。
スナップショットは、システムをリブートするか、あるいは fssnap -d コマンドを使用してファイルシステムのスナップショットを含むファイルシステムのパスを指定することで、削除できます。
スーパーユーザーになります。
削除するスナップショットを特定します。
# fssnap -i |
そのスナップショットを削除します。
# fssnap -d /file-system Deleted snapshot 1. |
(オプション) スナップショットの作成時に -o unlink オプションを使用しなかった場合は、そのバッキングストアファイルを手動で削除する必要があります。
# rm /file-system/backing-store-file |
以下は、unlink オプションを使用しなかった場合の、スナップショットを削除する例です。
# fssnap -i 0 / 1 /usr # fssnap -d /usr Deleted snapshot 1. # rm /scratch/usr.back.file |
ファイルシステムのスナップショットを含む仮想デバイスは、標準の読み取り専用デバイスとして振舞います。これは、仮想デバイスを、ファイルシステムのデバイスをバックアップするかのようにバックアップすることができるということを示します。
ufsdump コマンドを使用して UFS スナップショットをバックアップする場合、バックアップ時にスナップショットの名前を指定することができます。詳細は、次の節を参照してください。
tar コマンドを使用してスナップショットをバックアップする場合、次のように、バックアップを行う前にスナップショットをマウントします。
# mkdir /backups/home.bkup # mount -F UFS -o ro /dev/fssnap/1 /backups/home.bkup # cd /backups/home.bkup # tar cvf /dev/rmt/0 . |
ファイルシステムをバックアップする方法についての詳細は、『Solaris のシステム管理 (第 1 巻)』の「ファイルとファイルシステムのバックアップ (手順)」の章を参照してください。
スーパーユーザーになります。
バックアップをとるファイルシステムのスナップショットを特定します。
# fssnap -i /file-system |
例:
# 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 : /scratch/usr.back.file Backing store size : 480 KB Maximum backing store size : Unlimited Snapshot create time : Tue Aug 08 09:57:07 2000 Copy-on-write granularity : 32 KB |
ファイルシステムのスナップショットのバックアップを行います。
# ufsdump 0ucf /dev/rmt/0 /snapshot-name |
例:
# ufsdump 0ucf /dev/rmt/0 /dev/rfssnap/1 |
スナップショットがバックアップされたことを確認します。
# ufsrestore ta /dev/rmt/0 |
ファイルシステムのスナップショットをインクリメンタル (増分的) に作成したい場合、つまり最後のスナップショット以降に変更のあったファイルだけをバックアップしたい場合は、ufsdump コマンドを新しい N オプションとともに使用します。このオプションは、増分ダンプをトラックするために /etc/dumpdates ファイルに挿入されるファイルシステムのデバイス名を指定します。
次の例では、ufsdump コマンド内で fssnap コマンドを組み込んでファイルシステムの増分ダンプを作成しています。
スーパーユーザーになります。
ファイルシステムスナップショットの増分ダンプを作成します。
# ufsdump 1ufN /dev/rmt/0 /dev/rdsk/c0t1d0s0 `fssnap -F ufs -o raw,bs= /export/scratch,unlink /dev/rdsk/c0t1d0s0` |
上記の例では、ブロックデバイスではなく raw デバイスの名前を表示するために -o raw オプションが使用されています。このオプションの使用により、fssnap コマンドを raw デバイスを必要とするコマンド (ufsdump コマンドなど) に組み込むことが容易になります。
スナップショットがバックアップされたことを確認します。
# ufsrestore ta /dev/rmt/0 |
仮想デバイスから作成されたバックアップは、基本的には、スナップショットがとられた時点でのオリジナルのファイルシステムの状態を表しています。バックアップから復元を行う場合は、オリジナルのファイルシステムから直接そのバックアップをとったかのように (たとえば ufsrestore コマンドを使用したものなどのように) 復元します。ファイルシステムの復元についての詳細は、『Solaris のシステム管理 (第 1 巻)』の「ファイルとファイルシステムの復元 (手順)」の章を参照してください。