hachiNote

勉強したことをメモします。

CentOSサーバを新しいサーバ機器に移行するメモ

目的

自宅サーバのハードがとてもとても古くなってきたので、新しいPCへ移行させます。そのときの作業のメモです。
個々の作業の一部については別記事にします。

環境やデータは基本的にそのまま、OSは CentOS 5.3 から CentOS 5.5 へマイナーバージョンアップします。HDDはSATAが2台で、LinuxソフトウェアRAID機能を使ってRAID1(ミラーリング)を組みます。

手順概略

自分の環境では、Webのデータもメールのデータも全部/homeに入れる構成にしてたので、/homeの移行がメインになります。

  • CentOS 5.5 のインストールDVDを作成する(id:hachiilcane:20110224:1298559508)
  • 新しいPCにCentOS 5.5をインストールする
    • インストールの最初のほうに出てくるGUIを使ってソフトウェアRAIDの設定をする
    • インストールするソフトは割と適当。gccとかの開発系はいれておいたほうがあとあと便利
  • 再起動後の初期設定を行う
    • 「システムクロックで UTC を使用」のチェックをはずすことを忘れない。チェックしたままだと時間が日本時間じゃなくなってしまう
    • 古いPCからユーザ情報も引っ張ってくるので、ここでユーザを作る必要はない。rootアカウントされあればOK
  • 古いPCから /etc 配下をtarで新しいPCに持ってくる
    • まるっと上書きするととんでもないことが起きそうなので、必要なものだけコピーする
    • サーバの設定ファイル系とかは、バージョンアップにともなって微妙にファイルの記述が変わっていたりするので、ファイルの中身を見ながら丁寧に必要な記述だけをコピーする
    • /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow をコピーすればユーザアカウント・パスワードをそのまま引き継げるようです。ただしファイルごと上書きは危険なので、自分で追加したユーザとグループだけ行コピーが無難
    • LinuxGUIで使えるdiffツールを使うと結構楽です。Meldというのがあるみたいです
  • 古いPCから /home 配下をtarでまるっと新しいPCに持ってくる
  • /homeのtarを展開して上書き(インストール時にユーザを追加しなかったから、もともと/home配下はほぼ空の状態なのでまるっといける)
  • /usr/local 配下で、手動で何か入れたものがあればコピーする。自分の場合はDynamicDNSの通知用ツールが入っていた。コンパイルしてインストールした普通のツールみたいなものはコピーじゃなくてちゃんと入れなおしたほうがいいと思う
  • 使用する予定のサービスが正しく動作するか確認する(iptables, httpd, sshd, postfix, dovecotなど)
    • ここでじっくり確認しよう
  • 問題ないことが確認できたら、いよいよ本格移行。古いPCの postfix, dovecot, httpd を停止させる
  • 古いPCのIPアドレスを公開用のIPアドレスから別のもの(ルータの設定による)に変え、外部からアクセスできないようにする
  • 新しいPCの /home 配下をすべて削除
  • 古いPCの /home 配下を改めてtarに固めて、新しいPCに展開
  • 新しいPCを再起動
  • 必要なサービスが自動で起動しているかチェック。特にDynamicDNS向けのIPアドレス通知ツールが動作しているかを忘れずに
  • 新しいPCのIPアドレスを公開用のIPアドレスに変更。外部公開する
  • 外部回線を使って外から新しいサーバにアクセスしてテストする。スマートフォンとかあると便利
  • 古いサーバに残ってるその他の雑多なデータ(/root配下とか)をゆっくり移動させれば移行完了!