이 절차 예에서는 primary 도메인이 여러 버스를 소유한 초기 구성에서 새 루트 도메인을 만드는 방법을 보여줍니다. 기본적으로 primary 도메인은 시스템에 있는 모든 버스를 소유합니다. 이 예는 SPARC T4-2 서버용입니다. 다른 서버에서도 이 절차를 사용할 수 있습니다. 다른 서버에 대한 지침은 이 예의 지침과 약간 다를 수 있지만 이 예를 통해 기본 원칙을 확인할 수 있습니다.
부트 디스크와 기본 네트워크 인터페이스를 호스트하는 PCIe 버스를 primary 도메인에서 제거하지 않도록 하십시오.
주의 - 지원되는 서버의 모든 내부 디스크를 단일 PCIe 버스에 연결할 수 있습니다. 도메인이 내부 디스크에서 부트되는 경우 도메인에서 해당 버스를 제거하지 마십시오. 네트워크 포트나 usbecm 장치와 같이 도메인이 사용하는 장치가 있는 버스를 제거하지 않도록 하십시오. 잘못된 버스를 제거하면 도메인이 필요한 장치에 액세스하지 못할 수 있으며 도메인을 사용하지 못할 수 있습니다. 도메인이 사용하는 장치가 있는 버스를 제거하려면 다른 버스에서 장치를 사용하도록 해당 도메인을 재구성하십시오. 예를 들어, 다른 PCIe 슬롯에서 다른 내장 네트워크 포트 또는 PCIe 카드를 사용하도록 도메인을 재구성해야 할 수 있습니다. 특정 SPARC 서버의 경우 USB, 그래픽 컨트롤러와 기타 장치가 있는 PCIe 버스를 제거할 수 있습니다. 그러나 해당 PCIe 버스를 다른 도메인에 추가할 수는 없습니다. 해당 PCIe 버스는 primary 도메인에만 추가할 수 있습니다. |
이 예에서 primary 도메인은 ZFS 풀(rpool) 및 네트워크 인터페이스(igb0)만 사용합니다. primary 도메인이 보다 많은 장치를 사용하는 경우 각 장치에 대해 2-4단계를 반복하여 제거할 버스에 장치가 남아 있지 않도록 하십시오.
장치 경로(pci@nnn) 또는 익명(pci_n)을 사용하여 버스를 도메인에 추가하거나 도메인에서 제거할 수 있습니다. ldm list-bindings primary 또는 ldm list -l -o physio primary 명령은 다음을 보여줍니다.
pci@400은 pci_0에 해당합니다.
pci@500은 pci_1에 해당합니다.
pci@600은 pci_2에 해당합니다.
pci@700은 pci_3에 해당합니다.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary pci_2 BUS pci_2 primary pci_3 BUS pci_3 primary /SYS/MB/PCIE1 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary EMP /SYS/MB/PCIE6 PCIE pci_1 primary EMP /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE2 PCIE pci_2 primary EMP /SYS/MB/PCIE3 PCIE pci_2 primary EMP /SYS/MB/PCIE4 PCIE pci_2 primary EMP /SYS/MB/PCIE8 PCIE pci_3 primary EMP /SYS/MB/SASHBA1 PCIE pci_3 primary OCC /SYS/MB/NET2 PCIE pci_3 primary OCC /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_3 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_3 primary
primary# df / / (/dev/dsk/c0t5000CCA03C138904d0s0):22755742 blocks 2225374 files
primary# zpool status rpool pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c0t5000CCA03C138904d0s0 ONLINE 0 0 0
primary# mpathadm show lu /dev/rdsk/c0t5000CCA03C138904d0s0 Logical Unit: /dev/rdsk/c0t5000CCA03C138904d0s2 mpath-support: libmpscsi_vhci.so Vendor: HITACHI Product: H106030SDSUN300G Revision: A2B0 Name Type: unknown type Name: 5000cca03c138904 Asymmetric: no Current Load Balance: round-robin Logical Unit Group ID: NA Auto Failback: on Auto Probing: NA Paths: Initiator Port Name: w50800200014100c8 Target Port Name: w5000cca03c138905 Override Path: NA Path State: OK Disabled: no Target Ports: Name: w5000cca03c138905 Relative ID: 0
primary# mpathadm show initiator-port w50800200014100c8 Initiator Port: w50800200014100c8 Transport Type: unknown OS Device File: /devices/pci@400/pci@2/pci@0/pci@e/scsi@0/iport@1
다음 예에서는 블록 장치 c1t0d0s0을 사용합니다.
primary# ls -l /dev/dsk/c0t1d0s0 lrwxrwxrwx 1 root root 49 Oct 1 10:39 /dev/dsk/c0t1d0s0 -> ../../devices/pci@400/pci@0/pci@1/scsi@0/sd@1,0:a
이 예에서 primary 도메인의 부트 디스크에 대한 물리적 장치가 pci@400 버스에 연결됩니다.
ifconfig 명령을 사용하여 “플럼된” 기본 네트워크 인터페이스를 식별합니다. IP 프로토콜에서 장치를 사용할 수 있도록 연결된 인터페이스의 스트림이 설정됩니다.
primary# ifconfig -a lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 net0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu 1500 index 3 inet 10.129.241.135 netmask ffffff00 broadcast 10.129.241.255 ether 0:10:e0:e:f1:78 primary# dladm show-phys net0 LINK MEDIA STATE SPEED DUPLEX DEVICE net0 Ethernet up 1000 full igb0
다음 명령은 igb0 네트워크 인터페이스를 사용합니다.
primary# ls -l /dev/igb0 lrwxrwxrwx 1 root root 46 Oct 1 10:39 /dev/igb0 -> ../devices/pci@500/pci@0/pci@c/network@0:igb0
ls -l /dev/usbecm 명령도 수행합니다.
이 예에서 primary 도메인이 사용하는 네트워크 인터페이스에 대한 물리적 장치는 이전 pci_1 목록에 해당하는 버스 pci@500에 있습니다. 따라서 다른 2개의 버스 pci_2(pci@600) 및 pci_3(pci@700)은 primary 도메인이 사용하지 않으므로 다른 도메인에 지정해도 됩니다.
primary 도메인이 사용하는 네트워크 인터페이스가 다른 도메인에 지정할 버스에 있을 경우 다른 네트워크 인터페이스를 사용하도록 primary 도메인을 재구성합니다.
이 예에서는 pci_2 버스가 primary 도메인에서 제거되고 있습니다.
pci_2 버스의 장치를 primary 도메인 OS에서 사용하지 않는지 확인합니다. 만일 사용 중이면 이 명령이 버스를 제거하지 못할 수 있습니다. 정적 방법을 사용하여 pci_2 버스를 강제로 제거합니다.
primary# ldm remove-io pci_2 primary
버스를 제거하기 전에 지연된 재구성을 시작해야 합니다.
primary# ldm start-reconf primary primary# ldm remove-io pci_2 primary primary# shutdown -y -g0 -i6
primary 도메인이 부트 디스크 및 네트워크 장치에 사용하는 버스는 다른 도메인에 지정할 수 없습니다. 기타 모든 버스는 다른 도메인에 지정할 수 있습니다. 이 예에서 pci@600은 primary 도메인에 사용되지 않으므로 다른 도메인에 재지정할 수 있습니다.
이 예에서는 pci_2 버스를 ldg1 도메인에 추가합니다.
primary# ldm add-io pci_2 ldg1
버스를 추가하기 전에 도메인을 중지해야 합니다.
primary# ldm stop-domain ldg1 primary# ldm add-io pci_2 ldg1 primary# ldm start-domain ldg1
이 예에서 구성은 io-domain입니다.
primary# ldm add-config io-domain
이 구성 io-domain은 재부트 후 사용할 다음 구성으로도 설정됩니다.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary pci_2 BUS pci_2 ldg1 pci_3 BUS pci_3 primary /SYS/MB/PCIE1 PCIE pci_0 primary EMP /SYS/MB/SASHBA0 PCIE pci_0 primary OCC /SYS/MB/NET0 PCIE pci_0 primary OCC /SYS/MB/PCIE5 PCIE pci_1 primary EMP /SYS/MB/PCIE6 PCIE pci_1 primary EMP /SYS/MB/PCIE7 PCIE pci_1 primary EMP /SYS/MB/PCIE2 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE3 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE4 PCIE pci_2 ldg1 EMP /SYS/MB/PCIE8 PCIE pci_3 primary EMP /SYS/MB/SASHBA1 PCIE pci_3 primary OCC /SYS/MB/NET2 PCIE pci_3 primary OCC /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_3 primary /SYS/MB/NET2/IOVNET.PF1 PF pci_3 primary
이 출력은 PCIe 버스 pci_0, pci_1 및 pci_3과 해당 장치가 primary 도메인에 지정되었음을 확인합니다. PCIe 버스 pci_2 및 해당 장치가 ldg1 도메인에 지정된 것도 확인할 수 있습니다.