2013年7月1日月曜日

clonezillaによるネットワーク越しイメージバックアップ、リストア手順

linux上にインストールしたclonezillaを使い、
各サーバのイメージのバックアップ、リストアを行う。
前回環境は整えた
ここでは実際にバックアップとリストアを実施する。


◆ バックアップとリストア(共通部分)
以降の作業は、サーバの台数分だけ繰り返す必要がある。

backup101にてdcsコマンドを実行するとCUI画面が表示される。
スペースキー、リターンキーで設定を選んでいく。
灰字ではなく、赤字を選択したとする。

# /usr/sbin/dcs

全クライアントまたは一部のクライアントのモードを設定しますか?
モードを選択してください:
 All 全クライアントを選択
 Part IP または MAC アドレスでクライアントの一部を選択

ホストを選択してください:
 by_IP_addr_list クライアントのIPアドレス一覧による設定モード

ホストを指定してください:
 [*] 198.51.100.1 server101
 [ ] 198.51.100.2 server102
 [ ] 198.51.100.3 server103
 ※選択は1台のみの指定する。
  あとでバックアップ対象ノード用のディレクトリ名を指定することになるため、
  結局1台しか選択できない。

モードの切り替え:
 clonezilla-start Clonezilla開始モード
 clonezilla-stop Clonezilla停止モード
作業後に停止モードを利用する。この段階ではまだ選択しない。

拡張パラメータに関するウィザードを実行するモードを選択:
 Beginner 初心者モード:ディフォルトオプションで了解
 Expert エキスパートモード:自分自身のオプションを選択

モードを選択してください:
 save-disk クライアントのディスク全体を保存
 restore-disk クライアントのディスク全体をリストア
 バックアップ時はsave-disk、リストア時はrestore-diskを選ぶ。
 それぞれ、"◆ バックアップ"、"◆ リストア"へ続く。
 また、以降の作業は、サーバの台数分だけ繰り返す必要がある。



◆ バックアップ
(save-diskを選んだ場合の続き)
今このサーバでの、または後でテンプレートクライアントでのイメージ名と
デバイス名の入力を選択できます:
 Now_in_server これからイメージ名とデバイス名を入力する
 Later_in_client 後でクライントのイメージ名とデバイス名を入力する

イメージの保存名を入力してください:
 YYYY-MM-DD-HH-img_serverXXX
 ※YYYY-MM-DD-HHは日時、XXXは号機名でいいだろう。

保存するテンプレートマシンのデバイス:
 sda sdb ← dfコマンドから、sdaとsdbを対象にすると判断したと想定

どの複製プログラムと何の優先度を希望しますか:
一覧のプログラムと優先度はファイルシステムが未サポートの場合、
次のプログラムが使用される事を意味しています。
例:「優先度:ntfsclone > partimage > dd」を選択し、
ファイルシステムが xfs の場合、clonezilla は最初に ntfsclone 使用を試み、
(もちろん ntfsclone は xfs をサポートしていないので)clonezilla は
partimage 使用を試みます。
デフォルト設定は最適化されます。
特に考えてなければ、デフォルト値を保持、つまり何もしないで「OK」を
解答して下さい。
 -q2 優先度:partcline > partimage > dd
 -q1 優先度:ddのみ(全ファイルシステムをサポート、但し非効率)
 -q  優先度:ntfscline > partimage > dd
      優先度:partimage > dd(ntfscline なし)

拡張パラメータを選択してください。
 [*] -nogui  テキスト出力のみ使用(TUI/GUI 出力なし)
 [ ] -j2 MBR と最初のパーティションの間に隠れデータを複製
 -j2はディフォルトで選択されているがそれは外し、-noguiオプションだけを選択する。

保存前にファイルシステムをチェック・修復するかを選んでください:
 -fsck-src-part

イメージ保存後、イメージが復元可能かどうかのみチェックしますか:
HDDには一切データを書き込みません。
 はい、保存イメージをチェックします
 いいえ、保存イメージのチェックを省略します

クライアント複製終了時の動作
 -p true 複製終了時に何もしない

圧縮オプションを選択してください。
 -z1p 並列 GZIP 圧縮を使用

パーティションイメージファイルを複数のボリュームファイルに分割するためのサイズを指定(MB).
 1000000 ← ディフォルトのまま(分割する必要なし)

最後にENTERを押して終わりである。
次手順の"◆ クライアント(バックアップ対象サーバ)のリブート"へ進む。

(参考)
/tmp配下のファイル内に実行されたコマンドが記録される。
# cat /tmp/~
drbl-ocs -b -q2 -nogui -fsck-src-part -p true -z1p -i 1000000 -h "198.51.100.1" -l ja_JP.UTF-8 startdisk save YYYY-MM-DD-HH-img_server1 sda sdb

毎回インタラクティブな画面からコマンドを発行するのは手間がかかる。
繰り返す場合は、そのコマンドを(必要に応じて変更し)コマンドを叩けばよい。



◆ リストア
(restore-diskを選んだ場合の続き)
拡張パラメータを設定して下さい(複数選択できます)。
    [*] -nogui    テキスト出力のみ使用 (TUI/GUI 出力なし)
  ディフォルトで選択されている項目は外し、-noguiオプションだけを選択する。

拡張パラメータを設定して下さい。
 イメージのパーティションテーブルを使用
 -k    クライアントのコピー先ハードディスクのパーティションテーブルを作成しない
 -k1   適切にパーティションテーブルを作成(MBR 形式は OK、GPT 形式は NG)
 -k2   コマンドラインに移行し、その後手動でパーティションを作成
 -j0   パーティション作成で dd を使用(論理ドライブ存在時には使用不能)

クライアントに Clonezilla サービスを常に提供しますか?
 このオプションを省略
 -y0  サーバは常に複製モードを提供 - デフォルトのローカル起動
 -y1  サーバは常に複製モードを提供 - デフォルトの Clonezilla
 -y2  サーバは常に複製モードを提供 - デフォルトの DRBL

クライアント複製終了時の動作:
-p reboot    複製終了時にクライアントを再起動
-p poweroff  複製終了時にクライアントを停止
-p choose    複製終了時にクライアントで選択
-p true      複製終了時に何もしない

リストアするイメージファイルを選択: 
  YYYY-MM-DD-HH-img_server1

リストアするコピー先ディスクの選択
(【注意】コピー先ディスク中の既存データは上書きされます!!)
 [*] sda  disk(sd)_disk(a)
 [*] sdb  disk(sd)_disk(b)

クライアントディスクのリストアモードを選択
 multicast マルチキャストリストア
 broadcast ブロードキャストリストア
 unicast   ユニキャストリストア

最後にENTERを押して終わりである。
次手順の"◆ クライアント(バックアップ対象サーバ)のリブート"へ進む。



◆ クライアント(バックアップ対象サーバ)のリブート
バックアップ対象サーバをリブートすればバックアップ、もしくはリストアが始まる。
ただし、その前に、数点確認しておく必要がある。

● バックアップ対象NICのPXEブートの有効化
バックアップを実施するネットワークのインターフェースがPXEに対応していないといけない。

HPサーバであれば直接BIOSを操作しなくともOS側から操作できる。
http://alpha-netzilla.blogspot.jp/2010/07/hp-hw.html 内の
"【HWステータス】 -> ● PXE情報" を参考のこと

● バックアップ対象NICがPXEブートの優先順位
HDDより内臓NICの優先度を上げておかないと普通にOSが起動して終わりである。
(例)
変更前 CDROM, Floppy, USBKEY, HDD, 内蔵NIC
変更後 CDROM, Floppy, USBKEY, 内蔵NIC, HDD

同じくHPサーバであれば直接BIOSを操作しなくとも、iLOから変更ができる。
http://alpha-netzilla.blogspot.jp/2010/07/hp-hw.html 内の
"【iLOのCUI操作】-> ● ブートシーケンス(起動順)の確認と変更" を参考のこと

● その他
ストレージなどファイバーチャネルがつながっていると、正常に停止しないことがあった。
その場合はFCポートを無効にしておくこと。


以上が最低限必要な確認項目である。

対象サーバにルートでログインする。
# ssh root@serverXXX

再起動を実施する。
# shutdown -r now

HPサーバであればOSが起動していなくとも、バックアップ中の様子をコンソールで確認できる。
http://alpha-netzilla.blogspot.com/2010/07/hp-hw.html 内の
"【iLOのCUI操作】-> ● テキストコンソールの表示" を参考のこと



◆ 事後確認
1. バックアップ、もしくはリストア後に、サーバの電源ボタンをONにする

2. PXEブートさせないようにBIOSの設定を戻しておくこと

3. 起動したら、rootでログインして正常性を確認する。
# grep -iE 'erro|warn' /var/log/messages

4. macアドレスの有効化
clinezillaがmacアドレスを無効化しているので、書き戻すこと。
# vi /etc/sysconfig/network-scripts/ifcfg-eth*
#HWADDR="XX:XX:XX:XX:XX:XX" # Commented by Clonezilla

# service network restart



◆ clonezillaの停止
先に実施したdcsコマンドを再び使い、
"モードの切り替え:"まで同様の手順で進む。

# /opt/drbl/sbin/dcs

"モードの切り替え:"時に以下を選択してclinezillaを停止させる。
clonezilla-stop Clonezilla停止モード


以上をバックアップ対象サーバ分繰り返す。