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
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 Bus-ID Status Name Device Type BlkSz Size Blocks ================================================================================ 0.0.002c active dasdh 94:0 ECKD 4096 21129MB 5409180
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 0.0.002c 0.0.24ac 3390/0c 3990/e9 yes f0 f0 ff 01021112 00000000
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
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
Ligar o sub-canal ao motorista da passagem
vfio_ccw
.# echo 0.0.24ac > /sys/bus/css/drivers/vfio_ccw/bind
Gerar uma UUID.
# uuidgen 30820a6f-b1a5-4503-91ca-0c10ba12345a
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
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>
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
.# 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>
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 0.0.0009 0.0.0007 3390/0c 3990/e9 f0 f0 ff 12212231 00000000
Colocar o dispositivo online. Por exemplo:
# chccwdev -e 0.0009 Setting device 0.0.0009 online Done