Управление 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.com

xen-list-images показывает все гостевые домены, которые были созданы с помощью xen-create-image:

xen-list-images

Вывод выглядит так:

server1:~# xen-list-images  
Name: vm03.example.com  
Memory: 128   
IP: 192.168.0.103
Name: vm04.example.com  
Memory: 32  
IP: 192.168.0.104

С помощью xen-delete-image вы можете удалить гостевые домены, которые были созданы с помощью xen-create-image:

xen-delete-image --dir=/vserver/images vm03.example.com
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.