Rechercher

19.8. Attacher des coprocesseurs cryptographiques à des machines virtuelles sur IBM Z

download PDF

Pour utiliser le chiffrement matériel dans votre machine virtuelle (VM) sur un hôte IBM Z, créez des périphériques médiatisés à partir d'un coprocesseur cryptographique et affectez-les aux VM concernées. Pour des instructions détaillées, voir ci-dessous.

Conditions préalables

  • Votre hôte fonctionne sur du matériel IBM Z.
  • Le coprocesseur cryptographique est compatible avec l'affectation des dispositifs. Pour le confirmer, assurez-vous que le site type de votre coprocesseur est répertorié comme CEX4 ou plus récent.

    # 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
  • Le module du noyau vfio_ap est chargé. Pour le vérifier, utilisez :

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

    Pour charger le module, utilisez :

    # modprobe vfio_ap
  • La version s390utils prend en charge la manipulation de ap:

    # lszdev --list-types
    ...
    ap           Cryptographic Adjunct Processor (AP) device
    ...

Procédure

  1. Obtenez les valeurs décimales des périphériques que vous souhaitez attribuer à la VM. Par exemple, pour les périphériques 05.0004 et 05.00ab:

    # echo "obase=10; ibase=16; 04" | bc
    4
    # echo "obase=10; ibase=16; AB" | bc
    171
  2. Sur l'hôte, réaffectez les périphériques aux pilotes vfio-ap:

    # chzdev -t ap apmask=-5 aqmask=-4,-171
    Note

    Pour affecter les appareils de manière permanente, utilisez l'option -p.

  3. Vérifiez que les dispositifs cryptographiques ont été réaffectés correctement.

    # 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 les valeurs DRIVER des files d'attente du domaine sont passées à vfio_ap, la réaffectation a réussi.

  4. Créer un extrait XML qui définit un nouveau dispositif médiatisé.

    L'exemple suivant montre la définition d'un dispositif persistant à médiation et l'affectation de files d'attente à ce dispositif. Plus précisément, l'extrait XML vfio_ap.xml de cet exemple attribue un adaptateur de domaine 0x05, des files d'attente de domaine 0x0004 et 0x00ab et un domaine de contrôle 0x00ab au dispositif à médiation.

    # vim vfio_ap.xml
    
    <device>
      <parent>ap_matrix</parent>
      <capability type="mdev">
        <type id="vfio_ap-passthrough"/>
        <attr name='assign_adapter' value='0x05'/>
        <attr name='assign_domain' value='0x0004'/>
        <attr name='assign_domain' value='0x00ab'/>
        <attr name='assign_control_domain' value='0x00ab'/>
      </capability>
    </device>
  5. Créer un nouveau dispositif médiatisé à partir de l'extrait XML vfio_ap.xml.

    # virsh nodedev-define vfio_ap.xml
    Node device 'mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix' defined from 'vfio_ap.xml'
  6. Démarrez le dispositif de médiation que vous avez créé à l'étape précédente, dans ce cas mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix.

    # virsh nodedev-start mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix
    Device mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix started
  7. Vérifier que la configuration a été appliquée correctement

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

    Si la sortie contient les valeurs numériques des files d'attente que vous avez précédemment affectées à vfio-ap, le processus a réussi.

  8. Attachez le périphérique médiatisé à la VM.

    1. Affichez l'UUID du dispositif médiatisé que vous avez créé et enregistrez-le pour l'étape suivante.

      # virsh nodedev-dumpxml mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix
      
      <device>
        <name>mdev_8f9c4a73_1411_48d2_895d_34db9ac18f85_matrix</name>
        <parent>ap_matrix</parent>
        <capability type='mdev'>
          <type id='vfio_ap-passthrough'/>
          <uuid>8f9c4a73-1411-48d2-895d-34db9ac18f85</uuid>
          <iommuGroup number='0'/>
          <attr name='assign_adapter' value='0x05'/>
          <attr name='assign_domain' value='0x0004'/>
          <attr name='assign_domain' value='0x00ab'/>
          <attr name='assign_control_domain' value='0x00ab'/>
        </capability>
      </device>
    2. Créez et ouvrez un fichier XML pour le dispositif à carte cryptographique. Par exemple :

      # vim crypto-dev.xml
    3. Ajoutez les lignes suivantes au fichier et enregistrez-le. Remplacez la valeur uuid par l'UUID que vous avez obtenu à l'étape a.

      <hostdev mode='subsystem' type='mdev' managed='no' model='vfio-ap'>
        <source>
          <address uuid='8f9c4a73-1411-48d2-895d-34db9ac18f85'/>
        </source>
      </hostdev>
    4. Utilisez le fichier XML pour attacher le dispositif médiatisé à la VM. Par exemple, pour attacher de façon permanente un dispositif défini dans le fichier crypto-dev.xml à la VM testguest1 en cours d'exécution :

      # virsh attach-device testguest1 crypto-dev.xml --live --config

      L'option --live attache le périphérique à une VM en cours d'exécution uniquement, sans persistance entre les démarrages. L'option --config rend les modifications de configuration persistantes. Vous pouvez utiliser l'option --config seule pour attacher le périphérique à une VM arrêtée.

      Notez que chaque UUID ne peut être attribué qu'à une seule VM à la fois.

Vérification

  1. Assurez-vous que le système d'exploitation invité détecte les dispositifs cryptographiques assignés.

    # 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 sortie de cette commande dans le système d'exploitation invité sera identique à celle d'une partition logique hôte avec les mêmes coprocesseurs cryptographiques disponibles.

  2. Dans le système d'exploitation invité, confirmez qu'un domaine de contrôle a bien été attribué aux dispositifs cryptographiques.

    # lszcrypt -d C
    
    DOMAIN 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
    ------------------------------------------------------
        00  .  .  .  .  U  .  .  .  .  .  .  .  .  .  .  .
        10  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        20  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        30  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        40  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        50  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        60  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        70  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        80  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        90  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        a0  .  .  .  .  .  .  .  .  .  .  .  B  .  .  .  .
        b0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        c0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        d0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        e0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
        f0  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
    ------------------------------------------------------
    C: Control domain
    U: Usage domain
    B: Both (Control + Usage domain)

    Si lszcrypt -d C affiche les intersections U et B dans la matrice du dispositif cryptographique, l'attribution du domaine de contrôle a réussi.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.