[自鯖] 新規サーバーへ移行しました(移行内容詳細) [緊急避難]

移行内容の詳細手順をこちらに記述します。

移行内容詳細

1. ハードウェアを準備する

ハードウェア準備に辺り、障害発生を認識してから、実際にハードウェアを購入している部分まで、togetter しているので、詳しくはこちらを参照ください。

Express5800/GT110b を選択した決め手は次の通りです。括弧内は対応する要求事項です。

  1. ディスクが最大で5個つめる (要求事項2)
  2. ESXi の稼働保証付き (要求事項3)
  3. 短納期(1週間以内)であったこと (要求事項4)
  4. ネット注文可能な新品で最安値 (要求事項5)

2. 仮想化ソフトウェアを準備する

仮想化ソフトウェアは、ESXi 4.1 (VMware vSphere HyperVisor)を選択しました。
これを download して、CDに焼き、導入手順書を iPad へダウンロードして i文庫HDで読めるように準備しました。

尚、ESXiを選択した理由は次の通りです。括弧内は対応する要求事項

  1. VMware社が準備したP2V移行ツールがある (要求事項1)
  2. VMware Server の運用経験がある
  3. 会社の業務で、VMwareを主に利用している
  4. 実績が高い

3. 仮想化ソフトウェアを導入する

VMware vSphere HyperVisor の導入はバカみたいに簡単です。

  1. ESXi 4.1 の CDメディアをドライブの挿入して起動する
  2. 「ようこそ」の画面で Enter
  3. エンドユーザー使用許諾で F11
  4. ディスク選択画面で導入先の HDD を選択
  5. F11 キーを押すとファイルの展開が開始
  6. CDメディアを抜いて再起動

以上です。

我が家で引っかかった注意点は以下の通り。

  1. 導入HDDを含むすべてのHDDは、デフォルトでブロックサイズが1MBに構成される。
    ※ 構成可能なディスク領域の最大値が256GBの制限となる

我が家では、次のように対策を実施しました。

  1. 移行してくるサーバーは、導入ディスクとは別のHDDを準備していた。そのため、一度ストレージを削除して、再作成するときにブロックサイズを 4MBへ構成。1TBまでのディスク領域を作成可能としました

4. P2V 移行を実施する

VMware vCenter Converterを利用して、現行 Debian(etch) サーバーから ESXi 上へ移行しました。
導入手順書が完備されていますので、基本的にこちらにあわせて導入・移行が簡単にできます。

Linux のホットクローン作成をそのまま実施しています。
この場合の注意点は次だけです。

  1. sshで 1) rootログイン 2) パスワード認証 の 2点を可能にしておくこと

個人的に気になった点

  1. 移行先のパーティションのサイズを変更できるのは便利
  2. VMFSへの移行で、ファイルシステムがext3へ。(元々はxfsでした)
  3. Linux の移行だと、ブロック転送ではなくファイル転送方式

5. 仮想化環境で稼働するように調整する。

必要な作業は次の通りです。

  1. Knoppix など VMware環境でも起動できる CD Linux で CDブートさせる
  2. /etc/fstab を新しいデバイス名へ変更する。なお、ラベルも移行されなかったので、ラベルになっている部分もデバイス名へ変更する必要がありました。
  3. 移行先のハードウェアデバイスにあわせて Kernel の再構築を実施する。/dev まわりとかのマウントが必要になります。
    SCSIデバイス:LSI Logic (FUSION MPT) や Ethernet:PCnet32 (もしくは e1000) をこれまで使っていないカーネルであれば、これらを含めてカーネルの再構築が必要です。
  4. udev を利用している場合、eth0 などの NWデバイスは MACアドレスと関連づけられてしまうために、元々の NIC 構成が反映されません
    そのため、元々のデバイス名を再利用したければ、/etc/udev/rules.d/z25_persistent-net.rulesの内容を置き換えるが良いです。

udev で、eth0 が以前のMACアドレスと引っかかって、ネットワークが全然up してくれなかった部分が、一番難儀しました。

6. データファイルを同期する

そろそろ佳境です。移行するタイミングの最終段階です。二つのサーバのデータファイルを同期します。
同期ポリシーは次の通りとしました。

  • 更新の可能性があったユーザーデータのみを同期する。
  • /var や、/tmp、/etc 配下は放置。新しいものをそのまま受け入れる。

手順は、データを更新するサービス(daemon)をすべて停止し、rsync をするだけです。

  1. 新しいサーバを、古いサーバとは異なる IPアドレスにしておいて起動します。
  2. 新旧両方のサーバで、エンドユーザー向けに解放しているサービスの全停止。
    我が家では 1)apache 2)samba 3)ftp などでした。
  3. 新旧両方のサーバで、データベースサービスの全停止
    我が家では 1)PostgreSQL 2)MySQL でした。
  4. rsync で同期。古いサーバからrsync -vaH –delete <古いサーバ> <新しいサーバ> でいきます。
    我が家では、次のコマンドを打った気がしますw

    rsync -vaH –delete xxxx:/home/ root@xxxx:/home/
    rsync -vaH –delete xxxx:/usr/data/ root@xxxx:/usr/data/

7. サーバーを切り替え

最終手順です。ここまで来たら、もう運を天に任せる必要もありません。
IPアドレスを切り替えて、再起動しましょう。

  1. 古いサーバのネットワークを停止するか、shutdown をします。
    我が家のケースでは、x.x.x.10 → x.x.x.210 にして、動かしたままにしてます。
  2. 新しいサーバのIPアドレスを古いサーバのIPアドレスと同じにして再起動

お疲れ様でした^^

“[自鯖] 新規サーバーへ移行しました(移行内容詳細) [緊急避難]” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です