Редакция 1
ftpd
Моноширинный жирный шрифт
To see the contents of the filemy_next_bestselling_novel
in your current working directory, enter thecat my_next_bestselling_novel
command at the shell prompt and press Enter to execute the command.
Press Enter to execute the command.Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to return to your X-Windows session.
Mono-spaced Bold
. For example:
File-related classes includefilesystem
for file systems,file
for files, anddir
for directories. Each class has its own associated set of permissions.
Choose Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).from the main menu bar to launchTo insert a special character into a gedit file, choose from the main menu bar. Next, choose from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose from the gedit menu bar.
Mono-spaced Bold Italic
or Proportional Bold Italic
To connect to a remote machine using ssh, typessh
at a shell prompt. If the remote machine isusername
@domain.name
example.com
and your username on that machine is john, typessh john@example.com
.Themount -o remount
command remounts the named file system. For example, to remount thefile-system
/home
file system, the command ismount -o remount /home
.To see the version of a currently installed package, use therpm -q
command. It will return a result as follows:package
.
package-version-release
When the Apache HTTP Server accepts requests, it dispatches child processes or threads to handle them. This group of child processes or threads is known as a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and maintaining these server-pools has been abstracted to a group of modules called Multi-Processing Modules (MPMs). Unlike other modules, only one module from the MPM group can be loaded by the Apache HTTP Server.
моноширинным шрифтом
:
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")); } }
Содержание
virt-manager
, libvirt
и virt-viewer
.
При необходимости измените список пакетов.
%packages
добавьте следующее определение:
%packages @kvm
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
позволяет открыть графическое окно установки виртуальной машины.
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
# virt-manager &
kernel-xen
, то будет недоступен выбор паравиртуализации.
HTTP
, FTP
или NFS
. То есть ссылка на установочный носитель должна содержать дерево установки Fedora, которое доступно по NFS
, FTP
, HTTP
, а для размещения сетевых служб и файлов можно использовать другой узел или зеркало.
/var/lib/xen/images/
. SELinux запрещает использование других каталогов. Раздел 7.1, «Виртуализация и SELinux» содержит подробную информацию об установке виртуальных машин.
/var/lib/xen/images/
. Если же вы хотите изменить каталог (например, на /xen/images/
), прежде чем приступить к установке, потребуется его добавить в политику SELinux. Позднее будет описано, как изменить политику SELinux.
virt-manager
. Глава 3, Установка гостевой операционной системы содержит пошаговые инструкции по установке большинства операционных систем.
Создайте новый мост
/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
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
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
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
daemon.
# service libvirtd reload
virt-install
добавьте параметр --network=bridge:МОСТ
(замените «МОСТ» именем моста, в данном случае — «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
Выберите мост
Начните установку
kernel-xen
.
virt-manager
.
virt-install
(для графической установки укажите --vnc
). В приведенном ниже примере будет создана система с именем rhel5PV
, ее образ расположен в rhel5PV.dsk
, локальное зеркало дерева установки Red Hat Enterprise Linux 5 — в ftp://10.1.1.1/trees/CentOS5-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/CentOS5-B2-Server-i386/
DHCP
(как показано ниже) или статический адрес.
Код установки
.
rhn_register
(потребуются права root).
# rhn_register
virt-install
(см. Раздел 3.1, «Установка Red Hat Enterprise Linux 5 в качестве паравиртуализированного гостя»). В этом примере используется имя rhel5PV
.
virsh reboot rhel5PV
virt-manager
, выберите имя гостевой системы и нажмите , затем .
kdump
.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
, так как другие каталоги могут требовать дополнительной настройки SELinux (см. Раздел 7.1, «Виртуализация и SELinux»).
Storage setup
/var/lib/libvirt/images/
. Убедитесь, что виртуализированному гостю предоставлено достаточно пространства.
Нажмите .
Network setup
Memory and CPU allocation
Verify and start guest installation
Установка Linux
Starting virt-manager
Выберите имя для виртуальной системы
Выберите тип виртуализации
Выберите способ установки
/var/lib/libvirt/images/
, так как другие каталоги могут требовать дополнительной настройки SELinux (см. Раздел 7.1, «Виртуализация и SELinux»).
/var/lib/libvirt/images/
. SELinux запрещает использование других каталогов. Раздел 7.1, «Виртуализация и SELinux» содержит информацию, которая может помочь, если политика SELinux работает в строгом режиме.
/var/lib/libvirt/images/
. Если же вы хотите изменить каталог (например, на /images/
), прежде чем приступить к установке, потребуется его добавить в политику SELinux. Позднее будет описано, как изменить политику SELinux.
Network setup
HAL
, в появившемся окне диалога Windows-установки выберите вариант 'Generic i486 Platform
' (для перехода между пунктами используйте кнопки «Вверх» и «Вниз»).
# virsh start имя
имя
именем созданной виртуальной машины.
# virsh reboot имя
. Вы должны увидеть сообщение о повторном запуске процесса настройки.
virt-install
, которую можно использовать вместо virt-manager
. Процесс установки аналогичен рассмотренному ранее (см. Раздел 3.3, «Установка Windows XP в качестве полностью виртуализированного гостя»).
virt-install
для установки Windows Server 2003 откроется окно virt-viewer.
# virt-install -hvm -s 5 -f /var/lib/libvirt/images/windows2003spi1.dsk \ -n windows2003sp1 -cdrom=/ISOs/WIN/en_windows_server_2003_sp1.iso \ -vnc -r 1024
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
, так как другие каталоги могут требовать дополнительной настройки SELinux (см. Раздел 7.1, «Виртуализация и SELinux»).
Storage setup
/var/lib/libvirt/images/
. Убедитесь, что виртуализированному гостю предоставлено достаточно пространства.
Намжите .
Network setup
Memory and CPU allocation
Verify and start guest installation
Установка Windows
dd
. В приведенном ниже примере замените /dev/fd0 именем дисковода и присвойте диску соответствующее имя.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
, в которой выполняется полностью виртуализированная установка Linux, образ которой образ расположен в /var/lib/libvirt/images/rhel5FV.img
. В приведенном примере будет использоваться гипервизор Xen.
# 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 stop 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
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
как устройство /dev/hdb
. Это устройство надо отформатировать. Так, в гостевой системе создайте один основной раздел, занимающий все устройство, и отформатируйте его.
n
, чтобы создать новый раздел.
# fdisk /dev/hdb 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
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/hdb
# mount /dev/hdb1 /myfiles
multipath
и сохранение постоянства в размещающей системе.
virsh attach
. Замените myguest
именем вашей гостевой системы, /dev/hdb1
добавляемым устройством, а вместо hdc
укажите расположение устройства в гостевой системе. Обратите внимание, что на месте hdc
должно быть незанятое имя устройства. Для гостевых систем Windows укажите hd*
.
--type hdd
.
--type floppy
.
# virsh attach-diskmyguest
/dev/hdb1
hdc
--driver tap --mode readonly
/dev/hdb
(в Linux) или D: drive
(в Windows). Возможно, это устройство потребуется заново отформатировать.
multipath
. Многопутевая настройка может использоваться в системах с multipath
.
udev
. Используйте этот метод только, если в размещающей системе не настроены многопутевые возможности.
/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*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT=UUID
, NAME=имя_устройства
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
, обеспечивающий высокую отказоустойчивость и производительность сетевых устройств хранения, подключенных к системам Linux.
multipath
, необходимо присвоить псевдонимы многопутевым устройствам. Каждому устройству хранения соответствует UUID, который выполняет функции ключа для создаваемых имен. Определить UUID устройства можно с помощью команды scsi_id
.
# 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
и /dev/mpath/oramp4
. Теперь сопоставление идентификаторов именам будет сохраняться между перезагрузками.
virsh
с параметром attach-disk
.
# virsh attach-disk [ID_домена] [источник] [цель] --driver file --type cdrom --mode readonly
Параметры источник
и цель
представляют собой пути к файлам и устройствам в размещающей и гостевой системах (соответственно). Параметр цель
может представлять собой путь к ISO-файлу или устройству из каталога /dev
.
# setenforce 1
AutoFS
, NFS
, FTP
, HTTP
, NIS
, telnetd
, sendmail
и пр.
/var/lib/libvirt/images/
. Если же вы используете другой каталог, убедитесь, что это отражено в настройках политики SELinux.
vsftpd
.
/var/lib/libvirt/images
.
группа_томов
будет выглядеть так:
# lvcreate -nновый_том
-L5G
группа_томов
новый_том
и создайте файловую систему, поддерживающую расширенные атрибуты, например, ext3.
# mke2fs -j /dev/volumegroup/новый_том
/etc
, /var
, /sys
) и домашних каталогах (/home
или /root
).
# mkdir /virtstorage
# mount/dev/volumegroup/новый_том
/virtstorage
semanage fcontext -a -t xen_image_t "/virtualization(/.*)?"
semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local
. Добавленное выражение обеспечит постоянство этих изменений.
/virtstorage(/.*)? system_u:object_r:xen_image_t:s0
/virtstorage
) и всех файлов в этом каталоге на xen_image_t
(restorecon
и setfiles
позволяют обращаться к файлам в /etc/selinux/targeted/contexts/files/
).
# restorecon -R -v /virtualization
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
переводит xend
в незащищенный режим после его перезапуска. Если вы решили отключить защиту, лучше это сделать отдельно для демона, а не для всей системы. Не рекомендуется задавать метку xen_image_t
для каталогов, которые планируется использовать для других целей.
libvirt
включает возможности подключения к виртуальным машинам на основе NAT. Чтобы в этом убедиться, выполните команду virsh net-list --all
.
# 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)
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
» в сценарии ifcfg-*
.
/etc/sysconfig/network-scripts
.
# cd /etc/sysconfig/network-scripts
ifcfg-eth0
содержит определение физического сетевого интерфейса, входящего в состав моста:
DEVICE=eth0 # измените аппаратный адрес, чтобы он соответствовал адресу сетевой карты HWADDR=00:16:76:D6:C9:45 ONBOOT=yes BRIDGE=br0
MTU
в конец файла конфигурации.
MTU=9000
ifcfg-br0
(или аналогичным названием) в каталоге /etc/sysconfig/network-scripts
. br0
обозначает имя моста и может иметь любую длину, главное — чтобы эта часть имени файла совпадала с параметром DEVICE.
DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
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
daemon.
# 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.
Загрузите драйверы
virtio-win.iso
в каталог /usr/share/virtio-win/
.
Установите паравиртуализированные драйверы
virt-manager
» содержит инструкции по добавлению образа CD-ROM с помощью virt-manager
.
virt-manager
virt-manager
, выберите гостевую систему из списка и нажмите кнопку .
yum
, то нужный файл будет расположен в /usr/share/xenpv-win
.
viostor.vfd
как дисковод.
Windows Server 2003
Windows Server 2008
virtio
. Ниже будут внесены изменения в файлы конфигурации libvirt. Новое устройство с использованием паравиртуализированных драйверов также можно добавить с помощью virt-manager
или команд virsh attach-disk
и virsh attach-interface
(см. Использование паравиртуализированных драйверов KVM для новых устройств).
<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='hda' bus='ide'/> </disk>
virtio
, чтобы использовать паравиртуализированное устройство.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='hda' bus='virtio'/>
</disk>
virt-manager
.
virsh attach-disk
и virsh attach-interface
.
virt-manager
.
xend
/etc/xen/xend-config.sxp
. Ниже приведены доступные параметры.
Параметр | Description |
---|---|
(console-limit)
|
Определяет лимит буфера памяти сервера консоли xend_unix_server и задает значение для каждого домена отдельно.
|
(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.
# 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 Fedora (vmlinuz-2.6.29.6-217.2.3.fc11)
root (hd0,0)
kernel /vmlinuz-vmlinuz-2.6.29.6-217.2.3.fc11 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 | Дополнительные параметры не нужны |
/use pmtimer
virsh
. Ее аргумент migrate
принимает параметры в следующем формате:
# virsh migrate --live GuestName DestinationURL
GuestName
parameter represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
CentOS4test
с узла test1.bne.redhat.com
на test2.bne.redhat.com
.
Убедитесь, что гость работает
CentOS4test
выполняется на test1.bne.redhat.com
:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 running
Можно приступить к миграции
test2.bne.redhat.com
. В конец ссылки добавьте /system
, чтобы сообщить libvirt о необходимости получения полного доступа.
# virsh migrate --live CentOS4test qemu+ssh://test2.bne.redhat.com/system
Подождите
virsh
будет сообщать только об ошибках. Гость будет продолжать работу на исходном узле до завершения переноса.
Проверьте результат переноса
CentOS4test
выполняется на test2.bne.redhat.com
:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 running
virt-manager
.
ssh
, TLS и SSL.
libvirt
по SSH-туннелю.Аутентификация осуществляется за счет использования общих ключей SSH и паролей или проверочных фраз, получаемых локальным агентом SSH. Доступная гостевым виртуальным системам консоль VNC также защищена SSH.
virt-manager
virt-manager
. Если ssh
уже настроен, этот шаг можно пропустить.
$ ssh-keygen -t rsa
libvirt
. Скопируйте файл $HOME/.ssh/id_rsa.pub
из системы, которая будет использоваться для удаленного управления:
$ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
ssh
и в режиме root добавьте полученный файл в список авторизованных ключей. Если этот список не существует, проверьте разрешения файла.
$ ssh root@узел
# mkdir /root/.ssh
# chmod go-rwx /root/.ssh
# cat /root/key-dan.pub >> /root/.ssh/authorized_keys
# chmod go-rw /root/.ssh/authorized_keys
libvirt
(libvirtd
)libvirtd
предоставляет интерфейс для управления виртуальными машинами. Он должен работать на каждом удаленном узле, которым вы планируете управлять. Дополнительно, пакет kernel-xen
предъявляет отдельные требования к процессору и ядру.
$ ssh root@узел
# chkconfig libvirtd on
# service libvirtd start
libvirtd
и SSH вы сможете обращаться к удаленным виртуальным машинам, управлять ими и обращаться к гостевым системам через VNC
.
libvirt
откроет порт TCP для входящих запросов (при этом аутентификация будет осуществляться на основе сертификатов x509, а передаваемые данные будут зашифрованы), а для каждой виртуальной машины будет настроена VNC-консоль, использующая аутентификацию x509.
libvirt
/etc/xen/xend-config.sxp
. Снимите комментарий с параметра (vnc-tls 1)
.
/etc/xen/vnc
должен содержать следующие файлы:
ca-cert.pem
— сертификат CA;
server-cert.pem
— сертификат сервера, подписанный центром сертификации СА;
server-key.pem
— частный ключ сервера.
(vnc-x509-verify 1)
.
virt-manager
и virsh
libvirt
через TLS необходимо поместить сертификаты клиента и CA в /etc/pki
. На сайте http://libvirt.org/remote.html можно найти подробную информацию.
virt-manager
выберите в качестве транспортного механизма, используемого при подключении к узлу.
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
, позволят избежать необходимости повторного ввода пароля.
virsh
и libvirt
используют единообразный идентификатор ресурса URI (Uniform Resource Identifier) для подключения к удаленному узлу. Аргумент --connect
команды virsh
использует URI для выполнения команд на удаленном узле.
драйвер[+протокол]://[пользователь@][узел][:порт]/[путь][?дополнительные_параметры]
ccurran
к удаленному гипервизору Xen на узле towada
с использованием SSH:
xen+ssh://ccurran@towada/
towada
с использованием TLS:
xen://towada/
towada
с использованием TLS. Выражение no_verify=1
отключает проверку сертификата сервера утилитой libvirt.
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
Параметр | Режим передачи | Description | Пример |
---|---|---|---|
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: «command -p порт [-l пользователь] узел netcat -U socket», где «порт», «пользователь», «узел» являются составляющими удаленного URI, а «command», «netcat» и «socket» — дополнительные параметры. | netcat=/opt/netcat/bin/nc |
no_verify | tls | Ненулевое значение отключает проверку сертификата сервера клиентом. Но чтобы отключить проверку сертификата клиента или IP-адреса сервером потребуется изменить конфигурацию libvirtd. | 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
можно исполнять сценарии для виртуальных машин.
Команда | Description |
---|---|
help
| Краткая справка. |
list
| Просмотр всех виртуальных машин. |
dumpxml
| Вывести файл конфигурации XML для заданной виртуальной машины. |
create
| Создать виртуальную машину из файла конфигурации XML и ее запуск. |
start
| Запустить неактивную виртуальную машину. |
destroy
| Принудительно остановить работу виртуальной машины. |
define
| Определяет файл конфигурации XML для заданной виртуальной машины. |
domid
| Просмотр идентификатора виртуальной машины. |
domuuid
| Просмотр UUID виртуальной машины. |
dominfo
| Просмотр сведений о виртуальной машине. |
domname
| Просмотр имени виртуальной машины. |
domstate
| Просмотр состояния виртуальной машины. |
quit
| Закрыть интерактивный терминал. |
reboot
| Перезагрузить виртуальную машину. |
restore
| Восстановить сохраненную в файле виртуальную машину. |
resume
| Возобновить работу приостановленной виртуальной машины. |
save
| Сохранить состояние виртуальной машины в файл. |
shutdown
| Корректно завершить работу виртуальной машины. |
suspend
| Приостановить работу виртуальной машины. |
undefine
| Удалить все файлы виртуальной машины. |
migrate
| Перенести виртуальную машину на другой узел. |
virsh
:
Команда | Description |
---|---|
setmem
| Определяет размер выделенной виртуальной машине памяти. |
setmaxmem
| Ограничивает максимально доступный гипервизору объем памяти. |
setvcpus
| Изменяет число предоставленных гостю виртуальных процессоров. |
vcpuinfo
| Просмотр информации о виртуальных процессорах. |
vcpupin
| Настройка соответствий виртуальных процессоров. |
domblkstat
| Просмотр статистики блочных устройств для работающей виртуальной машины. |
domifstat
| Просмотр статистики сетевых интерфейсов для работающей виртуальной машины. |
attach-device
| Подключить определенное в XML-файле устройство к гостю. |
attach-disk
| Подключить новое дисковое устройство к гостю |
attach-interface
| Подключить новый сетевой интерфейс к гостю |
detach-device
|
Отключить устройство от гостя (принимает те же определения XML, что и attach-device ).
|
detach-disk
| Отключить дисковое устройство от гостя. |
detach-interface
| Отключить сетевой интерфейс от гостя. |
virsh
:
Команда | Description |
---|---|
version
|
Просмотр версии virsh .
|
nodeinfo
| Просмотр информации о гипервизоре. |
virsh
:
# virsh connect {узел ИЛИ URL}
<узел>
— имя машины гипервизора. Чтобы начать сессию в режиме чтения, добавьте параметр -readonly
.
# virsh dumpxml {ID_домена, имя_домена, UUID_домена}
stdout
. Сохраните вывод в файл:
virsh dumpxmlТеперь на основе файлаID_гостя
>guest.xml
guest.xml
можно создать новую гостевую систему (см. Редактирование файла конфигурации виртуальной машины). Отредактируйте файл конфигурации, добавив дополнительные гостевые системы или изменив устройства. Раздел 18.1, «Использование файлов конфигурации с помощью virsh» содержит дополнительную информацию об изменении файлов, созданных с помощью 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
(см. Создание XML-файла конфигурации виртуальной машины). Команда создания виртуальной машины из XML-файла с помощью virsh
выглядит так:
# virsh create configuration_file.xml
virsh edit
. Пример изменения настроек виртуальной машины с именем testing
:
# virsh edit testing
$EDITOR
(по умолчанию используется vi
).
virsh
:
# virsh suspend {ID_домена, имя_домена, UUID_домена}
resume
(см. Возобновление работы виртуальной машины).
resume
команды virsh
:
# virsh resume {ID_домена, имя_домена, UUID_домена}
suspend
и resume
.
# virsh save {ID_домена, имя_домена, UUID_домена} файл
restore
(см. Восстановление виртуальной машины).
virsh save
(см. Сохранение виртуальной машины), выполните:
# virsh restore файл
# virsh shutdown {ID_домена, имя_домена, UUID_домена}
on_shutdown
в его файле конфигурации.
#virsh reboot {ID_домена, имя_домена, UUID_домена}
on_reboot
в его файле конфигурации.
# virsh destroy {ID_домена, имя_домена, UUID_домена}
destroy
рекомендуется использовать только в случае, если виртуальная машина не отвечает на запросы. При работе с паравиртуализированными гостями используйте опцию shutdown
(Завершение работы виртуальной машины).
# virsh domid {имя_домена, UUID_домена}
# virsh domname {ID_домена, UUID_домена}
# virsh domuuid {ID_домена, имя_домена}
virsh domuuid
:
# virsh domuuid r5b2-mySQL01 4a4c59a7-ee3f-c781-96e4-288f2862f011
# virsh dominfo {ID_домена, имя_домена, 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 {ID_домена, имя_домена, UUID_домена}
# virsh vcpuinfo r5b2-mySQL01 VCPU: 0 CPU: 0 State: blocked CPU time: 0.0s CPU Affinity: yy
# virsh vcpupin {ID_домена, имя_домена, UUID_домена} vcpu, список_cpu
vcpu
— номер виртуального процессора, а список_cpu
— сопоставляемые ему физические процессоры.
# virsh setvcpus {ID_домена, имя_домена, UUID_домена} число
# virsh setmem {ID_домена, имя_домена} число
# virsh domblkstat виртуальная_машина блочное_устройство
# virsh domifstat виртуальная_машина интерфейс
virsh
позволяет переносить виртуальные машины с одного узла на другой. Для выполнения живой миграции просто нужно указать параметр --live
. Команда переноса выглядит так:
# virsh migrate --live GuestName DestinationURL
--live
не является обязательным.
GuestName
parameter represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
virsh
. Например, команда просмотра списка виртуальных сетей выглядит так:
# virsh net-list
# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
# virsh net-dumpxml имя_сети
# 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
выполняет управляющие функции:
127.0.0.1
) локального узла dom0, что гарантирует, что только пользователи с правами доступа к оболочке могут обращаться к virt-manager и виртуальной машине через VNC.
virt-manager
. Нажмите клавишу модификатора (Ctrl или Alt) 3 раза для ее перехода в нажатое состояние. Клавиша будет считаться нажатой до тех пор, пока не будет нажата любая клавиша, отличная от модификатора. Таким образом, чтобы передать гостевой системе комбинацию Ctrl-Alt-F11, необходимо последовательно нажать Ctrl Ctrl Ctrl Alt+F11.
Система
, затем Virtual Machine Manager
(virt-manager
).
virt-manager
virt-manager
можно запустить удаленно с использованием SSH. Пример:
ssh -X адрес_узла
[remotehost]# virt-manager
Раздел 13.1, «Удаленное управление с помощью SSH» содержит информацию об управлении виртуальными машинами и узлами с помощью ssh
.
DHCP
Содержание
ftpd
ftpd
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.23.14-107.fc8xen
2.6.23.14-107.fc8xen
. Если в результате выполнения команды вы получили версию ядра, которое используется по умолчанию, а именно 2.6.23.14-107.fc8
, можно сразу перейти к пункту 3.
Изменение ядра Xen на стандартное ядро
grub.conf
. Чтобы изменить используемое по умолчанию ядро, внесите изменения в /boot/grub/grub.conf
.
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
0
, чтобы использовалось первое ядро в списке:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.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.23.14-107.fc8
2.6.23.14-107.fc8
, которое используется по умолчанию. Если в результате выполнения команды вы получили версию ядра, в конце имени которого есть xen
(например, 2.6.23.14-107.fc8xen
), можно сразу перейти к пункту 3.
Изменение стандартного ядра на ядро Xen
grub.conf
. Чтобы изменить используемое по умолчанию ядро, внесите изменения в /boot/grub/grub.conf
.
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
1
, чтобы использовалось ядро Xen:
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc82.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
Перезагрузите систему с новым ядром
uname
:
$ uname -r 2.6.23.14-107.fc8xen
xen
, значит, выполняется ядро Xen.
qemu-img
применяется для форматирования различных файловых систем, используемых Xen и KVM. Именно с ее помощью следует выполнять форматирование виртуализированных гостевых систем, дополнительных устройств хранения и сетевых хранилищ. Ниже будут рассмотрены параметры и формат qemu-img
.
# qemu-img create [-6] [-e] [-b базовый_образ] [-f формат] имя_файла [размер]
convert
утилиты qemu-img.
# qemu-img convert [-c] [-e] [-f формат] файл1 [-O полученный_формат] файл2
qcow
или cow
). При этом пустые сектора будут удалены из полученного образа.
info
утилиты qemu-img позволяет получить сведения о дисковом образе. Формат команды:
# qemu-img info [-f формат] имя_файла
raw
qemu-img info
или ls -ls
(в Linux).
qcow2
qcow
cow
vmdk
cloop
pdflush
, который освобождает память за счет принудительного прерывания других процессов. Это достаточно опасно, так как pdflush
может прервать работу виртуальных машин или других системных процессов, что, в свою очередь, может привести к ошибкам файловой системы и даже повредить виртуализированные гостевые системы так, что их вообще невозможно будет загрузить.
(0.5 * ОЗУ) + (коэффициент перераспределения * ОЗУ) = рекомендуемый размер области подкачки
/etc/grub.conf
. Ядро xen
необходимо для успешной работы гипервизора Xen. Скопируйте всю существующую запись ядра xen
, чтобы избежать паники системы во время загрузки (т.к. initrd
будет иметь нулевую длину). При необходимости в строку xen
в соответствующей записи GRUB добавьте параметры для гипервизора.
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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.img
grub.conf
может отличаться от приведенного примера, если его уже изменяли ранее.
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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.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:
" может повторяться для каждого гиперпотока, ядра и процессора.
#!/bin/bash declare -i IS_HVM=0 declare -i IS_PARA=0 check_hvm() { IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)" if [ x"${IS_X86HVM}" != x ]; then echo "Guest type is full-virt x86hvm" IS_HVM=1 fi } check_para() { if $(grep -q control_d /proc/xen/capabilities); then echo "Host is dom0" IS_PARA=1 else echo "Guest is para-virt domU" IS_PARA=1 fi } if [ -f /proc/acpi/dsdt ]; then check_hvm fi if [ ${IS_HVM} -eq 0 ]; then if [ -f /proc/xen/capabilities ] ; then check_para fi fi if [ ${IS_HVM} -eq 0 -a ${IS_PARA} -eq 0 ]; then echo "Baremetal platform" fi
virsh capabilites
.
macgen.py
. Для генерации нового MAC-адреса из текущего каталога выполните команду ./macgen.py
. Пример:
$ ./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 ""
ftpd
vsftpd
обеспечивает доступ к установочному дереву или другим данным для паравиртуализированных гостевых систем. Если вы не установили vsftpd
в процессе установки сервера, можно установить соответствующий RPM-пакет из каталога Server
установочного носителя с помощью команды rpm -ivh vsftpd*.rpm
(при этом RPM-пакет должен находиться в вашем текущем каталоге).
vsftpd
осуществляется в файле/etc/passwd
. Для его редактирования используйте vipw
и в качестве домашнего каталога укажите каталог, в котором будет размещено дерево установки для паравиртуализированных гостевых систем. Пример записи FTP-пользователя:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
vsftpd
в процессе системной загрузки.
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="имя_устройства
"
UUID
и имя_устройства
полученными значениями. Правило будет выглядеть примерно так:
KERNEL="sd*
", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="мое_имя_устройства
"
/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
uuidgen
необходимо сгенерировать новый идентификатор UUID. Затем в записях vif
укажите уникальный MAC-адрес для каждой гостевой системы (при копировании настроек существующего гостя для этой цели можно создать сценарий). При переносе существующего файла конфигурации на новый узел обязательно обновите запись xenbr
так, чтобы она соответствовала локальным настройкам сетевого окружения. В записях Device укажите корректный образ в строке 'disk='
.
/etc/sysconfig/network
должна содержать имя узла нового гостя.
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
, указав в качестве значения имя узла гостевой системы.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
укажите адрес, полученный в результате выполнения ifconfig eth0
.
IPADDR
.
libvirt
.
libvirt
.
virsh
может обрабатывать файлы конфигурации XML, что используется при создании специализированных сценариев. Например, в паравиртуализированную гостевую систему можно добавить заданные в XML-файле устройства. Так, для добавления в выполняющуюся гостевую систему ISO-файла как hdc
создайте файл с таким содержимым:
# 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>Выполните команду
virsh attach-device
для добавления ISO как hdc
в гостевую систему с именем "satellite" :
# virsh attach-device satellite satelliteiso.xml
/etc/modprobe.conf
. Для этого добавьте строку:
options loop max_loop=64
phy: block device
и tap:aio
, а в полностью виртуализированных — phy: device
и file: file
.
cat /proc/cpuinfo | grep vmx svm
. Если вывод команды пуст, это может означать наличие ошибок в настройках BIOS или отсутствие в системе расширений. Непустой вывод команды будет свидетельстовать о том, что расширения виртуализации включены.
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 и других дистрибутивов Linux на виртуальных машинах. На английском.
/usr/share/doc/virt-manager-<версия>
— документация по работе с менеджером виртуальных машин. На английском.
История переиздания | |||
---|---|---|---|
Издание 12.1.3 | Mon Oct 12 2009 | ||
|
dom0
представляет собой экземпляр узла Linux, в котором выполняется Гипервизор. Dom0 отвечает за выделение оборудования и ресурсов самому себе и гостевым операционным системам.
domU
— гостевая операционная система, выполняющаяся в размещающей системе (см. Домены).
ext2
и ext3
, идентификаторы устройств RAID, iSCSI и LUN, MAC-адреса и идентификаторы виртуальных машин.