Ausgabe 5.8
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
ftpd
Nichtproportional Fett
Um den Inhalt der Dateimy_next_bestselling_novel
in Ihrem aktuellen Arbeitsverzeichnis zu sehen, geben Sie den Befehlcat my_next_bestselling_novel
in den Shell-Prompt ein und drücken Sie Enter, um den Befehl auszuführen.
Drücken Sie Enter, um den Befehl auszuführen.Drücken Sie Strg+Alt+F2, um zum ersten virtuellen Terminal zu wechseln. Drücken Sie Strg+Alt+F1, um zu Ihrer X-Windows-Sitzung zurückzukehren.
nichtproportional fett
dargestellt. Zum Beispiel:
Zu dateiverwandten Klassen zählenfilesystem
für Dateisysteme,file
für Dateien unddir
für Verzeichnisse. Jede Klasse hat ihren eigenen Satz an Berechtigungen.
Wählen Sie Mauseinstellungen zu öffnen. Klicken Sie im Reiter Tasten auf das Auswahlkästchen Mit links bediente Maus und anschließend auf , um die primäre Maustaste von der linken auf die rechte Seite zu ändern (d.h., um die Maus auf Linkshänder anzupassen).→ → in der Hauptmenüleiste aus, um dieUm ein spezielles Zeichen in eine gedit-Datei einzufügen, wählen Sie → → in der Hauptmenüleiste aus. Wählen Sie als Nächstes → aus der Menüleiste der Zeichentabelle aus, geben den Namen des Zeichens in das Suchbegriff-Feld ein und klicken auf . Das gesuchte Zeichen wird in der Zeichentabelle hervorgehoben. Doppelklicken Sie auf das hervorgehobene Zeichen, um es in das Feld Zu kopierender Text einzufügen und klicken Sie auf die Schaltfläche . Wechseln Sie nun zurück in Ihr Dokument und wählen Sie → aus der gedit-Menüleiste aus.
Nichtproportional Fett Kursiv
oder Proportional Fett Kursiv
Um sich mit einer Remote-Maschine via SSH zu verbinden, geben Sie an einem Shell-Promptssh
ein. Falls die Remote-Maschineusername
@domain.name
example.com
ist und Ihr Benutzername auf dieser Maschine John lautet, geben Sie alsossh john@example.com
ein.Der Befehlmount -o remount
hängt das angegebene Dateisystem wieder ein. Um beispielsweise dasfile-system
/home
-Dateisystem wieder einzuhängen, verwenden Sie den Befehlmount -o remount /home
.Um die Version des derzeit installierten Pakets zu sehen, verwenden Sie den Befehlrpm -q
. Die Ausgabe sieht wie folgt aus:package
.
package-version-release
Publican ist ein DocBook Publishing-System.
nichtproportional Roman
gesetzt und demnach wie folgt präsentiert:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
nichtproportional Roman
gesetzt, doch wird zusätztlich noch die Syntax hervorgehoben:
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
.
NFS
, FTP
oder HTTP
-Protokollen verfügbar ist.
/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 Abschnitt 18.2, „SELinux und Virtualisierung“ for details.
yum
for more information.
grub.conf
file.
virtio
-Treiber nutzen, sind PCI-Geräte. Derzeit sind Gäste auf maximal 32 PCI-Geräte beschränkt. Bei einigen PCI-Geräten ist es für den Gast entscheidend, dass sie laufen; diese Geräte können nicht entfernt werden. Die standardmäßig notwendigen Geräte sind:
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
-Geräten haben, sofern er über ausreichend Ressourcen verfügt.
/etc/modprobe.conf
die folgende Zeile hinzu:
options loop max_loop=64
# rmmod loop # modprobe loop
Inhaltsverzeichnis
yum
-Befehls und Red Hat Network (RHN) installiert werden.
virt-manager
, libvirt
und virt-viewer
samt zugehöriger Abhängigkeiten zur Installation.
Anpassen der Pakete (falls nötig)
%packages
-Abschnitt Ihrer Kickstart-Datei die folgende Paketgruppe hinzu:
%packages @xen
xen-ia64-guest-firmware
rhn_register
-Befehl aus und folgen Sie den Anweisungen.
yum
xen
und kernel-xen
-Pakete. Das xen
-Paket beinhaltet den Hypervisor und grundlegende Virtualisierungs-Tools. Das kernel-xen
-Paket beinhaltet einen modifizierten Linux-Kernel, der als virtuelle Maschine auf dem Hypervisor läuft.
xen
und kernel-xen
-Pakete zu installieren, führen Sie Folgendes aus:
# yum install xen kernel-xen
xen-ia64-guest-firmware
) von der Extras-Installations-DVD. Dieses Paket kann mit dem yum
-Befehl auch von RHN installiert werden:
# yum install xen-ia64-guest-firmware
python-virtinst
virt-install
-Befehl für die Erzeugung von virtuellen Maschinen.
libvirt
libvirt
ist eine API-Bibliothek zur Interaktion mit Hypervisoren. libvirt
verwendet das xm
-Virtualisierungs-Framework und das virsh
-Befehlszeilen-Tool, um virtuelle Maschinen zu verwalten und zu steuern.
libvirt-python
libvirt
-Bibliothek gelieferte Schnittstelle zu verwenden.
virt-manager
virt-manager
, auch Virtual Machine Manager genannt, bietet ein grafisches Tool zur Verwaltung virtueller Maschinen. Es verwendet die libvirt
-Bibliothek als Management-API.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-manager
, libvirt
und virt-viewer
zur Installation ausgewählt.
Anpassen der Pakete (falls nötig)
%packages
-Abschnitt Ihrer Kickstart-Datei die folgende Paketgruppe hinzu:
%packages @kvm
rhn_register
-Befehl aus und folgen Sie den Anweisungen.
yum
kvm
-Paket. Das kvm
-Paket beinhaltet das KVM-Kernel-Modul, das den KVM-Hypervisor auf dem standardmäßigen Red Hat Enterprise Linux Kernel liefert.
kvm
-Paket zu installieren, führen Sie Folgendes aus:
# yum install kvm
python-virtinst
virt-install
-Befehl für die Erzeugung von virtuellen Maschinen.
libvirt
libvirt
ist eine API-Bibliothek zur Interaktion mit Hypervisoren. libvirt
verwendet das xm
-Virtualisierungs-Framework und das virsh
-Befehlszeilen-Tool, um virtuelle Maschinen zu verwalten und zu steuern.
libvirt-python
libvirt
-Bibliothek gelieferte Schnittstelle zu verwenden.
virt-manager
virt-manager
, auch Virtual Machine Manager genannt, bietet ein grafisches Tool zur Verwaltung virtueller Maschinen. Es verwendet die libvirt
-Bibliothek als Management-API.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-install
. Beide Methoden werden in diesem Kapitel behandelt.
virt-install
-Befehl verwenden, um virtualisierte Gäste von der Befehlszeile aus zu erzeugen. virt-install
kann entweder interaktiv verwendet werden oder in einem Skript, um die Erstellung virtueller Maschinen zu automatisieren. Wenn virt-install
zusammen mit Kickstart-Dateien verwendet wird, können virtuelle Maschinen unbeaufsichtigt installiert werden.
virt-install
-Tool bietet eine Reihe von Optionen, die in der Befehlszeile übergeben werden können. Um eine vollständige Auflistung dieser Optionen zu sehen, geben Sie ein:
$ virt-install --help
virt-install
-Handbuchseite dokumentiert jede Befehlszeilenoption sowie wichtige Variablen.
qemu-img
ist ein zugehöriger Befehl, der vor virt-install
dazu verwendet werden kann, Speicheroptionen zu konfigurieren.
--vnc
option which opens a graphical window for the guest's installation.
rhel3support
von einer CD-ROM, mit virtuellem Netzwerk und einem 5 GB dateibasiertem Blockgerät-Image. Dieses Beispiel verwendet den KVM-Hypervisor.
# 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
, auch als Virtual Machine Manager bekannt, ist ein grafisches Tool zur Erstellung und Verwaltung virtualisierter Gäste.
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
nicht der aktuell laufende Kernel ist.
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 Abschnitt 18.2, „SELinux und Virtualisierung“ 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
. Kapitel 8, Installationsverfahren für Gastbetriebssysteme contains step-by-step instructions to installing a variety of common operating systems.
Neue Bridge erstellen
/etc/sysconfig/network-scripts/
-Verzeichnis. Dieses Beispiel erstellt eine Datei namens ifcfg-installation
, die eine Bridge namens installation
erzeugt.
# 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
-Befehl, um Einzelheiten der Netzwerk-Bridges auf dem System einzusehen.
# brctl show bridge name bridge id STP enabled interfaces installation 8000.000000000000 no virbr0 8000.000000000000 yes
virbr0
-Bridge ist die Standard-Bridge, die von libvirt
für Network Address Translation (NAT) auf dem Standard-Ethernet-Gerät verwendet wird.
Eine Schnittstelle zur neuen Bridge hinzufügen
BRIDGE
-Parameter mit dem Namen der Bridge, die im vorangegangenen Schritt erzeugt wurde, zur Konfigurationsdatei hinzu.
# 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
-Befehls, dass die Schnittstelle nun verknüpft ist:
# brctl show bridge name bridge id STP enabled interfaces installation 8000.001320f76e8e no eth1 virbr0 8000.000000000000 yes
Sicherheitskonfiguration
iptables
, so dass sämtlicher Datenverkehr über die Bridge weitergeleitet werden darf.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
-Regeln bearbeitet wird. Fügen Sie dazu in /etc/sysctl.conf
folgende Zeilen hinzu:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
konfiguriert wurden, neu.
# sysctl -p /etc/sysctl.conf
libvirt vor der Installation neustarten
libvirt
-Daemon neu.
# service libvirtd reload
virt-install
den --network=bridge:installation
-Installationsparameter an, wobei installation
der Name Ihrer Bridge ist. Verwenden Sie für PXE-Installationen den --pxe
-Parameter.
# 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 auswählen
Bridge auswählen
Installation starten
virsh update-device Guest1 ~/Guest1.xml
(substituting your guest's name and XML file), and select OK to continue past this step.
kernel-xen
-Kernel.
virt-manager
, refer to the procedure in Abschnitt 7.2, „Erzeugen von Gästen mit virt-manager“.
virt-install
. Durch die Option --vnc
wird die grafische Installation gestartet. Der Name des Gasts lautet in diesem Beispiel rhel5PV
, die Image-Datei ist rhel5PV.dsk
und ein lokaler Spiegelserver des Red Hat Enterprise Linux 5 Installationsbaums ist ftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
. Ersetzen Sie diese Werte passend für Ihr System und Ihr Netzwerk.
# 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:
Installationsnummer
ein:
rhn_register
-Befehls. Der rhn_register
-Befehl erfordert Root-Rechte.
virt-install
in Abschnitt 8.1, „Installation von Red Hat Enterprise Linux 5 als paravirtualisierter Gast“. If you used the default example the name is rhel5PV
.
virsh
-Befehls neu:
# virsh reboot rhel5PV
virt-manager
öffnen, den Namen Ihres Gasts auswählen, auf und danach auf klicken.
kdump
. The use of kdump
is unsupported on para-virtualized guests.
yum
command or RHN. Click .
Öffnen Sie virt-manager
virt-manager
. Wählen Sie dazu im Menü Anwendungen
das Untermenü Systemwerkzeuge
und wählen dort den aus. Alternativ können Sie auch den Befehl virt-manager
als Root ausführen.
Wählen Sie den Hypervisor
qemu
heißt.
Starten Sie den Assistenten zur Erzeugung virtueller Maschinen
Benennen Sie die virtuelle Maschine
Wählen Sie eine Virtualisierungsmethode
Wählen Sie die Installationsart
Wählen Sie den Ort des Installationsmediums
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Abschnitt 18.2, „SELinux und Virtualisierung“ for details.
Einrichten von Speicherplatz
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Einrichten des Netzwerks
Speicher- und CPU-Zuweisung
Überprüfen und Starten der Gastinstallation
Installation von Red Hat Enterprise Linux
Starten Sie virt-manager
Benennen Sie das virtuelle System
Wählen Sie eine Virtualisierungsmethode
Wählen Sie die Installationsart
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Abschnitt 18.2, „SELinux und Virtualisierung“ 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 Abschnitt 18.2, „SELinux und Virtualisierung“ for details.
/var/lib/libvirt/images/
. Falls Sie einen anderen Speicherort verwenden (wie z. B. /images/
in diesem Beispiel), stellen Sie sicher, dass Sie ihn in der SELinux-Richtlinie hinzugefügt und neu gekennzeichnet haben, bevor Sie mit der Installation fortfahren (an späterer Stelle im Dokument finden Sie Informationen darüber, wie Sie Ihre SELinux-Richtlinie anpassen).
Einrichten des Netzwerks
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
WindowsGuest
der Name Ihrer virtuellen Maschine ist.
virsh reboot WindowsGuestName
neu. Wenn Sie Ihre virtuelle Maschine neu starten, sehen Sie die Nachricht Setup wird neu gestartet
:
virt-install
command. virt-install
can be used instead of virt-manager
This process is similar to the Windows XP installation covered in Abschnitt 8.3, „Installation von Windows XP als voll virtualisierter Gast“.
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
als Computertyp aus. Die Änderung des Computertyps ist notwendig für Windows Server 2003 virtualisierte Gäste.
Öffnen Sie virt-manager
virt-manager
. Wählen Sie dazu im Menü Anwendungen
das Untermenü Systemwerkzeuge
und wählen dort den aus. Alternativ können Sie auch den Befehl virt-manager
als Root ausführen.
Wählen Sie den Hypervisor
qemu
heißt.
Starten Sie den Assistenten zur Erzeugung virtueller Maschinen
Benennen Sie die virtuelle Maschine
Wählen Sie eine Virtualisierungsmethode
Wählen Sie die Installationsart
Wählen Sie den Ort des Installationsmediums
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Abschnitt 18.2, „SELinux und Virtualisierung“ for details.
Einrichten von Speicherplatz
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Einrichten des Netzwerks
Speicher- und CPU-Zuweisung
Überprüfen und Starten der Gastinstallation
Installation von Windows
Inhaltsverzeichnis
/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
angelegt wurde und auf dem eine vollvirtualisierte Installation von Red Hat Enterprise Linux läuft, mit einem Image in /var/lib/libvirt/images/rhel5FV.img
. In diesem Beispiel wird der Xen-Hypervisor verwendet.
virsh
auf einem laufenden Gast ausführen.
# 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
-Befehls eine Sparse-Datei. Beachten Sie bitte, dass die Verwendung von Sparse-Dateien aufgrund von Integritäts- und Performance-Problemen nicht empfohlen wird. Sparse-Dateien sind schnell erzeugt und können zum Testen verwendet werden, sollten jedoch nicht im Produktionsumfeld eingesetzt werden.
# 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
und die Datei wird im Benutzerverzeichnis gespeichert.
# virsh dumpxmlGuest1
> ~/Guest1
.xml
Guest1.xml
) in einem Texteditor und suchen nach den disk=
-Elementen, diese Elemente beschreiben Speichergeräte. Ein disk-Element könnte wie folgt aussehen:
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk>
<disk>
-Element duplizieren oder neu erstellen. Versichern Sie sich, dass Sie einen Gerätenamen für die virtuellen Blockgerätattribute angeben. Diese Attribute müssen in der Konfigurationsdatei jedes Gasts eindeutig sein. Das folgende Beispiel ist ein Abschnitt aus einer Konfigurationsdatei, die einen zusätzlichen dateibasierten Speicher-Container namens FileName.img
enthält:
<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
für eine neue Partition.
# fdisk /dev/sdb Command (m for help):
p
für eine Primärpartition.
Command action e extended p primary partition (1-4)
1
.
Partition number (1-4): 1
Eingabe
-Taste.
First cylinder (1-400, default 1):
Eingabe
-Taste.
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
für eine Linux-Partition ein.
Hex code (type L to list codes): 83
Command (m for help):w
Command (m for help):q
ext3
-Dateisystem.
# 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
und Persistenz auf dem Host, falls nötig.
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
an.
# 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 Konfiguration eines einzigen Pfads (Single Path). Systems running multipath
can use Konfiguration multipler Pfade (Multiple Path).
udev
. Only use this procedure for hosts which are not using multipath
.
/etc/scsi_id.config
-Datei.
options=-b
auskommentiert ist.
# options=-b
options=-g
udev
um anzunehmen, dass alle angeschlossenen SCSI-Geräte einen UUID (Unique Device Identifier) wiedergeben.
scsi_id -g -s /block/sd*
aus. Zum Beispiel:
# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
/dev/sdc
angezeigt.
scsi_id -g -s /block/sd*
-Befehl identisch ist von Computern, die auf das Gerät zugreifen.
/etc/udev/rules.d
die Datei 20-names.rules
an. In dieser Datei fügen Sie neue Regeln hinzu. Alle Regeln werden in dieselbe Datei und in demselben Format eingefügt. Das Format für Regeln sieht folgendermaßen aus:
KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID
", NAME="devicename
"
UUID
und devicename
durch die vorher abgefragte UUID und den gewünschten Namen für das Gerät. Für das obige Beispiel könnte eine Regel wie folgt aussehen:
KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev
-Daemon sucht daraufhin alle Geräte namens /dev/sd*
für die UUID in der Regel. Sobald ein passendes Gerät mit dem System verbunden wird, wird dem Gerät der Name aus der Regel zugewiesen. Das Gerät mit der UUID 3600a0b800013275100000015427b625e würde demnach als /dev/rack4row16
erscheinen.
/etc/rc.local
an:
/sbin/start_udev
/etc/scsi_id.config
, /etc/udev/rules.d/20-names.rules
und /etc/rc.local
für alle relevanten Hosts.
/sbin/start_udev
multipath
-Paket wird für Systeme mit mehr als einem physischen Pfad vom Computer zu Speichergeräten verwendet. multipath
bietet Fehlertoleranz, die Möglichkeit zum Failover, sowie verbesserte Leistung für Netzwerkspeichergeräte unter Red Hat Enterprise Linux Systemen.
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
-Verzeichnis angelegt. In dem nachfolgenden Beispiel sind vier Geräte in /etc/multipath.conf
definiert:
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
definiert.
# virsh net-autostart default Network default marked as autostarted
# virsh net-start default Network default started
libvirt
-Standardnetzwerk läuft, werden Sie ein isoliertes Bridge-Gerät sehen. Dieses Gerät besitzt keine physischen Schnittstellen, da es NAT- und IP-Weiterleitung verwendet, um sich mit der Außenwelt zu verbinden. Fügen Sie keine neuen Schnittstellen hinzu.
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
libvirt
fügt iptables
-Regeln hinzu, die Datenverkehr von und zu Gästen erlauben, die mit dem virbr0
-Gerät in den INPUT
, FORWARD
, OUTPUT
und POSTROUTING
-Ketten verknüpft sind. libvirt
versucht daraufhin, den ip_forward
-Parameter zu aktivieren. Einige andere Anwendungen deaktivieren möglicherweise ip_forward
, deshalb sollten Sie am Besten Folgendes zur /etc/sysctl.conf
-Datei hinzufügen.
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
bearbeiten und die folgende Zeile ändern, von:
(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
-Verzeichnis:
# cd /etc/sysconfig/network-scripts
ifcfg-eth0
die physische Netzwerkschnittstelle, die als Teil einer Bridge eingestellt wird:
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
/etc/sysconfig/network-scripts
-Verzeichnis namens ifcfg-br0
oder ähnlich. br0
ist der Name der Bridge. Dieser Name kann beliebig lauten, solange der Name der Datei dem Namen des DEVICE-Parameters entspricht.
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
, so dass sämtlicher Datenverkehr über die Bridge weitergeleitet werden darf.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
-Regeln bearbeitet wird. Fügen Sie dazu in /etc/sysctl.conf
folgende Zeilen hinzu:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
konfigurierten Kernel-Parameter neu.
# sysctl -p /etc/sysctl.conf
libvirt
-Daemon neu.
# service libvirtd reload
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes br0 8000.000e0cb30550 no eth0
virbr0
-Bridge. Versuchen Sie nicht, ein physisches Gerät mit virbr0
zu verknüpfen. Die virbr0
-Bridge dient ausschließlich der Network Address Translation (NAT) Konnektivität.
virsh
(Kapitel 25, Das Verwalten von Gästen mit virsh) and virt-manager
(Kapitel 26, Das Verwalten von Gästen mit dem Virtual Machine Manager (virt-manager)). Those chapters provide a detailed description of the networking configuration tasks using both tools.
system-config-network
-Tools oder durch Erstellung einer neuen Konfigurationsdatei namens ifcfg-ethX
in /etc/sysconfig/network-scripts
, wobei X
eine beliebige noch nicht verwendete Zahl sein kann. Nachfolgend finden Sie ein Beispiel einer Konfigurationsdatei für eine zweite Netzwerkschnittstelle namens 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
nach /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
. NetworkManager funktioniert standardmäßig mit virtuellen Netzwerkgeräten in Red Hat Enterprise Linux 5.1 und höher.
<interface type='network'> <mac address='AA:AA:AA:AA:AA:AA'/> <source network='default'/> <target dev='vnet0'/> <model type='virtio'/> </interface>
xm
-Konfigurationsdateien sind virtuelle Geräte mit "vif
" gekennzeichnet.
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
hinzu.
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
an dummy0
, damit Sie ein Netzwerk verwenden können, selbst wenn Sie nicht an ein physisches Netzwerk angeschlossen sind. Bearbeiten Sie /etc/xen/xend-config.sxp
und fügen den Eintrag netdev=dummy0
hinzu:
(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
kopieren und eine symbolische Verknüpfung zu /etc/rc3.d/S99xenLaptopNAT
erzeugen. Dies startet NAT zum Zeitpunkt des Hochfahrens automatisch.
#!/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
auf einem Laptop mit Virtualisierung konfiguriert wird:
dnsmasq.tgz
. The tar archive includes the following files:
nm-dnsmasq
kann als ein Dispatcher-Skript für den NetworkManager verwendet werden. Es wird immer gestartet, wenn der NetworkManager eine Änderung in der Verbindung erkennt und erzwingt einen Neustart bzw. Neuladen von dnsmasq. Es sollte nach /etc/NetworkManager/dispatcher.d/nm-dnsmasq
kopiert werden.
xenDNSmasq
kann als Haupt-Startup- oder -Shutdown-Skript für /etc/init.d/xenDNSmasq
verwendet werden.
dnsmasq.conf
ist ein Beispiel für eine Konfigurationsdatei für /etc/dnsmasq.conf
.
dnsmasq
ist das Binär-Image für /usr/local/sbin/dnsmasq
.
/usr/local/sbin/dnsmasq
sein), müssen Sie Ihre dnsmasq-Konfigurationsdatei bearbeiten. Diese Datei befindet sich in /etc/dnsmaqa.conf
.
interface
-Parameter erlaubt es dnsmasq
, auf DHCP
- und DNS
-Anfragen nur auf spezifizierten Schnittstellen zu horchen. Dies können Dummy-Schnittstellen anstelle Ihrer öffentlichen Schnittstellen sein, oder auch die lokale Loopback-Schnittstelle. Fügen Sie weitere interface
-Zeilen für weitere Schnittstellen hinzu. interface=dummy0
beispielsweise horcht auf die dummy0
-Schnittstelle.
dhcp-range
: Um den integrierten DHCP
-Server zu aktivieren, müssen Sie einen verfügbaren Adressbereich und optional eine Lease-Zeit angeben. Falls Sie mehr als ein Netzwerk haben, müssen Sie dies für jedes weitere Netzwerk wiederholen, das Sie mit dem DHCP
-Dienst versorgen wollen. Ein Beispiel wäre (für Netzwerk 10.1.1.* und eine Lease-Zeit von 12 Std): dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12h
.
dhcp-option
: Um die von dnsmasq gelieferte Standard-Route außer Kraft zu setzen, wodurch angenommen wird, dass der Router dieselbe Maschine ist, die auch dnsmasq ausführt. Ein Beispiel wäre dhcp-option=3,10.1.1.1
.
xenDNSmasq
nach /etc/init.d
kopieren.
chkconfig --add xenDNSmasq
chkconfig --levels 345 xenDNSmasq on
dnsmasq
so zu konfigurieren, dass es jedesmal neu startet, wenn NetworkManager eine Änderung in der Verbindung entdeckt, können Sie das nm-dnsmasq
-Skript verwenden.
nm-dnsmasq
-Skript nach /etc/NetworkManager/dispatcher.d/
dnsmasq
wird ebenfalls Veränderungen in Ihrer /etc/resolv.conf
-Datei erkennen und sie automatisch neuladen (z. B. wenn Sie eine VPN-Sitzung beginnen).
nm-dnsmasq
als auch das xenDNSmasq
-Skript richten ebenfalls NAT ein, um Ihren virtualisierten Gästen – falls sich diese in einem versteckten Netzwerk befinden – Zugriff auf das öffentliche Netzwerk zu erlauben.
pv-on-hvm
-Modul, im Standard-Kernel-Paket enthalten. Das bedeutet, dass die paravirtualisierten Treiber für Gäste mit Red Hat Enterprise Linux 4.7 und höher sowie 5.3 und höher zur Verfügung stehen.
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
Kernel-Architektur | Red Hat Enterprise Linux 3 | Red Hat Enterprise Linux 4 | Red Hat Enterprise Linux 5 |
---|---|---|---|
Athlon | Unterstützt (AMD) | ||
athlon-SMP | Unterstützt (AMD) | ||
i32e | Unterstützt (Intel) | ||
i686 | Unterstützt (Intel) | Unterstützt | Unterstützt |
i686-PAE | Unterstützt | ||
i686-SMP | Unterstützt (Intel) | Unterstützt | |
i686-HUGEMEM | Unterstützt (Intel) | Unterstützt | |
x86_64 | Unterstützt (AMD) | Unterstützt | Unterstützt |
x86_64-SMP | Unterstützt (AMD) | Unterstützt | |
x86_64-LARGESMP | Unterstützt | ||
Itanium (IA64) | Unterstützt |
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
kernel-PAE-2.6.18-53.1.4.el5.i686
GRUB
GRUB
) enthält, oder eine Platte, die die Kernel initrd
-Images enthält. Kurz, jede Platte, die ein /boot
-Verzeichnis oder -Partition enthält, kann die paravirtualisierten Blockgerättreiber nicht verwenden.
xen-pci-platform
-Moduls fehl.
Gast-Kernel-Typ | Erforderlicher Host-Kernel-Typ |
---|---|
ia32e (UP und SMP) | x86_64 |
i686 | i686 |
i686-SMP | i686 |
i686-HUGEMEM | i686 |
Gast-Kernel-Typ | Erforderlicher Host-Kernel-Typ |
---|---|
Athlon | i686 |
athlon-SMP | i686 |
x86_64 | x86_64 |
x86_64-SMP | x86_64 |
MBR
und den Boot-Loader (GRUB
) enthält, sowie für die /boot
-Partition. Diese Partition kann sehr klein sein, sie benötigt nur ausreichend Speicherplatz für die /boot
Partition.
/
, /usr
) oder logische Datenträger.
/boot
-Partition benutzt.
rpm
-Befehl oder den yum
-Befehl, um die Pakete zu installieren. Das rpm
-Dienstprogramm wird die folgenden vier neuen Kernel-Module in /lib/modules/[%kversion][%kvariant]/extra/xenpv/%release
installieren:
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, das Ihrer Hardware-Architektur und Kernel-Variante entspricht, auf Ihr Gastbetriebssystem.
rpm
-Dienstprogramm, um die RPM-Pakete zu installieren. Vergewissern Sie sich, dass Sie korrekt dasjenige Paket identifiziert haben, das Sie für Ihre Gastbetriebssystemvariante und -architektur benötigen.
[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
Warnungen generiert, weil Red Hat Enterprise Linux 3 MODVERSIONS aktiviert hat. Diese Warnungen können jedoch ignoriert werden.
/etc/modules.conf
und stellen Sie sicher, dass Sie ein Alias für eth0
haben ähnlich dem unten gezeigten. Falls Sie mehrere Schnittstellen konfigurieren möchten, fügen Sie eine zusätzliche Zeile pro Schnittstelle hinzu.
alias eth0 xen-vnif
/etc/rc.local
und fügen diese Zeile hinzu:
insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
#shutdown -h now
” innerhalb des Gasts aus).
/etc/xen/YourGuestName
with a text editor, performing the following changes:
type=ioemu
”-Eintrag vom “vif=
”-Eintrag.
xen-vbd
) Plattentreiber auf diese zugegriffen werden kann.
<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
und modversions
enthalten. Um das Modul einzufügen, führen Sie nachstehenden Befehl aus.
insmod xen_vbd.ko
xen-vbd
verwenden. Die nachfolgenden Schritte veranschaulichen die Erstellung und Registrierung von paravirtualisierten Blockgeräten.
#!/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
" dem System zur Verfügung steht.
[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
-Datei im Gast, um die Geräte während der Boot-Sequenz einzuhängen. Fügen Sie folgende Zeilen hinzu:
/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
und modversions
-RPMs, die Ihrer Hardware-Architektur und Kernel-Variante entsprechen, auf Ihr Gastbetriebssystem.
rpm
-Dienstprogramm, um die RPM-Pakete zu installieren. Vergewissern Sie sich, dass Sie korrekt dasjenige Paket identifiziert haben, das Sie für Ihre Gastbetriebssystemsvariante und -architektur benötigen. Ein aktualisiertes module-init-tools wird für dieses Paket benötigt, welches für den Red Hat Enterprise Linux 4-6-z Kernel und höher erhältlich ist.
[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
” innerhalb des Gasts aus).
/etc/xen/YourGuestName
folgendermaßen:
type=ioemu
-” Eintrag vom “vif=
”-Eintrag.
xen-vbd
) Plattentreiber auf diese zugegriffen werden kann.
disk=
"-Bereich der Gastkonfigurationsdatei ein. Der ursprüngliche disk=
-Eintrag kann ebenfalls dem unten gezeigten ähneln.
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
" für das paravirtualisierte Gerät, falls ein dateibasiertes Image verwendet wird.
virsh
-Befehl:
# virsh start YourGuestName
kudzu
Sie fragen, ob Sie das "Realtek Netzwerkgerät behalten oder löschen" und das "Xen-Bridge Gerät konfigurieren" möchten. Sie sollten xen-bridge
konfigurieren und das Realtek-Netzwerkgerät löschen.
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
im System erreichbar ist.
[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
-Datei im Gast, um die Geräte während der Boot-Sequenz einzuhängen. Fügen Sie folgende Zeilen hinzu:
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
xen-vbd
-Treiber lädt unter Umständen nicht automatisch. Führen Sie den folgenden Befehl auf dem Gast aus, ersetzen Sie dabei %release durch die korrekte Release-Version für die paravirtualisierten Treiber.
# insmod /lib/modules/'uname -r'/weak-updates/xenpv/%release/xen_vbd.ko
#shutdown -h now
” innerhalb des Gasts aus).
/etc/xen/YourGuestName
folgendermaßen:
type=ioemu
”-Eintrag vom “vif=
”-Eintrag.
xen-vbd
) Plattentreiber auf diese zugegriffen werden kann.
disk=
"-Bereich der Gastkonfigurationsdatei ein. Der ursprüngliche disk=
-Eintrag kann ebenfalls dem unten gezeigten ähneln.
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
" für das paravirtualisierte Gerät, falls ein dateibasiertes Image verwendet wird.
virsh
-Befehl:
# 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
im System erreichbar ist.
[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
-Datei im Gast, um die Geräte während der Boot-Sequenz einzuhängen. Fügen Sie folgende Zeilen hinzu:
/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
das Konsolenfenster für den Gast und melden sich als root
an.
/etc/modprobe.conf
die Zeile “alias eth0 xen-vnif
” beinhaltet.
# 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 Abschnitt 36.4, „Manuelles Laden der paravirtualisierten Treiber“.
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/YourGuestName
und ersetzen YourGuestName
durch den Namen Ihres Gasts.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0" ]
vif=
”-Bereich der Konfigurationsdatei ein, etwa wie der Eintrag unten.
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
in Red Hat Enterprise Linux 3 oder /etc/modprobe.conf
in Red Hat Enterprise Linux 4 oder Red Hat Enterprise Linux 5 hinzugefügt wurde. Fügen Sie ein Alias für jede neue Schnittstelle hinzu.
alias eth1 xen-vnif
# ifconfig eth1
redhat-config-network
für Red Hat Enterprise Linux 3 oder mittels system-config-network
für Red Hat Enterprise Linux 4 und Red Hat Enterprise Linux 5.
/etc/xen/YourGuestName
und ersetzen YourGuestName
durch den Namen Ihres Gasts. Der ursprüngliche Eintrag sieht etwa wie folgt aus.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w"]
disk=
”-Parameter der Konfigurationsdatei hinzu. Speichereinheiten, die den paravirtualisierten Treiber verwenden, sehen etwa wie der Eintrag unten aus. Der “tap:aio
”-Parameter weist den Hypervisor an, den paravirtualisierten Treiber zu verwenden.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w" ]
disk=
”-Bereich ein.
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
” für das System verfügbar ist.
/etc/fstab
innerhalb des Gasts, um die Geräte und Partitionen zum Zeitpunkt des Hochfahrens einzuhängen.
# 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
Herunterladen der Treiber
yum
command.
# yum install virtio-win
virtio-win.iso
im /usr/share/virtio-win/
-Verzeichnis.
Installation der paravirtualisierten Treiber
virt-manager
zum Einhängen eines CD-ROM-Images für einen Windows-Gast“ to add a CD-ROM image with virt-manager
and then install the drivers.
virt-manager
zum Einhängen eines CD-ROM-Images für einen Windows-GastOpen 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
als Floppy.
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 Abschnitt 13.4, „Verwenden von KVM paravirtualisierten Treibern für neue Geräte“.
<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
oder virsh attach-interface
nutzen, um Geräte zu verknüpfen, die die paravirtualisierten Treiber verwenden.
virt-manager
auf den Namen des Gasts doppelklicken.
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
(Abschnitt 14.1, „Adding a PCI device with virsh“ - Step 5);
virt-manager
(Abschnitt 14.2, „Adding a PCI device with virt-manager“); or
virt-install
(Abschnitt 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 Schritt 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
ntpd
-Dienst wie folgt:
# service ntpd start
# chkconfig ntpd on
ntpd
-Dienstes sollte die Folgen der Zeitabweichung in jedem Fall minimieren.
constant_tsc
-Flag vorhanden ist. Um festzustellen, ob Ihre CPU das constant_tsc
-Flag gesetzt hat, führen Sie den folgenden Befehl aus:
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc
-Bit. Falls keinerlei Ausgabe erfolgt, folgen Sie den unten stehenden Anweisungen.
constant_tsc
-Bit verfügt, deaktivieren Sie sämtliche Funktionen zur Energieverwaltung (BZ#513138). Jedes System hat mehrere Timer, die es zur Zeitmessung verwendet. Der TSC ist nicht stabil auf dem Host, was manchmal durch Änderungen an cpufreq
verursacht wird, durch tiefen C-Status oder durch Migration auf einen Host mit einem schnelleren TSC. Ein tiefer C-Ruhestatus kann den TSC anhalten. Um zu verhindern, dass der Kernel tiefe C-Stati verwendet, fügen Sie auf dem Host "processor.max_cstate=1
" zu den Boot-Optionen des Kernels in Grub hinzu:
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
(nur nötig auf Hosts ohne constant_tsc
), indem Sie die Konfigurationsdatei /etc/sysconfig/cpuspeed
bearbeiten und die Variablen MIN_SPEED
und MAX_SPEED
auf die höchstmögliche Frequenz ändern. Zulässige Höchstgrenzen finden Sie in den /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
-Dateien.
Red Hat Enterprise Linux | Zusätzliche Kernel-Parameter für den Gast |
---|---|
5.4 AMD64/Intel 64 mit der paravirtualisierten Uhr | Zusätzliche Parameter nicht notwendig |
5.4 AMD64/Intel 64 ohne die paravirtualisierte Uhr | divider=10 notsc lpj=n |
5.4 x86 mit der paravirtualisierten Uhr | Zusätzliche Parameter nicht notwendig |
5.4 x86 ohne die paravirtualisierte Uhr | 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 | Zusätzliche Parameter nicht notwendig |
3.9 x86 | Zusätzliche Parameter nicht notwendig |
boot.ini
-Datei hinzu:
/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
und so weiter.
/var/lib/libvirt/images/
gespeichert werden. Falls Sie ein anderes Verzeichnis für Ihre Images virtueller Maschinen verwenden, stellen Sie sicher, dass Sie dieses Verzeichnis zu Ihrer SELinux-Richtlinie hinzufügen und vor Start der Installation neu kennzeichnen.
vsftpd
-Servers.
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
.
NewVolumeName
auf der Datenträgergruppe namens volumegroup
.
# lvcreate -nNewVolumeName
-L5G volumegroup
NewVolumeName
mit einem Dateisystem, das erweiterte Attribute unterstützt, wie z. B. ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
/etc
, /var
, /sys
) noch in Benutzerverzeichnissen (/home
oder /root
). Dieses Beispiel verwendet ein Verzeichnis namens /virtstorage
.
# 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
-Datei hinzu, wodurch diese Änderung persistent gemacht wird. Die angefügte Zeile sieht etwa wie folgt aus:
/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
versetzt xend
nach einem Neustart des Daemons in einen unbeschränkten Modus. Es ist besser, den Schutz für einen einzelnen Daemon zu deaktivieren, als für das gesamte System. Es wird empfohlen, dass Sie Verzeichnisse, die Sie an anderer Stelle verwenden werden, nicht als xen_image_t
umkennzeichnen.
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
xend-config.sxp
, die sich im Verzeichnis etc/xen
befindet, bearbeiten. Nachfolgend finden Sie die Parameter, die Sie in der Konfigurationsdatei xend-config.sxp
aktivieren oder deaktivieren können:
Element | Beschreibung |
---|---|
(console-limit)
|
Determines the console server's memory buffer limit and assigns that limit on a per domain basis.
|
(min-mem)
|
Bestimmt die minimale Anzahl an Megabytes, die für domain0 reserviert werden (wenn Sie 0 eingeben, ändert sich der Wert nicht).
|
(dom0-cpus)
|
Bestimmt die Zahl der von domain0 verwendeten CPUs (mindestens 1 CPU wird standardmäßig zugewiesen).
|
(enable-dump)
|
Falls aktiviert, erstellt Xen im Falle eines Absturzes eine Speicherauszugsdatei (standardmäßig 0).
|
(external-migration-tool)
|
Bestimmt das Skript oder die Anwendung, das/die eine externe Gerätemigration handhabt. Die Skripte müssen sich im
/etc/xen/scripts/external-device-migrate -Verzeichnis befinden.
|
(logfile)
|
Bestimmt den Ort der Protokolldatei (standardmäßig
/var/log/xend.log ).
|
(loglevel)
|
Filtert die Werte des Protokollmodus aus: DEBUG, INFO, WARNING, ERROR oder CRITICAL (standardmäßig DEBUG).
|
(network-script)
|
Bestimmt das Skript, welches die Netzwerkumgebung aktiviert. Die Skripte müssen sich im
etc/xen/scripts -Verzeichnis befinden.
|
(xend-http-server)
|
Aktiviert den HTTP-Stream Paket-Management-Server (standardmäßig "no").
|
(xend-unix-server)
|
Aktiviert den UNIX Domain-Socket-Server. Der Socket-Server ist ein Kommunikationsendpunkt, der Lowlevel-Netzwerkverbindungen handhabt und einkommende Verbindungen akzeptiert oder abweist. Der Standardwert ist auf "yes" eingestellt.
|
(xend-relocation-server)
|
Aktiviert den Migrations-Server für maschinenübergreifende Migrationen (standardmäßig "no").
|
(xend-unix-path)
|
Bestimmt den Ort, an dem der Befehl
xend-unix-server Daten ausgibt (standardmäßig var/lib/xend/xend-socket )
|
(xend-port)
|
Bestimmt den Port, den der HTTP-Management-Server verwendet (standardmäßig 8000).
|
(xend-relocation-port)
|
Bestimmt den Port, den der Migrations-Server verwendet (standardmäßig 8002).
|
(xend-relocation-address)
|
Bestimmt die Host-Adressen, die zur Migration zugelassen sind. Der Standardwert ist der Wert der
xend-address .
|
(xend-address)
|
Bestimmt die Adresse, mit der sich der Domain-Socket-Server verbindet. Der standardmäßige Wert erlaubt alle Verbindungen.
|
service xend start
service xend stop
service xend restart
service xend status
xend
zur Boot-Zeit aktivierenchkconfig
, um xend
in das initscript
einzufügen.
chkconfig --level 345 xend
xend
wird nun in den Runlevels 3,4 und 5 starten.
virsh migrate
-Befehl.
# virsh migrateGuestName
libvirtURI
--live
-Option für den virsh migrate
-Befehl.
# virsh migrate--liveGuestName
libvirtURI
/etc/xen/xend-config.sxp
vorgenommen werden. Migration ist standardmäßig deaktiviert, da es – wenn nicht korrekt konfiguriert – ein mögliches Sicherheitsrisiko darstellen kann. Das Öffnen eines Migrations-Ports ermöglicht es einem unautorisierter Host, eine Migration einzuleiten oder sich mit den Migrations-Ports zu verbinden. Authentifizierung und Autorisierung sind für Migrationsanfragen nicht konfiguriert, daher basiert die einzige Kontrollmöglichkeit auf Host-Namen und IP-Adressen. Es sollte besonders darauf geachtet werden, dass der Migrations-Port nicht für unautorisierte Host zugänglich ist.
/etc/xen/xend-config.sxp
, um die Migration zu aktivieren. Ändern Sie wo nötig die Werte und entfernen Sie die Kommentierung (das #
-Symbol) vor den folgenden Paramentern:
(xend-relocation-server yes)
no
. Ändern Sie den Wert von xend-relocation-server
auf yes
, um die Migration zu ermöglichen.
(xend-relocation-port 8002)
(xend-relocation-port)
spezifiziert den Port, den xend
für die Migrationsschnittstelle verwenden soll, falls xend-relocation-server
auf yes
gesetzt ist.
xend-relocation-port
-Parameter gesetzt wird, muss auf beiden Systemen offen sein.
(xend-relocation-address '')
(xend-relocation-address)
ist die Adresse, auf die xend
auf Migrationsbefehle auf der relocation-socket
-Verbindung horcht, falls xend-relocation-server
gesetzt ist.
(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
und xend-relocation-address
.
(xend-relocation-hosts-allow)
eine Sequenz regulärer Ausdrücke sein, die durch Leerzeichen voneinander getrennt sind. Jeder Host mit einem vollqualifizierten Domain-Namen oder IP-Adresse, der/die mit diesen regulären Ausdrücken übereinstimmt, wird akzeptiert.
(xend-relocation-hosts-allow)
-Attribut:
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
# service xend restart
et-virt07
und et-virt08
), beide verwenden eth1
als standardmäßige Netzwerkschnittstelle und verwenden demzufolge xenbr1
als ihre Xen-Netzwerk-Bridge. Wir verwenden eine lokal angeschlossene SCSI-Platte (/dev/sdb
) auf et-virt07
für den gemeinsam verwendeten Speicher unter Verwendung von NFS.
# mkdir /var/lib/libvirt/images # mount /dev/sdb /var/lib/libvirt/images
/var/lib/libvirt/images/
exportieren, vergewissern Sie sich, dass Sie nur das /var/lib/xen/images/
und nicht das /var/lib/xen/
-Verzeichnis exportieren, da dies Verzeichnis vom xend
-Daemon und anderen Xen-Komponenten verwendet wird. Die Freigabe von /var/lib/xen/
würde zu unvorhersehbarem Verhalten führen.
# 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
zu migrieren versuchen:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
. Sie können den time
-Befehl hinzufügen, um zu sehen, wie lange die Migration dauert:
[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
heruntergefahren wurde:
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
hochgefahren wurde:
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
nach et-virt08
. Initiieren Sie die Migration von et-virt07
nach 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
abgeschlossen ist, überprüfen Sie auf et-virt08
, dass die virtuelle Maschine gestartet wurde:
[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
). Eine Live-Migration kann mit demselben Befehl durchgeführt werden. Allerdings gibt es ein paar Änderungen, die Sie zusätzlich an der xend-config
-Konfigurationsdatei durchführen müssen. Das nachfolgende Beispiel zeigt die Einträge auf, die Sie ändern müssen, um eine erfolgreiche Migration zu gewährleisten:
(xend-relocation-server yes)
(xend-relocation-port 8002)
xend
für die Migration verwendet. Verwenden Sie den voreingestellten Wert, sofern nicht Ihre Netzwerkumgebung einen benutzerdefinierten Wert erfordert. Entfernen Sie die Kommentierung, um den Eintrag zu aktivieren.
(xend-relocation-address )
xend-relocation-server
aktiviert haben. Der Xen-Hypervisor horcht nur auf der angegebenen Schnittstelle auf Netzwerkverkehr zur Migration.
(xend-relocation-hosts-allow )
(xend-relocation-hosts-allow- '^localhost\\.localdomain$' )>
virsh
-Befehls auf einen anderen Host migriert werden. Der migrate
-Befehl akzeptiert Parameter im folgenden Format:
# virsh migrate --live GuestName DestinationURL
GuestName
steht für den Namen desjenigen Gasts, den Sie migrieren möchten.
DestinationURL
ist die URL oder der Host-Name des Zielsystems. Auf dem Zielsystem muss dieselbe Version von Red Hat Enterprise Linux laufen, zudem muss derselbe Hypervisor verwendet werden und libvirt
laufen.
test1.example.com
nach test2.example.com
. Passen Sie die Host-Namen auf Ihre Umgebung an. Dieses Beispiel migriert eine virtuelle Maschine namens RHEL4test
.
Überprüfen Sie, dass der Gast läuft
test1.example.com
aus, ob RHEL4test
läuft:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
Migrieren Sie den Gast
test2.example.com
durchzuführen. Fügen Sie /system
an das Ende der Ziel-URL an, um libvirt mitzuteilen, dass Sie umfassenden Zugriff benötigen.
# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system
Warten Sie
virsh
meldet nur Fehler. Der Gast wird solange weiterhin auf dem Quell-Host ausgeführt, bis er vollständig migriert ist.
Überprüfen Sie, ob der Gast auf dem Ziel-Host angekommen ist
test2.example.com
aus, ob RHEL4test
läuft:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
virt-manager
.
ssh
oder TLS und SSL von Remote aus verwalten.
ssh
-Paket stellt ein verschlüsseltes Netzwerkprotokoll zur Verfügung, mit Hilfe dessen Verwaltungsfunktionen sicher an entfernte Virtualisierungs-Server übertragen werden können. Das beschriebene Verfahren verwendet die libvirt
-Verwaltungsverbindung, sicher getunnelt über eine SSH-Verbindung, um die Remote-Maschinen zu verwalten. Die Authentifizierung erfolgt mit SSH-Public-Key-Kryptografie und Passwörtern, die von Ihrem lokalen SSH-Agenten erfasst werden. Darüberhinaus wird die VNC-Konsole für jede virtuelle Gastmaschine über SSH getunnelt.
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
-Daemon (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
und SSH konfiguriert sind, sollten Sie in der Lage sein, auf Ihre virtuellen Maschinen von Remote aus zuzugreifen und diese zu verwalten. Sie sollten nunmehr auch über VNC
auf Ihre Gäste zugreifen können.
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
-Server-Einrichtung/etc/xen/xend-config.sxp
bearbeitet wird. Entfernen Sie in der Konfigurationsdatei die Kommentierung des Konfigurationsparameters (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
und virsh
Client-Einrichtunglibvirt
-Verwaltungs-API über TLS zu aktivieren, müssen die CA- und Client-Zertifikate in /etc/pki
platziert sein. Weitere Einzelheiten dazu finden Sie unter http://libvirt.org/remote.html.
virt-manager
user interface, use the ' ' transport mechanism option when connecting to a host.
virsh
hat die URI das folgende Format:
qemu://hostname.guestname/system
für KVM.
xen://hostname.guestname/
für Xen.
$HOME/.pki
zu platzieren. Es handelt sich um die folgenden drei Dateien:
ca-cert.pem
– Das CA-Zertifikat.
libvirt-vnc
oder clientcert.pem
– Das von der CA signierte Client-Zertifikat.
libvirt-vnc
oder clientkey.pem
– Der private Schlüssel des Clients.
virsh list
die folgenden Transportmodi:
/var/run/libvirt/libvirt-sock
und /var/run/libvirt/libvirt-sock-ro
(für schreibgeschützte Verbindungen).
libvirtd
) muss auf der Remote-Maschine laufen und Port 22 muss für SSH-Zugang offen sein. Sie sollten ein Verfahren zur SSH-Schlüsselverwaltung nutzen (z. B. das ssh-agent
-Dienstprogramm), andernfalls werden Sie nach einem Passwort gefragt.
ext
-Parameter wird für alle externen Programme verwendet, die eine Verbindung zur Remote-Maschine herstellen können auf Wegen, die von libvirt nicht erfasst werden. Dieser Parameter wird nicht unterstützt.
virsh
und libvirt
verwendet, um mit einem Remote-Host zu verbinden. URIs können auch mit dem --connect
-Parameter für den virsh
-Befehl gebraucht werden, um einzelne Befehle oder Migrationen auf Remote-Hosts durchzuführen.
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
towada
, unter Verwendung des SSH-Transports und dem SSH-Benutzernamen ccurran
.
xen+ssh://ccurran@towada/
towada
unter Verwendung von 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
unter Verwendung von SSH.
qemu+ssh://towada/system
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
test+tcp://10.1.1.10:5000/default
Name | Transportmodus | Beschreibung | Beispielverwendung |
---|---|---|---|
name | alle Modi | Der Name, der an die Remote-virConnectOpen-Funktion übergeben wird. Der Name wird in der Regel gebildet, indem Transport, Host-Name, Port-Nummer, Benutzername und zusätzliche Parameter von der Remote-URI entfernt werden. In bestimmten, sehr komplexen Fällen ist es jedoch ratsam, den Namen explizit anzugeben. | name=qemu:///system |
command | ssh und ext | Der externe Befehl. Für ext-Transport ist dies erforderlich. Für ssh ist der Standard ssh. Der PATH wird nach dem Befehl durchsucht. | command=/opt/openssh/bin/ssh |
socket | unix und ssh | Der Pfad zum UNIX-Domain-Socket, was den Standard außer Kraft setzt. Für ssh-Transport wird dies an den Remote-Netcat-Befehl übergeben (siehe netcat). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
netcat | ssh |
Der
netcat -Befehl kann dazu verwendet werden, sich mit entfernten Maschinen zu verbinden. Der standardmäßige netcat-Parameter nutzt den nc -Befehl. Für SSH-Transport konstruiert libvirt einen SSH-Befehl nach folgendem Schema:
Die Parameter
port , username und hostname können als Teil der Remote-URI spezifiziert werden. command , netcat und socket stammen von anderen zusätzlichen Parametern.
| 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 | Falls auf einen anderen Wert als Null eingestellt, fragt ssh nicht nach einem Passwort, falls es sich nicht automatisch bei der Remote-Maschine anmelden kann (zum Gebrauch von ssh-agent o. ä.). Verwenden Sie dies, wenn Sie keinen Zugriff auf ein Terminal haben, z. B. in grafischen Programmen, die libvirt verwenden. | no_tty=1 |
Inhaltsverzeichnis
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
ist ein Befehlszeilen-Tool zur Verwaltung der Gäste und des Hypervisors.
libvirt
-Management-API an und fungiert als Alternative zum xm-Befehl und dem grafischen Gäste-Manager (virt-manager
). Unprivilegierte Benutzer können virsh
in schreibgeschütztem Modus nutzen. Sie können virsh
dazu verwenden, Skripte für die Gastmaschinen auszuführen.
Befehl | Beschreibung |
---|---|
help
| Zeigt grundlegende Hilfe-Informationen. |
list
| Listet alle Gäste auf. |
dumpxml
| Gibt die XML-Konfigurationsdatei für den Gast aus. |
create
| Erzeugt einen Gast anhand einer XML-Konfigurationsdatei und startet den neuen Gast. |
start
| Startet einen inaktiven Gast. |
destroy
| Zwingt einen Gast zum Beenden. |
define
| Gibt eine XML-Konfigurationsdatei für einen Gast aus. |
domid
| Displays the guest's ID. |
domuuid
| Displays the guest's UUID. |
dominfo
| Zeigt Gastinformationen. |
domname
| Displays the guest's name. |
domstate
| Zeigt den Status eines Gasts an. |
quit
| Beendet das interaktive Terminal. |
reboot
| Startet einen Gast neu. |
restore
| Stellt einen zuvor in einer Datei gespeicherten Gast wieder her. |
resume
| Setzt einen angehaltenen Gast fort. |
save
| Speichert den aktuellen Zustand eines Gasts in einer Datei. |
shutdown
| Fährt einen Gast herunter. |
suspend
| Hält einen Gast an. |
undefine
| Löscht alle zu einem Gast gehörigen Dateien. |
migrate
| Migriert einen Gast auf einen anderen Host. |
virsh
-Befehlsoptionen steuern die Gast- und Hypervisor-Ressourcen:
Befehl | Beschreibung |
---|---|
setmem
| Legt den zugewiesenen Speicher für einen Gast fest. |
setmaxmem
| Legt die Höchstgrenze an Speicher für den Hypervisor fest. |
setvcpus
| Ändert die Anzahl virtueller CPUs, die einem Gast zugewiesen sind. |
vcpuinfo
| Zeigt Informationen zur virtuellen CPU für einen Gast. |
vcpupin
| Steuert die Affinität einer virtuellen CPU für einen Gast. |
domblkstat
| Zeigt Blockgerätstatistiken für einen laufenden Gast. |
domifstat
| Zeigt Netzwerkschnittstellenstatistiken für einen laufenden Gast. |
attach-device
| Verknüpft ein Gerät mit einem Gast mittels einer Gerätdefinition in einer XML-Datei. |
attach-disk
| Verknüpft eine neue Festplatte mit einem Gast. |
attach-interface
| Verknüpft eine neue Netzwerkschnittstelle mit einem Gast. |
detach-device
|
Löst verknüpftes Gerät von einem Gast, nimmt dieselben XML-Beschreibungen wie der Befehl attach-device .
|
detach-disk
| Löst verknüpfte Festplatte von einem Gast. |
detach-interface
| Löst verknüpfte Netzwerkschnittstelle von einem Gast. |
virsh
-Optionen:
Befehl | Beschreibung |
---|---|
version
|
Zeigt die Version von virsh .
|
nodeinfo
| Gibt Informationen über den Hypervisor aus. |
virsh
:
# virsh connect {hostname OR URL}
<name>
der Name der Maschine des Hypervisors ist. Um eine schreibgeschützte Verbindung herzustellen, hängen Sie an den oben aufgeführten Befehl -readonly
an.
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 Abschnitt 33.1, „Verwendung von XML-Konfigurationsdateien mit virsh“ for more information on modifying files created with virsh dumpxml
.
virsh dumpxml
-Ausgabe:
# 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 Erstellen eines XML-Speicherauszugs einer virtuellen Maschine (Konfigurationsdatei)). To create a guest with virsh
from an XML file:
# virsh create configuration_file.xml
dumpxml
option (refer to Erstellen eines XML-Speicherauszugs einer virtuellen Maschine (Konfigurationsdatei)) 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
-Shell-Parameter (auf vi
voreingestellt).
virsh
anzuhalten:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Fortsetzen eines Gastes) option.
virsh
wieder fortzusetzen, verwenden Sie die resume
-Option:
# virsh resume {domain-id, domain-name or domain-uuid}
suspend
- und resume
-Operationen beibehalten.
virsh
-Befehls in einer Datei:
# virsh save {domain-name, domain-id or domain-uuid} filename
restore
(Wiederherstellen eines Gasts) option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.
virsh save
command (Speichern eines Gasts) using virsh
:
# virsh restore filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
parameter in the guest's configuration file.
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
element in the guest's configuration file.
virsh
:
# 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(Herunterfahren eines Gasts) instead.
# virsh domid {domain-name or domain-uuid}
# virsh domname {domain-id or domain-uuid}
# virsh domuuid {domain-id or domain-name}
virsh domuuid
-Ausgabe:
# 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
-Ausgabe:
# 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
-Ausgabe:
# 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
anzuzeigen:
# virsh list
--inactive
, um inaktive Gäste aufzulisten (also Gäste, die zwar definiert wurden, zur Zeit jedoch nicht aktiv sind, und
--all
, um alle Gäste aufzulisten. Zum Beispiel:
# virsh list --all Id Name State ---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
virsh list
kann kategorisiert werden als eine von sechs möglichen Stati (nachfolgend erläutert):
running
bezieht sich auf Gäste, die derzeit auf einer CPU aktiv sind.
blocked
sind blockiert und werden nicht ausgeführt bzw. können nicht ausgeführt werden. Dies können Gäste sein, die auf eine I/O warten (traditionell der "wait"-Status) oder die sich im Ruhezustand befinden.
paused
-Status bezieht sich auf Gäste, die angehalten wurden. Das ist der Fall, wenn ein Administrator die Schaltfläche pause im virt-manager
klickt oder xm pause
bzw. virsh suspend
ausführt. Wenn ein Gast angehalten ist, verbraucht er weiterhin Arbeitsspeicher und andere Ressourcen, nimmt jedoch nicht am Scheduling teil und erhält keine CPU-Ressourcen vom Hypervisor.
shutdown
ist für Gäste, die gerade dabei sind herunterzufahren. Dem Gast wurde das Signal zum Herunterfahren gesendet und sollte im Begriff sein, seine Operationen zu beenden. Dies funktionert ggf. nicht mit allen Betriebssystemen, denn einige Betriebssysteme reagieren nicht auf diese Signale.
dying
sind "am Sterben", d. h. der Gast wurde nicht vollständig heruntergefahren oder ist abgestürzt.
crashed
schlugen bei der Ausführung fehl und laufen nicht mehr. Dieser Status kann nur auftreten, wenn der Gast konfiguriert wurde, nach einem Absturz nicht neu zu starten.
virsh
anzuzeigen:
# virsh vcpuinfo {domain-id, domain-name or domain-uuid}
virsh vcpuinfo
-Ausgabe:
# 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
-Parameter gibt die Anzahl der virtualisierten CPUs an, die dem Gast zugewiesen sind. Der vcpu
-Parameter muss angegeben werden.
cpulist
-Parameter ist eine kommagetrennte Liste mit Identifikationsnummern der physischen CPUs. Durch den cpulist
-Parameter wird festgelegt, auf welchen physischen CPUs die VCPUs laufen können.
virsh
die Anzahl der CPUs zu ändern, die einem Gast zugewiesen sind:
# virsh setvcpus {domain-name, domain-id or domain-uuid} count
count
-Wert darf die Anzahl, die bei der Erstellung des Gasts festgelegt wurde, nicht überschreiten.
virsh
:
# virsh setmem {domain-id or domain-name} count
virsh domblkstat
, um Blockgerätstatistiken für einen laufenden Gast anzuzeigen.
# virsh domblkstat GuestName block-device
virsh domifstat
, um Netzwerkgerätstatistiken für einen laufenden Gast anzuzeigen.
# virsh domifstat GuestName interface-device
virsh
-Befehls auf einen anderen Host migriert werden. Migrieren Sie eine Domain auf einen anderen Host. Fügen Sie --live für eine Live-Migration hinzu. Der migrate
-Befehl akzeptiert Parameter im folgenden Format:
# virsh migrate --live GuestName DestinationURL
--live
-Parameter ist optional. Fügen Sie den --live
-Parameter für Live-Migrationen hinzu.
GuestName
-Parameter steht für den Namen desjenigen Gasts, den Sie migrieren möchten.
DestinationURL
ist die URL oder der Host-Name des Zielsystems. Das Zielsystem benötigt:
libvirt
-Dienst.
virsh
. Um virtuelle Netzwerke aufzulisten:
# 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 network-name
— Startet automatisch ein Netzwerk spezifiziert als network-name
.
virsh net-create XMLfile
— Generiert und startet ein neues Netzwerk unter Verwendung einer vorhandenen XML-Datei.
virsh net-define XMLfile
— Generiert ein neues Netzwerkgerät von einer vorhandenen XML-Datei, ohne dieses zu starten.
virsh net-destroy network-name
— Zerstört ein Netzwerk spezifiziert als network-name
.
virsh net-name networkUUID
— Konvertiert eine angegebene networkUUID
in einen Netzwerknamen.
virsh net-uuid network-name
— Konvertiert einen spezifizierten network-name
in eine Netzwerk-UUID.
virsh net-start nameOfInactiveNetwork
— Startet ein inaktives Netzwerk.
virsh net-undefine nameOfInactiveNetwork
— Löscht die Definition von einem inaktiven Netzwerk.
virt-manager
).
virt-manager
bietet eine grafische Ansicht der Hypervisoren und Gäste auf Ihrem System und auf entfernten Maschinen. Sie können mit Hilfe von virt-manager
sowohl paravirtualisierte als auch voll virtualisierte Gäste definieren. virt-manager
kann zudem Aufgaben zur Verwaltung der Virtualisierung durchführen, u. a.:
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.
virt-manager
-Sitzung zu starten, öffnen Sie das Anwendungen
-Menü, anschließend das Systemwerkzeuge
-Menü und wählen dort den (virt-manager
).
virt-manager
erscheint.
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 Abschnitt 22.1, „Remote-Verwaltung mit SSH“.
virt-manager
's preferences window.
DHCP
-Bereichsxm
-Befehls kann der Xen-Hypervisor verwaltet werden. Die meisten Operationen können mit den libvirt-Tools, der virt-manager-Anwendung oder dem virsh
-Befehl durchgeführt werden. Der xm
-Befehl verfügt im Gegensatz zu den libvirt-Tools nicht über die Fähigkeit zur Fehlerüberprüfung und sollte daher für keine Aufgaben eingesetzt werden, die von den libvirt-Tools erledigt werden können.
xm
-Befehls funktionieren nicht in Red Hat Enterprise Linux 5. Die untenstehende Liste gibt einen Überblick darüber, welche Befehlsoptionen verfügbar bzw. nicht verfügbar sind.
virsh
oder virt-manager
anstelle von xm
zu verwenden. Der xm
-Befehl handhabt Fehlerüberprüfung und Fehler in Konfigurationsdateien nicht besonders gut, infolgedessen können Fehler zu Systeminstabilität oder Problemen mit den virtuellen Maschinen führen. Das manuelle Bearbeiten der Xen-Konfigurationsdateien ist riskant und sollte vermieden werden. Nutzen Sie dieses Kapitel auf eigene Gefahr.
xm
-Befehle:
xm help [--long]
: Zeigt verfügbare Optionen und Hilfetext an.
xm list
, um aktive Domains aufzulisten:
$ 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 DomainName/ID
: beendet eine virtuelle Maschine, ähnlich wie power off.
xm reboot DomainName/ID
: startet eine virtuelle Maschine neu; führt den normalen Prozess des Herunterfahrens und Hochfahrens des Systems durch.
xm shutdown DomainName/ID
: fährt eine virtuelle Maschine herunter, führt den normalen Prozess des Herunterfahrens des Systems durch.
xm pause
xm unpause
xm save
xm restore
xm migrate
xm
-Befehle, um Ressourcen zu verwalten:
xm mem-set
xm vcpu-list
, um virtualisierte CPU-Affinitäten aufzulisten.
$ 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
-Befehl, um Scheduler-Parameter für eine angegebene Domain anzuzeigen:
$ xm sched-credit -d 0 {'cap': 0, 'weight': 256} $ xm sched-credit -d 13 {'cap': 25, 'weight': 256}
xm
-Befehle zur Überwachung (Monitoring) und zur Suche und Beseitigung von Fehlern (Troubleshooting):
xm top
xm dmesg
xm info
xm log
xm uptime
, um die Betriebszeit für Gäste und Hosts anzuzeigen:
$ 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
wird derzeit nicht unterstützt.
/boot/grub/grub.conf
) erstellt eine Liste von Betriebssystemen für die Menüoberfläche von GRUB. Wenn Sie das kernel-xen
-RPM installieren, fügt ein Skript den kernel-xen
-Eintrag zur GRUB-Konfigurationsdatei hinzu, der den kernel-xen
standardmäßig bootet. Sie können die grub.conf
-Datei bearbeiten, um den Standard-Kernel zu ändern oder zusätzliche Kernel-Parameter hinzuzufügen.
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
-Image und den Linux-Kernel. Da sich der Kernel-Eintrag oberhalb der anderen Einträge befindet, wird der Kernel zuerst in den Speicher geladen. Der Bootloader sendet (und empfängt) Befehlszeilenparameter an den (bzw. vom) Hypervisor und dem Linux-Kernel. Dieser Beispieleintrag zeigt, wie Sie den Speicher des Linux-Kernels der Dom0 auf 800 MB beschränken:
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
verlinkt ist, beinhaltet eine Liste von globalen Optionen und Image-Stanzas. Wenn Sie das kernel-xen
-RPM installieren, fügt ein Post-Installationsskript die entsprechenden Image-Stanzas zur elilo.conf
hinzu.
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
zu der Kernel-Befehlszeilenoption ro
, was dazu führt, dass das Root-Dateisystem schreibgeschützt eingehängt wird, bis die initscripts
das Root-Laufwerk mit Lese- und Schreibzugriff einhängt. ELILO kopiert die "root
"-Zeile in die Kernel-Befehlszeile. Diese wird mit der "append
"-Zeile zusammengeführt, um eine komplette Befehlszeile zu erstellen:
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
--
-Symbole trennen Hypervisor- von Kernel-Parametern. Die Hypervisor-Parameter kommen zuerst, dann die --
Trennzeichen, gefolgt von den Kernel-Parametern. Der Hypervisor hat normalerweise keine Parameter.
--
die gewünschten Parameter ein. Nachfolgend ein Beispiel für den Hypervisor-Arbeitsspeicher (mem
)-Parameter und den quiet
-Parameter für den Kernel:
append="dom0_mem=2G -- quiet"
Parameter | Beschreibung |
---|---|
mem= | Der mem -Parameter definiert die maximale RAM-Benutzung des Hypervisors. Jeder zusätzliche RAM im System wird ingnoriert. Die Paramenter können mit dem Zusatz B, K, oder G spezifiziert werden, dies steht für Bytes, Kilobytes, Megabytes und Gigabytes. Falls kein Zusatz angegeben wird, ist Kilobytes die Standardeinheit. |
dom0_mem= | dom0_mem= setzt die Menge an RAM fest, die dom0 zugewiesen wird. Es gelten dieselben Regeln für Einheiten wie beim o. g. mem-Parameter. Der Standard in Red Hat Enterprise Linux 5.2 auf Itanium® ist 4 G. |
dom0_max_vcpus= | dom0_max_vcpus= setzt die Anzahl von CPUs fest, die dem Hypervisor zugewiesen werden. Der Standard in Red Hat Enterprise Linux 5.2 auf Itanium® ist 4. |
com1= | com1= setzt die Parameter für die erste serielle Zeile, z. B. com1=9600,8n1,0x408,5 . Die Optionen io_base und irq können weggelassen werden, um diese in der Standardeinstellung beizubehalten. Der Parameter baud kann auf auto gesetzt werden, um die Boot-Loader-Einstellungen zu erhalten. Der Paramenter com1 kann weggelassen werden, falls serielle Parameter als globale Optionen in ELILO oder der EFI-Konfiguration gesetzt sind. |
com2= | Setzt Parameter für die zweite serielle Zeile. Siehe o. g. Beschreibung des com1 -Parameters. |
console= | console ist eine kommagetrennte Präferenzenliste für die Konsolenoptionen. Die Optionen umfassen vga, com1 und com2. Diese Einstellungen sollten weggelassen werden, da der Hypervisor versuchen wird, die Einstellungen der EFI-Konsole zu übernehmen. |
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
", so dass die Ausgabe von Kernel und initscript
auf der Konsole angezeigt wird. Beachten Sie, dass der doppelte Bindestrich an seinem Platz bleibt, so dass die "append"-Zeile korrekt als Hypervisor-Parameter interpretiert wird.
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 =NAME
| Passwort für VNC-Konsole auf HVM-Domain. |
vncviewer=no | yes
|
Erzeugen eines VNCViewer-Listings für einen VNC-Server in der Domain. Die Adresse des VNCViewers wird über die Kernel-Befehlszeile an die Domain übergeben mittels VNC_SERVER=<host>:<port> . Der von VNC verwendete Port ist 5500 + DISPLAY. Falls möglich, wird ein Anzeigewert mit einen freien Port gewählt. Gilt nur, wenn vnc=1.
|
vncconsole =no | yes
| Spawn a vncviewer process for the domain's graphical console. Only valid when vnc=1. |
name =NAME
| Domain-Name. Muss eindeutig sein. |
bootloader =FILE
| Pfad zum Bootloader. |
bootargs =NAME
| Parameter, die an den Bootloader übergeben werden. |
bootentry =NAME
|
VERALTET. Eintrag zum Booten via Bootloader. Benutzen Sie dazu bootargs .
|
kernel =FILE
| Pfad zum Kernel-Image. |
ramdisk =FILE
| Pfad zur Ramdisk. |
features =FEATURES
| Features, die im Gast-Kernel zu aktivieren sind. |
builder =FUNCTION
| Funktion zum Erzeugen der Domain. |
memory =MEMORY
| Domain-Speicher in MB. |
maxmem =MEMORY
| Maximaler Domain-Speicher in MB. |
shadow_memory =MEMORY
| Domain-Shadow-Speicher in MB. |
cpu =CPU
| CPU, die VCPU0 hostet. |
cpus =CPUS
| CPUs, auf denen die Domain läuft. |
pae =PAE
| Aktivieren oder deaktivieren von PAE von HVM-Domain. |
acpi =ACPI
| Aktivieren oder deaktivieren von ACPI von HVM-Domain. |
apic =APIC
| Aktivieren oder deaktivieren von APIC von HVM-Domain. |
vcpus =VCPUs
| Anzahl virtueller CPUs in Domain. |
cpu_weight =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
|
Veraltet. Verwenden Sie stattdessen on_poweroff, on_reboot und on_crash . Legt fest, ob die Domain nach Beenden neu gestartet werden soll. - onreboot : Neustart nach Beenden mit Shutdown-Code Reboot - always: immer Neustart nach Beenden, ignoriere den Exit-Code - never: niemals Neustart nach Beenden, ignoriere den Exit-Code
|
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
| Macht die Domain zum Blockgerät-Backend |
netif =no | yes
| Macht die Domain zum Netzwerkschnittstellen-Backend |
tpmif =no | yes
| Macht die Domain zum TPM-Schnittstellen-Backend. |
disk =phy:DEV,VDEV,MODE[,DOM]
|
Hinzufügen einer Festplatte zu einer Domain. Das physische Gerät ist DEV , welches als VDEV zur Domain exportiert wird. Die Festplatte ist schreibgeschützt, wenn MODE auf r steht, und les- und schreibbar, wenn MODE auf w steht. Falls DOM spezifiziert ist, definiert es die Backend-Treiber-Domain für die Festplatte. Diese Option kann wiederholt werden, um mehrere Festplatten hinzuzufügen.
|
pci =BUS:DEV.FUNC
|
Hinzufügen eines PCI-Geräts zu einer Domain, unter Verwendung gegebener Parameter (in Hexadezimal), z. B. pci=c0:02.1a . Diese Option kann wiederholt werden, um mehrere PCI-Geräte hinzuzufügen.
|
ioports =FROM[-TO]
|
Hinzufügen eines I/O-Wertebereich zu einer Domain, unter Verwendung gegebener Parameter (in Hexadezimal), z. B. ioports=02f8-02ff . Diese Option kann wiederholt werden, um mehrere I/O-Wertebereiche hinzuzufügen.
|
irq =IRQ
|
Hinzufügen eines IRQ (Interrupt Line) zu einer Domain, z. B. irq=7 . Diese Option kann wiederholt werden, um mehrere IRQs hinzuzufügen.
|
usbport =PATH
| Hinzufügen eines physischen USB-Ports zu einer Domain, wie durch den Pfad zum Port spezifiziert. Diese Option kann wiederholt werden, um mehrere Ports hinzuzufügen. |
vfb=type=
vnclisten=
xauthority=
keymap =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= =NAME
|
Hinzufügen einer Netzwerkschnittstelle mit der gegebenen MAC -Adresse und Bridge. Der vif wird konfiguriert durch Aufruf des Konfigurationsskripts. Falls "type" nicht spezifiziert ist, ist die standardmäßige Einstellung netfront und nicht ioemu-Gerät. Falls "MAC" nicht spezifiziert ist, wählt das Netzwerk-Backend seine eigene MAC Adresse willkürlich aus. Falls "bridge" nicht definiert ist, wird die erste Bridge verwendet, die gefunden wird. Falls "script" nicht spezifiziert ist, wird das Standardskript verwendet. Falls "backend" nicht spezifiziert ist, wird die standardmäßige Backend-Treiber-Domain verwendet. Falls "vifname" nicht spezifiziert ist, erhält die virtuelle Backend-Schnittstelle den Namen "vifD.N", wobei D die Domain-ID ist und N die Schnittstellen-ID ist. Diese Option kann wiederholt werden, um mehrere vifs hinzuzufügen. Das Spezifizieren von vifs erhöht je nach Bedarf die Anzahl an Schnittstellen.
|
vtpm=instance= INSTANCE ,backend=DOM
|
Hinzufügen einer TPM-Schnittstelle. Benutzen Sie auf der Backend-Seite die gegebene Instanz als virtuelle TPM-Instanz. Die gegebene Nummer ist nur die bevorzugte Instanznummer. Das Hotplug-Skript wird entscheiden, welche Instanznummer der Domain tatsächlich zugewiesen wird. Die Verknüpfung zwischen der virtuellen Maschine und der TPM-Instanznummer befindet sich in /etc/xen/vtpm.db . Benutzen Sie das Backend in der gegebenen Domain.
|
access_control=policy= POLICY ,label=LABEL
| Fügen Sie eine Sicherheitskennung und den Verweis auf die Sicherheitsrichtlinie, die sie definiert, ein. Die lokale SSID-Referenz wird berechnet, wenn die Domain gestartet oder wieder gestartet wird. Zu diesem Zeitpunkt wird die Richtlinie auch mit der aktiven Richtlinie verglichen. Dadurch ist die Migration durch Speicher- oder Wiederherstellungsfunktionen gesichert und lokale Kennungen werden automatisch korrekt erzeugt im System, in dem eine Domain gestartet wird. |
nics =NUM
| VERALTET. Benutzen Sie stattdessen leere VIF-Einträge. Einstellen der Anzahl von Netzwerkschnittstellen. Verwenden Sie die VIF-Option, um die Schnittstellenparamenter zu definieren, anderenfalls werden die Standards verwendet. Das Spezifizieren von vifs erhöht je nach Bedarf die Anzahl an Schnittstellen. |
root =DEVICE
|
Einstellen des root = Parameters in die Kernel-Befehlszeile. Benutzen Sie ein Gerät, z. B. /dev/sda1 , oder /dev/nfs für NFS-Root.
|
extra =ARGS
| Setzen von zusätzlichen Parametern zum Anhängen an die Kernel-Befehlszeile. |
ip =IPADDR
| Setzen der Kernel-IP-Schnittstellenadresse. |
gateway =IPADDR
| Setzen des Kernel-IP-Gateways. |
netmask =MASK
| Setzen der Kernel-IP-Netzmaske. |
hostname =NAME
| Setzen des Kernel-IP-Hostnamens. |
interface =INTF
| Setzen des Kernel-IP-Schnittstellennames. |
dhcp =off|dhcp
| Setzen der Kernel-dhcp-Option. |
nfs_server =IPADDR
| Setzen der Adresse des NFS-Servers für NFS-Root. |
nfs_root =PATH
| Setzen des Pfads des Root-NFS-Verzeichnisses. |
device_model =FILE
| Pfad zum Gerätemodell-Programm. |
fda =FILE
| Pfad zu fda |
fdb =FILE
| Pfad zu fdb |
serial =FILE
| Pfad zu Serial oder PTY oder VC |
localtime =no | yes
| Ist RTC auf Ortszeit gesetzt |
keymap =FILE
| Setzen des Tastatur-Layouts |
usb =no | yes
| Emulieren von USB-Geräten |
usbdevice =NAME
|
Name des hinzuzufügenden USB -Geräts
|
stdvga =no | yes
|
Use std vga or Cirrus Logic
graphics
|
isa =no | yes
|
Simulieren eines ISA -Systems
|
boot =a|b|c|d
| Standardmäßiges Boot-Gerät |
nographic =no | yes
| Sollen Gerätemodelle Grafiken verwenden? |
soundhw =audiodev
| Sollten Gerätemodelle Audiogeräte aktivieren? |
vnc
| Soll das Gerätemodell VNC verwenden? |
vncdisplay
| Zu verwendenes VCN-Display |
vnclisten
| Adresse, auf die der VNC Server horchen soll. |
vncunused
| Versuchen, einen unbenutzten Port zu finden für den VNC-Server. Nur gültig wenn vnc=1 |
sdl
| Soll das Gerätemodell SDL verwenden? |
display =DISPLAY
| Zu verwendendes X11 Display |
xauthority =XAUTHORITY
| Zu verwendende X11 Authority |
uuid
| Xenstore UUID (Universally Unique Identifier). Ist diese Option nicht gesetzt, wird zufällig eine UUID generiert, ganz wie bei der MAC-Adresse für virtuelle Netzwerkschnittstellen. Dies muss ein einzigartiger Wert im gesamten Cluster sein. |
Parser-Funktion | Gültige Parameter |
---|---|
set_bool
|
Akzeptierte Werte:
|
set_float
|
Accepts a floating point number with Python's float(). For example:
|
set_int
|
Accepts an integer with Python's int().
|
set_value
|
Akzeptiert jeden Python-Wert.
|
append_value
|
Akzeptiert jeden Python-Wert und fügt diesen dem vorangegangenen Wert, der in einem Array gespeichert ist, an.
|
Parameter | Parser-Funktion | Standardwert |
---|---|---|
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
|
Inhaltsverzeichnis
ftpd
ftpd
virsh
, um einen Gast namens TestServer
so einzustellen, dass dieser automatisch startet, wenn der Host hochfährt.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
-Parameter.
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
Installieren Sie das KVM-Paket
# yum install kvm
Überprüfen Sie, welcher Kernel verwendet wird
uname
-Befehl, um festzustellen, welcher Kernel ausgeführt wird:
$ uname -r 2.6.18-159.el5xen
2.6.18-159.el5xen
", läuft auf dem System. Falls der Standard-Kernel, "2.6.18-159.el5
", ausgeführt wird, können Sie diesen Unterschritt überspringen.
Wechsel vom Xen-Kernel zum Standard-Kernel
grub.conf
-Datei wird festgelegt, welcher Kernel gebootet wird. Um den Standard-Kernel zu ändern, bearbeiten Sie die /boot/grub/grub.conf
-Datei wie unten veranschaulicht.
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
(oder die Nummer für den Standard-Kernel):
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
Starten Sie neu, um den neuen Kernel zu laden
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm
-Modul sowie entweder das kvm_intel
-Modul oder das kvm_amd
-Modul vorhanden.
Installieren Sie die Xen-Pakete
# yum install kernel-xen xen
Überprüfen Sie, welcher Kernel verwendet wird
uname
-Befehl, um festzustellen, welcher Kernel derzeit läuft.
$ uname -r 2.6.18-159.el5
2.6.18-159.el5
", läuft auf dem System. Dies ist der Standard-Kernel. Wenn der Kernel auf xen
endet (z. B. 2.6.18-159.el5xen
), dann läuft der Xen-Kernel bereits und Sie können diesen Unterschritt überspringen.
Wechsel vom Standard-Kernel zum Xen-Kernel
grub.conf
-Datei wird festgelegt, welcher Kernel gebootet wird. Um den Standard-Kernel zu ändern, bearbeiten Sie die /boot/grub/grub.conf
-Datei wie unten veranschaulicht.
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
(oder die Nummer für den Xen-Kernel):
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
Starten Sie neu, um den neuen Kernel zu laden
uname
-Befehl:
$ uname -r 2.6.18-159.el5xen
xen
endet, wird der Xen-Kernel ausgeführt.
qemu-img
-Befehlszeilen-Tool wird zur Formatierung verschiedener von Xen und KVM genutzter Dateisysteme verwendet. qemu-img
sollte verwendet werden, um virtualisierte Gast-Images, zusätzliche Speichergeräte und Netzwerkspeicher zu formatieren. Die Verwendung und die verfügbaren Optionen von qemu-img
werden im Folgenden erläutert.
size
und dem Format format
.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
convert
-Option wird verwendet, um ein anerkanntes Format in ein anderes Image-Format umzuwandeln.
# qemu-img convert [-c] [-e] [-f format]filename
[-Ooutput_format
]output_filename
filename
zu Disk-Image output_filename
unter Verwendung des Formats output_format
. Das Disk-Image kann optional mit der -e
-Option verschlüsselt oder mit der -c
-Option komprimiert werden.
qcow
" unterstützt Verschlüsselung oder Komprimierung. Die Komprimierung ist schreibgeschützt. Das heißt, wenn ein komprimierter Sektor neu geschrieben wird, wird dieser unkomprimiert beschrieben.
qcow
oder cow
. Die leeren Sektoren werden erkannt und für das Ziel-Image ausgeblendet.
info
-Parameter zeigt Informationen über ein Disk-Image. Das Format der info
-Option ist wie folgt:
# qemu-img info [-f format] filename
raw
qemu-img info
, um die Größe festzustellen, die wirklich vom Image gebraucht wird, oder ls -ls
unter Unix/Linux.
qcow2
qcow
cow
cow
-Format ist nur zwecks Kompatibilität mit älteren Versionen enthalten. Es funktioniert nicht mit Windows.
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
-Eintrag eines Systems, auf dem das kernel-xen-Paket läuft. Die grub.conf
auf Ihrem System kann davon abweichen. Der wichtige Teil in dem unteren Beispiel ist der Abschnitt ab der title
-Zeile bis zum Beginn der nächsten neuen Zeile.
#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
grub.conf
could look very different if it has been manually edited before or copied from an example. Read Kapitel 28, Konfigurieren der Xen-Kernel-Boot-Parameter for more information on using virtualization and grub.
dom0_mem=256M
in der xen
-Zeile in Ihrer grub.conf
eingeben. Sehen Sie eine modifizierte Version der Grub-Konfigurationsdatei im folgenden Beispiel:
#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
-Eintrag, wodurch angezeigt wird, dass ein Intel-Prozessor mit den Intel VT Erweiterungen vorhanden ist:
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
-Eintrag, wodurch angezeigt wird, dass ein AMD-Prozessor mit den AMD-V Erweiterungen vorhanden ist:
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:
" Inhalt kann mehrmals erscheinen für jeden Hyperthread, Kern oder CPU auf dem System.
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()
python-virtinst
verwenden, um eine neue MAC-Adresse und UUID
zur Verwendung in einer Gastkonfigurationsdatei zu generieren:
# 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=
-Option:
rate
-Parameterwerte und Verwendung.
rate=10Mb/s
rate=250KB/s
rate=10MB/s@50ms
VIF
-Beispieleintrag wie folgt aussehen:
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
oder virt-manager
eingestellt werden:
virsh
refer to Konfigurieren der Affinität einer virtuellen CPU for more information.
virt-manager
refer to Abschnitt 26.11, „Anzeigen virtueller CPUs“ 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
ftpd
vsftpd
bietet Zugang zu Installationsbäumen für paravirtualisierte Gäste (z. B. die Red Hat Enterprise Linux 5 Depots) oder anderen Daten. Falls Sie während der Server-Installation vsftpd
noch nicht installiert haben, können Sie das RPM-Paket im Server
-Verzeichnis Ihres Installationsmediums finden und es mittels rpm -ivh vsftpd*.rpm
installieren (beachten Sie, dass sich das RPM-Paket in Ihrem aktuellen Verzeichnis befinden muss).
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
, dass vsftpd
nicht aktiviert ist:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig --levels 345 vsftpd on
aus, damit vsftpd für Runlevel 3, 4 und 5 automatisch gestartet wird.
chkconfig --list vsftpd
, um sich zu vergewissern, dass vsftdp für den automatischen Start beim Hochfahren des Systems aktiviert wurde:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
service vsftpd start vsftpd
, um den vsftpd-Dienst zu starten:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev
verwenden, um LUN-Persistenz zu implementieren. Bevor Sie die LUN-Persistenz auf Ihrem System implementieren, stellen Sie sicher, dass Sie die passenden UUIDs erhalten. Sobald Sie diese haben, können Sie die LUN-Persistenz konfigurieren, indem Sie die Datei scsi_id
bearbeiten, die sich im /etc
-Verzeichnis befindet. Sobald Sie diese Datei in einem Texteditor geöffnet haben, müssen Sie die folgende Zeile auskommentieren:
# options=-b
# options=-g
scsi_id
:
# scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
bearbeiten, die sich im Verzeichnis /etc/udev/rules.d
befindet. Die Regeln zur Benennung der Geräte haben das folgende Format:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID
", NAME="devicename
"
UUID
und den devicename
mit dem oben erhaltenen UUID-Eintrag. Die Regel sollte daher wie folgt lauten:
KERNEL="sd*
", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename
"
/dev/sd*
übereinstimmen, zu aktivieren, um die festgelegten UUID zu untersuchen. Wird ein passendes Gerät gefunden, wird ein Geräteknoten mit der Bezeichnung /dev/devicename
erstellt. In diesem Beispiel ist der Geräteknoten /dev/mydevice
. Abschließend müssen Sie noch die Datei /etc/rc.local
anhängen mit der Zeile:
/sbin/start_udev
multipath.conf
, die sich im Verzeichnis /etc/
befindet, bearbeiten:
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
und dev/mpath/oramp4
. Diese Geräte befinden sich im Verzeichnis /dev/mpath
. Die LUN-Namen bleiben auch über Neustarts hinaus bestehen, da Alias-Namen auf den wwid (weltweiten ID) der LUNs erstellt werden.
/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
ausführen.
~/.vnc/xstartup
-Datei, um eine GNOME-Sitzung zu starten, sobald vncserver gestartet wird. Bei der ersten Ausführung des vncserver-Skripts werden Sie nach einen Passwort gefragt, das Sie für die VNC-Sitzung verwenden möchten.
xstartup
-Datei:
#!/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
-Adresse der /etc/sysconfig/network-scripts/ifcfg-eth0
-Datei modifizieren, um mit der Ausgabe von ifconfig eth0
übereinzustimmen. Falls Sie eine statische IP-Adresse verwenden, müssen Sie den Eintrag IPADDR
modifizieren.
name
uuid
uuidgen
erstellt werden. Eine Beispiel-Ausgabe der UUID:
$ uuidgen a984a14f-4191-4d14-868e-329906b211e5
vif
xenbr
-Eintrag anpassen, um mit Ihrer lokalen Netzwerkkonfiguration übereinzustimmen. (Sie können die Bridge-Informationen mit Hilfe des Befehls brctl show
erhalten.)
disk=
-Abschnitt eingestellt haben, um auf das richtige Gast-Image zu verweisen.
/etc/sysconfig/network
HOSTNAME
entry to the guest's new hostname
.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
-Adresse auf die Ausgabe von ifconfig eth0
.
IPADDR
-Eintrag, falls statische IP-Adressen verwendet werden.
libvirt
vereinfachen möchten.
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
Inhaltsverzeichnis
xentop
xentop
zeigt Echtzeitinformationen über ein Host-System und die Gast-Domains an.
xm
dmesg
und log
vmstat
iostat
lsof
iostat
, mpstat
und sar
werden alle vom sysstat
-Paket bereitgestellt.
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
ist ein Netzwerk-Tool, das die Konfiguration der Ethernet-Bridge im Virtualisierungs-Linux-Kernel untersucht und konfiguriert. Sie müssen über Root-Rechte verfügen, um diese Beispielbefehle ausführen zu können:
# 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
-Depot von Red Hat Enterprise Linux 5 zu finden.
yum install vnc
command.
yum install vnc-server
.
/etc/xen/
. Dieses Verzeichnis enthält den xend
-Daemon und andere Konfigurationsdateien der virtuellen Maschine. Die Netzwerkskriptdateien befinden sich im script
-Verzeichnis.
/var/log/xen
-Verzeichnis gespeichert.
/var/lib/libvirt/images
-Verzeichnis.
/proc/xen/
-Verzeichnis gespeichert.
xend
-Daemon und dem qemu-dm
-Prozess ausgestattet. Beide Dienstprogramme schreiben mehrere Protokolldateien in das Verzeichnis /var/log/xen/
:
xend.log
ist die Protokolldatei, die sämtliche Daten enthält, die vom xend
-Daemon gesammelt werden, unabhängig davon, ob es sich dabei um ein normales Systemereignis oder eine durch den Benutzer initiierte Aktion handelt. Alle Operationen der virtuellen Maschine (wie z. B. erstellen, herunterfahren, zerstören etc.) werden hier aufgezeichnet. xend.log
ist normalerweise die erste Anlaufstelle, wenn Sie Problemen mit der Leistung oder mit Ereignissen nachgehen. Diese Datei enthält detaillierte Einträge und Umstände der Fehlermeldungen.
xend-debug.log
ist die Protokolldatei, die Einträge von Ereignisfehlern von xend
sowie der Virtualisierungssubsysteme (wie beispielsweise Framebuffer, Python-Skripte etc.) beinhaltet.
xen-hotplug-log
ist die Protokolldatei, die Daten von Hotplug-Ereignissen beinhaltet. Falls ein Gerät oder ein Netzwerkskript sich nicht online stellen lässt, wird dieses Ereignis hier festgehalten.
qemu-dm.[PID].log
ist die Protokolldatei, die vom qemu-dm
-Prozess für jeden voll virtualisierten Gast erstellt wird. Bei der Verwendung dieser Protokolldatei müssen Sie die Prozess-ID (PID) des vorhandenen qemu-dm
-Prozesses mit Hilfe des Befehls ps
ermitteln, um Prozessargumente zur Isolierung des qemu-dm
-Prozesses auf der virtuellen Maschine zu untersuchen. Beachten Sie bitte, dass Sie das [PID]-Symbol durch die tatsächliche PID des qemu-dm
-Prozesses ersetzen müssen.
virt-manager.log
untersuchen, welche sich im Verzeichnis /.virt-manager
befindet. Beachten Sie bitte, dass der Inhalt dieser Protokolldatei bei jedem Neustart des Virtual Machine Manager überschrieben wird. Stellen Sie daher sicher, dass Sie eine Sicherungskopie der Datei virt-manager.log
erstellen, bevor Sie den Virtual Machine Manager nach einem Systemfehler neu starten.
/var/lib/libvirt/images
.
xend
-Daemon neu starten, aktualisiert dieser die xend-database
, die sich im Verzeichnis /var/lib/xen/xend-db
befindet.
xm dump-core
durchführen) befinden sich im Verzeichnis /var/lib/xen/dumps
.
/etc/xen
enthält die Konfigurationsdateien, die Sie zur Verwaltung der Systemressourcen verwenden. Die Konfigurationsdatei des xend
-Daemon ist /etc/xen/xend-config.sxp
. Sie können diese Datei bearbeiten, um systemweite Änderungen zu implementieren und das Netzwerk zu konfigurieren. Allerdings wird das manuelle Bearbeiten der Dateien im /etc/xen/
-Verzeichnis nicht empfohlen.
proc
-Verzeichnisse sind eine weitere Quelle zum Sammeln von Systeminformationen. Diese proc-Einträge befinden sich im Verzeichnis /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
ist sehr nützlich für Systemadministratoren, da sie noch detailliertere Informationen als xend.log
enthält. Nachfolgend finden Sie dieselben Fehlerdaten für dasselbe Problem bei der Erstellung einer Kernel-Domain:
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
kann beim Aufspüren eines Problems helfen, das das Hängenbleiben mit der asynchronen Hypervisor-Konsolenausgabe verursacht. "pnpacpi=off"
bietet eine Umgehungsmöglichkeit für ein Problem, das die Eingabe auf einer seriellen Konsole abbricht. Die Parameter "console=ttyS0"
und "console=tty"
veranlassen, dass Kernel-Fehler sowohl auf der normalen VGA-, als auch auf der seriellen Konsole protokolliert werden. Anschließend können Sie ttywatch
installieren und einrichten, um Daten auf einem Remote-Host, der mit einem standardmäßigen Null-Modem-Kabel verbunden ist, aufzuzeichnen. Beispielsweise können Sie auf dem Remote-Host folgendes eingeben:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
in die Datei /var/log/ttywatch/myhost.log
um.
# 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
-Dienst zu starten, passiert nichts. Beim Eintippen von virsh list
erhalten Sie folgende Meldung:
Error: Error connecting to xend: Connection refused. Is xend running?
xend start
manuell auszuführen, erhalten Sie weitere Fehler:
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' )
xen-hypervisor
-Kernel ist. Um dies zu korrigieren, müssen Sie den kernel-xen
-Kernel zum Zeitpunkt des Bootens auswählen (oder den kernel-xen
-Kernel als Standard in Ihrer grub.conf
-Datei) definieren.
"Invalid argument"
. Dies bedeutet üblicherweise, dass das Kernel-Image, das Sie versuchen zu booten, nicht mit dem Hypervisor kompatibel ist. Ein Beispiel dafür wäre der Versuch, einen Nicht-PAE FC5-Kernel auf einem reinen PAE FC6-Hypervisor auszuführen.
grub.conf
zurück auf einen Bare-Metal-Kernel gesetzt, anstatt auf den Virtualisierungs-Kernel.
/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
-Datei und stellen die entsprechenden seriellen Geräteparameter ein.
com1
liegt, bearbeiten Sie /boot/grub/grub.conf
und fügen dabei die Zeilen com1=115200,8n1
, console=tty0
und console=ttyS0,115200
an unten gezeigter Stelle ein.
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
liegt, bearbeiten Sie /boot/grub/grub.conf
und fügen dabei die Zeilen com2=115200,8n1 console=com2L
, console=tty0
und console=ttyS0,115200
an unten gezeigter Stelle ein.
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
usw.), die Sie im vorigen Schritt ausgewählt haben.
com2
-Port, dass der Parameter console=ttyS0
in der vmlinuz
-Zeile verwendet wird. Das Verhalten, dass alle Ports als console=ttyS0
verwendet werden, ist nicht standardmäßiges Linux-Verhalten, sondern vielmehr spezifisch für die Xen-Umgebung.
virsh console
" oder im "Serielle Konsole"-Fenster des virt-manager
. Richten Sie die virtuelle Konsole nach folgendem Verfahren ein:
/boot/grub/grub.conf
-Datei wie folgt:
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
xend
) kann so konfiguriert werden, dass die Ausgabe von seriellen Konsolen virtueller Gäste protokolliert wird.
xend
zu konfigurieren, bearbeiten Sie die /etc/sysconfig/xend
-Datei. Ändern Sie den Eintrag:
# 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
-Datei gespeichert.
virsh console
"-Befehls eingesehen werden.
ttyS0
auf Linux bzw. COM1
auf Windows.
/boot/grub/grub.conf
-Datei und fügen die Zeile "console=tty0 console=ttys0,115200
" ein.
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
"-Befehls an.
/var/log/xen/console
protokolliert, wie dies für paravirtualisierte Gäste der Fall ist.
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"
der Standardwert für die Konfigurationsdatei ist. Nachfolgend sehen Sie ein Beispiel einer Konfigurationsdatei für einen voll virtualisierten Gast:
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'
virsh dumpxml
und virsh create
(oder virsh edit
), um die libvirt
-Konfigurationsdateien (xml-basiert) zu bearbeiten, welche Fehlerüberprüfung und Sicherheitskontrollen bieten.
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
auf diesen Fehler überprüfen:
[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
überprüfen. Falls domain0 nicht komprimiert wurde, können Sie mit Hilfe des Befehls virsh setmem dom0 NewMemSize
den Speicher erneut überprüfen.
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
existiert. Überprüfen Sie diese Datei und stellen Sie sicher, dass der localhost-Eintrag aktiviert ist. Nachfolgend sehen Sie ein Beispiel eines falschen localhost-Eintrags:
# 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
-Datei):
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
die folgenden Fehler auf:
[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/
-Verzeichnis beinhaltetxend
-Daemon verwendet werden.
scripts
-Verzeichnis, das die Skripte für Virtualisierungsnetzwerke beinhaltet.
/var/log/xen/
/var/lib/libvirt/images/
/proc/xen/
cat /proc/partitions
" geschehen, wie unten angezeigt.
# cat /proc/partitions major minor #blocks name 202 16 104857600 xvdb 3 0 8175688 hda
/etc/inittab
-Datei hinzu:
1:12345:respawn:/sbin/mingetty xvc0
Xen Virtual Ethernet
-Netzwerkkarte innerhalb des Gastbetriebssystems nicht erkennen. Überprüfen Sie dies, indem Sie folgendes ausführen (für Red Hat Enterprise Linux 4 und Red Hat Enterprise Linux 5):
cat /etc/modprobe.conf
cat /etc/modules.conf
alias eth0 xen-vnif
alias eth0 xen-vnif
).
/etc/modprobe.conf
eingestellt werden. Bearbeiten Sie /etc/modprobe.conf
und fügen Sie die nachfolgende Zeile ein:
options loop max_loop=64
phy: block device
oder tap:aio
. Um dasselbe für einen voll virtualisierten Gast durchzuführen, verwenden Sie den Befehl phy: device
oder 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
-Konfigurationsdatei gebootet wird.
kernel-xen
auf Ihrem Gast installiert haben, können Sie Ihren Gast starten:
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
-Anwendung kann fehlschlagen und eine Fehlermeldung wie diese anzeigen: “Unable to open a connection to the Xen hypervisor/daemon
”. Dies wird in der Regel durch einen fehlenden localhost
-Eintrag in der /etc/hosts
-Datei verursacht. Vergewissern Sie sich, dass Sie einen localhost
-Eintrag haben. Falls dieser in /etc/hosts
fehlt, fügen Sie einen neuen Eintrag für localhost
hinzu. Ein falscher /etc/hosts
-Eintrag könnte etwa wie folgt aussehen:
# 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
” sucht zunächst im aktuellen Verzeichnis nach einer Konfigurationsdatei und anschließend in /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
aus. Falls der Befehl eine Ausgabe liefert, sind die Virtualisierungserweiterungen nunmehr aktiviert. Falls keine Ausgabe erscheint, verfügt Ihr System eventuell nicht über die Virtualisierungserweiterungen oder es wurden nicht die richtigen BIOS-Einstellungen aktiviert.
virsh
command (where GUEST
is the guest's name):
# virsh edit GUEST
virsh edit
-Befehl verwendet die $EDITOR
-Shell-Variable, um festzustellen, welcher Texteditor benutzt werden soll.
<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
-Daemon und vom qemu-dm-Prozess generiert wurden.
xend.log
xend-debug.log
xen-hotplug.log
qemu-dm.PID
.log
qemu-dm
-Prozess erzeugt, welcher für jeden voll virtualisierten Gast gestartet wird.
PID
wird ersetzt durch die PID
des entsprechenden qemu-dm-Prozesses.
PID
eines bestimmten qemu-dm
-Prozesses abfragen, indem Sie den ps
-Befehl ausführen. Anhand der Prozessargumente können Sie die virtuelle Maschine identifizieren, zu welcher der qemu-dm
-Prozess gehört.
.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
ist die Hauptkonfiguration für den xend-Daemon. Die xend-config.sxp
-Datei aktiviert oder deaktiviert Migration und andere Funktionen, die nicht durch libvirt
konfiguriert werden. Verwenden Sie die libvirt
-Tools für alle anderen Funktionen.
/var/lib/xen/dump/
xm dump-core
-Befehls.
/proc/xen/
xen-kernel
-Informationen in den folgenden Dateien:
/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
und ext3
-Dateisystem-Identifier, RAID-Gerät-Identifier, iSCSI- und LUN-Gerät-Identifier, MAC-Adressen und virtuelle Maschinen-Identifier.
libvirt
-Virtualisierungs-API.
/usr/share/doc/xen-<version-number>
/
ist das Verzeichnis, das umfassende Informationen über den Xen-Paravirtualisierungs-Hypervisor und damit verbundene Verwaltungs-Tools enthält, inklusive verschiedener Beispielkonfigurationen, hardware-spezifische Informationen sowie der aktuellen Xen-Upstream-Benutzerdokumentation.
man virsh
und /usr/share/doc/libvirt-<version-number>
— Enthält Unterbefehle und -optionen für das virsh
-Dienstprogramm zur Verwaltung virtueller Maschinen, sowie umfassende Informationen über die libvirt
-Virtualisierungsbibliothek-API.
/usr/share/doc/gnome-applet-vm-<version-number>
— Dokumentation für das grafische Menüleisten-Applet von GNOME, das lokal laufende virtuelle Maschinen überwacht und verwaltet.
/usr/share/doc/libvirt-python-<version-number>
— Liefert Details zu den Python-Bindings für die libvirt
-Bibliothek. Das Paket libvirt-python
ermöglicht Python-Entwicklern das Erstellen von Programmen, die eine Schnittstelle zur libvirt
-Virtualisierungs-Management-Bibliothek darstellen.
/usr/share/doc/python-virtinst-<version-number>
— Liefert Dokumentation zum Befehl virt-install
, der beim Starten der Installation von Fedora- und Red Hat Enterprise Linux-Distributionen innerhalb virtueller Maschinen behilflich ist.
/usr/share/doc/virt-manager-<version-number>
— Liefert Dokumentation zum Virtual Machine Manager, einem grafischen Tool zur Verwaltung von virtuellen Maschinen.