탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 네트워크 인터페이스 및 네트워크 가상화 Oracle Solaris 11 Information Library (한국어) |
이 절에서는 물리적 네트워크나 가상 네트워크의 네트워크 성능을 향상시키기 위해 설정할 수 있는 선택한 링크 등록 정보에 대해 설명합니다.
NIC에서 수신(Rx) 링과 전송(Tx) 링은 각각 시스템이 네트워크 패킷을 받고 보내는 하드웨어 리소스입니다. 다음 절에서는 링의 개요 및 네트워킹 프로세스에 링을 할당하는 데 사용되는 절차를 차례로 제공합니다. 링을 할당하는 명령을 실행할 때 작동하는 방식을 보여주는 예도 제공됩니다.
VNIC 및 기타 데이터 링크와 같은 MAC 클라이언트는 NIC 위에 구성되어 시스템과 기타 네트워크 노드 간의 통신을 사용할 수 있게 합니다. 클라이언트는 구성된 후 Rx 및 Tx 링을 모두 사용하여 각각 네트워크 패킷을 수신하거나 전송합니다. MAC 클라이언트는 하드웨어 기반이거나 소프트웨어 기반일 수 있습니다. 하드웨어 기반 클라이언트는 다음 조건 중 하나를 충족합니다.
하나 이상의 Rx 링을 전용으로 사용합니다.
하나 이상의 Tx 링을 전용으로 사용합니다.
하나 이상의 Rx 링과 하나 이상의 Tx 링을 전용으로 사용합니다.
이러한 조건을 하나도 충족하지 않는 클라이언트를 소프트웨어 기반 MAC 클라이언트라고 합니다.
하드웨어 기반 클라이언트에는 NIC에 따라 배타적 사용을 위한 링을 할당할 수 있습니다. nxge와 같은 NIC는 동적 링 할당을 지원합니다. 이러한 NIC에서는 하드웨어 기반 클라이언트를 구성할 수 있을 뿐만 아니라 링을 할당할 수 있는 경우 해당 클라이언트에 할당할 링 수를 결정하는 유연성도 있습니다. 링 사용은 항상 주 인터페이스(예: nxge0)에 최적화됩니다. 주 인터페이스를 주 클라이언트라고도 합니다. 다른 클라이언트의 배타적 사용에 할당되지 않은 사용 가능한 링은 모두 주 인터페이스에 자동으로 할당됩니다.
ixge와 같은 기타 NIC는 정적 링 할당만 지원합니다. 이러한 NIC에서는 하드웨어 기반 클라이언트만 만들 수 있습니다. 클라이언트는 클라이언트당 고정된 링 세트를 사용하여 자동으로 구성됩니다. 고정된 세트는 NIC 드라이버의 초기 구성 도중 결정됩니다. 정적 링 할당과 관련된 드라이버의 초기 구성에 대한 자세한 내용은 Oracle Solaris 조정 가능 매개변수 참조 설명서을 참조하십시오.
VLAN을 사용하면 VLAN 생성 방식에 따라 링 할당이 다르게 진행됩니다. VLAN은 다음 두 가지 방식 중 하나로 생성됩니다.
dladm create-vlan 하위 명령 사용:
# dladm create-vlan -l link -v VID vlan
dladm create-vnic 하위 명령 사용:
# dladm create-vnic -l link -v VID vnic
dladm create-vlan 하위 명령으로 생성된 VLAN은 기본 인터페이스와 동일한 MAC 주소를 공유합니다. 따라서 이 VLAN은 기본 인터페이스의 Rx 및 Tx 링도 공유합니다. dladm create-vnic 명령을 사용하여 VNIC로 생성된 VLAN에는 기본 인터페이스와 다른 MAC 주소가 있습니다. 이러한 VLAN에 대한 링 할당은 기본 링크에 대한 할당과 독립적입니다. 따라서 NIC가 하드웨어 기반 클라이언트를 지원하는 경우 이 VLAN에 고유한 전용 링을 할당할 수 있습니다.
링을 관리하려면 dladm 명령을 사용하여 두 개의 링 등록 정보를 설정할 수 있습니다.
rxrings는 지정한 링크에 할당된 Rx 링 수를 나타냅니다.
txrings는 지정한 링크에 할당된 Tx 링 수를 나타냅니다.
각 등록 정보를 세 가지 가능한 값 중 하나로 설정할 수 있습니다.
sw는 소프트웨어 기반 클라이언트를 구성하고 있음을 나타냅니다. 클라이언트는 링을 배타적으로 사용하지 않습니다. 대신 클라이언트는 유사하게 구성된 다른 기존 클라이언트와 링을 공유합니다.
n > 0(0보다 큰 수)은 하드웨어 기반 클라이언트의 구성에만 적용됩니다. 이 숫자는 배타적 사용을 위해 클라이언트에 할당되는 링의 수량을 나타냅니다. 기본 NIC가 동적 링 할당을 지원하는 경우에만 숫자를 지정할 수 있습니다.
hw도 하드웨어 기반 클라이언트의 구성에 적용됩니다. 하지만 이러한 클라이언트의 경우 실제 전용 링 수를 지정할 수 없습니다. 대신 클라이언트당 고정된 링 수가 NIC 드라이버의 초기 구성에 따라 이미 설정되어 있습니다. 기본 NIC가 정적 링 할당만 지원하는 경우 *rings 등록 정보를 hw로 설정합니다.
현재 링 할당 및 사용에 대한 정보를 제공하려면 다음과 같은 추가 읽기 전용 링 등록 정보를 사용할 수 있습니다.
rxrings-available 및 txrings-available은 할당할 수 있는 Rx 및 Tx 링 수를 나타냅니다.
rxhwclnt-available 및 txhwclnt-available은 NIC에 구성할 수 있는 Rx 및 Tx 하드웨어 기반 클라이언트 수를 나타냅니다.
하드웨어 기반 클라이언트를 구성하려면 시스템에 있는 NIC의 링 할당 기능을 알고 있어야 합니다. 필요한 정보를 가져오려면 다음 명령을 사용합니다.
# dladm show-linkprop link
여기서 link는 특정 NIC의 데이터 링크를 나타냅니다.
특정 등록 정보를 표시하려면 다음 명령을 사용합니다.
# dladm show-linkprop -p property[,property,...] link
하드웨어 기반 클라이언트를 올바르게 구성하려면 다음을 확인해야 합니다.
NIC가 하드웨어 기반 클라이언트를 지원하는지 여부
명령 출력 결과의 rxrings 및 txrings 등록 정보는 NIC가 하드웨어 기반 클라이언트를 지원하는지 여부를 나타냅니다. 동일한 데이터에서 NIC가 지원하는 링 할당 유형을 확인할 수도 있습니다.
하드웨어 기반 클라이언트에 할당할 링의 가용성
명령 출력 결과의 rxrings-available 및 txrings-available 등록 정보는 하드웨어 기반 클라이언트에 할당할 수 있는 사용 가능한 Rx 링과 Tx 링을 나타냅니다.
링크에 구성할 수 있는 하드웨어 기반 클라이언트의 가용성
링은 세트로 할당됩니다. 사용 가능한 링 수와 전용 링을 사용할 수 있는 클라이언트 수 간에 일대일 관계는 없습니다. 따라서 링을 할당하려면 링의 가용성뿐 아니라 전용 링을 사용하도록 구성할 수 있는 추가 하드웨어 기반 클라이언트 수도 확인해야 합니다. 링과 하드웨어 기반 클라이언트를 모두 사용할 수 있는 경우에만 링을 할당할 수 있습니다.
명령 출력 결과의 rxhwclnt-available 및 txhwclnt-available 등록 정보는 전용 Rx 및 Tx 링을 사용하도록 구성할 수 있는 하드웨어 기반 클라이언트 수를 나타냅니다.
NIC가 링 할당을 지원하고 링과 하드웨어 기반 클라이언트를 사용할 수 있는 경우 하드웨어 기반 클라이언트를 구성하는 방법에 설명된 대로 시스템에 이 유형의 클라이언트를 구성할 수 있습니다. 또는 소프트웨어 기반 클라이언트를 만드는 방법에 설명된 대로 소프트웨어 기반 클라이언트를 대신 구성할 수 있습니다.
다음 예에서는 nxge NIC, ixgbe NIC 및 e1000g NIC의 링 관련 링크 등록 정보에 대해 표시되는 서로 다른 정보를 보여줍니다.
예 21-1 nxge NIC 링 정보
다음 예에서는 nxge NIC에 대한 링 정보를 보여줍니다.
# dladm show-linkprop nxge0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... nxge0 rxrings rw -- -- sw,<1-7> ... nxge0 txrings rw -- -- sw,<1-7> ... nxge0 rxrings-available r- 5 -- -- nxge0 txrings-available r- 5 -- -- nxge0 rxhwclnt-available r- 2 -- -- nxge0 txhwclnt-available r- 2 -- -- ...
POSSIBLE 필드에는 sw 및 <1-7>이 rxrings 및 txrings 등록 정보에 허용되는 값으로 나열됩니다. 이러한 값은 nxge가 하드웨어 기반 클라이언트 및 소프트웨어 기반 클라이언트를 모두 지원함을 나타냅니다. <1-7> 범위는 설정하는 Rx 링 또는 Tx 링 수가 지정한 범위 내에 있어야 함을 나타냅니다. 범위에서 NIC가 수신 및 전송측에서 모두 동적 링 할당을 지원하는 것을 추론할 수도 있습니다.
또한 *rings-available 등록 정보는 Rx 링 5개와 Tx 링 5개를 하드웨어 기반 클라이언트에 할당할 수 있음을 나타냅니다.
하지만 *clnt-available 등록 정보를 기반으로 사용 가능한 Rx 링을 배타적으로 사용할 수 있는 두 클라이언트만 구성할 수 있습니다. 마찬가지로, 사용 가능한 Tx 링을 배타적으로 사용할 수 있는 두 클라이언트만 구성할 수 있습니다.
예 21-2 ixgbe NIC 링 정보
다음 예에서는 ixgbe NIC에 대한 링 정보를 보여줍니다.
# dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ... ixgbe0 txrings rw -- -- sw,hw,<1-7> ... ixgbe0 rxrings-available r- 0 -- -- ixgbe0 txrings-available r- 5 -- -- ixgbe0 rxhwclnt-available r- 0 -- -- ixgbe0 txhwclnt-available r- 7 -- -- ...
rxrings 및 txrings 등록 정보의 POSSIBLE 필드는 ixgbe0에서 하드웨어 기반 클라이언트와 소프트웨어 기반 클라이언트를 모두 구성할 수 있음을 나타냅니다. Rx 링에는 정적 링 할당만 지원되며, 이 경우 하드웨어가 각 하드웨어 기반 클라이언트에 고정된 Rx 링 세트를 할당합니다. 하지만 Tx 링은 동적으로 할당할 수 있으므로 하드웨어 기반 클라이언트에 할당할 Tx 링 수를 결정할 수 있습니다(이 예에서는 최대 7개 링).
또한 *rings-available 등록 정보는 Tx 링 5개를 하드웨어 기반 클라이언트에 할당할 수 있지만 Rx 링은 할당할 수 없음을 나타냅니다.
최종적으로, *hwclnt-available 등록 정보를 기반으로 Tx 링을 배타적으로 사용할 하드웨어 기반 Tx 클라이언트를 7개 구성할 수 있습니다. 하지만 동적 Rx 링 할당은 ixgbe 카드에서 지원되지 않습니다. 따라서 지정한 전용 Rx 링 세트를 사용하여 하드웨어 기반 클라이언트를 만들 수 없습니다.
*rings-available 등록 정보 중 하나의 VALUE 필드 아래에 0이 있으면 다음 중 하나를 의미할 수 있습니다.
클라이언트에 할당할 수 있는 링이 더 이상 없습니다.
동적 링 할당이 지원되지 않습니다.
rxrings 및 txrings의 POSSIBLE 필드와 rxrings-available 및 txrings-available의 VALUE 필드를 비교하여 0의 의미를 확인할 수 있습니다.
예를 들어, 다음과 같이 txrings-available이 0이라고 가정합니다.
# dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 rxrings-available r- 0 -- -- ixgbe0 txrings-available r- 0 -- -- ...
이 출력 결과에서 rxrings-available의 VALUE 필드는 0이고 rxrings의 POSSIBLE 필드는 sw,hw입니다. 결합된 정보는 NIC가 동적 링 할당을 지원하지 않으므로 Rx 링을 사용할 수 없음을 의미합니다. 전송측에서 txrings-available의 VALUE 필드는 0이고 txrings의 POSSIBLE 필드는 sw,hw,<1-7>입니다. 결합된 정보는 모든 Tx 링이 이미 할당되었기 때문에 Tx 링을 사용할 수 없음을 나타냅니다. 하지만 txrings의 POSSIBLE 필드에 따라 동적 링 할당은 지원됩니다. 따라서 Tx 링을 사용할 수 있게 되면 해당 링을 할당할 수 있습니다.
예 21-3 e1000g NIC 링 정보
다음 예에서는 e1000g NIC에 대한 링 정보를 보여줍니다.
# dladm show-linkprop e1000g0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... e1000g0 rxrings rw -- -- -- ... e1000g0 txrings rw -- -- -- ... e1000g0 rxrings-available r- 0 -- -- e1000g0 txrings-available r- 0 -- -- e1000g0 rxhwclnt-available r- 0 -- -- e1000g0 txhwclnt-available r- 0 -- -- ...
출력 결과에 따르면 e1000g NIC에서 링 할당이 지원되지 않으므로 링과 하드웨어 기반 클라이언트를 모두 구성할 수 없습니다.
이 절차에서는 동적 링 할당을 지원하는 NIC 또는 정적 링 할당을 지원하는 NIC에서 하드웨어 기반 클라이언트를 구성하는 방법을 보여줍니다.
시작하기 전에
시스템의 NIC에 대해 다음 정보가 있는지 확인합니다.
NIC가 하드웨어 기반 클라이언트를 지원하는지 여부
NIC가 지원하는 링 할당 유형
하드웨어 기반 클라이언트에 할당할 링의 가용성
링크에 구성할 수 있는 하드웨어 기반 클라이언트의 가용성
이 정보를 가져오려면 하드웨어 기반 클라이언트 구성 준비를 참조하십시오.
NIC가 동적 링 할당을 지원하는 경우 다음 구문을 사용합니다.
# dladm create-vnic -p rxrings=number[,txrings=number] -l link vnic
클라이언트에 할당하는 Rx 링과 Tx 링 수를 나타냅니다. 이 숫자는 할당할 수 있는 링 수의 범위 내에 있어야 합니다.
주 - 일부 NIC는 Rx 링 또는 Tx 링에서 동적 할당을 지원하지만 두 유형에서 모두 지원하지는 않습니다. 동적 링 할당이 지원되는 링 유형에 대해 number를 지정합니다.
클라이언트를 만드는 데 사용 중인 데이터 링크를 나타냅니다.
구성 중인 클라이언트를 나타냅니다.
NIC가 정적 링 할당을 지원하는 경우 다음 구문을 사용합니다.
# dladm create-vnic -p rxrings=hw[,txrings=hw] -l link vnic
주 - 일부 NIC는 Rx 링 또는 Tx 링에서 정적 할당을 지원하지만 두 유형에서 모두 지원하지는 않습니다. 정적 링 할당이 지원되는 링 유형에 대해 hw를 지정합니다.
# dladm show-linkprop vnic
소프트웨어 기반 클라이언트는 링을 배타적으로 사용하지 않습니다. 대신 클라이언트는 주 클라이언트 또는 다른 기존 소프트웨어 기반 클라이언트가 있는 인터페이스와 링 사용을 공유하지 않습니다. 소프트웨어 기반 클라이언트의 링 수는 기존 하드웨어 기반 클라이언트 수에 따라 달라집니다.
새 소프트웨어 기반 클라이언트를 만들려면 다음 명령을 입력합니다.
# dladm create-vnic -p rxrings=sw[,txrings=sw] -l link vnic
클라이언트를 만드는 데 사용 중인 데이터 링크를 나타냅니다.
구성 중인 클라이언트를 나타냅니다.
기존 클라이언트가 다른 클라이언트와 링을 공유하도록 구성하려면 다음 명령을 입력합니다.
# dladm set-linkprop -p rxrings=sw[,txrings=sw] vnic
예 21-4 하드웨어 기반 클라이언트 및 소프트웨어 기반 클라이언트 구성
이 예에서는 ixgbe NIC가 있는 시스템에서 하드웨어 기반 클라이언트 및 소프트웨어 기반 클라이언트를 모두 구성하는 방법을 보여줍니다. 링 할당이 구현되는 방식을 보여주기 위해 이 예는 여러 부분으로 나뉘어져 있습니다. 링 관련 정보는 구성 프로세스의 각 단계에서 표시되고 설명됩니다. 구성은 다음과 같이 진행됩니다.
클라이언트 구성 전에 시스템의 링크 및 링 사용을 표시합니다.
주 클라이언트를 구성합니다.
소프트웨어 기반 클라이언트를 구성합니다.
전용 링 없이 다른 클라이언트를 구성합니다.
새로 구성된 클라이언트에 링을 정적으로 할당합니다.
동적으로 할당된 전용 링이 있는 세번째 클라이언트를 구성합니다.
먼저 링크, 링 사용 및 링 관련 등록 정보를 표시합니다.
# dladm show-link LINK CLASS MTU STATE BRIDGE OVER ixgbe0 phys 1500 down -- -- # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast> ixgbe0 TX 0-7 <default> ixgbe0 RX 2-3 -- ixgbe0 RX 4-5 -- ixgbe0 RX 6-7 -- # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 rxrings-effective r -- -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r -- -- -- ixgbe0 txrings-available r- 7 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 7 -- -- ...
명령 출력 결과에 시스템의 단일 링크 ixgbe0이 표시되지만 기존 클라이언트는 표시되지 않습니다. 또한 이 출력 결과에서 다음 정보도 얻을 수 있습니다.
NIC에 Rx 링 8개와 Tx 링 8개가 있습니다(링 0 - 7).
하드웨어 기반 클라이언트의 경우 Rx 링에 정적 링 할당만 지원되지만 Tx 링에는 정적 및 동적 링 할당이 모두 지원됩니다.
Rx 링과 Tx 링에 대해 모두 소프트웨어 기반 클라이언트를 구성할 수 있습니다.
1에서 7까지 Tx 링 7개를 다른 클라이언트에 동적으로 할당할 수 있습니다. 일반적으로 링 0은 주 클라이언트에 예약되었습니다. Rx 링에는 동적 링 할당이 지원되지 않으므로 Rx 링을 사용할 수 없습니다.
하드웨어 기반 클라이언트 3개는 Rx 링을 사용하도록 구성하고 하드웨어 기반 클라이언트 7개는 Tx 링을 사용하도록 구성할 수 있습니다.
*rings-effective 등록 정보에 대한 자세한 내용은 정적 링 할당에서 링 할당을 식별하는 방법을 참조하십시오.
다음은 주 클라이언트를 구성합니다.
# ipadm create-ip ixgbe0 # ipadm create-addr -T static -a 192.168.10.10/24 ixgbe0/v4 # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast> ixgbe0 TX 0-7 <default>ixgbe0 ixgbe0 RX 2-3 ixgbe0 ixgbe0 RX 4-5 -- ixgbe0 RX 6-7 -- # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 rxrings-effective r 2 -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r 8 -- -- ixgbe0 txrings-available r- 7 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 7 -- -- ...
출력 결과에서 다음 정보를 제공합니다.
주 클라이언트인 ixgbe0은 전용 사용을 위해 Rx 링 두 개(링 2와 3)를 자동으로 받습니다. 하지만 ixgbe0은 모든 Tx 링을 사용합니다. 기본적으로 사용되지 않은 모든 링은 주 클라이언트에 자동으로 할당됩니다.
다른 클라이언트에 할당할 수 있는 사용 가능한 Tx 링 수는 7개로 유지됩니다.
Rx 링으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 3개로 유지됩니다. Tx 링으로 동적으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 7개로 유지됩니다.
다음은 VNIC를 소프트웨어 기반 클라이언트로 만듭니다.
# dladm create-vnic -l ixgbe0 -p rxrings=sw,txrings=sw vnic0 # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast>,vnic0 ixgbe0 TX 0-7 <default>vnic0,ixgbe0 ixgbe0 RX 2-3 ixgbe0 ixgbe0 RX 4-5 -- ixgbe0 RX 6-7 -- # dladm show-linkprop vnic0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic0 rxrings rw sw -- sw,hw ... vnic0 txrings rw sw -- sw,hw,<1-7> ... # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- -- ixgbe0 rxrings-effective r 2 -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r -- -- -- ixgbe0 txrings-available r- 7 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 7 -- -- ...
출력 결과에서 다음 정보를 제공합니다.
소프트웨어 기반 클라이언트인 vnic0은 Rx 링 0과 1을 사용하도록 자동으로 할당됩니다. 이후에 생성된 Rx 링이 있는 기타 소프트웨어 기반 클라이언트는 기본적으로 이 쌍을 사용하도록 할당됩니다. 기본적으로 vnic0에는 Tx 링 8개(링 0 - 7) 사용도 모두 할당됩니다. 이후에 생성된 Tx 링이 있는 기타 소프트웨어 기반 클라이언트는 기본적으로 이 링 세트를 사용하도록 할당됩니다.
소프트웨어 기반 클라이언트인 vnic0의 rxrings 및 txrings 등록 정보가 sw로 적절하게 설정됩니다.
Tx 링은 할당되지 않습니다. 따라서 다른 클라이언트에 할당할 수 있는 사용 가능한 Tx 링 수는 7개로 유지됩니다.
Rx 링으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 3개로 유지됩니다. Tx 링으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 7개로 유지됩니다.
다음은 링 할당 없이 다른 클라이언트를 구성합니다.
# dladm create-vnic -l ixgbe0 vnic1 # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast>,vnic0 ixgbe0 TX 0,2-7 <default>vnic0,ixgbe0 ixgbe0 RX 2-3 ixgbe0 ixgbe0 RX 4-5 vnic1 ixgbe0 RX 6-7 -- ixgbe0 TX 1 vnic1 # dladm show-linkprop vnic1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic1 rxrings rw -- -- sw,hw vnic1 rxrings-effective r- 2 -- -- vnic1 txrings rw -- -- sw,hw,<1-7> vnic1 txrings-effective r- -- -- -- ... # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 rxrings-effective r- 2 -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r- -- -- -- ixgbe0 txrings-available r- 7 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 7 -- -- ...
출력 결과에서 다음 정보를 제공합니다.
링 할당이 지원되는 경우 rxrings 및 txrings 등록 정보가 설정되지 않았어도 구성된 클라이언트가 하드웨어 기반 클라이언트로 간주됩니다. 따라서 vnic1은 해당 사용을 위해 전용 Rx 링 두 개(링 4와 5)를 자동으로 받습니다. 마찬가지로, vnic1은 전용 Tx 링(링 1)도 받습니다.
8개 Tx 링 중에서 ixgbe0과 vnic0은 이제 7개 링(링 0과 링 2 - 7)을 공유합니다. 링 1은 vnic1의 전용 Tx 링이 되었습니다.
Tx 링은 할당되지 않습니다. 따라서 다른 클라이언트에 할당할 수 있는 사용 가능한 Tx 링 수는 7개로 유지됩니다.
Rx 링으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 3개로 유지됩니다. Tx 링으로 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수는 7개로 유지됩니다.
다음은 새로 구성된 클라이언트 vnic1에 링을 정적으로 할당합니다.
# dladm set-linkprop -p rxrings=hw,txrings=hw vnic1 # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast>,vnic0 ixgbe0 TX 0,2-7 <default>vnic0,ixgbe0 ixgbe0 RX 2-3 ixgbe0 ixgbe0 RX 4-5 vnic1 ixgbe0 RX 6-7 -- ixgbe0 TX 1 vnic1 # dladm show-linkprop vnic1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic1 rxrings rw hw -- sw,hw vnic1 rxrings-effective r- 2 -- -- vnic1 txrings rw hw -- sw,hw,<1-7> vnic1 txrings-effective r- -- -- -- ... # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 rxrings-effective r- 2 -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r- -- -- -- ixgbe0 txrings-available r- 6 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 6 -- -- ...
출력 결과에서 다음 정보를 제공합니다.
vnic1에 대한 Rx 및 Tx 배포는 링 할당 없이 vnic1이 생성된 경우와 동일하게 유지됩니다.
마찬가지로, 링 정보는 링 할당 없이 vnic1이 생성된 경우와 동일하게 유지됩니다.
vnic1의 rxrings 및 txrings 등록 정보가 명시적으로 hw로 설정되었습니다. 따라서 동적 할당에 사용 가능한 Tx 링 수가 6개로 감소했습니다. 마찬가지로, 구성할 수 있는 사용 가능한 하드웨어 기반 클라이언트 수도 6개로 감소했습니다.
다음은 동적으로 할당된 Tx 링이 있는 하드웨어 기반 클라이언트를 구성합니다.
# dladm create-vnic -l ixgbe0 -p txrings=2 vnic2 # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast>,vnic0 ixgbe0 TX 0,4-7 <default>vnic0,ixgbe0 ixgbe0 RX 2-3 ixgbe0 ixgbe0 RX 4-5 vnic1 ixgbe0 RX 6-7 vnic2 ixgbe0 TX 1 vnic1 ixgbe0 TX 2-3 vnic2 # dladm show-linkprop vnic2 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic2 rxrings rw -- -- sw,hw vnic2 rxrings-effective r- 2 -- -- vnic2 txrings rw 2 -- sw,hw,<1-7> vnic2 txrings-effective r- 2 -- -- ... # dladm show-linkprop ixgbe0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... ixgbe0 rxrings rw -- -- sw,hw ixgbe0 rxrings-effective r- 2 -- -- ixgbe0 txrings rw -- -- sw,hw,<1-7> ixgbe0 txrings-effective r- -- -- -- ixgbe0 txrings-available r- 4 -- -- ixgbe0 rxrings-available r- 0 -- -- ixgbe0 rxhwclnt-available r- 3 -- -- ixgbe0 txhwclnt-available r- 5 -- -- ...
출력 결과에서 다음 정보를 제공합니다.
하드웨어가 배타적 사용을 위해 한 쌍의 Rx 링(링 6 및 7)을 vnic2에 자동으로 할당했습니다. 하지만 관리자가 vnic2의 전용 Tx 링 두 개(링 2와 3)를 할당했습니다.
관리 차원에서 Tx 링 두 개가 vnic2에 할당되었으므로 다른 클라이언트에 할당할 수 있는 사용 가능한 Tx 링 수가 네 개로 감소했습니다.
vnic2는 Tx 링 두 개가 있는 하드웨어 기반 클라이언트로 구성되었으므로 구성할 수 있는 사용 가능한 클라이언트 수가 5개로 감소했습니다.
정적 링 할당을 사용하여 하드웨어 기반 클라이언트를 구성하는 경우 하드웨어가 할당할 링 수를 결정합니다. 하지만 rxrings 및 txrings 등록 정보는 hw로 설정되며 실제로 할당된 링 수를 나타내지 않습니다. 대신 rxrings-effective 및 txrings-effective 등록 정보를 확인하여 이 개수를 얻을 수 있습니다.
정적 링 할당으로 클라이언트를 만들려면 다음 명령을 입력합니다.
# dladm create-vnic -l link -p rxrings=hw[,txrings=hw] vnic
클라이언트를 만드는 데 사용 중인 데이터 링크를 나타냅니다.
구성 중인 클라이언트를 나타냅니다.
기존 클라이언트에 링을 정적으로 할당하려면 다음 명령을 입력합니다.
# dladm set-linkprop -p rxrings=hw[,txrings=hw] vnic
# dladm show-linkprop link
여기서 link는 하드웨어 기반 클라이언트 또는 VNIC를 나타냅니다.
예를 들어, Rx 링을 정적으로 할당한 경우 rxrings-effective 등록 정보를 확인합니다. Tx 링을 정적으로 할당한 경우 txrings-effective 등록 정보를 확인합니다. 이 숫자는 하드웨어가 할당한 링 수를 나타냅니다.
# dladm show-phys -H link
여기서 link는 주 클라이언트를 나타냅니다.
예 21-5 정적으로 할당된 링 식별
이 예에서는 ixgbe NIC에 구성된 클라이언트에 Rx 링이 정적으로 할당된 방식을 보여줍니다. 해당 NIC에서 Rx 링에는 정적 할당만 지원됩니다. 이 예는 다음과 같이 진행됩니다.
시스템의 링크를 표시합니다. 이 예에서는 시스템에 ixgbe0이라는 링크 하나만 있습니다.
정적으로 할당된 Rx 링이 있는 하드웨어 기반 클라이언트로 vnic1을 만듭니다.
링 정보를 표시하여 하드웨어가 할당한 링 수를 확인합니다.
링 사용을 표시하여 할당된 링을 식별합니다.
# dladm show-link LINK CLASS MTU STATE BRIDGE OVER ixgbe0 phys 1500 down -- -- # dladm create-vnic -l ixgbe0 -p rxrings=hw vnic1 # dladm show-linkprop vnic1 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE ... vnic1 rxrings rw hw -- sw,hw vnic1 rxrings-effective r- 2 -- -- vnic1 txrings rw -- -- sw,hw,<1-7> vnic1 txrings-effective r- -- -- -- # dladm show-phys -H ixgbe0 LINK RINGTYPE RINGS CLIENTS ixgbe0 RX 0-1 <default,mcast> ixgbe0 TX 0,2-7 <default> ixgbe0 RX 2-3 vnic1 ixgbe0 RX 4-5 -- ixgbe0 RX 6-7 -- ixgbe0 TX 1 vnic1 ...
출력 결과에 따르면 vnic1이 Rx 링으로 구성된 후 하드웨어가 rxrings-effective 등록 정보에 반영된 대로 전용 Rx 링 두 개를 할당했습니다. dladm show-phys -H 명령의 출력 결과를 기준으로 Rx 링 2와 3이 vnic1 전용으로 지정되었습니다.
클라이언트로 구성된 결과, vnic1은 전용 사용을 위해 Tx 링 1도 자동으로 받았습니다. 하지만 txrings 등록 정보가 명시적으로 설정되지 않았으므로 txrings-effective 등록 정보가 아무 값도 표시하지 않습니다.
풀은 네트워크 처리를 CPU 풀에 바인딩할 수 있는 링크 등록 정보입니다. 이 등록 정보를 사용하면 네트워크 리소스 관리와 영역의 CPU 바인딩 및 관리를 보다 효율적으로 통합할 수 있습니다. Oracle Solaris에서 영역 관리에는 zonecfg 또는 poolcfg 명령을 사용하여 CPU 리소스 풀에 비네트워킹 프로세스를 바인딩하는 작업이 포함됩니다. 동일한 리소스 풀을 바인딩하여 네트워크 프로세스도 관리하려면 dladm set-linkprop 명령을 사용하여 링크의 pool 등록 정보를 구성합니다. 그런 다음 해당 링크를 영역에 할당합니다.
링크에 pool 등록 정보를 설정하고 링크를 영역의 네트워크 인터페이스로 할당하면 해당 링크가 영역의 풀에도 바인딩됩니다. 해당 영역이 배타적 영역이 되도록 설정된 경우 이 영역에 할당되지 않은 다른 데이터 링크가 풀의 CPU 리소스를 더 이상 사용할 수 없습니다.
주 - 별도의 등록 정보인 cpu를 설정하여 데이터 링크에 특정 CPU를 할당할 수 있습니다. cpu와 pool 등록 정보는 상호 배타적입니다. 두 등록 정보를 지정된 데이터 링크에 모두 설정할 수는 없습니다. cpu 등록 정보를 사용하여 데이터 링크에 CPU 리소스를 할당하려면 링크에 CPU를 할당하는 방법을 참조하십시오.
영역 내의 풀에 대한 자세한 내용은 Oracle Solaris 관리: Oracle Solaris Zones, Oracle Solaris 10 Zones 및 리소스 관리의 13 장, 리소스 풀 만들기 및 관리(작업)를 참조하십시오. 풀 만들기 및 풀에 CPU 세트 할당에 대한 자세한 내용은 poolcfg(1M) 매뉴얼 페이지를 참조하십시오.
다음 그림에서는 pool 등록 정보가 데이터 링크에 할당된 경우 풀 작동 방식을 보여줍니다.
그림 21-1 영역에 할당된 VNIC의 pool 등록 정보
이 그림의 시스템에는 CPU가 8개 있습니다. 시스템에 구성된 풀이 없을 경우 모든 CPU가 기본 풀에 속하며 전역 영역에서 사용됩니다. 하지만 이 예에서는 pool99 풀이 생성되었으며 CPU 3과 CPU 4로 구성됩니다. 이 풀은 배타적 영역인 zone1과 연결됩니다. pool99를 vnic1의 등록 정보로 설정하면 pool99는 vnic1의 네트워킹 프로세스 관리 전용이 됩니다. vnic1이 zone1의 네트워킹 인터페이스에 할당된 후 pool99의 CPU가 zone1의 네트워킹 및 비네트워킹 프로세스를 모두 관리하도록 예약됩니다.
pool 등록 정보는 기본적으로 동적입니다. 일정 범위의 CPU로 영역 풀을 구성할 수 있으며 커널에 따라 풀의 CPU 세트에 할당되는 CPU가 결정됩니다. 데이터 링크에 대한 풀 변경 사항은 자동으로 구현되므로 해당 링크의 풀 관리가 간소화됩니다. 반면, cpu 등록 정보를 사용하여 링크에 특정 CPU를 할당하려면 할당할 CPU를 지정해야 합니다. 풀의 CPU 구성 요소를 변경할 때마다 cpu 등록 정보를 설정해야 합니다.
예를 들어, 그림 21-1의 시스템에서 CPU 4는 오프라인 상태로 전환되었습니다. pool 등록 정보는 동적이기 때문에 소프트웨어가 추가 CPU를 풀과 자동으로 연결합니다. 따라서 CPU 두 개로 이루어진 풀의 원래 구성이 보존됩니다. vnic1의 경우 변경 작업이 투명합니다. 다음 그림에서는 조정된 구성을 보여줍니다.
그림 21-2 pool 등록 정보의 자동 재구성
추가 풀 관련 등록 정보는 데이터 링크의 CPU 또는 CPU 풀 사용에 대한 정보를 표시합니다. 이러한 등록 정보는 읽기 전용이며 관리자가 설정할 수 없습니다.
pool-effective는 네트워크 프로세스에 사용 중인 풀을 표시합니다.
cpus-effective는 네트워크 프로세스에 사용 중인 CPU 목록을 표시합니다.
일반적으로 영역의 CPU 리소스를 관리하기 위해 초기 단계로 데이터 링크의 pool 등록 정보를 설정하지는 않습니다. 대체로 zonecfg 및 poolcfg와 같은 명령은 리소스 풀을 사용하도록 영역을 구성하는 데 사용됩니다. cpu 및 pool 링크 등록 정보 자체는 설정되지 않습니다. 이 경우 데이터 링크의 pool-effective 및 cpus-effective 등록 정보는 영역을 부트할 때 해당 영역의 구성에 따라 자동으로 설정됩니다. 기본 풀은 pool-effective 아래에 표시되고 cpus-effective 값은 시스템에서 선택합니다. 따라서 dladm show-linkprop 명령을 사용하는 경우 pool 및 cpu 등록 정보는 비어 있지만 pool-effective 및 cpus-effective 등록 정보에는 값이 포함됩니다.
영역의 CPU 풀을 네트워킹 프로세스에 바인딩하는 대신 데이터 링크의 pool 및 cpu 등록 정보를 직접 설정할 수도 있습니다. 이러한 등록 정보를 구성하면 해당 값이 pool-effective 및 cpus-effective 등록 정보에도 반영됩니다. 하지만 이 대체 단계는 영역의 네트워크 리소스 관리에 자주 사용되지 않습니다.
다른 링크 등록 정보와 마찬가지로, 링크를 만들 때 또는 나중에 링크의 추가 구성이 필요할 때 데이터 링크에 대해 pool 등록 정보를 설정할 수 있습니다. 예를 들면 다음과 같습니다.
# dladm create-vnic -p pool=pool-name -l link vnic
VNIC를 만드는 동안 pool 등록 정보를 설정합니다. 기존 VNIC의 pool 등록 정보를 설정하려면 다음 구문을 사용합니다.
# dladm setlinkprop -p pool=pool-name vnic
다음 절차에서는 VNIC에 대해 CPU 풀을 구성하는 단계를 제공합니다.
시작하기 전에
다음을 완료한 상태여야 합니다.
할당된 개수의 CPU를 사용하여 프로세서 세트를 생성했습니다.
프로세서 세트가 연결될 풀을 생성했습니다.
프로세서 세트와 풀을 연결했습니다.
주 - 이러한 필수 조건을 완료하는 지침은 Oracle Solaris 관리: Oracle Solaris Zones, Oracle Solaris 10 Zones 및 리소스 관리의 구성을 수정하는 방법을 참조하십시오.
VNIC가 아직 생성되지 않은 경우 다음 구문을 사용합니다.
# dladm create-vnic -l link -p pool=pool vnic
여기서 pool은 영역에 대해 생성된 풀의 이름을 나타냅니다.
VNIC가 있는 경우 다음 구문을 사용합니다.
# dladm setlinkprop -p pool=pool vnic
zonecfg>zoneid:net> set physical=vnic
주 - 영역에 네트워킹 인터페이스를 할당하는 방법을 설명하는 전체 단계는 Oracle Solaris 관리: Oracle Solaris Zones, Oracle Solaris 10 Zones 및 리소스 관리의 영역 구성, 확인 및 커밋을 참조하십시오.
예 21-6 배타적 IP 유형을 사용하여 영역에 링크의 CPU 풀 할당
이 예에서는 영역의 데이터 링크에 풀이 할당되는 방식을 보여줍니다. 이 시나리오는 그림 21-1의 구성을 기반으로 합니다. 이 예에서는 pool99라는 CPU 풀이 영역에 대해 이미 구성되었다고 가정합니다. 그런 다음 VNIC에 풀이 할당됩니다. 최종적으로, 비전역 영역 zone1이 VNIC를 네트워킹 인터페이스로 사용하도록 설정됩니다.
# dladm create-vnic -l e1000g0 -p pool99 vnic0 # zonecfg -c zone1 zonecfg:zone1> set ip-type=exclusive zonecfg:zone1> add net zonecfg:zone1>net> set physical=vnic0 zonecfg:zone1>net> end zonecfg:zone1> exit
다음 절차에서는 cpu 등록 정보를 구성하여 데이터 링크를 순회하는 트래픽을 처리하도록 특정 CPU를 할당하는 방법에 대해 설명합니다.
# dladm show-linkprop -p cpus link
기본적으로 특정 인터페이스에는 CPU가 할당되지 않습니다. 따라서 명령 출력 결과의 VALUE 매개변수에는 항목이 포함되지 않습니다.
# echo ::interrupts | mdb -k
CPU 번호를 포함하여 시스템의 각 링크에 대한 매개변수가 출력 결과에 나열됩니다.
CPU는 링크의 인터럽트가 연결된 CPU를 포함할 수 있습니다.
# dladm set-linkprop -p cpus=cpu1,cpu2,... link
여기서 cpu1은 링크에 할당할 CPU 번호입니다. 링크 전용으로 여러 CPU를 지정할 수 있습니다.
# echo ::interrupts | mdb -k
# dladm show-linkprop -p cpus link
예 21-7 인터페이스에 CPU 할당
이 예에서는 그림 18-3의 internal0 인터페이스에 특정 CPU를 전용으로 지정하는 방법을 보여줍니다.
여러 명령으로 생성된 출력 결과에서 다음 정보를 확인합니다. 알아보기 쉽도록 출력 결과에서 중요한 정보가 강조 표시됩니다.
기본적으로 internal0에는 전용 CPU가 없습니다. 따라서 VALUE는 --입니다.
internal0의 인터럽트는 CPU 18과 연결됩니다.
CPU가 할당된 후 internal0은 VALUE 아래에 새 CPU 목록을 표시합니다.
# dladm show-linkprop -p cpus internal0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE internal0 cpus rw -- -- -- # echo ::interrupts | mdb -k Device Shared Type MSG # State INO Mondo Pil CPU external#0 no MSI 3 enbl 0x1b 0x1b 6 0 internal#0 no MSI 2 enbl 0x1a 0x1a 6 18 # dladm set-linkprop -p cpus=14,18,19,20 internal0 # dladm show-linkprop -p cpus internal0 LINK PROPERTY PERM VALUE DEFAULT POSSIBLE internal0 cpus rw 14,18,19,20 -- --
인터럽트가 포함된 모든 지원 스레드가 이제 새로 할당된 CPU 세트로 제한됩니다.