Call Us! 1-800-555-5555

Xen

Montaje de archivos de filesystem de un DomU

Para poder montar un fichero de filesystem de un DomU de Xen, si este fichero contiene todo el disco, es decir, hemos creado particiones para el raiz, swap, etc, tendemos que hacer un offset en el momento de montar la partición que no interese.

Primero averiguamos el bloque a partir del cual tenemos que montar:

# fdisk -lu disk0.raw

You must set cylinders.
You can do this from the extra functions menu.

Disk disk0.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x000b9129

Device Boot      Start         End      Blocks   Id  System
disk0.raw1              63     3630689     1815313+  82  Linux swap / Solaris
disk0.raw2   *     3630690    29350754    12860032+  83  Linux

La partición empieza en 3630690, lo multiplicamos por el tamaña de bloque, 512 y tenemos el bloque de inicio, 3630690*512=1858913280.

Y ahora montamos:

# mount -o loop,offset=1858913280 -t reiserfs disk0.raw /mnt

Post to Twitter

Creación de Debian Squeeze domU amd64 sobre SLES 11

Una forma limpia y simple de crear un domU de Debian Squeeze AMD64 es usar la herramienta debootstrap. Esta no esta incluida, por supuesto, en SLES 11, pero es relativamente portar desde una distribución Debian a una SLES casi de cualquier versión.

Sobre una distribución Debian, hacemos lo siguiente:

{codecitation}

# wget -c http://ftp.es.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.23_all.deb

# alien -r debootstrap_1.0.23_all.deb

{/codecitation}

Ahora copiamos e instalamos en el sistema SLES 11:

{codecitation}

# rpm -ivh debootstrap-1.0.23-2.noarch.rpm

{/codecitation}

Con la herramienta ya instalada, preparamos un disco virtual para la instalación del sistema, de forma simple creamos un fichero para nuestro disco raiz con el tamaña que necesitemos, por ejemplo, un disco de 10GB:

{codecitation}

# dd if=/dev/zero of=squeeze.root.raw bs=1M count=10240

# dd if=/dev/zero of=squeeze.swap.raw bs=1M count=2048

# mke2fs -j squeeze.root.raw

# tune2fs -c0 -i0 squeeze.root.raw

# mkswap -f squeeze.swap.raw

{/codecitation}

Y ahora hacemos Debootstrap del sistema:


Read More

Post to Twitter

Creación domU: Ubuntu Lucid amd64 sobre SLES 11

Una forma limpia y simple de crear un domU de Debian Squeeze AMD64 es usar la herramienta debootstrap. Esta no esta incluida, por supuesto, en SLES 11, pero es relativamente portar desde una distribución Debian a una SLES casi de cualquier versión.

Sobre una distribución Debian, hacemos lo siguiente:

{codecitation}

# wget -c http://ftp.es.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.23_all.deb

# alien -r debootstrap_1.0.23_all.deb

{/codecitation}

Ahora copiamos e instalamos en el sistema SLES 11:

{codecitation}

# rpm -ivh debootstrap-1.0.23-2.noarch.rpm

{/codecitation}

Con la herramienta ya instalada, preparamos un disco virtual para la instalación del sistema, de forma simple creamos un fichero para nuestro disco raiz con el tamaña que necesitemos, por ejemplo, un disco de 10GB:

{codecitation}

# dd if=/dev/zero of=squeeze.root.raw bs=1M count=10240

# dd if=/dev/zero of=squeeze.swap.raw bs=1M count=2048

# mke2fs -j squeeze.root.raw

# tune2fs -c0 -i0 squeeze.root.raw

# mkswap -f squeeze.swap.raw

{/codecitation}

Y ahora hacemos Debootstrap del sistema:

 

Read More

Post to Twitter

SLES 11 SP1, Xen PCI Passthrough

De forma nativa los dominios no privilegiados, DomU, de Xen no son capaces de trabajar directamente con ningún dispositivo físico (es un fundamento de la virtualización).  Pero en ocasiones podemos necesitar interactuar con algún dispositivo físico de forma directa, por ejemplo, mapear una ethernet directamente a un DomU. Esto lo realizamos mediante un modulo del núclo de Linux, pciback. En SLES 11 dicho módulo no esta compilado dentro del núcleo, por lo que tendremos que usar la imagen initrd para pasarle los parametros adecuados en el arranque.

Lo primero será identificar el ID del dispositivo que queremos mapear:

{codecitation}

# lscpi | grep Ethernet

02:00.0 Ethernet controller: Atheros Communications L1 Gigabit Ethernet (rev b0)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
03:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

# lspci -n | grep 03:00.0

03:00.0 0200: 10ec:8029

{/codecitation}

El dispositivo que queremos mapear es el 03:00.0, entonces modificaremos el fichero /etc/modprobe.conf.local añadiendo las siguientes opciones:

{codecitation class=”highlight:1″}

# /etc/modprobe.conf.local

options pciback permissive hide=(0000:03:00.0)
install ne2k-pci /sbin/modprobe pciback ; /sbin/modprobe –first-time –ignore-install ne2k-pci
options netloop nloopbacks=1

{/codecitation}

La configuración representa que hacemos un mapeo del dispositivo, justo antes de cargar el modulo (ne2k-pci) que gestiona dicho dispositivo. Observar que al módulo pciback le pasamos la opción permissive. Sin esta opción, el dominio domU no tendra permisos de rw sobre el diispositivo, provocando un error de ste tipo:

Read More

Post to Twitter