Почему VMWare может выйти из строя? Как это исправить/предотвратить?

Почему VMWare может выйти из строя? Как это исправить/предотвратить?

Я использую VMWare Server 2.0.2 (Build 203138) на двухъядерном Intel i5 с системой Ubuntu Server 10.04 LTS (ядро 2.6.32-22-server #33-Ubuntu SMP). Дисковая подсистема представляет собой программный массив RAID5.

Система была настроена чуть больше недели назад. За последние 5 дней я запустил по крайней мере 3 VM (Linux и различные ОС Windows) без каких-либо проблем. Но когда я устанавливал Linux на новую VM, внезапно все VM перестали отвечать, включая ту, на которую я устанавливал. Я не мог войти в интерфейс управления VMWare, и система несколько не отвечала через SSH. Когда я посмотрел на top, я увидел:

top - 16:14:51 up 6 days,  1:49,  8 users,  load average: 24.29, 24.33 17.54
Tasks: 203 total,   7 running, 195 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.2%us, 25.6%sy,  0.0%ni, 74.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8056656k total,  5927580k used,  2129076k free,    20320k buffers
Swap:  7811064k total,   240216k used,  7570848k free,  5045884k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                               
21549 root      39  19     0    0    0 Z  100  0.0  15:02.44 [vmware-vmx] <defunct>
 2115 root      20   0     0    0    0 S    1  0.0 170:32.08 [vmware-rtc]
 2231 root      21   1 1494m 126m 100m S    1  1.6 892:58.05 /usr/lib/vmware/bin/vmware-vmx -# product=2;                                                                                                                                                                                       
 2280 jnet      20   0 19320 1164  800 R    0  0.0  30:04.55 top 
12236 root      20   0  833m  41m  34m S    0  0.5  88:34.24 /usr/lib/vmware/bin/vmware-vmx -# product=2;
    1 root      20   0 23704 1476  920 S    0  0.0   0:00.80 /sbin/init                                                                                                                                                                                             
    2 root      20   0     0    0    0 S    0  0.0   0:00.01 [kthreadd]                                                                                                                                                                                             
    3 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/0]                                                                                                                                                                                          
    4 root      20   0     0    0    0 S    0  0.0   0:00.84 [ksoftirqd/0]                                                                                                                                                                                          
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 [watchdog/0]                                                                                                                                                                                           
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 [migration/1]                                                                                                                                                                                          

Процесс VMWare для виртуальной машины, на которую я устанавливал, стал зомби. Тем не менее, он все еще потреблял 100% процессорного времени на одном из ядер, и я не мог получить доступ к нему или к другим виртуальным машинам. (Я был вошел в одну виртуальную машину через SSH, в другую через X11, а в третью через VNC. Все три соединения разорваны). Когда я запустил ps -efи подобные команды, я обнаружил, что у несуществующего vmware-vmxпроцесса родительский PID установлен на init(1). Я также использовал lsof -p 21549и обнаружил, что у несуществующего процесса нет открытых файлов. Тем не менее, он использовал 100% процессорного времени...

Я не смог убитьлюбой vmware-vmxпроцессы, включая неработающий, даже с kill -9. В качестве последнего средства для разрешения ситуации я попытался перезагрузить коробку, однако shutdown, halt, reboot, и init 6все не смогли перезагрузиться/выключиться, даже когда были заданы соответствующие --forceнастройки. ControlAltDelвыдало сообщение о перезагрузке на консоли, но система не перезагрузилась. Мне пришлось жестко выключить и включить коробку, чтобы разрешить ситуацию. (См. мой другой вопрос,Стоит ли беспокоиться о целостности программного RAID5 в Linux после сбоя или паники ядра?)

Что могло вызвать такой сценарий? Что еще я мог сделать, чтобы решить эту проблему, кроме жесткой перезагрузки? Что я могу сделать, чтобы предотвратить подобную ситуацию в будущем?

решение1

Ознакомьтесь с этим сообщением на форуме VMWare и посмотрите, поможет ли оно: http://communities.vmware.com/message/531884#531884

Отключение общего доступа к памяти — это, как правило, хорошая идея, если у вас есть оперативная память.

Я собрал здесь некоторые оптимизации, которые я использую для VMWare Server 2 на Ubuntu: http://www.stress-free.co.nz/vmware_server_20_optimisations

Я никогда не сталкивался с описанной вами проблемой, и у меня работают производственные серверы с Ubuntu Server 8.04LTS и 10.04LTS (как 32-разрядной, так и 64-разрядной).

решение2

К сожалению, я так и не смог найти решение этой проблемы. Просто мне показалось, что это проблема, присущая VMware Server.

С тех пор мы перешли на VMWare ESXi. Это в разы лучше, нет никакого сравнения! У меня никогда не было подобных проблем с ESXi.

Связанный контент