ラベル backup の投稿を表示しています。 すべての投稿を表示
ラベル backup の投稿を表示しています。 すべての投稿を表示

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停止モード


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




2013年6月29日土曜日

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

linux上にインストールしたclonezillaを使い、
各サーバのイメージのバックアップ、リストアする手順をまとめておく。

バックアップサーバとは別セグメントにあるサーバを対象にした場合に、
素直にバックアップがとれず頭を抱える部分があった。
少し複雑だが、ゲートウェイを挟んだ環境を前提とし、
その手順を残しておく。


◆ 環境
・バックアップ取得サーバ
ホスト名
 backup101

 IPアドレス
  eth0:192.0.2.1/24
  eth1:未使用


・バックアップ対象サーバ
ホスト名
 server101~103

 IPアドレス
  198.51.100.1/24~198.51.100.3/24


先に書いた通り、バックアップサーバであるbackup101は
バックアップ対象サーバと同じセグメントには存在しない。
ルータを挟んでいる構成になっている前提とする。


インストール手順は割愛。
◆ DRBL(Diskless Remote Boot in Linux)の設定事前作業

L3スイッチ越しのバックアップにリストアはNFSを利用するため、
次のファイルでNFSサーバを指定する。
# vi /usr/share/drbl/setup/files/misc/init.drbl
(略)
    nfsserver=$nfsserver_default
  fi
fi
nfsserver=192.0.2.1

202行目あたりの"nfsserver="にbackup101のeth0のアドレスをふる。



バックアップサーバであるbackup101に仮想的に
バックアップ対象サーバセグメントのIPアドレスを付与する。
# ifconfig eth1 198.51.100.100/24

大事なところなので何度でも書く。
backup101はバックアップ対象サーバと同じセグメントには存在しない。
ルータを挟んでいる。
DRBLの仕様なのか同じセグメントにあることしか想定されていないため、
DRBLの設定ファイルを作るために一時的にバックアップ対象群のIPアドレスをふる。
当然このインターフェースでは通信はできない。



◆ DRBLの設定
drblpushコマンドでインタラクティブに設定を進めていく。
# drblpush -i
(drbl.sf.net のような)DBS ドメインを入力して下さい:
[drbl.name] ENTER ← 気にせずディフォルトのまま

NIS/YP ドメイン名を入力して下さい:
[penguinzilla] ENTER ← 気にせずディフォルトのまま

クライアントホスト名の前半を入力して下さい:
[backup101] server ← server101~103なので

システムで設定されたイーサネットカードが見つかりました: eth0 eth1
このサーバのどのイーサネットポートを DRBL 接続用ではなく
パブリックインターネットアクセス用にしますか?
[eth0] eth0

WAN 接続用に選択したイーサネットポート: eth0
DRBL 環境用のイーサネットポート: eth1

この後マルチキャストに関する警告が出るが
意図通りであればENTERで進む

クライアントの MAC アドレスを収集します!
[y/N] N

これは DRBL サーバのイーサネットネットワークインターフェースに
接続されたクライアント用です。 eth1 ?
[y/N] N

このイーサネットポートに接続された DRBL クライアント用の
IP アドレスの末尾の数字の開始番号(つまり、IP アドレス a.b.c.d の d の最初の数字)を
入力して下さい。 eth1.
[1] 1 ←バックアップ対象サーバは198.51.100.1~198.51.100.3であった

DRBL サーバのイーサネットインターフェースに接続された
DRBL クライアント(学生用 PC)は何台ですか eth1?
[12] 3

DRBL サーバのイーサネットインターフェースに接続されたクライアント用の
IP アドレスを設定します。 eth1 as: 198.51.100.1 - 198.51.100.3
了解 ? [Y/n] Y


DRBL 環境のレイアウト: 
******************************************************
          NIC    NIC IP                    Clients
+-----------------------------+
|         DRBL SERVER         |
|                             |
|   +-- [eth0] 192.0.2.1      +- to WAN
|                             |
|   +-- [eth1] 198.51.100.100 +- to clients group 1 [ 3 clients, their IP 
|                             |            from 198.51.100.1 - 198.51.100.3]
+-----------------------------+
******************************************************

このシステムでは、ディスクレス Linux サービス用に3つのモードがあります:
[0]完全 DRBL モード。各クライアントは専用の NFS ベースの /etc、/var があります。
[1]DRBL SSI(単一システムイメージ)モード。各クライアントは tmpfs ベースの /etc、/var を使用します。
[2]クライアントにディスクレス Linux サービスを提供しません。
[0] 0

このシステムでは、Clonezilla 用の4つのモードを選択できます:
[0] 完全 Clonezilla モード:全クライアントには NFS ベースの個別 /etc, /var があります。
[1] Clonezilla ボックスモード:全クライアントは tmpfs ベースの /etc, /var があります。このモードでは、サーバの負荷と必要なディスク領域が完全 Clonezilla モードと比べて少なくなります。【注意】Clonezilla ボックスモードでは、クライアント設定と設定ファイルは DRBL サーバに保存されません!設定は一度だけ使われて、マシン停止後に消失します!
[2] Clonezilla は不要です。
[3] クライアントの OS(オペレーティングシステム)として Clonezilla Live を使用(テスト用)。
[0] 0

Clonezilla を使用する際、このサーバのどのディレクトリをイメージの保存に使用しますか? 
(絶対パスを使用してください。/mnt, /media, /tmp 下を割り当てないで下さい)
[/backup] /backup ← iback101上に事前にmkdirしておく必要がある

クライアントマシンにスワップパーティションか書き込み可能なファイルシステムが
あるハードディスクがある場合、スワップパーティションを使用するか、
書き込み可能なファイルシステムにスワップファイルを作り、
クライアントがより多くのメモリを使えるようにしますか?
(このステップはこのハードディスク中のどのデータも破壊しません)
[Y/n] Y

スワップスペースの最大サイズ(MB)はいくつですか?
[128] 128

クライアント起動後に使用するクライアントのモードはどれですか?
1: グラフィックモード(X Window System) (デフォルト),
2: テキストモード
[1] 2

セキュリティ強化の為、サーバからコピーした同じ root のパスワードを使用する代わりに、
クライアントの root パスワードを設定しますか?
[y/N] N

セキュリティ強化の為、クライアント用に pxelinux のパスワードを設定し、クライアント起動時、開始用のパスワード入力が要るようにしますか?
[y/N] N

クライアント用に起動プロンプトの設定をしますか?
[Y/n] Y

クライアントの起動プロンプトタイムアウト秒は(0.1秒単位。秒数を10倍して下さい)?
[70] 70

クライアント起動時、PXE メニュー用のグラフィカル背景を使用しますか?
[y/N] N

エイリアスインターフェースの使用により、
各クライアントは 2 つの IP アドレスを持てます。
片方は、DRBL サーバに接続するクライアント用のプライベート IP アドレスで、
もう片方はスイッチから WAN に直接接続するクライアント用のパブリック IP です。
クライアントのパブリック IP アドレスを設定しますか?
[y/N] N

DRBL クライアントにターミナルモードを実行するオプションがあるようにしますか?
つまり、クライアントにリモートディスプレイ実行させたい場合(サーバの資源をかなり使います)、
y を答えて下さい。
[y/N] N

DRBL サーバを NAT サーバとしますか? no の場合、DRBL クライアントはインターネットにアクセス出来ません。
[Y/n] n

もしあれば、古い既存の DRBL クライアントの設定を保持しますか?
[Y/n] n

サーバで実行中のカーネルは次をサポートしています: NFS over TCP!
Enter キーを押して継続してください…
ENTER

システムにファイルを導入する準備が整いました!
続けますか?
[Y/n] Y



◆ DRBLの設定事後作業
eth1を無効にする。
eth1は設定ファイルを作成するために
一時的に割り当てたに過ぎない。
# ifdown eth1



◆ DHCPの設定
dhcp用コンフィグの編集をする。
# vi /etc/dhcp/dhcpd.conf

①、②、③の赤字が修正、追加項目である。
backup101が実際に所属しているサブネットの設定
backup101の自セグメントにはバックアップ対象は存在しないので
設定は不要である。必要最小限書いておけばいいだろう。

(変更前)
subnet 192.0.2.0 netmask 255.255.255.0 {
    option subnet-mask  255.255.255.0;
    option routers 192.0.2.1;
    next-server 192.0.2.1;

    pool {
      range 192.0.2.1 192.0.2.1;
    }
}

(変更後)
subnet 192.0.2.0 netmask 255.255.255.0 {
}


② バックアップ対象サブネットの設定
subnet 198.51.100.0 netmask 255.255.255.0 {
    option subnet-mask  255.255.255.0;
    option routers 198.51.100.254; ← バックアップ対象セグメントのGW
    next-server 192.0.2.1; ← backup101の実IPアドレス

    pool {
      # allow members of "DRBL-Client";
      range 198.51.100.1 1928.51.100.3;
    }
}


③ 各クライアントのMACアドレスのエントリーを追記
host server101 {
        fixed-address 198.51.100.1;
        hardware ethernet 2c:76:8a:4e:cd:7b;
}
2、3号機も追記する。


dhcpdを再起動する。
# service dhcpd restart

(注意)
dhcpdのバージョンによってはdhcpdが参照する設定ファイル内に、
仮想NICが登録されることがある。
これは何度も述べたように一時的に用意したものなのですでにダウンさせている。
dhcpdが起動しないかもしれないため、消しておくこと。
/etc/sysconfig/dhcpd
DHCPDARGS="eth1"



◆ NFSの設定
クライアントがPXEブートで起動するときに使用するfstabを修正する。
以下のようなファイルができているはずである。
これはserver101の例である。
# vi /tftpboot/nodes/198.51.100.1/etc/fstab

以下のようなnfsのマウントポイントの前半部分には
backup101のeth1に一時的にふったIPアドレスが書かれている。
backup101の実アドレスに変更する。
(変更前)
198.51.100.100:/tftpboot/node_root  /  nfs  nolock,ro,soft,nfsvers=3,tcp,,defaults  0 0

(変更後)
192.0.2.1:/tftpboot/node_root  /  nfs  nolock,ro,soft,nfsvers=3,tcp,,defaults  0 0



◆ 経由するルータの設定
DHCPサーバの検索にはIPブロードキャストが使用される。
同一セグメントであれば問題ないが、今回のようにルータを経由する場合は
ルータの設定の見直しも必要である。
ルータは、ブロードキャストを転送しない。
ブロードキャストパケットを特定のサーバにユニキャストするためには
経由するルータにdhcpを通す設定を入れておかなければならない。

バックアップサーバのIPアドレス:192.0.2.1
バックアップ対象サーバのセグメント:Vlan-Interface1

・ciscoの例
ip helper-address 191.0.2.1

hp系ルータ系の例
dhcp enable
dhcp relay server-group 1 ip 191.0.2.1

interface Vlan-interface1
  dhcp select relay
  dhcp relay server-select 1



以上で準備は終わりである。
次回実際にバックアップとリストアを実施する。