読者です 読者をやめる 読者になる 読者になる

CA MOBILE エンジニアブログ

株式会社シーエー・モバイルのエンジニアブログです

【旧ブログ】ext4のイメージバックアップについて

linux関連

こんにちは。インフラグループ yymctです。

今回はext4のバックアップについてです。

SystemRescueCDのpartimageでイメージファイルとしてバックアップして
横展開したりする事が多いのですが、CentOS6系デフォルトファイルシステム
ext4で、partimageでイメージ取得するとバックアップに失敗する。
そもそもpartimageはext4には対応していないとの事。
(この記事を書いている時点の最新版でも未対応)

他にイメージバックアップ出来ないものかと調べていると、
fsarchiverはext4には対応しているとの情報を聞き、検証環境で試してみました。

●fsarchiver

http://www.fsarchiver.org/Main_Page

SystemRescueCDに入っているツールの一種で指定したパーティーションを
丸ごとアーカイブして別パーティションへリストア出来るというツールです。

今回はCent6.2のext4で構築したコピー元サーバA
コピー先サーバBへリストア可能か実施。
合わせて、コピー先の"/"領域の容量変更が可能か確認した。

<strong>サーバA(コピー元)</strong>
/dev/sda1 /boot ext4 100MB
/dev/sda2 /???    ext4 200GB

<strong>サーバB(コピー先)</strong>
/dev/sda1 /boot ext4 100MB
/dev/sda2 /???    ext4 500GB

コピー元サーバにてバックアップ

コピー元サーバをSystemRescueCDから立ち上げて下記コマンドで "boot領域"と、"/"領域をバックアップ。

# fsarchiver savefs boot.fsa /dev/sda1
# fsarchiver savefs root.fsa /dev/sda2

⇒これだと非圧縮でのコピーとなり、だいたい100GB(使用領域)で
約3時間くらいかかりました。

コピー先サーバにてリストア

コピー先サーバをSystemRescueCDから立ち上げて

fdiskコマンドを用いて、コピー先サーバBの
/dev/sda1、/dev/sda2のパーティションを作成。

上記で取得したイメージをリストア先サーバへコピー

# scp -p コピー元サーバ:/root/boot.fsa /root
# scp -p コピー元サーバ:/root/root.fsa /root

# fsarchiver restfs boot.fsa id=0,dest=/dev/sda1
# fsarchiver restfs root.fsa id=0,dest=/dev/sda2

⇒リストアは意外にも数十分で完了しました。

この後、下記を実施、

#grub
#grub> root (hd0,0)
#grub> install /grub/stage1 d (hd0) /grub/stage2 p (hd0,0)/grub/grub.conf
#grub> quit

以上でOSを起動してみると、OSは起動するけど、IPが表示されない…

実は試験環境ではコピー元、コピー先の機器は異なる筐体で実施していました。
(これも今回の試験で確認したかった項目のひとつだったので)

原因はコピー元とコピー先でInterfaceのDevice情報が
異なっている為でした。

解決方法として、/etc/udev/rules.d/70-persistent-net.rulesのファイルを
削除 or リネームして再度、OS再起動。
OS再起動で70-persistent-net.rulesファイルが作成されます。
(Cent6.1以降?ではmodprobe.confがなくなっているので)

これにより、Interface状態が見える状態になり無事IPが表示。

本試験の目的だった、

ファイルシステム ext4のバックアップ/リストア
・コピー先でdisk容量を変更してリストア可能か
・異なる筐体(同一メーカー)でもリストア可能か

結果、centOS6.2のext4でもイメージでの横展開が可能(検証では…)
なお、ext3でも利用可です。

古い筐体で動作しているOSを新しい筐体に移行する際にも使えそうです。
今後、使用する機会が増えるかもです。

zp8497586rq