다음 예에서는 PCIe 버스에 대한 I/O 가상화를 사용으로 설정하고, 비primary 루트 도메인의 직접 I/O 장치를 관리하고, 비primary 루트 도메인의 SR-IOV 가상 기능을 관리하는 방법에 대해 설명합니다.
다음 예에서는 ldm add-io 및 ldm set-io 명령을 사용하여 I/O 가상화를 사용으로 설정하는 방법을 보여줍니다.
다음 SPARC T4-2 I/O 구성은 버스 pci_1이 이미 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
다음 목록은 게스트 도메인이 바인드 상태임을 보여줍니다.
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
다음 ldm add-io 명령은 해당 버스에 대해 I/O 가상화가 사용으로 설정된 rootdom1 도메인에 pci_1 버스를 추가합니다. ldm start 명령은 rootdom1 도메인을 시작합니다.
primary# ldm add-io iov=on pci_1 rootdom1 primary# ldm start rootdom1 LDom rootdom1 started
지정된 PCIe 버스가 루트 도메인에 이미 지정된 경우 ldm set-io 명령을 사용하여 I/O 가상화를 사용으로 설정하십시오.
primary# ldm start-reconf rootdom1 primary# ldm set-io iov=on pci_1 primary# ldm stop-domain -r rootdom1
I/O 장치를 구성하려면 루트 도메인에서 해당 OS가 실행 중이어야 합니다. rootdom1 게스트 도메인의 콘솔에 연결한 다음 게스트 도메인이 자동 부트로 설정되지 않은 경우 rootdom1 루트 도메인의 OS를 부트하십시오.
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#
다음 명령은 pci_1 PCIe 버스 및 해당 하위 항목이 이제 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
다음 예에서는 비primary 루트 도메인에서 직접 I/O 장치를 관리하는 방법을 보여줍니다.
다음 명령을 실행하면 오류가 발생합니다. 루트 도메인에서 활성 상태인 슬롯을 제거하려고 시도하기 때문입니다.
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.
다음 명령은 먼저 루트 도메인에서 지연된 재구성을 시작하여 슬롯을 제거하는 올바른 방법을 보여줍니다.
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
다음 ldm list-io 명령은 /SYS/MB/PCIE7 슬롯이 더 이상 루트 도메인에 없음을 확인합니다.
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
다음 명령은 /SYS/MB/PCIE7 슬롯을 ldg2 도메인에 지정합니다. ldm start 명령은 ldg2 도메인을 시작합니다.
primary# ldm add-io /SYS/MB/PCIE7 ldg2 primary# ldm start ldg2 LDom ldg2 started
다음 명령은 비primary 루트 도메인에 속하는 2개의 개별 물리적 기능을 기반으로 가상 기능을 2개 만듭니다.
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
–n 옵션을 사용하면 다음 두 명령을 사용하여 2개의 가상 기능을 만들 수도 있습니다.
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
지정된 물리적 기능에서 동적으로 가상 기능을 만들지 못한 경우 지연된 재구성을 시작하여 정적으로 가상 기능을 만드십시오.
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
그런 다음 변경 사항이 적용되도록 루트 도메인 ldg1을 재부트하십시오.
primary# ldm stop-domain -r ldg1
다음 명령은 새 가상 기능을 보여줍니다.
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
다음 명령은 동적으로 /SYS/MB/PCIE5/IOVNET.PF0.VF1 가상 기능을 ldg1 비primary 루트 도메인에 추가합니다.
primary# ldm add-io /SYS/MB/PCIE5/IOVNET.PF0.VF1 ldg1
다음 명령은 동적으로 /SYS/MB/NET2/IOVNET.PF1.VF0 가상 기능을 ldg2 도메인에 추가합니다.
primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF0 ldg2
다음 명령은 /SYS/MB/NET2/IOVNET.PF1.VF1 가상 기능을 바인드된 ldg3 도메인에 추가합니다.
primary# ldm add-io /SYS/MB/NET2/IOVNET.PF1.VF1 ldg3 primary# ldm start ldg3 LDom ldg3 started
ldg3 도메인의 콘솔에 연결한 다음 해당 OS를 부트하십시오.
다음 출력은 모든 지정 사항이 예상대로 표시됨을 보여줍니다. 하나의 가상 기능이 지정되지 않았으므로 동적으로 ldg1, ldg2 또는 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