6.2. 하나의 sysctl 플래그 설정
SR-IOV 네트워크 장치에 연결된 Pod에 대해 인터페이스 수준 네트워크 sysctl
설정을 지정할 수 있습니다.
이 예에서 net.ipv4.conf.IFNAME.accept_redirects는
생성된 가상 인터페이스에서 1
로 설정됩니다.
이 예제에서는 sysctl-tuning-test가
사용된 네임스페이스입니다.
다음 명령을 사용하여
sysctl-tuning-test
네임스페이스를 만듭니다.oc create namespace sysctl-tuning-test
$ oc create namespace sysctl-tuning-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.1. SR-IOV 네트워크 장치가 있는 노드에 하나의 sysctl 플래그 설정 링크 복사링크가 클립보드에 복사되었습니다!
SR-IOV Network Operator는 SriovNetworkNodePolicy.sriovnetwork.openshift.io
CustomResourceDefinition을 OpenShift Container Platform에 추가합니다. SriovNetworkNodePolicy CR(사용자 정의 리소스)을 만들어 SR-IOV 네트워크 장치를 구성할 수 있습니다.
SriovNetworkNodePolicy
개체에 지정된 구성을 적용할 때 SR-IOV 운영자가 노드를 비우고 재부팅할 수 있습니다.
구성 변경 사항을 적용하는 데 몇 분이 걸릴 수 있습니다.
SriovNetworkNodePolicy
사용자 정의 리소스(CR)를 생성하려면 다음 절차를 따르세요.
프로세스
SriovNetworkNodePolicy CR(사용자 정의 리소스)을 생성합니다. 예를 들어, 다음 YAML을
policyoneflag-sriov-node-network.yaml
파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 사용자 정의 리소스 오브젝트의 이름입니다.
- 2
- SR-IOV Network Operator가 설치된 네임스페이스입니다.
- 3
- SR-IOV 네트워크 장치 플러그인의 리소스 이름입니다. 리소스 이름에 대한 SR-IOV 네트워크 노드 정책을 여러 개 생성할 수 있습니다.
- 4
- 노드 선택기는 구성할 노드를 지정합니다. 선택한 노드의 SR-IOV 네트워크 장치만 구성됩니다. SR-IOV CNI(Container Network Interface) 플러그인 및 장치 플러그인은 선택된 노드에만 배포됩니다.
- 5
- 선택 사항: 우선순위는
0
에서99
사이의 정수 값입니다. 작은 값은 우선순위가 높습니다. 예를 들어 우선순위10
은 우선순위99
보다 높습니다. 기본값은99
입니다. - 6
- SR-IOV 물리적 네트워크 장치에 생성할 VF(가상 기능) 수입니다. Intel NIC(Network Interface Controller)의 경우 VF 수는 장치에서 지원하는 총 VF보다 클 수 없습니다. Mellanox NIC의 경우 VF 수는
128
보다 클 수 없습니다. - 7
- NIC 선택기는 Operator가 구성할 장치를 식별합니다. 모든 매개변수에 값을 지정할 필요는 없습니다. 실수로 장치를 선택하지 않도록 네트워크 장치를 정확하게 파악하는 것이 좋습니다.
rootDevices
를 지정하면vendor
,deviceID
또는pfNames
의 값도 지정해야 합니다.pfNames
와rootDevices
를 동시에 지정하는 경우 동일한 장치를 참조하는지 확인하십시오.netFilter
의 값을 지정하는 경우 네트워크 ID가 고유하므로 다른 매개변수를 지정할 필요가 없습니다. - 8
- 선택사항: 장치에 대해 하나 이상의 물리적 기능(PF) 이름으로 구성된 배열입니다.
- 9
- 선택사항: 가상 기능의 드라이버 유형입니다. 허용되는 값은
netdevice
뿐입니다. Mellanox NIC가 베어 메탈 노드에서 DPDK 모드로 작동하려면isRdma를
true
로 설정합니다. - 10
- 선택 사항: 원격 직접 메모리 액세스(RDMA) 모드를 활성화할지 여부를 구성합니다. 기본값은
false
입니다.isRdma
매개변수가true
로 설정된 경우 RDMA 사용 VF를 일반 네트워크 장치로 계속 사용할 수 있습니다. 어느 모드에서나 장치를 사용할 수 있습니다.isRdma
를true
로 설정하고 추가로needVhostNet
을true
로 설정하여 Fast Datapath DPDK 애플리케이션에서 사용할 Mellanox NIC를 구성합니다.
참고vfio-pci
드라이버 유형이 지원되지 않습니다.SriovNetworkNodePolicy
오브젝트를 생성합니다.oc create -f policyoneflag-sriov-node-network.yaml
$ oc create -f policyoneflag-sriov-node-network.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 업데이트를 적용한 후
sriov-network-operator
네임스페이스의 모든 포드가실행
상태로 변경됩니다.SR-IOV 네트워크 장치가 구성되어 있는지 확인하려면 다음 명령을 입력합니다.
<node_name>
을 방금 구성한 SR-IOV 네트워크 장치가 있는 노드 이름으로 바꿉니다. 예상 출력은Succeeded
입니다.oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'
$ oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath='{.status.syncStatus}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.2. SR-IOV 네트워크에서 sysctl 구성 링크 복사링크가 클립보드에 복사되었습니다!
SR-IOV에서 생성된 가상 인터페이스에 인터페이스별 sysctl
설정을 지정하려면 SriovNetwork
리소스의 선택적 metaPlugins
매개변수에 튜닝 구성을 추가합니다.
SR-IOV Network Operator는 추가 네트워크 정의를 관리합니다. 생성할 추가 SR-IOV 네트워크를 지정하면 SR-IOV Network Operator가 NetworkAttachmentDefinition
CR(사용자 정의 리소스)을 자동으로 생성합니다.
SR-IOV Network Operator가 관리하는 NetworkAttachmentDefinition
사용자 정의 리소스를 편집하지 마십시오. 편집하면 추가 네트워크의 네트워크 트래픽이 중단될 수 있습니다.
인터페이스 수준 네트워크 net.ipv4.conf.IFNAME.accept_redirects
sysctl
설정을 변경하려면 컨테이너 네트워크 인터페이스(CNI) 튜닝 플러그인을 사용하여 추가 SR-IOV 네트워크를 만듭니다.
사전 요구 사항
- OpenShift Container Platform CLI, oc를 설치합니다.
- cluster-admin 역할의 사용자로 OpenShift Container Platform 클러스터에 로그인합니다.
프로세스
추가 SR-IOV 네트워크 연결에 대한
SriovNetwork
CR(사용자 정의 리소스)을 생성하고 다음 예제 CR과 같이metaPlugins
구성을 삽입합니다. YAML을sriov-network-interface-sysctl.yaml
파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 오브젝트의 이름입니다. SR-IOV 네트워크 운영자는 동일한 이름으로 NetworkAttachmentDefinition 객체를 생성합니다.
- 2
- SR-IOV Network Operator가 설치된 네임스페이스입니다.
- 3
- 이 추가 네트워크에 대한 SR-IOV 하드웨어를 정의하는
SriovNetworkNodePolicy
오브젝트의spec.resourceName
매개변수 값입니다. - 4
SriovNetwork
오브젝트의 대상 네임스페이스입니다. 대상 네임스페이스의 포드만 추가 네트워크에 연결할 수 있습니다.- 5
- YAML 블록 스칼라로서 IPAM CNI 플러그인에 대한 구성 개체입니다. 이 플러그인은 첨부 파일 정의에 대한 IP 주소 할당을 관리합니다.
- 6
- 선택 사항: 추가 네트워크에 대한 기능을 설정합니다.
"{"ips": true}"
를 지정하여 IP 주소 지원을 활성화하거나"{"mac":true}"
를 지정하여 MAC 주소 지원을 활성화할 수 있습니다. - 7
- 선택 사항: metaPlugins 매개변수는 장치에 추가 기능을 추가하는 데 사용됩니다. 이 사용 사례에서는
유형
필드를튜닝
으로 설정합니다.sysctl
필드에 설정하려는 인터페이스 수준 네트워크sysctl을
지정합니다.
SriovNetwork
리소스를 생성합니다.oc create -f sriov-network-interface-sysctl.yaml
$ oc create -f sriov-network-interface-sysctl.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NetworkAttachmentDefinition
CR이 성공적으로 생성되었는지 확인
다음 명령을 실행하여 SR-IOV 네트워크 운영자가
NetworkAttachmentDefinition
CR을 생성했는지 확인하세요.oc get network-attachment-definitions -n <namespace>
$ oc get network-attachment-definitions -n <namespace>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<네임스페이스>를
SriovNetwork
개체에서 지정한networkNamespace
값으로 바꾸세요. 예를 들어,sysctl-tuning-test
. 예상되는 출력에는 NAD CRD의 이름과 생성 시간(분)이 표시됩니다.
참고SR-IOV Network Operator가 CR을 생성하기 전에 지연이 발생할 수 있습니다.
추가 SR-IOV 네트워크 연결에 성공했는지 확인
튜닝 CNI가 올바르게 구성되었고 추가 SR-IOV 네트워크 연결이 연결되었는지 확인하려면 다음을 수행합니다.
Pod
CR을 생성합니다. 다음 YAML을examplepod.yaml
파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SR-IOV 네트워크 연결 정의 CR의 이름입니다.
- 2
- 선택사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 MAC 주소입니다. 이 기능을 사용하려면 SriovNetwork 개체에서
{ "mac": true }
도 지정해야 합니다. - 3
- 선택 사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 IP 주소입니다. IPv4 및 IPv6 주소가 모두 지원됩니다. 이 기능을 사용하려면
SriovNetwork
오브젝트에{ "ips": true }
도 지정해야 합니다.
Pod
CR 만들기:oc apply -f examplepod.yaml
$ oc apply -f examplepod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod가 생성되었는지 확인하세요.
oc get pod -n sysctl-tuning-test
$ oc get pod -n sysctl-tuning-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s
NAME READY STATUS RESTARTS AGE tunepod 1/1 Running 0 47s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod에 로그인합니다.
oc rsh -n sysctl-tuning-test tunepod
$ oc rsh -n sysctl-tuning-test tunepod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성된 sysctl 플래그의 값을 확인합니다. 다음 명령을 실행하여
net.ipv4.conf.IFNAME.accept_redirects
값을 찾으세요.sysctl net.ipv4.conf.net1.accept_redirects
$ sysctl net.ipv4.conf.net1.accept_redirects
Copy to Clipboard Copied! Toggle word wrap Toggle overflow