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-testCopy 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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 업데이트를 적용하면
sriov-network-operator네임스페이스의 모든 Pod가Running상태로 전환됩니다.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 네트워크 연결에 대한
SriovNetworkCR(사용자 정의 리소스)을 생성하고 다음 예제 CR과 같이metaPlugins구성을 삽입합니다. YAML을sriov-network-interface-sysctl.yaml파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 오브젝트의 이름입니다. SR-IOV Network Operator는 동일한 이름으로 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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
NetworkAttachmentDefinition CR이 성공적으로 생성되었는지 확인
SR-IOV Network Operator가 다음 명령을 실행하여
NetworkAttachmentDefinitionCR을 생성했는지 확인합니다.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 네트워크 연결에 성공했는지 확인
VRF CNI가 올바르게 구성되어 추가 SR-IOV 네트워크 연결이 연결되었는지 확인하려면 다음을 수행하십시오.
PodCR을 생성합니다. 다음 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 }도 지정해야 합니다.
PodCR 만들기:oc apply -f examplepod.yaml
$ oc apply -f examplepod.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod가 생성되었는지 확인하세요.
oc get pod -n sysctl-tuning-test
$ oc get pod -n sysctl-tuning-testCopy 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 47sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Pod에 로그인합니다.
oc rsh -n sysctl-tuning-test tunepod
$ oc rsh -n sysctl-tuning-test tunepodCopy 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_redirectsCopy to Clipboard Copied! Toggle word wrap Toggle overflow