이 절차 예에서는 primary 도메인이 여러 버스를 소유한 초기 구성에서 새 루트 도메인을 만드는 방법을 보여줍니다. 기본적으로 primary 도메인은 시스템에 있는 모든 버스를 소유합니다. 이 예는 SPARC T4-2 서버용입니다. 다른 서버에서도 이 절차를 사용할 수 있습니다. 다른 서버에 대한 지침은 이 예의 지침과 약간 다를 수 있지만 이 예를 통해 기본 원칙을 확인할 수 있습니다.
부트 디스크와 기본 네트워크 인터페이스를 호스트하는 PCIe 버스를 primary 도메인에서 제거하지 않도록 하십시오.
주의 - 지원되는 서버의 모든 내부 디스크를 단일 PCIe 버스에 연결할 수 있습니다. 도메인이 내부 디스크에서 부트되는 경우 도메인에서 해당 버스를 제거하지 마십시오. 도메인이 사용하는 장치(예: 네트워크 포트)가 있는 버스를 제거하지 않도록 하십시오. 잘못된 버스를 제거하면 도메인이 필요한 장치에 액세스하지 못할 수 있으며 도메인을 사용하지 못할 수 있습니다. 도메인이 사용하는 장치가 있는 버스를 제거하려면 다른 버스에서 장치를 사용하도록 해당 도메인을 재구성하십시오. 예를 들어, 다른 PCIe 슬롯에서 다른 내장 네트워크 포트 또는 PCIe 카드를 사용하도록 도메인을 재구성해야 할 수 있습니다. 특정 SPARC 서버의 경우 그래픽 컨트롤러와 기타 장치가 있는 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
SPARC T3 서버부터 내부 디스크는 Solaris I/O 다중 경로로 관리됩니다.
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
Solaris I/O 다중 경로로 관리되지 않는 UltraSPARC T2 또는 UltraSPARC T2 Plus 시스템의 디스크에 이 명령을 사용합니다.
다음 예에서는 블록 장치 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 igb0: 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# 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 도메인에 지정된 것도 확인할 수 있습니다.