Cómo añadir un disco a un sistema Linux que corre sobre VMWare sin reiniciar la máquina.
Con la llegada de los entornos virtuales llegaron nuevos desafíos, como por ejemplo, cómo añadir un disco a una máquina virtual encendida y hacer que esta lo detecte sin tener que reiniciar la máquina.
Para añadr un disco a una máquina virtual Linux que corra sobre VMware, lo primero que debemos hacer es añadir un disco a dicha máquina desde el hipervisor.
Al añadir un disco en caliente, Linux no se dará cuenta de que se le ha conectado nuevo hardware hasta que se lo indiquemos. Para ello, debemos usar sysfs para decirle al kernel que rescanee los buses (o channels, en terminología SCSI) con el fin de que el sistema operativo pueda ver el nuevo disco.
Método manual
Con el comando lsscsi, listamos todos los dispositivos SCSi detectados por el sistema:
HOST# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
Entre corchetes, encontraremos 4 números representados como [ <H> <C> <T> <L> ]
- <H> es el host adapter
- <C> es el channel (bus) en el host adapter.
- <T> es el target ID.
- <L> es el Logical Unit Number.
A continuación, buscaremos a qué host adapter está conectado el disco que acabamos de añadir:
HOST# grep mpt /sys/class/scsi_host/host?/proc_name
/sys/class/scsi_host/host2/proc_name:mptspi
Con el comando anterior, hemos visto que el disco está conectado al host2. Ahora le diremos al kernel que reescanee todos los controladores de ese host adapter:
HOST# echo "- - -" > /sys/class/scsi_host/host2/scan
Los tres valores "- – -" representan:
- Channel (bus)
- SCSI target ID
- LUN
Los guiones son comodines que significan "reescanea todo".
Después del escaneo, comprobamos que el sistema operativo ya ve el disco:
HOST# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda
[2:0:1:0] disk VMware, VMware Virtual S 1.0 /dev/sdb
Alternativa: rescan-scsi-bus.sh
Alternativamente, podemos reescanear los adaptadores SCSI con el comando rescan-scsi-bus.sh del paquete sg3_utils. Este script hace todo el proceso anterior automáticamente:
HOST# rescan-scsi-bus.sh -a
Alguna gente es crítica con este script, quejándose de que a veces falla. Personalmente, debo decir que siempre que lo he usado me ha funcionado la mar de bien.
Fuentes:
http://systemadmin.es/2017/06/hacer-un-rescan-de-discos-iscsi
https://ssh.guru/adding-and-removing-disks-from-linux-guest/
https://blog.fpmurphy.com/2017/05/adding-and-removing-disks-from-vmware-rhel7-guests...
0 comentarios:
Publicar un comentario