Virtualización con KVM y libvirt: clonación, redes, almacenamiento e iSCSI
Classified in Technology
Written on in
English with a size of 3.94 KB
1. Clonación de máquinas virtuales
ssh root@dirección
virt-clone --original ESTACION1 --name ESTACION2 --file /var/lib/libvirt/estacion2.qcow2 --mac RANDOM
Comprobarlo: virsh dumpxml ESTACION1 | grep 'mac'
2. Configuración de una red virtual
virsh net-dumpxml default > red2.xml
vi red2.xml
<name>RED2</name> (nombre)
<forward mode='nat'/> (tipo de envío; puede cambiarse a route si es enrutada o bridge si es de tipo bridge)
<bridge name='virbr2' stp='on' delay='0'/> (a dónde se asocia el switch)
<ip address='192.168.200.1' netmask='255.255.255.0'> (dirección IP de la red)
<range start='192.168.200.20' end='192.168.200.254'/> (rango de IPs de la red)
virsh net-define red2.xml
virsh net-start RED2
virsh net-autostart RED2
Conectar la red a una máquina (si se solicita):
virsh attach-interface --domain nombre --type tipo_de_conexion (network) --source red_conexion (RED2) --model virtio --config --live
3. Creación de un pool de almacenamiento
mkdir /var/lib/libvirt/imagenes/contexa
fdisk /dev/sda (si se solicita)
mkfs.ext4 /dev/sda
virsh pool-define-as CONTEXA --type fs --source-dev /dev/sda --source-format ext4 --target /var/lib/libvirt/imágenes/contexa
(Si es de tipo dir, solo se deja el target; si es de tipo netfs, se cambian dev y format por host (IP) y path)
virsh pool-build CONTEXA
virsh pool-start CONTEXA
virsh pool-autostart CONTEXA
4. Creación y conexión de volúmenes
vol-create-as --pool default --name vol_exa.img/.qcow2 --capacity 512M --format raw/qcow2 --prealloc-metadata (solo si es qcow2)
virsh attach-disk --domain ESTACION1 --source /var/lib/libvirt/images/vol_exa.img/qcow2 --target sda/vda --targetbus sata/virtio --subdriver raw/qcow2 --config --live
Dentro de ESTACION1:
mkfs.ext4 /dev/sda
mkdir -p /mnt/extra
mount /dev/sda /mnt/extra
echo "prueba" > /mnt/extra/prueba.txt
qemu-img create -f qcow2 --prealloc-metadata /var/lib/libvirt/images/Alma1_vol2_p6.qcow2 1G
5. Configuración de iSCSI con targetcli
targetcli
cd backstores/block -> create name=discoexa dev=/dev/sda
cd iscsi/ -> wwn=create iqn.2025-06.com.vpd:discoexa
cd iqn.2025-06.com.vpd:discoexa/tpg1/luns -> create /backstores/block/discoexa
cd iqn.2025-06.com.vpd:discoexa/tpg1/acls -> wwn=create iqn.2025-06.com.vpd:estacion1
cd iqn.2025-06.com.vpd:discoexa/tpg1/portals -> delete 0.0.0.0 3260 / ::0 3260 -> create ip_red1 (IP de la red1 de la máquina cabina)
saveconfig
exit
Comprobación:
En anfi_virt, editar /etc/iscsi/initiatorname.iscsi con InitiatorName=iqn.2025-06.com.vpd:estacion1
systemctl restart iscsi
Dentro de la máquina cabina:
iscsiadm -m discovery -t st -p ip_red1
iscsiadm -m node -T iqn.2025-06.com.vpd:discoexa -p ip_red1 -l
RAID 1 con LVM
pvcreate /dev/sda /dev/sdb
vgcreate ApacheVG /dev/sda /dev/sdb --setautoactivation n
lvcreate --type raid1 -m 1 -L 900M -n ApacheLV ApacheVG
vgchange -ay ApacheVG -> lvs
6. Configuración de red con nmcli y bridges
En el caso NAT, se realiza el attach de la interfaz fuera y dentro con nmcli:
nmcli connection add type ethernet/bridge con-name nombre_conexion if-name nombre_red (enp7s0) ipv4.method manual ipv4.addresses ip_asignada 10.22.122.2/24 (si es auto, se deja ipv4.method auto)
Bridge completo en el anfitrión virtual:
nmcli con add type bridge con-name bridge0 ifname bridge0
nmcli con add type ethernet slave-type bridge con-name bridge ifname enp1s0 master bridge0
Levantar conexión
nmcli connection up bridge0
virsh attach-interface --domain ESTACION1 --type bridge --source bridge0 --model virtio --config --live