La procédure suivante décrit la création d'un domaine d'E/S incluant des fonctions virtuelles SR-IOV PCIe.
Planifiez à l'avance le nombre de réinitialisations du domaine root pour réduire les indisponibilités.
Avant de commencer
Avant de commencer, assurez-vous que vous avez activé la virtualisation d'E/S pour le bus PCIe qui est le parent de la fonction physique à partir de laquelle vous créez des fonctions virtuelles. Voir la section Procédure d'activation de la virtualisation d'E/S pour un bus PCIe.
primary# ldm list-io
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).
primary# ldm list-io
primary# ldm add-io vf-name domain-name
La commande Oracle Solaris 11 suivante affiche la disponibilité de la fonction virtuelle :
guest# dladm show-phys
L'exemple suivant illustre la création dynamique d'une fonction virtuelle, /SYS/MB/NET0/IOVNET.PF0.VF0, pour une fonction physique, /SYS/MB/NET0/IOVNET.PF0, et l'assignation de la fonction virtuelle au domaine d'E/S ldg1.
Cet exemple suppose les circonstances suivantes :
Le SE du domaine primary prend en charge les opérations SR-IOV dynamiques
Le bus pci_0 est assigné au domaine primary et a été initialisé pour les opérations de virtualisation d'E/S
La fonction physique /SYS/MB/NET0/IOVNET.PF0 appartient au bus pci_0
La fonction physique /SYS/MB/NET0/IOVNET.PF0 ne comporte pas de fonctions virtuelles assignées à des domaines
Le domaine ldg1 est actif et initialisé et son SE prend en charge les opérations SR-IOV dynamiques
Créez la fonction virtuelle à partir de la fonction physique /SYS/MB/NET0/IOVNET.PF0.
primary# ldm create-vf /SYS/MB/NET0/IOVNET.PF0 Created new vf: /SYS/MB/NET0/IOVNET.PF0.VF0
Ajoutez la fonction virtuelle /SYS/MB/NET0/IOVNET.PF0.VF0 au domaine ldg1.
primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1
La commande suivante indique que la fonction virtuelle a été ajoutée au domaine ldg1.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1Exemple 7-13 Création statique d'un domaine d'E/S par assignation d'une fonction virtuelle SR-IOV
L'exemple statique suivant illustre la création d'une fonction virtuelle, /SYS/MB/NET0/IOVNET.PF0.VF0, pour une fonction physique, /SYS/MB/NET0/IOVNET.PF0, et l'assignation de la fonction virtuelle au domaine ldg1.
Cet exemple suppose les circonstances suivantes :
Le SE du domaine primary ne prend pas en charge les opérations SR-IOV dynamiques
Le bus pci_0 est assigné au domaine primary et n'a pas été initialisé pour les opérations de virtualisation d'E/S.
La fonction physique /SYS/MB/NET0/IOVNET.PF0 appartient au bus pci_0
La fonction physique /SYS/MB/NET0/IOVNET.PF0 ne comporte pas de fonctions virtuelles assignées à des domaines
Le domaine ldg1 est actif et initialisé et son SE ne prend pas en charge les opérations SR-IOV dynamiques
La propriété auto-boot? du domaine ldg1 est définie sur true, de sorte que le domaine est automatiquement initialisé lors du démarrage du domaine
Démarrez d'abord une reconfiguration retardée sur le domaine primary, activez la virtualisation d'E/S et créez la fonction virtuelle à partir de la fonction physique /SYS/MB/NET0/IOVNET.PF0.
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 primary# ldm create-vf /SYS/MB/NET0/IOVNET.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/NET0/IOVNET.PF0.VF0
Ensuite, arrêtez le domaine primary.
primary# shutdown -i6 -g0 -y
Arrêtez le domaine ldg1, ajoutez la fonction virtuelle et démarrez le domaine.
primary# ldm stop ldg1 primary# ldm add-io /SYS/MB/NET0/IOVNET.PF0.VF0 ldg1 primary# ldm start ldg1
La commande suivante indique que la fonction virtuelle a été ajoutée au domaine ldg1.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary IOV pci_1 BUS pci_1 primary /SYS/MB/PCIE0 PCIE pci_0 primary OCC /SYS/MB/PCIE2 PCIE pci_0 primary OCC /SYS/MB/PCIE4 PCIE pci_0 primary OCC /SYS/MB/PCIE6 PCIE pci_0 primary EMP /SYS/MB/PCIE8 PCIE pci_0 primary EMP /SYS/MB/SASHBA PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE1 PCIE pci_1 primary OCC /SYS/MB/PCIE3 PCIE pci_1 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary OCC /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE9 PCIE pci_1 primary EMP /SYS/MB/NET2 PCIE pci_1 primary OCC /SYS/MB/NET0/IOVNET.PF0 PF pci_0 primary /SYS/MB/NET0/IOVNET.PF1 PF pci_0 primary /SYS/MB/PCIE5/IOVNET.PF0 PF pci_1 primary /SYS/MB/PCIE5/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF0 PF pci_1 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_1 primary /SYS/MB/NET0/IOVNET.PF0.VF0 VF pci_0 ldg1