Standardmäßig sind die Pakete für virt-manager nicht vorhanden. Allerdings wurden via launchpad Pakete bereitgestellt. Siehe auch virt Quick start und libvirt Packages.
Als Basis installieren wir XEN 3.1.
/etc/apt/sources.list
# https://bugs.edge.launchpad.net/ubuntu/+bug/116897/ - virt-manager deb http://ppa.launchpad.net/marceloshima/ubuntu/ gutsy main universe
Die Installation von virt-manager mittels aptitude install virt-manager installiert von o.a. Quelle die Programme libgtk-vnc-1.0-0 python-gtk-vnc virtinst libvirt0 python-libvirt virt-manager und etliche weitere Pakete.
The following NEW packages will be installed:
aspell aspell-en cpp cpp-4.1 dbus debconf-utils defoma dictionaries-common esound-clients esound-common file fontconfig fontconfig-config gamin gcc-4.1-base gconf2 gconf2-common gnome-keyring gnome-mime-data gnome-mount hal hal-info hicolor-icon-theme libart-2.0-2 libaspell15 libatk1.0-0 libatk1.0-data libaudiofile0 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-glib1 libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common libcairo2 libcroco3 libcupsys2 libdatrie0 libdbus-glib-1-2 libenchant1c2a libesd-alsa0 libexpat1 libfontconfig1 libfontenc1 libfreetype6 libft-perl libgail-common libgail18 libgamin0 libgconf2-4 libglade2-0 libglib2.0-0 libglib2.0-data libgnome-keyring0 libgnome2-0 libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libgnomevfs2-extra libgsf-1-114 libgsf-1-common libgtk-vnc-1.0-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libhal-storage1 libhal1 libhunspell-1.1-0 libice6 libidl0 libmagic1 libnotify1 liborbit2 libpango1.0-0 libpango1.0-common libpng12-0 librsvg2-2 librsvg2-common libsexy2 libsm6 libsmbclient libstartup-notification0 libthai-data libthai0 libtiff4 libttf2 libvirt0 libvte-common libvte9 libwnck-common libwnck22 libx11-6 libx11-data libxau6 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxml2 libxrandr2 libxrender1 libxres1 mcpp notification-daemon psmisc python-cairo python-central python-dbus python-gconf python-glade2 python-gnome2 python-gnomecanvas python-gobject python-gtk-vnc python-gtk2 python-libvirt python-numeric python-pyorbit python-support python-urlgrabber python-vte sessreg sgml-base shared-mime-info ttf-dejavu ttf-dejavu-core ttf-dejavu-extra ucf virt-manager virtinst x-ttcidfont-conf x11-common xcursorgen xfonts-encodings xfonts-utils xml-core xutils xutils-dev 0 packages upgraded, 150 newly installed, 0 to remove and 0 not upgraded. Need to get 32,8MB of archives. After unpacking 148MB will be used.
Leider wurde eine wichtige Abhängigkeit vergessen: python-libxml2. Damit virt-install und virt-manager gestartet werden können, installieren wir diese.
aptitude install python-libxml2
The following NEW packages will be installed: python-libxml2 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 294kB of archives. After unpacking 1421kB will be used.
Jetzt noch den libvirtd starten und los gehts.
Um den X-Server/Display zu testen installieren wir zusätzlich noch xclock.
aptitude install xclock
The following NEW packages will be installed: libxaw7 libxkbfile1 libxmu6 libxpm4 libxt6 xclock 0 packages upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Jetzt sollte man mittels export DISPLAY=ip.ad.dr.ss:0.0 und einem X-Server (z.B. Xming) auf seinem lokalen Bildschirm nach Eingabe von xclock & eine Uhr sehen.
Per Default läuft der xend nicht so, dass er mit libvirt zusammenarbeitet, da er keine Verbindungen zuläßt. Daher ist die xend-config.sxp anzupassen.
/etc/xend-config.sxp
(xend-unix-server yes)
Bei mehreren Interfaces ist es sinnvoll auch mehrere Bridges definieren zu können. Daher habe ich einen wrapper geschrieben, welches über die xend-config.sxp steuert, wieviele Bridges erstellt werden. Diese werden immer zum passenden Interface gebunden.
/etc/xen/scripts/xen-multibridge, attr (root,0755)
#!/bin/bash
dir=$(dirname "$0")
. "$dir/xen-script-common.sh"
. "$dir/xen-network-common.sh"
findCommand "$@"
evalVariables "$@"
devicecount=${devicecount:-1}
devicecount=$(($devicecount - 1))
for i in $(seq 0 $devicecount)
do
vifnum=${vifnum:-0}
bridge=${bridge:-xenbr${vifnum}}
netdev=${netdev:-eth${vifnum}}
antispoof=${antispoof:-no}
pdev="p${netdev}"
vdev="veth${vifnum}"
vif0="vif0.${vifnum}"
echo $dir/network-bridge "$@" vifnum=${i} netdev=${netdev}${i} bridge=${bridge}${i}
$dir/network-bridge "$@" vifnum=${i} netdev=${netdev}${i} bridge=${bridge}${i}
done
/etc/xend-config.sxp
(network-script 'xen-multibridge devicecount=2 netdev=eth bridge=xenbr')
brctl show zeigt dann die beiden Bridges.
brctl show
bridge name bridge id STP enabled interfaces
xenbr0 8000.feffffffffff no vif0.0
peth0
xenbr1 8000.feffffffffff no vif0.1
peth1
/etc/modprobe.d/options
options loop max_loop=64