05 enero 2010

Borrado de dispositivos SCSI de una LUN.

Recientemente nos hemos encontrado con que después de presentar una lun de una SAN en uno de nuestros servidores linux nos piden que la borremos y que presentemos el almacenamiento dividido en dos luns.

Se nos planteaban dos problemas:
  1. ¿Cómo borramos el dispositivo sin que afecte al sistema?
  2. ¿Si desaparece la letra de unidad creada, cómo afecta esto a las nuevas unidades cuando reescaneemos de nuevo las hba?

La solución es bien sencilla. Si hace poco tiempo (el tiempo siempre viene dado en términos relativos a cada servidor) que hemos escaneado los dispositivos scsi, podemos encontrarnos con el nuevo dispositivo y su "host, channel, id, y lun" y su letra de unidad, simplemente ejecutando "dmesg" por ejemplo:


Una vez localizado qué dispositivo queremos borrar tenemos que buscar el comando scsi de borrado, que lo tenemos bajo el directorio /sys.

Debemos buscarlo con el comando "find /sys -name delete". El resultado que nos podemos encontrar puede ser similar a esto:


Lo único que hay que hacer ahora para borrar el dispositivo es un echo 1 a la ruta que hemos encontrado. Si ahora ejecutáramos fdisk -l nos encontraríamos que ha desaparecido la letra de unidad que se corresponde con el identificador scsi que hemos borrado.

Si tuviéramos los dispositivos con multipath deberíamos borrar todos los dispositivos.

Después de realizar este procedimiento, se evitan problemas en el arranque del sistema, puesto que cuando arranca el sistema escanea los dispositivos scsi de nuevo, y no sabe nada de letras de unidad, las asigna correlativas, se puede montar un buen jaleo el fstab con las unidades que tiene que montar.

De todos modos este problema es evitable utilizando LVM, ya que de esta manera es la capa de LVM la que se queda con información del dispositivo que está utilizando mediante su UUID no necesitando las letras de unidad.

2 comentarios:

Unknown dijo...

A ver Mr danger, te lo pongo por aqui, tu ya sabes por que...

Una forma más sencilla de revisar el asunto este y asociar dispositivo con Lun (te advierto que yo siempre hago un find como un mundo del fichero delete)

# ls -l /sys/block/sda/device

lrwxrwxrwx 1 root root 0 2010-01-05 10:38 /sys/block/sda/device -> ../../devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0

Y hasta aqui puedo leer, no diré más

jmcalvar dijo...

Si señor, en realidad supongo que también se puede hacer:
#echo 1 /sys/block/sdl/device/delete y debería funcionar, pero esto de ser viejuno me obliga a hacerlo de la otra manera ;-)