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
# lsmod | grep vfio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# lsdasd Bus-ID Status Name Device Type BlkSz Size Blocks ================================================================================ 0.0.002c active dasdh 94:0 ECKD 4096 21129MB 5409180
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# lscss | grep 0.0.002c 0.0.002c 0.0.24ac 3390/0c 3990/e9 yes f0 f0 ff 01021112 00000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# echo 0.0.002c > /sys/bus/ccw/devices/0.0.002c/driver/unbind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Desvincula el subcanal del controlador del subcanal de E/S.
echo 0.0.24ac > /sys/bus/css/devices/0.0.24ac/driver/unbind
# echo 0.0.24ac > /sys/bus/css/devices/0.0.24ac/driver/unbind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vincula el subcanal al controlador de paso de
vfio_ccw
.echo 0.0.24ac > /sys/bus/css/drivers/vfio_ccw/bind
# echo 0.0.24ac > /sys/bus/css/drivers/vfio_ccw/bind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Generar un UUID.
uuidgen
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba12345a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# echo "30820a6f-b1a5-4503-91ca-0c10ba12345a" > /sys/bus/css/devices/0.0.24ac/mdev_supported_types/vfio_ccw-io/create
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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>
<hostdev mode='subsystem' type='mdev' model='vfio-ccw'> <source> <address uuid="30820a6f-b1a5-4503-91ca-0c10ba12345a"/> </source> </hostdev>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# lscss | grep 0.0.0009 0.0.0009 0.0.0007 3390/0c 3990/e9 f0 f0 ff 12212231 00000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Poner el dispositivo en línea. Por ejemplo:
chccwdev -e 0.0009
# chccwdev -e 0.0009 Setting device 0.0.0009 online Done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow