Ausgabe 1
ftpd
Mono-spaced Bold
To see the contents of the filemy_next_bestselling_novel
in your current working directory, enter thecat my_next_bestselling_novel
command at the shell prompt and press Enter to execute the command.
Press Enter to execute the command.Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to return to your X-Windows session.
Mono-spaced Bold
. For example:
File-related classes includefilesystem
for file systems,file
for files, anddir
for directories. Each class has its own associated set of permissions.
Choose Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).from the main menu bar to launchTo insert a special character into a gedit file, choose from the main menu bar. Next, choose from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose from the gedit menu bar.
Mono-spaced Bold Italic
or Proportional Bold Italic
To connect to a remote machine using ssh, typessh
at a shell prompt. If the remote machine isusername
@domain.name
example.com
and your username on that machine is john, typessh john@example.com
.Themount -o remount
command remounts the named file system. For example, to remount thefile-system
/home
file system, the command ismount -o remount /home
.To see the version of a currently installed package, use therpm -q
command. It will return a result as follows:package
.
package-version-release
When the Apache HTTP Server accepts requests, it dispatches child processes or threads to handle them. This group of child processes or threads is known as a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and maintaining these server-pools has been abstracted to a group of modules called Multi-Processing Modules (MPMs). Unlike other modules, only one module from the MPM group can be loaded by the Apache HTTP Server.
Mono-spaced Roman
definiert und daher wie folgt präsentiert:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
Mono-spaced Roman
definiert. Sie werden wie folgt präsentiert und 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")); } }
Inhaltsverzeichnis
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
yum
kvm
-Paket. Das kvm
-Paket beinhaltet das KVM-Kernel-Modul, das den KVM-Hypervisor auf dem standardmäßigen 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, mit der grafisches Fenster zur Gastinstallation geöffnet wird.
rhel3support
von einer CD-ROM, mit virtuellem Netzwerk und einem 5 GB dateibasiertem Blockgerätabbild. 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.
# virt-manager &
virt-manager
-Befehl öffnet eine grafische Benutzeroberfläche. Ohne Root-Rechte oder konfiguriertem sudo
stehen Ihnen eine Reihe von Funktionen, u. a. die Schaltfläche , nicht zur Verfügung und Sie können keinen neuen virtualisierten Gast erzeugen.
kernel-xen
nicht der aktuell laufende Kernel ist.
HTTP
, FTP
oder NFS
. Die URL des Installationsmediums muss einen Fedora Installationsbaum enthalten. Dieser Baum wird gehosted mittels NFS
, FTP
or HTTP
. Die Netzwerkdienste und Dateien können gehosted werden unter Verwendung der Netzwerkdienste auf dem Host oder einem anderen Spiegelserver.
.iso
-Datei gekennzeichnet) hängen Sie das CD-ROM-Abbild ein und hosten die eingehängten Dateien mit einem der genannten Protokolle.
/var/lib/xen/images/
-Verzeichnis abgelegt werden. Andere Speicherorte für dateibasierte Abbilder werden von SELinux verweigert. Falls Sie SELinux im Enforcing-Modus ausführen, werfen Sie einen Blick auf Abschnitt 7.1, „SELinux und Virtualisierung“ für weitere Informationen über die Installation von Gästen.
/var/lib/xen/images/
. Falls Sie einen anderen Speicherort verwenden (wie z. B. /xen/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).
virt-manager
abgeschlossen. Kapitel 3, Installationsverfahren für Gastbetriebssysteme enthält schrittweise Anleitungen zur Installation einer Vielzahl gebräuchlicher Betriebssysteme.
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'.
Starten Sie die neue Bridge. # ifup installation
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
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
# sysctl -p /etc/sysctl.conf
libvirt vor der Installation neustarten
libvirt
daemon.
# service libvirtd reload
virt-install
den --network=bridge:BRIDGENAME
-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
kernel-xen
-Kernel.
virt-manager
finden Sie unter Abschnitt 2.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 Abbildatei ist rhel5PV.dsk
und ein lokaler Spiegelserver des Red Hat Enterprise Linux 5 Installationsbaums ist ftp://10.1.1.1/trees/CentOS5-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/CentOS5-B2-Server-i386/
DHCP
(wie unten gezeigt) oder einer statischen Adresse wählen:
Installationsnummer
ein:
rhn_register
-Befehls bestätigen. Der rhn_register
-Befehl erfordert Root-Rechte.
# rhn_register
virt-install
in Abschnitt 3.1, „Installation von Red Hat Enterprise Linux 5 als paravirtualisierter Gast“ angewendet haben. Falls Sie das Standardbeispiel übernommen haben, lautet der Name rhel5PV
.
virsh reboot rhel5PV
virt-manager
öffnen, den Namen Ihres Gasts auswählen, auf und danach auf klicken.
kdump
, falls nötig.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
-Verzeichnis verwendet werden. Abweichende Speicherorte erfordern unter Umständen zusätzliche Konfiguration von SELinux. Siehe Abschnitt 7.1, „SELinux und Virtualisierung“ für weitere Einzelheiten.
Storage setup
/var/lib/libvirt/images/
-Verzeichnis abgelegt sein. Weisen Sie ausreichend Speicherplatz für Ihren virtualisierten Gast und dessen benötigte Anwendungen zu.
Klicken Sie auf , um fortzufahren.
Network setup
Memory and CPU allocation
Verify and start guest installation
Installation von Linux
Starting virt-manager
Benennen Sie das virtuelle System
Wählen Sie eine Virtualisierungsmethode
Wählen Sie die Installationsart
/var/lib/libvirt/images/
-Verzeichnis verwendet werden. Abweichende Speicherorte erfordern unter Umständen zusätzliche Konfiguration von SELinux. Siehe Abschnitt 7.1, „SELinux und Virtualisierung“ für weitere Einzelheiten.
/var/lib/libvirt/images/
-Verzeichnis abgelegt werden. Andere Speicherorte für dateibasierte Abbilder werden von SELinux verweigert. Falls Sie SELinux im Enforcing-Modus ausführen, werfen Sie einen Blick auf Abschnitt 7.1, „SELinux und Virtualisierung“ für weitere Informationen über die Installation von Gästen.
/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).
Network setup
Generische i486-Plattform
'-Reiter aus (wechseln Sie die Auswahl mit den Hoch und Runter-Pfeilen).
# virsh start WindowsGuest
WindowsGuest
der Name Ihrer virtuellen Maschine ist.
virsh reboot WindowsGuestName
neu. Dies wird die Installation in der Regel wieder zum Laufen bringen. Wenn Sie Ihre virtuelle Maschine neu starten, werden Sie die Nachricht Setup is being restarted
sehen:
virt-install
-Befehls. virt-install
kann anstelle von virt-manager
verwendet werden. Dieses Verfahren ähnelt der Windows XP Installation, die in Abschnitt 3.3, „Installation von Windows XP als voll virtualisierter Gast“ beschrieben wird.
virt-install
zur Installation von Windows Server 2003 als Konsole für den Windows-Gast wird umgehend das virt-viewer-Fenster geöffnet. Sehen Sie hier ein Beispiel zur Verwendung von virt-install
zur Installation eines Windows Server 2003 Gasts:
virt-install
-Befehl.
# virt-install -hvm -s 5 -f /var/lib/libvirt/images/windows2003spi1.dsk \ -n windows2003sp1 -cdrom=/ISOs/WIN/en_windows_server_2003_sp1.iso \ -vnc -r 1024
Standard PC
als Computer-Typ aus. Dies ist der einzige nötige Schritt, der nicht standardmäßig ist.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
-Verzeichnis verwendet werden. Abweichende Speicherorte erfordern unter Umständen zusätzliche Konfiguration von SELinux. Siehe Abschnitt 7.1, „SELinux und Virtualisierung“ für weitere Einzelheiten.
Storage setup
/var/lib/libvirt/images/
-Verzeichnis abgelegt sein. Weisen Sie ausreichend Speicherplatz für Ihren virtualisierten Gast und dessen benötigte Anwendungen zu.
Klicken Sie auf , um fortzufahren.
Network setup
Memory and CPU allocation
Verify and start guest installation
Installation von Windows
dd
erstellt werden. Ersetzen Sie dabei /dev/fd0 durch den Namen eines Floppy-Laufwerks und benennen die Diskette entsprechend.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
angelegt wurde und auf dem eine vollvirtualisierte Linux-Installation läuft, mit einem Abbild 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 stop 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 Einträgen, die mit "disk=
" beginnen. Ein Eintrag 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=
-Eintrags ändern. Versichern Sie sich, dass Sie einen Gerätenamen für das virtuelle Blockgerät angeben, der noch nicht in der Konfigurationsdatei verwendet wird. Der folgende Beispieleintrag fügt eine Datei namens FileName.img
als dateibasierten Speicher-Container hinzu:
>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
als ein Gerät namens /dev/hdb
. Dieses Gerät muss vom Gast formatiert werden. Partitionieren Sie das Gerät auf dem Gast in eine einzige Primärpartition für das gesamte Gerät, und formatieren Sie anschließend das Gerät.
n
für eine neue Partition.
# fdisk /dev/hdb 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/hdb
# mount /dev/hdb1 /myfiles
multipath
und Persistenz auf dem Host, falls nötig.
virsh attach
-Befehl aus. Ersetzen Sie dabei myguest
durch den Namen Ihres Gasts, /dev/hdb1
durch das hinzuzufügende Gerät und hdc
durch den Ort des Geräts auf dem Gast. hdc
muss ein noch nicht verwendeter Gerätename sein. Nutzen Sie die hd*
-Notation auch für Windows-Gäste, der Gast wird daraufhin das Gerät korrekt erkennen.
--type hdd
an.
--type floppy
an.
# virsh attach-diskmyguest
/dev/hdb1
hdc
--driver tap --mode readonly
/dev/hdb
unter Linux oder D: drive
(oder ähnlich) unter Windows. Gegebenenfalls muss das Gerät noch formatiert werden.
multipath
nicht läuft, müssen die Konfiguration eines einzigen Pfads (Single Path) durchführen. Systeme, auf denen multipath
läuft, können die Konfiguration multipler Pfade (Multiple Path) durchführen.
udev
. Wenden Sie dieses Verfahren ausschließlich für Hosts an, die multipath
nicht verwenden.
/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*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", 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 Linux-Systemen.
scsi_id
-Befehls identifizieren.
# 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
und /dev/mpath/oramp4
. Einmal eingegeben, ist die Zuordnung der Geräte-WWID zu ihren jeweiligen Namen auch nach einem Neustart persistent.
virsh
mit dem Parameter attach-disk
.
# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly
Die Parameter source
und target
sind Pfade für die Dateien und Geräte im Host bzw. Gast. Der source
-Parameter kann ein Pfad zu einer ISO-Datei oder das Gerät vom /dev
-Verzeichnis sein.
# 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 Abbilder 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.
/var/lib/libvirt/images
gespeichert sind.
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 "/virtualization(/.*)?"
semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
/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
/virtstorage
) und aller darunterliegenden Dateien auf xen_image_t
zu ändern (restorecon
und setfiles
lesen die Dateien in /etc/selinux/targeted/contexts/files/
).
# restorecon -R -v /virtualization
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
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.
libvirt
-Installation ist NAT-basierte Konnektivität zu virtuellen Maschinen bereits integriert. Dies ist das sogenannte "Virtuelle Standardnetzwerk". Überprüfen Sie dessen Verfügbarkeit mit dem Befehl virsh net-list --all
.
# virsh net-list --all Name State Autostart ----------------------------------------- default active yes
# virsh net-define /usr/share/libvirt/networks/default.xml
/usr/share/libvirt/networks/default.xml
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)
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
" zu den ifcfg-*
-Skripten hinzufügen, die in den Beispielen verwendet werden.
/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 an das Ende der Konfigurationsdatei anfügen.
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
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
# sysctl -p /etc/sysctl.conf
libvirt
daemon.
# service libvirtd reload
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes br0 8000.000e0cb30550 no eth0
virbr0
-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.
Herunterladen der Treiber
virtio-win.iso
im /usr/share/virtio-win/
-Verzeichnis.
Installation der paravirtualisierten Treiber
virt-manager
zum Einhängen eines CD-ROM-Abbilds für einen Windows-Gast“, um ein CD-ROM-Abbild mit virt-manager
hinzuzufügen.
virt-manager
zum Einhängen eines CD-ROM-Abbilds für einen Windows-Gastvirt-manager
, wählen Sie Ihren virtualisierten Gast aus der Liste der virtuellen Maschinen aus und klicken die -Schaltfläche.
/usr/share/xenpv-win
, sofern Sie yum
zur Installation der paravirtualisierten Treiberpakete genutzt haben.
viostor.vfd
als Floppy.
Windows Server 2003
Windows Server 2008
virtio
-Treiber anstelle des virtualisierten IDE-Treibers verwendet. In diesem Beispiel werden die libvirt-Konfigurationsdateien bearbeitet. Alternativ können auch virt-manager
, virsh attach-disk
oder virsh attach-interface
ein neues Gerät zur Verwendung der paravirtualisierten Treiber hinzufügen 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='hda' bus='ide'/> </disk>
virtio
.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='hda' bus='virtio'/>
</disk>
virt-manager
.
virsh attach-disk
oder virsh attach-interface
nutzen, um Geräte zu verknüpfen, die die paravirtualisierten Treiber verwenden.
virt-manager
auf den Namen des Gasts doppelklicken.
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 | Description |
---|---|
(console-limit)
|
Bestimmt das Arbeitsspeicher-Pufferlimit xend_unix_server des Konsolenservers und weist Werte auf einer pro-Domain-Basis zu.
|
(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)
|
Bestimmt, dass im Falle eines Absturzes ein Dump aktiviert wird (Standard ist 0).
|
(external-migration-tool)
|
Bestimmt das Skript oder die Anwendung, die die externe Gerätemigration handhabt (die Skripte müssen sich in
etc/xen/scripts/external-device-migrate 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 (Skripte müssen sich im Verzeichnis
etc/xen/scripts befinden).
|
(xend-http-server)
|
Aktiviert den HTTP-Stream Paket-Management-Server (standardmäßig "no").
|
(xend-unix-server)
|
Aktiviert den UNIX Domain-Socket-Server, welcher ein Socket-Server ist ein Kommunikationsendpunkt, der Lowlevel-Netzwerkverbindungen handhabt und einkommende Verbindungen akzeptiert oder abweist. Der standardmäßige Wert ist Yes.
|
(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 nicht auf den Runlevels 3,4 und 5 starten.
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 werden kann, durch tiefen C-Status oder durch Migration auf einen Host mit einem schnelleren TSC. Um tiefe C-Stati, die den TSC anhalten können, zu vermeiden, fügen Sie auf dem Host "processor.max_cstate=1
" zu den Boot-Optionen des Kernels in Grub hinzu:
term Fedora (vmlinuz-2.6.29.6-217.2.3.fc11)
root (hd0,0)
kernel /vmlinuz-vmlinuz-2.6.29.6-217.2.3.fc11 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
cpufreq
(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 |
/use pmtimer
virsh
-Befehls auf einen anderen Host migriert werden. Der migrate
-Befehl akzeptiert Parameter im folgenden Format:
# virsh migrate --live GuestName DestinationURL
GuestName
parameter represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
test1.bne.redhat.com
nach test2.bne.redhat.com
. Passen Sie die Host-Namen auf Ihre Umgebung an. Dieses Beispiel migriert eine virtuelle Maschine namens CentOS4test
.
Überprüfen Sie, dass der Gast läuft
test1.bne.redhat.com
aus, ob CentOS4test
läuft:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 running
Migrieren Sie den Gast
test2.bne.redhat.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 CentOS4test qemu+ssh://test2.bne.redhat.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.bne.redhat.com
aus, ob CentOS4test
läuft:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 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
ausführen werden. Falls ssh
bereits konfiguriert ist, können Sie diesen Befehl überspringen.
$ ssh-keygen -t rsa
virt-manager
eine Kopie des öffentlichen Schlüssels für jede Remote-Maschine haben, auf der libvirt
läuft. Kopieren Sie die Datei $HOME/.ssh/id_RSA.pub
von der Maschine, die Sie für die Remote-Verwaltung verwenden wollen, mit Hilfe des scp
-Befehls:
$ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
ssh
-Befehl, um sich mit der Remote-Maschine als Root zu verbinden und fügen Sie die von Ihnen kopierte Datei in die Liste der autorisierten Schlüssel ein. Falls der Root-Benutzer auf dem Remote-Host noch keine Liste mit autorisierten Schlüsseln hat, stellen Sie sicher, dass die Dateiberechtigungen korrekt gesetzt sind.
$ ssh root@somehost
# mkdir /root/.ssh
# chmod go-rwx /root/.ssh
# cat /root/key-dan.pub >> /root/.ssh/authorized_keys
# chmod go-rw /root/.ssh/authorized_keys
libvirt
-Daemon (libvirtd
)libvirt
-Daemon bietet eine Schnittstelle zur Verwaltung virtueller Maschinen. Der libvirtd
-Daemon muss installiert und gestartet sein auf jedem Remote-Host, den Sie verwalten möchten.
$ 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
-Verwaltungsverbindung öffnet einen TCP-Port für eingehende Verbindungen, welcher sicher verschlüsselt und authentifiziert ist basierend auf x509-Zertifikaten. Zusätzlich wird die VNC-Konsole für jede virtuelle Gastmaschine für die Verwendung von TLS mit x509-Zertifikatsauthentifizierung eingerichtet.
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
-Verzeichnis benötigt die folgenden drei Dateien:
ca-cert.pem
– Das CA-Zertifikat
server-cert.pem
– Das von der CA signierte Server-Zertifikat
server-key.pem
– Den privaten Schlüssel des Servers
(vnc-x509-verify 1)
-Parameters.
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
-Benutzeroberfläche die ' '-Option als Transportmechanismus beim Verbinden mit einem 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.
Ein Uniform Resource Identifier (URI) wird von 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
unter Verwendung von TLS. Der Parameter no_verify=1
weist libvirt an, das Zertifikat des Servers nicht zu überprüfen.
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 | Description | 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 Name des Netcat-Befehls auf der entfernten Maschine. Der Standard ist nc. Für ssh-Transport konstruiert libvirt einen ssh-Befehl nach folgendem Schema: command -p port [-l username] hostname netcat -U socket. Dabei kann port, username, hostname als Teil der Remote-URI spezifiziert werden und command, netcat und socket stammen von zusätzlichen Parametern (oder vernünftigen Standards). | netcat=/opt/netcat/bin/nc |
no_verify | tls | Falls auf einen anderen Wert als Null eingestellt, deaktiviert dies die Überprüfung des Server-Zertifikats durch den Client. Beachten Sie, dass Sie zum Deaktivieren der Überprüfung des Client-Zertifikats oder der IP-Adresse durch den Server die libvirtd-Konfiguration ändern müssen. | 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 | Description |
---|---|
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
| Zeit die Gast-ID an. |
domuuid
| Zeigt die Gast-UUID an. |
dominfo
| Zeigt Gastinformationen. |
domname
| Zeigt den Gastnamen. |
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
-Befehle zur Verwaltung von Gast- und Hypervisor-Ressourcen:
Befehl | Description |
---|---|
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 | Description |
---|---|
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
aus:
# virsh dumpxml {domain-id, domain-name or domain-uuid}
stdout
) aus. Sie können die Daten speichern, indem Sie die Ausgabe in eine Datei umleiten. Sehen Sie hier ein Beispiel für die Umleitung der Ausgabe in eine Datei namens guest.xml
:
# virsh dumpxmlDie DateiGuestID
>guest.xml
guest.xml
kann dazu verwendet werden, einen Gast wiederherzustellen (siehe Bearbeiten von Gastkonfigurationsdateien). Sie können diese XML-Konfigurationdatei bearbeiten, um zusätzliche Geräte zu konfigurieren oder Gäste hinzuzufügen. Werfen Sie einen Blick auf Abschnitt 18.1, „Benutzung von XML-Konfigurationsdateien mit virsh“ für mehr Informationen über die Modifizierung von virsh dumpxml
-Dateien.
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
verwenden (siehe dumpxml
option (refer to Erstellen eines XML-Speicherauszugs einer virtuellen Maschine (Konfigurationsdatei)). Um einen Gast mit virsh
aus einer XML-Datei zu erzeugen:
# virsh create configuration_file.xml
dumpxml
zu verwenden (siehe Erstellen eines XML-Speicherauszugs einer virtuellen Maschine (Konfigurationsdatei)), können Gäste auch bearbeitet werden, während diese laufen oder offline sind. Diese Möglichkeit bietet Ihnen der virsh edit
-Befehl. Um zum Beispiel einen Gast namens softwaretesting
zu bearbeiten:
# virsh edit softwaretesting
$EDITOR
-Shell-Parameter (auf vi
voreingestellt).
virsh
anzuhalten:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Fortsetzen eines Gastes) wieder fortgesetzt werden.
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) wiederherstellen. Die "save"-Option ist ähnlich der "pause"-Option, unterscheidet sich jedoch insofern, dass zusätzlich zum Anhalten der aktuelle Zustand des Gasts gespeichert wird.
virsh
wiederherstellen, den Sie zuvor mit der virsh save
-Option gespeichert haben (Speichern eines Gasts):
# virsh restore filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
der Gastkonfigurationsdatei ändern.
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
der Gastkonfigurationsdatei ändern.
virsh
:
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
kann dabei möglicherweise das Gastdateisystem beschädigen. Verwenden Sie die destroy
-Option nur, wenn der Gast nicht mehr reagiert. Für paravirtualisierte Gäste sollten Sie stattdessen die Option shutdown
verwenden (Herunterfahren eines Gasts).
# 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
zusammen mit der Domain-ID, dem Domain-Namen oder der UUID des Gasts verwenden, können Sie Informationen über den angegebenen Gast anzeigen:
# 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, domain-name or domain-uuid} vcpu, cpulist
vcpu
die Nummer der virtuellen VCPU und cpulist
die Anzahl der physischen CPUs angibt.
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
zu ändern:
# 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 represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
virsh
. 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
verfügbar sind. Das UUID-Feld zeigt den global eindeutigen Identifier für die virtuelle Maschine dar.
virt-manager
127.0.0.1
) des lokalen Hosts (dom0
). Dadurch ist sichergestellt, dass nur diejenigen mit Shell-Privilegien auf dem Host auf den virt-manager und die virtuelle Maschine via VNC zugreifen können.
virt-manager
'sticky key'-Fähigkeit des Virtual Machine Manager verwenden, um diese Tastaturfolge zu senden. Sie müssen eine Modifikatortaste (wie Strg oder Alt) dreimal drücken und dann wird die Taste, die Sie angeben, solange als aktiv behandelt, bis die nächste Taste, die keine Modifikatortaste ist, gedrückt wird. Anschließend können Sie Strg+Alt+F11 an den Gast senden, indem Sie die Tastaturfolge 'Strg Strg Strg Alt+F1' eingeben.
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
auch von Remote aus gestartet werden unter Verwendung von SSH, wie im folgenden Befehl veranschaulicht:
ssh -X host's address
[remotehost]# virt-manager
Die Verwendung von ssh
bei der Verwaltung virtueller Maschinen wird näher erläutert in Abschnitt 13.1, „Remote-Verwaltung mit SSH“.
DHCP
-BereichsInhaltsverzeichnis
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.23.14-107.fc8xen
2.6.23.14-107.fc8xen
", läuft auf dem System. Falls der Standard-Kernel, "2.6.23.14-107.fc8
", 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 Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
0
(oder die Nummer für den Standard-Kernel):
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
Starten Sie neu, um den neuen Kernel zu laden
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm
-Module 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.23.14-107.fc8
2.6.23.14-107.fc8
", läuft auf dem System. Dies ist der Standard-Kernel. Wenn der Kernel auf xen
endet (z. B. 2.6.23.14-107.fc8xen
), 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 Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
1
(oder die Nummer für den Xen-Kernel):
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc82.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
Starten Sie neu, um den neuen Kernel zu laden
uname
-Befehl:
$ uname -r 2.6.23.14-107.fc8xen
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 Gastabbilder zu formatieren, zusätzliche Speichergeräte und Netzwerkspeicher hinzuzufügen. Die Verwendung und die verfügbaren Optionen von qemu-img
werden im Folgenden erläutert.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
# qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename
qcow
oder cow
. Die leeren Sektoren werden erkannt und für das Zielabbild ausgeblendet.
info
-Parameter zeigt Informationen über ein Disk-Abbild. 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 Abbild 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
pdflush
-Prozess. pdflush
beendet Prozesse, um Speicher freizugeben und das System so vor einem Absturz zu bewahren. pdflush
kann Fehler im Dateisystem verursachen und kann dazu führen, dass die virtualisierten Gäste nicht mehr starten können.
(0,5 x RAM) + (Overcommit-Rate x RAM) = Empfohlene Swap-Größe
/etc/grub.conf
-Datei sicher und richtig ändern, um den virtualisierten Kernel zu verwenden. Sie müssen den xen
-Kernel verwenden, um den Xen-Hypervisor auszuführen. Kopieren Sie ihren existierenden xen
-Kernel-Eintrag. Stellen Sie dabei sicher, dass Sie alle der wichtigen Zeilen kopieren, ansonsten wird Ihr System Probleme beim Booten haben (initrd
wird die Länge 0
' haben). Wenn Sie xen
-Hypervisor-spezifische Werte benötigen, müssen Sie diese in der xen
-Zeile Ihres Grub-Eintrages hinzufügen.
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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.img
grub.conf
grub.conf
kann sehr unterschiedlich aussehen, falls sie manuell bearbeitet wurde oder von einem Beispiel kopiert wurde.
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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.img
$ grep -E 'svm|vmx' /proc/cpuinfo
vmx
-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.
#!/bin/bash declare -i IS_HVM=0 declare -i IS_PARA=0 check_hvm() { IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)" if [ x"${IS_X86HVM}" != x ]; then echo "Guest type is full-virt x86hvm" IS_HVM=1 fi } check_para() { if $(grep -q control_d /proc/xen/capabilities); then echo "Host is dom0" IS_PARA=1 else echo "Guest is para-virt domU" IS_PARA=1 fi } if [ -f /proc/acpi/dsdt ]; then check_hvm fi if [ ${IS_HVM} -eq 0 ]; then if [ -f /proc/xen/capabilities ] ; then check_para fi fi if [ ${IS_HVM} -eq 0 -a ${IS_PARA} -eq 0 ]; then echo "Baremetal platform" fi
virsh capabilites
.
macgen.py
. Nun können Sie von diesem Verzeichnis aus das Skript mittels ./macgen.py
starten und es wird eine neue MAC-Adresse generieren. Die Ausgabe sollte etwa wie dieses Beispiel aussehen:
$ ./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 ""
ftpd
vsftpd
bietet Zugang zu Installationsbäumen für paravirtualisierte Gäste 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
zu konfigurieren, bearbeiten Sie /etc/passwd
mit vipw
und ändern Sie das FTP-Benutzerverzeichnis auf das Verzeichnis, in dem Sie die Installationsbäume für Ihre paravirtualisierten Gäste ablegen möchten. Ein Beispieleintrag für Ihren FTP-Benutzer könnte wie folgt aussehen:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
vsftpd
beim Hochfahren automatisch zu starten, verwenden Sie das chkconfig-Dienstprogramm, um den automatischen Start von vsftpd
zu aktivieren.
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 automatisch für Runlevel 3, 4 und 5 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 erhalten, können Sie die LUN-Persistenz konfigurieren, indem Sie die Datei scsi_id
bearbeiten, die sich im Verzeichnis /etc
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
uuidgen
ausführen. Für die vif
-Einträge müssen Sie eine eindeutige MAC-Adresse für jeden Gast definieren (falls Sie eine Gastkonfiguration von einen existierenden Gast kopieren, können Sie dazu ein Skript erstellen). Falls Sie eine Sie eine existierende Gastkonfigurationsdatei auf einen neuen Host verschieben, müssen Sie für die Xen-Bridge-Information den Eintrag xenbr
aktualisieren, damit er mit Ihren lokalen Netzwerkkonfigurationen übereinstimmt. Für die Geräteinträge müssen Sie die Einträge in dem 'disk='
-Abschnitt modifizieren, um auf das korrekte Gastabbild zu verweisen.
/etc/sysconfig/network
modifizieren, um mit den neuen Host-Namen des Gasts übereinzustimmen.
HWADDR
-Adresse der /etc/sysconfig/network-scripts/ifcfg-eth0
-Datei modifizieren, um mit den Ausgabe von ifconfig eth0
übereinzustimmen und 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 Gastabbild zu verweisen.
/etc/sysconfig/network
HOSTNAME
-Eintrag auf den neuen hostname
des Gasts.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
-Adresse auf die Ausgabe von ifconfig eth0
.
IPADDR
-Eintrag, falls statische IP-Adressen verwendet werden.
libvirt
vereinfachen können.
libvirt
zu schreiben.
virsh
kann mit XML-Konfigurationsdateien umgehen. Sie können dies zu ihrem Vorteil verwenden beim Skripting großer Deployments mit speziellen Optionen. Sie können Geräte, die in einer XML-Datei definiert sind, zu einem laufenden paravirtualisierten Gast hinzufügen. Um beispielsweise eine ISO-Datei als hdc
zu einem laufenden Gast hinzuzufügen, erstellen Sie eine XML-Datei:
# 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>Führen Sie
virsh attach-device
aus, um das ISO als hdc
mit einem Gast namens "satellite" zu verknüpfen:
# virsh attach-device Satellite satelliteiso.xml
/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 zu machen, verwenden Sie den Befehl phy: device
oder file: file
.
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.
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 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.
Versionsgeschichte | |||
---|---|---|---|
Version 12.1.3 | Mon Oct 12 2009 | ||
|
dom0
bezeichnet die Host-Instanz von Linux, auf welcher der Hypervisor ausgeführt wird, der die Virtualisierung von Gastbetriebssystemen ermöglicht. Dom0 läuft auf der physischen Hardware und verwaltet ebendiese Hardware sowie die Ressourcenzuteilung für sich selbst und Gastbetriebssysteme.
domU
bezeichnet das Gastbetriebssystem, das auf dem Host-System (Domains) läuft.
ext2
und ext3
-Dateisystem-Identifier, RAID-Gerät-Identifierfiers, -iuCSI an-Geräte-Iice identfisowie Identifier für ers-AAC addn undeand elle Rechnerferät.