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

Quitter la vue de l'impression

Mis à jour : Octobre 2015
 
 

Exemples de domaines root non primary

Les exemples suivants expliquent comment activer la virtualisation d'E/S pour un bus PCIe, gérer les périphériques d'E/S directes sur les domaines root non primary et comment gérer les fonctions virtuelles SR-IOV sur les domaines root primary.

Activation de la virtualisation d'E/S pour un bus PCIe

L'exemple suivant illustre l'activation de la virtualisation d'E/S à l'aide des commandes ldm add-io et ldm set-io

La configuration d'E/S SPARC T4-2 suivante montre que le bus pci_1 a déjà été supprimé du domaine primary.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
pci_0                                     BUS    pci_0    primary  IOV      
pci_1                                     BUS    pci_1
niu_0                                     NIU    niu_0    primary           
niu_1                                     NIU    niu_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             UNK      
/SYS/MB/PCIE3                             PCIE   pci_1             UNK      
/SYS/MB/PCIE5                             PCIE   pci_1             UNK      
/SYS/MB/PCIE7                             PCIE   pci_1             UNK      
/SYS/MB/PCIE9                             PCIE   pci_1             UNK      
/SYS/MB/NET2                              PCIE   pci_1             UNK      
/SYS/MB/NET0/IOVNET.PF0                   PF     pci_0    primary           
/SYS/MB/NET0/IOVNET.PF1                   PF     pci_0    primary

La liste suivante indique que les domaines invités sont dans un état lié :

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     8G       0.6%  0.6%  8m
rootdom1         bound      ------  5000    8     4G                   
ldg2             bound      ------  5001    8     4G                   
ldg3             bound      ------  5002    8     4G

La commande ldm add-io suivante ajoute le bus pci_1 au domaine rootdom1 en activant la virtualisation d'E/S pour ce bus. La commande ldm start démarre le domaine rootdom1.

primary# ldm add-io iov=on pci_1 rootdom1
primary# ldm start rootdom1
LDom rootdom1 started

Si un bus PCIe spécifié est déjà assigné à un domaine root, servez-vous de la commande ldm set-io pour activer la virtualisation d'E/S.

primary# ldm start-reconf rootdom1
primary# ldm set-io iov=on pci_1
primary# ldm stop-domain -r rootdom1

Vous ne pouvez configurer les périphériques d'E/S qu'une fois le système d'exploitation du domaine root démarré. Connectez-vous à la console du domaine invité rootdom1 puis initialisez le SE du domaine root rootdom1 si l'initialisation automatique n'est pas activée sur les domaines invités.

primary# telnet localhost 5000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connecting to console "rootdom1" in group "rootdom1" ....
Press ~? for control options ..
ok> boot
...
primary# 

La commande suivante indique que le bus PCIe pci_1 et ses enfants appartiennent désormais au domaine root rootdom1.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
pci_0                                     BUS    pci_0    primary  IOV      
pci_1                                     BUS    pci_1    rootdom1     IOV
niu_0                                     NIU    niu_0    primary           
niu_1                                     NIU    niu_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    rootdom1     OCC
/SYS/MB/PCIE3                             PCIE   pci_1    rootdom1     OCC
/SYS/MB/PCIE5                             PCIE   pci_1    rootdom1     OCC
/SYS/MB/PCIE7                             PCIE   pci_1    rootdom1     OCC
/SYS/MB/PCIE9                             PCIE   pci_1    rootdom1     EMP
/SYS/MB/NET2                              PCIE   pci_1    rootdom1     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    rootdom1
/SYS/MB/PCIE5/IOVNET.PF1                  PF     pci_1    rootdom1
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_1    rootdom1
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_1    rootdom1

Gestion des périphériques d'E/S directes sur des domaines root non primary

L'exemple suivant indique comment gérer des périphériques d'E/S directes sur des domaines root non primary.

La commande suivante génère une erreur car elle tente de supprimer un emplacement du domaine root alors que celui-ci est encore actif :

primary# ldm remove-io /SYS/MB/PCIE7 ldg1
Dynamic I/O operations on PCIe slots are not supported.
Use start-reconf command to trigger delayed reconfiguration and make I/O
changes statically.

La commande suivante illustre la méthode adaptée de suppression d'un emplacement, à savoir en lançant tout d'abord une reconfiguration retardée sur le domaine root.

primary# ldm start-reconf ldg1
Initiating a delayed reconfiguration operation on the ldg1 domain.
All configuration changes for other domains are disabled until the ldg1
domain reboots, at which time the new configuration for the ldg1 domain
will also take effect.
primary# ldm remove-io /SYS/MB/PCIE7 ldg1
------------------------------------------------------------------------------
Notice: The ldg1 domain is in the process of a delayed reconfiguration.
Any changes made to the ldg1 domain will only take effect after it reboots.
------------------------------------------------------------------------------
primary# ldm stop-domain -r ldg1

La commande ldm list-io suivante vérifie que l'emplacement /SYS/MB/PCIE7 ne se trouve plus sur le domaine root.

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
pci_0                                     BUS    pci_0    primary  IOV      
pci_1                                     BUS    pci_1    ldg1     IOV      
niu_0                                     NIU    niu_0    primary           
niu_1                                     NIU    niu_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    ldg1     OCC      
/SYS/MB/PCIE3                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE5                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE7                             PCIE   pci_1             OCC
/SYS/MB/PCIE9                             PCIE   pci_1    ldg1     EMP      
/SYS/MB/NET2                              PCIE   pci_1    ldg1     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    ldg1              
/SYS/MB/PCIE5/IOVNET.PF1                  PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_1    ldg1

Les commandes suivantes assignent l'emplacement /SYS/MB/PCIE7 au domaine ldg2. La commande ldm start démarre le domaine ldg2.

primary# ldm add-io /SYS/MB/PCIE7 ldg2
primary# ldm start ldg2
LDom ldg2 started

Gestion de fonctions virtuelles SR-IOV sur des domaines root non primary

Ces commandes créent deux fonctions virtuelles à partir de chacune des deux fonctions physiques appartenant au domaine root non primary.

primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0
primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1
primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0
primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1

Vous pouvez également utiliser l'option –n pour créer deux fonctions virtuelles à l'aide des deux commandes suivantes :

primary# ldm create-vf -n 2 /SYS/MB/PCIE5/IOVNET.PF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1
primary# ldm create-vf -n 2 /SYS/MB/NET2/IOVNET.PF1
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1

Si vous n'êtes pas parvenu à créer les fonctions virtuelles sur une fonction physique donnée de façon dynamique, démarrez une reconfiguration retardée afin de les créer de façon statique.

primary# ldm start-reconf ldg1
primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF0
primary# ldm create-vf /SYS/MB/PCIE5/IOVNET.PF0
Created new vf: /SYS/MB/PCIE5/IOVNET.PF0.VF1
primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF0
primary# ldm create-vf /SYS/MB/NET2/IOVNET.PF1
Created new vf: /SYS/MB/NET2/IOVNET.PF1.VF1

Ensuite, réinitialisez le domaine root, ldg1, afin d'appliquer les modifications.

primary# ldm stop-domain -r ldg1

La commande suivante affiche les nouvelles fonctions virtuelles :

primary# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
pci_0                                     BUS    pci_0    primary  IOV      
pci_1                                     BUS    pci_1    ldg1     IOV      
niu_0                                     NIU    niu_0    primary           
niu_1                                     NIU    niu_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    ldg1     OCC      
/SYS/MB/PCIE3                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE5                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE7                             PCIE   pci_1    ldg2     OCC      
/SYS/MB/PCIE9                             PCIE   pci_1    ldg1     EMP      
/SYS/MB/NET2                              PCIE   pci_1    ldg1     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    ldg1              
/SYS/MB/PCIE5/IOVNET.PF1                  PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_1    ldg1              
/SYS/MB/PCIE5/IOVNET.PF0.VF0              VF     pci_1
/SYS/MB/PCIE5/IOVNET.PF0.VF1              VF     pci_1
/SYS/MB/NET2/IOVNET.PF1.VF0               VF     pci_1
/SYS/MB/NET2/IOVNET.PF1.VF1               VF     pci_1

La commande suivante ajoute de façon dynamique la fonction virtuelle /SYS/MB/PCIE5/IOVNET.PF0.VF1 au domaine root ldg1 non primary :

primary# ldm add-io /SYS/MB/PCIE5/IOVNET.PF0.VF1 ldg1

La commande suivante ajoute de façon dynamique la fonction virtuelle /SYS/MB/NET2/IOVNET.PF1.VF0 au domaine ldg2 :

primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF0 ldg2

La commande suivante ajoute la fonction virtuelle /SYS/MB/NET2/IOVNET.PF1.VF1 au domaine ldg3 lié :

primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF1 ldg3
primary# ldm start ldg3
LDom ldg3 started

Connectez-vous à la console du domaine ldg3 puis initialisez son SE.

La sortie suivante indique que toutes les assignations s'affichent comme prévu. Une fonction virtuelle n'est pas attribuée et peut donc être attribuée de façon dynamique au domaine root ldg1, ldg2 ou ldg3.

# ldm list-io
NAME                                      TYPE   BUS      DOMAIN   STATUS   
----                                      ----   ---      ------   ------   
pci_0                                     BUS    pci_0    primary  IOV      
pci_1                                     BUS    pci_1    ldg1     IOV      
niu_0                                     NIU    niu_0    primary           
niu_1                                     NIU    niu_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    ldg1     OCC      
/SYS/MB/PCIE3                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE5                             PCIE   pci_1    ldg1     OCC      
/SYS/MB/PCIE7                             PCIE   pci_1    ldg2     OCC      
/SYS/MB/PCIE9                             PCIE   pci_1    ldg1     EMP      
/SYS/MB/NET2                              PCIE   pci_1    ldg1     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    ldg1              
/SYS/MB/PCIE5/IOVNET.PF1                  PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF0                   PF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1                   PF     pci_1    ldg1              
/SYS/MB/PCIE5/IOVNET.PF0.VF0              VF     pci_1                      
/SYS/MB/PCIE5/IOVNET.PF0.VF1              VF     pci_1    ldg1              
/SYS/MB/NET2/IOVNET.PF1.VF0               VF     pci_1    ldg2              
/SYS/MB/NET2/IOVNET.PF1.VF1               VF     pci_1    ldg3