2008年5月15日木曜日

VMware Serverへの Sarge移行および時刻同期

とある場所にて、 Windows Server 2003 に Sarge の仮想マシンを移行した。


移行対象の仮想マシンはこれまで colinux 上で動作していたものです。元々は VMware Workstation 上で作成した仮想マシンを colinux 用に変換したものでしたので、以下の手順で再度 VMware 用に変換できました。


VMware で仮想マシンを動作させる際に注意が必要な点としては 2.6 カーネルをゲストに使用すると時刻が進んでしまったり、遅れてしまったりする現象があります(このあたりはcoLinuxやXenなど、ハードウェアエミュレーションではなく準仮想化的アプローチのほうがホストとの時刻同期は正確です)。この問題については、もちろんハードウェア構成やホスト OS 構成、使用する Linux カーネルなどの条件がからむため一概には言えないようですが、 Linux カーネル時のオプション指定(※1)と VMware Tools に含まれる vmware-guestd の時刻同期機能(※2)の設定を行ったところ、今回のケースでは他のシステムと最大でも2~3秒程度のズレの範囲で維持できるようになりました(実際のところ、先走ったり遅れたりはしています...)。


nosmp noapic nolapic clock=pit    … (※1)
tools.syncTime = "TRUE"           … (※2)




【作業概要】

  • 適当な Linux ベースの仮想マシン(以後作業用VM)に、マイグレーション先の仮想ハードディスクを設定

  • 作業用VMを起動

  • 作業用VMでマシン上にファイルシステムを作成

# fdisk /dev/sdb
  ※パーティーション sdb1 (Linux), sdb2 (Linux swap) を設定
# mkfs.ext3 /dev/sdb1
# mkswap /dev/sdb2
# mkdir /mnt/new_image
# mount /dev/sdb1 /mnt/new_image

  • 作業用VMから Windows Server 2003 上の仮想マシンイメージをマウント

# mkdir /mnt/foo /mnt/orig_image
# mount -t msdos -o username=administrator //ws2003/foo /mnt/foo
# mount -o ro,loop /mnt/foo/hoge.ext3 /mnt/orig_image

  • 作業用VMにて、仮想マシンのイメージを新しいディスクイメージにコピー

# cd /mnt/orig_image; tar cf - * | tar xvf - -C /mnt/new_image

  • fstab, grub.lst などの設定見直し

GRUB起動パラメータ (Linux 2.6カーネルの時刻ズレ対策)
  kernel          /boot/vmlinuz-2.6.8-2-386 root=/dev/sda1 ro (続)
                               nosmp noapic nolapic clock=pit

  • 作業用VMからディスクイメージをアンマウントし、新しいVMにマウント

  • GRUB ISOイメージで起動し、ブートローダをインストール

  • VM起動確認

  • VMware Toolsのインストール

  • VM の .vmx ファイルに以下の設定を追加(変更)

tools.syncTime = "TRUE"

0 件のコメント:

コメントを投稿