[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] Xen compilation : doc : help
xen people wrote: > Hi , > > I would like to compile xen 4 on my debian system. > could you please help me or let me know the documents available for > this. > it would be really great if you give me some direction. Based on Jean Baptiste and Boris Derzhavets and other post on the wiki I have managed to instalal kde 4.0.0 on ubuntu 10.04 LTS server amd64 with kernel 2.6.31.13 PVOPS, you can find what I wrote yesterday. It is in spanish but I think it is easy to follow. Best regards. > > Thanks in advance. > > Regards, > Swami > ------------------------------------------------------------------------ > > _______________________________________________ > Xen-users mailing list > Xen-users@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-users -- Jorge Armando Medina Computación Gráfica de México Web: http://www.e-compugraf.com Tel: 55 51 40 72, Ext: 124 Email: jmedina@xxxxxxxxxxxxxxx GPG Key: 1024D/28E40632 2007-07-26 GPG Fingerprint: 59E2 0C7C F128 B550 B3A6 D3AF C574 8422 28E4 0632 Instalando Xen 4.0.0 en Ubuntu 10.04 LTS Server usando un kernel 2.6.31.13 PVOPS ==Instalando las dependencias para compilar Xen 4.0.0== Para más información acerca de las dependencias lea el archivo README: # apt-get install bcc bin86 build-essential patch bzip2 gcc gawk make binutils bridge-utils iproute udev flex \ module-init-tools iasl git-core mercurial gcc-multilib gettext mercurial gitk \ transfig tgif texinfo texlive-latex-base texlive-latex-recommended texlive-fonts-extra texlive-fonts-recommended \ libc6-dev libsdl-dev libcurl3 libcurl4-openssl-dev libvncserver-dev libvncserver0 libjpeg62-dev zlib1g-dev \ libncurses5-dev libssl-dev libx11-dev libbz2-dev e2fslibs-dev pciutils-dev uuid-dev dpkg-dev debhelper xserver-xorg-dev \ python python-dev python-pyopenssl python-pam python-twisted NOTA: Si su sistema tiene soporte para PCI passthrough debe instalar el paquete pciutils-dev antes de compilar xen-tools, más info: NOTA: Si el sistema es de 64bit instale el paquete gcc-multilib ==Compilando y empaquetando el kernel 2.6.32.12 para Xen== Clonamos el repositorio git de jeremy: # cd /usr/src # git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen # cd linux-2.6-xen Para ver las ramas: # git branch -r Hacemos checkout de la versión estable del kernel PVOPS, en este caso 2.6.31.13: # git checkout origin/xen/master -b xen/master Si desea instalar la versión más reciente de la rama 2.6.32 use: # git checkout origin/xen/stable-2.6.32.x -b xen/stable-2.6.32.x Configuramos el kernel con soporte Xen Dom0 y DomU: # make menuconfig Entrar a "Proccessor type and features": [*] Paravirtualized guest support ---> =! Hardy CONFIG_XEN_PRIVILEGED_GUEST=y ??? [*] Xen guest support/CONFIG_XEN=y == Hardy (32) Maximum allowed size of a domain in gigabytes/CONFIG_XEN_MAX_DOMAIN_MEMORY [*] Enable Xen privileged domain support/CONFIG_XEN_DOM0 [*] Enable support for Xen PCI passthrough devices/CONFIG_XEN_PCI_PASSTHROUGH [*] AMD IOMMU support/CONFIG_AMD_IOMMU Entrar a "Bus options (PCI etc.)" <M> PCI Stub driver/CONFIG_PCI_STUB <M> Xen PCI Frontend/CONFIG_XEN_PCIDEV_FRONTEND =! Hardy CONFIG_XEN_PCIDEV_FRONTEND=y Entrar a "Device drivers": [*] Block devices ---> <M> Xen virtual block device support/CONFIG_XEN_BLKDEV_FRONTEND =! Hardy CONFIG_XEN_BLKDEV_FRONTEND=y -*- Network device support ---> <M> Xen network device frontend driver/CONFIG_XEN_NETDEV_FRONTEND =! Hardy CONFIG_XEN_NETDEV_FRONTEND=y <*> Net channel 2 support/CONFIG_XEN_NETCHANNEL2 [*] Net channel 2 backend support (NEW)/ [*] Net channel 2 frontend support (NEW) [*] Net channel 2 bypassee support (NEW)/CONFIG_XEN_NETDEV2_BYPASSABLE [*] Net channel 2 bypass endpoint support (NEW)/CONFIG_XEN_NETDEV2_BYPASS_ENDPOINT [*] Automatically manage netchannel2 bypasses (NEW)/CONFIG_XEN_NETDEV2_AUTOMATIC_BYPASS Character devices ---> [*] Xen Hypervisor Console support/CONFIG_HVC_XEN =! Hardy NO??? [*] Xen memory balloon driver/CONFIG_XEN_BALLOON=y == Hardy [*] Scrub pages before returning them to system/CONFIG_XEN_SCRUB_PAGES == Hardy <*> Xen /dev/xen/evtchn device/CONFIG_XEN_DEV_EVTCHN=y =! Hardy NO?? [*] Backend driver support (NEW)/CONFIG_XEN_BACKEND=y == Hardy <*> Block-device backend driver/CONFIG_XEN_BLKDEV_BACKEND=y == Hardy <*> Block-device tap backend driver/CONFIG_XEN_BLKDEV_TAP=y == Hardy <*> Xen backend network device/CONFIG_XEN_NETDEV_BACKEND=y == Hardy <*> PCI-device backend driver (NEW)/CONFIG_XEN_PCIDEV_BACKEND=y == Hardy PCI Backend Mode (Virtual PCI) ---> CONFIG_XEN_PCIDEV_BACKEND_VPCI=y == Hardy ???? PCI Backend Debugging (NEW) <*> Xen filesystem/CONFIG_XENFS=y == Hardy NO??? [*] Create compatibility mount point /proc/xen/CONFIG_XEN_COMPAT_XENFS=y [*] Create xen entries under /sys/hypervisor/CONFIG_XEN_SYS_HYPERVISOR=y OTROS en hardy: CONFIG_XEN_XENBUS_DEV=y CONFIG_XEN_NETDEV_LOOPBACK=y CONFIG_XEN_FRAMEBUFFER=y CONFIG_XEN_KEYBOARD=y CONFIG_XEN_CONSOLE=y CONFIG_BLK_DEV_LOOP=m Compilamos el kernel: # make Si tiene dos nucleos: # make -j2 Compilamos e instalamos los modulos: # make modules_install install Veamos que se instalo la imagen del kernel, el System.map y config correspondientes a la versión 2.6.31.13: # ls -ltr /boot/ -rw-r--r-- 1 root root 3923616 2010-05-02 02:32 vmlinuz-2.6.31.13 -rw-r--r-- 1 root root 2027977 2010-05-02 02:32 System.map-2.6.31.13 -rw-r--r-- 1 root root 104620 2010-05-02 02:32 config-2.6.31.13 Se creó el directorio de modulos para el kernel: # ls /lib/modules/ 2.6.31.13 2.6.32-21-server Cambiamos permisos al directorio /usr/src: # ls -ld /usr/src drwxrwsr-x 5 root src 4096 2010-05-01 23:34 /usr/src # chmod g-s /usr/src -R # ls -ld /usr/src drwxrwxr-x 5 root src 4096 2010-05-01 23:34 /usr/src OPCIONALMENTE Creamos paquete: # make deb-pkg Instalamos los paquetes del kernel: # dpkg -i ../linux-image-2.6.31.13_2.6.31.13-6_amd64.deb Construimos dependencias de modulos: # depmod 2.6.31.13 Creamos initram para kernel de xen: # update-initramfs -c -k 2.6.31.13 ==Instalando Xen 4 desde las fuentes== # cd /usr/src # wget http://bits.xensource.com/oss-xen/release/4.0.0/xen-4.0.0.tar.gz # tar -zxvf xen-4.0.0.tar.gz # cd xen-4.0.0/ Editar archivo de grubconf: # vim tools/pygrub/src/GrubConf.py Aproximadamente en la linea 379 Cambiar: title_match = re.match('^menuentry "(.*)" (.*){', Por: title_match = re.match('^menuentry ["\'](.*)["\'] (.*){', l) Compilar el Hypervisor Xen: # make xen Ahora compilamos Xen Tools: # make tools OPCIONALMENTE Compilar Xen Stub Domains: # make stubdom NOTA: Al compilar stubdom va a requerir acceso a internet ya que se descargaran algunas bibliotecas. Instalar el hypervisor Xen: # make install-xen Instalar xen tools: # make install-tools PYTHON_PREFIX_ARG= OPCIONALMENTE instalar xen stub domains: # make install-stub Otras opciones de make: make help make clean Agregando el demonio xend y xendomains al arranque: # update-rc.d xend defaults 20 21 # update-rc.d xendomains defaults 21 20 Agregar entrada al menu de grub para arrancar el kernel 2.6.31.13 PVOPS: # vim /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the â??exec tailâ?? line above. menuentry 'Xen 4 / Ubuntu 10.04 LTS, Linux 2.6.31.13' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set 16e392a7-79be-47ea-82f7-d15fb4da3c79 multiboot (hd0,1)/xen.gz dummy=dummy module (hd0,1)/vmlinuz-2.6.31.13 dummy=dummy root=UUID=77eebfa4-b5fa-4781-8cc6-c53dd2afeeb7 ro module (hd0,1)/initrd.img-2.6.31.13 } Version origianl de /boot/grug/grub.conf menuentry 'Ubuntu, with Linux 2.6.32-21-server' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set 16e392a7-79be-47ea-82f7-d15fb4da3c79 linux /vmlinuz-2.6.32-21-server root=UUID=77eebfa4-b5fa-4781-8cc6-c53dd2afeeb7 ro quiet initrd /initrd.img-2.6.32-21-server } Ejecutar update-grub para actualizar el archivo /boot/grub/grub.cfg # update-grub Cambiar default: # vim /etc/default/grub de GRUB_DEFAULT=0 a GRUB_DEFAULT=6 NOTA: Si no configuró el nuevo kernel como default, presione la tecla shift antes de que grub inicie el kernel default para entrar al menú de grub2. Por default, la mayorÃa de distribuciones Linux solo permiten la creación de 8 dispositivos loop, los cuales son usados para usar imagenes de disco para las maquinas virtuales. Para permitir la creación de más de 8 dispositivos loop agregue la opción max_loop al modulo loop, usando los archivos en el directorio /etc/modprobe.d/por ejemplo: # echo "options loop max_loop=128" > /etc/modprobe.d/loop Ahora si re inicie el sistema para arrancar con el kernel pvops: # reboot ==Iniciando el sistema con soporte Xen Dom0 PVOPS== Si el sistema inicio correctamente, y se nos presenta el shell, debemos verificar cierta información para confirmar que la instalación del kernel pvos y Xen 4.0.0 fué exitosa: Validando la versión del kernel: # uname -a Linux xh4l.example.com 2.6.31.13 #6 SMP Sun May 2 12:07:14 CDT 2010 x86_64 GNU/Linux Note que ya muestra un kernel 2.6.31.13 SMP X86_64 lo cual indica que todo fue bien. Ahora verifiquemos que el demonio xend este iniciado: # ps -fea | grep xend root 3365 1 0 13:51 ? 00:00:00 /usr/bin/python /usr/sbin/xend start root 3366 3365 0 13:51 ? 00:00:00 /usr/bin/python /usr/sbin/xend start Perfecto, el demonio si esta en ejecución, ahora veamos si nos podemos comunicar con xend a través del comando xm, por ejemplo: Consultando la información de Xen con el comando xm info: # xm info host : xh4l.example.com release : 2.6.31.13 version : #6 SMP Sun May 2 12:07:14 CDT 2010 machine : x86_64 nr_cpus : 2 nr_nodes : 1 cores_per_socket : 2 threads_per_core : 1 cpu_mhz : 2611 hw_caps : 178bf3ff:ebd3fbff:00000000:00000010:00002001:00000000:0000011f:00000000 virt_caps : hvm total_memory : 1772 free_memory : 129 node_to_cpu : node0:0-1 node_to_memory : node0:129 node_to_dma32_mem : node0:129 max_node_id : 0 xen_major : 4 xen_minor : 0 xen_extra : .0 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler : credit xen_pagesize : 4096 platform_params : virt_start=0xffff800000000000 xen_changeset : unavailable xen_commandline : cc_compiler : gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) cc_compile_by : root cc_compile_domain : example.com cc_compile_date : Sun May 2 13:10:40 CDT 2010 xend_config_format : 4 En la salida anterior podemos ver información importante sobre el sistema, por ejemplo: virt_caps : hvm El sistema tiene soporte para full virtualization total_memory : 1772 El sistema tiene un total de memoria de 1772. free_memory : 129 El sistema Dom0 tiene 129 MB libres. xen_major : 4 La versión mayor del hypervisor es 4. xen_minor : 0 La versión meno del hypervisor es 0. xen_extra : .0 La versión extra del hypervisor es 0. xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 El hypervisor soporta las capacidades para ejecutar maquinas: xen-3.0-x86_64 - PV 64bit xen-3.0-x86_32p - PV 32bit con PAE hvm-3.0-x86_32 - HVM 32bit hvm-3.0-x86_32p - HVM 32bit con PAE hvm-3.0-x86_64 - HVM 64bit xend_config_format : 4 El formato de configuración predeterminado es la 4. Ahora usemos el comando xm con la opción list para ver las maquinas virtuales en ejecución: # xm list Name ID Mem VCPUs State Time(s) Domain-0 0 1829 2 r----- 22.4 ==Configurando la red de Xen en modo bridge o switch virtual== Xen por default crea un bridge usando la primer interfaz de red detectada, por ejemplo eth0, En este caso vamos a manejar el bridge de red usando las configuraciones de Debian/Ubuntu usando el archivo /etc/network/interfaces, por ejemplo: # vim /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto br0 iface br0 inet static address 192.168.1.45 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off Re iniciar el servicio de red: # /etc/init.d/networking restart Edite el archivo de configuración del demonio xend para desactivar la creación del bridge. # vim /etc/xen/xend-config.sxp #(network-script network-bridge) Re inicie el sistema para que xend cargue sin la creación del bridge. Verificar la configuración de las interfaces de red: # ifconfig Verificar la configuración del bridge: # brctl show En las siguientes secciones veremos como crear maquinas virtuales en diferentes modos. ==Instalación y configuración de xen-tools para creación DomUs== Instalando las dependencias de compilación y ejecución de xen-tools: # apt-get install libtest-pod-perl libtext-template-perl debootstrap \ perl-modules libtext-template-perl libconfig-inifiles-perl libfile-slurp-perl Descargamos e instalamos xen-tools: # cd /usr/src/ # git clone git://gitorious.org/xen-tools/xen-tools.git # cd xen-tools/ # make install El directorio principal de configuración de xen-tools es /etc/xen-tools, en dicho directorio encontramos los hooks en el subdirectorio hooks.d, los esquemas de particionamiento en el directorio partitions.d, los roles en el directorio roles.d. En el directorio /usr/lib/xen-tools se crearon las plantillas para la creación de VMs, encontramos plantillas para centos4, centos5, fedora4-13, Debian sarge,etch,lenny,squeeze, sid y testing, gentoo, Ubuntu dapper, edty, feisty, gutsy, hardy, intrepid, jaunty, karmic y lucid. Las páginas del manual se instalaron en el directorio /usr/share/man/man8. Creando directorio de imagenes: # mkdir /var/xenimages Creando una maquina virtual basada en archivos de imagen: Que se necesita para crear una VM? Nombre de la maquina virtual: --hostname Tipo de configuración de red: --dhcp, --ip Directorio para almacenar las imagenes: --dir Tamaño para el disco raÃz: --size? Tamaño para el disco swap: ?? Memoria RAM asignada: --mem?? Archivo del kernel a usar? --kernel? Archivo de la imagen initrd: --initrd?? Por ejemplo, para crear una maquina virtual basada en archivos de imagen, con configuración DHCP y con el nombre test use el comando: # xen-create-image --hostname test --dhcp --dir=/var/xenimages/ General Information -------------------- Hostname : test Distribution : lucid Partitions : swap 128Mb (swap) / 4Gb (ext3) Image type : sparse Memory size : 128Mb Kernel path : /boot/vmlinuz-2.6.31.13 Initrd path : /boot/initrd.img-2.6.31.13 Networking Information ---------------------- IP Address : DHCP [MAC: 00:16:3E:9E:45:7D] ... ... El comando anterior creó el archivo de configuración /etc/xen/test.cfg, por ejemplo: # cat /etc/xen/test.cfg ==Recursos adicionales== What is Xen?: http://wiki.xensource.com/xenwiki/XenOverview Xen.org History: http://www.xen.org/community/xenhistory.html Xen dom0 kernels: http://wiki.xensource.com/xenwiki/XenDom0Kernels Xen Hypervisor Boot Options: http://wiki.xensource.com/xenwiki/XenHypervisorBootOptions Xen Kernel Features: http://wiki.xensource.com/xenwiki/XenKernelFeatures Best Practices for Xen: http://wiki.xensource.com/xenwiki/XenBestPractices Configuring Xen to use and log to a serial console: http://wiki.xensource.com/xenwiki/XenSerialConsole Answers to some common problems and questions about Xen: http://wiki.xensource.com/xenwiki/XenCommonProblems Xen Configuration File Options: http://wiki.xensource.com/xenwiki/XenConfigurationFileOptions Steps to try Xen 4.0.0 Release Candidate 8 on Ubuntu Lucid 10.04 64 Bits: http://blog.xen.org/index.php/2010/03/26/steps-to-try-xen-4-0-0-release-candidate-8-on-ubuntu-lucid-10-04-64-bits/ Running Xen 4.0.0-rc8 with Linux 2.6.32.10 paravirt_ops dom0: http://lists.xensource.com/archives/html/xen-users/2010-03/msg00878.html xen-tools: http://xen-tools.org/software/xen-tools/ http://gitorious.org/xen-tools Experimental Xen and Ubuntu. Part 1: kernel: http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-1.html Experimental Xen and Ubuntu. Part 2: hypervisor: http://virtually-a-machine.blogspot.com/2009/12/experimental-xen-and-ubuntu-part-2.html Attachment:
signature.asc _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |