Vnx-install

From VNUML-WIKI
Revision as of 16:22, 4 October 2010 by David (talk | contribs)
Jump to: navigation, search

VNX (Virtual Networks over X virtualization) v0.14 beta

Installation

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:
  • Install VNX:
  • 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 from http://idefix.dit.upm.es/download/vnx/filesystems and copy them to /usr/share/vnx/filesystems directory:
  • cd /usr/share/vnx/filesystem
    # ubuntu server
    wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.04-v01.qcow2.bz2
    bunzip2 root_fs_ubuntu-10.04-v01.qcow2.bz2
    ln -s root_fs_ubuntu-10.04-v01.qcow2.bz2 root_fs_ubuntu
    # ubuntu with gui
    wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.04-gui-v01.qcow2.bz2
    bunzip2 root_fs_ubuntu-gui-10.04-v01.qcow2.bz2
    ln -s root_fs_ubuntu-10.04-gui-v01.qcow2.bz2 root_fs_ubuntu-gui
    ...
    

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
  • Instalar paquetes y librerías necesarias:
  • 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:
  • perl -MCPAN -e shell
    install XML::Checker
    
  • Add symbolic link for kvm:
  • ln -s /usr/bin/qemu-kvm /usr/bin/kvm
    
  • Instalar VNX:
  • 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").

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:
  •   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.

Simple scenarios

  • Start simple scenarios by means of:
  • 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:
  • vnx -f /usr/share/vnx/examples/simple_xp.xml -v -u root --shutdown
    
  • To stop the scenario discarding the changes made:
  • vnx -f /usr/share/vnx/examples/simple_xp.xml -v -u root --destroy
    

Tutorial scenarios

  • To start the tutorial scenario with linux and XP machines just type:
  • vnx -f tutorial_root1_xp.xml -v -u root --create
    
  • 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
  • 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
  • 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

Troubleshooting

Comprobaciones:

  • Comprobar que el procesador tiene las extensiones de virtualización:
  • 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.

  • Comprobar que KVM funciona con:
  •  modprobe kvm
     modprobe kvm_intel
    
    • Arrancar con consola SDL
    •  kvm -sdl -hda /usr/share/vnuml/filesystems/linux-0.2.img -m 256    
      
    • Arrancar con consola VNC:
    •  echo "Type 'vncviewer ${DISPLAY%.0}' to access vnc console"; kvm -vnc ${DISPLAY#*localhost} -hda /usr/share/vnuml/filesystems/linux-0.2.img -m 256
      
  • Nota: si al ejecutar el comando kvm devuelve el mensaje de error:
  • 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.

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

      o desde la shell de libvirt:

      virsh list
      
  • Comprobar funcionamiento VNUML básico:
  •  cd /usr/share/vnuml/examples
    

    Editar tutorial_root2.xml y añadir "<mem>64M</mem>" entre <filesystem...> y <kernel...>

     vnumlparser.pl -t tutorial_root2.xml -v -u root -Z
    

Errores conocidos

  • Ubuntu 9.10: si al arrancar máquinas virtuales da el error:
  • 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