Red Hat Training

A Red Hat training course is available for RHEL 8

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

  1. Obter o identificador de dispositivo do dispositivo DASD. O utilitário lsdasd o exibe como Bus-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.

  2. 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, substitua 0.0.24ac pelo caminho de sub-canal detectado de seu dispositivo.

  3. Desbloquear o dispositivo DASD de seu sub-canal no host.

    # echo 0.0.002c > /sys/bus/ccw/devices/0.0.002c/driver/unbind
  4. 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
  5. Ligar o sub-canal ao motorista da passagem vfio_ccw.

    # echo 0.0.24ac > /sys/bus/css/drivers/vfio_ccw/bind
  6. Gerar uma UUID.

    # uuidgen
    30820a6f-b1a5-4503-91ca-0c10ba12345a
  7. 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
  8. 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 valor uuid 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

  1. Obter o identificador que libvirt designou para o dispositivo DASD mediado. Para fazer isso, exibir a configuração XML da VM e procurar um dispositivo vfio-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.

  2. 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
  3. Colocar o dispositivo online. Por exemplo:

    # chccwdev -e 0.0009
    Setting device 0.0.0009 online
    Done