• Авторизация


KVM vs XEN, или Умереть и не встать 15-03-2011 16:50 к комментариям - к полной версии - понравилось!


Говорят, что поддержка системы виртуализации XEN в RHEL и, соответственно, CentOS продлится не позднее, чем до 2014 г. А посему админы дружною толпой должны пойти на водопой KVM, официально объявленный базовым. Хорошо, пробуем, поднимаем виртуалку, ставим туда систему, глушим из virt-manager'а, запускаем... опаньки, а там проверка файловой системы началась. Т.е. вместо того, чтобы корректно заглушить виртуалку, её грубо уронили мордой в салат. Идём во глубину конфига, обнаруживаем там для режима on_poweroff параметр destroy. Фигеем, меняем destroy на shutdown, глушим, радуемся, запускаем -- фигвам, не стартует и гнусно матерится. Возвращаем destroy на место -- всё стартует, ну вот так оно сейчас реализовано.
Оказывается, в XEN для того, чтобы корректно глушить виртуалки, используется отдельный стартстопный скрипт, до сих пор почему-то отсутствующий в KVM из коробки. Ну что ж, можно написать аналог, а можно и найти готовый работающий вариант -- например, тут:
http://www.salstar.sk/pub/salpack/etc/rc.d/init.d/virt-shutdown
(найдено в списке рассылки http://www.mail-archive.com/libvir-list@redhat.com/msg14754.html)
Ставим, радуемся, пробуем перезагрузить хост-машину, видим, как начинает выполняться наша самоделка, и как ея лихо и грубо прерывает скрипт остановки libvirtd с криком "Кто не спрятался, я не виноват!" Говорим нехорошие слова и добавляем в заголовок оного /etc/init.d/libvirtd (хотя бы перед строкой "# Default-Start: 3 4 5") строчку
# Required-Stop: virt-shutdown
Собственно, и всё: праздник души и именины сердца. 8-)

А вышеупомянутый скрипт выглядит так:
#!/bin/sh

# the following is the LSB init header see
# http://www.linux-foundation.org/spec//booksets/LSB...re-generic.html#INITSCRCOMCONV
#
### BEGIN INIT INFO
# Provides: virt-shutdown
# Should-Start: libvirtd
# Default-Start: 3 4 5
# Short-Description: shutdown libvirt domains
# Description: This is a script for shutting down virtual machines
# on shutdown of host system.
### END INIT INFO

# the following is chkconfig init header
#
# virt-shutdown: shutdown libvirt domains
#
# chkconfig: 345 97 01
# description: This is a scripts for shutting down virtual machines
# on shutdown of host system.
#

# Source function library.
. /etc/rc.d/init.d/functions

LC_ALL=C
VIRSH="virsh -c qemu:///system"
WAIT_SECONDS=300
post_script() {
true
}

RETVAL=0

[ -e /etc/sysconfig/virt-shutdown ] && . /etc/sysconfig/virt-shutdown

stop() {
echo -n $"Shutting down virtual machines: "

DOM_LIST=`$VIRSH list | grep running | awk '{ print $1 }'`
for DOM_ID in $DOM_LIST; do
echo -n "`$VIRSH domname $DOM_ID | head -n 1` "
$VIRSH shutdown $DOM_ID >/dev/null
done

N=`$VIRSH list | grep running | wc -l`
WAIT_SECONDS=$((WAIT_SECONDS*N))
for i in `seq $WAIT_SECONDS`; do
N=`$VIRSH list | grep running | wc -l`
if [ $N -eq 0 ]; then
break
fi
sleep 1
echo -n "$N "
done

if [ $N -eq 0 ]; then
RETVAL=0
echo
else
echo
echo "These virtual machines are still running:"
$VIRSH list | grep running
RETVAL=1
fi
post_script stop
}

# See how we were called.
case "$1" in
start)
touch /var/lock/subsys/virt-shutdown
RETVAL=0
;;
stop)
stop
rm -f /var/lock/subsys/virt-shutdown
;;
status)
status virt-shutdown
$VIRSH list
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status}"
exit 1
;;
esac
exit $RETVAL
вверх^ к полной версии понравилось! в evernote
Комментарии (3):
all_T 16-03-2011-18:44 удалить
Сурово. Мозг отлючился . Словно с Зеленым человечком пообщалась. особенно впечатлила последняя строка : exit $RET VAL .Которую
так моя женская интуиция перевела : вышел (exit) срет ($RET) валит (VAL)
Пчёлы 16-03-2011-20:48 удалить
Хм, судя по специфике на виртуалках винда крутится :D
VServer наше все.
zerg_from_hive 16-03-2011-22:34 удалить
all_T, так ведь libvirtd и правда валил всё, что шевелилось. 8-)
Пчёлы, не-а, это я там фрю пробовал, хотя и винда встала бы без проблем. 8-)
Правда, говорят, что у этой виртуальной венды могут быть грабли с ACPI, но это ишшо проверять надо. А VServer ИМХО таки потяжеловеснее будет.


Комментарии (3): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник KVM vs XEN, или Умереть и не встать | zerg_from_hive - Бредовые мысли спросонья | Лента друзей zerg_from_hive / Полная версия Добавить в друзья Страницы: раньше»