Виртуализация · 3 min read · Feb 09, 2026

Идеальная настройка Xen 3.0.3 для Debian Sarge - Страница 8

5.2.2 Создание и запуск первой виртуальной машины

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

cp -pf /vserver/images/vm_base.img /vserver/images/vm01.img  
cp -pf /vserver/images/vm_base-swap.img /vserver/images/vm01-swap.img

В бинарной установке Xen мы не можем указать имя хоста и сетевую конфигурацию нашей виртуальной машины в конфигурационном файле Xen, мы должны указать эти данные непосредственно в виртуальной машине. Поэтому мы должны смонтировать образ и отредактировать несколько файлов:

mount -o loop /vserver/images/vm01.img /vserver/vm_base  
chroot /vserver/vm_base

Имя хоста нашей первой виртуальной машины - vm01.example.com, поэтому мы делаем следующее:

echo "vm01.example.com" > /etc/hostname

Затем мы редактируем /etc/network/interfaces и вводим нашу сетевую конфигурацию (IP-адрес 192.168.0.101, шлюз 192.168.0.1):

vi /etc/network/interfaces

| auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 # Основной сетевой интерфейс auto eth0 iface eth0 inet static address 192.168.0.101 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 |

Затем мы выходим из окружения chroot и размонтируем образ:

exit  
umount /vserver/vm_base

Далее мы создаем конфигурационный файл Xen для vm01, /etc/xen/vm01-config.sxp:

vi /etc/xen/vm01-config.sxp

| name="vm01" kernel="/boot/vmlinuz-2.6-xen" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] # сеть vif=[ '' ] extra="3" |

В памяти вы указываете ОЗУ, которое хотите выделить для этой виртуальной машины (здесь: 32 МБ). В разделе disk вы указываете, какие образы использовать и как их монтировать (т.е. под каким разделом, например, hda1). Это должно соответствовать настройкам в файле /etc/fstab образа!

Если вы хотите, чтобы vm01 запускалась автоматически при следующей загрузке системы, то сделайте следующее:

ln -s /etc/xen/vm01-config.sxp /etc/xen/auto

Теперь давайте запустим vm01:

xm create -c /etc/xen/vm01-config.sxp

Если все в порядке, vm01 должна запуститься без проблем, и вы должны иметь возможность войти в систему. Чтобы выйти из оболочки vm01, введите CTRL+] если вы на консоли, или CTRL+5 если вы используете PuTTY. Снаружи вы должны иметь возможность подключиться к 192.168.0.101 через SSH.

Вернувшись в оболочку dom0, вы можете выключить vm01, выполнив

xm shutdown vm01

Вот некоторые другие команды Xen:

xm create -c /path/to/config - Запустить виртуальную машину.
xm shutdown - Остановить виртуальную машину.
xm destroy - Немедленно остановить виртуальную машину без ее выключения. Это как если бы вы выключили кнопку питания.
xm list - Список всех работающих систем.
xm console - Войти в виртуальную машину.
xm help - Список всех команд.

Теперь вы можете перезагрузить основную систему, чтобы увидеть, запускается ли vm01 автоматически (если вы создали символическую ссылку в /etc/xen/auto):

shutdown -r now

5.2.3 Создание и настройка дополнительных виртуальных машин

Вы можете создать дополнительные виртуальные машины, просто скопировав шаблон образа:

cp -pf /vserver/images/vm_base.img /vserver/images/vm02.img  
cp -pf /vserver/images/vm_base-swap.img /vserver/images/vm02-swap.img

Снова мы должны указать нашу сетевую конфигурацию следующим образом:

mount -o loop /vserver/images/vm02.img /vserver/vm_base  
chroot /vserver/vm_base

Теперь наше имя хоста, например, vm02.example.com, поэтому мы делаем следующее:

echo "vm02.example.com" > /etc/hostname

Затем мы редактируем /etc/network/interfaces и вводим нашу сетевую конфигурацию (например, IP-адрес 192.168.0.102, шлюз 192.168.0.1):

vi /etc/network/interfaces

| auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 # Основной сетевой интерфейс auto eth0 iface eth0 inet static address 192.168.0.102 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 |

Затем мы выходим из окружения chroot и размонтируем образ:

exit  
umount /vserver/vm_base

Затем вам нужно создать конфигурационный файл Xen, например, /etc/xen/vm02-config.sxp:

vi /etc/xen/vm02-config.sxp

| name="vm02" kernel="/boot/vmlinuz-2.6-xen" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] # сеть vif=[ '' ] extra="3" |

Запустите машину:

xm create -c /etc/xen/vm02-config.sxp

Если вы получаете ошибку, подобную этой:

Using config file "/etc/xen/vm02-config.sxp".  
Error: Error creating domain: The privileged domain did not balloon!

это означает, что виртуальная машина попыталась использовать больше памяти, чем доступно. Отредактируйте конфигурационный файл виртуальной машины и уменьшите значение памяти, затем попробуйте запустить ее снова.

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

ln -s /etc/xen/vm02-config.sxp /etc/xen/auto

Теперь вы можете войти в каждую машину, например, через SSH, и настроить ее так, как если бы это была обычная система.

Вы можете создать столько виртуальных машин, сколько захотите. Ваше оборудование - это предел!

6 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.