리눅스/이슈 확인

[ISSUE] Dell vxrail / VMware 3개 이상의 VMXNET3 인터페이스 추가 시 인터페이스 순서가 바뀌는 현상

ㅎㄷㄹㅁㅇ 2022. 5. 19. 20:17
반응형

VMware  VMXNET3(10G) 인터페이스 순서 꼬임 현상

설명

 SuSE를 사용하는 VMWare에서 VMXNET3  NIC 카드가 3개 이상 있는 경우 추가된 NIC 카드와 실제 가상 장비의 인터페이스는 순서가 정확하게 Mapping 되지 않았습니다.

 

 

 

증상

이미 2개의 NIC 카드를 셋팅해둔 가상장비에서 NIC카드를 추가했을 경우 NIC 인터페이스의 순서가 변경되는 경우를 발견했습니다. 

 

 

 

확인 내용

아래 표를 확인 하면 가상 머신에서 추가되는 vSphere adpater와 인터페이스 name 순서가 다른 것을 확인할 수 있었습니다. 현재 테스트 환경에 VMware 장비가 없어 정확한 확인이 어렵지만,  실제 사이트에서 작업을 했을 때 ethtool 명령어를 통해 bus-info 주소를 확인했습니다. 기존에 추가되어있던 3개의 NIC 카드의 버스 주소가 00:00:01 00:00:02 01:00:01 등의 형태로 되어있었고 한 개의 NIC 카드를 더 추가했더니 00:00:03의 형태로 Bus-info의 주소가 3번째의 카드와는 다르게 올라왔습니다. 이때 가상화 장비에서는 Bus-info의 주소를 가지고 순서 정렬이 되는 것 같았으며, 1,2,4,3의 형태로 변경되었습니다. 

vSphere adapter Interface name(bus, function, device)
vSphere first adapter eth0 (0, 5, 0)
vSphere fourth adapter eth1 (0, 6, 0)
vSphere seventh adapter eth2 (0, 7, 0)
vSphere nineth adapter eth3 (0, 8, 0)
vSphere second adapter eth4 (1, 5, 0)
vSphere fifth adapter eth5 (1, 6, 0)
vSphere eight adapter eth6 (1, 7, 0)
vSphere tenth adapter eth7 (1, 8, 0)
vSphere third adapter eth8 (2, 5, 0)
vSphere sixth adapter eth9 (2, 6, 0)
* 참고
SLES Virtual Machine on VMWare with 3 or more NICs does not keep the same NIC order | Support | SUSE 
위 문서의  그림파일을 표로 복사 했습니다. 

 

 

 

해결 방법

문서를 확인한 결과 MAC binding의 방식으로 /etc/udev/rules.d/70-persistent-net.rules의 파일을 수정하여 MAC address를 기준으로 인터페이스 이름을 정하도록 했습니다. 제가 담당했던 사이트에서는 PCI Bus binding을 통해 Bus-info를 기준으로 인터페이스 mapping 을 진행했습니다.

 

전 RHEL 기준으로 아래 스크립트를 사용하여 나온 결과를 /etc/udev/rules.d/70-persistent-net.rules에 추가 한 뒤 서버를 재기동했습니다. 실제로 서버 재기동 없이 진행하는 방법도 있지만 패스하겠습니다. (궁금하시면 댓글 문의)

 

#!/bin/bash
VERSION_6=`uname -r | grep el6 | wc -l`
VERSION_7=`uname -r | grep el7 | wc -l`

if [ $VERSION_6 == "1"  ];then
for i in $(ifconfig -a | egrep "^eth|^enp|^ens|^eno|^em" | awk '{print $1}');do echo "KERNEL==\"eth*\", ID==\"`ethtool -i ${i} | grep bus | awk '{print $2}'`\", NAME=\"${i}\"";done   
perl -pi -e "s/HWADDR/#HWADDR/g" /etc/sysconfig/network-scripts/ifcfg-*
perl -pi -e "s/UUID/#UUID/g" /etc/sysconfig/network-scripts/ifcfg-*

fi

if [ $VERSION_7 == "1"  ];then
for i in $(ifconfig -a | egrep "^eth|^enp|^ens|^eno|^em" | awk -F ':' '{print$1}'); do echo "KERNELS==\"`ethtool -i $i | grep bus | awk '{print$2}'`\",NAME=\"$i\"" ; done 
perl -pi -e "s/HWADDR/#HWADDR/g" /etc/sysconfig/network-scripts/ifcfg-*
fi

 

 

Ref

* 참고 사이트 & 문헌
Mapping PCI slot numbers to guest-visible PCI bus topology (2047927) (vmware.com)
SLES Virtual Machine on VMWare with 3 or more NICs does not keep the same NIC order | Support | SUSE

 

반응형
TOP