トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

VMware-server-2

  • 仮想PC
  • 1台のPCの中に複数環境
  • マルチコア・マルチCPU対応

関連文書

環境

サーバ環境

  • Intel Core2Quad 9550
  • 8G RAM
  • 500G SATA HDD
  • CentOS 5.2 x86_64
  • yum update
  • vmware-server-2.0.0
  • yumCentOS 5.3 に更新

クライアント環境

  • VMware-server の管理用
  • 画面表示のみ
  • Windows Vista
  • Windows XP SP2
  • IE7 + ActiveX
  • Firefox3 + プラグイン

ディレクトリ/ファイル構成

ディレクトリ 説明
/var/lib/vmware/Virutal Machines 仮想マシンの保存先
/var/log/vmware/ ログ保存先
/var/log/vmware/hostd.log
/var/log/vmware/webAccess
/etc/vmware 設定ファイル

参考サイト

Wizard Bible vol.49 (2009,12,13)

  • http://wizardbible.org/49/49.txt
  • vmware-vmx の .vmem ファイルが sparse なファイルと確認
  • vmware-vmx の挙動を strace で確認し、pwrite64 で .vmem ファイルの作成を確認
  • pwrite64 を LD_PRELOAD で hook して回避している。
  • 素晴らしい!

なんでこのファッキンVMwareはこんなに具合悪いのマダファッカ?

 .vmemファイルが断片化しているから

.vmemファイルはいつ書き込まれるの?

 vmware-vmxプロセスがマターリとメモリと同期させる。数日がかりで観察する

と徐々に大きくなることが確認できる

.vmemファイルの断片化を防ぐ方法は?

 起動直後にサスペンドさせ、ddでファイルをコピーして入れ替え、リジューム

するか、LD_PRELOADしてスパースファイル生成を阻止する(詳細は本文参照)

  • vmem の断片化を解消するとシステムの負荷が劇的に下がった。
  • vmem 断片化 10万 --> 50
  • linux 4 guest + windows 5 guest
  • load avg 10〜40 --> 2〜5 まで軽くなった。

vmware-vmx, vmware-hostd が頻繁に落ちる

Windows guest コピー時の SID 競合解消

Windows SID の変更(Guest OSをドメインに入れる場合)

Windowsをドメインに入れる場合 SID が重複していないことが条件となる。

OSを導入した後にsysprepを使用するのが一般的であるが、クローン作成時などで簡易にSIDを変更するツールとして「newsid.exe」がMicrosoftのサイトからダウンロードできるので利用する。

NewSID v4.10(新しいSIDを付与するツール)注サポート対象外

PsGetSid v1.43(SIDを確認するツール)

wsus での競合解消

net stop wuauserv
  • regedit 起動
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientId を削除
  • wuauserv 再開
net start wuauserv

VMware のポート

メモ

ゲストOS が FreeBSD でのシャットダウン

  • ゲストOS に FreeBSD を入れた場合に、VMwareでの「VMの停止」指示では完全に停止しない。
  • shutdown -h now がかかっている。
  • shutdown -p now をかけたい。
  • http://communities.vmware.com/thread/177675
  • ゲストOS の /etc/vmware-tools/tools.conf を編集
halt-command = "/sbin/shutdown -p now"
  • vmware-tools サービス再起動
# /usr/local/etc/vmware-tools.sh restart

vmware-tools インストール記録の消去

  • configure VM を実行
  • Advanced タブに切り替え
  • vmware.tools.installstate: none
  • vmware.tools.internalversion: -1
  • vmware.tools.lastInstallStatus: unknown
  • virtual machine を新規作成しないで再インストールする場合など
  • vmware-tools をインストールした記録が残ってインストールできない
  • インストール記録を仮想マシンから消去して vmware-tools をインストールできるようにする。

vmware-vmx を strace で観察

# strace -f -o /var/log/strace_vmware_vmx.log /usr/lib/vmware/bin/vmware-vmx -x -C /var/lib/vmware/Virtual\ Machines/CentOS32/CentOS32.vmx -@ \"\"
  • vmem 関連ログ
# cat /var/log/strace_vmware_vmx.log | grep -e '\.vmem' -e pwrite | grep -e 189, -e 189$
32268 open("/var/lib/vmware/Virtual Machines/CentOS32/564db761-2c2c-9ed1-8d6f-64261f7eb787.vmem.lck/E00805.lck", O_WRONLY|O_CREAT, 0644) = 189
32268 open("/var/lib/vmware/Virtual Machines/CentOS32/564db761-2c2c-9ed1-8d6f-64261f7eb787.vmem.lck", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 189
32268 open("/var/lib/vmware/Virtual Machines/CentOS32/564db761-2c2c-9ed1-8d6f-64261f7eb787.vmem", O_RDWR|O_CREAT, 0600) = 189
32268 pwrite(189, "\0", 1, 536870911)   = 1

nosparse.so 作成

  • 記事の環境
  • 今回の環境
  • インストールしたrpm
  • strace
  • kernel-headers
  • kernel-devel
  • gcc-c++
  • コンパイル
# g++ -Wall -fPIC -shared -o noparse.so nosparse.cpp -ldl
  • LD_PRELOAD が効かない。
  • 20100520 調査中
  • x86_64 だからか?

VMware 高負荷の検証

  • .vmem が断片化するので VMware の負荷が高くなるのか?
  • 再起動すると .vmem が再作成され、断片化が始まるか?

確認環境

項目 内容
VMware バージョン VMware-Server-2.0.2
OS CentOS-5.4
kernel 2.6.18-164.6.1.el5 x86_64

VMware 再起動前

  • 一部 .vmem 再編成済み
[root@amd64 nonaka]# date
Thu May 20 09:56:32 JST 2010
[root@amd64 nonaka]# /usr/sbin/filefrag /var/lib/vmware/Virtual\ Machines/*/*.vmem
/var/lib/vmware/Virtual Machines/CentOS64/564d3c0c-8f54-72a2-a55f-7997bf2cab0c.vmem: 24602 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/fbsd732/564d6d46-b120-b3c9-ebbd-24e0e3d21b39.vmem: 113976 extents found, perfection would be 10 extents
/var/lib/vmware/Virtual Machines/fbsd764/564da941-638e-54f5-539c-445b8e41c96d.vmem: 52844 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/fbsd832/fbsd832.vmem: 340 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/ubuntu/ubuntu.vmem: 61 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/win2kpro/win2kpro.vmem: 115 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/winhomesrv/winhomesrv.vmem: 266 extents found, perfection would be 19 extents
/var/lib/vmware/Virtual Machines/winvista/winvista.vmem: 420 extents found, perfection would be 10 extents
/var/lib/vmware/Virtual Machines/winxp/winxp.vmem: 31 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/ws2003/ws2003.vmem: 166 extents found, perfection would be 5 extents
[root@amd64 nonaka]# uptime
09:56:22 up 146 days,  6:57,  1 user,  load average: 1.25, 2.02, 2.17

再起動1時間経過

# /usr/sbin/filefrag /var/lib/vmware/Virtual\ Machines/*/*.vmem
/var/lib/vmware/Virtual Machines/CentOS32/564db761-2c2c-9ed1-8d6f-64261f7eb787.vmem: 5894 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/centos432/564dff47-c498-523d-fe78-86281ce502a3.vmem: 7593 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/CentOS64/564d3c0c-8f54-72a2-a55f-7997bf2cab0c.vmem: 3877 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/fbsd732/564d6d46-b120-b3c9-ebbd-24e0e3d21b39.vmem: 21477 extents found, perfection would be 10 extents
/var/lib/vmware/Virtual Machines/fbsd764/564da941-638e-54f5-539c-445b8e41c96d.vmem: 7268 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/fbsd832/564df285-62d7-19b7-e5da-8525489da0d3.vmem: 27019 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/fbsd864/564d6905-d974-9b43-9418-d33164ee3dd8.vmem: 1006 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/ubuntu/564d527e-794c-13cb-12c9-a3dbe822c2cd.vmem: 5124 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/win2kpro/564dcdeb-b040-5467-0608-88a73ccedb9d.vmem: 56342 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/winhomesrv/564d586d-a40f-f164-3373-6ae81bb3df80.vmem: 82488 extents found, perfection would be 19 extents
/var/lib/vmware/Virtual Machines/winvista/564dfa26-af32-2907-4a6c-3554a096b298.vmem: 36956 extents found, perfection would be 10 extents
/var/lib/vmware/Virtual Machines/winxp/564d8030-dc0f-74eb-cf81-9346dac589c8.vmem: 37815 extents found, perfection would be 5 extents
/var/lib/vmware/Virtual Machines/ws2003/564d4430-f3c6-7370-b934-e0973d93272b.vmem: 5393 extents found, perfection would be 5 extents
[root@amd64 nonaka]# uptime
10:56:38 up 18:51,  1 user,  load average: 8.93, 7.94, 7.31
  • VMware サーバを再起動すると、.vmem ファイルが再作成される。
  • .vmem ファイルの断片化がひどい

再起動後、1日程度経過

再起動後、ゲストサスペンド+vmem copy+replace

LD_PRELOAD pwrite パッチ + 再起動直後

  • 未検証

LD_PRELOAD pwrite パッチ + 再起動?日経過

  • 未検証

vmware-server が CentOS の更新後に安定しない

CentOS 5.4 glibc causes crash of VMWare vmware-hostd process in VMWare 2.0.0 and 2.0.1

CentOS 5.4 での glibc によって VMware の 2.0.0 と 2.0.1 で vmware-hostd が異常停止する

With upgrading to RHEL 5.4, CentOS 5.4 and Ubuntu 9.10, the latest 2.x.x versions of VMware Server are having serious Web Access GUI connection failures

(和訳)RHEL 5.4, CentOS 5.4, Ubuntu 9.10 へのアップグレードを行うと、VMware-Server の 2.x.x のバージョンでは Web での GUI 接続に深刻な問題が発生する。

  • vmware-vmx や vmware-hostd が 数分〜数日で signal 6 で停止していた
  • glibc-2.5-34.x86_64.rpm から /usr/lib/vmware/lib/libc.so.6/libc-2.5.so に配置
  • /usr/sbin/vmware-hostd 最後から3行目に追加
export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH
  • 安定稼働になった。

VMware server 2.0.2 and centos 5.5 - resolutions / centos.org newbb

export LD_LIBRARY_PATH=/usr/lib/vmware/vmacore:/usr/lib/vmware/hostd:/usr/lib/vmware/lib/libxml2.so.2:/usr/lib/vmware/lib/libexpat.so.0:/usr/lib/vmware/lib/libstdc++.so.6:/usr/lib/vmware/lib/libgcc_s.so.1:/usr/lib/vmware/lib/libcrypto.so.0.9.8:/usr/lib/vmware/lib/libssl.so.0.9.8
enable.ssl2
/home/uid/.mozilla/firefox/ab1cd23985.default/extensions/VMwareVMRC@vmware.com/plugins/vmware-vmrc