10.9. Fixação de dispositivos DASD em máquinas virtuais no IBM Z
Os dispositivos de armazenamento de acesso direto (DASDs) fornecem uma série de características específicas de armazenamento. Usando o recurso vfio-ccw
, você pode atribuir DASDs como dispositivos mediados a suas máquinas virtuais (VMs) em hosts IBM Z. Isto, por exemplo, torna possível para a VM acessar um conjunto de dados z/OS, ou compartilhar os DASDs atribuídos com uma máquina z/OS.
Pré-requisitos
- Seu sistema host está usando a arquitetura de hardware IBM Z e suporta o protocolo FICON.
- O VM alvo está usando um sistema operacional Linux convidado.
Os módulos de kernel necessários foram carregados no host. Para verificar, use:
lsmod | grep vfio
# lsmod | grep vfio
Copy to Clipboard Copied! Toggle word wrap Toggle overflow A saída deve conter os seguintes módulos:
-
vfio_ccw
-
vfio_mdev
-
vfio_iommu_type1
-
- Você tem um dispositivo DASD de reposição para uso exclusivo da VM.
Procedimento
Obter o identificador de dispositivo do dispositivo DASD. O utilitário
lsdasd
o exibe 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 Nos comandos seguintes deste procedimento, substitua
0.0.002c
pelo identificador de dispositivo detectado de seu dispositivo.Obter o caminho de sub-canal do 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 Neste exemplo, o caminho do sub-canal é detectado como
0.0.24ac
. Nos comandos seguintes deste procedimento, substitua0.0.24ac
pelo caminho de sub-canal detectado de seu dispositivo.Desbloquear o dispositivo DASD de seu sub-canal no 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 Desobstruir o sub-canal do motorista do sub-canal 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 Ligar o sub-canal ao motorista da passagem
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 Gerar uma UUID.
uuidgen
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba12345a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar o dispositivo mediado DASD utilizando o UUID gerado
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 Anexe o dispositivo mediado à VM. Para isso, use o utilitário
virsh edit
para editar a configuração XML da VM, adicione a seguinte seção ao XML, e substitua o valoruuid
pelo UUID gerado no passo 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
Verificação
Obter o identificador que
libvirt
designou para o dispositivo DASD mediado. Para fazer isso, exibir a configuração XML da VM e procurar um dispositivovfio-ccw
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Neste exemplo, o identificador atribuído ao dispositivo é
0.0.0009
.Entre no sistema operacional convidado da VM e confirme que o dispositivo está listado. Por exemplo:
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 Colocar o dispositivo online. Por exemplo:
chccwdev -e 0.0009
# chccwdev -e 0.0009 Setting device 0.0.0009 online Done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow