AFS バックアップ・システムは、AFS ボリュームからデータのバックアップ・コピーを作成し、ファイル・システムが消失したり、破壊された場合にはファイル・システムにデータを復元します。この章では、バックアップ・システムの構成方法について説明します。データのバックアップおよび復元方法、ダンプ・レコードの表示方法については、AFS データのバックアップと復元 を参照してください。
この章では、指示されたコマンドを使って以下のタスクを実行する手順について説明します。
テープ容量およびファイル・マーク・サイズの判別 | fms |
バックアップ・データベース内のテープ・コーディネーターの定義 | backup addhost |
テープ・コーディネーターのバックアップ・データベースからの削除 | backup delhost |
バックアップ・データベースのテープ・コーディネーター項目の表示 | backup listhosts |
ボリューム・セットの作成 | backup addvolset |
ボリューム項目のボリューム・セットへの追加 | backup addvolentry |
ボリューム・セットおよび項目のリスト | backup listvolsets |
ボリュームのバックアップ・データベースからの削除 | backup delvolset |
ボリューム項目のボリューム・セットからの削除 | backup delvolentry |
ダンプ・レベルの定義 | backup adddump |
既存のダンプ・レベルの有効期限の変更 | backup setexp |
ダンプ階層のダンプ・レベルの削除 | backup deldump |
ダンプ階層の表示 | backup listdumps |
テープのラベル付け | backup labeltape |
テープのラベルの読み取り | backup readlabel |
AFS バックアップ・システムは非常に柔軟なシステムで、これにより、ボリューム・バックアップされる頻度、ボリューム内のすべてのデータをダンプするのか、最後のダンプ操作の後で変更されたデータだけをダンプするのか、などほとんどのバックアップ・プロセスを制御することができます。また、バックアップ・プロセスの多くを自動化する機能を利用することができます。
バックアップ・システムを有効に管理および使用するには、以降の機能グループで説明する内容についてよく理解する必要があります。ユーザーのセルにバックアップ・システムを構成し、機能をインプリメントする方法については、 バックアップ・システム構成の概説 を参照してください。
AFS データをバックアップする場合、どのファイルを組み込むのかを個々のファイルについてではなく、ボリューム全体について指定します。より正確にいうと、ボリューム・セット というボリュームのグループを定義し、この中の 1 つまたは複数のボリュームを 1 回の操作でバックアップすることになります。データのバックアップ・コマンド (backup dump コマンド) では個々のボリューム名は指定できないので、ボリュームはバックアップするボリューム・セットに組み込む必要があります。
ボリューム・セットは、1 つまたは複数の ボリューム項目 から構成されています。この項目には、その位置 (ファイル・サーバー・マシンおよび区画) に基づいてバックアップされるボリューム、およびボリューム名が指定されています。ワイルドカードを使用すると、位置を許容しているボリュームまたは名前に共通の文字列を含むボリューム (あるいはその両方) をまとめて指定することができます。
ボリューム・セットおよびボリューム項目の作成および削除方法については、 ボリューム・セットおよびボリューム項目の定義および表示 を参照してください。
dump は、ボリューム・セットのバックアップで生成されたデータのコレクションです。 フル・ダンプ には、ダンプ操作時に存在しているボリューム・セットのボリューム・データがすべて書き込まれます。 増分ダンプ には、ボリューム・セットのボリューム・データの一部 (指定されたダンプ操作の後に変更されたファイルおよびディレクトリー構造) が書き込まれます。前のダンプは、増分ダンプの 親ダンプ になります。これは、フル・ダンプの場合も増分ダンプの場合もあります。
ダンプ・セット は、1 つまたは複数の磁気テープに格納されているダンプのコレクションです。ダンプ・セットの最初のダンプは 初期ダンプ といい、既存のダンプの最後に追加されるダンプを 付加ダンプ といいます。付加ダンプはオプションですが、磁気テープの容量を最大限に利用することができます。逆に、初期ダンプだけにすると、一部しか使用していない磁気テープが数多くできてしまいます。初期ダンプは必ず磁気テープの先頭から開始しますが、磁気テープの最後まで書き込まれるとは限りません。付加ダンプを初期ダンプや別の付加ダンプに関連させる必要はありませんが (同じまたは関連するボリュームのダンプにする必要はありませんが)、よく計画して付加ダンプを作成すると、復元操作での磁気テープの交換回数を減らすことができます。たとえば、ボリューム・セットの増分ダンプを 1 つのダンプ・セットにまとめると効果的です。
バックアップ・データベースでは、初期ダンプを基準に、ダンプ・セットのすべてのレコードに索引が付いています (バックアップ・データベースの詳細については、バックアップ・データベースおよびバックアップ・サーバー・プロセス を参照してください)。付加ダンプのレコードをデータベースから削除する場合には、初期ダンプのレコードも削除しなければなりません。これを行うと、ダンプ・セットのすべてのダンプのレコードが削除されます。また、1 つの磁気テープを再利用するには、ダンプ・セットのすべての磁気テープのレコードをデータベースから削除しなければなりません。
初期ダンプの作成方法については データのバックアップ を、付加ダンプについては ダンプを既存のダンプ・セットに追加するには をそれぞれ参照してください。
ダンプ階層 は、フル・ダンプと増分ダンプの関係を定義している論理構造です。ここでは、増分ダンプの親となるダンプを定義しています。階層内の個々のコンポーネントを ダンプ・レベル といいます。 backup dump コマンドでダンプを作成するときには、ボリューム・セットの名前とダンプ・レベルを指定します。バックアップ・システムは、ダンプ・レベルを使用して、このダンプがフル・ダンプなのか増分ダンプなのかを判別します。また、増分ダンプの場合には、どのダンプ・レベルが親になるのかも判別します。
ダンプ・レベルには 有効期限 を設定して、このレベルで作成されたダンプの有効期限を定義することができます。磁気テープが属しているダンプ・セットのダンプがすべて有効期限切れになるまで、バックアップ・システムは磁気テープの上書き要求を拒否します。したがって、有効期限を割り当てると、磁気テープの再利用方法が自動的に決まります。有効期限は、絶対値 (たとえば、2000 年 1月 13 日) で設定することも、相対値 (たとえば、ダンプ作成後 30 日) で設定することもできます。また、ダンプ・レベルに関連する有効期限を変更することもできます (ただし、そのレベルですでに作成された、実際のダンプの有効期限は変更できません)。
ダンプ階層の作成方法、有効期限の設定方法、および磁気テープの再利用方法については、 ダンプ階層の定義および表示 を参照してください。
ダンプを作成すると、バックアップ・システムは、そのダンプのレコードをバックアップ・データベースに作成します。このレコードには、ボリューム・セットの名前とダンプ・レベルのパス名の最後の要素を組み合わせた名前が割り当てられます。名前の形式は次のとおりです。
volume_set_name.dump_level_name
たとえば、ボリューム・セット user をダンプ・レベル /sunday/friday で作成すると、 user.friday という名前になります。また、バックアップ・システムは、固有の ダンプ ID 番号をダンプに割り当て、同じ名前のダンプと区別できるようにします。
また、バックアップ・システムは、ダンプ・セットのある磁気テープに AFS 磁気テープ名 を割り当てます。この名前は、ダンプ・セットの初期ダンプのボリューム・セットおよびダンプ・レベル、ダンプ・セット内での磁気テープの位置、および固有のダンプ ID 番号から構成されます。名前の形式は、次のとおりです。
volume_set_name.dump_level_name.tape_index (dump ID)
たとえば、初期ダンプがダンプ・レベル /sunday/friday のボリューム・セット uservol であるダンプ・セットの 2 番目のテープは、uservol.friday.2 (914382400) のようになります。
その AFS 磁気テープ名に加えて、磁気テープは任意でユーザーが指定した 永続名 をもつことができます。AFS 磁気テープ名とは異なり、永続名は、最初の(またはほかの)ダンプのボリューム・セットやダンプ・レベルを示す必要がないので、磁気テープの内容に従って変わることはありません。バックアップ・システムでは永続名に特定の形式を必要としないため、テープ名がそれぞれ固有のものであることを確認しなくてはなりません。磁気テープに永続名が付いていると、バックアップ・システムは、プロンプトや backup コマンドの出力で AFS 磁気テープ名ではなく永続名を使用しますが、この場合でも AFS 磁気テープ名を内部に記録します。
バックアップ・システムで使用される磁気テープはどれも、先頭に、磁気テープ名、容量、およびその他の情報を記録するための磁気ラベルが付いています。 backup labeltape コマンドを使用すると、ラベルを自分で作成することができたり、backup dump コマンドを使用すれば、ラベルなしの磁気テープを使用する場合には自動的にラベルが作成されます。ラベルは、以下のような情報をレコードします。
ダンプを書き込む時に磁気テープにまだ実際の AFS 磁気テープ名が付けられていない場合、バックアップ・システムは、適切な AFS 磁気テープ名を調べてレコードします。磁気テープに AFS 磁気テープ名を付けずに、初期ダンプを書き込む場合、ダンプのボリューム・セットおよびダンプ・レベルを正確に反映しなければなりません。
ラベル付きテープに関する情報については、テープ・ラベルの書き込みおよび読み取り を参照してください。
磁気テープ・ラベルに加えて、バックアップ・システムは追加されたダンプ (磁気テープ・ラベルとダンプ・ラベルは最初のダンプの場合には同じです) ごとに、テープのダンプ・ラベル を書き込みます。ダンプ・ラベルは、以下のような情報をレコードします。
バックアップ・システムは、ファイル・マーク (ファイル終わりまたは EOF マーカーとも呼ばれています) をダンプの各ボリュームからのデータ間に書き込みます。磁気テープ装置の製造者がファイル・マークのサイズを決めています。これは一般に 2 KB および 2 MB で、装置が使用する磁気テープの普段の容量よりも大きく、ファイル・マーク・サイズよりも大きく設定されています。ダンプの中に、たくさんのボリュームのそれぞれからのデータが少量ずつ入っている場合には、増分ダンプがしばしば行うように、ファイル・マーク・サイズによって、磁気テープにボリューム・データが収まる量に大きな影響を与えることがあります。バックアップ・システムがダンプを書き込むときにファイル・マーク・サイズを計算できるように、構成ファイルにファイル・マークのサイズを記録しておくことができます。詳細については、tapeconfig ファイルの構成 を参照してください。
磁気テープ・コーディネーター は、バックアップ操作で使用された 1 つ以上付加された磁気テープ装置を動かすマシンです。これは、AFS クライアント・ソフトウェア (キャッシュ・マネージャー) を実行しますが、コンソールへの認証されていないアクセスを防止する物理的セキュア・ロケーションに常に配置するようにします。バックアップ操作が磁気テープ・コーディネーター・マシンで実行できるようにするためには、その前に、マシン上の各磁気テープ装置をバックアップ・データベースに登録して、いくつかのファイルとディレクトリーをマシンのローカル・ディスクに作成しなければなりません。方法については、磁気テープ・コーディネーター・マシンを構成するには を参照してください。
テープ・コーディネーター・マシンの各磁気テープ装置は、異なる UNIX ポートでのバックアップ要求を確認します。ポート・オフセット番号 を磁気テープ装置に割り当てることで間接的にポートを選出します。バックアップ・システムは、ポート・オフセットから内部的に判別するための基本ポート番号を加算することで装置の実際のポートを設定します。ポート・オフセット番号の割り当て命令については、tapeconfig ファイルの構成 を参照してください。
磁気テープ装置がバックアップ操作を実行するためには、装置専用のバックアップ磁気テープ・コーディネーター (butc)処理が、磁気テープ・コーディネーター・マシン上で実行していなければなりません。それから、そのポート・オフセット番号を backup コマンドの-portoffset 引き数で指定することによって、バックアップ要求を装置の磁気テープ・コーディネーターに送ります。
バックアップ・データの書き込みはテープだけではなく、テープ・コーディネーター・マシンのローカル・ディスクにあるバックアップ・データ・テープに行うことができます。それからユーザーは、データを階層記憶管理 (HSM) システムなどのデータ保存システムに転送することができます。このシステムは AFS およびバックアップ・システムと一緒に使用します。バックアップ・データ・ファイルは、磁気テープ装置と同様にポート・オフセットがあります。バックアップ・データ・ファイルの構成についての説明は、 データのバックアップ・データ・ファイルへのダンプ を参照してください。
バックアップ・データベース は、セルのデータベース・サーバー・マシンの Backup Server プロセスで保守を行う複写された管理データベースです。ほかの AFS データベース・サーバー処理と同様に、バックアップ・サーバーは Ubik ユーティリティーを使用して、同期化されるデータベースのさまざまなコピーを保持することができます。 (Ubik の説明については、AFS 管理データベースの複写 を参照してください。)
バックアップ・データベースは、次のような情報を記録します。
コマンドの backup セットは、バックアップ・システムへの管理インターフェースです。任意の AFS クライアントまたはサーバーのコマンド・シェルで、アクセス可能な backup バイナリーからのコマンドを発行できます (または、シェル・スクリプトでこれらを呼び出せます)。一般的な構成では、バイナリーは常にローカル・ディスクにあります。
backup コマンド・スイートは、バックアップ・サーバーおよびボリューム・ロケーション (VL) サーバーへの持続接続に関する複数のコマンドを発行できる、 対話モード を提供します。対話モードでは、次のように便利な機能が用意されています。
磁気テープ (またはバックアップ・データ・ファイル) の読み取りまたは書き込みを必要とするコマンドを発行する前に、関連する磁気テープ装置 (またはローカル・ディスクにあるバックアップ・データ・ファイル) が接続している磁気テープ・コーディネーターとの接続をオープンし、 butc コマンドを発行して、磁気テープ・コーディネーター・プロセスを開始する必要があります。バックアップ操作で磁気テープ装置またはファイルを使用している間は、このプロセスの実行を継続し、接続をオープンにしておく必要があります。
詳細については、バックアップ・システムのインターフェースの使用 を参照してください。
バックアップ・システムを使用してデータをバックアップしたり、復元したりする前に、基本的なコンポーネントをいくつか構成しなければなりません。この章の機能グループでは、この構成作業について説明します。この章の内容は、次のとおりです。
バックアップ・ダンプ、または復元操作の実行に必要なコンポーネントの構成がすべて終了している場合には、 データのバックアップ および データの復元と回復 の指示に進んでください。
テープ・コーディネーターがテープに書き込むデータ量を決定するには、いくつかの要因が関連しています。
(バックアップ・データ・ファイルに書き込まれるデータの量、区画で使用可能なスペースの量とオペレーティング・システムでの最大ファイル・サイズから判別することができます。磁気テープ・コーディネーターは、バックアップ・データ・ファイルへ書き込む時はファイル・マークを書き込みません。バックアップ・データ・ファイルを書き込む場合のテープ・コーディネーターの構成方法については、 データのバックアップ・データ・ファイルへのダンプ を参照してください。)
磁気テープ・コーディネーター (butc) プロセスが初期化されると、ローカル・ディスクにある /usr/afs/backup/tapeconfig ファイルから、ダンプ操作に使用する磁気テープの容量およびファイル・マークのサイズ (磁気テープの場合) またはファイル・サイズ (バックアップ・データ・ファイルの場合) が読み取られます。また、ダンプ操作を始めると、磁気テープ・コーディネーターは、磁気テープまたはバックアップ・データ・ファイルのラベルを読み取り、磁気テープの容量またはファイル・サイズが一致しているかどうか確認します。値が異なる場合には、ラベルの値が tapeconfig ファイルにあるデフォルト値で上書きされます。
ダンプ操作時で、磁気テープ・コーディネーターが磁気テープにデータを書き込むときに、この容量とファイル・マークの情報を使用して、テープの使用量とテープの終わりまでの物理的な残量を計算します。 EOT に達する直前に、磁気テープ・コーディネーターは書き込み操作を停止し、新しい磁気テープを要求します。同様に、バックアップ・データ・ファイルのサイズを使用して、ファイルの占有しているスペースを計算します。テープ・コーディネーターが EOT に予想外の到達をしたら、新規のテープを手に入れて、EOT を検出したボリュームの内容をすべて書き込みます。中断されたボリュームは最初のボリュームに残りますが、使用することはできません。
多くのテープ装置では、特に装置の圧縮モードを使用する場合、複数ギガバイト、または複数テラバイトのバックアップ・データを収容可能なテープを使用します。このような装置およびテープに書き込む場合は、テープ・コーディネーターが予期しない EOT を検出するようにすることを一般にお勧めします。装置のデータ書き込みが高速なため、新規テープに割り込みボリュームを再度書き込むのはそれほど時間がかかりません。同様にデータ圧縮の効率がよいため、最初のテープで中止された割り込みボリュームのデータは、テープの多くを消費するものではありません。
少量のデータ (たとえば 2 GB 以下) を収容するテープに書き込む場合は、テープ・コーディネーターが予期しない EOT を検出しないようにする方がよいでしょう。 AFS は 2 GB までのサイズのボリュームをサポートするため、割り込まれたボリュームは実際にテープのほとんどを使用してしまいます。このようなテープでは、テープの容量とファイル・マークのサイズを正確に記録しておくと、テープを有効に使用し、ダンプ操作を効率よく行うことができます。 tapeconfig ファイルのフィールドについて、適切な値の決め方を以下に説明します。
磁気テープ・コーディネーターが使用する磁気テープ装置またはバックアップ・データ・ファイルは、テキスト・エディターを使用して、磁気テープ・コーディネーターの tapeconfig ファイルに記述してください。次のような形式で、装置またはファイルごとに 1 行にまとめて記述してください。
[capacity filemark_size] device_name port_offset
ここで、
通常モード (非圧縮モード) で使用するサイズが 2 GB 以下の磁気テープの容量を計算する場合には、磁気テープの製造元が指定する値 (磁気テープのパッケージに記載されています) を調べるか、あるいは fms コマンドを使用して容量を計算してください。このコマンドについては、この機能グループの後半で説明します。磁気テープ・コーディネーターが予期しない EOT を検出しないように、磁気テープの実際の容量より 10% ほど少ない値を tapeconfig ファイルまたはラベルに記録してください。小容量のテープを圧縮モードで使用する場合の適切な値を計算する方法として、テープ容量 (製造者が記録) に装置の圧縮比率をかける方法があります。
数ギガバイトまたはテラバイトのデータを収容するテープの場合、あるいはテープ装置の圧縮モードを使用する場合は、テープの最大容量よりも大きい値 (たとえば 2 倍) を記録するような構成が推奨されます。一般に大容量のテープでは、非圧縮モードでも fms コマンドの実行は意味がありません。このコマンドは、圧縮モードの場合、正確な結果を得ることができません。磁気テープ・コーディネーターが予期しない EOT を検出することはまずありませんが、圧縮モードの場合、ボリュームが割り込まれて破棄されたデータもあるので、磁気テープ上のデータ量と磁気テープの使用率が必ずしも一致するわけではありません。
バックアップ・データ・ファイルの場合、区画で使用可能なスペースよりも少し小さく、オペレーティング・システムの最大ファイル・サイズより小さい値を記録してください。他のプロセスが区画に書き込む量を制限して、区画内のスペースがなくならないようにすることもできます。
このフィールドが空の場合、テープ・コーディネーターは、最大許容値 (2048 GB または 2 TB) を使用します。このフィールドと filemark_size フィールドを両方とも空にしておくか、または両方のフィールドに値を入力します。
通常 (非圧縮) モードの磁気テープ装置の場合、fms コマンドを使用してファイル・マーク・サイズを計算することができます。また、装置の製造元が指定している値を調べることもできます。磁気テープ・コーディネーターが予期しない EOT を検出しないように、 tapeconfig ファイルに記録するときに、10% ほど多めの値を記録してください。
磁気テープ装置の圧縮方式における推奨値は、0 (ゼロ) です。 fms コマンドは、圧縮方式では実際の結果をもたらさないので、ファイル・マーク・サイズの判別には使用できません。
バックアップ・データ・ファイルの推奨値も、 0 (ゼロ) です。テープ・コーディネーターは、ファイルの書き込み時にファイル・マークを使用しませんが、 capacity フィールドに値がある場合でも、このフィールドには値がなければいけません。
このフィールドが空の場合、テープ・コーディネーターは、値 0 (zero) を使用します。このフィールドと capacity フィールドを両方とも空にしておくか、または両方のフィールドに値を入力します。
正式な値は、整数の 0 から 58510 までです (バックアップ・システムは、最大 58,511 ポート・オフセット番号を記録できます)。それぞれの値は、セルの磁気テープ・コーディネーターごとに固有でなければなりませんが、連続したポート・オフセット番号を割り当てる必要はなく、 1 つのマシンまたは同じように磁気テープ装置ごとに任意の番号を付けられます。たとえば、磁気テープ装置を圧縮および非圧縮の両方のモードで使用する場合には、2 つの異なるポート・オフセットを割り当て、それぞれのモードに適切な磁気テープ容量およびファイル・マーク・サイズを指定してください。
バックアップ操作によく使用する磁気テープ装置またはバックアップ・データ・ファイルの磁気テープ・コーディネーターに、ポート・オフセット0 (ゼロ) を割り当ててください。これにより、 backup コマンドの可能な最大番号から -portoffset 引き数を省略することができます。
次の例では、tapeconfig ファイルに、2 つの磁気テープ装置 /dev/rmt0h および /dev/rmt1h が記述されています。この 2 つの装置では、容量が 2 GB、ファイル・マーク・サイズが 1 MB の磁気テープを使用しています。これらのポート・オフセット番号は、0 および 1 になります。
2g 1m /dev/rmt0h 0 2G 1M /dev/rmt1h 1
fms コマンドは、標準出力 (stdout) および現行作業ディレクトリーに書き込む fms.log ファイルの両方に、挿入された磁気テープの容量および磁気テープ装置のファイル・マーク・サイズをレポートします。コマンド・インタープリターは必ず、データをテープ全体へ書き込むので、コマンドは、磁気テープのサイズによりますが、数時間以上から 1 日で完了できます。
% fms <tape special file>
ここで、
次の例では、容量が 2136604672 バイト (約 2 GB)、装置のファイル・マーク・サイズが 1910205 バイト (約 2 MB) の 装置 /dev/rmt0h の情報が出力されています。
% fms /dev/rmt0h wrote block: 130408 Finished data capacity test - rewinding wrote 1109 blocks, 1109 file marks Finished file mark test Tape capacity is 2136604672 bytes File marks are 1910205 bytes
セル内で backup および butc コマンドを発行するユーザーは、バックアップ・データベースおよびボリューム・ロケーション・データベース (VLDB) を格納している各データベース・サーバー・マシン、およびボリューム・セットのボリュームを所有しているマシンの /usr/afs/etc/UserList ファイルに記述されていなければなりません。規則として、セル内のすべてのサーバー・マシンに、同じ UserList ファイルがあります。本書では、ユーザーのセルが規約に従って構成されていることを前提にしています。 UserList ファイルを編集するには、 UserList ファイルの管理 で説明された bos adduser および bos removeuser コマンドを使用します。
UserList ファイル以外に、 butc コマンドを発行するバックアップ操作員は、各磁気テープ・コーディネーター・マシンのローカル /usr/afs/backup ディレクトリーにあるファイルに書き込み操作が許可されていなければなりません。このディレクトリーは、UNIX モード・ビットで保護されています。ユーザーのセルで最初の磁気テープ・コーディネーター・マシンを構成する前に、ディレクトリーとそのファイルの所有者にするローカル・ユーザーおよびグループを決めてください。使用可能な所有権オプションは、次のとおりです。
この他に、すべてのバックアップ操作員が所属するグループをローカル・グループ・ファイル ( /etc/group または同等のファイル) に定義するオプションがあります。この場合、 /usr/afs/backup ディレクトリーとそのファイルに対するユーザー・モード・ビットではなく、グループ・モード・ビットの w モード・ビット (書き込み 許可) をオンにしてください。他のオプションを比べて、このオプションを使用すると、各操作員が自分の管理アカウントを持つことができるので、細かく監査できるという利点があります。
保護モードの選択方法またはインプリメントについては、 テープ・コーディネーター・マシンおよびテープ装置の構成 を参照してください。
この機能グループでは、磁気テープ・コーディネーター・マシンの構成方法、単一の磁気テープ装置またはバックアップ・データ・ファイルに関連付けられた磁気テープ・コーディネーターの構成または削除方法について説明します。
注: | テープ装置が AIX システムに接続している場合には、テープ装置のテープ・ブロック・サイズを 0 (ゼロ) に変更する必要があります。この値は、可変ブロック・サイズを意味します。ゼロに変更しないと、AIX システムで作成した磁気テープが、他のシステム・タイプのマシンに接続している装置で読み取れなくなります。AIX smit プログラムを使用すると、 3 のステップの説明のように、磁気テープ装置の磁気テープ・ブロック・サイズを調べたり、変更することができます。 |
% bos listusers <machine name>
% su root Password: root_password
テープ・コーディネーター・マシンが AIX システムの場合、以下のコマンドを発行して、テープ装置のテープ・ブロック・サイズを 0 (ゼロ) に変更します。それぞれの磁気テープ装置ごとに繰り返します。
# chdev -l 'device_name' -a block_size='0'
device_name はテープ装置の装置名です (たとえば、/dev/rmt0h)。
# ls /usr/afsws/etc
# mkdir /usr/afs # mkdir /usr/afs/backup
# chown admin_owner /usr/afs/backup # chown admin_owner /usr/afs/backup/tapeconfig # chgrp admin_group /usr/afs/backup # chgrp admin_group /usr/afs/backup/tapeconfig # chmod 774 /usr/afs/backup # chmod 664 /usr/afs/backup/tapeconfig
# backup addhost <tape machine name> [<TC port offset>]
ここで、
% bos listusers <machine name>
% su root Password: root_password
テープ・コーディネーター・マシンが AIX システムの場合、以下のコマンドを発行して、テープ装置のテープ・ブロック・サイズを 0 (ゼロ) に変更します。
# chdev -l 'device_name' -a block_size='0'
# backup listhosts
listh は、listhosts の受け入れ可能な最も短い省略形です。
# backup addhost <tape machine name> [<TC port offset>]
% bos listusers <machine name>
% backup delhost <tape machine name> [<TC port offset>]
ここで、
% backup listhosts
ここで、
コマンドの出力には、現在バックアップ・データベースに記録されている磁気テープ・コーディネーターとそのポート・オフセット番号が表示されます。ポート・オフセット番号が表示されても、関連する磁気テープ・コーディネーターが実行されているとは限りません。マシン名は、backup addhost コマンドに指定した形式で表示されます。
次の例は、 ABC Corporation セルのバックアップ・データベースに現在定義されている磁気テープ・コーディネーターを表示しています。
% backup listhosts Tape hosts: Host backup1.abc.com, port offset 0 Host backup1.abc.com, port offset 2 Host backup2.abc.com, port offset 1 Host backup2.abc.com, port offset 3
バックアップ・システムは、個々のファイル単位ではなく、ボリューム単位でデータを処理します。バックアップ操作を実行する前に、backup addvolset コマンドを使ってボリューム・セット というボリュームのグループを定義する必要があります。ボリューム・セットには、最大 31 文字までの名前を付けることができます。名前には、ピリオド ( .) を除くすべての文字を使用することができます。シェルに対して特殊な意味を持つメタ文字は使用しないようにしてください。
ボリューム・セットを作成したら、 backup addvolentry コマンドを使って、 1 つまたは複数のボリューム項目 を、その中に配置します。ボリューム項目は、そのボリューム・セットに属すボリュームの、位置 (ファイル・サーバー・マシンと区画) および名前を定義します。コマンドに必須の -server 引き数を使用して、対象のボリュームを置くファイル・サーバー・マシンを指定し、さらに必須の -partition 引き数を使用して、その区画を指定します。2 種類の値が使用可能です。
ボリューム名 (必須の -volume 引き数) の場合は、英数字と 1 つまたは複数のメタ文字を組み合わせて指定し、ボリューム名の一部またはすべてをワイルドカードで指定します。ボリューム名フィールドでは、次のメタ文字を組み合わせて使用することができます。
最も一般的な正規表現は、ピリオドの後にアスタリスクが続く式 (.*) です。ピリオドは任意の一文字に一致し、アスタリスクは直前の文字の任意の繰り返しに一致するので、この式は、任意の長さの文字列に一致します。前述のように、ボリューム項目のファイル・サーバー・フィールドおよび区画フィールドで使用できる正規表現はこれだけです。ボリューム名フィールドでは、これらの文字は単独で使用するか (この場合、VLDB にリストされている任意のボリュームに一致します)、あるいは英数字と一緒に使用することができます。たとえば、 user.*\.backup という文字列は、 user で始まり、.backup で終了する任意のボリューム名に一致します。
対話モードで backup addvolentry を発行するのが最も簡単な方法です。シェル・プロンプトで発行する場合には、正規表現を含むすべての文字列を、二重引用符 (" ") で囲む必要があります。そうすることで、シェルは、それらを解決せずに、未解釈のまま backup インタープリターに渡します。
いくつかのボリュームを組み合わせて定義する場合には、 backup addvolentry コマンドの 3 つの引き数に次のタイプの値を指定してください。このリストでは、対話モードでの表記を使用しています。このコマンドをシェル・プロンプトで発行する場合には、正規表現を含む文字列全体を二重引用符で囲んでください。ボリュームの指定方法は次のとおりです。
ボリューム・セットを作成したら、ボリュームのグループを定義します。このグループのボリュームは、同じ磁気テープ、同じ時間 (たとえば、毎週または毎日)、および同じ方法 (フルまたは増分) でダンプされます。一般に、同じロケーションを共有するボリュームからボリューム・セットを構成するよりも、名前などから内容が類似したボリュームから構成したほうが有効です。負荷分散やスペース上の問題から、ボリュームを頻繁に移動する場合には特にそうです。また、 backup addvolentry コマンドの -server および -partition 引き数には、正規表現 .* を使用すると有効です。
一般に、ボリューム項目に入れるボリューム数を限定したほうが効果的です。ボリューム数が非常に多いボリューム・セットをダンプすると、完了までに長い時間がかかり、サービス割り込みやシステムの停止などで操作が失敗する可能性が高くなります。
ボリューム・セットからボリューム項目を消去するには、backup delvolentry コマンドを使用します。ボリューム・セットとそのコンポーネント・ボリューム項目のすべてをバックアップ・データベースから消去するには、 backup delvolset コマンドを使用します。ボリューム・セット内のボリューム項目を表示するには、backup listvolsets コマンドを使用します。
デフォルトでは、新規のボリューム・セット用に、バックアップ・データベース・レコードが作成されます。しかし、ボリューム・セットを、バックアップ・データベースに永続的に記録しないように作成する方がいい場合もあります。たとえば、backup volsetrestore コマンドを使って、一緒にバックアップされたとは限らないボリュームのグループをリストアする場合などです (詳しくは、backup volsetrestore コマンドの使用 を参照してください)。 一時 ボリューム・セットを作成するには、 backup addvolset コマンドに -temporary フラグを指定してください。一時ボリューム・セットは、現行の対話式セッションが存続する間のみ存在します。したがって、このフラグは、 backup (interactive) コマンドによってオープンされた対話式セッションで使用される間のみ有効です。 backup delvolset コマンドを使って対話式セッションが終了する前に一時ボリューム・セットを削除することもできますが、上述のように、セッションの終了時には自動的に削除されます。一時ボリューム・セットの利点の 1 つは、 backup addvolset コマンドです。また、それ以降に使用される backup addvolentry コマンドは、ボリューム項目を追加し、バックアップ・データベース・レコードが作成しないため、通常のボリューム・セットよりも速く完了します。
% bos listusers <machine name>
% backup
backup> addvolset <volume set name> [-temporary]
ここで、
% bos listusers <machine name>
% backup
backup> addvolentry -name <volume set name> \ -server <machine name> \ -partition <partition name> \ -volumes <volume name (regular expression)>
ここで、
% backup listvolsets [<volume set name>]
ここで、
コマンドからの出力では、ボリューム項目が作成されたときのワイルドカード表記が使用されます。文字列 (temporary) は、一時ボリューム・セットにマークを付けます。次の例は、セルのバックアップ・データベースに定義されている 3 つのバックアップ・データベースすべてと、現行の対話式セッション内で作成された一時ボリューム・セット pat+jones を表示します。
backup> listv Volume set pat+jones (temporary): Entry 1: server fs1.abc.com, partition /vicepe, volumes: user.pat.backup Entry 2: server fs5.abc.com, partition /viceph, volumes: user.jones.backup Volume set user: Entry 1: server .*, partition .*, volumes: user.*\.backup Volume set sun: Entry 1: server .*, partition .*, volumes: sun4x_55\..* Entry 2: server .*, partition .*, volumes: sun4x_56\..* Volume set rs: Entry 1: server .*, partition .*, volumes: rs_aix42\..*
% bos listusers <machine name>
% backup delvolset <volume set name>+
ここで、
% bos listusers <machine name>
% backup
backup> listvolsets <volume set name>
ここで、
backup> delvolentry <volume set name> <volume entry index>
ここで、
ダンプ階層は、フル・ダンプと増分ダンプの関係を定義しているバックアップ・データベースの論理構造です。ここでは、増分ダンプの親となるダンプを定義しています。階層内の個々のコンポーネントをダンプ・レベルといいます。
backup adddump コマンドを使用してダンプ・レベルを定義する場合には、次の規則および前提条件に注意してください。
以下の例では、3 つの階層を表しています。それぞれの階層は、最上位でフル・ダンプを開始します。最初の階層がsunday1、 2 番目の階層が sunday2、 3 番目の階層が sunday_bin です。この3 つの階層は、お互いがお互いの増分ダンプになっています。
/sunday1 /monday /tuesday /wednesday /thursday /friday /sunday2 /monday /tuesday /wednesday /thursday /friday /sunday_bin /monday /wednesday /friday
最初の階層では、各増分ダンプ・ダンプは、フル・レベルの /sunday1 を親として参照します。ボリューム・セットを /sunday1/wednesday レベルでダンプすると、ボリューム・セットが/sunday1 レベルで作成されてから変更されたデータが入ります。
逆に、2 番目階層での増分ダンプ・レベルは、直前のレベルを親として認識します。ボリューム・セットを 2 番目の階層で対応するレベル (/sunday2/monday/tuesday/wednesday) にダンプすると、ダンプには、このボリューム・セットが /sunday2/monday/tuesday レベルで (おそらくは一日前に) ダンプされてから変更されたデータだけが入ります。特定の日にダンプを作成した場合、この階層で作成された増分ダンプには、最初の階層で対応するレベルで作成された増分ダンプよりも少ないデータが入ります。
データの変更回数が頻繁でないため (たとえば、システム・バイナリー)、毎日バックアップする必要がないボリュームをダンプする場合に、 3 番目の階層は最適です。
多くのセルでは、バックアップ磁気テープを格納する場所や、磁気テープを購入する予算にも制限があります。この問題は、不要になった磁気テープを上書きして、データのバックアップに使用するなど、磁気テープを再利用すると解決することができます。バックアップ・システムは、各ダンプ・レベルに有効期限を設定することができるので、再利用のスケジュールを作成することができます。有効期限には、そのレベルで作成されたダンプの有効期限を定義します。有効期限が切れるまで、バックアップ・システムは、ダンプを含むテープの上書きを拒否します。したがって、有効期限を割り当てると、自動的に磁気テープの再利用方法が決まります。
磁気テープの再利用を計画するときには、バックアップされたデータの保存期間とバックアップ方法について考えなければなりません。たとえば、ユーザーのホーム・ボリュームを過去 2 週間の特定の日の状態に復元したい場合には、ダンプを毎日作成し、少なくとも 2 週間はそのダンプが入った磁気テープは再利用することができません。同様に、ユーザーのホーム・ボリュームを過去 1 か月の特定の週の初めの状態に復元したい場合には、毎週ダンプを作成して、少なくとも 4 週間はそのダンプが入った磁気テープを再利用することができません。次の例では、このスケジュールに従って磁気テープを再利用しています。ここでは、毎日実行する増分ダンプの有効期限を 13 日に、毎週実行するフル・ダンプの有効期限を 27 日に設定しています。
/sunday1 には、毎日の増分ダンプで作成されたダンプが保管されます。有効期限が切れると、このボリュームは、 /sunday3 での毎日のダンプ用に再利用され、このサイクルが繰り返されます。/sunday2 と /sunday4 階層との間にも同じような関係があります。同様に、磁気テープに /sunday1 レベルで作成されたフル・ダンプがあり、この有効期限が切れると、翌月の最初の日曜日に実行されるフル・ダンプに使用されます。
/sunday1 expires in 27d /monday1 expires in 13d /tuesday1 expires in 13d /wednesday1 expires in 13d /thursday1 expires in 13d /friday1 expires in 13d /sunday2 expires in 27d /monday2 expires in 13d /tuesday2 expires in 13d /wednesday2 expires in 13d /thursday2 expires in 13d /friday2 expires in 13d /sunday3 expires in 27d /monday1 expires in 13d /tuesday1 expires in 13d /wednesday1 expires in 13d /thursday1 expires in 13d /friday1 expires in 13d /sunday4 expires in 27d /monday2 expires in 13d /tuesday2 expires in 13d /wednesday2 expires in 13d /thursday2 expires in 13d /friday2 expires in 13d
セルで付加ダンプを使用する場合には、ダンプ・セットのすべてのダンプは、その構成しているダンプに関連した最新の有効期限が適用されるので注意してください。すべてのダンプの有効期限が切れるまで、ダンプ・セットを含む磁気テープは再利用することができません。 ダンプを既存のダンプ・セットに追加するには も参照してください。
磁気テープの製造元は、多くの場合、特定の回数以上は書き込み操作をおこなわないように推奨しています。磁気テープを再利用するときには、この回数を超えないように注意する必要があります。テープの使用状況が分かるように、バックアップ・システムは、磁気テープのラベルに useCount カウンターを記録しています。磁気テープのラベルが更新されるたびに (backup labeltape または backup dump コマンドを使用するたびに)、このカウンターは 1 つ加算されます useCount カウンターを表示する場合には、 backup readlabel または backup scantape コマンドを使用してください。backup dumpinfo コマンドを発行するときには、 -id および -verbose オプションを使用してください。説明については、テープ・ラベルの書き込みおよび読み取り、または バックアップ・ダンプ・レコードの表示 を参照してください。
磁気テープを効率よく再利用しようとすると、バックアップ・データの中に長期間保存しなければならないデータが見つかることがあります。バックアップ・システムを使用すると、一定のスケジュールでデータを保存することができます。また、以前に再利用の対象になった磁気テープを選択して、データを保存することができます。
一定の間隔でデータを保存する場合には、ダンプ階層内に日付別のダンプ・レベルを作成することができます。たとえば、 2000 年の四半期の開始ごとにセルに作成したすべてのデータのフル・ダンプを保存する場合には、ダンプ階層内に次のレベルを作成することができます。
/1Q2000 /2Q2000 /3Q2000 /4Q2000
以前に再利用を考えた磁気テープにあるデータを保存する場合には、関連するダンプ (フルおよび増分) を含む磁気テープをすべて用意しなければなりません。偶発的な事故でデータが消去されないように、スイッチを設定して磁気テープを書き込み不可にしてから、磁気テープの保管場所に移してください。磁気テープの中に、大量の不要なデータがある場合には、まず、関連するデータだけを新しい一時ボリュームに復元し、そのボリュームを最も少ない数の磁気テープに戻してください。ダンプ・セットのサイズを小さくするのは、保存することになるダンプ・セット内の関係のないデータの量を最小にするためです。
保存されたデータをファイル・システムに復元しない場合には、 backup deletedump コマンドを使用して、関連するダンプ・レコードをバックアップ・データベースから削除することを考えてみてください。これにより、常に効率のよいサイズに保つことができます。データの復元が必要になれば、backup scantape コマンドに -dbadd フラグを付けて発行すると、データベースにダンプ・レコードを再挿入することができます。説明については、 テープ内容をスキャンするには を参照してください。
作成したダンプ・レベルに有効期限を設定するには、 backup adddump コマンドで -expires 引き数を使用してください。既存のダンプ・レベルの有効期限を変更する場合には、 backup setexp コマンドに -expires 引き数を指定してください。 (このレベルですでに作成されているダンプの有効期限は変更できません。) 両方のコマンドで、有効期限は、絶対値 (たとえば、2000 年 1月 13 日) で設定することも、相対値 (たとえば、ダンプ作成後 30 日) で設定することもできます。
[at] mm/dd/yyyy [hh:MM]
ここで、mm は月、 dd は日、yyyy は年を表します。年に指定可能な値は、1970 から 2037 までです。(UNIX 時間可能な最新の日付は、 2038 年の初期までです。) 時間を指定する場合には、24 時間形式で入力してください。指定する形式は、hh MM です (たとえば 21:50 は 9:50 p.m. を表します)。. 時間を省略すると、デフォルトは指定された日付の 00:00 時 (午前 12:00) になります。
[in] [yearsy] [monthsm] [daysd]
この years、months、および days はそれぞれ整数です。それらのうち少なくとも 1 つは、それと対応する文字 (y、m、または d)と一緒に使用します。間にスペースは入れません。この 3 つのうち 2 つ以上を指定する場合には、上の順番どおり指定してください。
バックアップ・システムは、ダンプ操作の開始時間に、指定された相対的な時間を加えて、ダンプの実際の有効期限を計算します。たとえば、有効期限 in 1y 6m 2d のダンプ・レベルで作成されたダンプには、有効期限を 1 年 6 か月と 2 日に割り当てます。
backup adddump コマンドに -expires引き数を省略すると、有効期限は UNIX 時間のゼロ (1970 年 1 月 1 日の午前 12 時 00 分) に設定されます。バックアップ・システムはこのようなダンプ・レベルで作成されたダンプを、その作成時刻に有効期限が切れるものとみなします。ダンプ・セット内に有効期限をもつダンプがなければ、そのダンプ・セットがある磁気テープの再利用について、バックアップ・システムによる制限はありません。ダンプ・セットのある磁気テープを早まって再利用してしまわないようにするには、手動追跡システムを使用しなければなりません。
% bos listusers <machine name>
% backup
backup> adddump -dump <dump level name>+ [-expires <expiration date>+]
ここで、
ダンプ・レベルの完全なパス名を指定する場合には、パス名の各レベルの先頭にスラッシュ (/)。コンポーネント・レベルの長さはそれぞれ 28 文字までですが、パス名はスラッシュを含めて最高 256 文字まですることができます。
注: | コマンドの構文ステートメントの中で、この引き数の後にはプラス記号が付きますが、これは二重引用符またはその他の区切り文字で囲む必要のない複数文字の値を受け入れるためで、複数の日付を受け入れるためではありません。 -dump 引き数で指定された各ダンプ・レベルに関連する日付 (およびオプションで時刻) 定義を、1 つだけ指定します。 |
% bos listusers <machine name>
% backup
backup> setexp -dump <dump level name>+ [-expires <expiration date>+]
ここで、
注: | コマンドの構文ステートメントの中で、この引き数の後にはプラス記号が付きますが、これは二重引用符またはその他の区切り文字で囲む必要のない複数文字の値を受け入れるためで、複数の日付を受け入れるためではありません。 -dump 引き数で指定された各ダンプ・レベルに関連する日付 (およびオプションで時刻) 定義を、1 つだけ提供します。 |
% bos listusers <machine name>
% backup
backup> deldump <dump level name>
ここで、
% backup listdumps
listd は、listdumps の最も短い受け入れ可能な省略形です。
このコマンドからの出力にダンプ階層が表示されます。それには、各ダンプ・レベルと関連した有効期限が報告されます。以下に例を示します。
% backup listdumps /week1 expires in 27d /tuesday expires in 13d /thursday expires in 13d /sunday expires in 13d /tuesday expires in 13d /thursday expires in 13d /week3 expires in 27d /tuesday expires in 13d /thursday expires in 13d /sunday expires in 13d /tuesday expires in 13d /thursday expires in 13d sunday1 expires in 27d /monday1 expires in 13d /tuesday1 expires in 13d /wednesday1 expires in 13d /thursday1 expires in 13d /friday1 expires in 13d sunday2 expires in 27d /monday2 expires in 13d /tuesday2 expires in 13d /wednesday2 expires in 13d /thursday2 expires in 13d /friday2 expires in 13d sunday3 expires in 27d /monday1 expires in 13d /tuesday1 expires in 13d /wednesday1 expires in 13d /thursday1 expires in 13d /friday1 expires in 13d sunday4 expires in 27d /monday2 expires in 13d /tuesday2 expires in 13d /wednesday2 expires in 13d /thursday2 expires in 13d /friday2 expires in 13d
ダンプ名および磁気テープ名 および 磁気テープ・ラベル、ダンプ・ラベル、および EOF マーカー で説明するとおり、バックアップ・システムで使用する磁気テープに永続名または AFS 磁気テープ名のいずれかを指定することができます。名前は磁気テープの磁気ラベルに磁気テープの容量 (サイズ) と一緒に記録されます。
指定できるのは永続名か AFS 磁気テープ名のいずれかであり、両方は指定できません。バックアップ・システムは永続名の形式を必要としないので、一般に、 AFS 磁気テープ名よりも永続名を指定する方がバックアップ処理が単純化されます。磁気テープに永続名が付いていないと、バックアップ・システムはデフォルトによって AFS 磁気テープ名フィールドで直接定義された 3 つの値だけを受け入れて、適合しない AFS 磁気テープ名のものにはダンプの書き込みを拒否します。このフィールドには、初期ダンプのボリューム・セットおよびダンプ・レベルに一致する名前、または値 <NULL> を指定するか、あるいは値をまったく指定しません。
磁気テープに永続名が付いていると、バックアップ・システムは AFS 磁気テープ名を検査せず、ダンプ操作の一部として、該当する AFS 磁気テープ名自体を構成して、それをラベルに記録します。これは、ユーザーが永続名を指定した場合には、バックアップ・システムが AFS 磁気テープ名を指定して、磁気テープは両方のタイプの名前をもつことを意味します。反対に、 AFS 磁気テープ名を指定して永続名を指定しないと、永続名を指定するには、最初に AFS 磁気テープ名を消去しなければなりません。
(永続名を指定していなくても、バックアップ・システムによる磁気テープの AFS 磁気テープ名の検査を行わないようにすることもできます。そうするには、装置構成ファイルで NAME_CHECK 命令に値 NO を指定します。AFS テープ名検査の除去 を参照してください。)
バックアップ・システムはラベルなし磁気テープを受け入れるので、それを最初に使用する前にラベルを付ける必要はありません。最初に使用した後で、そこにダンプを書き込むためにラベルを再度付けなければならない場合があります。それは以下の場合です。
注: | ダンプ・データを含むテープにラベルを付けると、ラベル付けによりバックアップ・データベースからダンプ・レコードが除去されるため、そのデータは復元操作で使用できなくなります。テープ・ラベルに永続名を記録するのであれば、テープにデータをダンプする前に行わなければなりません。 |
磁気テープのラベルに永続名を書き込む場合には、 -pname 引き数に 32 文字までの文字列を指定してください。セルのバックアップ・システムで使用されているもので、すでに指定済みの永続名を持っている磁気テープがほかにないかどうか調べてください。バックアップ・システムでは複数の磁気テープに同じ名前を指定してしまうのを防ぐ機能がありません。バックアップ・システムは既存の AFS テープ名がある場合は、これを <NULL> 値で上書きします。磁気テープに永続名があると、バックアップ・システムは、プロンプトや backup コマンドの出力で AFS 磁気テープ名ではなく永続名を使用します。 -pname 引き数を backup labeltape コマンドに再び指定しない限り、永続名は変更されません。磁気テープの内容や磁気テープの再利用回数、または -pname 引き数のない backup labeltape コマンドの使用回数には関係ありません。
AFS 磁気テープ名をラベルに書き込むには、 -name 引き数に、ボリューム・セット名、および磁気テープに書き込む計画のある初期ダンプのダンプ・レベル・パス名と一致する値、ならびに、ダンプ・セットの磁気テープの順番に磁気テープの場所を示す索引を指定します。これらの形式は次のとおりです。
volume_set_name.dump_level_name.tape_index
-name 引き数を省略すると、バックアップ・システムは AFS テープ名を <NULL> に設定します。バックアップ・システムは、ユーザーが後で backup dump または backup savedb コマンドを使用して初期ダンプを磁気テープに書き込むときに適切な名前を作成して記録します。
磁気テープに永続名がすでにあると、 -name 引き数を使用することはできません。磁気テープの永続名を削除する場合には、-pname 引き数にヌル値を指定して、次のコマンドを発行してください。
% backup labeltape -pname ""
ラベルに磁気テープの容量を記録する場合には、 -size 引き数に数値を KB 単位で指定してください。磁気テープに最初にラベルを作成するときに、この引き数を省略すると、バックアップ・システムは、磁気テープ・コーディネーター・マシンの /usr/afs/backup/tapeconfig ファイルに指定されているポート・オフセットの設定されているデフォルトの磁気テープ容量を記録します。磁気テープの容量が tapeconfig ファイルに記録されているものと異なる (特に大きい) 場合には、磁気テープを使用する前にラベルに容量を記録するようにしてください。一度設定したら、ラベルの容量フィールドに指定された値は、 -size 引き数を再度 backup labeltape コマンドで使用するまで有効です。テープに記録するための適切な容量については、 tapeconfig ファイルの構成 を参照してください。
磁気テープのラベルを読み取るには、 backup readlabel コマンドを使用してください。
ほとんどの磁気テープは、外部ケースにも使用することができる粘着性のラベルが付いてきます。簡単に磁気テープを識別できるようにするために、少なくとも磁気テープの永続名と AFS 磁気テープ名を粘着ラベルに記録しておいてください。再利用のスキームによっては、ダンプ dump ID、ダンプ作成日、磁気テープに書き込む各ダンプの有効期限などの、その他の情報を記録しておくと便利な場合があります。
% bos listusers <machine name>
% butc [<port offset>] [-noautoquery]
% backup
backup> labeltape [-name <tape name, defaults to NULL>] \ [-size <tape size in Kbytes, defaults to size in tapeconfig>] \ [-portoffset <TC port offset>] [-pname <permanent tape name>]
ここで、
volume_set_name.dump_level_name.tape_index
backup dump 操作で将来使用可能な磁気テープの場合、volume_set_name は、テープに書き込まれる初期ダンプのボリューム・セット名に一致、dump_level_name は、ボリューム・セットがダンプされたダンプ・レベルのパス名の最後の要素と一致、 tape_index は、ダンプ・セットが置かれる一連のテープの中のテープの位置を正確に示していなければなりません (索引は 1 から始まります)。
値を指定する場合、整数の後に単位を表す文字を指定します。間にスペースは入れないでください。k または K はキロバイトで、 m または M はメガバイト、 g または G ギガバイトです。単位の文字を省略すると、デフォルトで K バイトが使用されます。
この引き数は、-name 引き数とは一緒に使用できません。この引き数を指定すると、 AFS テープ名は <NULL> に設定されます。この引き数を省略すると、既存の永続名が保存されます。
% bos listusers <machine name>
% butc [<port offset>] [-noautoquery]
% backup
backup> readlabel [<TC port offset>]
ここで、
磁気テープ・ラベルからの情報は、 backup コマンド・ウィンドウと磁気テープ・コーディネーター・ウィンドウの両方に表示されます。コマンド・ウィンドウの出力形式は、以下のとおりです。
Tape read was labelled: tape_name (initial_dump_ID) size: size KBytes
この tape_name は、磁気テープの永続名 (指定されている場合) または AFS磁気テープ名で、 initial_dump_ID は磁気テープにある初期ダンプのダンプ ID が、size には、ラベルに記録されている容量が k バイト単位で表示されます。
「磁気テープ・コーディネーター」ウィンドウの情報は、より広範囲です。磁気テープの永続名は tape name フィールドに、 AFS 磁気テープ名は AFS tape name フィールドに表示されます。いずれかの名前が未定義の場合には、フィールドにはその代わりに <NULL> の値が表示されます。ラベルに記録された容量は、size フィールドに表示されます。それ以外の出力フィールドには、時期テープの作成時刻、ダンプ・レベル名、および初期ダンプのダンプ ID (それぞれ creationTime、dump path、および dump id) が表示されます。 cell フィールドには、ダンプ操作が行われたセルが表示され、 useCount フィールドには、 backup labeltape コマンドまたはダンプ操作のいずれかによる磁気テープのラベル付けが再度行われた回数が表示されます。詳細については、AFS Administration Reference のコマンドの解説ページを参照してください。
磁気テープにラベルがない場合、またはドライブが空の場合には、以下のメッセージがコマンド・シェルに表示されます。
Failed to read tape label.
次の例は、ポート・オフセット 1 の装置にあるテープのコマンド・シェル出力を示しています。
% backup readlabel 1 Tape read was labelled: monthly_guest (917860000) size: 2150000 KBytes
同時に磁気テープ・コーディネーター・ウィンドウには以下の出力が表示されます。
Tape label ---------- tape name = monthly_guest AFS tape name = guests.monthly.3 creationTime = Mon Feb 1 04:06:40 1999 cell = abc.com size = 2150000 Kbytes dump path = /monthly dump id = 917860000 useCount = 44 -- End of tape label --
バックアップ・システムにはいくつかの任意選択機能があり、セルでのバックアップ処理の自動化や効率化に役立ちます。それらの機能を組み合わせることによって、ほとんどの場合で最小限の人的介入でボリューム・データを磁気テープにダンプすることができます。多くの機能を利用するには、自動化する操作にかかわる各磁気テープ装置ごとに、/usr/afs/backup ディレクトリーに device configuration file を作成します。入出力装置構成ファイルの作成に関する一般的な説明については、 装置構成ファイルの作成 を参照してください。以下のリストは、各機能の詳細を記述した機能グループを示しています。
入出力装置構成ファイルを使用しないバックアップの自動化および効率を高めるには、ほかに 2 つの方法があります。
バックアップ操作の自動化を行う多くの機能を使用するには、装置を起動する磁気テープ・コーディネーター・マシンのローカル・ディスクの /usr/afs/backup ディレクトリーにある各磁気テープ装置ごとに構成ファイルを作成します。ファイル名の形式は、次の通りです。
CFG_device_name
ここで、device_name は、磁気テープ装置またはバックアップ・データ・ファイルを表します (ダンプを磁気テープではなくファイルに書き出す方法については、データのバックアップ・データ・ファイルへのダンプ を参照してください)。
テープ装置の場合、すべての UNIX 装置名の始めの部分にある /dev/ 文字列を削除して、名前の中のスラッシュを下線に置換して、名前の device_name 部分を構成してください。たとえば、CFG_rmt_4m は、 /dev/rmt/4m という名前のファイル名を表しています。
バックアップ・データ・ファイルの場合、最初のスラッシュ (/) を削除し、名前の中のスラッシュ (/) を下線で置換して、device_name 部分を構成してください。たとえば、 CFG_var_tmp_FILE は、 /var/tmp/FILE という名前のバックアップ・データ・ファイルのファイル名です。
入出力装置構成ファイルの作成は任意選択です。ファイルによる機能を必要としない場合は、作成する必要はありません。
以下の命令のどれでも任意の順序で入出力装置構成ファイルに記述することができます。すべて任意選択です。命令ごとに改行しますが、 1 つの命令の中に改行 (<Return>) 文字を入れてはなりません。
磁気テープ・スタッカーまたはジュークボックスを使用すると、人的介入を行わずに操作中でも複数の磁気テープを切り換えることができるため、バックアップ操作を自動化することができます。この機能を利用するためには、スタッカーまたはジュークボックスについて、入出力装置構成ファイルに MOUNT および任意で UNMOUNT 命令を記述してください。これら命令の構文は同じになります。
MOUNT filename UNMOUNT filename
この filename は、装置の磁気テープ・ドライブに磁気テープをマウントするかまたはアンマウントするために装置の製造者が定義したルーチンを呼び出すようにユーザーが作成したスクリプトまたはプログラムのローカル・ディスク上のパス名です。 (以降、 スクリプト という用語はスクリプトとプログラムの両方を指します。) スクリプトには通常、エラー条件を処理したり、実行中のバックアップ操作に従ってスクリプトの働きを修正したりする、追加ロジックが含まれています。
MOUNT または UNMOUNT 命令が記述された別個のスクリプトを参照することもできれば、マウントとアンマウントのルーチンを呼び出す単一のスクリプトを参照したりすることもできます。スクリプトは、 butc コマンド発行側のローカル ID と AFS トークンを継承します。
MOUNT 命令はすべての磁気テープ装置について入出力装置構成ファイルに記述する必要がありますが、 UNMOUNT 命令を記述するかどうかは、装置の製造者が作成した磁気テープ処理ルーチンによって異なります。装置によっては(たいていはスタッカー)、磁気テープのマウントに必要なルーチンは 1つだけで、これで磁気テープのアンマウントも自動的に行えるものもあります。テープがある場合は、必要な新しい磁気テープを挿入することはできません。この場合、 UNMOUNT 命令は不要です。マウントおよびアンマウント・ルーチンを別個にもつ装置の場合には、 UNMOUNT 命令を記述して、磁気テープ・コーディネーターがこれで終わった時に磁気テープをアンマウントするようにしなければなりません。そうしないと、それ以降に MOUNT命令を実行しようとすると、エラーになって失敗します。
入出力装置構成ファイルに MOUNT 命令が記述されている場合には、バックアップ操作を実行する前に、必要な磁気テープをスタッカーまたはジュークボックスに備えておかなければなりません。ジュークボックスの多くは、磁気テープ上の外部ラベル (バーコードなど)を読み取って必要な磁気テープを検索することができますが、スタッカーの多くは、テープを順番に、ときには一方向にしか切り換えることができません。後者の場合、磁気テープを正しい順序で備えておかなければなりません。
磁気テープ装置に磁気テープをあらかじめ備えておけるように復元操作に必要な磁気テープのリストを獲得するには、該当する backup コマンドに -n フラグを立ててください。 ( backup diskrestore、backup volrestore、または backup volsetrestore)。ダンプ操作では、たいていは、操作に必要であると考えられる以上の数の磁気テープを装置に備えておけば十分です。磁気テープの事前ラベル付けには、永続名か AFS 磁気テープ名を使用したり、あるいはまったく使用しないこともできます。ダンプ操作用の磁気テープに AFS 磁気テープ名で事前ラベル付けを行う場合、磁気テープ索引に従ってそれらを順次にスタッカーにロードするのがもっとも簡単です。永続磁気テープ名でラベルを付けるか、ラベルなし磁気テープを使用しても簡単ですが、この場合、バックアップ・システムがダンプ操作時に索引付きの AFS 磁気テープ名を生成し適用します。
butc コマンドを出して指定の磁気テープ装置用に磁気テープ・コーディネーターを初期設定すると、磁気テープ・コーディネーターはローカル・ディスク上の /usr/afs/backup/CFG_device_name という装置構成ファイルを検索します。この device_name の形式については、 装置構成ファイルの作成 で説明しています。ファイルが存在して MOUNT 命令を記述している場合には、磁気テープ・コーディネーターが磁気テープを必要とする時はいつでも、命令の filename 引き数で指定したスクリプトを実行します。
入出力装置構成ファイルが存在しないか、または MOUNT 命令が記述されていない場合には、磁気テープ・コーディネーターが磁気テープを必要とする時にはいつでも、必要な磁気テープを操作員が挿入するように要求するプロンプトがウィンドウに表示されます。操作員は、磁気テープ・コーディネーターがバックアップ操作を継続する前に、磁気テープをドライブに挿入して、<Return> を押さなければなりません。
しかし、操作に必要な最初の磁気テープに関して磁気テープ・コーディネーターの振る舞いを修正するには、装置構成ファイルで AUTOQUERY 命令を NO に設定するか、 -noautoquery フラグを butc コマンドに立てます。この場合、磁気テープ・コーディネーターは MOUNT 命令を実行せず、操作の開始時に磁気テープのプロンプトを出します。これは、ドライブ内で必要な最初の磁気テープを探したいためです。最初のテープの検索またはプロンプトの除去 を参照してください。
装置構成ファイルに UNMOUNT 命令が記述されている場合に磁気テープ・コーディネーターが磁気テープをクローズする時はいつでも、命令のfilename 引き数で指定したスクリプトを実行します。装置でのクローズ 操作が成功したか、しないかに関係なく、スクリプトを一度だけ実行します。入出力装置構成ファイルに UNMOUNT 命令が記述されていない場合には、磁気テープ・コーディネーターは処置を取りません。
磁気テープ・コーディネーターが MOUNT スクリプトを実行するときには、 5 つのパラメーターで以下の順序で渡されます。スクリプトでパラメーターを使用すると、バックアップ操作時に生じる可能性のある環境の変化に対する応答を改良することができます。
MOUNT スクリプトでは、以下の終了コードのいずれか 1 つを戻して、磁気テープが正しくマウントされたかどうかを磁気テープ・コーディネーターに通知しなければなりません。
磁気テープ・コーディネーターが UNMOUNT スクリプトを実行するときには、 2 つのパラメーターで以下の順序で渡されます。
以下のスクリプト例では、バックアップ・システムにより渡される 2 つのパラメーター tries および operation を使用しています。これは推奨される方法に従い、 tries パラメーターの値が 1 を超えた (スタッカーのテープが不足) 場合に終了します。
backup dump または backup savedb 操作の場合、ルーチンにより、例にある stackerCmd_NextTape ファンクション (スタッカーの製造元が提供) が呼び出されます。ファイルの最終行が終了コードを戻し、操作員にテープの挿入を指示しています。これらの行は、スタッカーがテープをロードできない、または実行中の操作がファイルに明示的に記述された操作ではない場合のいずれかの際に呼び出されます (たとえば復元操作中)。
#! /bin/csh -f set devicefile = $1 set operation = $2 set tries = $3 set tapename = $4 set tapeid = $5 set exit_continue = 0 set exit_abort = 1 set exit_interactive = 2 #-------------------------------------------- if (${tries} > 1) then echo "Too many tries" exit ${exit_interactive} endif if (${operation} == "unmount") then echo "UnMount: Will leave tape in drive" exit ${exit_continue} endif if ((${operation} == "dump") |\ (${operation} == "appenddump") |\ (${operation} == "savedb")) then stackerCmd_NextTape ${devicefile} if (${status} != 0)exit${exit_interactive} echo "Will continue" exit ${exit_continue} endif if ((${operation} == "labeltape") |\ (${operation} == "readlabel")) then echo "Will continue" exit ${exit_continue} endif echo "Prompt for tape" exit ${exit_interactive}
デフォルトによって、磁気テープ・コーディネーターがバックアップ操作に必要な最初の磁気テープを獲得するには、入出力構成ファイルを読み取って適切な磁気テープ装置がないかどうか調べます。 MOUNT 命令がある場合には、磁気テープ・コーディネーターは、参照されたスクリプトを実行します。入出力装置構成ファイルが存在していないか、そのファイルに MOUNT 命令がなければ、磁気テープ・コーディネーターはプロンプトを出して、正しい磁気テープを挿入してから <Return> を押すように要求します。
操作に磁気テープが必要であることを前もって分かっている場合には、必要な磁気テープをドライブに入れてから backup コマンドを出し、磁気テープ・コーディネーターにその最初の磁気テープの獲得ステップをスキップするように通知すると、効率を高めることができます。この両方を行うことによって、操作の開始を素早く行うことができるようになり、磁気テープを挿入する人員が必要なくなります。
磁気テープ・コーディネーターの最初の磁気テープ獲得ステップをう回する方法は、2 通りあります。
操作員アテンションを必要とするエラー条件を避けるためには、ドライブに入れている磁気テープに有効期限切れのダンプが入っていないこと、および書き込み保護されていないことを確認してください。テープのラベルに永続名がなく、最初のダンプを作成している場合には、AFS テープ名がボリューム・セットとダンプ・セットの名前に一致しているか、または <NULL> であるかを確認してください。または、AFS テープ名検査の除去 で説明するとおり、入出力装置構成ファイルで NAME_CHECK 命令に値 NO を割り当てることによって、テープ・コーディネーターの名前検査ステップを抑制してください。
デフォルトでは、磁気テープ・コーディネーターからある種のエラー条件を検出した時の応答方法について尋ねられます。プロンプトを抑制して、あらかじめ指定された方法で磁気テープ・コーディネーターにエラーを処理させるには、入出力装置構成ファイルで命令 ASK NO を記述します。値 YES を割り当てるか、または ASK 命令を完全に省略する場合には、磁気テープ・コーディネーターからプロンプトが出されて、エラーの 1 つを検出したときの指示について尋ねられます。
以下のリストは、エラー条件と、それに対する磁気テープ・コーディネーターの応答について説明しています。
永続名を持たない磁気テープに最初のダンプを書き出している場合には、デフォルトによって、バックアップ・システムは、磁気テープの AFS 磁気テープ名が受け入れ可能であるかどうかを検査します。3 種類の値が受け入れられます。
名前の検査をう回するには、入出力装置構成ファイルに NAME_CHECK NO 命令を記述してください。これによって、そこにあるすべてのダンプが満了するまでには、最初にラベルの再作成をしなくても磁気テープを再利用することができます。 (磁気テープに有効期限切れのダンプがあるが、それを再利用したい場合には、 backup labeltape コマンドを使用して、そのラベルの再作成を最初に行わなければなりません。これを行うには、 ASK NO 命令は入出力装置構成ファイルには記述されていないはずです。)
デフォルトでは、磁気テープ・コーディネーターは、ダンプ操作で 16 KB のメモリー・バッファーを使用します。ボリューム・サーバーからボリューム・データを受信するときに、磁気テープ・コーディネーターは、16 KB のデータをバッファーに収集してから、16 KB すべてを磁気テープ装置に転送します。同様に復元操作では、磁気テープ・コーディネーターは、デフォルトで 32 KB のデータを磁気テープ装置からバッファーに入れてから、32 KB すべてのボリューム・サーバーに転送し、ファイル・システムに復元します。バッファリングによってボリューム・データの流れが均一になり、磁気テープをストリームかすることができます。これにより、磁気テープ装置を効率よく操作することができます。
通常のネットワーク構成では、デフォルトのバッファー・サイズで、磁気テープのストリーム化を行うことができます。磁気テープ・コーディネーター・マシンおよびファイル・サーバー・マシン間のネットワークが遅い場合には、バッファー・サイズを増加してください。
バッファー・サイズを変更した方が構成のために役立つかどうか判別するには、操作中の磁気テープ装置を調べてそれがストリーミングであるか調べるか、または製造者に相談してください。バッファー・サイズを設定するには、入出力装置構成ファイルで BUFFERSIZE 命令を記述します。これは、引き数として次の形式の整数値を必要とします。
BUFFERSIZE size[{k | K | m | M | g | G}]
size には、ダンプおよび復元操作時にバッファーとして磁気テープ・コーディネーターが使用するメモリーの量を指定します。デフォルトはバイト単位ですが、K バイト単位で指定する場合には k または K を、M バイト単位で指定する場合には m または M を、G バイト単位で指定する場合には、 g または G を使用してください。 size に指定する値と単位の間にスペースは不要です。
ダンプを、磁気テープではなく、 バックアップ・データ・ファイル に書き出すことができます。たとえば、データを階層記憶管理 (HSM) システムなどのデータ保存システムに転送したい場合に便利です。このシステムは AFS およびバックアップ・システムと一緒に使用します。データをバックアップ・データ・ファイルからファイル・システムにも同様に復元することができます。バックアップ・データ・ファイルの使用は、同等の vos dump および vos restore コマンドを複数のボリュームに対して個々に出すよりも効率的です。
磁気テープ・コーディネーター・マシンのローカル・ディスク上にあれば、バックアップ・データ・ファイルへの書き込みが最も単純ですが、リモート・マシンに常駐する NFS がマウントされた区画へファイルを書き込むこともできます。親ディレクトリーのアクセス制御リスト (ACL) で必要なアクセス権を付与されていれば、 AFS にファイルを書き込むこともできますが、これは AFS データを AFS 自身にバックアップすることになります。
磁気テープ・コーディネーターは、ダンプを書き込むバックアップ・ファイルが存在しないと、バックアップ・ファイルを作成します。復元操作を完了するには、このファイルが存在して、backup dump 操作の間にボリューム・データが書き込まれている必要があります。
バックアップ・データ・ファイルの書き込み時に、磁気テープ・コーディネーターは、 16 KB オフセットでデータを書き込みます。特定のデータ・ブロック (ボリュームの開始または終了を通知するマーカーなど) が 16 KB に満たない場合、磁気テープ・コーディネーターは、次のオフセットまでスキップし、次のブロックの書き込みを開始します。 -id オプションを付けて backup dumpinfo コマンドを発行すると、出力の Pos 列にボリューム・データが始まる 16-KB オフセットの位置が表示されます。磁気テープへのダンプの場合のように、この値は、前の行の位置番号に 1 を加えた値にはなりません。
バックアップ・データ・ファイルに書き込む前に、そのファイルを磁気テープ装置であるかのように構成する必要があります。
注: | 装置の構成ファイルに FILE YES 命令があれば、 /usr/afs/backup/tapeconfig ファイルの 3 番目のフィールドには磁気テープ装置名ではなく、ファイルのパス名が表示されていなくてはなりません (なければ必要はありません)。この tapeconfig ファイルに磁気テープ装置が指定されていると、ダンプ操作は成功したようにみえますが、操作不能になります。 FILE 命令が YES に設定されている間、磁気テープに装置に間違ってダンプされたデータは復元することができません。同様に、FILE 命令が NO に設定されている場合には、 tapeconfig 項目に実際の磁気テープ装置が指定されていなければなりません。 |
% bos listusers <machine name>
% su root Password: root_password
# backup
backup> listhosts
テープ装置に対して、指定できる値は、整数の 0 (ゼロ) から 58510 (バックアップ・システムは、最大 58,511 ポート・オフセット番号を記録できます)。ポート・オフセットは、セル内で固有でなければなりませんが、 1 つの磁気テープ・コーディネーターに複数のポートを割り当てることができます。ポート・オフセット番号は、順番に割り当てる必要はありません。
backup> addhost <tape machine name> [<TC port offset>]
ここで、
[capacity filemark_size] device_name port_offset
ここで、
数値の後に単位を示す文字を指定しください。数値と文字の間にはスペースを入れないでください。k または K は、キロバイトを、m または M は、メガバイトを、および g または G は、ギガバイトを示します。単位の文字を省略すると、デフォルトで K バイトが使用されます。このフィールドを空にしておくと、テープ・コーディネーターは、最大許容値 (2048 GB または 2 TB) を使用します。また、この場合 filemark_size フィールドも空にしておきます。
このフィールドに実際のファイル名が指定されている場合、区画にスペースがなくなると、回復することができません。操作の途中で、 tapeconfig ファイルを変更することはできません。
6 のステップの tapeconfig ファイルに記録した装置名に基づいて、名前の device_name 部分を構成します。お勧めしたとおり、記号リンク名を記録した場合には、 /dev/ ストリングを削除して、名前の中のスラッシュ (/) を下線 (_) に置換してください。たとえば、記号リンクが/dev/FILE である場合の名前は CFG_FILE です。実際のファイル名を記録した場合には、最初のスラッシュのみを削除し、他のスラッシュは下線に置換してください。 /var/tmp/FILE というバックアップ・データ・ファイルの場合、入出力装置構成ファイル名は CFG_var_tmp_FILE になります。
ダンプ操作が始まる時にファイルが存在していない場合には、磁気テープ・コーディネーターがバックアップ・データ・ファイルを作成するので、ユーザーが作成する必要はありません。
以下のスクリプトの例は、ファイルへの書き込みの準備段階でバックアップ・データ・ファイルへの記号リンクを自動的に作成する方法を示しています。テープ・コーディネーターが backup dump、backup restore、backup savedb、または backup restoredb 操作を実行している場合、ルーチンにより UNIX ln -s コマンドが呼び出され、 tapeconfig ファイルに名前のあるバックアップ・データ・ファイルから、実際に使用するファイルへの記号リンクが作成されます (これが推奨される方法です)。ファイル名の構成には、バックアップ・システムから渡される tapename および tapeid パラメーターの値が使用されます。
ルーチンは、他の 2 つのパラメーター (tries および operation) も同様に使用します。tries パラメーターは、テープ・コーディネーターによるファイル・アクセスの試行回数をトラックします。 1 より大きい値は、テープ・コーディネーターがこれにアクセスできず、ルーチンが終了コード 2 (exit_interactive) を戻し操作員にテープのロードを要求したことを示しています。操作員はこの機会を利用して、 tapeconfig ファイルに指定されているバックアップ・データ・ファイルの名前を変更することができます。
#! /bin/csh -f set devicefile = $1 set operation = $2 set tries = $3 set tapename = $4 set tapeid = $5 set exit_continue = 0 set exit_abort = 1 set exit_interactive = 2 #-------------------------------------------- if (${tries} > 1) then echo "Too many tries" exit ${exit_interactive} endif if (${operation} == "labeltape") then echo "Won't label a tape/file" exit ${exit_abort} endif if ((${operation} == "dump") |\ (${operation} == "appenddump") |\ (${operation} == "restore") |\ (${operation} == "savedb") |\ (${operation} == "restoredb")) then /bin/rm -f ${devicefile} /bin/ln -s /hsm/${tapename}_${tapeid} ${devicefile} if (${status} != 0) exit ${exit_abort} endif exit ${exit_continue}