10.9. Adjuntar dispositivos DASD a máquinas virtuales en IBM Z
Los dispositivos de almacenamiento de acceso directo (DASD) proporcionan una serie de características de almacenamiento específicas. Utilizando la función vfio-ccw
, puede asignar DASDs como dispositivos mediados a sus máquinas virtuales (VMs) en hosts IBM Z. Esto, por ejemplo, hace posible que la VM acceda a un conjunto de datos de z/OS, o que comparta los DASDs asignados con una máquina z/OS.
Requisitos previos
- Su sistema anfitrión utiliza la arquitectura de hardware IBM Z y soporta el protocolo FICON.
- La máquina virtual de destino utiliza un sistema operativo invitado Linux.
Los módulos del kernel necesarios se han cargado en el host. Para comprobarlo, utilice:
# lsmod | grep vfio
La salida debe contener los siguientes módulos:
-
vfio_ccw
-
vfio_mdev
-
vfio_iommu_type1
-
- Tiene un dispositivo DASD de repuesto para uso exclusivo de la VM.
Procedimiento
Obtenga el identificador del dispositivo DASD. La utilidad
lsdasd
lo muestra comoBus-ID
.# lsdasd Bus-ID Status Name Device Type BlkSz Size Blocks ================================================================================ 0.0.002c active dasdh 94:0 ECKD 4096 21129MB 5409180
En los siguientes comandos de este procedimiento, sustituya
0.0.002c
por el identificador de dispositivo detectado de su dispositivo.Obtener la ruta del subcanal del dispositivo DASD.
# lscss | grep 0.0.002c 0.0.002c 0.0.24ac 3390/0c 3990/e9 yes f0 f0 ff 01021112 00000000
En este ejemplo, la ruta del subcanal se detecta como
0.0.24ac
. En los siguientes comandos de este procedimiento, sustituya0.0.24ac
por la ruta de subcanal detectada de su dispositivo.Desvincula el dispositivo DASD de su subcanal en el host.
# echo 0.0.002c > /sys/bus/ccw/devices/0.0.002c/driver/unbind
Desvincula el subcanal del controlador del subcanal de E/S.
# echo 0.0.24ac > /sys/bus/css/devices/0.0.24ac/driver/unbind
Vincula el subcanal al controlador de paso de
vfio_ccw
.# echo 0.0.24ac > /sys/bus/css/drivers/vfio_ccw/bind
Generar un UUID.
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba12345a
Crear el dispositivo mediado por DASD utilizando el UUID generado
# echo "30820a6f-b1a5-4503-91ca-0c10ba12345a" > /sys/bus/css/devices/0.0.24ac/mdev_supported_types/vfio_ccw-io/create
Adjunte el dispositivo mediado a la VM. Para ello, utilice la utilidad
virsh edit
para editar la configuración XML de la VM, añada la siguiente sección al XML y sustituya el valoruuid
por el UUID que generó en el paso anterior.<hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev>
Verificación
Obtenga el identificador que
libvirt
asignó al dispositivo DASD mediado. Para ello, visualice la configuración XML de la VM y busque un dispositivovfio-ccw
.# virsh dumpxml vm-name <domain> [...] <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ccw'> <source> <address uuid='10620d2f-ed4d-437b-8aff-beda461541f9'/> </source> <alias name='hostdev0'/> <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0009'/> </hostdev> [...] </domain>
En este ejemplo, el identificador asignado al dispositivo es
0.0.0009
.Inicie sesión en el sistema operativo invitado de la VM y confirme que el dispositivo aparece en la lista. Por ejemplo:
# lscss | grep 0.0.0009 0.0.0009 0.0.0007 3390/0c 3990/e9 f0 f0 ff 12212231 00000000
Poner el dispositivo en línea. Por ejemplo:
# chccwdev -e 0.0009 Setting device 0.0.0009 online Done