我们有两台新建的 RHEL 5.6 x86_64 服务器,它们是 Oracle 数据库集群的一部分。其中一台名为CMORAC1和另一个CMORAC2型。两台服务器的主 IP 地址分别为10.100.9.144
和10.100.9.154
。每台服务器的网络接口都已绑定,以提高性能和实现内核级负载平衡。
在CMORAC1,该hostid
命令始终返回相同的内容:640a9009
。当转换回 IP 地址时,它会给出10.100.9.144
,这是正确的 IP 地址。
在CMORAC2型但是,该hostid
命令给出的结果非常不一致。我循环运行该命令 50 次(每次循环之间休眠 1 秒),它给出了不同的 hostid。返回的唯一值是:
640a4a10
640a9909
640a9a09
640a9b09
640a9c09
fea9b8fc
这些 hostid 对应的 IP 地址是:
10.100.16.74
10.100.9.153
10.100.9.154
10.100.9.155
10.100.9.156
169.254.252.184
hostid 应该始终是640a9a09
,但事实并非如此。
这是 ifconfigCMORAC2型:
bond0 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:3F
inet addr:10.100.9.154 Bcast:10.100.9.255 Mask:255.255.255.128
inet6 addr: fe80::7a2b:cbff:fe1a:973f/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:2167149212 errors:0 dropped:0 overruns:0 frame:0
TX packets:2169807434 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:279381053647 (260.1 GiB) TX bytes:366406519908 (341.2 GiB)
bond0:2 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:3F
inet addr:10.100.9.153 Bcast:10.100.9.255 Mask:255.255.255.128
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
bond0:3 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:3F
inet addr:10.100.9.155 Bcast:10.100.9.255 Mask:255.255.255.128
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
bond0:4 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:3F
inet addr:10.100.9.156 Bcast:10.100.9.255 Mask:255.255.255.128
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
bond1 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:43
inet addr:10.100.16.74 Bcast:10.100.16.79 Mask:255.255.255.248
inet6 addr: fe80::7a2b:cbff:fe1a:9743/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1
RX packets:517202985 errors:0 dropped:0 overruns:0 frame:0
TX packets:571091767 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:330164712285 (307.4 GiB) TX bytes:481545253520 (448.4 GiB)
bond1:1 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:43
inet addr:169.254.252.184 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MASTER MULTICAST MTU:9000 Metric:1
eth0 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:3F
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1374977659 errors:0 dropped:0 overruns:0 frame:0
TX packets:1556885797 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:172018406954 (160.2 GiB) TX bytes:257910742704 (240.1 GiB)
Interrupt:138 Memory:d6000000-d6012800
eth1 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:41
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:792171553 errors:0 dropped:0 overruns:0 frame:0
TX packets:612921637 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:107362646693 (99.9 GiB) TX bytes:108495777204 (101.0 GiB)
Interrupt:146 Memory:d8000000-d8012800
eth2 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:43
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:13570946 errors:0 dropped:0 overruns:0 frame:0
TX packets:382329420 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8059679153 (7.5 GiB) TX bytes:310241198851 (288.9 GiB)
Interrupt:154 Memory:da000000-da012800
eth3 Link encap:Ethernet HWaddr 78:2B:CB:1A:97:45
UP BROADCAST RUNNING SLAVE MULTICAST MTU:9000 Metric:1
RX packets:503632039 errors:0 dropped:0 overruns:0 frame:0
TX packets:188762347 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:322105033132 (299.9 GiB) TX bytes:171304054669 (159.5 GiB)
Interrupt:162 Memory:dc000000-dc012800
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:187853342 errors:0 dropped:0 overruns:0 frame:0
TX packets:187853342 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:158085331402 (147.2 GiB) TX bytes:158085331402 (147.2 GiB)
/etc/hostid
服务器上不存在该文件,且NetworkManager
服务已停止。
这个问题给我们带来了很多问题,比如使用 hostid 生成许可证的软件的许可问题。由于不一致,我们无法保持软件的许可。这个问题并没有发生在它的孪生版本上CMORAC1根据创建它的管理员的说法,应该配置相同...
有人知道这可能是什么原因造成的吗?
答案1
我们找到了导致此行为的问题。它与 DNS 有关。
同一名称的多个 DNS 条目 IP 存在:
[root@cmorac2 ~]# nslookup cmorac2
Server: 10.100.9.174
Address: 10.100.9.174#53
Name: cmorac2.cibc.cginet
Address: 10.100.9.156
Name: cmorac2.cibc.cginet
Address: 10.100.16.74
Name: cmorac2.cibc.cginet
Address: 169.254.252.184
Name: cmorac2.cibc.cginet
Address: 10.100.9.153
Name: cmorac2.cibc.cginet
Address: 10.100.9.154
Name: cmorac2.cibc.cginet
Address: 10.100.9.155
纠正此问题后,返回的 hostid 是一致的并且始终相同。
知道这一点很好!
答案2
我确信以太网绑定是导致此问题的原因。我想知道是否有一种解决方案可能是简单地专用 eth0,为其指定一个 IP 号,而不是绑定它,甚至可能不使用它。这可能会产生一致的结果。如果您需要端口,您可能可以安装另一个以太网板,我确信它们现在很便宜,假设您的主板上有插槽。
我已经在我的计算机上确认,如果在 /etc/hostid 中放置一个数字,hostid 命令将始终返回一个数字(十六进制)。这可能是解决您的问题的另一种可能方法。