夏の節電に向けてLinux物理サーバーを直接仮想化する

政府が電気の大口需要者に対して夏のピーク時の電力使用量を前年比25%減らすように言われているようで、うちの会社でも、サーバーの消費電力削減という話がありました。

そこで複数台のサーバーを1つの仮想サーバーにまとめると結構いい節電対策になりますのでやってみます。
移行時に1からインストールして、環境を復元しても出来ますがかなり手間です。
ということで、P2Vします。物理サーバーを直接仮想化することをP2Vとか言ったりします。
VMware vSphere Hypervisor(ESXi)とVMware vCenter Converter Standalone 4.3の環境でLinuxサーバー(CentOS5)をP2Vしてみます。

注意点としてLinux LVMで構成されている物理サーバーをConverterを利用してP2Vすると、問答無用に非LVMなパーティションに変換されてしまいます。

LVMをパーティションサイズの拡大を後から行えるようにという要件で設定している場合があると思いますが、オンラインでのサイズ拡大にこだわらなければ、LVMでなくてもGpartedなどのフリーなパーティション操作ツールを使ってオフラインで拡大すれば良いという判断も出来ます。
ハードディスクがESXiによって仮想化されているので、複数のディスクを束ねて一つにまとめられるというLVMの利点は薄れていますね。直接仮想ディスク(vmdkファイル)の容量を拡大してしまえるので、仮想ディスクの容量を拡大したあとにオフラインでGPartedでパーティション拡大してしまえます。
極力サーバを運用したまま容量を増やしたい要件がある場合は、この手順ではなく、Mondo Rescueなどを使って一旦ディスクイメージのバックアップを取ってから、仮想マシンへリストアしてLVMを維持するなどの方法を検討したほうが良いです。またLVMのスナップショットが必要という要件もあるかもしれませんが、同様ですね。。

必要なもの

  • ESXiサーバー

あらかじめESXiを導入しておきます

  • VMWareConverter4.3を導入した別WindowsPC

ConverterはVMWare社からダウンロードします info
注意点として、VMWareConverter 4.3へ4.0.xからアップグレードインストールすると、LinuxのHotP2Vが動かない問題があります(LinuxソースをConverterで指定すると[ライブ Linux ソース マシンをクエリできません]というエラーメッセージが出て先に進めない)。必ず4.0.xをアンインストールしてから4.3を新規インストールします。 デスクトップ、アプリケーション、データセンター仮想化のための VMware のサポートとダウンロード

変換を行っているときに、ヘルパーサーバーというのが裏で起動するらしいです。おそらくそれが利用するものです。DHCP環境なら意識する必要はありませんが、そうでないときはIPアドレスサブネットマスクデフォルトゲートウェイアドレスの指定が必要です

  • 変換対象の物理サーバー(今回はCentOS5)

サポートされるゲストOS(デスクトップ、アプリケーション、データセンター仮想化のための VMware のサポートとダウンロード )に直接の記載はありませんがRedHatがサポート対象なので、良しとしています。

  • ゲストOSへRootユーザーでSSH接続して変換処理を行うので、
    • rootアカウントのパスワード
    • SSHの設定を変更してrootログイン許可する(/etc/ssh/sshd_config のPermitRootLogin yes)
  • 必要なら移行用にもう一つのIPアドレス

移行元サーバーと移行先を並行運用する場合に必要に応じて用意します

作業手順

VMware Converterを適当なWindowsPCに導入します
移行元サーバーの前準備
  • 移行元CentOSで外部から更新が起きないようにhttpdNFSなどのサービスを停止します。また、可能な限りサービスを停止させます
    • 特にデータベースはとめておいたほうが良いです。
    • ただし、移行時に必須なのでSSHは停止しません
  • SSHでrootユーザのログインを許可する
#vi /etc/ssh/sshd_config
    • SSHを再起動させる
#service sshd restart
Converterで変換する
  • マシンの変換をクリック


  • まずソース(変換元)のIPアドレスやrootアカウント情報を入力する


  • 次にターゲット(ESXi)のIPアドレスやアカウント情報を入力する



  • 仮想マシンのファイルを格納するデータストアを指定する


  • オプションの画面で大事な設定が2つあります
    • 仮想ディスクファイルの容量をあらかじめ確保しないようにする(フラット→シンにする)。詳細のリンクをクリックして、タイプを「シン」にする。フラットのばあい、100GBの仮想ディスクを作った時点でデータストアの容量を100GB消費しますが、シン(シンプロビジョニング)にすると、実際にファイルとして使用した容量が消費されます。


    • もう一つがヘルパーVMネットワークの設定。この設定を間違えると変換タスクが1%から先に進まなかったりします。。


  • 内容を確認して終了をクリックする。変換作業が始まる。


  • しばらく待つと仮想化されます。

CentOS5の開発機(HDD使用量47GB)が1時間40分で仮想化されました。

以上で終わりです。
Converterのアップグレードインストールの件と、ヘルパーVMの設定に気づかなくて多少時間をロスしてしまいましたが、それ以外はすんなりと変換できてよかったですよ。