Rescue モードを使用した Red Hat Enterprise Linux 6 for Power のシステムバックアップガイド - VIOS 冗長化環境マルチパス編 v1.0 日本アイ ビー エム株式会社 ソリューション事業部 OSS ソリューション
はじめに Linux/OSS Support Center, IBM Japan この資料の内容に関しては正式な IBM のテストを受けておりません この資料は 資料作成時における最新情報をご参考のために提供することを目的として記載されており IBM は 情報の正確性 完全性または有用性について何ら保証するものではありません また 内容は予告なしに変更または更新されることがあります この資料の内容は 限られた検証環境における結果に基づくものであり 全ての環境で同一の結果を保証するものではありません お客様固有の環境に対し 適切であるかどうか また 正確であるかどうかは十分検証されていません この資料の情報に基づき導入 設定を実施される場合には 十分な検証テストを行ってください また 予め各社より提供される情報および製品のマニュアルをご覧ください この資料の情報に基づいて導入 設定 運用した結果について IBM はいかなる保証も責任も負いかねますので予めご了承ください 2
当ガイドについて 次の点を踏まえてバックアップ手順をガイドします Red Hat Enterprise Linux v.6 (RHEL6) VIOS マルチパス環境のシステムバックアップ IBM Power Systems (System p) の論理区画 (LPAR) に 2 つの VIOS により冗長化されたストレージ接続パスを構成して 外部ディスクストレージの LUN に Red Hat Enterprise Linux(RHEL) 6 が導入された環境のシステムバックアップ手順を紹介しています 下記の導入手順にて 導入されていることを前提とします マルチパスの設定などが異なっている場合は 正しくバックアップ リストアができないことがありますのでご注意ください http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-002de0d6 RHEL6 では udev 機能により /dev/ ディレクトリが動的に管理されています その為 レスキューブート環境における chroot 実行時等に デバイスへアクセスするための作業が必要です LVM 環境のシステムバックアップ RHEL6 では 自動パーティショニングによるインストール時に LVM が採用されます また LVM のバージョンが 2 となり LVM 上 ext4 ファイルシステムの動的拡張コマンドがサポートされる等 実環境に便利な機能が実装され 利用価値が高まっています RHEL6 では レスキューブート環境における LVM 関連コマンドが lvm コマンドに集約されています NFS 環境を使用したシステムバックアップ これまでのテープ装置へのシステムバックアップ取得方法に加えて バックアップサーバーを構築する等 ネットワーク経由での取得が増えています 3
システム環境構成概要 IBM Power Systems (System p) の論理区画 (LPAR) に 2 つの VIOS により冗長化されたストレージ接続パスを構成して 外部ディスクストレージの LUN に RHEL 6.0 が導入されていることを前提とします 2 つの VIOS においては 使用する hdisk の属性 reserve_policy を予め no_reserve にしておく必要があります Linux 導入後は SMS にてブートリストに 2 つの vscsi を指定してください IBM Power Systems サーバー LPAR: VIOS#1 LPAR: Linux LPAR: VIOS#2 vhost0 vscsi0 vscsi1 vhost0 /dev/sda /dev/sdb fcs0 /dev/mapper/mpatha fcs0 DMMP によるマルチパスアクセス IBM System Storage DS4000 シリーズ Controller A Controller B 4
前提事項 Linux/OSS Support Center, IBM Japan 当ガイドでは 以下の環境にて検証を行っています 環境によって動作が異なる場合がありますので 参考としてご参照ください バックアップ対象サーバー OS / HW OS: Red Hat Enterprise Linux 6.0 HW: IBM Power Systems HDD: 10GB IP アドレス 192.168.2.140 ホスト名 :hostsvr NFS サーバー OS/HW OS: Red Hat Enterprise Linux 6.0 HW: IBM Power Systems HDD: 20GB IP アドレス 192.168.2.141 ホスト名 :hostnfs 192.168.2.140 ( hostsvr) バックアップ対象サーバー NFS サーバー 192.168.2.141 ( hostnfs) 5 192.168.2.0/255.255.255.0
- バックアップ対象サーバー ( hostsvr ) ディスクパーティション / LVM 構成 デバイス タイプ ラベル マウントディレクトリ /dev/sda1 PPC PReP Boot /dev/sda2 ext4 /boot /boot /dev/sda3 Linux PV - - LVM PV LVM VG LV デバイスタイプラベルマウントディレクトリ /dev/sda3 VolGroup00 LogVol00 /dev/volgroup00/logvol00 ext4 - / LogVol01 /dev/volgroup00/logvol01 swap - - LVM ボリュームグループ名は vg_( ホスト名 ) と自動で命名されますが 当ガイドでは VolGroup00 と変更しております 同様に LV 名も上記の通りに変更しております /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 ( VolGroup00 ) /dev/sda1 PPC PReP Boot /dev/sda2 /boot /dev/volgroup00/logvol00 / /dev/volgroup00/logvol01 swap 6
- バックアップ対象サーバー /etc/fstab ファイル /dev/mapper/volgroup00-logvol00 / ext4 defaults 1 1 UUID=cbae0ddd-312b-46a8-8e2f-653ecda16e71 /boot ext4 defaults 1 2 /dev/mapper/volgroup00-logvol01 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 - バックアップ対象サーバー mount コマンド出力結果 /dev/mapper/volgroup00-logvol00 on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/mapper/mpathap2 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev) 7
1. バックアップ 8
バックアップの流れ 作業項目 hostsvr 作業 hostnfs 作業 1.1 NFS export の開始 - 1.2 NFS mount - 1.3 情報収集 - 1.4 レスキューブート - 1.5 バックアップの準備 - 1.6 バックアップ - 1.7 NFS export の停止 - 9
1.1 NFS export の開始 NFS サーバーにて NFS を準備 エクスポートします ( hostnfs の作業です ) エクスポートディレクトリの作成 設定ファイル編集 サービス開始を行います # mkdir /nfsexport # vi /etc/exports ( 編集内容 ) /nfsexport *(rw,sync,no_root_squash) # service nfs start エクスポートされていることを確認します # exportfs ( 実行結果抜粋 ) /nfsexport <world> ( /etc/exportfs ファイル更新後の反映は # exportfs r ) 10
1.2 NFS mount バックアップ対象サーバーにて NFS マウントします ( 当作業から 1.6 までは hostsvr の作業です ) マウント用のディレクトリ作成後 NFS マウントします # mkdir /nfs # mount t nfs 192.168.2.141:/nfsexport /nfs マウントされていることを確認します # mount ( 実行結果抜粋 ) 192.168.2.141:/nfsexport on /nfs type nfs (rw,vers=4,addr=192.168.2.141,clientaddr=10) 11
1.3 情報収集 リストア時に必要なパーティション関連情報を収集します sfdisk コマンドにてパーティション情報をファイルに出力し保存します # sfdisk -d /dev/sda > /nfs/sfdisk.sda.txt mount コマンドの出力結果及び /etc/fstab ファイルから ラベル情報を取得し記録します ( 必要に応じてファイルに保存してください ) # mount ( 実行結果抜粋 ) /dev/sda2 on /boot type ext3 (rw) # cat /etc/fstab ここでは ラベルを使用していないため ラベル情報は記録しません ラベル情報は e2label /dev/sda2 コマンドでも確認できます 12
リストア時に必要な LVM 関連情報を収集します VG 名を確認し VG 情報をファイルへ出力 保存します # vgdisplay ( 実行結果抜粋 ) VG Name VolGroup00 # vgcfgbackup VolGroup00 f /nfs/volgroup00.txt ( 実行結果 ) Volume group "VolGroup00" successfully backed up. PV UUID を確認 メモ等に記録します ( 必要に応じてコマンド出力結果をファイルに保存します ) # pvdisplay ( 実行結果抜粋 ) PV UUID njgc2s-bxrg-wivn-n1fy-z6a8-3ll2-gw63po 13
1.4 レスキューブート Binary Disc 1 を用いて レスキューモードで起動します SMS の設定にて 使用する CD-ROM ドライブをブート順序の 1 番目に設定し CD-ROM をドライブにセットして電源を入れます boot: プロンプトが表示されたら linux rescue と入力し レスキューモードで起動します boot: linux rescue RHEL5 までは kernel 起動オプションに mpath を指定する必要がありましたが RHEL6 からは mpath を指定しなくても Device Mapper Multipath ドライバーがロードされるようになったため 指定する必要はありません Choose a Language では English を選び Setup Networking では Yes を選び IP アドレスを入力します Rescue ( パーティションの自動マウント ) ではマウントしないように Skip を選択します First Aid Kit quickstart menu では shell Start shell を選択します 外部 Storage に接続している場合は ケーブルを外してから起動します ディスク認識順序の変更や 不要なエラーメッセージ表示を防ぎます 14
1.5 バックアップの準備 バックアップを取得できるよう VG をアクティブ状態変更します VG 情報を認識させます # lvm vgscan ( 実行結果抜粋 ) Found volume group "VolGroup00" using metadata type lvm2 VG をアクティブ状態にします # lvm vgchange a y VolGroup00 ( 実行結果抜粋 ) 2 logical volume(s) in volume group "VolGroup00" now active 全てのLVがアクティブであることを確認します # lvm lvdisplay ( 実行結果抜粋 ) LV Status available 再度 NFS マウントします # mkdir /nfs; mount t nfs 192.168.2.141:/nfsexport /nfs 15
1.6 バックアップ バックアップを取得し NFS マウントディレクトリへ書き出します dump コマンドにより ルートパーティションのバックアップを取得します # dump b32 f /nfs/logvol00.dump /dev/volgroup00/logvol00 続いてブートパーティションのバックアップを取得します # dump b32 f /nfs/sda2.dump /dev/sda2 レスキューモードを終了し 再起動します # exit First Aid Kit quickstart menu に戻るので reboot Reboot を選択し OK を押します NFS サーバー側の空き容量に注意して実施します dump コマンドは ファイスシステムが ext2 ext3 もしくは ext4 の場合しか使用できませんのでご注意ください 別のファイルシステムである場合は次の手順を参考に tar コマンドを使用します 16
dump コマンドが使用できない場合 tar コマンドによりバックアップを取得します バックアップ対象のルートパーティションをマウントします # mkdir /mnt/sysimages # mount /dev/volgroup00/logvol00 /mnt/sysimages tar コマンドにより パーティションのバックアップを取得します # cd /mnt/sysimages # tar cvzf/nfs/logvol00.tar.gz. 続いてブートパーティションについて行います # mount /dev/sda2 /mnt/sysimages/boot # cd /mnt/sysimages/boot # tar cvzf /nfs/sda2.tar.gz. レスキューモードを終了し 再起動します # exit First Aid Kit quickstart menu に戻るので reboot Reboot を選択し OK を押します 17
1.7 NFS export の停止 NFS サーバーにて設定したエクスポートを停止します ( 当作業は hostnfs の作業です ) 当ガイドの手順でエクスポートしたディレクトリは あらゆるサーバーからの root ユーザー権限による NFS マウントを許可されています 作業終了後 NFS サーバーを停止しエクスポートを停止します # service nfs stop # service nfs status NFS 設定ファイルを編集し 追加したエクスポート設定行を削除します # vi /etc/exports バックアップしたファイルを必要に応じてコピー等 保管します 18
2. リストア 19
リストアの流れ リストア先の LUN がバックアップ時と同一の場合と 異なる場合で一部手順が違います バックアップ時と同一 LUN へリストアする場合 作業項目 hostsvr 作業 hostnfs 作業 バックアップ時と異なる LUN へリストアする場合 2.1 レスキューブート NFS export の開始と mount 2.2 パーティション復元 - 2.3 LVM 構成情報復元 - 2.4 パーティションフォーマット - 2.5 リストア - 2.6 スワップ領域作成 - 2.7 UUID の修正 - 2.8 ブートローダー書き込み ( バックアップ時と同一 LUN へリストアする場合 ) 2.9 LUN wwid の変更とブートローダーの書き込み ( バックアップ時と異なる LUN へリストアする場合 ) - 2.10 システム再起動 稼動確認 - 2.11 NFS export の停止 - 20
2.1 レスキューブート NFS export の開始と mount バックアップ時と同様の手順でレスキューブートし NFS 環境を構築します ( 当作業は手順の通り hostsvr, hostnfs それぞれにて実施します ) 詳細はバックアップ手順の 1.4 レスキューブート 1.1 NFS export 1.2 NFS mount を参照し 順番に実施します 尚 エクスポートするディレクトリはバックアップファイルを取得し 保管しているディレクトリです 21
2.2 パーティション復元 バックアップ時に収集した情報より パーティションを復元します ( 当作業から 2.10 までは hostsvr の作業です ) sfdisk コマンドにて事前に保存したファイルからパーティション情報を復元します # sfdisk /dev/sda < /nfs/sfdisk.sda.txt sfdisk コマンド実行時に Warning メッセージが表示されてパーティション情報を設定できない場合等は オプション --force を指定して再実行します 復元されたことを確認します sfdisk コマンドの出力結果 ( ディスク上のパーティションテーブル情報 ) が ファイルの内容と同じであることを確認します # sfdisk d /dev/sda # cat /nfs/sfdisk.sda.txt パーティション情報の変更が kernel に認識されていることを確認します 認識されていない場合は 1.4 レスキューブート 1.2 NFS mount に従い再起動 及び NFS マウントします # cat /proc/partitions ( 再起動する場合は # exit) 22
2.3 LVM 構成情報復元 バックアップ時に収集した情報より LVM 情報を復元します LVM 構成情報を初期化します # lvm vgscan PV を作成します 作成コマンドの引数に バックアップ時に記録した PV の UUID を指定します (UUID は LVM 情報バックアップファイルにも記載されており 値が一致しないとエラーになり作成できませんので 注意して入力してください ) # lvm pvcreate ff restorefile /nfs/volgroup00.txt uuid QrAE85-BgVW-DpWgeKRE-07Fe-9VdO-ucxZ2d /dev/sda3 ( コマンドは 1 行で入力してください ) ( 実行結果抜粋 ) Physical volume "/dev/sda3" successfully created 下記のようなメッセージが表示されたら y を入力して進めます Really INITIALIZE physical volume /dev/sda3 of volume group VolGroup00 [y/n]? y 23
VG 情報を復元します # lvm vgcfgrestore -f /nfs/volgroup00.txt VolGroup00 ( 実行結果抜粋 ) Restored volume group VolGroup00 24
2.4 パーティションのフォーマット LV 及び非 LV のパーティションをフォーマットします VG が使用可能となるよう VG をアクティブ状態にします # lvm vgchange a y VolGroup00 ( 実行結果 ) 2 logical volume(s) in volume group "VolGroup00" now active 各 LV がアクティブであることを確認します # lvm lvdisplay ( 実行結果抜粋 ) LV Status available ルートパーティション ブートパーティションを ext4 ファイルシステムとしてフォーマットします # mke2fs j t ext4 /dev/volgroup00/logvol00 # mke2fs j t ext4 /dev/sda2 25
2.5 リストア リストア対象パーティションをマウントし リストアを行います 作業用に一時的なマウントポイントとなるディレクトリを作成し リストア先のルートパーティションをマウントします # mkdir /mnt/sysimages # mount /dev/volgroup00/logvol00 /mnt/sysimages restore コマンドにてファイルからバックアップデータを展開します # cd /mnt/sysimages # restore rf /nfs/logvol00.dump ブートパーティションについても同様にバックアップデータを展開します # mount /dev/sda2 /mnt/sysimages/boot # cd /mnt/sysimages/boot # restore rf /nfs/sda2.dump 尚 restore コマンドにより restoresymtable ファイルが作成されますが 削除してかまいません 26
tar コマンドにてバックアップを取得した場合は tar コマンドによりリストアします 前述のリストア手順における restore コマンドの変わりに tar コマンドにてバックアップデータを展開します # tar xpzvf /nfs/logvol00.tar.gz # tar xpvzf /nfs/sda2.tar.gz 27
2.6 スワップ領域作成 LVM 情報の復元手順で復元したスワップパーティションにおいて スワップ領域を作成します スワップ領域を作成します # mkswap /dev/volgroup00/logvol01 ( 実行結果 ) Setting up swapspace version 1, size = 2080309 kb 28
2.7 UUID の修正 パーティションを再作成すると UUID が変更されるため 新しい値に変更します blkid コマンドで各パーティションの UUID を確認します # blkid /dev/loop0: TYPE="squashfs" /dev/sda2: UUID="b88d6e4e-6074-4e63-b0b4-34d810df9c1d" TYPE="ext4" /dev/sda3: UUID="QrAE85-BgVW-DpWg-eKRE-07Fe-9VdO-ucxZ2d" TYPE="LVM2_member" /dev/sdb2: UUID="b88d6e4e-6074-4e63-b0b4-34d810df9c1d" TYPE="ext4" /dev/sdb3: UUID="QrAE85-BgVW-DpWg-eKRE-07Fe-9VdO-ucxZ2d" TYPE="LVM2_member" /mnt/sysimages/etc/fstab ファイルにある各パーティションの UUID を新しい値に変更します ( 修正箇所抜粋 ) UUID=b88d6e4e-6074-4e63-b0b4-34d810df9c1d /boot ext4 defaults 1 2 29
2.8 ブートローダー書き込み ( バックアップ時と同一 LUN へリストアする場合 ) ブートローダー yaboot をハードディスクに書き込みます この作業は バックアップ時と同一の LUN へリストアする場合におこないます 作業が終了したら 2.10 システム再起動 稼動確認 へ進みます LUN を再作成した場合等 新しい LUN へリストアする場合は この項を実施せず 2.9 LUN wwid の変更とブートローダーの書き込み へ進みます リストア ( 展開 ) したルートファイルシステムに chroot します # chroot /mnt/sysimages /proc, /sys, /dev ファイルシステムをマウントします # mount /proc # mount t sysfs none /sys # mount o mode=0755 t tmpfs none /dev # /sbin/start_udev ブートローダーを PReP Boot に書き込みます 書き込む前に /boot ファイルシステムがマウントされている ( ファイルが存在する ) ことを確認し また /etc/mtab ファイルを /proc/mounts ファイルにより更新します # ls al /boot # cp /proc/mounts /etc/mtab # mkofboot b /dev/sda1 下記のようなメッセージが表示されたら y を入力して進めます mkofboot: Overwrite contents of /dev/sda1 with /usr/lib/yaboot/yaboot? [y/n] 30
2.9 LUN wwid の変更とブートローダーの書き込み ( バックアップ時と異なる LUN へリストアする場合 ) multipath の設定をおこないます この設定は LUN を再作成した場合等 新しい LUN へリストアする場合におこないます scsi_id コマンドで LUN の wwid を確認して バックアップ時のものと異なる場合は bindings ファイルを編集します # /mnt/sysimages/sbin/scsi_id g u -device=/dev/sda 3600a0b80001192d40000c9444a80a016 # vi /mnt/sysimages/etc/multipath/wwids ( 調べた新しい LUN の wwid に変更 ) /3600a0b80001192d40000c9444a80a016/ multipath.conf も同様に修正します blacklist_exceptions 欄と multipaths 欄の 2 箇所が該当しますので 2 箇所とも新しい wwid に変更します # vi /mnt/sysimages/etc/multipath.conf (2 箇所を調べた wwid に変更 ) wwid "3600a0b80001192d40000c9444a80a016" 31
initrd の再作成をおこないます multipathd サービスを起動させるため 再起動し 再びレスキューブートします レスキューブート手順は バックアップ手順の 1.4 レスキューブート を参照します 尚 この項を実施する場合 Rescue ( パーティションの自動マウント ) では Skip ではなく Continue を選択します # exit( レスキューモードを終えて再起動し その後レスキューブートしてください ) リストア ( 展開 ) したルートファイルシステムに chroot します # chroot /mnt/sysimage initrd の再作成をおこないます (kernel バージョンが異なる場合は注意します ) # mkinitrd f /boot/initramfs-2.6.32-71.el6.ppc64.img 2.6.32-71.el6.ppc64 32
ブートローダー yaboot をハードディスクに書き込みます ブートローダーを PReP Boot に書き込みます 書き込む前に /boot ファイルシステムがマウントされている ( ファイルが存在する ) ことを確認し また /etc/mtab ファイルを /proc/mounts ファイルにより更新します # ls al /boot # cp /proc/mounts /etc/mtab # mkofboot b /dev/sda1 下記のようなメッセージが表示されたら y を入力して進めます mkofboot: Overwrite contents of /dev/sda1 with /usr/lib/yaboot/yaboot? [y/n] 33
2.10 システム再起動 稼動確認 システム再起動前に再度パーティションのラベル情報の整合性を確認します ファイルシステムのラベルを使っている場合は /etc/fstab ファイルに記載の LABEL 情報と e2label コマンドの出力結果が一致していることを確認します 不整合があると起動できなくなる場合もあるので慎重に確認します # cat /etc/fstab システムを再起動します # exit # exit First Aid Kit quickstart menu に戻るので reboot Reboot を選択し OK を押します 再起動後に自動的にもう一度 再起動がおこなわれる事があります 再起動後 システムが正常に稼動していることを確認します 正しくログインできること システムログに異常なメッセージが出ていないこと 使用するサービスやアプリケーションが正常に稼動すること 34
2.11 NFS export の停止 NFS サーバーにて設定したエクスポートを停止します ( 当作業は hostnfs の作業です ) 1.7 NFS export の停止 を参照し実施します 35
< 補足情報 > Service and productivity tools 導入時考慮事項 バックアップ元とは異なる新しい LPAR へリストアする際 バックアップ元の OS 環境に予め Service and productivity tools を導入している場合は 以下の追加作業の実施が必要です recfgct コマンドにより ct_node_id (/etc/ct_node_id ファイル ) を再作成し LPAR を再起動してください この操作により HMC や IVM との通信が正しく実施できるようになります コマンド実行例 : /usr/sbin/rsct/install/bin/recfgct ct_node_id の再作成は 作業前後で /etc/ct_node_id ファイルが変更されている事にて確認できます 36
参考資料 37
参考資料 Linux for Power Systems RHEL6.0 導入ガイド - VIOS 冗長化環境マルチパス編 - http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-002de0d6 Linux for Power Systems RHEL5.3 導入ガイド - VIOS 冗長化環境マルチパス編 http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-0029532e 38 Rescue モードを使用した Red Hat Enterprise Linux 5 for Power のシステムバックアップガイド - VIOS 冗長化環境マルチパス編 http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-003295b2 Linux for Power Systems RHEL5.2 導入ガイド http://www.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-003bae17 Linux for Power Systems PowerVM Lx86 1.3 導入ガイド http://www.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-0033f8d6 Red Hat 製品ドキュメント http://docs.redhat.com/docs/ja-jp/ Linux for Power Systems のご紹介 http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-0017ddfa 世界の Linux for Power Systems ユーザーコミュニティ http://www.ibm.com/developerworks/wikis/display/linuxp/home IBM Linux 技術情報サイト http://www.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-page-top