BigAdmin System Administration Portal
特集記事: ゾーンをインストールしたシステムでのバックアップ、復元、および障害回復
Print-friendly VersionPrint-friendly Version

ゾーンをインストールしたシステムでのバックアップ、復元、および障害回復

Penny Cotten、2005 年 11 月 (2006 年 11 月改訂)

バックアップ、復元、および障害回復は、データ管理の重要な要素です。ゾーンを使用する場合、所属する組織の要件により、Solaris オペレーティングシステム (Operating System 、OS) を稼働するシステムのバックアップに選択する解決方法が決定されることになります。

ファイルシステムのバックアップとは、消失、損傷、または破損に備えて、ファイルシステムをテープなど、リムーバブルメディアにコピーすることを意味します。ファイルシステムの復元とは、最新のバックアップファイルをリムーバブルメディアから作業ディレクトリにコピーすることを意味します。

この記事は 2005 年 11 月に執筆したものですが、正確を確認した上で 2006 年 11 月 に改訂したものです。このドキュメントでは、システムのゾーン設定やデータをバックアップする多様な手法について説明し、使用できるさまざまな方法についてもアドバイスします。


バックアップの実行場所の決定

非大域ゾーンを個別にバックアップしたり、大域ゾーンから非大域ゾーンをバックアップしたりできます。

LOFS ディレクトリのバックアップ

非大域ゾーンと大域ゾーンでファイルを共有するときには、多くの場合、ループバックファイルシステムの読み取り専用マウント (通常は、/usr/lib/sbin、および /platform) が使用されます。このため、LOFS ディレクトリをバックアップするときには、大域ゾーンのバックアップ方針を使用することが重要です。非大域ゾーンの LOFS ファイルシステムをバックアップすることはお勧めできません。この環境に復元することは不可能であり、非大域の管理者が復元しようとすると重大な問題が発生する場合があります。

大域ゾーンからのシステムのバックアップ

大域ゾーンからバックアップを行えるのは、次の場合です。

  • Symantec/VERITAS NetBackup などのネットワークバックアップソフトウェアを持っている場合。

  • 非大域ゾーンの構成をアプリケーションデータと一緒にバックアップする場合。

  • 障害回復が主な目的の場合。使用しているゾーンのルートファイルシステムおよびそれらの構成データ、使用している大域ゾーン内のデータなど、システム上のすべてまたはほぼすべての情報を復元する必要がある場合は、バックアップを行う場所として大域ゾーンを使用することをお勧めします。

  • ufsdump を使ってデータをバックアップする場合。物理ディスクデバイスを非大域ゾーンにインポートすると、ゾーンのセキュリティープロファイルが変更されます。このため、ufsdump を使用するときは、必ず大域ゾーンから実行してください。

システム上の非大域ゾーンを個別にバックアップ

非大域ゾーン内でバックアップを行えるのは、次の場合です。

  • 非大域ゾーン管理者が管理しているゾーンのデータをバックアップする場合。こうすることで、ゾーンの特有のアプリケーションやユーザーデータを復元でき、より軽度の障害から復元するだけで済むためです。

  • tar(1)cpio(1) など、ファイル単位でバックアップを行うプログラムを使用する場合。

  • ゾーン内で動作する特定のアプリケーションまたはサービスのバックアップソフトウェアを使用する場合。ディレクトリパスやインストール済みソフトウェアなどのアプリケーション環境が大域ゾーンと非大域ゾーンとの間で異なっている場合には、バックアップソフトウェアを大域ゾーンから実行するのが困難な場合があります。

    アプリケーションが非大域ゾーンごとのバックアップスケジュールに基づいてスナップショットを実行し、そのバックアップデータを大域ゾーンからエクスポートした書き込み可能なディレクトリに格納できる場合には、大域ゾーンの管理者は大域ゾーンからバックアップする処理の中でそれら個々のバックアップデータを個別に回復できます。


ゾーンのバックアップ方法の概要

次の各セクションで、ファイルをゾーンにバックアップする方法を総覧していきます。

ufsdump を使用したバックアップ

ufsdump コマンドを使用して、完全バックアップまたは増分バックアップを実行できます。次の手順では、ゾーン /export/zone1/backup/zone1ufsdump にバックアップします。ただし、"zone1" を使用中のシステムのゾーン名に取り 替えてください。

1. (オプション) ufsdump コマンドを使用する前にゾーンをシャットダウンできます。こうすることで、ゾーンを休止状態にし、共有ファイルシステムがバックアップされないようにすることができます。

global# zlogin -S zone1 init 0

2. (オプション) ゾーンの状態をチェックします。

global# zoneadm list -cv

ID NAME     STATUS       PATH
0 global    running      /
- zone1     installed    /export/zone1

3. バックアップを実行します。

global# ufsdump 0f /backup/zone1.ufsdump /export/zone1

DUMP: Date of this level 0 dump: Wed Aug 10 16:13:52 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s0 (bird:/) to /backup/zone1.ufsdump.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 363468 blocks (174.47MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec
DUMP: DUMP IS DONE

4. ゾーンを起動します。

global# zoneadm -z zone1 boot

fssnap を使用した UFS スナップショットの作成

この方法では、fssnap コマンドを使用して、ファイルシステムのバックアップ処理用一時イメージを生成します。

この方法を利用すれば、ゾーンファイルだけの純粋で一貫性のあるバックアップファイルを作成することができ、しかも、その作業をゾーンの動作中に実行できます。ただし、スナップショットを作成するときには、ファイルを更新中のアクティブなアプリケーションを中断するか、チェックポイントを設定することをお勧めします。スナップショットが作成されるときにファイルを更新中のアプリケーションは、これらのファイルを、内部的に一貫性のない状態、一部を切り捨てた状態、または使用できない状態にすることがあります。

次の手順例について説明します。

  • /export/home の下に zone1 というゾーンがあります。
  • /export/home は別のファイルシステムです。
  • バックアップ先は /backup/zone1.ufsdump です。まず、/backup を作成してください。

1. スナップショットを作成します。

global# fssnap -o bs=/export /export/home

/dev/fssnap/0

2. スナップショットをマウントします。

global# mount -o ro /dev/fssnap/0 /mnt

3. スナップショットから zone1 をバックアップします。

global# ufsdump 0f /backup/zone1.ufsdump /mnt/zone1

DUMP: Date of this level 0 dump: Thu Oct 06 15:13:07 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rfssnap/0 (bird:/mnt) to /backup/zone1.ufsdump.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 32 Kilobyte records
DUMP: Estimated 176028 blocks (85.95MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 175614 blocks (85.75MB) on 1 volume at 2731 KB/sec
DUMP: DUMP IS DONE

4. スナップショットのマウントを解除します。

global# umount /mnt

5. スナップショットを削除します。

global# fssnap -d /dev/fssnap/0

システムを再起動すると、スナップショットの削除も行われます。

findcpio を使用したバックアップ

次の方法では、稼働中のゾーンに対して findcpio を実行します。

1. ディレクトリを/ ディレクトリに変更します。

global# cd /

2. ループバックマウントされていない zone1 ファイルを /backup/zone1.cpio にバックアップします。

global# find export/zone1 -fstype lofs -prune -o -local | 
  cpio -oc -O /backup/zone1.cpio

3. 結果を確認します。

global# ls -l backup/zone1.cpio

-rwxr-xr-x 1 root root 99680256 Aug 10 16:13 backup/zone1.cpio

ネットワークバックアップソフトウェアを使用したシステムのバックアップおよび復元

Symantec / VERITAS NetBackup などの製品を使用して Solaris システムをバックアップまたは復元できます。Symantec / VERITAS NetBackup では、バックアップ、アーカイブ、復元を企業の任意のユーザー間で調整できます。ゾーンをインストールした Solaris 10 システムの NetBackup によるサポートの詳細は、http://seer.support.veritas.com/docs/275107.htm を参照してください。

NetBackup クライアントソフトウェアは非大域ゾーンでサポートされます。NetBackup マスターサーバーとメディアサーバーは、大域ゾーンでサポートされます。NetBackup マスターサーバーはバックアップ、アーカイブ、および復元を管理します。メディアサーバーは、4 ミリのテープドライブなど、制御するストレージデバイスを NetBackup が使用できるようにすることで追加のストレージを提供します。

システム全体を復元することも、または特有のファイルやディレクトリを復元することもできます。NetBackup は選択されたファイルやディレクトリを検出し、クライアントのディスクに復元します。

標準の NetBackup アーキテクチャーは、変更しなくても、ゾーンをインストールしたシステムにそのまま適用できます。各非大域ゾーンは、NetBackup クライアントソフトウェアを稼働するスタンドアロンサーバーと見なすこともできます。

バックアップは、ゾーンとそのアプリケーションがバックアップ対象のデータを休止させた状態のときに、行うことをお勧めします。

注: ネットワークバックアップソフトウェアを使用するときには、可能であれば、継承された LOFS ファイルシステムはすべてスキップするように設定することをお勧めします。

ヒント: サーバーを統合したり、有線ネットワークより高いネットワーク帯域幅を同一システム上の非大域ゾーン間で利用したりするには、そのシステム上でメディアサーバーをシステムと共存させることもできます。サーバーとストレージデバイスの接続には、すべてのバックアップストリームに対応する十分な帯域幅が必要です。

Symantec / VERITAS NetBackup 製品の詳細は、次を参照してください。
http://www.sun.com/products-n-solutions/hardware/docs/Software/Storage_Software/VERITAS_NetBackup/index.html


バックアップ対象の決定

非大域ゾーン内のデータは、すべてバックアップできます。ゾーンの構成が頻繁に変更されない場合には、アプリケーションデータだけをバックアップすることもできます。

アプリケーションデータのみのバックアップ

アプリケーションデータがファイルシステムの特定の場所に格納されている場合には、このデータだけを定期的にバックアップすることもできます。ゾーンのルートファイルシステムはそれほど頻繁には変更されないため、頻繁にバックアップする必要がない場合もあります。

アプリケーションのファイルを置く場所を決定することは、思ったより難しいことがわかるでしょう。ファイルに応じて、各ユーザーの home ディレクトリ、/etc (通常、設定データ)、および /var に格納します。

アプリケーション管理者がデータの格納場所を認識している場合には、ゾーンごとに書き込み可能ディレクトリを利用できるように、システムも作成できます。これにより、各ゾーンはバックアップを格納できるようになります。また、その場所は大域管理者によってシステム上のバックアップ先として使用できるようになります。

一般的なデータベースバックアップ操作

データベースアプリケーションデータがデータベース固有のディレクトリに存在していない場合には、次の規則が適用されます。

  • 最初にデータベースが安定した状態にあることを確認します。データベースが休止している必要があります。内部バッファーのデータがディスクにフラッシュされるためです。大域ゾーンからバックアップを開始する前に、非大域ゾーン内のデータベースが安定した状態になっていることを確認してください。
  • 各ゾーン内でファイルシステムの機能を使用して、データのスナップショットを作成します。大域ゾーンから直接、スナップショットをバックアップします。このようにすると、バックアップのための時間が短縮されるだけでなく、すべてのゾーンのクライアントやモジュールをバックアップする必要がなくなります。

テープによるバックアップ

非大域ゾーンは、そのゾーンにとって都合のよい時間帯に、アプリケーションがわずかに休止している時間を利用して、プライベートファイルシステムのスナップショットが実行できます。それらのスナップショットは、アプリケーションがサービスに戻ったあとに大域ゾーンからバックアップしてテープに格納できます。

この方法により、次の利点が得られます。

  • 必要なテープデバイスの数が最小限で済みます。
  • 非大域ゾーンの間で調整する必要がなくなります。
  • デバイスを直接ゾーンに割り当てる必要がないため、セキュリティー機能が向上します。
  • 大域ゾーンでシステム管理を続けることができるので、通常はこの方法をお勧めします。

非大域ゾーンの復元について

大域ゾーンの管理者は、大域ゾーンから実行したバックアップを復元するときには、関係するゾーンを再インストールしてから、そのゾーンのファイルを復元できます。これは次を前提としていることに注意してください。

  • 復元するゾーンの構成が、バックアップしたときと同じ構成であること。
  • バックアップしてからゾーンを復元するまでの間に、大域ゾーンをアップグレードしたり、大域ゾーンにパッチを適用したりしていないこと。

これらの前提を満たしていない場合は、一部のファイルが復元によって上書きされ、手作業でマージしなければならないことがあります。

たとえば、バックアップのあとから非大域ゾーンの復元までの間にパッチ適用された大域ゾーンの場合には、必要に応じてファイルを手作業でマージします。このような状況でゾーンのバックアップファイルを復元するときには、注意が必要です。大域ゾーンにパッチを適用したあとに、新しくゾーンをインストールして再構築した場合には、バックアップファイルがそのゾーンと互換性を持たなくなることがあります。このような場合には、ファイルを個別に調べて、それらを新しくインストールしたゾーンのコピーと比較する必要があります。ほとんどの場合、ファイルを直接コピーすることができます。しかし、場合によっては、バックアップファイルに行なっていた変更を、ゾーン内で新しくインストールしたコピーまたはパッチを適用したコピーにマージする必要があります。

注: 大域ゾーンのすべてのファイルシステムが壊滅的に失われた場合には、非大域ゾーンの各ルートファイルシステムがバックアップに含まれさえすれば、大域ゾーンのすべてのファイルを復元すると、非大域ゾーンも復元されます。

将来の使用に備えた各ゾーン設定のバックアップ

将来、ゾーンの再作成が必要になったときのために備えて、非大域ゾーンの設定のコピーを作成しておくことをお勧めします。ゾーンにはじめてログインして sysidtool からの質問に回答したあとに、ゾーンの構成のコピーを作成します。

各ゾーンの構成は、次に示すようにファイルに出力できます。

1. スーパーユーザーまたは Primary Administrator 役割になります。

2. zone1 というゾーンのゾーン構成を zone1.config というファイルに出力します。

global# zonecfg -z zone1 export > zone1.config

非大域ゾーンを個別に復元する方法

zonecfg export コマンドで作成されたファイルから非大域ゾーンを復元するには、次の手順に従います。

1. スーパーユーザーまたは Primary Administrator 役割になります。

2. ゾーンの再作成時に zonecfg コマンドのファイルとして zone1.config を使用するように指定します。

global# zonecfg -z zone1 -f zone1.config

3. ゾーンをインストールします。

global# zoneadm -z zone1 install

4. ゾーンへの初期ログイン時に sysidtool による質問が表示されないようにするため、ファイル zonepath/root/etc/UNCONFIGURED を削除します。たとえば、次のように指定します。

global# rm /export/home/zone1/root/etc/.UNCONFIGURED

非大域ゾーンへの初回ログイン時に sysidconfig(1M) によって表示される質問については、『System Administration Guide: Solaris Containers-Resource Management and Solaris Zones』の「Performing the Initial Internal Zone Configuration」を参照してください。

5. (オプション) アプリケーションデータバックアップなどのファイルを新しく作成したゾーンのファイルシステムに手作業で復元 (およびおそらく手作業でマージ) します。


参照ページ


Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.


BigAdmin
  
 
BigAdmin Upgrade Hub