Guide d'administration d'Oracle® VM Server for SPARC 3.3

Quitter la vue de l'impression

Mis à jour : Octobre 2015
 
 

Création et destruction de fonctions virtuelles InfiniBand

Procédure de création d'une fonction virtuelle InfiniBand

Cette procédure indique comment créer une fonction virtuelle SR-IOV InfiniBand.

  1. Lancez une reconfiguration retardée sur le domaine root.
    primary# ldm start-reconf root-domain-name
  2. Activez la virtualisation d'E/S en définissant iov=on.

    Effectuez uniquement cette étape si la virtualisation d'E/S n'est pas déjà activée pour le bus qui a la fonction physique.

    primary# ldm set-io iov=on bus
  3. Créez une ou plusieurs fonctions virtuelles associées aux fonctions physiques issues de ce domaine root.
    primary# ldm create-vf pf-name

    Vous pouvez exécuter cette commande pour chaque fonction virtuelle que vous souhaitez créer. Vous pouvez également utiliser l'option –n pour créer plusieurs fonctions virtuelles à partir de la même fonction physique d'une seule commande. Reportez-vous aux pages de manuel Example 7–6 et ldm(1M).

  4. Réinitialisez le domaine root.

    Exécutez l'une des commandes suivantes :

    • Réinitialisation du domaine root s'il est différent de primary.
      primary# ldm stop-domain -r root-domain
    • Réinitialisation du domaine root primary.
      primary# shutdown -i6 -g0 -y
Exemple 7-14  Création d'une fonction virtuelle InfiniBand

    L'exemple suivant affiche des informations sur la fonction physique /SYS/MB/RISER1/PCIE4/IOVIB.PF0 :

  • Cette fonction physique se trouve dans l'emplacement PCIe 4.

  • La chaîne IOVIB indique que la fonction physique est un périphérique SR-IOV InfiniBand.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS
----                                      ----   ---      ------   ------
pci_0                                     BUS    pci_0    primary
niu_0                                     NIU    niu_0    primary
/SYS/MB/RISER0/PCIE0                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER1/PCIE1                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER2/PCIE2                      PCIE   pci_0    primary  EMP
/SYS/MB/RISER0/PCIE3                      PCIE   pci_0    primary  OCC
/SYS/MB/RISER1/PCIE4                      PCIE   pci_0    primary  OCC
/SYS/MB/RISER2/PCIE5                      PCIE   pci_0    primary  EMP
/SYS/MB/SASHBA0                           PCIE   pci_0    primary  OCC
/SYS/MB/SASHBA1                           PCIE   pci_0    primary  OCC
/SYS/MB/NET0                              PCIE   pci_0    primary  OCC
/SYS/MB/NET2                              PCIE   pci_0    primary  OCC
/SYS/MB/RISER0/PCIE3/IOVIB.PF0            PF     pci_0    primary
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
/SYS/MB/NET0/IOVNET.PF0                   PF     pci_0    primary
/SYS/MB/NET0/IOVNET.PF1                   PF     pci_0    primary
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_0    primary
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_0    primary

La commande suivante fournit plus d'informations sur la fonction physique spécifiée. La valeur maxvfs indique le nombre maximal de fonctions virtuelles prises en charge par le périphérique.

primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0
NAME                                      TYPE   BUS      DOMAIN   STATUS
----                                      ----   ---      ------   ------
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0]
    maxvfs = 64

L'exemple suivant indique comment créer une fonction virtuelle statique. Lancez tout d'abord une reconfiguration retardée sur le domaine primary et activez la virtualisation d'E/S sur le bus PCIe pci_0 . Etant donné que le bus pci_0 a déjà été assigné au domaine root primary, vous devez utiliser la commande ldm set-io pour activer la virtualisation d'E/S.

primary# ldm start-reconf primary
Initiating a delayed reconfiguration operation on the primary domain.
All configuration changes for other domains are disabled until the primary
domain reboots, at which time the new configuration for the primary domain
will also take effect.

primary# ldm set-io iov=on pci_0
-----------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
-----------------------------------------------------------------------

Vous pouvez ensuite utiliser la commande ldm create-vf pour créer une fonction virtuelle à partir de la fonction physique /SYS/MB/RISER1/PCIE4/IOVIB.PF0.

primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0
-----------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
----------------------------------------------------------------------
Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0

Notez que vous pouvez créer plusieurs fonctions virtuelles au cours d'une même reconfiguration retardée. La commande suivante crée une deuxième fonction virtuelle :

primary# ldm create-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0
-----------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
-----------------------------------------------------------------------
Created new vf: /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1

Pour finir, réinitialisez le domaine root primary pour appliquer les modifications.

primary# shutdown -i6 -g0 -y
Shutdown started.

Changing to init state 6 - please wait
...

Procédure de destruction d'une fonction virtuelle InfiniBand

Cette procédure indique comment détruire une fonction virtuelle SR-IOV InfiniBand.

Vous pouvez détruire une fonction virtuelle si elle n'est pas affectée à un domaine. Vous pouvez uniquement détruire une fonction virtuelle dans l'ordre inverse de la création en d'autres termes, seule la dernière fonction virtuelle créée peut être détruite. La configuration résultante est validée par le pilote de la fonction physique.

  1. Lancez une reconfiguration retardée sur le domaine root.
    primary# ldm start-reconf root-domain-name
  2. Détruisez une ou plusieurs des fonctions virtuelles associées aux fonctions physiques issues de ce domaine root.
    primary# ldm destroy-vf vf-name

    Vous pouvez exécuter cette commande pour chaque fonction virtuelle que vous souhaitez détruire. Vous pouvez également utiliser l'option –n pour détruire plusieurs fonctions virtuelles à partir de la même fonction physique d'une seule commande. Reportez-vous aux pages de manuel Example 7–8 et ldm(1M).

  3. Réinitialisez le domaine root.

    Exécutez l'une des commandes suivantes :

    • Réinitialisation du domaine root s'il est différent de primary.
      primary# ldm stop-domain -r root-domain
    • Réinitialisation du domaine root primary.
      primary# shutdown -i6 -g0 -y
Exemple 7-15  Destruction d'une fonction virtuelle InfiniBand

L'exemple suivant illustre la destruction de la fonction virtuelle InfiniBand statique /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1.

La commande ldm list-io affiche des informations sur les bus, les fonctions physiques et les fonctions virtuelles.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN STATUS
----                                      ----   ---      ------ ------
pci_0                                     BUS    pci_0    primary  IOV
...
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
...
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0        VF     pci_0
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1        VF     pci_0

La commande ldm list-io -l permet d'obtenir des informations supplémentaires sur la fonction physique et les fonctions virtuelles associées.

primary# ldm list-io -l /SYS/MB/RISER1/PCIE4/IOVIB.PF0
NAME                                      TYPE   BUS      DOMAIN STATUS
----                                      ----   ---      ------ ------
/SYS/MB/RISER1/PCIE4/IOVIB.PF0            PF     pci_0    primary
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0]
    maxvfs = 64
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0        VF     pci_0
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,1]
/SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1        VF     pci_0
[pci@400/pci@1/pci@0/pci@0/pciex15b3,673c@0,2]

Vous pouvez uniquement détruire une fonction virtuelle si elle n'est pas assignée à un domaine. La colonne DOMAIN de la sortie ldm list-io -l affiche le nom de tous les domaines auxquels une fonction virtuelle est affectée. De plus, les fonctions virtuelles doivent être détruites dans l'ordre inverse de leur création. Par conséquent, dans cet exemple, vous devez détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1 avant de pouvoir détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.

Après avoir identifié la fonction virtuelle appropriée, vous pouvez la détruire. Commencez par lancer une reconfiguration retardée.

primary# ldm start-reconf primary
Initiating a delayed reconfiguration operation on the primary domain.
All configuration changes for other domains are disabled until the primary
domain reboots, at which time the new configuration for the primary domain
will also take effect.

primary# ldm destroy-vf /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF1
-----------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
-----------------------------------------------------------------------

Vous pouvez exécuter plusieurs commandes ldm destroy-vf dans le cadre d'une reconfiguration retardée. Par conséquent, vous pourriez également détruire la fonction virtuelle /SYS/MB/RISER1/PCIE4/IOVIB.PF0.VF0.

Pour finir, réinitialisez le domaine root primary pour appliquer les modifications.

primary# shutdown -i6 -g0 -y
Shutdown started.

Changing to init state 6 - please wait
...