Vnx-install

Installing on Ubuntu 10.04/9.10
This section describes the procedure for installing VNX over Ubuntu 10.04 or 9.10. Open a root shell window and follow these steps: 

Install all packages required (basic development, virtualization, perl libraries and auxiliar packages): apt-get update apt-get install build-essential qemu-kvm libvirt-bin vlan xterm bridge-utils \ screen virt-manager virt-viewer libxml-checker-perl \ libxml-parser-perl libnetaddr-ip-perl libnet-pcap-perl libnet-ipv6addr-perl \ liberror-perl libexception-class-perl uml-utilities libxml-libxml-perl \ libxml2-dev libgnutls-dev libdevmapper-dev libterm-readline-perl-perl

Note: for Ubuntu 9.04 change "qemu-kvm" package by "qemu kvm"

If you use 64 bits version of Ubuntu, install 32 bits compatibility libraries: apt-get install ia32-libs

Install libvirt 0.7.5: /etc/init.d/libvirt-bin stop wget http://libvirt.org/sources/libvirt-0.7.5.tar.gz tar xfvz libvirt-0.7.5.tar.gz  cd libvirt-0.7.5 ./configure --without-xen --prefix=/usr && make && make install /etc/init.d/libvirt-bin start

NOTE: By now, libvirt 0.7.5 is the only version of libvirt known to work with VNX.

NOTE2: libvirt 0.7.5 is available as a package in Ubuntu 10.04. However it has some problems related with the Apparmor profiles configured for libvirt. If you disable Apparmor (with "/etc/init.d/apparmor stop"), VNX will work with libvirt 0.7.5 installed as package, however we recommend to download and compile it as described above, in order to maintain Apparmor in your system. Install Sys::Virt perl module:  For Ubuntu 10.04, just install the libsys-virt-perl package apt-get install libsys-virt-perl

For Ubuntu 9.10, as Sys::Virt library is not available as a package, install it manually: wget http://search.cpan.org/CPAN/authors/id/D/DA/DANBERR/Sys-Virt-0.2.3.tar.gz tar xfvz Sys-Virt-0.2.3.tar.gz cd Sys-Virt-0.2.3 perl Makefile.PL make install 

Install VNX:</li> wget -N http://www.dit.upm.es/vnx/download/vnx-0.14b.tgz tar xfvz vnx-0.14b.tgz cd vnx-0.14b ./install_vnx

Download root file systems and copy them to /usr/share/vnx/filesystems directory:</li> ... </ul>

NOTE for Ubuntu 10.04.1: It seems that an additional package has to be installed: apt-get install kvm-pxe

Installing on Fedora 11
Follow tis steps to install VNX over Fedora 11: 

 Instalar VNUML sobre Fedora 11 siguiendo la receta en http://www.dit.upm.es/vnumlwiki/index.php/Fedora11</li>

 Instalar paquetes y librerías necesarias:</li> yum install qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML perl-Sys-Virt yum -y install bridge-utils readline-devel perl-Module-Build screen expat-devel libpcap-devel yum -y install perl-Net-Pcap perl-NetAddr-IP perl-Net-IPv6Addr perl-XML-DOM perl-Exception-Class yum -y install perl-TermReadKey perl-Error perl-CPAN uml_utilities xterm tunctl

Install XML::Checker perl library:</li> perl -MCPAN -e shell install XML::Checker Add symbolic link for kvm:</li> ln -s /usr/bin/qemu-kvm /usr/bin/kvm

Instalar VNX:</li> wget -N http://idefix.dit.upm.es/download/vnx/vnx-0.12b.tgz tar xfvz vnx-0.12b.tgz cd vnx-0.12b ./install-vnx

Deshabilitar el firewall o, alternativamente, configurar los interfaces tipo "tun" como confiables (Sistema->Firewall->Interfaces Confiables").</li> </ul>

Testing VNX with example scenarios
Several example scenarios are distributed together with VNX (see /usr/share/vnx/examples directory).

Con la distribución provisional de VNX se proporcionan dos nuevos escenarios de ejemplo para mostrar las capacidades para crear máquinas virtuales basadas en Windows XP:
 * root_fs_XXX.xml,
 * simple-XXX.xml: simple scenarios made of one virtual machine without network interfaces.
 * tutorial_root1-xp.xml, basado en el escenario del tutorial de VNUML (http://www.dit.upm.es/vnumlwiki/index.php/Tutorial) y compuesto por dos máquinas virtuales Linux (uml1 y uml3) y tres Windows XP (uml2, uml4 y uml5).

To test the scenarios:  Open a root shell from the graphical console of the host machine. If you are not sat in front of host's console you can access it using ssh with X-forwarding activated. For example, from a Unix machine you can use:</li> ssh -X <host-addr> In this case, it is recommended to test that X-forwarding is working by launching a "xterm" or "xeyes" application and seeing that the application window is correctly launched.

Es importante además que la conectividad entre la máquina cliente y el servidor donde se ejecuta VNX sea buena, ya que el acceso a las consolas de las máquinas virtuales se hace impracticable en caso contrario.

</ul>

Simple scenarios
 Start simple scenarios by means of:</li> vnx -f /usr/share/vnx/examples/simple_xp.xml -v -u root --create Just after the execution, you will see the console of the Windows XP machine starting. Once the machine has completely started, the autoconfiguration daemon will configure it (the name and network interfaces are configured in general; only the name in the simple example) and restart it for the changes to take effect.

After the restart, the virtual machine will be available for interacting with it.

Note: virt-viewer console application "captures" the mouse when interacting with the virtual machines. You have to type "Ctrl-Alt" to release the mouse.

To stop the scenario preserving the changes made:</li> vnx -f /usr/share/vnx/examples/simple_xp.xml -v -u root --shutdown

To stop the scenario discarding the changes made:</li> vnx -f /usr/share/vnx/examples/simple_xp.xml -v -u root --destroy </ul>

Tutorial scenarios


To start the tutorial scenario with linux and XP machines just type:</li> vnx -f tutorial_root1_xp.xml -v -u root --create

<li>Once the scenario has completely started (remenber that the XP machines have to be restarted for the autoconfiguration to complete), you can test the network connectivity, for example, accesing uml1 machine and tracing to uml5: traceroute -n 10.0.2.2

<li>Para parar y rearrancar una máquina concreta sin perder las modificaciones realizadas: vnx -d examples/tutorial_root1_xp.xml -v -u root -M uml4 vnx -t examples/tutorial_root1_xp.xml -v -u root -M uml4

<li>Para parar y rearrancar una máquina concreta creando una copia nueva desde el rootfs original: vnx -P examples/tutorial_root1_xp.xml -v -u root -M uml4 vnx -t examples/tutorial_root1_xp.xml -v -u root -M uml4

</ul>

Troubleshooting
Comprobaciones: <ul>

<li>Comprobar que el procesador tiene las extensiones de virtualización:</li> egrep '(vmx|svm)' --color=always /proc/cpuinfo Si aparece la la palabra vmx (para Intel) o svm (para AMD) coloreada, es que el procesador tiene soporte de virtualización.

<li>Comprobar que KVM funciona con:</li> modprobe kvm modprobe kvm_intel

<ul> <li>Arrancar con consola SDL</li> kvm -sdl -hda /usr/share/vnuml/filesystems/linux-0.2.img -m 256 <li>Arrancar con consola VNC:</li> echo "Type 'vncviewer ${DISPLAY%.0}' to access vnc console"; kvm -vnc ${DISPLAY#*localhost} -hda /usr/share/vnuml/filesystems/linux-0.2.img -m 256 </ul>

<li>Nota: si al ejecutar el comando kvm devuelve el mensaje de error:</li> open /dev/kvm: No such file or directory. Could not initialize KVM, will disable KVM support" es que el sistema operativo no detecta el soporte de virtualización. Si se ha comprobado que el procesador soporta virtualización, puede ser que ésta esté deshabilitada en la BIOS.

<li>Comprobar que libvirt+KVM funciona:</li>

<ul> <li>Arrancando máquina virtual linux:</li> cd /usr/share/vnuml/examples/ virsh create root_fs_linux.xml virt-viewer Linux <li>Arrancando máquina virtual Windows XP:</li> cd /usr/share/vnuml/examples/ virsh create root_fs_winxp.xml virt-viewer WinXP <li>Para parar las máquinas utilizar:</li> virsh shutdown Linux virsh shutdown WinXP <li>En caso de problemas relacionados con la configuración de red:</li> killall dnsmasq virsh net-start default <li>En caso de que una máquina virtual creada con libvirt no arranque, se pueden consultar la causa en el fichero de trazas:</li> cat /var/log/libvirt/qemu/Linux.log cat /var/log/libvirt/qemu/WinXP.log <li>El estado de las máquinas virtuales creadas con libvirt se puede ver desde la consola gráfica:</li> virt-manager o desde la shell de libvirt: virsh list </ul>

<li> Comprobar funcionamiento VNUML básico:</li> cd /usr/share/vnuml/examples Editar tutorial_root2.xml y añadir " 64M " entre <filesystem...> y <kernel...> vnumlparser.pl -t tutorial_root2.xml -v -u root -Z

</ul>

Errores conocidos
<ul> <li>Ubuntu 9.10: si al arrancar máquinas virtuales da el error:</li> libvirt error code: 38, message: monitor socket did not show up.: Connection refused y en el log (/var/log/libvirt/qemu/*.log) se ve al final el mensaje: qemu: could not open disk image /root/.vnuml/simulations/simple/vms/host1/fs/root_cow_fs hay que rearrancar el demonio de libvirt mediante: /etc/init.d/libvirt-bin restart ver https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/503376

</ul>