我们在安装RAC时,需要公有网络的网卡名对应一致,私有网络的网卡名对应一致。但是当两个物理机器由于网卡配置数量的不等,很容易出现一个机器有ETH12和ETH13,但另一个机器只有ETH9和ETH10。那么遇到这个问题,如何修改网卡名称使两个机器的网卡名能对应起来呢?
其实这个问题,跟克隆虚拟机后的网卡启动失败问题很相似。只是克隆后新生成的虚机需要将网卡的MAC与70-persistent-net.rules文件的MAC保持一致就可以了。但是如果你要修改一个物理网卡的名称,其实并没有改变它的MAC地址,只是修改了名称而已。下面我们看一下如何实现网卡名称的更改。
举个例子,我们把本机的ETH1改成ETH3.
[root@test2 Desktop]# ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:0C:29:65:02:FF
inet addr:192.168.199.119 Bcast:192.168.199.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe65:2ff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:87714 errors:0 dropped:0 overruns:0 frame:0
TX packets:45281 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112756896 (107.5 MiB) TX bytes:3001189 (2.8 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:87 errors:0 dropped:0 overruns:0 frame:0
TX packets:87 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5721 (5.5 KiB) TX bytes:5721 (5.5 KiB)
pan0 Link encap:Ethernet HWaddr 66:13:A7:AD:1E:79
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@test2 Desktop]# ping 192.168.199.118
PING 192.168.199.118 (192.168.199.118) 56(84) bytes of data.
64 bytes from 192.168.199.118: icmp_seq=1 ttl=64 time=0.787 ms
64 bytes from 192.168.199.118: icmp_seq=2 ttl=64 time=0.880 ms
64 bytes from 192.168.199.118: icmp_seq=3 ttl=64 time=0.758 ms
^C
--- 192.168.199.118 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2973ms
rtt min/avg/max/mdev = 0.758/0.808/0.880/0.056 ms
下面先把eth1宕掉
[root@test2 Desktop]# ifdown eth1
然后进入这个配置目录
[root@test2 Desktop]# cd /etc/sysconfig/network-scripts
[root@test2 network-scripts]# ls -l ifcfg*
-rw-r--r--. 1 root root 140 Jul 6 05:30 ifcfg-eth1
-rw-r--r--. 1 root root 254 Jan 9 2013 ifcfg-lo
修改网卡文件名称
[root@test2 network-scripts]# mv ifcfg-eth1 ifcfg-eth3
[root@test2 network-scripts]# ls -l ifcfg*
-rw-r--r--. 1 root root 140 Jul 6 05:30 ifcfg-eth3
-rw-r--r--. 1 root root 254 Jan 9 2013 ifcfg-lo
编辑新文件,将其中的
DEVICE=eth1改成eth3,不需要修改MAC地址。
[root@test2 network-scripts]# vi ifcfg-eth3
然后进入UDEV目录
[root@test2 network-scripts]# cd /etc/udev/rules.d
找到70-persistent-net.rules文件
[root@test2 rules.d]# ls -l 70*
-rw-r--r--. 1 root root 1342 Feb 17 2014 70-persistent-cd.rules
-rw-r--r--. 1 root root 420 Apr 16 2014 70-persistent-net.rules
[root@test2 rules.d]# vi 70-persistent-net.rules
修改这个文件,将
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0C:29:65:02:FF", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
改成
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0C:29:65:02:FF", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
保存退出。
[root@test2 rules.d]# ifup eth3
Device eth3 does not seem to be present, delaying initialization.
[root@test2 rules.d]# service network restart
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth3: Device eth3 does not seem to be present, delaying initialization.
[FAILED]
这个时候是启不来的,需要重启机器使修改生效。
[root@test2 rules.d]# reboot
重启后我们发现名称已经变过来了。
[root@test2 etc]# ifconfig -a
eth3 Link encap:Ethernet HWaddr 00:0C:29:65:02:FF
inet addr:192.168.199.119 Bcast:192.168.199.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe65:2ff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39217 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3162496 (3.0 MiB) TX bytes:3905 (3.8 KiB)
还有一种情况,机器在新添加物理网卡后出现网卡名称断点不连续
eth12 Link encap:Ethernet HWaddr 00:90:FA:76:A5:7C
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
eth14 Link encap:Ethernet HWaddr 00:90:FA:76:A5:80
inet addr:11.11.161.65 Bcast:11.11.161.255 Mask:255.255.255.0
inet6 addr: fe80::290:faff:fe76:a580/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:74621 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4516473 (4.3 MiB) TX bytes:816 (816.0 b)
我们看一下少了eth13,这时可以把网卡配置全删除,重启让系统重新分配就连续了。
[root@rac2 network-scripts]# cd /etc/udev/rules.d
[root@rac2 rules.d]# ls -l
total 44
-rw-r--r--. 1 root root 1652 Aug 26 2010 60-fprint-autosuspend.rules
-rw-r--r--. 1 root root 1060 Jun 29 2010 60-pcmcia.rules
-rw-r--r--. 1 root root 316 Aug 6 2013 60-raw.rules
-rw-r--r--. 1 root root 787 Dec 31 19:29 70-persistent-cd.rules
-rw-r--r-- 1 root root 2905 Jan 5 21:47 70-persistent-net.rules
-rw-r--r--. 1 root root 40 Oct 25 2013 80-kvm.rules
-rw-r--r--. 1 root root 320 Sep 12 2012 90-alsa.rules
-rw-r--r--. 1 root root 83 Apr 1 2011 90-hal.rules
-rw-r--r--. 1 root root 2486 Jun 30 2010 97-bluetooth-serial.rules
-rw-r--r--. 1 root root 308 Oct 22 2013 98-kexec.rules
-rw-r--r--. 1 root root 54 Nov 3 2011 99-fuse.rules
[root@rac2 rules.d]# rm -rf 70-persistent-net.rules
[root@rac2 rules.d]# cd /etc/sysconfig/network-scripts
[root@rac2 network-scripts]# ls -l ifcfg*
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth0
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth1
-rw-r--r--. 3 root root 203 Jan 5 00:14 ifcfg-eth10
-rw-r--r--. 3 root root 137 Dec 31 18:52 ifcfg-eth11
-rw-r--r-- 3 root root 202 Jan 5 00:12 ifcfg-eth12
-rw-r--r-- 3 root root 181 Jan 5 00:46 ifcfg-eth14
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth2
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth3
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth4
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth5
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth6
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth7
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth8
-rw-r--r--. 3 root root 136 Dec 31 18:52 ifcfg-eth9
-rw-r--r--. 1 root root 254 Oct 10 2013 ifcfg-lo
[root@rac2 network-scripts]# rm -rf ifcfg-eth*
[root@rac2 network-scripts]#reboot
重启后一切正常。