Редакция 5.8
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
vsftpd
Моноширинный жирный шрифт
Чтобы просмотреть содержимое файлаmy_next_bestselling_novel
в текущем каталоге, в строке приглашения оболочки введитеcat my_next_bestselling_novel
и нажмите Enter для выполнения этой команды.
Нажмите Enter для исполнения команды.Нажмите Ctrl+Alt+F2 для перехода в первый виртуальный терминал. Нажмите Ctrl+Alt+F1 , чтобы вернуться в сессию X-Windows.
Классы файлов включаютfilesystem
для файловых систем,file
для файлов,dir
для каталогов. Каждому классу соответствует набор разрешений.
В главном меню выберите Настройки мыши. На вкладке Кнопки установите флажок Настроить мышь под левую руку и нажмите кнопку , чтобы настроить мышь для левши.→ → для запуска утилитыЧтобы вставить специальный символ в файл gedit, выберите → → . Затем в меню выберите → , введите имя символа и нажмите кнопку . Найденный символ будет выделен в таблице символов. Дважды щелкните на этом символе, чтобы вставить его в поле Текст для копирования и нажмите кнопку . Теперь вернитесь к вашему документу и в меню выберите → .
Моноширинный жирный курсив
или пропорциональный жирный курсив
Для подключения к удаленной машине с помощью SSH в строке приглашения выполнитеssh
. Скажем, имя удаленной машины –имя_пользователя
@имя_домена
example.com
, а ваше имя пользователя – john, тогда команда будет выглядеть так:ssh john@example.com
.Командаmount -o remount
повторно подключит заданную файловую систему. Например, дляфайловая_система
/home
команда будет выглядеть так:mount -o remount /home
.Чтобы просмотреть версию установленного пакета, выполните командуrpm -q
. Результат команды будет представлен в форматепакет
.
пакет-версия-выпуск
Publican — система публикации DocBook.
моноширинный шрифт
:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
моноширинный шрифт
:
package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }
5
.
FTP
, HTTP
, NFS
.
/var/lib/libvirt/images/
directory by default. If you use a different directory you must label the new directory according to SELinux policy. Refer to Раздел 18.2, «Виртуализация и SELinux» for details.
yum
for more information.
grub.conf
file.
virtio
, являются устройствами PCI. В настоящее время максимально допустимое число PCI-устройств для каждой виртуальной машины — 32. Некоторые устройства могут быть необходимы для работы гостевой системы, поэтому их нельзя удалить. Эти устройства включают:
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
phy
не ограничено. Узел может иметь столько устройств, сколько позволяют ресурсы.
/etc/rc.local
добавьте:
options loop max_loop=64
# rmmod loop # modprobe loop
Содержание
yum
и Red Hat Network (RHN).
virt-manager
, libvirt
, virt-viewer
и их зависимостей.
При необходимости измените список пакетов.
%packages
добавьте следующее определение:
%packages @xen
xen-ia64-guest-firmware
rhn_register
.
yum
xen
и kernel-xen
. Пакет xen
содержит гипервизор и утилиты Xen, а kernel-xen
включает модифицированное ядро Linux, которое может выполняться в качестве гостя виртуальной машины на гипервизоре.
xen
и kernel-xen
:
# yum install xen kernel-xen
xen-ia64-guest-firmware
, который можно найти на дополнительном установочном диске. Этот пакет также можно установить с помощью yum
:
# yum install xen-ia64-guest-firmware
python-virtinst
virt-install
для создания виртуальных машин.
libvirt
libvirt
использует инфраструктуру виртуализации xm
и текстовую утилиту virsh
для управления виртуальными машинами.
libvirt-python
libvirt
интерфейс.
virt-manager
libvirt
.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-manager
, libvirt
и virt-viewer
.
При необходимости измените список пакетов.
%packages
добавьте следующее определение:
%packages @kvm
rhn_register
.
yum
kvm
, который содержит модуль ядра KVM.
kvm
:
# yum install kvm
python-virtinst
virt-install
для создания виртуальных машин.
libvirt
libvirt
использует инфраструктуру виртуализации xm
и текстовую утилиту virsh
для управления виртуальными машинами.
libvirt-python
libvirt
интерфейс.
virt-manager
libvirt
.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-install
. Оба способа будут рассмотрены ниже.
virt-install
, которую можно либо запустить напрямую, либо включить в сценарий для автоматизации процесса создания виртуальных машин.
virt-install
принимает параметры, полный список которых можно просмотреть, выполнив команду
$ virt-install --help
virt-install
также перечислены наиболее важные параметры и переменные.
virt-install
, можно выполнить qemu-img
для настройки хранилища.
--vnc
option which opens a graphical window for the guest's installation.
rhel3support
будет создана с CD-ROM. Ей будет сопоставлен файловый образ блочного устройства размером 5 гигабайт и настроено виртуальное сетевое окружение. Пример использует гипервизор KVM.
# virt-install --accelerate --hvm --connect qemu:///system \ --network network:default \ --name rhel3support --ram=756\ --file=/var/lib/libvirt/images/rhel3support.img \ --file-size=6 --vnc --cdrom=/dev/sr0
# virt-install --name fedora11 --ram 512 --file=/var/lib/libvirt/images/fedora11.img \ --file-size=3 --vnc --cdrom=/var/lib/libvirt/images/fedora11.iso
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Optional: Open a remote hypervisor
Create a new guest
New guest wizard
Name the virtual machine
Choose virtualization method
kernel-xen
, то будет недоступен выбор паравиртуализации.
Select the installation method
.iso
file).
HTTP
, FTP
or NFS
.
HTTP
, FTP
or NFS
. The installation media URL must contain a Red Hat Enterprise Linux installation tree. This tree is hosted using NFS
, FTP
or HTTP
.
Installation media selection
ISO image or physical media installation
Network install tree installation
NFS
, FTP
or HTTP
. Optionally, a kickstart file can be specified to automated the installation. Kernel parameters can also be specified if required.
Network boot (PXE)
Storage setup
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Раздел 18.2, «Виртуализация и SELinux» for details.
/var/lib/libvirt/images/
. If you are using a different location (such as /images/
in this example) make sure it is added to your SELinux policy and relabeled before you continue with the installation (later in the document you will find information on how to modify your SELinux policy).
Network setup
Memory and CPU allocation
Verify and start guest installation
virt-manager
. Глава 8, Установка гостевой операционной системы contains step-by-step instructions to installing a variety of common operating systems.
Создайте новый мост
/etc/sysconfig/network-scripts/
. В приведенном примере файл с именем ifcfg-installation
содержит определение моста installation
.
# cd /etc/sysconfig/network-scripts/ # vim ifcfg-installation DEVICE=installation TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
ifup installation
command can start the individual bridge but it is safer to test the entire network restarts properly.
# service network restart
brctl show
для получения информации о всех сетевых мостах в системе.
# brctl show bridge name bridge id STP enabled interfaces installation 8000.000000000000 no virbr0 8000.000000000000 yes
virbr0
используется по умолчанию утилитой libvirt
для преобразования адресов NAT.
Добавьте интерфейс
BRIDGE
и укажите имя созданного выше моста.
# Intel Corporation Gigabit Network Connection DEVICE=eth1 BRIDGE=installation BOOTPROTO=dhcp HWADDR=00:13:20:F7:6E:8E ONBOOT=yes
# service network restart
# brctl show bridge name bridge id STP enabled interfaces installation 8000.001320f76e8e no eth1 virbr0 8000.000000000000 yes
Обеспечение защиты
iptables
разрешите перенаправление всего трафика через мост.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
. Для этого в /etc/sysctl.conf
добавьте
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
# sysctl -p /etc/sysctl.conf
Перезапустите libvirt
libvirt
:
# service libvirtd reload
virt-install
добавьте параметр --network=bridge:installation
(где installation
— созданный мост). Для PXE-установок используется параметр --pxe
.
# virt-install --accelerate --hvm --connect qemu:///system \ --network=bridge:installation --pxe\ --name EL10 --ram=756 \ --vcpus=4 --os-type=linux --os-variant=rhel5 --file=/var/lib/libvirt/images/EL10.img \
Выберите PXE
Выберите мост
Начните установку
virsh update-device Guest1 ~/Guest1.xml
(substituting your guest's name and XML file), and select OK to continue past this step.
kernel-xen
.
virt-manager
, refer to the procedure in Раздел 7.2, «Создание виртуальных машин с помощью virt-manager».
virt-install
(для графической установки укажите --vnc
). В приведенном ниже примере будет создана система с именем rhel5PV
, ее образ расположен в rhel5PV.dsk
, локальное зеркало дерева установки Red Hat Enterprise Linux 5 — в ftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
.
# virt-install -nrhel5PV
-r 500 \ -f /var/lib/libvirt/images/rhel5PV.dsk
-s 3 --vnc -p \ -lftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
DHCP
(as shown below) or a static IP address:
Код установки
.
rhn_register
(потребуются права root).
virt-install
in Раздел 8.1, «Установка паравиртуализированной системы Red Hat Enterprise Linux 5». If you used the default example the name is rhel5PV
.
# virsh reboot rhel5PV
virt-manager
, выберите имя гостевой системы и нажмите (Open), затем (Run).
kdump
. The use of kdump
is unsupported on para-virtualized guests.
yum
command or RHN. Click .
Откройте virt-manager
virt-manager
.
Выберите гипервизор
qemu
).
Запустите мастер создания виртуальных машин.
Выберите имя для виртуальной машины
Выберите тип виртуализации
Выберите способ установки
Укажите путь к установочному носителю
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Раздел 18.2, «Виртуализация и SELinux» for details.
Настройка хранилищ
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Настройка сетевого окружения
Выделение ресурсов памяти и процессоров
Проверьте настройки и начните установку
Установка Red Hat Enterprise Linux
Откройте virt-manager
Выберите имя виртуальной системы
Выберите тип виртуализации
Выберите способ установки
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Раздел 18.2, «Виртуализация и SELinux» for details.
Choose installation image
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Раздел 18.2, «Виртуализация и SELinux» for details.
/var/lib/libvirt/images/
. Если же вы хотите изменить каталог (например, на /images/
), прежде чем приступить к установке, потребуется его добавить в политику SELinux. Позднее будет описано, как изменить политику SELinux.
Настройка сетевого окружения
HAL
, once you get the dialog box in the Windows install select the 'Generic i486 Platform
' tab. Scroll through selections with the Up and Down arrows.
# virsh start WindowsGuest
имя
именем созданной виртуальной машины.
virsh reboot имя
. Вы должны увидеть сообщение о повторном запуске процесса настройки.
virt-install
command. virt-install
can be used instead of virt-manager
This process is similar to the Windows XP installation covered in Раздел 8.3, «Установка полностью виртуализированной системы Windows XP».
virt-install
for installing Windows Server 2003 as the console for the Windows guest opens the virt-viewer
window promptly. The examples below installs a Windows Server 2003 guest with the virt-install
command.
Xen virt-install
# virt-install --virt-type=xen -hvm \ --name windows2003sp1 --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
KVM virt-install
# virt-install --accelerate --hvm --connect qemu:///system \ --name rhel3support \ --network network:default \ --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
Standard PC
.
Откройте virt-manager
virt-manager
.
Выберите гипервизор
qemu
).
Запустите мастер создания виртуальных машин
Выберите имя для виртуальной машины
Выберите тип виртуализации
Выберите способ установки
Укажите путь к установочному носителю
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Раздел 18.2, «Виртуализация и SELinux» for details.
Настройка хранилищ
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Настройка сетевого окружения
Выделение ресурсов памяти и процессоров
Проверьте настройки и начните установку
Установка Windows
Содержание
/dev/xvd[a to z][1 to 15]
/dev/xvdb13
/dev/xvd[a to i][a to z][1 to 15]
/dev/xvdbz13
/dev/sd[a to p][1 to 15]
/dev/sda1
/dev/hd[a to t][1 to 63]
/dev/hdd3
dd
command. Replace /dev/fd0
with the name of a floppy device and name the disk appropriately.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
, в которой выполняется полностью виртуализированная система Red Hat Enterprise Linux. Ее образ расположен в /var/lib/libvirt/images/rhel5FV.img
.
# virsh dumpxml rhel5FV > rhel5FV.xml
# dd if=/dev/zero of=/var/lib/libvirt/images/rhel5FV-floppy.img bs=512 count=2880
<disk type='file' device='floppy'> <source file='/var/lib/libvirt/images/rhel5FV-floppy.img'/> <target dev='fda'/> </disk>
virsh shutdown
command instead.
# virsh destroy rhel5FV
# virsh create rhel5FV.xml
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096
Guest1
будет сохранен в домашний каталог.
# virsh dumpxmlGuest1
> ~/Guest1
.xml
Guest1.xml
в текстовом редакторе и найдите записи, которые начинаются с «disk=
». Они выглядят примерно так:
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk>
<disk=>
. Не забудьте указать имя виртуального блочного устройства, которое еще не упоминается в файле конфигурации. Пример добавления образа FileName.img
:
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk> <disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/FileName.img'/> <target dev='hda'/> </disk>
# virsh create Guest1.xml
FileName.img
as the device called /dev/sdb
. This device requires formatting from the guest. On the guest, partition the device into one primary partition for the entire device then format the device.
n
, чтобы создать новый раздел.
# fdisk /dev/sdb Command (m for help):
p
, чтобы определить этот раздел как основной.
Command action e extended p primary partition (1-4)
Partition number (1-4): 1
Enter
и введите номер первого цилиндра.
First cylinder (1-400, default 1):
Enter
.
Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):
t
, чтобы указать тип раздела.
Command (m for help): t
1
).
Partition number (1-4): 1
83
(linux).
Hex code (type L to list codes): 83
q
для выхода.
Command (m for help):w
Command (m for help):q
ext3
.
# mke2fs -j /dev/sdb1
# mount /dev/sdb1 /myfiles
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
multipath
и сохранение постоянства в размещающей системе.
virsh attach
command. Replace: myguest
with your guest's name, /dev/sdb1
with the device to add, and sdc
with the location for the device on the guest. The sdc
must be an unused device name. Use the sd*
notation for Windows guests as well, the guest will recognize the device correctly.
--type cdrom
parameter to the command for CD-ROM or DVD devices.
--type floppy
.
# virsh attach-diskmyguest
/dev/sdb1
sdc
--driver tap --mode readonly
/dev/sdb
on Linux or D: drive
, or similar, on Windows. This device may require formatting.
multipath
must use Настройка одного пути. Systems running multipath
can use Многопутевая настройка.
udev
. Only use this procedure for hosts which are not using multipath
.
/etc/scsi_id.config
.
options=-b
отмечена как комментарий.
# options=-b
options=-g
udev
будет подразумевать, что все подключенные устройства SCSI возвращают UUID.
scsi_id -g -s /block/sd*
. Пример:
# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
/dev/sdc
.
scsi_id -g -s /block/sd*
, совпадает с идентификатором, получаемым компьютером, который обращается к устройству.
/etc/udev/rules.d
создайте файл 20-names.rules
, в который мы будем добавлять все новые правила. Формат правил:
KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID
", NAME="devicename
"
UUID
полученным ранее значением, а имя_устройства
именем. Пример правила:
KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev
теперь будет искать в правиле все устройства /dev/sd*
для заданного UUID. После подключения найденного устройства в систему ему будет присвоено заданное правилом имя. Так, в нашем примере устройство с UUID 3600a0b800013275100000015427b625e будет обозначено как /dev/rack4row16
.
/etc/rc.local
добавьте строку
/sbin/start_udev
/etc/scsi_id.config
, /etc/udev/rules.d/20-names.rules
, /etc/rc.local
на всех узлах.
/sbin/start_udev
multipath
, обеспечивающий высокую отказоустойчивость и производительность сетевых устройств хранения, подключенных к системам Red Hat Enterprise Linux.
multipath
environment requires defined alias names for your multipath devices. Each storage device has a UUID which acts as a key for the aliased names. Identify a device's UUID using the scsi_id
command.
# scsi_id -g -s /block/sdc
/dev/mpath
. В приведенном ниже примере определено 4 устройства в файле /etc/multipath.conf
:
multipaths { multipath { wwid 3600805f30015987000000000768a0019 alias oramp1 } multipath { wwid 3600805f30015987000000000d643001a alias oramp2 } mulitpath { wwid 3600805f3001598700000000086fc001b alias oramp3 } mulitpath { wwid 3600805f300159870000000000984001c alias oramp4 } }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
and /dev/mpath/oramp4
. Once entered, the mapping of the devices' WWID to their new names are now persistent after rebooting.
virsh
with the attach-disk
parameter.
# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly
The source
and target
parameters are paths for the files and devices, on the host and guest respectively. The source
parameter can be a path to an ISO file or the device from the /dev
directory.
libvirt
installation provides NAT based connectivity to virtual machines out of the box. This is the so called 'default virtual network'. Verify that it is available with the virsh net-list --all
command.
# virsh net-list --all Name State Autostart ----------------------------------------- default active yes
# virsh net-define /usr/share/libvirt/networks/default.xml
/usr/share/libvirt/networks/default.xml
содержит определения сетевого окружения, используемого по умолчанию.
# virsh net-autostart default Network default marked as autostarted
# virsh net-start default Network default started
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
libvirt
добавит правила iptables
, разрешающие прохождение трафика гостевых систем, подключенных к устройству virbr0
в цепочках INPUT
, FORWARD
, OUTPUT
и POSTROUTING
. Затем libvirt
попытается включить параметр ip_forward
. Но другие программы могут его отключить, поэтому в файл /etc/sysctl.conf
стоит добавить выражение
net.ipv4.ip_forward = 1
<interface type='network'> <source network='default'/> </interface>
<interface type='network'> <source network='default'/> <mac address='00:16:3e:1a:b3:4a'/> </interface>
/etc/xen/xend-config.sxp
измените строку
(network-script network-bridge)
(network-script /bin/true)
/etc/sysconfig/network-scripts/
directory):
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
" to the ifcfg-*
scripts used in the examples. If you do not either set this parameter or disable NetworkManager entirely, any bridge configuration will be overwritten and lost when NetworkManager next starts.
/etc/sysconfig/network-scripts
.
# cd /etc/sysconfig/network-scripts
ifcfg-eth0
содержит определение физического сетевого интерфейса, входящего в состав моста:
DEVICE=eth0 # change the hardware address to match the hardware address your NIC uses HWADDR=00:16:76:D6:C9:45 ONBOOT=yes BRIDGE=br0
MTU
variable to the end of the configuration file.
MTU=9000
ifcfg-br0
(или аналогичным названием) в каталоге /etc/sysconfig/network-scripts
. Здесь br0
обозначает имя моста и может иметь любую длину, главное — чтобы эта часть имени файла совпадала с параметром DEVICE.
DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0
ifcfg-br0
file). Network access will not function as expected if IP address details are configured on the physical interface that the bridge is connected to.
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
так, чтобы весь трафик перенаправлялся по созданному мосту.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
. Для этого в файл /etc/sysctl.conf
добавьте
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
.
# sysctl -p /etc/sysctl.conf
libvirtd
.
# service libvirtd reload
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes br0 8000.000e0cb30550 no eth0
virbr0
. НЕ пытайтесь подключить физическое устройство к virbr0
. Мост virbr0
используется исключительно для NAT.
virsh
(Глава 25, Управление виртуальными машинами с помощью virsh) and virt-manager
(Глава 26, Управление виртуальными машинами с помощью менеджера виртуальных машин (virt-manager)). Those chapters provide a detailed description of the networking configuration tasks using both tools.
system-config-network
или создайте новый файл конфигурации ifcfg-ethX
в /etc/sysconfig/network-scripts
. Замените «X» любым незанятым числом. Пример файла конфигурации для второго сетевого интерфейса eth1
:
$ cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 GATEWAY=10.1.1.254 ARP=yes
/etc/xen/scripts/network-bridge
в /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add the line (network-xen-multi-bridge)
. A typical xend-config.sxp
file should have the following line. Comment this line out. Use the # symbol to comment out lines.
network-script network-bridge
network-xen-multi-bridge
parameter to enable multiple network bridges.
#network-script network-bridge network-script network-xen-multi-bridge
network-xen-multi-bridge.sh
in the /etc/xen/scripts/
directory. A sample scripts is below, this example script will create two Xen network bridges (xenbr0 and xenbr1) one will be attached to eth1 and the other one to eth0. If you want to create additional bridges just follow the example in the script and copy nad paste the lines as required:
#!/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong. set -e # First arg is the operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${OP} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 ;; stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 ;; status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 ;; *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
# chmod +x /etc/xen/scripts/network-xen-multi-bridge.sh
# service network restart
virt-manager
. В Red Hat Enterprise Linux, начиная с 5.1, можно использовать NetworkManager.
<interface type='network'> <mac address='AA:AA:AA:AA:AA:AA'/> <source network='default'/> <target dev='vnet0'/> <model type='virtio'/> </interface>
xm
виртуальные сетевые устройства отмечены как «vif
».
ifup
or ifdown
calls to the network interface it is using. In addition wireless network cards do not work well in a virtualization environment due to Xen's (default) bridged network usage.
dummy0
. This will also allow you to use a hidden IP address space for your guests.
/etc/modprobe.conf
добавьте следующее:
alias dummy0 dummy options dummy numdummies=1
/etc/sysconfig/network-scripts/ifcfg-dummy0
:
DEVICE=dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes
xenbr0
фиктивному интерфейсу dummy0
, чтобы сетевое подключение можно было использовать даже при отсутствии соединения с физической сетью. В файл /etc/xen/xend-config.sxp
добавьте запись netdev=dummy0
:
(network-script 'network-bridge bridge=xenbr0 netdev=dummy0')
/etc/sysconfig/network
in the guest and modify the default gateway to point to dummy0
. If you are using a static IP, set the guest's IP address to exist on the same subnet as dummy0
.
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
/etc/init.d/xenLaptopNAT
и создать символьную ссылку на /etc/rc3.d/S99xenLaptopNAT
. Это позволит запускать NAT автоматически во время загрузки.
#!/bin/bash PATH=/usr/bin:/sbin:/bin:/usr/sbin export PATH GATEWAYDEV=`ip route | grep default | awk {'print $5'}` iptables -F case "$1" in start) if test -z "$GATEWAYDEV"; then echo "No gateway device found" else echo "Masquerading using $GATEWAYDEV" /sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE fi echo "Enabling IP forwarding" echo 1 > /proc/sys/net/ipv4/ip_forward echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`" echo "done." ;; *) echo "Usage: $0 {start|restart|status}" ;; esac
dnsmasq.tgz
. The tar archive includes the following files:
nm-dnsmasq
, который может выполнять роль распределяющего сценария для NetworkManager. Он будет выполняться каждый раз, когда NetworkManager обнаружит изменения подключения, и вызовет принудительный перезапуск или перезагрузку dnsmasq. Скопируйте его в /etc/NetworkManager/dispatcher.d/nm-dnsmasq
.
xenDNSmasq
, который может использоваться в качестве основного сценария запуска и остановки для /etc/init.d/xenDNSmasq
.
dnsmasq.conf
содержит пример файла конфигурации для /etc/dnsmasq.conf
.
dnsmasq
— двоичный образ для /usr/local/sbin/dnsmasq
.
/usr/local/sbin/dnsmasq
). Затем в файл конфигурации dnsmasq (/etc/dnsmaqs.conf
) необходимо внести изменения.
interface
. Укажите имя интерфейса (например, dummy0
), который dnsmasq
будет прослушивать на предмет запросов DHCP
и DNS
. Можно указать фиктивный интерфейс, но не локальный петлевой или общедоступные интерфейсы. Для одного интерфейса используется одна строка, повторите строку для других интерфейсов. Пример: interface=dummy0
.
dhcp-range
. Для активации интегрированного сервера DHCP
необходимо предоставить диапазон адресов, доступных для аренды, и, дополнительно, время аренды. Этот параметр нужно повторно определить для каждой сети, в которой будет предоставляться служба DHCP
. Например, для сети 10.1.1.* при 12-часовой аренде запись будет выглядеть так: dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12h
.
dhcp-option
. Переопределяет исходный маршрут, определенный dnsmasq, который изначально подразумевает, что маршрутизатор расположен в той же системе, где выполняется dnsmasq. Пример: dhcp-option=3,10.1.1.1
.
/etc/init.d
и присвойте ему имя xenDNSmasq
.
chkconfig --add xenDNSmasq
chkconfig --levels 345 xenDNSmasq on
dnsmasq
каждый раз, когда NetworkManager определяет изменения соединения, можно воспользоваться предоставленным сценарием nm-dnsmasq
.
nm-dnsmasq
в /etc/NetworkManager/dispatcher.d/
.
dnsmasq
также будет определять изменения в /etc/resolv.conf
и автоматически их применять (например, при запуске сеанса VPN).
nm-dnsmasq
и xenDNSmasq
также настроят преобразование сетевых адресов NAT, если виртуальные машины расположены в скрытой сети, так чтобы они могли обращаться к открытой сети.
pv-on-hvm
для паравиртуализированных драйверов в составе стандартного пакета ядра.
kmod-xenpv
.
kmod-xenpv
,
modules-init-tools
(for versions prior to Red Hat Enterprise Linux 4.6z you require modules-init-tools-3.1-0.pre5.3.4.el4_6.1
or greater), and
modversions
.
kmod-xenpv
.
/lib
file system.
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
Архитектура ядра | Red Hat Enterprise Linux 3 | Red Hat Enterprise Linux 4 | Red Hat Enterprise Linux 5 |
---|---|---|---|
athlon | Поддерживается (AMD) | ||
athlon-SMP | Поддерживается (AMD) | ||
i32e | Поддерживается (Intel) | ||
i686 | Поддерживается (Intel) | Поддерживается | Поддерживается |
i686-PAE | Поддерживается | ||
i686-SMP | Поддерживается (Intel) | Поддерживается | |
i686-HUGEMEM | Поддерживается (Intel) | Поддерживается | |
x86_64 | Поддерживается (AMD) | Поддерживается | Поддерживается |
x86_64-SMP | Поддерживается (AMD) | Поддерживается | |
x86_64-LARGESMP | Поддерживается | ||
Itanium (IA64) | Поддерживается |
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
kernel-PAE-2.6.18-53.1.4.el5.i686
GRUB
GRUB
или диск с образами ядра initrd
. Поэтому любой диск, содержащий раздел или каталог /boot
, не сможет использовать драйверы паравиртуализированных блочных устройств.
xen-pci-platform
завершится неудачей.
Тип ядра гостевой системы | Требуемый тип ядра размещающей системы |
---|---|
ia32e (UP и SMP) | x86_64 |
i686 | i686 |
i686-SMP | i686 |
i686-HUGEMEM | i686 |
Тип ядра гостевой системы | Требуемый тип ядра размещающей системы |
---|---|
athlon | i686 |
athlon-SMP | i686 |
x86_64 | x86_64 |
x86_64-SMP | x86_64 |
MBR
, загрузчика (GRUB
) и раздела /boot
. Этот диск не должен быть большим, его размер должен быть достаточен для размещения раздела /boot
.
/
, /usr
и т.д.) или логических томов.
/boot
будут использовать драйверы блочных устройств.
rpm
или yum
. Четыре модуля ядра будут установлены в /lib/modules/[%kversion][%kvariant]/extra/xenpv/%release
:
xen_platform_pci.ko
,
xen_balloon.ko
,
xen_vbd.ko
,
xen_vnif.ko
.
xen-vbd
) disk driver.
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
kernel-2.4.21-60.EL
for all the required headers.
kmod-xenpv
для вашей архитектуры и ядра в гостевую операционную систему.
rpm
. Важно правильно выбрать пакет для вашего варианта гостевой операционной системы и архитектуры.
[root@rhel3]# rpm -ivh kmod-xenpv*
[root@rhel3]# mkdir -p /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# cp -R /lib/modules/2.4.21-52.EL[%kvariant]/extra/xenpv/%release \ /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# depmod -ae [root@rhel3]# modprobe xen-vbd [root@rhel3]# modprobe xen-vnif
insmod
будет генерировать предупреждающие сообщения, так как в Red Hat Enterprise Linux 3 активен MODVERSIONS. Эти сообщения можно проигнорировать.
/etc/modules.conf
и убедитесь в наличии псевдонима для eth0
. Если планируется настроить несколько интерфейсов, для каждого интерфейса добавьте дополнительную строку.
alias eth0 xen-vnif
/etc/rc.local
добавьте:
insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
#shutdown -h now
в гостевой системе.
/etc/xen/YourGuestName
with a text editor, performing the following changes:
type=ioemu
из записи vif=
.
xen-vbd
.
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
weak-modules
и modversions
. Для добавления модуля выполните команду
insmod xen_vbd.ko
xen-vbd
. Далее приведена последовательность шагов для создания и регистрации паравиртуализированных блочных устройств.
#!/bin/sh module="xvd" mode="664" major=`awk "\\$2==\"$module\" {print \\$1}" /proc/devices` # < mknod for as many or few partitions on xvd disk attached to FV guest > # change/add xvda to xvdb, xvbd, etc. for 2nd, 3rd, etc., disk added in # in xen config file, respectively. mknod /dev/xvdb b $major 16 mknod /dev/xvdb1 b $major 17 mknod /dev/xvdb2 b $major 18 chgrp disk /dev/xvd* chmod 0660 /dev/xvd*
# mknod /dev/xvdc b $major 16 # mknod /dev/xvdc1 b $major 17
# mknod /dev/xvdd b $major 32 # mknod /dev/xvdd1 b $major 33
[root@rhel3]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 16 64000 xvdb 202 17 32000 xvdb1 202 18 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
.
[root@rhel3]# mkdir /mnt/pvdisk_p1 [root@rhel3]# mkdir /mnt/pvdisk_p2
[root@rhel3]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel3]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel3]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
так, чтобы подключение устройств осуществлялось во время загрузки системы.
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
kmod-xenpv
, modules-init-tools
и modversions
для вашей архитектуры и ядра в гостевую операционную систему.
rpm
. Важно правильно выбрать пакет для вашего варианта гостевой операционной системы и архитектуры. Потребуется обновленная версия пакета module-init-tools, которая начала поставляться с ядром Red Hat Enterprise Linux 4-6-z.
[root@rhel4]# rpm -ivh modversions [root@rhel4]# rpm -Uvh module-init-tools [root@rhel4]# rpm -ivh kmod-xenpv*
cat /etc/modprobe.conf
to verify you have an alias for eth0
like the one below. If you are planning to configure multiple interfaces add an additional line for each interface. If it does not look like the entry below change it.
alias eth0 xen-vnif
#shutdown -h now
в гостевой системе.
/etc/xen/имя_гостя
:
type=ioemu
из записи vif=
.
xen-vbd
.
disk=
файла конфигурации гостевой ОС.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
.
# virsh start YourGuestName
kudzu
предложит выбрать, удалить или оставить сетевое устройство Realtek, и попросит настроить устройство xen-bridge. Настройте xen-bridge
и удалите сетевое устройство Realtek.
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
[root@rhel4]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
.
[root@rhel4]# mkdir /mnt/pvdisk_p1 [root@rhel4]# mkdir /mnt/pvdisk_p2
[root@rhel4]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel4]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel4]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
так, чтобы подключение устройств осуществлялось во время загрузки системы.
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
xen-vbd
не загружается автоматически, в окне терминала виртуальной машины выполните приведенную ниже команду. Замените %release номером версии паравиртуализированного драйвера.
# insmod /lib/modules/'uname -r'/weak-updates/xenpv/%release/xen_vbd.ko
#shutdown -h now
в гостевой системе.
/etc/xen/<имя_гостя>
:
type=ioemu
из записи vif=
.
xen-vbd
.
disk=
файла конфигурации гостевой ОС.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
.
# virsh start YourGuestName
[root@rhel5]# ifconfig eth0
[root@rhel5]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
.
[root@rhel5]# mkdir /mnt/pvdisk_p1 [root@rhel5]# mkdir /mnt/pvdisk_p2
[root@rhel5]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel5]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel5]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
так, чтобы подключение устройств осуществлялось во время загрузки системы.
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
/etc/modprobe.d/blacklist
file. Blacklist 8139cp
and 8139too
for the RealTek 8139 and e1000
for the virtualized Intel e1000 NIC.
8139cp
8139too
e1000
/etc/sysconfig/network-scripts
directory.
xen_emul_unplug=never
virt-manager
для гостевой системы и авторизуйтесь как root
.
/etc/modprobe.conf
содержит строку alias eth0 xen-vnif
.
# cat /etc/modprobe.conf alias eth0 xen-vnif
eth0
execute “# ifconfig eth0
”. If you receive an error about the device not existing you should load the modules manually as outlined in Раздел 36.4, «Загрузка паравиртуализированных драйверов вручную».
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:00:00:6A:27:3A BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:846 (846.0 b)
# system-config-network
”. Click on the “ ” button to start the network card configuration.
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:49:E4:E0 inet addr:192.168.78.180 Bcast:192.168.79.255 Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:501209 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:46265452 (44.1 MiB)
/etc/xen/имя_гостя
.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0" ]
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0", "mac=00:16:3e:2f:d5:a9,bridge=xenbr0" ]
# echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
/etc/modules.conf
(для Red Hat Enterprise Linux 3) или /etc/modprobe.conf
(для Red Hat Enterprise Linux 4 и Red Hat Enterprise Linux 5). Для всех добавляемых интерфейсов создайте новый псевдоним.
alias eth1 xen-vnif
# ifconfig eth1
redhat-config-network
(для Red Hat Enterprise Linux 3) или system-config-network
(для Red Hat Enterprise Linux 4 и Red Hat Enterprise Linux 5).
/etc/xen/имя_гостя
. Исходная запись будет выглядеть примерно так:
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w"]
disk=
. Ниже приведен пример записи описания паравиртуализированных драйверов. Параметр tap:aio
заставит гипервизор использовать паравиртуализированный драйвер.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w" ]
disk=
, разделяя их запятой.
xvd
' device, that is for your second storage entity it would be 'xvdb
' instead of 'xvda
'.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w", "tap:aio:/var/lib/libvirt/images/UserStorage2.dsk,xvdb,w" ]
# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvda 202 1 64000 xvdb 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
.
/etc/fstab
в гостевой системе, чтобы подключение осуществлялось во время загрузки.
# mkdir /mnt/pvdisk_xvda # mkdir /mnt/pvdisk_xvdb # mount /dev/xvda /mnt/pvdisk_xvda # mount /dev/xvdb /mnt/pvdisk_xvdb # df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda 64000 15 63985 1% /mnt/pvdisk_xvda /dev/xvdb 64000 15 63985 1% /mnt/pvdisk_xvdb
Загрузите драйверы
yum
command.
# yum install virtio-win
virtio-win.iso
в каталог /usr/share/virtio-win/
.
Установите паравиртуализированные драйверы
virt-manager
» to add a CD-ROM image with virt-manager
and then install the drivers.
virt-manager
Open virt-manager and the virtualized guest
virt-manager
, select your virtualized guest from the list by double clicking the guest name.
Open the hardware tab
Select the device type
Select the ISO file
/usr/share/virtio-win/virtio-win.iso
.
Disc assigned
Reboot
Open My Computer
Select the correct installation files
RHEV-Block.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
RHEV-Network.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
Install the block device driver
Start the block device driver installation
RHEV-Block.msi
or RHEV-Block64.msi
.
Confirm the exception
Finish
Install the network device driver
Start the network device driver installation
RHEV-Network.msi
or RHEV-Network64.msi
.
Performance setting
Value | Action |
---|---|
0 | Disable TCP timestamps and window scaling. |
1 | Enable TCP window scaling. |
2 | Enable TCP timestamps. |
3 | Enable TCP timestamps and window scaling. |
Confirm the exception
Finish
Reboot
viostor.vfd
как дисковод.
Windows Server 2003
Windows Server 2008
virtio
driver instead of virtualized IDE driver. This example edits libvirt configuration files. Alternatively, virt-manager
, virsh attach-disk
or virsh attach-interface
can add a new device using the para-virtualized drivers Раздел 13.4, «Использование паравиртуализированных драйверов KVM для новых устройств».
<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='vda' bus='ide'/> </disk>
virtio
, чтобы использовать паравиртуализированное устройство.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='vda' bus='virtio'/>
</disk>
virt-manager
.
virsh attach-disk
и virsh attach-interface
.
virt-manager
.
Enable the Intel VT-d extensions
Activate Intel VT-d in the kernel
intel_iommu=on
parameter to the kernel line of the kernel line in the /boot/grub/grub.conf
file.
grub.conf
file with Intel VT-d activated.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-190.el5) root (hd0,0) kernel /vmlinuz-2.6.18-190.el5 ro root=/dev/VolGroup00/LogVol00 intel_iommu=on initrd /initrd-2.6.18-190.el5.img
Ready to use
Enable AMD IOMMU extensions
iommu=on
parameter to the hypervisor command line. Modify the /boot/grub/grub.conf
file as follows to enable PCI passthrough:
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=on module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-190.el5xen.img
pci_8086_3a6c
, and a fully virtualized guest named win2k3
.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
virsh nodedev-dumpxml
command:
# virsh nodedev-dumpxml pci_8086_3a6c <device> <name>pci_8086_3a6c</name> <parent>computer</parent> <capability type='pci'> <domain>0</domain> <bus>0</bus> <slot>26</slot> <function>7</function> <id='0x3a6c'>82801JD/DO (ICH10 Family) USB2 EHCI Controller #2</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
$ printf %x 0 0 $ printf %x 26 1a $ printf %x 7 7
bus='0x00' slot='0x1a' function='0x7'
virsh edit
(or virsh attach device) and add a device entry in the <devices>
section to attach the PCI device to the guest. Only run this command on offline guests. Red Hat Enterprise Linux does not support hotplugging PCI devices at this time.
# virsh edit win2k3
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x00' slot='0x1a' function='0x7'/>
</source>
</hostdev>
ehci
driver is loaded by default for the USB PCI controller.
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/ehci_hcd
$ virsh nodedev-dettach pci_8086_3a6c
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/pci-stub
# setsebool -P virt_use_sysfs 1
# virsh start win2k3
virt-manager
tool. The following procedure adds a 2 port USB controller to a virtualized guest.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Detach the PCI device
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
Power off the guest
Open the hardware settings
Add the new device
Select a PCI device
Confirm the new device
--host-device
parameter.
Identify the PCI device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Add the device
virsh nodedev
command as the value for the --host-device
parameter.
# virt-install \
-n hostdev-test -r 1024 --vcpus 2 \
--os-variant fedora11 -v --accelerate \
-l http://download.fedoraproject.org/pub/fedora/linux/development/x86_64/os \
-x 'console=ttyS0 vnc' --nonetworks --nographics \
--disk pool=default,size=8 \
--debug --host-device=pci_8086_10bd
Complete the installation
/etc/modprobe.conf
hides the device from dom0. Either the bnx2
module must be reloaded or the host must be restarted.
install bnx2 /sbin/modprobe pciback; /sbin/modprobe --first-time --ignore-install bnx2 options pciback hide=(0000:09:00.0)
/etc/modprobe.conf
to hide multiple devices.
options pciback hide=(0000:09:00.0)(0000:0a:04.1)
virsh
(Раздел 14.1, «Adding a PCI device with virsh» - Step 5);
virt-manager
(Раздел 14.2, «Adding a PCI device with virt-manager»); or
virt-install
(Раздел 14.3, «PCI passthrough with virt-install»)
/boot/grub/grub.conf
file to enable SR-IOV. To enable SR-IOV with Xen for Intel systems append the pci_pt_e820_access=on
parameter to the kernel.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=1 module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 pci_pt_e820_access=on module /initrd-2.6.18-192.el5xen.img
Enable Intel VT-d in BIOS and in the kernel
Verify support
lspci
command to verify if the device was detected.
# lspci 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Start the SR-IOV kernel modules
modprobe
command. The Intel 82576 network interface card uses the igb
driver kernel module.
# modprobe igb [<option>=<VAL1>,<VAL2>,] # lsmod |grep igb igb 87592 0 dca 6708 1 igb
Activate Virtual Functions
max_vfs
parameter of the igb
module allocates the maximum number of Virtual Functions. The max_vfs
parameter causes the driver to spawn, up to the value of the parameter in, Virtual Functions. For this particular card the valid range is 0
to 7
.
# modprobe -r igb
max_vfs
set to 1
or any number of Virtual Functions up to the maximum supported by your device.
# modprobe igb max_vfs=1
Inspect the new Virtual Functions
lspci
command, list the newly added Virtual Functions attached to the Intel 82576 network device.
# lspci | grep 82576 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01) 03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
-n
parameter of the lspci
command.
# lspci -n | grep 03:00.0 03:00.0 0200: 8086:10c9 (rev 01) # lspci -n | grep 03:10.0 03:10.0 0200: 8086:10ca (rev 01)The Physical Function corresponds to
8086:10c9
and the Virtual Function to 8086:10ca
.
Find the devices with virsh
virsh nodedev-list
command to list available host devices.
# virsh nodedev-list | grep 8086
pci_8086_10c9
pci_8086_10c9_0
pci_8086_10ca
pci_8086_10ca_0
[output truncated]
Get advanced details
pci_8086_10c9
is one of the Physical Functions and pci_8086_10ca_0
is the first corresponding Virtual Function for that Physical Function. Use the virsh nodedev-dumpxml
command to get advanced output for both devices.
# virsh nodedev-dumpxml pci_8086_10ca # virsh nodedev-dumpxml pci_8086_10ca_0 <device> <name>pci_8086_10ca_0</name> <parent>pci_8086_3408</parent> <driver> <name>igbvf</name> </driver> <capability type='pci'> <domain>0</domain> <bus>3</bus> <slot>16</slot> <function>1</function> <product id='0x10ca'>82576 Virtual Function</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
pci_8086_10ca_0
to the guest in Шаг 8. Note the bus
, slot
and function
parameters of the Virtual Function, these are required for adding the device.
Add the Virtual Function to the guest
virsh nodedev-dumpxml pci_8086_10ca_0
command to calculate the values for the configuration file. Convert slot and function values to hexadecimal values (from decimal) to get the PCI bus addresses. Append "0x" to the beginning of the output to tell the computer that the value is a hexadecimal number.
printf
utility to convert decimal values to hexadecimal values.
$ printf %x 3 3 $ printf %x 16 10 $ printf %x 1 1
bus='0x03' slot='0x10' function='0x01'
virsh edit
command. This example edits a guest named MyGuest
.
# virsh edit MyGuest
devices
section of the XML configuration file.
<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address bus='0x03' slot='0x10' function='0x01'/> </source> </hostdev>
Restart
# virsh start MyGuest
# virsh start test error: Failed to start domain test error: internal error unable to start guest: char device redirected to /dev/pts/2 get_real_device: /sys/bus/pci/devices/0000:03:10.0/config: Permission denied init_assigned_device: Error: Couldn't get real device (03:10.0)! Failed to initialize assigned device host=03:10.0
# service ntpd start
# chkconfig ntpd on
ntpd
поможет минимизировать последствия расхождения часов.
constant_tsc
. Чтобы узнать, есть ли флаг constant_tsc
:
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc
. Если же вывод пуст, обратитесь к приведенным ниже инструкциям.
constant_tsc
отключите все возможности управления питанием (BZ #513138). Каждая система обладает несколькими таймерами, которые используются для синхронизации. В размещающей системе частота счетчика TSC может колебаться вследствие изменений cpufreq
, перехода в Deep C-состояние или миграции на узел с более быстрым TSC. Для отключения Deep C-состояния остановите счетчик, добавьте processor.max_cstate=1
в строку параметров grub на узле:
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
cpufreq
(только если отсутствует бит constant_tsc
). Для этого в файле /etc/sysconfig/cpuspeed
измените значения переменных MIN_SPEED
и MAX_SPEED
на максимально возможное значение частоты. Диапазоны частот можно найти в файлах /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
.
/kernel
файла /boot/grub/grub.conf
, расположенного в гостевой системе.
Red Hat Enterprise Linux | Дополнительные параметры ядра |
---|---|
5.4 AMD64/Intel 64 с паравиртуализированными часами | Дополнительные параметры не нужны |
5.4 AMD64/Intel 64 без паравиртуализированных часов | divider=10 notsc lpj=n |
5.4 x86 с паравиртуализированными часами | Дополнительные параметры не нужны |
5.4 x86 без паравиртуализированных часов | divider=10 clocksource=acpi_pm lpj=n |
5.3 AMD64/Intel 64 | divider=10 notsc |
5.3 x86 | divider=10 clocksource=acpi_pm |
4.8 AMD64/Intel 64 | notsc divider=10 |
4.8 x86 | clock=pmtmr divider=10 |
3.9 AMD64/Intel 64 | Дополнительные параметры не нужны |
3.9 x86 | Дополнительные параметры не нужны |
boot.ini
добавьте следующее:
/use pmtimer
boot.ini
file is no longer used from Windows Vista and newer. Windows Vista, Windows Server 2008 and Windows 7 use the Boot Configuration Data Editor (bcdedit.exe
) to modify the Windows boot parameters.
{default}
in the example below) should be changed if the system UUID is different than the default boot device.
C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK on The operation completed successfully
# setenforce 1
AutoFS
, NFS
, FTP
, HTTP
, NIS
, telnetd
, sendmail
и пр.
/var/lib/libvirt/images/
. Если же вы используете другой каталог, убедитесь, что это отражено в настройках политики SELinux.
vsftpd
.
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes.
/dev/sdb
). Use partitions (for example, /dev/sdb1
) or LVM volumes.
virt_image_t
label applied to them. The /var/lib/libvirt/images
directory has this label applied to it and its contents by default. This does not mean that images must be stored in this directory; images can be stored anywhere, provided they are labeled with virt_image_t
.
группа_томов
будет выглядеть так:
# lvcreate -nNewVolumeName
-L5G volumegroup
новый_том
и создайте файловую систему, поддерживающую расширенные атрибуты, например, ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
/etc
, /var
, /sys
) и домашних каталогах (/home
или /root
).
# mkdir /virtstorage
# mount /dev/volumegroup/NewVolumeName /virtstorage
semanage fcontext -a -t xen_image_t "/virtstorage(/.*)?"
semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local
. Добавленное выражение обеспечит постоянство этих изменений.
/virtstorage(/.*)? system_u:object_r:xen_image_t:s0
/dev/volumegroup/NewVolumeName
with the correct label:
# semanage fcontext -a -t xen_image_t /dev/volumegroup/NewVolumeName # restorecon /dev/volumegroup/NewVolumeName
# semanage fcontext -a -t xen_image_t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
переводит xend
в незащищенный режим после его перезапуска. Если вы решили отключить защиту, лучше это сделать отдельно для демона, а не для всей системы. Не рекомендуется задавать метку xen_image_t
для каталогов, которые планируется использовать для других целей.
SELinux Boolean | Description |
---|---|
allow_unconfined_qemu_transition | Default: off. This boolean controls whether KVM guests can be transitioned to unconfined users. |
qemu_full_network | Default: on. This boolean controls full network access to KVM guests. |
qemu_use_cifs | Default: on. This boolean controls KVM's access to CIFS or Samba file systems. |
qemu_use_comm | Default: off. This boolean controls whether KVM can access serial or parallel communications ports. |
qemu_use_nfs | Default: on. This boolean controls KVM's access to NFS file systems. |
qemu_use_usb | Default: on. This boolean allows KVM to access USB devices. |
net.ipv4.ip_forward = 1
) is required for virtual bridge devices. Note that installing libvirt enables this variable so it will be enabled when the virtualization packages are installed unless it was manually disabled.
xend
/etc/xen/xend-config.sxp
. Ниже приведены доступные параметры.
Параметр | Описание |
---|---|
(console-limit)
|
Determines the console server's memory buffer limit and assigns that limit on a per domain basis.
|
(min-mem)
|
Определяет минимальный объем памяти в мегабайтах, выделяемый домену 0. Если указано значение 0, объем не меняется.
|
(dom0-cpus)
|
Определяет число процессоров, которые домен 0 сможет использовать. По умолчанию назначается 1.
|
(enable-dump)
|
Определяет, выполнять ли дамп ядра при сбое. По умолчанию установлено в 0.
|
(external-migration-tool)
|
Задает приложение или сценарий, отвечающий за миграцию внешних устройств. Сценарии должны располагаться в
/etc/xen/scripts/external-device-migrate .
|
(logfile)
|
Задает расположение файла журнала. По умолчанию журнал будет сохранен в
/var/log/xend.log .
|
(loglevel)
|
Устанавливает уровень критичности сообщений, записываемых в журнал. Доступные значения: DEBUG, INFO, WARNING, ERROR, CRITICAL. По умолчанию используется DEBUG.
|
(network-script)
|
Задает сценарий, активирующий сетевое окружение. Сценарии должны располагаться в каталоге
/etc/xen/scripts .
|
(xend-http-server)
|
Определяет, активировать ли HTTP-сервер управления пакетами. По умолчанию сервер отключен.
|
(xend-unix-server)
|
Определяет, активировать ли сокет-сервер домена. Сокет-сервер представляет собой конечную точку, где обрабатываются сетевые соединения низкого уровня, которая разрешает или запрещает входящие подключения. Значение по умолчанию — yes.
|
(xend-relocation-server)
|
Активирует сервер перемещения для поддержки миграции между машинами. По умолчанию сервер отключен.
|
(xend-unix-path)
|
Задает расположение вывода данных команды
xend-unix-server . По умолчанию вывод будет сохранен в /var/lib/xend/xend-socket .
|
(xend-port)
|
Определяет порт, используемый HTTP-сервером. По умолчанию используется порт 8000.
|
(xend-relocation-port)
|
Определяет порт, используемый сервером перемещения. По умолчанию используется порт 8002.
|
(xend-relocation-address)
|
Определяет адреса узлов, которым разрешена миграция. По умолчанию используется значение параметра
xend-address .
|
(xend-address)
|
Определяет адрес, которому сопоставлен сокет-сервер. По умолчанию разрешены все подключения.
|
service xend start
service xend stop
service xend restart
service xend status
xend
во время загрузкиchkconfig
добавьте xend
в initscript
.
chkconfig --level 345 xend
xend
будет запущен на уровнях выполнения 3, 4, 5.
virsh migrate
осуществляет перенос.
# virsh migrateGuestName
libvirtURI
--live
команды virsh migrate
:
# virsh migrate--liveGuestName
libvirtURI
/etc/xen/xend-config.sxp
. По умолчанию миграция отключена во избежание проблем безопасности, так как при открытии порта для переноса возникает риск инициации процесса миграции неавторизованными узлами. Поскольку не существует специального механизма аутентификации для обработки запросов миграции, следует уделить особое внимание защите порта миграции.
/etc/xen/xend-config.sxp
измените следующие записи:
(xend-relocation-server yes)
no
» отключает миграцию. Измените его на «yes
».
(xend-relocation-port 8002)
(xend-relocation-port)
позволяет задать порт, используемый демоном xend
для интерфейса переноса. При этом xend-relocation-server
должен иметь значение «yes
».
(xend-relocation-address '')
(xend-relocation-address)
задает адрес, который xend
должен прослушивать на предмет поступления команд миграции для relocation-socket
(если определен xend-relocation-server
).
(xend-relocation-address)
parameter restricts the migration server to only listen to a specific interface. The default value in /etc/xen/xend-config.sxp
is an empty string(''
). This value should be replaced with a single, valid IP address. For example:
(xend-relocation-address '10.0.0.1')
(xend-relocation-hosts-allow '')
(xend-relocation-hosts-allow 'hosts')
parameter controls which hostnames can communicate on the relocation port.
xend-relocation-hosts-allow
option to restrict access to the migration server.
xend-relocation-port
и xend-relocation-address
).
(xend-relocation-hosts-allow )
может содержать набор регулярных выражений, разделенных пробелом. Будут разрешены подключения с узлов, полностью квалифицированные имена или IP-адреса которых удовлетворяют одному из выражений.
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
# service xend restart
et-virt07
и et-virt08
). Оба сервера в качестве стандартного интерфейса используют eth1
, и, как следствие, сетевой мост xenbr1
. Для организации общего хранилища с помощью NFS мы будем использовать локально подключенный SCSI-диск /dev/sdb
на сервере et-virt07
.
# mkdir /var/lib/libvirt/images # mount /dev/sdb /var/lib/libvirt/images
/var/lib/libvirt/images/
, убедитесь, что осуществляется экспорт ТОЛЬКО /var/lib/libvirt/images/
а НЕ /var/lib/xen/
, так как этот каталог используется демоном xend
и другими процессами. Разрешение совместного доступа к /var/lib/xen/
может привести к непредсказуемым результатам.
# cat /etc/exports /var/lib/libvirt/images *(rw,async,no_root_squash)
# showmount -e et-virt07 Export list for et-virt07: /var/lib/libvirt/images *
# virt-install -p -f /var/lib/libvirt/images/testvm1
.dsk -s 5 -n\testvm1
--vnc -r 1024 -l http://example.com/RHEL5-tree\ Server/x86-64/os/ -b xenbr1
[et-virt08 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt08 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt07 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3445 root 14u IPv4 10223 TCP *:teradataordbms (LISTEN)
[et-virt08 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3252 root 14u IPv4 10901 TCP *:teradataordbms (LISTEN)
/var/lib/libvirt/images
directory is available and mounted with networked storage on both hosts. Shared, networked storage is required for migrations.
[et-virt08 ~]# df /var/lib/libvirt/images Filesystem 1K-blocks Used Available Use% Mounted on et-virt07:/var/lib/libvirt/images 70562400 2379712 64598336 4% /var/lib/libvirt/images
[et-virt08 ~]# file /var/lib/libvirt/images/testvm1
.dsk /var/lib/libvirt/images/testvm1
.dsk: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845, 10265535 sectors, code offset 0x48
[et-virt08 ~]# touch /var/lib/libvirt/images/foo [et-virt08 ~]# rm -f /var/lib/libvirt/images/foo
[et-virt07 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 ~]# virsh starttestvm1
Domaintestvm1
started
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt07 images]# time virsh savetestvm1
testvm1
.sav real 0m15.744s user 0m0.188s sys 0m0.044s
[et-virt07 images]# ls -lrttestvm1
.sav -rwxr-xr-x 1 root root 1075657716 Jan 12 06:46testvm1
.sav
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 images]# virsh restore testvm1
.sav
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
domain-id
from et-virt08
to et-virt07
. The hostname you are migrating to and <domain-id> must be replaced with valid values. This example uses the et-virt08
host which must have SSH access to et-virt07
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
et-virt08
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
running
#!/bin/bash while true do touch /var/tmp/$$.log echo `hostname` >> /var/tmp/$$.log echo `date` >> /var/tmp/$$.log cat /var/tmp/$$.log df /var/tmp ls -l /var/tmp/$$.log sleep 3 done
et-virt07
, убедитесь, что она работает на et-virt08
:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
. Чтобы просмотреть, сколько времени займет процесс миграции, можно добавить команду time
.
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:33 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 02:26 /var/tmp/2279.log Fri Jan 12 02:26:45 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:48 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:51 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:54:57 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 744 Jan 12 06:55 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007
et-virt08
:
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
на et-virt08
.
[et-virt07 images]# xm migrate --live testvm1
et-virt08
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 248 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 310 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:06 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 372 Jan 12 02:30 /var/tmp/2418.log
et-virt07
убедитесь, что виртуальная машина запущена на et-virt08
:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt08 ~]# time virsh migrate --live testvm1
et-virt07
real 0m10.378s
user 0m0.068s
sys 0m0.052s
xm migrate
. Живая миграция выполняется аналогично, но сначала необходимо внести некоторые изменения в файл конфигурации xend-config
.
(xend-relocation-server yes)
(xend-relocation-port 8002)
xend-relocation-port
определяет порт, используемый демоном xend
для миграции. Это значение надо изменить, только если сетевое окружение этого требует.
(xend-relocation-address )
xend-relocation-server
этот параметр определяет адрес, прослушивающий соединения сокета перемещения. Гипервизор Xen прослушивает сетевой трафик миграции для заданного интерфейса.
(xend-relocation-hosts-allow )
(xend-relocation-hosts-allow- '^localhost\\.localdomain$' )>
virsh
. Ее аргумент migrate
принимает параметры в следующем формате:
# virsh migrate --live GuestName DestinationURL
имя_гостя
именем переносимой виртуальной машины.
целевой_URL
можно заменить ссылкой или именем узла принимающей системы. Она должна выполняться в той же версии Red Hat Enterprise Linux, использовать тот же гипервизор и в ней должна выполняться утилита libvirt
.
RHEL4test
с узла test1.example.com
на test2.example.com
.
Убедитесь, что виртуальная машина работает
RHEL4test
выполняется на test1.example.com
:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
Можно приступить к миграции
test2.example.com
. В конец ссылки добавьте /system
, чтобы сообщить libvirt о необходимости получения полного доступа.
# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system
Подождите
virsh
будет сообщать только об ошибках. Машина будет продолжать работу на исходном узле до завершения переноса.
Проверьте результат переноса
RHEL4test
выполняется на test2.example.com
:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
virt-manager
.
ssh
, TLS и SSL.
libvirt
по SSH-туннелю. Аутентификация осуществляется за счет использования общих ключей SSH и паролей или проверочных фраз, получаемых локальным агентом SSH. Доступная виртуальным машинам консоль VNC также защищена SSH.
virt-manager
virt-manager
must run as the user who owns the keys to connect to the remote host. That means, if the remote systems are managed by a non-root user virt-manager
must be run in unprivileged mode. If the remote systems are managed by the local root user then the SSH keys must be own and created by root.
virt-manager
.
Optional: Changing user
$ su -
Generating the SSH key pair
virt-manager
is used. This example uses the default key location, in the ~/.ssh/
directory.
$ ssh-keygen -t rsa
Coping the keys to the remote hosts
root@example.com
).
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@example.com root@example.com's password: Now try logging into the machine, with "ssh 'root@example.com'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting
Optional: Add the passphrase to the ssh-agent
ssh-agent
, if required. On the local host, use the following command to add the passphrase (if there was one) to enable password-less login.
# ssh-add ~/.ssh/id_rsa.pub
libvirt
(libvirtd
)libvirt
daemon provide an interface for managing virtual machines. You must have the libvirtd
daemon installed and running on every remote host that needs managing.
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtd
и SSH вы сможете обращаться к удаленным виртуальным машинам, управлять ими и обращаться к гостевым системам через VNC
.
libvirt
management connection opens a TCP port for incoming connections, which is securely encrypted and authenticated based on x509 certificates. In addition the VNC console for each guest virtual machine will be setup to use TLS with x509 certificate authentication.
libvirt
/etc/xen/xend-config.sxp
. Снимите комментарий с параметра (vnc-tls 1)
.
/etc/xen/vnc
directory needs the following 3 files:
ca-cert.pem
- The CA certificate
server-cert.pem
- The Server certificate signed by the CA
server-key.pem
- The server private key
(vnc-x509-verify 1)
parameter.
virt-manager
и virsh
libvirt
через TLS необходимо поместить сертификаты клиента и CA в /etc/pki
. На сайте http://libvirt.org/remote.html можно найти подробную информацию.
virt-manager
user interface, use the ' ' transport mechanism option when connecting to a host.
virsh
:
qemu://hostname.guestname/system
(для KVM);
xen://hostname.guestname/
(для Xen).
$HOME/.pki
. Эти файлы включают:
ca-cert.pem
: Сертификат CA.
libvirt-vnc
или clientcert.pem
: Сертификат клиента, подписанный центром CA.
libvirt-vnc
или clientkey.pem
: Частный ключ клиента.
libvirt
поддерживает следующие режимы передачи для удаленного управления:
/var/run/libvirt/libvirt-sock
и /var/run/libvirt/libvirt-sock-ro
(только для чтения).
libvirtd
, а порт 22 должен быть открыт для SSH-доступа. Инструменты управления ключами, подобные ssh-agent
, позволят избежать необходимости повторного ввода пароля.
ext
используется внешними программами, которые подключаются к удаленной машине без помощи libvirt, что обычно включает программы сторонних производителей без официальной поддержки безопасности. Поэтому этот параметр не поддерживается.
virsh
и libvirt
используют единообразный идентификатор ресурса URI (Uniform Resource Identifier) для подключения к удаленному узлу. Аргумент --connect
команды virsh
использует URI для выполнения команд на удаленном узле.
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
ccurran
к удаленному гипервизору Xen на узле towada
с использованием SSH:
xen+ssh://ccurran@towada/
towada
с использованием TLS:
xen://towada/
towada
using TLS. The no_verify=1
tells libvirt not to verify the server's certificate.
xen://towada/?no_verify=1
towada
с использованием SSH:
qemu+ssh://towada/system
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
test+tcp://10.1.1.10:5000/default
Параметр | Режим передачи | Описание | Пример |
---|---|---|---|
name | все | Имя можно получить из URI путем удаления протокола, имени узла, пользователя, номера порта и всех дополнительных параметров. В некоторых случаях, однако, имя рекомендуется задать напрямую. Оно будет передано удаленной функции virConnectOpen. | name=qemu:///system |
command | ssh, ext | Внешняя команда. Обязательна для ext. Для SSH по умолчанию используется «ssh». Поиск команды будет осуществляться в соответствии со значением PATH. | command=/opt/openssh/bin/ssh |
socket | unix, ssh | Путь к сокету домена UNIX. Переопределяет путь, используемый по умолчанию. Для SSH будет передаваться удаленной команде netcat (см. ниже). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
netcat | ssh |
Подключиться к удаленным системам можно с помощью команды
netcat . По умолчанию используется nc . Формат команды при использовании SSH:
Здесь
порт , пользователь , узел являются составляющими удаленного URI, а command , netcat и socket — получают свои значения из соответствующих параметров.
| netcat=/opt/netcat/bin/nc |
no_verify | tls | If set to a non-zero value, this disables client checks of the server's certificate. Note that to disable server checks of the client's certificate or IP address you must change the libvirtd configuration. | no_verify=1 |
no_tty | ssh | Ненулевое значение отключает запрос пароля, если SSH не может пройти авторизацию автоматически на удаленной машине (для ssh-agent и пр.). Используется при отсутствии доступа к терминалу, например, в графических программах использующих libvirt. | no_tty=1 |
Содержание
vmstat
iostat
lsof
# lsof -i :5900 xen-vncfb 10635 root 5u IPv4 218738 TCP grumble.boston.redhat.com:5900 (LISTEN)
qemu-img
systemTap
crash
xen-gdbserver
sysrq
sysrq t
sysrq w
sysrq c
brtcl
# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.feffffffffff no vif13.0 pdummy0 vif0.0
# brctl showmacs xenbr0 port no mac addr is local? aging timer 1 fe:ff:ff:ff:ff:ff yes 0.00
# brctl showstp xenbr0 xenbr0 bridge id 8000.feffffffffff designated root 8000.feffffffffff root port 0 path cost 0 max age 20.00 bridge max age 20.00 hello time 2.00 bridge hello time 2.00 forward delay 0.00 bridge forward delay 0.00 aging time 300.01 hello timer 1.43 tcn timer 0.00 topology change timer 0.00 gc timer 0.02 flags vif13.0 (3) port id 8003 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8003 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags pdummy0 (2) port id 8002 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8002 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags vif0.0 (1) port id 8001 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8001 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags
ifconfig
tcpdump
ps
pstree
top
kvmtrace
kvm_stat
xentop
xm dmesg
xm log
virsh
предназначена для управления виртуальными машинами и гипервизором.
virsh
использует libvirt API и служит альтернативой xm
и графическому менеджеру виртуальных машин (virt-manager
). Непривилегированные пользователи могут выполнять доступ в только в режиме чтения. С помощью virsh
можно исполнять сценарии для виртуальных машин.
Команда | Описание |
---|---|
help
| Краткая справка. |
list
| Просмотр всех виртуальных машин. |
dumpxml
| Вывод файла конфигурации XML для заданной виртуальной машины. |
create
| Создание виртуальной машины из файла конфигурации XML и ее запуск. |
start
| Запустить неактивную виртуальную машину. |
destroy
| Принудительно остановить работу виртуальной машины. |
define
| Определяет файл конфигурации XML для заданной виртуальной машины. |
domid
| Displays the guest's ID. |
domuuid
| Displays the guest's UUID. |
dominfo
| Просмотр сведений о виртуальной машине. |
domname
| Displays the guest's name. |
domstate
| Просмотр состояния виртуальной машины. |
quit
| Закрыть интерактивный терминал. |
reboot
| Перезагрузить виртуальную машину. |
restore
| Восстановить сохраненную в файле виртуальную машину. |
resume
| Возобновить работу приостановленной виртуальной машины. |
save
| Сохранить состояние виртуальной машины в файл. |
shutdown
| Корректно завершить работу виртуальной машины. |
suspend
| Приостановить работу виртуальной машины. |
undefine
| Удалить все файлы виртуальной машины. |
migrate
| Перенести виртуальную машину на другой узел. |
virsh
:
Команда | Описание |
---|---|
setmem
| Определяет размер выделенной виртуальной машине памяти. |
setmaxmem
| Ограничивает максимально доступный гипервизору объем памяти. |
setvcpus
| Изменяет число предоставленных машине виртуальных процессоров. |
vcpuinfo
| Просмотр информации о виртуальных процессорах. |
vcpupin
| Настройка соответствий виртуальных процессоров. |
domblkstat
| Просмотр статистики блочных устройств для работающей виртуальной машины. |
domifstat
| Просмотр статистики сетевых интерфейсов для работающей виртуальной машины. |
attach-device
| Подключить определенное в XML-файле устройство к виртуальной машине. |
attach-disk
| Подключить новое дисковое устройство к виртуальной машине. |
attach-interface
| Подключить новый сетевой интерфейс к виртуальной машине. |
detach-device
|
Отключить устройство от виртуальной машины (принимает те же определения XML, что и attach-device ).
|
detach-disk
| Отключить дисковое устройство от виртуальной машины. |
detach-interface
| Отключить сетевой интерфейс от виртуальной машины. |
virsh
:
Команда | Описание |
---|---|
version
|
Просмотр версии virsh .
|
nodeinfo
| Просмотр информации о гипервизоре. |
virsh
:
# virsh connect {hostname OR URL}
<узел>
— имя машины гипервизора. Чтобы начать сеанс в режиме чтения, добавьте параметр -readonly
.
virsh
:
# virsh dumpxml {domain-id, domain-name or domain-uuid}
stdout
). You can save the data by piping the output to a file. An example of piping the output to a file called guest.xml
:
# virsh dumpxmlThis fileGuestID
>guest.xml
guest.xml
can recreate the guest (refer to Editing a guest's configuration file. You can edit this XML configuration file to configure additional devices or to deploy additional guests. Refer to Раздел 33.1, «Использование файлов конфигурации с помощью virsh» for more information on modifying files created with virsh dumpxml
.
virsh dumpxml
:
# virsh dumpxml r5b2-mySQL01 <domain type='xen' id='13'> <name>r5b2-mySQL01</name> <uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid> <bootloader>/usr/bin/pygrub</bootloader> <os> <type>linux</type> <kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel> <initrd>/var/lib/libvirt/initrd.UQafMw</initrd> <cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline> </os> <memory>512000</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='00:16:3e:49:1d:11'/> <script path='vif-bridge'/> </interface> <graphics type='vnc' port='5900'/> <console tty='/dev/pts/4'/> </devices> </domain>
dumpxml
option (refer to Создание XML-файла конфигурации виртуальной машины). To create a guest with virsh
from an XML file:
# virsh create configuration_file.xml
dumpxml
option (refer to Создание XML-файла конфигурации виртуальной машины) guests can be edited either while they run or while they are offline. The virsh edit
command provides this functionality. For example, to edit the guest named softwaretesting
:
# virsh edit softwaretesting
$EDITOR
(по умолчанию используется vi
).
virsh
:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Возобновление работы виртуальной машины) option.
resume
команды virsh
:
# virsh resume {domain-id, domain-name or domain-uuid}
suspend
и resume
.
# virsh save {domain-name, domain-id or domain-uuid} filename
restore
(Восстановление виртуальной машины) option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.
virsh save
command (Сохранение виртуальной машины) using virsh
:
# virsh restore filename
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
parameter in the guest's configuration file.
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
element in the guest's configuration file.
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
can corrupt guest file systems . Use the destroy
option only when the guest is unresponsive. For para-virtualized guests, use the shutdown
option(Завершение работы виртуальной машины) instead.
# virsh domid {domain-name or domain-uuid}
# virsh domname {domain-id or domain-uuid}
# virsh domuuid {domain-id or domain-name}
virsh domuuid
:
# virsh domuuid r5b2-mySQL01 4a4c59a7-ee3f-c781-96e4-288f2862f011
virsh
with the guest's domain ID, domain name or UUID you can display information on the specified guest:
# virsh dominfo {domain-id, domain-name or domain-uuid}
virsh dominfo
:
# virsh dominfo r5b2-mySQL01 id: 13 name: r5b2-mysql01 uuid: 4a4c59a7-ee3f-c781-96e4-288f2862f011 os type: linux state: blocked cpu(s): 1 cpu time: 11.0s max memory: 512000 kb used memory: 512000 kb
# virsh nodeinfo
virsh nodeinfo
:
# virsh nodeinfo CPU model x86_64 CPU (s) 8 CPU frequency 2895 Mhz CPU socket(s) 2 Core(s) per socket 2 Threads per core: 2 Numa cell(s) 1 Memory size: 1046528 kb
# virsh list
--inactive
покажет список неактивных доменов (неактивным считается тот домен, который был определен, но в настоящий момент не является активным).
--all
покажет все виртуальные машины независимо от их состояния. Пример:
# virsh list --all Id Name State ---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
running
— работающие виртуальные машины, то есть те машины, которые используют ресурсы процессора в момент выполнения команды.
blocked
— заблокированные, неработающие машины. Такой статус может быть вызван ожиданием ввода/вывода или пребыванием машины в спящем режиме.
paused
— приостановленные домены. В это состояние они переходят, если администратор нажал кнопку паузы в окне менеджера виртуальных машин или выполнил команду xm pause
или virsh suspend
. В приостановленном состоянии гость продолжает потреблять ресурсы, но не может занимать больше процессорных ресурсов.
shutdown
— виртуальные машины, завершающие свою работу. При получении виртуальной машиной сигнала завершения работы, она начнет завершать все процессы. Стоит отметить, что некоторые операционные системы не отвечают на такие сигналы.
dying
— сбойные домены и домены, которые не смогли корректно завершить свою работу.
crashed
— сбойные домены, работа которых была прервана. В этом состоянии домены находятся, если не была настроена их перезагрузка в случае сбоя.
# virsh vcpuinfo {domain-id, domain-name or domain-uuid}
# virsh vcpuinfo r5b2-mySQL01 VCPU: 0 CPU: 0 State: blocked CPU time: 0.0s CPU Affinity: yy
# virsh vcpupin domain-id vcpu cpulist
domain-id
parameter is the guest's ID number or name.
VCPU
является обязательным и определяет число выделенных гостю виртуальных процессоров.
список_CPU
— список идентификаторов сопоставленных физических процессоров, разделенных запятой.
# virsh setvcpus {domain-name, domain-id or domain-uuid} count
virsh
:
# virsh setmem {domain-id or domain-name} count
# virsh domblkstat GuestName block-device
# virsh domifstat GuestName interface-device
virsh
позволяет переносить виртуальные машины с одного узла на другой. Для выполнения живой миграции просто нужно указать параметр --live
. Команда переноса выглядит так:
# virsh migrate --live GuestName DestinationURL
--live
не является обязательным.
виртуальная_машина
именем виртуальной машины, которую вы планируете перенести на другой узел.
URL
укажите ссылку на принимающий узел или его имя. Требования к принимающей системе:
libvirt
.
virsh
. Например, команда просмотра списка виртуальных сетей выглядит так:
# virsh net-list
# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
# virsh net-dumpxml NetworkName
# virsh net-dumpxml vnet1 <network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip> </network>
virsh net-autostart имя_сети
— автоматический запуск заданной сети.
virsh net-create файл_XML
— создание и запуск новой сети на основе существующего XML-файла.
virsh net-define файл_XML
— создание нового сетевого устройства на основе существующего XML-файла. Устройство не будет запущено.
virsh net-destroy имя_сети
— удаление заданной сети.
virsh net-name UUID_сети
— преобразование заданного идентификатора в имя сети.
virsh net-uuid имя_сети
— преобразование заданного имени в идентификатор UUID.
virsh net-start имя_неактивной_сети
— запуск неактивной сети.
virsh net-undefine имя_неактивной_сети
— удаление определения неактивной сети.
virt-manager
предоставляет графический интерфейс для доступа к гипервизорам и виртуальным машинам в локальной и удаленных системах. С помощью virt-manager
можно создать и полностью виртуализированные, и паравиртуализированные виртуальные машины. Кроме того, virt-manager
выполняет управляющие функции:
virt-manager
. The UUID field displays the globally unique identifier for the virtual machines.
dom0
)'s loopback address (127.0.0.1
). This ensures only those with shell privileges on the host can access virt-manager and the virtual machine through VNC.
virt-manager
sticky key capability to send these sequences. To use this capability, you must press any modifier key (Ctrl or Alt) 3 times and the key you specify gets treated as active until the next non-modifier key is pressed. You can then send Ctrl-Alt-F11 to the guest by entering the key sequence 'Ctrl Ctrl Ctrl Alt+F1'.
virt-manager
, it is not possible to use this sticky key feature to send a Sysrq key combination to a guest.
Система
, затем Virtual Machine Manager
(virt-manager
).
virt-manager
virt-manager
can be started remotely using ssh as demonstrated in the following command:
ssh -X host's address
[remotehost]# virt-manager
Using ssh
to manage virtual machines and hosts is discussed further in Раздел 22.1, «Удаленное управление с помощью SSH».
virt-manager
's preferences window.
DHCP
xm
позволяет управлять гипервизором Xen. И хоть большинство управляющих операций осуществляется с помощью libvirt, virt-manager или virsh
, иногда может понадобиться прибегнуть к помощи xm
. Однако не стоит этим злоупотреблять, так как xm
не проверяет ошибки.
xm
. Стоит заметить, что некоторые параметры для других реализаций xm
не будут работать в Red Hat Enterprise Linux 5. Ниже приведены действительные и рабочие параметры.
virsh
или virt-manager
, а не xm
, так как xm
не проверяет ошибки, в том числе в файлах конфигурации, а ошибки, в свою очередь, могут нарушить работу системы и виртуальных машин. Также стоит избегать редактирования файлов конфигурации Xen вручную. Приведенная в этой главе информация предназначена для ознакомления; мы не несем ответственность за последствия изменений файлов
xm
:
xm help [--long]
покажет доступные параметры и справку.
xm list
покажет активные домены:
$ xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 520 2 r----- 1275.5 r5b2-mySQL01 13 500 1 -b---- 16.1
xm create [-c] DomainName/ID
: start a virtual machine. If the -c option is used, the start up process will attach to the guest's console.
xm console DomainName/ID
: attach to a virtual machine's console.
xm destroy имя_домена/ID
останавливает работу виртуальной машины.
xm reboot имя_домена/ID
перезагружает виртуальную машину, при этом корректно завершая работу и запуская процесс заново.
xm shutdown имя_домена/ID
корректно завершает работу виртуальной машины.
xm pause
xm unpause
xm save
xm restore
xm migrate
xm
:
xm mem-set
xm vcpu-list
показывает список соответствий виртуальных процессоров физическим.
$ xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 r-- 708.9 any cpu Domain-0 0 1 1 -b- 572.1 any cpu r5b2-mySQL01 13 0 1 -b- 16.1 any cpu
xm vcpu-pin
xm vcpu-set
xm sched-credit
показывает параметры планировщика для заданного домена:
$ xm sched-credit -d 0 {'cap': 0, 'weight': 256} $ xm sched-credit -d 13 {'cap': 25, 'weight': 256}
xm
:
xm top
xm dmesg
xm info
xm log
xm uptime
показывает время работы виртуальных машин и узлов:
$ xm uptime Name ID Uptime Domain-0 0 3:42:18 r5b2-mySQL01 13 0:06:27
xm sysrq
xm dump-core
xm rename
xm domid
xm domname
xm vnet-list
в настоящее время не поддерживается.
/boot/grub/grub.conf
используется для создания меню доступных операционных систем. После установки пакета kernel-xen
сценарий добавит запись kernel-xen
в файл конфигурации GRUB. Таким образом, по умолчанию будет загружено ядро kernel-xen
. Чтобы это изменить или добавить дополнительные параметры, отредактируйте файл grub.conf
:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0,0) kernel /xen.gz.-2.6.18-3.el5 module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
initrd
и ядро Linux. Поскольку строка kernel находится в начале, ядро будет загружено в память первым. Загрузчик отправляет аргументы командной строки гипервизору и ядру Linux, а также их получает. Следующий пример демонстрирует, как можно ограничить объем памяти ядра домена Dom0 (800 мегабайт):
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0,0) kernel /xen.gz.-2.6.18-3.el5 dom0_mem=800M module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
mem
com1=115200, 8n1
dom0_mem
dom0_max_vcpus
acpi
/* **** Linux config options: propagated to domain0 ****/ /* "acpi=off": Disables both ACPI table parsing and interpreter. */ /* "acpi=force": Overrides the disable blacklist. */ /* "acpi=strict": Disables out-of-spec workarounds. */ /* "acpi=ht": Limits ACPI from boot-time to enable HT. */ /* "acpi=noirq": Disables ACPI interrupt routing. */
noacpi
/etc/elilo.conf
. Этот файл содержит список глобальных параметров и секции образов. При установке пакета kernel-xen
сценарий пост-установки добавит соответствующую секцию в elilo.conf
.
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="-- rhgb quiet"
image
parameter indicates the following lines apply to a single boot selection. This stanza defines a hypervisor (vmm
), initrd
, and command line arguments (read-only
, root
and append
) to the hypervisor and kernel. When ELILO is loaded during the boot sequence, the image is labeled linux
.
read-only
в аргумент командной строки ro
, что позволяет подключить корневую файловую систему в режиме чтения, до тех пор пока initscripts
не смонтирует ее в режиме чтения и записи. ELILO скопирует строку root
в командную строку и объединит результат со значением параметра append
:
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
--
. Сначала указываются аргументы гипервизора, затем --
, а потом следуют аргументы ядра.
--
. Пример параметра памяти гипервизора (mem
) и параметра ядра quiet
:
append="dom0_mem=2G -- quiet"
Параметр | Описание |
---|---|
mem= | Параметр mem определяет максимальный размер ОЗУ, доступный гипервизору. Дополнительная память в системе будет проигнорирована. Для указания единиц измерения можно использовать B (байты), K (килобайты), M (мегабайты), G (гигабайты). Если единицы не заданы, будет подразумеваться объем памяти, заданный в килобайтах. |
dom0_mem= | dom0_mem= задает размер ОЗУ, выделяемый домену dom0. Red Hat Enterprise Linux 5.2 в компьютерах Itanium® по умолчанию использует значение 4G. |
dom0_max_vcpus= | dom0_max_vcpus= определяет число процессоров, которое будет выделено гипервизору. По умолчанию Red Hat Enterprise Linux 5.2 в компьютерах Itanium® использует значение 4. |
com1= | com1= позволяет определить параметры для первой последовательной шины. Пример: com1=9600,8n1,0x408,5 . Параметры io_base и irq можно оставить как есть. Значение auto параметра baud позволит сохранить настройки загрузчика. com1 можно не заполнять, если конфигурация EFI или ELILO содержит его глобальные настройки. |
com2= | Настройте параметры для второй последовательной шины (см. описание параметров com1 выше). |
console= | console содержит перечень параметров консоли Xen, разделенных запятой. Параметры могут включать vga, com1, com2. Эту настройку следует опустить, так как гипервизор попробует унаследовать установки консоли EFI. |
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="dom0_mem=2G dom0_max_vcpus=2 --"
rhgb quiet
», чтобы вывод ядра и initscript
направлялся на консоль. Обратите внимание, что разделитель все так же используется для корректной интерпретации аргументов гипервизора.
Item | Description |
---|---|
pae
|
Specifies the physical address extension configuration data.
|
apic
|
Specifies the advanced programmable interrupt controller configuration data.
|
memory
|
Specifies the memory size in megabytes.
|
vcpus
|
Specifies the numbers of virtual CPUs.
|
console
|
Specifies the port numbers to export the domain consoles to.
|
nic
|
Specifies the number of virtual network interfaces.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disk
|
Lists the block devices to export to the domain and exports physical devices to domain with read only access.
|
dhcp
|
Enables networking using DHCP.
|
netmask
|
Specifies the configured IP netmasks.
|
gateway
|
Specifies the configured IP gateways.
|
acpi
|
Specifies the advanced configuration power interface configuration data.
|
libvirt
configuration files for most tasks. Some users may need Xen configuration files which contain the following standard variables. Configuration items within these files must be enclosed in single quotes('). These configuration files reside in the /etc/xen
directory.
xm create --help_config
.
Parameter
|
Description
|
---|---|
vncpasswd =ПАРОЛЬ
| Пароль для доступа к консоли VNC в домене HVM. |
vncviewer=no | yes
|
Запуск vncviewer для прослушивания сервера vnc в домене. Адрес vncviewer будет передан домену с помощью параметра VNC_SERVER=<узел>:<порт> . VNC использует порт 5500 + DISPLAY. По возможности выбирается значение с незанятым портом. Возможно, если vnc=1.
|
vncconsole =no | yes
| Spawn a vncviewer process for the domain's graphical console. Only valid when vnc=1. |
name =ИМЯ
| Уникальное имя домена. |
bootloader =ФАЙЛ
| Путь к загрузчику. |
bootargs =АРГУМЕНТЫ
| Аргументы для передачи загрузчику. |
bootentry =АРГУМЕНТ
|
Устаревший параметр. Его заменил bootargs .
|
kernel =ФАЙЛ
| Путь к образу ядра. |
ramdisk =ФАЙЛ
| Путь к RAM-диску. |
features =ВОЗМОЖНОСТИ
| Активируемые в гостевом ядре возможности. |
builder =ФУНКЦИЯ
| Функция создания домена. |
memory =ОБЪЕМ
| Объем памяти домена в мегабайтах. |
maxmem =ОБЪЕМ
| Максимальный объем памяти в мегабайтах. |
shadow_memory =ОБЪЕМ
| Объем теневой памяти домена в мегабайтах. |
cpu =ПРОЦЕССОР
| Процессор, на базе которого создан виртуальный процессор VCPU0. |
cpus =ПРОЦЕССОРЫ
| Процессоры, на которых будет выполняться домен. |
pae =PAE
| Включить/отключить расширение ядресов PAE домена HVM. |
acpi =ACPI
| Включить/отключить ACPI домена HVM. |
apic =APIC
| Включить/отключить APIС домена HVM. |
vcpus =ЧИСЛО
| Число виртуальных процессоров в домене. |
cpu_weight =ВЕС
|
Set the new domain's cpu weight. WEIGHT is a float that controls the domain's share of the cpu.
|
restart =onreboot | always | never
|
Устаревший параметр, определявший, нужно ли перезапускать домен при выходе. Вместо него используйте on_poweroff , on_reboot , on_crash . Значения этого параметра: onreboot — перезапускать при выходе с кодом reboot; always — всегда перезапускать при выходе и игнорировать код завершения; never — не перезапускать при выходе и игнорировать код завершения.
|
on_poweroff =destroy | restart | preserve | destroy
|
Behavior when a domain exits with reason 'poweroff '. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place.
|
on_reboot =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'reboot'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
on_crash =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'crash'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
blkif =no | yes
| Рассматривать домен как блочное устройство. |
netif =no | yes
| Рассматривать домен как физическую основу для сетевого интерфейса. |
tpmif =no | yes
| Рассматривать домен как физическую основу для интерфейса TPM. |
disk =phy:DEV,VDEV,РЕЖИМ[,ДОМЕН]
|
Добавление дискового устройства в домен. Физическое устройство (DEV ) будет экспортироваться в домен как VDEV . Если переменная РЕЖИМ имеет значение r , то диск будет доступен только для чтения, а w — для чтения и записи. ДОМЕН определяет домен драйверов для диска. Эта опция может быть указана многократно для различных дисков.
|
pci =BUS:DEV.FUNC
|
Добавление устройства PCI с заданными в шестнадцатеричном формате параметрами. Пример: pci=c0:02.1a . Параметр может быть указан многократно для добавления нескольких устройств PCI.
|
ioports =ОТ[-ДО]
|
Добавление диапазона ввода/вывода с заданными границами (в шестнадцатеричном формате). Пример: ioports=02f8-02ff . Параметр может быть указан многократно для добавления нескольких диапазонов.
|
irq =IRQ
|
Добавление прерывания. Пример: irq=7 . Параметр может быть указан многократно для добавления нескольких прерываний.
|
usbport =ПУТЬ
| Добавление порта USB. Параметр может быть указан многократно для добавления нескольких портов. |
vfb=type=
vnclisten=
xauthority=
keymap =РАСКЛАДКА
|
Make the domain a framebuffer backend. The backend type should be either sdl or vnc . For type=vnc , connect an external vncviewer. The server will listen on ADDR (default 127.0.0.1) on port N+5900. N defaults to the domain id. If vncunused=1 , the server will try to find an arbitrary unused port above 5900. For type=sdl , a viewer will be started automatically using the given DISPLAY and XAUTHORITY , which default to the current user's ones.
|
vif=type=
script= =ИМЯ
|
Добавление сетевого интерфейса с заданным мостом и адресом MAC . vif настраивается при вызове специального сценария конфигурации. Если тип не указан, будет использоваться netfront, а не ioemu. Если адрес MAC не задан, будет использоваться случайно выбранный адрес MAC . Если мост не определен, будет использоваться первый найденный мост. Если же не задан сценарий, будет использоваться стандартный сценарий. Если не задан параметр backend, будет использоваться стандартный домен драйверов, и если не задан параметр vifname, виртуальному интерфейсу будет присвоено имя vifD.N (где D — идентификатор домена, а N — идентификатор интерфейса). Этот параметр может быть указан многократно для добавления нескольких vif, что, в свою очередь, скажется на числе интерфейсов.
|
vtpm=instance= ЭКЗЕМПЛЯР ,backend=ДОМЕН
|
Добавление интерфейса TPM. Заданный экземпляр будет использоваться в качестве виртуального экземпляра TPM. Заданный номер представляет собой лишь предпочитаемый номер экземпляра. В ходе работы сценарий определит, какой номер экземпляра будет назначен домену. Соответствие между виртуальной машиной и номером экземпляра TPM можно найти в /etc/xen/vtpm.db .
|
access_control=policy= ПОЛИТИКА ,label=МЕТКА
| Добавление метки безопасности и соответствующей политики безопасности. Локальное соответствие ssid будет рассчитано при запуске или возобновлении работы домена. На данном этапе политика проверяется в соответствии с активной политикой. Таким образом, облегчается процесс миграции с сохранением и последующим восстановлением доменов. Дополнительно, локальные метки будут автоматически созданы в системе, где домен запускается или возобновляет свою работу. |
nics =ЧИСЛО
| Устаревший параметр, вместо него используются пустые записи vif. Определяет число сетевых интерфейсов. Используйте параметр vif для определения настроек интерфейса, в противном случае будут применены стандартные параметры. Указание нескольких vif увеличит число интерфейсов. |
root =УСТРОЙСТВО
|
Параметр root определяется в командной строке ядра. Укажите устройство для NFS root, например, /dev/sda1 или /dev/nfs .
|
extra =АРГУМЕНТЫ
| Дополнительные аргументы для включения в командную строку ядра. |
ip =IP-адрес
| Определяет IP-адрес интерфейса ядра. |
gateway =IP-адрес
| Определяет IP-адрес шлюза ядра. |
netmask =МАСКА
| Определяет IP-адрес маски сети. |
hostname =ИМЯ
| Определяет имя узла. |
interface =ИНТЕРФЕЙС
| Определяет имя интерфейса. |
dhcp =off|dhcp
| Параметр dhcp ядра. |
nfs_server =IP-АДРЕС
| Адрес NFS-сервера для NFS root. |
nfs_root =ПУТЬ
| Путь к корневому каталогу NFS. |
device_model =ФАЙЛ
| Путь к программе модели устройства. |
fda =ФАЙЛ
| Путь к fda. |
fdb =ФАЙЛ
| Путь к fdb. |
serial =ФАЙЛ
| Путь к pty или vc. |
localtime =no | yes
| Использование локального времени часами RTC. |
keymap =ФАЙЛ
| Раскладка клавиатуры. |
usb =no | yes
| Эмуляция устройств USB. |
usbdevice =ИМЯ
|
Имя добавляемого устройства USB .
|
stdvga =no | yes
|
Use std vga or Cirrus Logic
graphics
|
isa =no | yes
|
Эмуляция системы ISA .
|
boot =a|b|c|d
| Загрузочное устройство, используемое по умолчанию. |
nographic =no | yes
| Использование графического режима. |
soundhw =АУДИО
| Использование аудиоустройств. |
vnc
| Определяет, будет ли модель устройства использовать VNC. |
vncdisplay
| Дисплей VNC. |
vnclisten
| Адрес для прослушивания сервера VNC. |
vncunused
| Попытаться найти незанятый порт для сервера VNC. Используется, если vnc=1. |
sdl
| Использование SDL. |
display =ДИСПЛЕЙ
| Дисплей X11. |
xauthority =XAUTHORITY
| Центр авторизации X11. |
uuid
| Уникальный идентификатор UUID. Если этот параметр не задан, идентификатор будет сгенерирован случайным образом подобно генерации MAC-адесов для виртуальных сетевых интерфейсов. Значение должно быть уникально в пределах кластера. |
Функция | Допустимые аргументы |
---|---|
set_bool
|
Допустимые значения:
|
set_float
|
Accepts a floating point number with Python's float(). For example:
|
set_int
|
Accepts an integer with Python's int().
|
set_value
|
Принимает любое значение Python.
|
append_value
|
Принимает любое значение Python и добавляет его к предыдущему значению, сохраненному в массиве.
|
Parameter | Функция | Стандартное значение |
---|---|---|
name
|
setter
|
default value
|
vncpasswd
|
set_value
|
None
|
vncviewer
|
set_bool
|
None
|
vncconsole
|
set_bool
|
None
|
name
|
set_value
|
None
|
bootloader
|
set_value
|
None
|
bootargs
|
set_value
|
None
|
bootentry
|
set_value
|
None
|
kernel
|
set_value
|
None
|
ramdisk
|
set_value
|
''
|
features
|
set_value
|
''
|
builder
|
set_value
|
'linux'
|
memory
|
set_int
|
128
|
maxmem
|
set_int
|
None
|
shadow_memory
|
set_int
|
0
|
cpu
|
set_int
|
None
|
cpus
|
set_value
|
None
|
pae
|
set_int
|
0
|
acpi
|
set_int
|
0
|
apic
|
set_int
|
0
|
vcpus
|
set_int
|
1
|
cpu_weight
|
set_float
|
None
|
restart
|
set_value
|
None
|
on_poweroff
|
set_value
|
None
|
on_reboot
|
set_value
|
None
|
on_crash
|
set_value
|
None
|
blkif
|
set_bool
|
0
|
netif
|
set_bool
|
0
|
tpmif
|
append_value
|
0
|
disk
|
append_value
|
[]
|
pci
|
append_value
|
[]
|
ioports
|
append_value
|
[]
|
irq
|
append_value
|
[]
|
usbport
|
append_value
|
[]
|
vfb
|
append_value
|
[]
|
vif
|
append_value
|
[]
|
vtpm
|
append_value
|
[]
|
access_control
|
append_value
|
[]
|
nics
|
set_int
|
-1
|
root
|
set_value
|
''
|
extra
|
set_value
|
''
|
ip
|
set_value
|
''
|
gateway
|
set_value
|
''
|
netmask
|
set_value
|
''
|
hostname
|
set_value
|
''
|
interface
|
set_value
|
"eth0"
|
dhcp
|
set_value
|
'off'
|
nfs_server
|
set_value
|
None
|
nfs_root
|
set_value
|
None
|
device_model
|
set_value
|
''
|
fda
|
set_value
|
''
|
fdb
|
set_value
|
''
|
serial
|
set_value
|
''
|
localtime
|
set_bool
|
0
|
keymap
|
set_value
|
''
|
usb
|
set_bool
|
0
|
usbdevice
|
set_value
|
''
|
stdvga
|
set_bool
|
0
|
isa
|
set_bool
|
0
|
boot
|
set_value
|
'c'
|
nographic
|
set_bool
|
0
|
soundhw
|
set_value
|
''
|
vnc
|
set_value
|
None
|
vncdisplay
|
set_value
|
None
|
vnclisten
|
set_value
|
None
|
vncunused
|
set_bool
|
1
|
sdl
|
set_value
|
None
|
display
|
set_value
|
None
|
xauthority
|
set_value
|
None
|
uuid
|
set_value
|
None
|
Содержание
vsftpd
vsftpd
virsh
для настройки автоматического запуска виртуальной машины TestServer
во время загрузки размещающей системы.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
:
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
Установите пакет KVM
# yum install kvm
Проверьте версию используемого ядра
uname
:
$ uname -r 2.6.18-159.el5xen
2.6.18-159.el5xen
. Если в результате выполнения команды вы получили версию ядра, которое используется по умолчанию, а именно 2.6.18-159.el5
, можно сразу перейти к пункту 3.
Изменение ядра Xen на стандартное ядро
grub.conf
. Чтобы изменить используемое по умолчанию ядро, внесите изменения в /boot/grub/grub.conf
.
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
0
, чтобы использовалось первое ядро в списке:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Перезагрузите систему с новым ядром
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm
, а также kvm_intel
или kvm_amd
, то все работает нормально.
Установите пакеты Xen
# yum install kernel-xen xen
Проверьте версию используемого ядра
uname
:
$ uname -r 2.6.18-159.el5
2.6.18-159.el5
, которое используется по умолчанию. Если в результате выполнения команды вы получили версию ядра, в конце имени которого есть xen
(например, 2.6.18-159.el5xen
), можно сразу перейти к пункту 3.
Изменение стандартного ядра на ядро Xen
grub.conf
. Чтобы изменить используемое по умолчанию ядро, внесите изменения в /boot/grub/grub.conf
.
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
1
, чтобы использовалось ядро Xen:
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Перезагрузите систему с новым ядром
uname
:
$ uname -r 2.6.18-159.el5xen
xen
, значит, выполняется ядро Xen.
qemu-img
применяется для форматирования различных файловых систем, используемых Xen и KVM. Именно с ее помощью следует выполнять форматирование образов виртуализированных гостей, дополнительных устройств хранения и сетевых хранилищ. Ниже будут рассмотрены параметры и формат qemu-img
.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
convert
.
# qemu-img convert [-c] [-e] [-f format]filename
[-Ooutput_format
]output_filename
файл1
в образ файл2
в формате полученный_формат
. Полученный образ может быть дополнительно зашифрован (опция -e
) или сжат (опция -c
).
qcow
поддерживает сжатие и шифрование. В случае повторной перезаписи сжатого сектора записываемые данные уже не будут сжаты.
qcow
или cow
). При этом пустые сектора будут исключены из полученного образа.
info
утилиты qemu-img позволяет получить сведения о дисковом образе. Формат команды:
# qemu-img info [-f format] filename
raw
qemu-img info
или ls -ls
(в Linux).
qcow2
qcow
cow
vmdk
cloop
(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size
/etc/grub.conf
file to use the virtualization kernel. You must use the xen
kernel to use the Xen hypervisor. Copy your existing xen
kernel entry make sure you copy all of the important lines or your system will panic upon boot (initrd
will have a length of '0
'). If you require xen
hypervisor specific values you must append them to the xen
line of your grub entry.
grub.conf
для системы, в которой выполняется пакет kernel-xen. Обратите внимание на блок текста, начинающийся строкой title
и заканчивающийся следующей пустой строкой.
#boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21.el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
grub.conf
could look very different if it has been manually edited before or copied from an example. Read Глава 28, Настройка параметров загрузки ядра Xen for more information on using virtualization and grub.
dom0_mem=256M
» в строке xen
файла конфигурации grub.conf
, вы выделите размещающей системе 256 мегабайт памяти во время загрузки. Файл будет выглядеть так:
#boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21.el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
$ grep -E 'svm|vmx' /proc/cpuinfo
vmx
, это значит, что процессор Intell включает расширения Intel VT. Пример:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
svm
, которая обозначает наличие процессора AMD с расширениями AMD-V:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
flags:
может повторяться для каждого гиперпотока, ядра и процессора.
For users of the KVM hypervisor
kvm
modules are loaded in the kernel:
# lsmod | grep kvm
kvm_intel
or kvm_amd
then the kvm
hardware virtualization modules are loaded and your system meets requirements. sudo
virsh
command can output a full list of virtualization system capabilities. Run virsh capabilities
as root to receive the complete list.
kpartx
tool, covered by this section, to mount the guest file system as a loop device which can then be accessed.
kpartx
command creates device maps from partition tables. Each guest storage image has a partition table embedded in the file.
# yum install kpartx
guest1.img
.
# kpartx -l /var/lib/libvirt/images/guest1.img
loop0p1 : 0 409600 /dev/loop0 63
loop0p2 : 0 10064717 /dev/loop0 409663
guest1
is a Linux guest. The first partition is the boot partition and the second partition is an EXT3 containing the root partition.
/dev/mapper/
.
# kpartx -a /var/lib/libvirt/images/guest1.img
# ls /dev/mapper/ loop0p1 loop0p2
loopXpY
.
/mnt/guest1
for mounting the partition.
# mkdir /mnt/guest1
# mount /dev/mapper/loop0p1
/mnt/guest1 -o loop,ro
/mnt/guest1
directory. Read or copy the files.
# umount /mnt/tmp
# kpartx -d /var/lib/libvirt/images/guest1.img
guest1.img
to the recognized devices in the /dev/mapper/
directory.
# kpartx -a /var/lib/libvirt/images/guest1.img
vgscan
command to find the new volume groups.
# vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type lvm2
VolGroup00
by default) with the vgchange -ay
command.
# vgchange -ay VolGroup00 2 logical volumes in volume group VolGroup00 now active.
lvs
command to display information about the new volumes. The volume names (the LV
column) are required to mount the volumes.
# lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M
/dev/VolGroup00/LogVol00
in the /mnt/guestboot/
directory.
# mount /dev/VolGroup00/LogVol00 /mnt/guestboot
/mnt/guestboot
directory. Read or copy the files.
# umount /mnt/
VolGroup00
# vgchange -an VolGroup00
# kpartx -d /var/lib/libvirt/images/guest1.img
virsh nodeinfo
command provides information about how many sockets, cores and hyperthreads there are attached a host.
# virsh nodeinfo CPU model: x86_64 CPU(s): 8 CPU frequency: 1000 MHz CPU socket(s): 2 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 8179176 kB
virsh capabilities
to get additional output data on the CPU configuration.
# virsh capabilities
<capabilities>
<host>
<cpu>
<arch>x86_64</arch>
</cpu>
<migration_features>
<live/>
<uri_transports>
<uri_transport>tcp</uri_transport>
</uri_transports>
</migration_features>
<topology>
<cells num='2'>
<cell id='0'>
<cpus num='4'>
<cpu id='0'/>
<cpu id='1'/>
<cpu id='2'/>
<cpu id='3'/>
</cpus>
</cell>
<cell id='1'>
<cpus num='4'>
<cpu id='4'/>
<cpu id='5'/>
<cpu id='6'/>
<cpu id='7'/>
</cpus>
</cell>
</cells>
</topology>
<secmodel>
<model>selinux</model>
<doi>0</doi>
</secmodel>
</host>
[ Additional XML removed ]
</capabilities>
virsh freecell
command to display the free memory on all NUMA nodes.
# virsh freecell 0: 2203620 kB 1: 3354784 kB
virsh capabilities
command) about NUMA topology.
virsh capabilities
output.
<topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells> </topology>
<cell id='1'>
, has physical CPUs 4 to 7.
cpuset
attribute to the configuration file.
virsh edit
.
vcpus
element.
<vcpus>4</vcpus>
cpuset
attribute with the CPU numbers for the relevant NUMA cell.
<vcpus cpuset='4-7'>4</vcpus>
virt-install
provisioning tool provides a simple way to automatically apply a 'best fit' NUMA policy when guests are created.
cpuset
option for virt-install
can use a CPU set of processors or the parameter auto
. The auto
parameter automatically determines the optimal CPU locking using the available NUMA data.
--cpuset=auto
with the virt-install
command when creating new guests.
virsh vcpuinfo
and virsh vcpupin
commands can perform CPU affinity changes on running guests.
virsh vcpuinfo
command gives up to date information about where each virtual CPU is running.
guest1
is a guest with four virtual CPUs is running on a KVM host.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 3
State: running
CPU time: 0.5s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 2
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 3
CPU: 2
State: running
CPU Affinity: yyyyyyyy
virsh vcpuinfo
output (the yyyyyyyy
value of CPU Affinity
) shows that the guest can presently run on any CPU.
# virsh vcpupinguest1
0 4 # virsh vcpupinguest1
1 5 # virsh vcpupinguest1
2 6 # virsh vcpupinguest1
3 7
virsh vcpuinfo
command confirms the change in affinity.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 4
State: running
CPU time: 32.2s
CPU Affinity: ----y---
VCPU: 1
CPU: 5
State: running
CPU time: 16.9s
CPU Affinity: -----y--
VCPU: 2
CPU: 6
State: running
CPU time: 11.9s
CPU Affinity: ------y-
VCPU: 3
CPU: 7
State: running
CPU time: 14.6s
CPU Affinity: -------y
macgen.py
. Now from that directory you can run the script using ./macgen.py
and it will generate a new MAC address. A sample output would look like the following:
$ ./macgen.py 00:16:3e:20:b0:11 #!/usr/bin/python # macgen.py script to generate a MAC address for virtualized guests on Xen # import random # def randomMAC(): mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac)) # print randomMAC()
UUID
также можно использовать встроенные модули python-virtinst
:
# echo 'import virtinst.util ; print\ virtinst.util.uuidToString(virtinst.util.randomUUID())' | python # echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
#!/usr/bin/env python # -*- mode: python; -*- print "" print "New UUID:" import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID()) print "New MAC:" import virtinst.util ; print virtinst.util.randomMAC() print ""
rate
” parameter part of the VIF
entries can throttle virtualized guests.
rate
rate=
option can be added to the VIF=
entry in a virtual machine configuration file to limit a virtual machine's network bandwidth or specify a specific time interval for a time window.
rate=
можно указать временной интервал.
rate
:
rate=10Mb/s
rate=250KB/s
rate=10MB/s@50ms
VIF
в файле конфигурации виртуальной машины может выглядеть приблизительно так:
vif = [ 'rate=10MB/s , mac=00:16:3e:7a:55:1c, bridge=xenbr1']
rate
entry would limit the virtual machine's interface to 10MB/s for outgoing traffic
virsh
или virt-manager
:
virsh
refer to Настройка соответствий виртуальных процессоров for more information.
virt-manager
refer to Раздел 26.11, «Просмотр виртуальных процессоров» for more information.
/boot/grub/grub.conf
. Managing several or more hosts configuration files quickly becomes difficult. System administrators often prefer to use the 'cut and paste' method for editing multiple grub.conf
files. If you do this, ensure you include all five lines in the Virtualization entry (or this will create system errors). Hypervisor specific values are all found on the 'xen
' line. This example represents a correct grub.conf
virtualization entry:
# boot=/dev/sda/ default=0 timeout=15 #splashimage=(hd0, 0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0, 0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
'dom0_mem=256M'
. This example is the grub.conf
with the hypervisor's memory entry modified.
# boot=/dev/sda
default=0
timeout=15
#splashimage=(hd0,0)/grubs/splash.xpm.gz
hiddenmenu
serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen)
root (hd0,0)
kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB
module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00
module /initrd-2.6.17-1.2519.4.21.el5xen.img
vsftpd
vsftpd
обеспечивает защищенный доступ к установочному дереву или другим данным для паравиртуализированных гостевых систем (например, для репозиториев Red Hat Enterprise Linux 5). Если вы не установили vsftpd
в процессе установки сервера, можно установить соответствующий RPM-пакет из каталога Server
установочного носителя с помощью команды rpm -ivh vsftpd*.rpm
(при этом RPM-пакет должен находиться в вашем текущем каталоге).
vsftpd
, edit /etc/passwd
using vipw
and change the ftp user's home directory to the directory where you are going to keep the installation trees for your para-virtualized guests. An example entry for the FTP user would look like the following:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
chkconfig --list vsftpd
позволяет убедиться, что vsftpd
отключен.
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig --levels 345 vsftpd on
.
vsftpd
во время загрузки системы:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
service vsftpd start vsftpd
:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev
. Но сначала убедитесь в правильности полученных UUID. Затем настройте сохранение постоянства LUN в файле scsi_id
, который расположен в каталоге /etc
. Открыв файл в окне текстового редактора, отметьте следующую строку как комментарий:
# options=-b
# options=-g
scsi_id
поможет определить идентификатор UUID:
# scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
в каталоге /etc/udev/rules.d
. Формат правил присвоения имени устройству:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID
", NAME="devicename
"
UUID
и имя_устройства
полученными значениями. Правило будет выглядеть примерно так:
KERNEL="sd*
", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename
"
/dev/sd*
, смогут проверить заданный UUID. Если совпадение найдено, то будет создан узел устройства /dev/имя_устройства
. Наконец, в файл /etc/rc.local
добавьте строку:
/sbin/start_udev
multipath.conf
, который расположен в каталоге /etc/
:
multipath { wwid 3600a0b80001327510000015427b625e alias oramp1 } multipath { wwid 3600a0b80001327510000015427b6 alias oramp2 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp3 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp4 }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
, dev/mpath/oramp4
. Все устройства будут расположены в каталоге /dev/mpath
, при этом их имена не будут изменяться между перезагрузками.
/sbin/service smartd stop /sbin/chkconfig --del smartd
/var/lib/xen
, the usually named vmlinuz.******
and initrd.******
. These files are the initrd and vmlinuz files from virtual machines which either failed to boot or failed for some other reason. These files are temporary files extracted from virtual machine's boot disk during the start up sequence. These files should be automatically removed after the virtual machine is shut down cleanly. Then you can safely delete old and stale copies from this directory.
vino-preferences
.
~/.vnc/xstartup
так, чтобы при запуске vncserver запускался сеанс GNOME. При первом запуске сценария vncserver будет запрошен пароль.
xstartup
:
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources #xsetroot -solid grey #vncconfig -iconic & #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm & if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax –exit-with-session` echo "D-BUS per-session daemon address is: \ $DBUS_SESSION_BUS_ADDRESS" fi exec gnome-session
uuidgen
command. Then for the vif
entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr
entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk='
section to point to the correct guest image.
/etc/sysconfig/network
file to match the new guest's hostname.
HWADDR
в файле /etc/sysconfig/network-scripts/ifcfg-eth0
, чтобы он соответствовал выводу команды ifconfig eth0
. Если же вы используете статические IP-адреса, измените запись IPADDR
.
name
uuid
uuidgen
. Пример:
$ uuidgen a984a14f-4191-4d14-868e-329906b211e5
vif
xenbr
так, чтобы она соответствовала локальным настройкам сетевого окружения. Для получения информации о мосте виртуализации выполните команду brctl show
.
disk=
, чтобы они указывали на нужный гостевой образ.
/etc/sysconfig/network
HOSTNAME
entry to the guest's new hostname
.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
укажите адрес, полученный в результате выполнения ifconfig eth0
.
IPADDR
.
libvirt
.
libvirt
.
virsh
can handle XML configuration files. You may want to use this to your advantage for scripting large deployments with special options. You can add devices defined in an XML file to a running para-virtualized guest. For example, to add a ISO file as hdc
to a running guest create an XML file:
# cat satelliteiso.xml <disk type="file" device="disk"> <driver name="file"/> <source file="/var/lib/libvirt/images/rhn-satellite-5.0.1-11-redhat-linux-as-i386-4-embedded-oracle.iso"/> <target dev="hdc"/> <readonly/> </disk>Run
virsh attach-device
to attach the ISO as hdc
to a guest called "satellite" :
# virsh attach-device satellite satelliteiso.xml
Содержание
xentop
xentop
показывает сведения о размещающем узле и его гостевых доменах в реальном времени.
xm
dmesg
и log
vmstat
iostat
lsof
iostat
, mpstat
и sar
предоставлена пакетом sysstat
.
XenOprofile
systemtap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
tcpdump
command 'sniffs' network packets. tcpdump
is useful for finding network abnormalities and problems with network authentication. There is a graphical version of tcpdump
named wireshark
.
brctl
brctl
осуществляет проверку и настройку моста Ethernet в ядре виртуализации Linux. Для выполнения приведенных ниже команд потребуются полномочия root.
# brctl show bridge-name bridge-id STP enabled interfaces ----------------------------------------------------------------------------- xenbr0 8000.feffffff no vif13.0 xenbr1 8000.ffffefff yes pddummy0 xenbr2 8000.ffffffef no vif0.0 # brctl showmacs xenbr0 port-no mac-addr local? aging timer 1 fe:ff:ff:ff:ff: yes 0.00 2 fe:ff:ff:fe:ff: yes 0.00 # brctl showstp xenbr0 xenbr0 bridge-id 8000.fefffffffff designated-root 8000.fefffffffff root-port 0 path-cost 0 max-age 20.00 bridge-max-age 20.00 hello-time 2.00 bridge-hello-time 2.00 forward-delay 0.00 bridge-forward-delay 0.00 aging-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
Server
дистрибутива Red Hat Enterprise Linux 5.
yum install vnc
command.
yum install vnc-server
.
/etc/xen/
, содержит демон xend
и файлы конфигурации виртуальной машины. Файлы сетевых сценариев расположены в подкаталоге scripts
.
/var/log/xen
.
/var/lib/libvirt/images
.
/proc/xen/
.
xend
и процесс qemu-dm
, многочисленные файлы журналов которых хранятся в каталоге /var/log/xen/
:
xend.log
содержит все данные, собранные демоном xend
, будь то системные события или инициированные оператором задания. Он также будет регистрировать действия виртуальной машины (создание, отключение, удаление и т.д.). В случае проблем этот файл следует проверить в первую очередь.
xend-debug.log
регистрирует ошибки, поступающие от xend
и подсистем виртуализации (буфер кадров, сценарии Python и пр.).
xen-hotplug-log
регистрирует события горячей замены. Если устройство или сетевой сценарий не подключаются, событие записывается в этот журнал.
qemu-dm.[PID].log
создается процессом qemu-dm
для каждого полностью виртуализированного гостя. Идентификатор процесса PID можно определить с помощью команды ps
. Замените [PID] полученным идентификатором процесса qemu-dm
.
virt-manager.log
в каталоге /.virt-manager
. Следует помнить, что при перезапуске менеджера этот файл будет перезаписан. Поэтому, если вы хотите его сохранить, создайте резервную копию, прежде чем перезапустить менеджер.
/var/lib/libvirt/images
.
xend
происходит обновление xend-database
в каталоге /var/lib/xen/xend-db
.
xm dump-core
, сохраняется в каталог /var/lib/xen/dumps
.
/etc/xen
содержит файлы конфигурации, используемые для управления системными ресурсами. Файл конфигурации xend-config.sxp
позволяет применить изменения в масштабах всей системы. Не рекомендуется вручную изменять файлы в этом каталоге.
proc
являются дополнительным местом сбора информации о системе. Следующие записи proc находятся в каталоге /proc/xen
:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/
xend.log
file contains the same basic information as when you run the xm log
command. This log is found in the /var/log/
directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error') Traceback (most recent call list) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create raise XendError ("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')
xend-debug.log
, играет незаменимую роль при анализе ошибок, поскольку содержит более подробную информацию по сравнению с xend.log
. Пример описания той же ошибки создания домена:
ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB' ERROR: Error constructing guest OS
grub.conf
file to enable a 38400-bps serial console on com1
/dev/ttyS0
:
title Red Hat Enterprise Linux (2.6.18-8.2080_xen0) root (hd0,2) kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc module /initrd-2.6.18-8.el5xen.img
sync_console
поможет определить ошибку, приводящую к зависанию и асинхронному выводу консоли гипервизора. Параметр pnpacpi=off
помогает избежать проблем с вводом последовательной консоли. Установка параметров console=ttyS0
и console=tty
позволит направить ошибки ядра и на VGA, и на последовательную консоль. Можно настроить ttywatch
так, чтобы данные регистрировались на удаленном узле, подключенном через стандартный кабель Null Modem. К примеру, на удаленном узле введите:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
в файл /var/log/ttywatch/myhost.log
# virsh console [guest name, ID or UUID]
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
grub.conf
file, and include the 'console =ttyS0 console=tty0'
parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). To use the guest's serial console, you must edit the libvirt configuration file configuration file. On the host, access the serial console with the following command:
# virsh console
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
xend
ничего не происходит. В результате выполнения virsh list
получена ошибка:
Error: Error connecting to xend: Connection refused. Is xend running?
xend start
. Если ее результат подобен этому:
Error: Could not obtain handle on privileged command interfaces (2 = No such file or directory) Traceback (most recent call last:) File "/usr/sbin/xend/", line 33 in ? from xen.xend.server. import SrvDaemon File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py" , line 26 in ? from xen.xend import XendDomain File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ? from xen.xend import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ? import images File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ? xc = xen.lowlevel.xc.xc () RuntimeError: (2, 'No such file or directory' )
kernel-xen
. В этом случае во время загрузки выберите ядро kernel-xen
или назначьте его ядром по умолчанию в grub.conf
.
Неверный аргумент
(Invalid argument), это может означать, что образ загружаемого ядра несовместим с гипервизором. Такая ситуация будет иметь место, если, например, вы пытаетесь выполнять не-PAE ядро FC5 на PAE-гипервизоре FC6.
grub.conf
опять станет исходное ядро вместо ядра виртуализации.
/etc/sysconfig/kernel/
directory. You must ensure that kernel-xen
parameter is set as the default option in your grub.conf
file.
/boot/grub/grub.conf
потребуется настроить соответствующие параметры последовательного устройства.
com1
, добавьте параметры com1=115200,8n1
, console=tty0
, console=ttyS0,115200
:
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5com1=115200,8n1
module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386console=tty0
console=ttyS0,115200
module /boot/initrd-2.6.18-92.el5xen.img
com2
, добавьте параметры com2=115200,8n1 console=com2L
, console=tty0
, console=ttyS0,115200
:
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5 com2=115200,8n1 console=com2L module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=tty0 console=ttyS0,115200 module /boot/initrd-2.6.18-92.el5xen.img
com1
, com2
и т.п.).
com2
, в строке vmlinuz
указан параметр console=ttyS0
. Этот параметр определяет специфичную для окружения Xen настройку.
virsh console
или в окне последовательной консоли virt-manager
. Настроить это можно так:
/boot/grub/grub.conf
:
Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 0) kernel /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=xvc0 initrd /boot/initrd-2.6.18-92.el5xen.img
virsh console
.
xend
.
/etc/sysconfig/xend
измените запись
# Log all guest console output (cf xm console) #XENCONSOLED_LOG_GUESTS=no
# Log all guest console output (cf xm console) XENCONSOLED_LOG_GUESTS=yes
/var/log/xen/console
.
virsh console
.
ttyS0
, а в Windows — COM1
.
console=tty0 console=ttys0,115200
в файл /boot/grub/grub.conf
.
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/volgroup00/logvol00
console=tty0 console=ttys0,115200
initrd /initrd-2.6.18-92.el5.img
virsh console
.
/var/log/xen/console
не регистрирует сообщения последовательной консоли из полностью виртуализированных доменов, так как они не являются паравиртуализированными гостями.
virt-manager
or virt-install
tools on Red Hat Enterprise Linux 5, the guests configuration files are created automatically in the /etc/xen
directory.
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/var/lib/libvirt/images/rhel5vm01.dsk,xvda,w',] vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', "type=ieomu, mac=00:16:3e:09:f0:13 ] vnc = 1 vncunused = 1 uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed" bootloader = "/usr/bin/pygrub" vcpus=2 on_reboot = "restart" on_crash = "restart"
serial="pty"
. Пример файла конфигурации для полностью виртуализированной гостевой системы:
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['/var/lib/libvirt/images/rhel5u5-x86_64.dsk.hda,w'] vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1'] uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5' device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader/" vnc = 1 vncunused = 1 apic = 1 acpi = 1 pae = 1 vcpus =1 serial ="pty" # enable serial console on_boot = 'restart'
libvirt
используются virsh dumpxml
, virsh create
или virsh edit
, которые обладают механизмами проверки ошибок.
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
на наличие ошибки:
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20 [2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202 Domain construction failed
xm list domain0
. Если домен не был уменьшен, выполните virsh setmem dom0 новый_размер
.
wrong kernel image: non-PAE kernel on a PAE
# xm create -c va-base Using config file "va-base" Error: (22, 'invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs (XendDomainInfo:202) Domain construction failed Traceback (most recent call last) File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain() File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449] XendDlomainInfo.destroy: domain=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457] XendDlomainInfo.destroy:Domain(1)
Unable to open a connection to the Xen hypervisor or daemon
/etc/hosts
нет записи localhost. Пример неверной записи:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain. localhost
xen-xend.logfile
:
Bridge xenbr1 does not exist!
# xm create mySQL01 Using config file " mySQL01" Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen) kernel: /vmlinuz-2.6.18-12747.el5xen initrd: /initrd-2.6.18-1.2747.el5xen.img Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
xend.log
будет содержать ошибки:
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0 [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2 [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2) [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status
/etc/xen
directory. For example, editing the guest mySQL01
# vim /etc/xen/mySQL01
Locate the vif
entry. Assuming you are using xenbr0
as the default bridge, the proper entry should resemble the following:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
# xm shutdown win2k3xen12 # xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning: Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile (defconfig, globs, locs,) Error: invalid syntax 9win2k3xen12, line1)
/etc/xen/
xend
;
scripts
со сценариями для сетевого окружения виртуализации.
/var/log/xen/
/var/lib/libvirt/images/
/proc/xen/
cat /proc/partitions
. Пример:
# cat /proc/partitions major minor #blocks name 202 16 104857600 xvdb 3 0 8175688 hda
/etc/inittab
добавьте:
1:12345:respawn:/sbin/mingetty xvc0
Xen Virtual Ethernet
в составе гостевой операционной системы, выполните следующую команду (в Red Hat Enterprise Linux 4 и Red Hat Enterprise Linux 5):
cat /etc/modprobe.conf
cat /etc/modules.conf
alias eth0 xen-vnif
alias eth0 xen-vnif
) для каждого паравиртуализированного интерфейса.
/etc/modprobe.conf
. Для этого добавьте строку:
options loop max_loop=64
phy: block device
и tap:aio
, а в полностью виртуализированных — phy: device
и file: file
.
dom0
has not ballooned down enough to provide space for a recently created or started guest. In your /var/log/xen/xend.log
, an example error message indicating this has occurred:
[2006-11-21 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 KiB free; 0 to scrub; need 1048576; retries: 20. [2006-11-21 20:33:52 xend.XendDomainInfo 3198] ERROR (XendDomainInfo:202) Domain construction failedYou can verify the amount of memory currently used by
dom0
with the command “xm list Domain-0
”. If dom0
is not ballooned down you can use the command “xm mem-set Domain-0 NewMemSize
” where NewMemSize
should be a smaller value.
# xm create testVM Using config file "./testVM". Going to boot Red Hat Enterprise Linux Server (2.6.18-1.2839.el5) kernel: /vmlinuz-2.6.18-1.2839.el5 initrd: /initrd-2.6.18-1.2839.el5.img Error: (22, 'Invalid argument')In the above error you can see that the kernel line shows that the system is trying to boot a non kernel-xen kernel. The correct entry in the example is ”
kernel: /vmlinuz-2.6.18-1.2839.el5xen
”.
/etc/grub.conf
).
kernel-xen
действительно установлено, запустите виртуальную машину:
xm create -c GuestName
GuestName
is the name of the guest. The previous command will present you with the GRUB boot loader screen and allow you to select the kernel to boot. You will have to choose the kernel-xen kernel to boot. Once the guest has completed the boot process you can log into the guest and edit /etc/grub.conf
to change the default boot kernel to your kernel-xen. Simply change the line “default=X
” (where X is a number starting at '0
') to correspond to the entry with your kernel-xen line. The numbering starts at '0
' so if your kernel-xen entry is the second entry you would enter '1
' as the default,for example “default=1
”.
# xm create -c va-base Using config file "va-base". Error: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERROR (XendDomainInfo:202) Domain construction failed Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195, in create vm.initDomain() File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363, in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(1)If you need to run a 32 bit or non-PAE kernel you will need to run your guest as a fully-virtualized virtual machine. The rules for hypervisor compatibility are:
Your CPU does not support long mode. Use a 32 bit distribution
. This problem is caused by a missing or incorrect pae
setting. Ensure you have an entry “pae=1
” in your guest's configuration file.
virt-manager
вы столкнулись с ошибкой «Unable to open a connection to the Xen hypervisor/daemon», скорее всего, ее причиной является отсутствие записи localhost
в файле /etc/hosts
. Проверьте файл, если необходимо, добавьте новую запись для localhost
. Пример неверной записи:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain localhost
Applying Intel CPU microcode update: FATAL: Module microcode not found. ERROR: Module microcode does not exist in /proc/modulesAs the virtual machine is running on virtual CPUs there is no point updating the microcode. Disabling the microcode update for your virtual machines will stop this error:
/sbin/service microcode_ctl stop /sbin/chkconfig --del microcode_ctl
xm create
сначала выполнит поиск файла в текущем каталоге, а затем в /etc/xen
.
# xm shutdown win2k3xen12 # xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xen/xm/opts.py:520: DeprecationWarning: Non-ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile(defconfig, globs, locs) Error: invalid syntax (win2k3xen12, line 1)
Enabling the virtualization extensions in BIOS
cat /proc/cpuinfo | grep vmx svm
. Если вывод команды пуст, это может означать наличие ошибок в настройках BIOS или отсутствие в системе расширений. Непустой вывод команды будет свидетельствовать о том, что расширения виртуализации включены.
virsh
command (where GUEST
is the guest's name):
# virsh edit GUEST
virsh edit
откроет текстовый редактор, заданный переменной $EDITOR
.
<interface type='network'>
[output truncated]
<model type='rtl8139' />
</interface>
'rtl8139'
to 'e1000'
. This will change the driver from the rtl8139 driver to the e1000 driver.
<interface type='network'>
[output truncated]
<model type='e1000'
/>
</interface>
# virsh dumpxml GUEST > /tmp/guest.xml
# cp /tmp/guest.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
<interface type='network'>
[output truncated]
<model type='e1000' />
</interface>
# virsh define /tmp/new-guest.xml # virsh start new-guest
/var/log/xen/
xend
и процессом qemu-dm
.
xend.log
xend-debug.log
xen-hotplug.log
qemu-dm.PID
.log
qemu-dm
, который запускается для каждого полностью виртуализированного гостя.
PID
будет заменен идентификатором процесса qemu-dm.
qemu-dm
можно узнать, выполнив команду ps
; при этом его аргументы помогут идентифицировать виртуальную машину, которой принадлежит процесс qemu-dm
.
.virt-manager
in the user's home
directory whom ran virt-manager. This directory will usually be ~/.virt-manager/virt-manager
.
/var/lib/libvirt/images/
/var/lib/xen/xend-db/
/etc/xen/
/etc/xen/xend-config.sxp
является основным файлом конфигурации xend. Именно с его помощью можно включить и отключить миграцию и другие функции, которые не были настроены в libvirt
.
/var/lib/xen/dump/
xm dump-core
.
/proc/xen/
xen-kernel
:
/proc/xen/capabilities
/proc/xen/privcmd
/proc/xen/balloon
/proc/xen/xenbus
/proc/xen/xsd_port
/proc/xen/xsd_kva
# insmod xen-platform-pci.o Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL xen-platform-pci.o: unresolved symbol __ioremap_R9eac042a xen-platform-pci.o: unresolved symbol flush_signals_R50973be2 xen-platform-pci.o: unresolved symbol pci_read_config_byte_R0e425a9e xen-platform-pci.o: unresolved symbol __get_free_pages_R9016dd82 [...]The solution is to use the correct RPM package for your hardware architecture for the para-virtualized drivers.
Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL Warning: loading xen-platform-pci.o will taint the kernel: forced load See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module xen-platform-pci loaded, with warnings
# cd /lib/modules/`uname -r`/ # find . -name 'xen_*.ko' -print
# insmod \ /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_platform_pci.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_balloon.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vnif.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vbd.ko
/var/log/messages
# grep -E "vif|vbd|xen" /var/log/messages xen_mem: Initialising balloon driver vif vif-0: 2 parsing device/vif/0/mac vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 xen-vbd: registered block device major 202You can also use the
lsmod
command to list the loaded para-virtualized drivers. It should output a list containing the xen_vnif
, xen_vbd
, xen_platform_pci
and xen_balloon
modules.
# lsmod|grep xen xen_vbd 19168 1 xen_vnif 28416 0 xen_balloon 15256 1 xen_vnif xen_platform_pci 98520 3 xen_vbd,xen_vnif,xen_balloon,[permanent]
type=ioemu
' part of 'vif
=' line in your guest's configuration file.
domU
refers to the guest operating systems which run on the host system (the dom0 domain).
/dev/VolGroup00/LogVol02
),
/dev/sda5
), and
/dev/sda
).
tap:aio
tap:aio
parameter sets the Xen hypervisor to use an advanced access mode designed for safety and performance. File-based, are accessed using a kernel thread and a user-space process. The tap:aio
method respects guest flush requests which makes it safer than the file
driver. The virtualization tools use tap:aio
by default for accessing file-based guest disks on the Xen Hypervisor.
ext2
и ext3
, идентификаторы устройств RAID, iSCSI и LUN, MAC-адреса и идентификаторы виртуальных машин.
libvirt
.
/usr/share/doc/xen-<версия>
/
— содержит большой объем информации о гипервизоре Xen и соответствующих управляющих инструментах, примеры конфигурации, информацию об оборудовании и последнюю документацию Xen.
man virsh
и /usr/share/doc/libvirt-<версия>
— содержат списки команд и параметров virsh
, а также подробную информацию о API библиотеки виртуализации libvirt
.
/usr/share/doc/gnome-applet-vm-<версия>
— содержит описание апплета GNOME, используемого для управления и наблюдения за локальными виртуальными машинами.
/usr/share/doc/libvirt-python-<версия>
— в этом файле приведены соответствия Python для библиотеки libvirt
. Пакет libvirt-python
позволяет разработчикам Python создавать программы, взаимодействующие с библиотекой libvirt
.
/usr/share/doc/python-virtinst-<версия>
— содержит описание команды virt-install
, которая используется при установке дистрибутивов Fedora и Red Hat Enterprise Linux на виртуальных машинах.
/usr/share/doc/virt-manager-<версия>
— документация по работе с менеджером виртуальных машин.