Заморозка виртуальных машин на "Vmware Server 1" (Выборочная заморозка и разморозка виртуальных машин на "Vmware Ser)

Модератор: Модераторы разделов

rfcr
Сообщения: 92

Заморозка виртуальных машин на "Vmware Server 1"

Сообщение rfcr »

Есть два скрипта:

Для замораживания виртуальных машин


#!/bin/sh
vmwarecmd="/usr/bin/vmware-cmd"
$vmwarecmd -l | while read vmlist;
do
echo "$vmlist"
name=`$vmwarecmd "$vmlist" getstate`
echo $name
if
then
vmrun suspend "$vmlist"
fi
sleep 5
done

и для размораживания


#!/bin/sh
vmwarecmd="/usr/bin/vmware-cmd"
$vmwarecmd -l | while read vmlist;
do
echo "$vmlist"
name=`$vmwarecmd "$vmlist" getstate`
echo $name
if
then
vmrun start "$vmlist"
fi
sleep 5
done

Как можно модифицировать скрипты, чтобы заморозка производилась выборочно? Т.е. чтобы при заморозке замораживались только те машины, которые не заморожены, а при разморозке, чтобы размораживались только те что замораживались.

Гипервизор: Vmware server 1.0.2
Спасибо сказали:
alfss
Сообщения: 262

Re: Заморозка виртуальных машин на "Vmware Server 1"

Сообщение alfss »

1.вести простейшую базу о состояниях и черпать от туда информацию
2.каким образом можно получить список запущенных ВМ? и каким образом всех? vmrun list diff /usr/bin/vmware-cmd -l
Спасибо сказали:
rfcr
Сообщения: 92

Re: Заморозка виртуальных машин на "Vmware Server 1"

Сообщение rfcr »

Модифицировал скрипты вот так:

Замораживаем:

#!/bin/sh
vmwarecmd="/usr/bin/vmware-cmd"
$vmwarecmd -l | while read VMXLIST_STATE;
do
STATEVM=`$vmwarecmd "$VMXLIST_STATE" getstate`
echo $VMXLIST_STATE $STATEVM
if
then
echo $VMXLIST_STATE >> vmlist.log
fi
done
cat vmlist.log | while read VMXLIST;
do
echo " "
echo "$VMXLIST"
vmrun suspend "$VMXLIST"
sleep 1
done
echo " "
echo "Finish ..."

Размораживаем

#!/bin/sh
cat vmlist.log | while read VMXLIST;
do
echo "$VMXLIST"
vmrun start "$VMXLIST"
done
cat /dev/null > vmlist.log
echo " "
echo "Finishing starting Machine"

Но заморозка не всегда проходит успешно. Большинство машин замораживаются, а некоторые нет. При этом появляется такая вот ошибка(ки) :

/vm/Other Linux 2.4.x kernel 64-bit.vmx
Error: Command failed: Cannot connect to the virtual machine
./syspend: line 34: 5832 Ошибка сегментирования vmrun suspend "$VMXLIST"

/vm/SUSE Linux.vmx
Error: Command failed: Cannot connect to the virtual machine
./syspend: line 34: 5939 Ошибка сегментирования vmrun suspend "$VMXLIST"

Есть и другие ошибки, но они повидимому не влияют на успешность заморозки:

/vm/Windows 2000 Professional.vmx
./syspend: line 34: 5957 Ошибка сегментирования vmrun suspend "$VMXLIST"

Замечено, что если машину которая не замораживается включить - выключить через вмваре консоль то она будет замораживаться нормально. Через консоль при этих ошибках тоже все нормально замораживается. Что делать, как справиться с ошибками? Версия гипервизора - Vmware server 1.0.2.
Спасибо сказали: