Linux サーバーの引越し

  • 投稿者:  
  • 表示回数 2,409
木下です。

「Linux サーバーの引越し」について書いてみようと思います。

(予告では「debian サーバーの引越し」としていましたが)

純粋に技術的な内容なので読んでも判らない人の方が多いと思いますが
私の備忘録も兼ねて(^^

 

4,5年前にサーバーを交換し引越ししたときは
http://www.acronis.co.jp/homecomputing/products/trueimage/ を使って
40GB のHDDから250GBのHDDに 丸ごとコピー
それを新しいサーバーに取り付けて電源を入れるだけで引越しできたのですが・・・

今回は駄目でした。

これまでのバージョンの debian は /boot/grub/menu.lst に
kernel        /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda1 ro quiet
のように
カーネルの位置を、起動時にHDDが認識された順を元にしたデバイス番号
によって指定されていました。

しかし、最近のバージョンでは
kernel        /boot/vmlinuz-2.6.26-2-amd64 root=UUID=47fc537e-db06-418b-87d0-1ccc61efde62 ro quiet
のように
カーネルの位置を、「UUID」(universally unique identifier)という機器固有のIDで表現しています。

その為HDDをコピーして入れ替えると、このUUIDが一致しないのでカーネルの位置が確認できない為
OSの選択画面までは出るけれど、それ以降はエラーになって起動できない。
という事態になります。

ということで、
HDDをコピーした後で両方接続されている状態で*元のHDD*から起動(このときLANケーブルは外しておく)
#mkdir /mnt2
#mount -t ext3 /dev/sdb1 /mnt2

とした上で
#blkid
により新しいHDDのUUIDを確認し、
/mnt2/boot/grub/grub.cfg
/mnt2/etc/fstab
/mnt2/etc/uswsusp.conf
/mnt2/etc/initramfs-tools/conf.d/resume
のUUIDをそれぞれ変更。
shutdown して新しいHDDを新しいサーバーに取り付け電源投入。
途中で、
Could not stat the resume device file. Reason: No such file or directory
とエラーが発生してとまるかも知れませんが Enterを押すと進むことができるのでそのまま起動。

起動できたら root でログインして
#update-initramfs -u -t -k $(uname -r)
としramディスクの内容を初期化することでエラーが出なくなる。

また
/etc/udev/rules.d/70-persistent-net.rules
に以前のサーバーのNICと新たなサーバーのNICが登録されていて
新しいサーバーのNICが eth1 として認識されてしまいnetにつながらない場合
古いNICを識別している行をコメントにして 新しいNICに該当する行の NAME="eth1"
を NAME="eth0" と 書き換える。

以上で、リブートすればメールボックスや各種設定も全て以前と同じまま
サーバーの引越しをすることが出来る筈です。(こちらでは出来ました。)

ということで、これまで3GB だったRAMが4GBになり
32bitモードで動作していたMySQLが64bitモードになり
250GBのHDDが1TBになり
CPUのコアが2から4に増え
全体的に300%に速度アップ。
消費電力が下がっているのでCPUの温度、マザーボードの温度ともに
殆ど上昇していない。
これで今年は暑い夏になってもサーバーの熱暴走を心配しなくても良くなりそうです。

ちなみに、置き換えた新しいサーバーはちょっと前のモデルの
普通のパソコンの新古品を買ったので3万円でした。

(もう少し出せば最新のモデルも買えそうですがあまり新しすぎるとOSが認識してくれないこともあるので)