« Cobalt-.htaccessによるパスワード制限 | メイン | Safari Prairiefire 1.0.1 (E) »

2005年7月21日

Cobalt-RaQ4のリストア

Sun Cobalt RaQ 4の標準のバックアップ機能を用いたディザスタリカバリについて

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ファイル名>

---------------------
$ PERL_BADLANG=0
$ export PERL_BADLANG

とかすれば、とりあえずワーニングは消えるのではないでしょうか?
(毎回入力しなくてもよいように/etc/profileに書くとよいかも)
あとは/etc/sysconfig/i18nを編集してLC_ALL=Cにしてリブートするとか。

でも、根本的な解決ではなさそうなので(多分、このワーニングを消すにはコンパイルしないといけないはず。)なんともいえませんが。

> perl: warning: Setting locale failed.
> perl: warning: Please check that your locale settings:
> LANGUAGE = "ja_JP.SJIS",
> LC_ALL = "ja_JP",
> LANG = "ja_JP"
> are supported and installed on your system.
> perl: warning: Falling back to the standard locale ("C").
----------------------------------

・デーモンを停止する

# 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.を参照ください.バックアップされるディレクトリ配下のファイルは復旧可能です。

投稿者 AJ : 2005年7月21日 11:13

トラックバック

このエントリーのトラックバックURL:
http://www.factory-aj.com/cgi/mtctrl/mt-tb.cgi/6

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM