旧サーバDL320G6 CentOS5.5を新サーバDL380G7 ESXi 6.0U1に統合した。
vConverterが使えれば楽なんだけど、RAID構成から分析エラーで動かなかったので、手動でできる限りダウンタイムを減らしつつP2Vを実施。
※お名前VPSとかに持ってくにも概ねこの手順でOK
まずは、新マシン(VM)に踏み台環境を作成。
旧環境に近いVMを作れればあとの作業が楽になるので諸々調べる。 BIOSかEFIか、起動デバイスの種類、パーティション構成等に注意。
今回はBIOSモード、起動デバイスはccissだった。
起動モードをBIOSにして起動デバイスはCCISSは無いのでLSI SASで構成、インストーライメージからCentOSを導入。
インストーラはバージョンによってはブランクディスクを勝手にGPTに設定しようとするので、インストーラの最初でCtrl+Alt+F2でコンソールに落ちて、
1 2 3 |
parted /dev/sda mklabel msdos quit |
して、ラベルだけ先に書き込んでおく。 戻るのはAlt+F6。
あとはパーティションを切ってBasic serverで導入した。
インストール完了して起動したら、setenforce 0を実行、rsyncで旧環境のコピーを行う。
1 |
rsync -av --progress --exclude /dev/ --exclude /proc/ --exclude /sys/ --exclude /var/run/ --exclude /var/lock/ --exclude fstab --block-size=4096 -e ssh oldhost:/ / |
※ –exclude /mnt/ –exclude /boot/ 必要に応じて追加
※ カーネルやパッケージの状態が大きく異なる場合には、–deleteを付与する
→動的ライブラリはパスを順番に探して一致する物を使うから、入っているバージョンと一致しないライブラリが紛れ込むと不整合を生じるため、deleteで削除する。
途中で停止するとOSインストールからやり直しになるので(システム不整合のため)、rsyncを叩く側はscreen等で開始しておいたほうがいい。
踏み台環境のcrondは必ず停止しておく(cron.dが書き換えられた時に動き出して、不整合状態で走るのを予防するため)
1.2TB程使っているマシンからGbE接続して24時間以上かかった。
完了後にもう1回実行して差分を出来るだけ減らす。
rsyncだとファイルだけしか更新されないから、grubを更新する。 rsyncが完了している状態なら旧環境の設定とカーネル類が全部入っているから、grub-installで大丈夫なはず。
1 |
grub-install --root-directory=/ /dev/sda |
あと、デバイス環境が変わっている場合はmkinitrdする。
1 |
mkinitrd -v initrd-vm.img 2.6.... |
完了したら再起動してやる。
再起動して諸々確認して大丈夫そうなら、シングルモードに落としてrsyncを再度かけて最後の同期を行う。
この時間だけはサービスダウンだが仕方ない・・・ 使ってるサービスごとに切り分けて作業すればもっとダウンタイムを減らせるけど今回は内部サーバなので夜間停止して実施(mysqlとかをレプリケーションにしてやって同期していけばかなり短縮できるがそこまでは必要ないし)
再起動時にgrub stage2で止まったり、kernel panicになるなら、インストールメディアで起動して、linux rescueに入って、grub-installやmkinitrdしなおす。
P2Vの統合により、騒音と諸費電力の減少ができて良い感じだ。
(915)