** centos, ubuntu 네트워크 장치명 변경 및 고정
* os 자동화 설치를 운영중에 예상치 못한 상황 발생. 똑같은 메인 보드, 똑같은 펌웨어, 똑같은 os이미지, 똑같은 10G 랜카드를 사용했으나 어떤 서버는 장치명이 정상적으로 고정되지만, 어떤 서버는 장치명이 변경 조차 안되고, 디바이스 장치 순서가 무작위로 변경되는 현상이 발생. (특히 pci 장치 우선순위 무시)* 네트워크 장치명 변경. cento7, ubuntu 14.x ~ 16.04 들은 기존에 사용하던 장치 명들은 eth0 에서 eno1,em1, p2p1 등으로 변경 된다. 변경된 장치명을 사용하면 그만이지만 특정 작업으로 인해 장치명이 변경 되어야 할때가 있어서 불편함이 생기게 되는데 이때 기존에 사용하던 eth 로 변경하면 됩니다.
* centos 6은 기본장치가 eth0 이지만, pci 장치 슬롯을 사용할 경우 장치 순서가 바뀌는 현상이 발생할때 사용했고, 이 포스팅은 pic 10G 랜카드 장착 을 기준으로 작성합니다.
[ centos6 ] [root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules [root@localhost ~]# /etc/init.d/udev-post stop [root@localhost ~]# chkconfig udev-post off [root@localhost ~]# chkconfig --list | grep udev-post udev-post 0:해제 1:활성 2:활성 3:해제 4:활성 5:해제 6:해제 또는 setup, 시스템 서비스에서 udev-post 체크 해제 * centos6 에서는 70-persistent-net.rules 에서 mac address 와 장치명 고정의 필요성을 느끼진 않지만, 작업에 따라서는 고정을 하기도 합니다. 때문에 삭제 해도 무방합니다. [root@localhost ~]# reboot
* centos 7, ubuntu 16.04 는 기본 onborad 장치명은 다르나 변경 방법은 같습니다.
[ centos7, ubuntu 16.04 ] [ ex1. ] =============================================================================================== * 해당 예제는 기본적으로 pci의 우선순위가 먼저이기 때문에 centos6 처럼 70-persistent-net.rules 필요 없게 됩니다. 해당 파일을 삭제 하시거나 내용을 주석 처리 합니다. [root@localhost 03:05:38:~]# vi /etc/default/grub ... GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0" ... *centos7 [root@localhost 03:05:38:~]# grub2-mkconfig -o /boot/grub2/grub.cfg *ubuntu [root@localhost 03:05:38:~]# update-grub [root@localhost 03:05:38:~]# reboot 또는 [root@localhost 03:05:38:~]# vi /boot/grub2/grub.cfg /vmlinuz 검색 후 해당 라인 맨뒤에 net.ifnames=0 biosdevname=0 삽입(사용 커널 순서) [root@localhost 03:05:38:~]# reboot * 해당 작업이 끝나면 모든 네트워크 장치명은 eht0,1,2 등으로 변경이 됩니다. ifcfg-eth0, interface 파일의 내용 역시 수정 해야 합니다. =============================================================================================== [ ex2. ] =============================================================================================== [root@localhost 03:05:38:~]# vi /etc/udev/rules.d/70-persistent-net.rules SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="{MacAddress}", ATTR{type}=="1", KERNEL=="{장치명}", NAME="eth0" * 채색 부분에 맥주소와, 기존 기바이스 장치명 [root@localhost 03:05:38:~]# reboot * 해당 방법은 다른 장치는 변경 하지 않고, 70-persistent-net.rules 에 입력된 맥주소의 장치명만 변경 하게 됩니다. =============================================================================================== [ ex3. ] =============================================================================================== * 10G 랜카드를 이용하든, 안하는 위 3가지 방법이면 전부 해결이 될 것 입니다. 하지만 꼭 변수가 생기기 마련이니다. 맨위에 말했듯이 모두 동일한 조건이지만 pci 슬롯이 우선순위를 못잡고, 계속 장비명이 변경 되는 일이 발생 할때한 작업입니다. 해당 방법이 정답은 아닙니지만, 원인 파악 할때까지는 사용할 수 있는 방법 입니다. * centos7 [root@localhost ]# rmmod igb [root@localhost ]# rmmod ixgbe [root@localhost ]# modprobe ixgbe [root@localhost ]# modprobe igb [root@localhost ]# ifup eth0 [root@localhost ]# ifup eth1 [root@localhost ]# vi /etc/init.d/Network_Sort rmmod igb rmmod ixgbe modprobe ixgbe modprobe igb ifup eth0 ifup eth1 [root@localhost ]# chmod 755 /etc/init.d/Network_Sort [root@localhost ]# vi /etc/rc.local /etc/init.d/Network_Sort * 1G모듈과 10G 모듈을 둘다 제거 후 등록 하면, 우선으로 올린 모듈이 eth0으로 잡히게 됩니다. 확인은 modprobe ixgbe 후 ip link 를 입력하시면 장치명을 확인 할 수 있습니다. *ubuntu [root@localhost ]# rmmod igb [root@localhost ]# rmmod ixgbe [root@localhost ]# modprobe ixgbe [root@localhost ]# vi /etc/modprobe.d/blacklist.conf black list igb [root@localhost ]# update-initramfs -u [root@localhost ]# reboot *centos7 (cent7은 blacklist에 따로 작성 안하고 grub cmd line에서 해당 모듈 등록 후 적용) [root@localhost ]# vi /etc/default/grub GRUB_CMDLINE_LINUX="crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=ko net.ifnames=0 biosdevname=0 blacklist=igb igb.modeset=0" [root@localhost ]# grub2-mkconfig -o /boot/grub2/grub.cfg [root@localhost ]# reboot 또는 [root@localhost 03:05:38:~]# vi /boot/grub2/grub.cfg /vmlinuz 검색 후 해당 라인 맨뒤에 blacklist=igb igb.modeset=0 삽입(사용 커널 순서) [root@localhost 03:05:38:~]# reboot ubuntu 14.04 부터 장치명 변경은 꼭 말썽이었습니다. 장치명 변경을 거부 한다는 느낌으로.... ubuntu 역시 centos7 과 같은 방법으로 진행하게 되면 되지만 이상하게 바로 올라오지 않는 경우가 생겨 버립니다...머리가 아파 옵니다. 다행이 필자는 서버 개설시 10G 만 공인 ip 사용하고, 1G는 사설로 자동개통 사용하기 때문에 1G 모듈은 영구제명 시켜 버렸습니다.;;( 필자의 서버는 클라이언트 들이 사용하는 지라.. 빠른 개설을 위해...다른 분들은 시간이 걸려도 위 방법으로 구동하시고, 원인파악을 하기 바랍니다.) ==============================================================================================