viernes, 10 de agosto de 2012

Usar imagenes ISO almacenadas en un USB en XenServer

Montar imágenes ISO desde un USB para usar en XenCenter


Estoy preparando una demo para un cliente y he necesitado poner imágenes ISO que tengo en un Pen drive para usarlas en las maquinas virtuales que tengo en un XenServer. Al principio parecía que con poner el USB en el servidor era suficiente.

Se identifica el USB pero no se ven las ISO que hay dentro.

Pasos para usar el Pen drive


1. Formatear el Pen drive en formato ext3. (/dev/sdb en mi caso)

mkfs.ext3 /dev/sdb


2. Colocamos las imágenes ISO en el pen drive.
3. Ponemos el Pen drive en el servidor.


4. Listamos los discos que ve el servidor e identificamos el disco usb.
ls -l /dev/disk/by-id 
lrwxrwxrwx 1 root root  9 Aug  8 10:15 scsi-SATA_ADATA_S596_TurbWWWWWWW-WWWW-777809B -> ../../sda
lrwxrwxrwx 1 root root 10 Aug  8 10:15 scsi-SATA_ADATA_S596_TurbWWWWWWW-WWWW-777809B-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Aug  8 10:15 scsi-SATA_ADATA_S596_TurbWWWWWWW-WWWW-777809B-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug  8 10:15 scsi-SATA_ADATA_S596_TurbWWWWWWW-WWWW-777809B-part3 -> ../../sda3
lrwxrwxrwx 1 root root  9 Aug  8 10:15 scsi-SATA_WDC_WD5000AAKX-_WD-WCAYUE088182 -> ../../sdb
lrwxrwxrwx 1 root root  9 Aug 10 12:15 usb-LG_USB_Drive_AA04012700013275 -> ../../sdc
5. Creamos el directorio para el montaje del Pen drive en el servidor.
mkdir /mnt/usb01
6. Montamos el Pen drive en el directorio generado.
mount /dev/sdc /mnt/usb01/
7. Generamos un uuid para identificar el disco nuevo. Nos devuelve un churro enorme.
uuidgen
401f2d85-48a1-497e-aef9-d8628c0d653b
Podemos preguntar por los argumentos que le podemos pasar al comando xe usando el formato xe help comando por ejemplo xe help pbd-create.

8. Definimos un nuevo disco duro con la etiqueta MIUSB, de tipo ISO y con este uuid que acabo de generar.
xe sr-introduce name-label=“MIUSB” content-type=iso shared=false type=iso uuid=401f2d85-48a1-497e-aef9-d8628c0d653b
responde con el uuid
401f2d85-48a1-497e-aef9-d8628c0d653b

9. Le decimos el servidor que este uuid sea auto escaneado.

xe sr-param-set other-config:auto-scan=true uuid=401f2d85-48a1-497e-aef9-d8628c0d653b
10. En el XenCenter podemos ver el nuevo Storage.


11.  Buscamos el uuid del servidor Xen.
xe host-list
uuid ( RO)    : c22e2cb1-7d16-48ca-ac3e-6ee10963a79c
name-label ( RW): XXXXXXXXX
name-description ( RW): Default install of XenServer
11. Le decimos al servidor Xen que tiene un nuevo storage y donde localizarlo.
xe pbd-create host-uuid="c22e2cb1-7d16-48ca-ac3e-6ee10963a79c" sr-uuid=401f2d85-48a1-497e-aef9-d8628c0d653b device-config:location="/mnt/usb01/" device-config:options="-o bind"
devuelve un uuid
254023d8-fdf4-f8c9-eb96-cf368da9217d
12. Usamos el uuid devuelto para que monte el disco nuevo.
xe pbd-plug uuid=254023d8-fdf4-f8c9-eb96-cf368da9217d


13. Ya podemos ver las imágenes ISO del usb.

Script:
#!/bin/bash

UUID=`uuidgen`
HOSTID=`xe host-list | grep uuid | cut -d':' -f2 | cut -d' ' -f2`
xe sr-introduce name-label=“MIUSB” content-type=iso shared=false type=iso uuid=$UUID
xe sr-param-set other-config:auto-scan=true uuid=$UUID
RESULTID=`xe pbd-create host-uuid=$HOSTID sr-uuid=$UUID device-config:location="/mnt/usb01/" device-config:options="-o bind"`
xe pbd-plug uuid=$RESULTID