Управление Xen · 4 min read · Oct 23, 2025
Управление Xen с помощью Xen-Tools, Xen-Shell и Argo
Управление Xen с помощью Xen-Tools, Xen-Shell и Argo
Версия 1.0
Автор: Фалко Тимме
Этот гид описывает, как установить и использовать xen-tools, xen-shell и Argo на системе Debian. Все три пакета предоставляют полезные инструменты для администрирования виртуальных машин Xen. Xen-tools — это набор Perl-скриптов, которые позволяют вам легко создавать, обновлять и удалять гостевые домены Xen. Xen-shell предоставляет интерфейс командной строки для владельцев доменов Xen, чтобы они могли управлять своими доменами Xen без помощи администратора сервера. А с помощью Argo вы можете управлять доменами Xen через веб-интерфейс или через меню в командной строке. Все три пакета были разработаны для систем Debian, но могут работать и на других дистрибутивах.
Я хочу сказать сначала, что это не единственный способ настройки такой системы. Существует множество способов достижения этой цели, но это тот путь, который я выбираю. Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
Я предполагаю, что вы уже установили Xen 3 на свою систему Debian (он не работает с Xen 2!), например из исходников, как показано в главе 4 этого руководства: https://www.howtoforge.com/debian_sarge_xen_3.0.3. Я не смог заставить xen-tools работать с бинарной установкой Xen (показанной в главе 5), но это может сработать для вас. Но xen-tools работают как часы для меня на установке Xen из исходников.
Имя хоста моего домена Xen dom0 в этом руководстве — server1.example.com, его IP-адрес — 192.168.0.100, а шлюз — 192.168.0.1. Я хочу хранить свои гостевые домены в директории /vserver/images. Эти значения могут отличаться для вас.
Пожалуйста, убедитесь, что у вас есть строка, подобная этой, в /etc/hosts:
vi /etc/hosts| [...] 192.168.0.100 server1.example.com server1 [...] |
2 Xen-Tools
Хотя существуют пакеты Debian для xen-tools и xen-shell, доступные на http://www.steve.org.uk/apt/, я решил установить xen-tools и xen-shell из исходников, потому что пакет xen-tools для Debian создавал для меня недействительные файлы конфигурации Xen, чего не происходило, когда я использовал исходники.
Сначала мы установим некоторые предварительные зависимости для xen-tools:
apt-get install libtext-template-perl perl-docЗатем мы установим xen-tools следующим образом:
cd /tmp
wget http://xen-tools.org/software/xen-tools/xen-tools-2.7.tar.gz
tar xvfz xen-tools-2.7.tar.gz
cd xen-tools-2.7
make installДалее мы редактируем /etc/xen-tools/xen-tools.conf. Этот файл содержит значения по умолчанию, которые используются скриптом xen-create-image, если вы не укажете другие значения в командной строке. Я изменил следующие значения и оставил остальные без изменений:
vi /etc/xen-tools/xen-tools.conf| [...] gateway = 192.168.0.1 netmask = 255.255.255.0 passwd = 1 kernel = /boot/vmlinuz-2.6-xenU #initrd = /boot/initrd.img-2.6.16-2-xen-686 mirror = http://ftp2.de.debian.org/debian/ [...] |
Строка passwd = 1 позволяет вам указать пароль root при создании нового гостевого домена. В строке kernel вы должны указать ядро domU, которое вы хотите использовать для своих гостевых доменов. Если вашим гостевым доменам не нужен ramdisk для загрузки, закомментируйте строку initrd (мне пришлось сделать это на моей установке), в противном случае укажите правильный ramdisk. В строке mirror укажите зеркала Debian, близкие к вам.
Убедитесь, что вы указали шлюз и маску подсети. Если вы этого не сделаете и не укажете шлюз и маску подсети в командной строке при использовании xen-create-image, ваши гостевые домены не будут иметь сетевого подключения, даже если вы указали IP-адрес!
Теперь давайте создадим наш первый гостевой домен, vm03.example.com, с IP-адресом 192.168.0.103:
xen-create-image --hostname=vm03.example.com --ip=192.168.0.103 \
--netmask=255.255.255.0 --gateway=192.168.0.1 --dir=/vserver/images \
--dist=sarge --debootstrapПереключатели –netmask и –gateway здесь не обязательны, потому что мы указали те же данные в /etc/xen-tools/xen-tools.conf, но это показывает, что вы можете указывать желаемые настройки как в командной строке, так и в /etc/xen-tools/xen-tools.conf.
Эта команда теперь создаст гостевой домен vm03.example.com с Debian Sarge, используя инструмент debootstrap от Debian. Это займет несколько минут, так что будьте терпеливы. Тем временем вы можете открыть другое окно оболочки и выполнить
tail -f /var/log/xen-tools/vm03.example.com.logчтобы увидеть, что происходит за кулисами.
После создания нового гостевого домена проверьте /etc/xen/vm03.example.com.cfg. Он должен выглядеть так (я убрал комментарии):
vi /etc/xen/vm03.example.com.cfg| kernel = '/boot/vmlinuz-2.6-xenU' memory = '128' root = '/dev/sda1 ro' disk = [ 'file:/vserver/images/domains/vm03.example.com/disk.img,sda1,w', 'file:/vserver/images/domains/vm03.example.com/swap.img,sda2,w' ] name = 'vm03.example.com' vif = [ 'ip=192.168.0.103' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' |
Мы можем запустить нашу новую виртуальную машину следующим образом:
xm create -c /etc/xen/vm03.example.com.cfgС помощью команды xen-create-image вы можете указать почти все настройки в командной строке. Посмотрите на
man xen-create-imageчтобы узнать больше. Вот еще один пример:
xen-create-image --size=2Gb --swap=128Mb --hostname=vm04.example.com \
--ip=192.168.0.104 --netmask=255.255.255.0 --gateway=192.168.0.1 --dir=/vserver/images \
--dist=sarge --debootstrap --fs=ext3 --kernel=/boot/vmlinuz-2.6-xenU --memory=32Mb \
--image=sparse --mirror=http://ftp2.de.debian.org/debian/ --passwdЭто создаст виртуальный домен vm04.example.com. /etc/xen/vm04.example.com.cfg должен выглядеть так после этого (снова, я убрал комментарии):
vi /etc/xen/vm04.example.com.cfg| kernel = '/boot/vmlinuz-2.6-xenU' memory = '32' root = '/dev/sda1 ro' disk = [ 'file:/vserver/images/domains/vm04.example.com/disk.img,sda1,w', 'file:/vserver/images/domains/vm04.example.com/swap.img,sda2,w' ] name = 'vm04.example.com' vif = [ 'ip=192.168.0.104' ] on_poweroff = 'destroy' on_reboot = 'restart' on_crash = 'restart' |
Вы можете запустить новую виртуальную машину следующим образом:
xm create -c /etc/xen/vm04.example.com.cfgСуществует также три других скрипта, которые идут с xen-tools:
xen-update-image позволяет вам обновлять пакеты в гостевых доменах, например, так:
xen-update-image --dir=/vserver/images vm03.example.comxen-list-images показывает все гостевые домены, которые были созданы с помощью xen-create-image:
xen-list-imagesВывод выглядит так:
server1:~# xen-list-images
Name: vm03.example.com
Memory: 128
IP: 192.168.0.103Name: vm04.example.com
Memory: 32
IP: 192.168.0.104С помощью xen-delete-image вы можете удалить гостевые домены, которые были созданы с помощью xen-create-image:
xen-delete-image --dir=/vserver/images vm03.example.comGet new posts in your inbox
No spam. Unsubscribe anytime.