¿Cómo recuperar discos locales en XenServer?
Hola de nuevo. Soy Ferran Serafini y como cada miércoles estoy aquí para hablarte sobre Citrix XenServer y Xen OpenSource.
Hoy os explicare como recuperar un disco local tras una corrupción o “desaparición” del mismo. Como muchos ya sabéis, para el storage local XenServer utiliza por defecto volúmenes LVM y por lo tanto los que ya estéis familiarizados con los comandos que nos brindan para su gestión, veréis que es muy sencillo.
Haciendo un df –h en un dom0 se entiende mejor:
[root@xenserver~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 4.0G 2.5G 1.3G 67% /
none 380M 0 380M 0% /dev/shm
/dev/mapper/XSLocalEXT–b9b12d0b–f4bb–6d2c–c8c5–e8ff1c111d6b-b9b12d0b–f4bb–6d2c–c8c5–e8ff1c111d6b 59G 9.5G 46G 18% /var/run/sr-mount/b9b12d0b-f4bb-6d2c-c8c5-e8ff1c111d6b
Primeramente hay que entender cómo se organiza el disco local. La primera partición /dev/sda1 de aproximadamente 4 GB se utiliza como disco del sistema. Es un filesystem ext3 normal donde hay todos los binarios, kernel, boot, etc. El resto del disco se destina como contenedor de máquinas virtuales (SR) montado sobre LVM por ejemplo /dev/mapper/XSLocalEXT–b9b12d0b–f4bb–6d2c–c8c5–e8ff1c111d6b-b9b12d0b–f4bb–6d2c–c8c5–e8ff1c111d6b
Si por ejemplo hemos dejado de ver este disco, ejecutamos:
[root@xenserver~]# pvscan
PV /dev/sda3 VG XSLocalEXT-e2677b7a-b86d-80f3-c1e1-dbaefa86e6db lvm2 [59.04 GB / 0 free]
PV /dev/dm-2 VG VG_XenStorage-a5c56e04-396e-cfa6-10ed-5120cd30e62b lvm2 [1.46 TB / 143.00 GB free]
PV /dev/dm-0 VG VG_XenStorage-0fbc0f26-e6e7-aa55-ad53-b411b885dc84 lvm2 [199.99 GB / 21.96 GB free]
Total: 3 [1.72 TB] / in use: 3 [1.72 TB] / in no VG: 0 [0 ]
En negrita he marcado el disco local que habíamos perdido, se diferencia de los otros por ser /dev/sda3, esto nos indica que es una partición local.
Ahora, vamos a aplicar el comando xe sr-introduce que nos permite introducir discos al servidor XenServer especificando que introduzca este disco:
xe sr-introduce uuid=e2677b7a-b86d-80f3-c1e1-dbaefa86e6db type=ext name-label=»Local storage» content-type=user
Como veis el uuid que he utilizado es el mismo que está grabado en el nombre del volume group: XSLocalEXT-e2677b7a-b86d-80f3-c1e1-dbaefa86e6db
Si todo va bien, nos tiene que contestar el sr-uuid del disco introducido (lo usaremos más adelante):
e2677b7a-b86d-80f3-c1e1-dbaefa86e6db
Con esto, deberíamos poder ver el dispositivo:
[root@xenserver /]# ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 9 Jul 12 13:19 scsi-3600508e000000000f48d767e58452709 -> ../../sda
lrwxrwxrwx 1 root root 10 Jul 12 13:19 scsi-3600508e000000000f48d767e58452709-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jul 12 13:19 scsi-3600508e000000000f48d767e58452709-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jul 12 13:19 scsi-3600508e000000000f48d767e58452709-part3 -> ../../sda3
lrwxrwxrwx 1 root root 9 Jul 12 13:20 scsi-360060160e520260010e36056db69e111 -> ../../sdb
lrwxrwxrwx 1 root root 9 Jul 12 13:20 scsi-360060160e5202600a00f2d9e88d8e011 -> ../../sdc
Como se puede ver, el disco sda3 está enlazado como scsi-3600508e000000000f48d767e5845 2709-part3
Ahora configuramos el pbd para que el host ya lo pueda usar como un SR local normal. El sr-uuid, también lo tenemos (e2677b7a-b86d-80f3-c1e1-dbaefa86e6db). Identificamos el uuid del host donde está el disco con xe host-list y una vez lo tengamos, ejecutamos:
xe pbd-create sr-uuid=e2677b7a-b86d-80f3-c1e1-dbaefa86e6db device-config:device= /dev/disk/by-id/scsi-3600508e000000000f48d767e58452709-part3 host-uuid=d344327d-39d2-4a06-b382-649373caa350
Ya solo falta connectarlo para que sea operativo:
xe pbd-plug uuid=3817bf27-4869-7e4d-3eba-fdc861efbccb
Con esto ya volvemos a tener el disco operativo de nuevo y también, me despido hasta la semana que viene, espero como siempre que el artículo haya sido de tu interés y haya podido ayudarte en tu día a día con XenServer. Nos vemos!. Saludos
Si te ha gustado este articulo, por favor,compártelo en Twitter o en Facebook con los botones de abajo. Muchas gracias por tu apoyo!