Повелеваем виртуализацией KVM по ssh с комфортом. virsh.

https://debian.pro/87

Лето. Надоело сидеть за компом, решил отдохнуть и гулять-кататься побольше. Спам от мониторилок на андроид-телефон валится исправно. Хард клава любимого Зевсика с завтрашнего дня будет всегда со мной. (тьфу-тьфу-тьфу). Грех в такой ситуации не воспользоваться ssh-клиентом на телефоне с клавиатурой и 3g для управления VDSками. А ещё большим грехом было бы не рассказать всем вкратце, как же это делать.

Конечно же, вы настраивали KVM по мануалу /16 на этом сайте. И конечно же, у вас установлен libvirtd. Его консольным фронт-эндом является как раз таки virsh.
Итак. Virsh у нас есть. Если нет — смотрим статью /16.
Для проверки просто введем в консоли virsh
Теперь у вас открыт новый шелл:
virsh #
Сразу оговорюсь, что все последующие команды можно вводить в консоли virsh либо в обычной консоли с приставкой virsh.
То есть:
virsh # command vds
и
Debian:~# virsh command vds
эквивалентны. Но я рекоммендую использовать шелл virsh, так как там работает автодополнение команд virsh’a.
В дальнейшем в статье я не буду использовать приставки к командам. Знайте, что каждую из нижеперечисленных команд нужно писать с приставкой virsh либо в шелле virsh.
Так же условимся, что vdsX — это название VDSки, над которой вы желаете совершить действие.
Приступим. Поуправляем «питанием» виртуальных машин:
destroy vdsX — «выдергиваем кабель питания виртуалки»
reboot vdsX — передаст ядру VDSки команду reboot, как если бы она была написана из консоли.
shutdown vdsX — корректно выключаем VDS. Если не выключается — делаем destroy.
start vdsX — запускаем VDS
save vdsX file-name — сохранит состояние виртуалки в файл, выключит её и освободит RAM. Фактически — аналог команды hibernate. Только можно много состояний оперативки сохранять =) удобно для тестов. Учтите, что имя файла должно быть уникальным всегда (или его перезапишет, даже дампом другой виртуалки)
restore file-name — вернет виртуалку из сна. Саму виртуалку указывать не нужно, эта информация берется из файла. А жаль, на самом деле. Можно было бы создавать кучи одинаковых виртуалок и потом их поочередно грузить из файла и издеваться.
suspend vdsX — ещё один hibernate, но память, зарезервированная виртуалкой не освобождается. Надежнее, чем save/restore.
resume vdsX — возвращает vds из состояние, в которое мы её погрузили командой suspend

Просмотрим некоторую информацию о VDSах:
nodeinfo — выдаст нам информацию о вашем сервере. Бесполезную, но малоли)
list — выведет список всех виртуалок и их состояние — running, halted, suspended и т.д. Полезно для включения в отчёты, кстати.
dominfo vdsX — выведет информацию о виртуалке. Есть и полезная, например, там можно посмотреть, сколько времени CPU скушала виртуалка (да да, будем на это основывать облака в ближайшем будущем =)) )
domblkstat vdsX device — должно выводить статистику по блочному устройству виртуалки. Пока не разобрался как работает. Буду рад подсказке. Точнее не знаю, что вписать вместо device.
domifstat vdsX vnetY — позволяет просмотреть информацию по сетевому интерфейсу виртуалки. vnetY должен использоваться именно виртуалкой vdsX, чтобы команда дала корректный вывод. Команда ценна тем, что позволяет проверить — не дропаются ли сетевые пакеты виртуалки.
ttyconsole vdsX — укажет нам, какой /dev/pts используется vdsом. Полезно, если знаете, что с pts можно сделать удалённо.
vncdisplay vdsX — укажет нам IP и порт виртуального IP-KVM… а точнее VNC сервера для VDSки. В virt-manager можно добавить новые.

Изменим кое-какие лимиты виртуалок:
setmem vdsX summ — изменяет лимит памяти виртуалки. summ указывается в килобайтах. Работает без ребута. Память по этому лимиту сразу помечается хостом как используемая.
setmaxmem vdsX summ — изменяет верхнюю планку памяти для виртуалки. summ — в килобайтах. Память по этому лимиту виртуалка получит, только если есть свободная память на хосте. По этому лимиту память помечается как используемая хостом, только если она действительно используется виртуалкой. (вообще setmaxmem для KVM не советую использовать, только в облаках если)
setvcpus vdsX count — устанавливает количество count виртуальных ядер для VDS. Можно использовать только для выключенной виртуалки. Сумму count для всех VDS не делаем больше суммы ядер на хосте, а лучше оставляем одно про запас, если не для своих нужд используем весь сервер со всеми виртуалками.

И на закуску:
console vdsX — должно подключить нас к tty1 виртуалки. не работает частенько (
autostart —disable vdsX — отключает автостарт виртуалки при старте хоста. Если вы используете мануалы — заюзайте опцию для всех VDS — всё равно без br1/br2 (которые я рекоммендую не создавать при старте сервера, а создавать скриптами позже) — они не загрузятся.
autostart vdsX — включает автостарт виртуалки.

Остальные команды стоит посмотреть в man virsh, но вряд ли они вам понадобятся. Там ещё есть управление виртуальными устройствами VDSов, но это лучше делать через virt-manager. Ну и некоторые команды в моем случае заменены скриптами virt-install.

P.S. — почаще отдыхайте. Сегодня стал ощущать, что переутомлён… неприятно. А всего то 19 лет только( Зато я всё ближе и ближе к финалу stand-alone экспериментов )
28.07.2010 byinkvizitor68sl|Администрирование Метки: debian, kvm, ssh, virsh
2012   kvm   linux   virsh
Popular