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 |
'리눅스 > 이슈 확인' 카테고리의 다른 글
[ISSUE] 리눅스 9시간 차이 (RTC / TIMEZONE / Local time) (0) | 2023.01.26 |
---|---|
[ISSUE] pip3 를 통한 install 실패 현상 (0) | 2022.08.30 |
[ISSUE] 서버의 ssh 접속 불가 현상 (port 22) (0) | 2022.02.08 |
[ISSUE] su 명령어를 통한 root 스위칭 불가 현상 (0) | 2022.02.03 |
[ISSUE] auditd stop/restart 불가 현상 (0) | 2022.01.25 |