martes, 7 de marzo de 2017

Como reinstalar xen server y preservar las maquinas virtuales en el Local storage

La semana pasada me paso que el XenServer de mi trabajo se le reventó un disco duro. No se que fue, pero quedo roto el disco duro justo del sistema operativo xen. 

Eran dos discos y estaban con raid 1. Recupere el raid colocando un disco duro nuevo, y realizando las configuraciones necesarias. Enciendo el servidor, y salta un error de xen server:

Cannot load XAPI no se que..

-A buenooo se revento todooo...

Buscando encontré que la base de datos de xen server estaba corrupta.. que bueno. Lo que hice para recuperar el servicio fue renombrar la base vieja y levantar el servicio xapi. Entonces cuando se levanto xapi creo una base nueva. 

xe-toolstack-restart
cd /var/xapi/
ls -al
mv state.db state.db_bak
service xapi restart

Ahí me pude conectar con la consola de xen server, pero no me figuraba ninguno de los servidores, ni tampoco los local storage (El lugar donde están las vm). Justamente los local storage eran unos discos apartes que se encontraban en el servidor. 

Lo que hice básicamente fue seguir este tutorial de xen server:

Con pvscan, escanea todos los phisical volumes:

[root@xenserver dev]# pvscan
  PV /dev/sdb   VG VG_XenStorage-15f8cab5-0a5f-d721-3c8f-288230bba4cd   lvm2 [1.82 TB / 656.44 GB free]
  PV /dev/sdc   VG VG_XenStorage-15f8cab5-0a5f-d721-3c8f-288230bba4cd   lvm2 [1.82 TB / 860.52 GB free]
  Total: 2 [3.64 TB] / in use: 2 [3.64 TB] / in no VG: 0 [0   ]

Y con este comando re introduce el SR en la base de datos de xen server llamándolo "local storage". Fijarse que el uuid indicado es el mismo que el detectado por el pvscan.

[root@xenserver dev]# xe sr-introduce uuid=15f8cab5-0a5f-d721-3c8f-288230bba4cd type=lvm name-label=”Local storage” content-type=user

En este directorio vemos los discos y particiones que hay en el servidor.

[root@xenserver dev]# ll /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Feb 22 12:34 scsi-36b8ca3a0e9b0fc0019cc2d3465392315 -> ../../sda
lrwxrwxrwx 1 root root 10 Feb 22 12:34 scsi-36b8ca3a0e9b0fc0019cc2d3465392315-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Feb 22 12:34 scsi-36b8ca3a0e9b0fc0019cc2d3465392315-part2 -> ../../sda2
lrwxrwxrwx 1 root root  9 Feb 22 12:34 scsi-36b8ca3a0e9b0fc0019cc2dfd712fa3bf -> ../../sdb
lrwxrwxrwx 1 root root  9 Feb 22 12:34 scsi-36b8ca3a0e9b0fc0019cc2e2673a81a1a -> ../../sdc


Con este comando vemos el uuid del host

[root@xenserver dev]# xe host-list
uuid ( RO)                : a860dc97-a6ea-46cd-8eba-fd1b17f5b004
          name-label ( RW): xenserver
    name-description ( RW): Default install of XenServer


Crear el PBD usando el device SCSI ID, host UUID y SR UUID detectados

[root@xenserver dev]# xe pbd-create sr-uuid=15f8cab5-0a5f-d721-3c8f-288230bba4cd device-config:device=/dev/disk/by-id/scsi-36b8ca3a0e9b0fc0019cc2dfd712fa3bf host-uuid=a860dc97-a6ea-46cd-8eba-fd1b17f5b004
f6c5f60f-5903-5cdd-4c5d-8380ba9fe21c


Adjuntar el PBD

[root@xenserver dev]# xe pbd-plug uuid=f6c5f60f-5903-5cdd-4c5d-8380ba9fe21c


Ahora lo que vamos a hacer es crear una vm nueva, sin disco duro, y a esa vm adjuntarle el disco duro de la vm que queríamos restaurar en este caso es Windows Server 2008 (64-bit) 0 . 

Para eso tenemos que ejecutar un comando que asociara la vm con el disco duro. 

Primero ver los uuid de las VM que queremos restaurar, recordarlo.

[root@xenserver xapi]# xe vdi-list

uuid ( RO)                : 494d09b9-0a92-4045-bf41-b22f03dc2b3a
          name-label ( RW): Windows Server 2008 (64-bit) 0
    name-description ( RW): Created by template provisioner
             sr-uuid ( RO): 15f8cab5-0a5f-d721-3c8f-288230bba4cd
        virtual-size ( RO): 268435456000
            sharable ( RO): false
           read-only ( RO): false


Ver el uuid de la VM en la interfaz de xen server. 

Despues ejecutar este comando, donde vdi-uuid es el visto con el comando xe vdi-list y vm-uuid es el visto en la interfaz de xen server.

[root@xenserver xapi]# xe vbd-create vdi-uuid=494d09b9-0a92-4045-bf41-b22f03dc2b3a vm-uuid=2d46141e-d832-e891-b42f-7d4500839c51 type=Disk device=hda bootable=true mode=rw
357aa2f6-7aa1-79ef-5857-53be650c9c09


Para ver todos los templates ejecutamos
/opt/xensource/libexec/create_templates

Fuente: