Multipath se puede utilizar para redundancia y para mejorar el rendimiento. En esta simulación de laboratorio vamos a optar por redundancia de un disco y simular que se corta la comunicación.
Hola amigo. Si no tienes Qemu instalado en el sistema puedes mirar este post en el que se indica como puedes compilar la última versión.
Lo importante es disponer de Qemu para proceder a realizar esta simulación en un entorno de laboratorio.
Creamos una imagen de disco en formato raw y otra en qcow2 para el sistema operativo (debian 11):
$ qemu-img create -f raw disk.raw 20G
$ qemu-img create -f qcow2 sistema.qcow 15G
Posteriormente vamos a arrancar así (necesitaremos una iso de debian para instalar el sistema):
$ qemu-system-x86_64 -hda sistema.qcow -device virtio-scsi-pci,id=scsi -drive if=none,id=hdb,file=disk.raw,cache=none,format=raw,file.locking=off -device scsi-hd,drive=hdb,serial=a2asdq34addd13fee4f2027800011011 -drive if=none,id=hdc,file=disk.raw,cache=none,format=raw,file.locking=off -device scsi-hd,drive=hdc,serial=a2asdq34addd13fee4f2027800011012 -m 4096M -enable-kvm -smp $(nproc) -cdrom debian-11.2.0-amd64-netinst.iso -boot d
Cuando llegamos a la zona del instalador en debian en la que tenemos que elegir en que disco duro queremos instalar el sistema veremos algo así:
Lo instalamos en el disco duro de 15G (el que hemos preparado para contener el sistema, que saldrá indicado como ATA).
Una vez termina la instalación arrancamos la máquina virtual sin el cdrom así:
$ qemu-system-x86_64 -hda sistema.qcow -device virtio-scsi-pci,id=scsi -drive if=none,id=hdb,file=disk.raw,cache=none,format=raw,file.locking=off -device scsi-hd,drive=hdb,serial=a2asdq34addd13fee4f2027800011011 -drive if=none,id=hdc,file=disk.raw,cache=none,format=raw,file.locking=off -device scsi-hd,drive=hdc,serial=a2asdq34addd13fee4f2027800011012 -m 4096M -enable-kvm -smp $(nproc)
Una vez arranca el sistema vamos a comprobar con «lsblk» los dispositivos y luego instalamos multipath:
# lsblk# apt install multipath-tools multipath-tools-boot -y
Tendríamos que ver 3 discos (sda, sdb y sdc). Uno de ellos (en este caso sdc) tendrá los LV creados durante la instalación del sistema. Ese es el disco del sistema.
Vamos a instalar lsscsi para obtener el WWID de los diferentes discos:
# apt install lsscsi
# lsscsi --scsi_id
Crearemos un archivo (si no existe) con la siguiente configuración en /etc/multipath.conf
defaults {
user_friendly_names yes
find_multipaths yes
path_selector "round-robin 0"
}
blacklist {
devnode "sdc"
}
multipaths {
multipath {
wwid "SQEMU_QEMU_HARDDISK_a2asdq34addd13fee4f2027800011011"
alias volumen01
}
multipath {
wwid "0QEMU_QEMU_HARDDISK_a2asdq34addd13fee4f2"
alias volumen02
}
}
Hacemos un reload del servicio o reiniciamos la máquina.
Si todo va bien tendríamos que tener ya el disco presentado y visible así:
$ multipath -ll
Se puede formatear ahora /dev/mapper/volumen02 sin problema y montarlo en algún lado /por ejemplo en /mnt/volumen02
# mkfs.ext4 /dev/mapper/volumen02
# mkdir -p /mnt/volumen02
# mount /dev/mapper/volumen02 /mnt/volumen02
Una vez montado podemos escribir algunos archivos al disco si queremos. Y comprobar cual es la ruta activa actualmente.
Entonces tiramos la ruta desde la consola de monitorización de qemu:
> drive_del hdb
Eso ha de escribirse en la consola monitor de la máquina virtual. No en el sistema debian.
Estamos digamos «tirando el cable» de conexión y tendría que ponerse como activo sdb
De esta forma simulamos esa redundancia y podemos probarlo. Se puede ver en la captura que status=active ha cambiado.
Espero le gustase esto y fuese de su utilidad.
Saludos cordiales.