Red Hat Training

A Red Hat training course is available for RHEL 8

15.7. Adjuntar coprocesadores criptográficos a máquinas virtuales en IBM Z

Para utilizar el cifrado de hardware en su máquina virtual (VM) en un host IBM Z, cree dispositivos mediados de un dispositivo de coprocesador criptográfico y asígnelos a las VM previstas. Para obtener instrucciones detalladas, consulte a continuación.

Requisitos previos

  • Su host se ejecuta en hardware IBM Z.
  • El coprocesador criptográfico es compatible con la asignación de dispositivos. Para confirmarlo, asegúrese de que la dirección type de su coprocesador figura como CEX4 o posterior.

    # lszcrypt -V
    
    CARD.DOMAIN TYPE  MODE        STATUS  REQUESTS  PENDING HWTYPE QDEPTH FUNCTIONS  DRIVER
    --------------------------------------------------------------------------------------------
    05         CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4card
    05.0004    CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4queue
    05.00ab    CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4queue
  • El paquete mdevctl está instalado.
  • El módulo del kernel vfio_ap está cargado. Para verificarlo, utilice:

    # lsmod | grep vfio_ap
    vfio_ap         24576  0
    [...]

    Para cargar el módulo, utilice:

    # modprobe vfio_ap

Procedimiento

  1. En el host, reasigne su dispositivo criptográfico a los controladores vfio-ap. El siguiente ejemplo asigna dos dispositivos criptográficos con ID de máscara de bits (0x05, 0x0004) y (0x05, 0x00ab) a vfio-ap.

    #  echo -0x05 > /sys/bus/ap/apmask
    #  echo -0x0004, -0x00ab > /sys/bus/ap/aqmask

    Para obtener información sobre la identificación de los valores de ID de la máscara de bits, consulte Preparación de los dispositivos de paso para los recursos del adaptador criptográfico en el documento KVM Virtual Server Management de IBM.

  2. Compruebe que los dispositivos criptográficos se han reasignado correctamente.

    # lszcrypt -V
    
    CARD.DOMAIN TYPE  MODE        STATUS  REQUESTS  PENDING HWTYPE QDEPTH FUNCTIONS  DRIVER
    --------------------------------------------------------------------------------------------
    05          CEX5C CCA-Coproc  -              1        0     11     08 S--D--N--  cex4card
    05.0004     CEX5C CCA-Coproc  -              1        0     11     08 S--D--N--  vfio_ap
    05.00ab     CEX5C CCA-Coproc  -              1        0     11     08 S--D--N--  vfio_ap

    Si los valores de DRIVER de las colas del dominio cambiaron a vfio_ap, la reasignación tuvo éxito.

  3. Generar un UUID de dispositivo.

    # uuidgen
    669d9b23-fe1b-4ecb-be08-a2fabca99b71

    En los siguientes pasos de este procedimiento, sustituya 669d9b23-fe1b-4ecb-be08-a2fabca99b71 por su UUID generado.

  4. Utilizando el UUID, cree un nuevo dispositivo vfio_ap.

    El siguiente ejemplo muestra la creación de un dispositivo mediado persistente y la asignación de colas al mismo. Por ejemplo, los siguientes comandos asignan el adaptador de dominio 0x05 y las colas de dominio 0x0004 y 0x00ab al dispositivo 669d9b23-fe1b-4ecb-be08-a2fabca99b71.

    # mdevctl define --uuid 669d9b23-fe1b-4ecb-be08-a2fabca99b71 --parent matrix --type vfio_ap-passthrough
    # mdevctl modify --uuid 669d9b23-fe1b-4ecb-be08-a2fabca99b71 --addattr=assign_adapter --value=0x05
    # mdevctl modify --uuid 669d9b23-fe1b-4ecb-be08-a2fabca99b71 --addattr=assign_domain --value=0x0004
    # mdevctl modify --uuid 669d9b23-fe1b-4ecb-be08-a2fabca99b71 --addattr=assign_domain --value=0x00ab
  5. Inicie el dispositivo mediado.

    # mdevctl start --uuid 669d9b23-fe1b-4ecb-be08-a2fabca99b71
  6. Compruebe que la configuración se ha aplicado correctamente

    # cat /sys/devices/vfio_ap/matrix/mdev_supported_types/vfio_ap-passthrough/devices/669d9b23-fe1b-4ecb-be08-a2fabca99b71
    05.0004
    05.00ab

    Si la salida contiene los valores numéricos de las colas que ha asignado previamente a vfio-ap, el proceso se ha realizado con éxito.

  7. Utilice el comando virsh edit para abrir la configuración XML de la VM en la que desea utilizar los dispositivos criptográficos.

    # virsh edit vm-name
  8. Añade las siguientes líneas a la sección <devices> en la configuración XML, y guárdala.

    <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ap'>
      <source>
        <address uuid='669d9b23-fe1b-4ecb-be08-a2fabca99b71'/>
      </source>
    </hostdev>

    Tenga en cuenta que cada UUID sólo puede asignarse a una máquina virtual a la vez.

Verificación

  1. Inicie la VM a la que asignó el dispositivo mediado.
  2. Después de que el sistema operativo (SO) huésped arranque, asegúrese de que detecta los dispositivos criptográficos asignados.

    # lszcrypt -V
    
    CARD.DOMAIN TYPE  MODE        STATUS  REQUESTS  PENDING HWTYPE QDEPTH FUNCTIONS  DRIVER
    --------------------------------------------------------------------------------------------
    05          CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4card
    05.0004     CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4queue
    05.00ab     CEX5C CCA-Coproc  online         1        0     11     08 S--D--N--  cex4queue

    La salida de este comando en el SO huésped será idéntica a la de una partición lógica del host con los mismos dispositivos de coprocesador criptográfico disponibles.