Solaris ネーミングの管理

第 16 章 NIS+ のバックアップと復元

この章では、NIS+ 名前空間のバックアップ方法と復元方法について説明します。

NIS+ のバックアップ機能と復元機能を使用すると、NIS+ 名前空間の保存と復元を素早く簡単に行うことができます。また、これらの機能を使用すると、新しい複製サーバーを簡単に作成でき、さらにそのサーバーをオンラインにするためにかかる時間を削減できます。これらのタスクは、次の 2 種類のコマンドを使用して実行します。

nisbackup を使用して名前空間をバックアップする

nisbackup コマンドは、1 つまたは複数の NIS+ ディレクトリオブジェクト、または 1 つの名前空間全体を、指定した UNIX ファイルシステムのディレクトリにバックアップします。


注 -

nisbackup コマンドは、必ずマスターサーバー上で実行してください。複製サーバー上では絶対に実行しないでください。


nisbackup コマンドは、バックアップコマンドが動作するように設定された時点の NIS+ 名前空間をコピーします。この記録には、現行のすべての NIS+ データと、認証されたネットワーク管理者が NIS+ 名前空間に入力した変更が含まれます。ただし、まだ NIS+ テーブルにチェックポイントされていない ( NIS+ テーブルに記入されていない) ものは除きます。このバックアップ処理は、NIS+ データのチェックや訂正は行いません。テーブル内のデータが破壊されると、破壊されたデータは、有効なデータと見分けがつかない状態にバックアップされます。

nisbackup コマンドは、マシンがそのマスターサーバーであるディレクトリオブジェクトだけをバックアップします。つまり、nisbackup は、マスターサーバー上でだけ使用でき、複製サーバー上では使用できません。

バックアップ処理が、他の処理に割り込まれたり、またはその処理を正常に終了できない場合は、処理を停止し、転送先ディレクトリ内に格納された以前のバックアップファイルをすべて復元します。

nisbackup の構文

nisbackup コマンドで使用する構文は、次のとおりです。


nisbackup [-v][-a] backupdir objects

nisbackup コマンドには、次のようなオプションを指定できます。

表 16-1 nisbackup コマンドのオプション

オプション 

目的 

-v

冗長モード。このモードは追加情報を出力する 

-a

すべて。サーバーがマスターである NIS+ ディレクトリオブジェクトをすべてバックアップする。これには、このサーバーがマスターであるサブドメインのディレクトリオブジェクトも含まれる。ただし、他のマスターサーバーを持つサブドメインのディレクトリオブジェクトはバックアップされない 

nisbackup コマンドは、バックアップする NIS+ ディレクトリオブジェクトのマスターサーバー上で実行する必要があります。

バックアップする NIS+ ディレクトリオブジェクトを指定する場合、そのディレクトリ名には完全指定名、または部分指定名を使用できます。

マルチレベルディレクトリをバックアップする場合、下位ディレクトリのバックアップファイルは、自動的にバックアップ転送先ディレクトリのサブディレクトリ内に配置されます。

nisbackup によるバックアップの対象

nisbackup を使用する場合、nisbackup はサーバー固有のコマンドであることに注意してください。-a オプションを使用するかどうかに関係なく、nisbackup は、このコマンドを実行中のサーバーがマスターサーバーであるディレクトリだけをバックアップします。他にマスターサーバーを持つ NIS+ ディレクトリオブジェクトは、バックアップされません。

たとえば、submaster1 は、sales.doc.com. ディレクトリオブジェクトのマスターサーバーで、さらに west.sales.doc.com. ディレクトリオブジェクトの複製サーバーでもあるとします。この場合、submaster1 上で nisbackup を実行すると、sales.doc.com. ディレクトリオブジェクトだけがバックアップされます。

このサーバー固有の原則には次のものがあります。

バックアップ転送先ディレクトリ

バックアップ転送先ディレクトリは、バックアップ対象のサーバーが使用できるものでなければなりませんが、サーバー上に物理的にマウントしていない転送先ディレクトリを使用するのも良い方法です。この場合、サーバーがダメージを受けても、バックアップディレクトリは使用可能です。

独立した転送先ディレクトリは、バックアップ対象となるマスターサーバーごとに使用する必要があります。混乱を避けるために、マスターサーバーのマシン名を転送先ディレクトリ内に組み込むと良いでしょう。たとえば、master1 マシン上で実行した nisbackup の転送先ディレクトリは、/var/master1_bakup という名前にします。


注意 - 注意 -

指定した 1 つの転送先ディレクトリに対して、複数のサーバーをバックアップしないでください。異なるマスターサーバーには、必ず、異なる転送先ディレクトリを使用してください。それは、指定した転送先ディレクトリに、1 つまたは複数の NIS+ ディレクトリオブジェクトをバックアップするたびに、このディレクト内のこれらの NIS+ ディレクトリオブジェクト用のそれ以前のバックアップファイルが上書きされるからです。


NIS+ のバックアップを日付順に保存する

バックアップファイルを日付順に保存するには、少なくとも次の 2 つの方法があります。

特定の NIS ディレクトリをバックアップする

特定の NIS+ ディレクトリオブジェクトをバックアップするには、これらのディレクトリをバックアップ転送先ディレクトリの後ろに入力します。

たとえば、ルート、sales ドメイン、manf ドメインの 3 つの org_dir ディレクトリオブジェクトを /master1_backup ディレクトリにバックアップするには、nisbackupmaster1 マシン上で次のように実行します。


master1# nisbackup /var/master1_bakup org_dir org_dir.sales org_dir.manf

すべての NIS+ 名前空間をバックアップする

すべての NIS+ 名前空間をバックアップする場合は、ルートマスターサーバー上で、nisbackup コマンドに -a オプションを指定して実行します。

-a オプションを使用する場合は、バックアップする NIS+ ディレクトリオブジェクトは指定しません。サーバー上とそのサーバーの下にあるサブドメインのすべての NIS+ ディレクトリオブジェクトは、自動的にバックアップされます。

たとえば、doc.com. 名前空間を /master1_bakup ディレクトリにバックアップするには、ルートマスター上で、nisbackup を次のように実行してください。


rootmaster# nisbackup -a /var/master1_bakup

バックアップディレクトリの構造

ドメイン上でバックアップを実行すると、バックアップ転送先ディレクトリ内に、NIS+ ディレクトリオブジェクトごとにサブディレクトリが作成されます。これらのサブディレクトリ名は、完全指定の NIS+ ディレクトリオブジェクト名の末尾にピリオドが付いたものになります。

-a オプションを使用して、すべての NIS+ オブジェクトを完全にバックアップすると、3 つの関連ディレクトリオブジェクト (ドメイン、org_dir.domeingroups_dir.domein) すべてがバックアップされ、転送先サブディレクトリが 3 つ作成されます。複数のオブジェクトをバックアップすると、サブディレクトリはバックアップしたそれぞれのオブジェクトごとに作成されます。

複数の NIS+ ディレクトリオブジェクトのバックアップサブディレクトリは、それがサブドメインであるかどうかに関係なく、親バックアップ転送先ディレクトリのサブディレクトリになるので注意してください。つまり、nisbackup は、親バックアップ転送先ディレクトリの下にドメインの階層を複製しません。その代わりに、バックアップサブディレクトリはすべて、転送先ディレクトリの単純なサブディレクトリになります。

たとえば、ルート、salesmanf のそれぞれからディレクトリオブジェクト doc.com./var/master1_bakup ディレクトリにバックアップする場合、図 16-1 に示すように、/var/master1_bakup ディレクトリ内には 9 個のサブディレクトリが作成されます。

図 16-1 nisbackup によって作成されるディレクトリの例

Graphic

バックアップファイル

バックアップ転送先ディレクトリには、この転送先ディレクトリにバックアップされた最新の NIS+ ディレクトリオブジェクトを表示する backup_list ファイルが入っています。

各サブディレクトリには、ファイルが 2 つと /data サブディレクトリが 1 つ組み込まれます。この 3 つのファイルを次に示します。

/data サブディレクトリには、1 つまたは複数の以下のファイルが入っています。

nisrestore を使用して NIS+ 名前空間を復元する

nisrestore コマンドによって、nisbackup を使用して作成したバックアップファイル内に格納されたデータと一致する NIS+ ディレクトリオブジェクトが再現されます。このコマンドを使用すると、NIS+ サーバーの復元、壊れたディレクトリオブジェクトの置換、または新しい NIS+ サーバーに NIS+ データを読み込めます。

nisrestore を実行するための前提条件

nisrestore を使用するためには、nisrestore から NIS+ データの受け取り先マシンが、NIS+ サーバーとして設定されている必要があります ( NIS+ サーバーの設定の詳細は、『Solaris ネーミングの設定と構成』を参照)。つまり、次のような状態にしておく必要があります。


注意 - 注意 -

上記の 3 つの前提条件への追加条件として、マシン上で rpc.nisd デーモンを実行しないでください。rpc.nisd デーモンを実行する場合は、rpc.nisd を消去してから nisrestore を実行してください。


nisrestore の構文

nisrestore コマンドでは、次の構文を使用します。


nisrestore [-fv][-a][-t] backupdir [directory_objects]

nisrestore コマンドには、以下のオプションを指定できます。

表 16-2 nisrestore コマンドのオプション

オプション 

目的 

-a

すべて。バックアップディレクトリ内に入っている NIS+ ディレクトリオブジェクトをすべて復元する 

-f

サーバーが、ディレクトリオブジェクトのサーバーリストに記載されているかどうかを検査せずに、強制的に復元を行う。このオプションは、ルートマスターサーバーを復元する時、または " オブジェクトを検出できません " といった種類のエラーを受け取った場合に使用する必要がある 

-v

冗長モード。このモードは、追加情報を出力する 

-t

このオプションを使用すると、バックアップディレクトリ内に格納された NIS+ ディレクトリオブジェクトがすべて表示される。オブジェクトの復元は行われない 

nisrestore を使用する

NIS+ バックアップファイルから NIS+ データを復元するには、nisrestore コマンドを使用します。

たとえば、org_dir.doc.com. ディレクトリオブジェクトを replica1 サーバーに復元する場合は、スーパーユーザーになって replica1 にログインします。「nisrestore を実行するための前提条件」 で説明した前提条件が満たされていることを確認してから、以下のように nisrestore を実行します。


replica1# nisrestore /var/master1_bakup org_dir.doc.com. 

nisrestore には、以下の項目が適用されます。


master1# nisrestore -f -a /var/master1_bakup

バックアップと復元を使用して複製サーバーを設定する

NIS+ バックアップおよび復元機能を使用すると、NIS+ データを新しい複製サーバーに速く読み込むことができます。名前空間が広い場合は、この方法の方が、nisping を使用するよりもマスターサーバーからのデータを非常に速く入手できます。

新しい複製サーバーの設定に nisbackupnisrestore を使用する方法の詳細は、『Solaris ネーミングの設定と構成』で説明しています。手順の簡単な説明を次に示します。

  1. マスター上で nisserver を実行し、新しい複製サーバーを作成します。

  2. 新しい複製サーバー上で rpc.nisd を消去します。

    この処理は、nisping コマンドを使用した名前空間データのマスターから複製への自動転送に割り込んで実行されます。

  3. マスターサーバー上で、nisbackup を実行します。

  4. 新しい複製サーバー上で nisrestore を実行し、NIS+ データを読み込みます。

  5. 新しい複製サーバー上で rpc.nisd を再起動します。

サーバーマシンを置換する

nisbackupnisrestore を使用すると、サーバーとして使用中のマシンと別のマシンをすぐに置換できます。たとえば、旧サーバーを新しい高速のサーバーと交換すると、ネットワークのパフォーマンスを向上させることができます。

マシンを置換する場合の必要条件

NIS+ サーバーとして使用中のマシンを他のマシンに置き換える場合には、次の条件が必要です。

サーバーマシンの置換方法

サーバーマシンを置換する場合は、次の手順に従ってください。

  1. 旧サーバーが管理するドメインのマスターサーバー上で nisbackup を実行します。

    詳細は、「すべての NIS+ 名前空間をバックアップする」を参照してください。置換する旧サーバーがマスターサーバーである場合もあるので注意してください。この場合は、この旧マスターサーバー上で nisbackup を実行します。

  2. 旧サーバーの /var/nis/NIS_COLD_START ファイルをバックアップディレクトリにコピーします。

  3. 旧サーバーの /etc/.rootkey ファイルをバックアップディレクトリにコピーします。

  4. 旧サーバーをネットワークから切り離します。

  5. 新しいサーバーをネットワークに接続します。

  6. 新しいサーバーに旧サーバーと同じ IP アドレス (番号) を割り当てます。

  7. 新しいサーバーに旧サーバーと同じマシン名を割り当てます。

  8. 必要な場合は、新しいサーバー上で rpc.nisd を消去します。

  9. 新しいサーバー上で nisrestore を実行し、NIS+ データを読み込みます。

    詳細は、「nisrestore を使用して NIS+ 名前空間を復元する」を参照してください。

  10. .rootkey ファイルを、バックアップディレクトリから新しいサーバーの /etc にコピーします。

  11. NIS_COLD_START ファイルを、バックアップディレクトリから新しいサーバーの /var/nis にコピーします。

  12. 新しいサーバーを再起動します。