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