RaQ4 の標準バックアップを用いたディザスタ・リカバリ

RaQ4 標準のバックアップは、残念なことに壊滅的な壊れ方をした場合には そのままではシステム全体を復旧できません。
こうしたディザスタ・リカバリに対応するためには、Veritas などの バックアップシステムを利用するのが良いのでしょうが、Unix のオペレーションに なれた人なら、なんとか戻せる可能性があります。
以下に手順を示しておきますので、追い詰められた方は参考にしてください。 ただし、各オペレーションの意味や、細かな操作方法についてはそれぞれ 解説しません。それが分からない人がこの作業をすることは非常に危険な 上に、おそらく最後までたどり着けないだろうと推測するからです。
(ここに書かれている操作を行なって更にまずい状況に陥ったとしても すべてはご自分の責任と心得て作業してくださいませ。)
Feb. 2002, Cobalt の西田さんからの情報
Sun Cobalt RaQ 4の標準のバックアップ機能を用いたディザスタリカバリについて
Ver 1.02

1. 概要

Sun Cobalt RaQ 4のシステムは/home/sites配下の仮想サイト,ユーザデータや
/etc配下のシステムの設定のほかに,管理画面の制御に使用するSun Cobalt専用
のデータベースからなり,使いやすいユーザインタフェースの提供を実現してい
ます.
ところがSun Cobaltが標準で提供しているバックアップ機能ではSun Cobaltデー
タベースのバックアップをとっておらず,バックアップしたデータを単純にリス
トアしただけでは管理画面の情報が復旧しません.
とはいえ,管理画面の情報(すなわちSun Cobaltデータベース)を復旧させる方
法がないわけではありません.RaQ 4には,/etc配下のシステム情報とSun Cobalt
データベースとの矛盾をチェック・解決するmeta-verifyというユーティリティが
標準で用意されており,バックアップ(.raqファイル)とこのmeta-verifyを組み
合わせることにより,Sun Cobaltデータベースを復旧させ,ディザスタリカバリ
を行うことが可能です.

以下ではその使用法を説明し,データおよびユーザ・仮想サイト情報の復旧方法
を解説します.この手順はかなり複雑ですので,以下の手順を熟読し,よく理解
した上で行ってください.またLinuxのシステム管理の知識が必要となりますの
で,経験のない方は行わないでください.

(注意)
ここで解説している方法はRaQ 4についてのみ有効な方法です.RaQ 2または3では
使うことができませんのでご注意ください.


2. 標準バックアップ機能でバックアップされるファイル

RaQ 4の標準バックアップ機能によりバックアップされるファイルは,以下のディ
レクトリ配下のあるファイルです

/etc                       Linux OSの設定情報
/home                      仮想サイト・ユーザのデータ(Web,FTP,IMAP,logなど)
/usr/admserv/html/.cobalt  管理画面情報
/usr/local/majordomo       メーリングリスト情報
/var/spool/mail            メールスプール
/var/vacation              自動応答メッセージ


3. 復旧手順

(1) システムの初期化

OS Restore CDよりシステムの初期化を行い,そのホストに対しバックアップデー
タを元に復旧します.この新規のホストのことをターゲットホスト,バックアッ
プデータをとったオリジナルのホストをオリジナルホストと呼ぶことにします.

・RaQ 4に添付されているOS Restore CDを用いて工場出荷時の状態に戻します.
・ターゲットホスト上でセットアップウィザードを起動し,ホスト名,IPアドレ
 スなどできるだけオリジナルホストと同じ設定にします.
・ターゲットホストに対し,オリジナルホストと同一のパッチを適用します.(必
 要な場合)


(2) PostgreSQLパスワードの退避

Sun CobaltデータベースはPostgreSQLのデータベースに格納されますが,それに
アクセスするにはPostgreSQLで定義したアカウントを使用します.そのアカウン
トのパスワードは,システムの初期化時に,ホストごとにユニークに生成されま
す.したがってターゲットホストのパスワードはオリジナルホストのものとは当
然異なるわけですが,ターゲットホスト上で運用を開始するには,ターゲットホ
ストのパスワードを使用しなければなりません.バックアップデータをリストア
してしまうと,ターゲットホストのパスワードファイル(/etc/cobalt/.meta.id)
が上書きされてPostgreSQLにアクセスできなくなってしまいますので,パスワー
ドファイルを退避しておきます.

・rootでログインする
・/etc/cobalt/.meta.idファイルを/homeなどに退避しておく

# cp -p /etc/cobalt/.meta.id /home


(3) バックアップファイルのリストア

バックアップファイルをいったんターゲットホストにコピーしておき,そのファ
イルからリストアします.その際に起動中のhttp,postmasterなどのデーモンの
設定ファイルが上書きされてしまうので,起動中のデーモンはすべて停止します.
またバックアップファイル(.raqファイル)は,tar.gzファイルにリストア用のヘッ
ダーを加えた形式になっており,そのままではtarコマンドで解凍できないので
ツールを用いてヘッダーを取り除きます.

・ftpなどでバックアップファイルをターゲットホストの/homeなどにコピーする
・以下のftpサイトよりstripheader-raq3-raq4.plファイルをダウンロードする
 ftp://ftp.cobaltnet.com/pub/experimental/stripheader-raq3-raq4.pl
・stripheaderユーティリティにより.raqファイルからヘッダーを取り除く(カレ
 ントディレクトリにout.tar.gzというファイルが作られます)

# cd /home
# chmod +x stripheader-raq3-raq4.pl
# ./stripheader-raq3-raq4.pl <.raqファイル名>

・デーモンを停止する

# cd /etc/rc.d/init.d
# ./httpd stop
ウェブサービス ヲ シャットダウン シテイマス: httpd
# ./postgresql stop
PostgreSQL ヲ シャットダウン シテイマス: ok
# ./sendmail stop
メールサービス ヲ シャットダウン シテイマス: sendmail ok
# ./admserv stop
Stopping admin web server: ahttpd

・データをリストアする

# cd /
# tar --same-owner -xvzf /home/out.tar.gz


(4) root, adminアカウントのパスワードの変更

リストアしたことにより/etc/passwdファイルが上書きされてしまって,rootと
adminアカウントのパスワードが変わってしまったので,わからなくなってログイ
ンできなくなってしまう前にパスワードを変更しておきます.

# passwd
New login password:
Retype new login password:
passwd: all authentication tokens updated successfully
# passwd admin
Changing password for user admin
New login password:
Retype new login password:
passwd: all authentication tokens updated successfully


(5) 退避していた/etc/cobalt/.meta.idを元に戻す

# cp -p /home/.meta.id /etc/cobalt


(6) Postmasterなどのデーモンの再開

# cd /etc/rc.d/init.d
# ./postgresql start
PostgreSQL ヲ シャットダウン シテイマス: ok [3485]
# ./sendmail start
メールサービス ヲ シャットダウン シテイマス: sendmail
# ./httpd start
ウェブサービス ヲ シャットダウン シテイマス: /usr/sbin/httpd

# ./admserv start
Starting admin web server:
/usr/sbin/httpd.admsrv


(7) meta-verifyユーティリティによる仮想サイト・ユーザ情報の復旧

meta-verifyコマンドを用いて仮想サイト・ユーザ情報を復旧させます.
meta-verifyコマンドは/etc配下のシステム情報を用いてSun Cobaltデータベース
に仮想サイト・ユーザデータをインポートします.

・/etc/passwdファイルのコードを変換する

meta-verifyコマンドによって,ユーザ名は/etc/passwdファイルを参照しSun 
Cobaltデータベースにインポートされますが,その際に漢字コードは変換されま
せん.
Sun CobaltデータベースにはSJISで格納しなければなりませんが,元となるpasswd
ファイルにはEUCで格納されています.
したがってnkfコマンドを使用して,いったん/etc/passwdファイルをSJISに変換
し,meta-verifyによってインポートを行ったのち元に戻します..

# cp -p /etc/passwd /tmp
# nkf -s /tmp/passwd > /tmp/passwd.sjis
# cp /tmp/passwd.sjis /etc/passwd

(注意)
(/usr/sbin/cobalt/adduserコマンドを用いて自動登録するなど)ユーザ登録の方
法によっては,ユーザ名がSJISとEUCのコードが混在した状態で,/etc/passwdファ
イルに格納されている場合があります.その場合は上記のようにnkf -sコマンド
で簡単にSJISに変換することができません.
以下のようにsplitコマンドなどでpasswdファイルを分割し,行ごとに変換したの
ちcatコマンドでマージしたものを使用してください.

# mkdir /tmp/split
# cd /tmp/split
# split --lines=1 /tmp/passwd
# for i in *
> do
> nkf -s $i
> done | cat > /tmp/passwd.sjis


・ユーザ・仮想サイト情報をインポートする

meta-verifyコマンドを使用し,Sun Cobaltデータベースにインポートします.

# meta-verify -if

meta-verify (version 3.0)
(c) 2000 Cobalt Networks, Inc

checking VIRTUAL SITES
repairing xx INVALID VIRTUAL SITES

          site1 | saved
          site2 | saved
          ...

checking USERS
repairing xxx INVALID USERS

          saito | saved
        nishida | saved
        ...
OK

注意)エラーが出た場合,再度同じコマンドを実行すると正常終了することがあ
ります.

・passwdファイルをもとにもどす

# cp -p /tmp/passwd /etc


(8) meta-verifyコマンドで復旧できない情報の再設定

仮想サイトおよびユーザのデフォルト設定,ユーザの最大許容ディスク容量など
の一部の情報はmeta-verifyコマンドを用いても復旧されません.これらの情報は
管理画面より「手動で」再設定を行わなければなりません.
再設定が必要な情報は以下の通りです

 仮想サイトのデフォルト
 ユーザのデフォルト
 仮想サイトの最大許容ディスク容量
 仮想サイトの最大ユーザ数
 仮想サイトのFrontPageエクステンション設定
 仮想サイトのFrontPageエクステンションパスワード
 仮想サイトのシェルアカウント設定
 仮想サイトのAPOP設定
 仮想サイトのサスペンド設定
 Anonymous FTPの着信ファイルサイズ
 ユーザの最大許容ディスク容量


(9) ファイルの削除

復旧に使用した一時ファイルを削除します.これらのファイルは「必ず」削除し
ておかなければなりません.なぜならこれらのファイルを残したままにしておく
と,再度バックアップを行ったの際にバックアップデータとして保存されてしま
い,再びディザスタリカバリを行わなければならなくなった際には,(2)などで
いったん退避したファイルの上に上書きされてしまう危険性があるからです.

# rm /home/.meta.id
# rm /home/<.raqファイル>
# rm /home/out.tar.gz
# rm /tmp/passwd.sjis
# rm /tmp/passwd


4. 復旧できない情報

3. (8)で述べたとおり,meta-verifyコマンドを用いても復旧できない情報があり
ます.これらの情報は管理画面より再設定を行わなければなりません.
復旧できない情報は以下の通りです.

 仮想サイトのデフォルト
 ユーザのデフォルト
 仮想サイトの最大許容ディスク容量
 仮想サイトの最大ユーザ数
 仮想サイトのFrontPageエクステンション設定
 仮想サイトのFrontPageエクステンションパスワード
 仮想サイトのシェルアカウント設定
 仮想サイトのAPOP設定
 仮想サイトのサスペンド設定
 Anonymous FTPの着信ファイルサイズ
 ユーザの最大許容ディスク容量

またユーザが独自にインストールしたプログラムやカスタマイズした設定は復旧
できない場合があります.どのディレクトリ配下のファイルがバックアップされ
るかについては,2.を参照ください.バックアップされるディレクトリ配下のファ
イルは復旧可能です.

以上


This page is administrated by
Cobalt Users Group. (usersgroup@cobaltqube.org)
All rights are reserved.
[BACK]