喜欢IT的一个“武痴”! 喜欢追求新技术、探索技术!
分类: Oracle
2013-05-18 16:59:50
一、 概述:
在安装ORACLE RAC的官方checklist文档里面关于网卡名字有一个如下的规定:
The public interface names associated with the network adapters for each network must be the same on all nodes, and the private interface names associated with the network adaptors should be the same on all nodes。
意思就是在RAC的所有节点中,使用的public和private的网卡必须保持一样的instance名字。如果RAC的两个节点主机系统不一样(但是操作系统必须同一版本),比如ORACLE系统的T4-4和T5-4,那么系统的网卡分别为igb和ixgbe,那么在RAC整个系统中规定就不被满足了。
可以参考我的豆丁文档:
二、 修改成同一网卡名字的方法
在实际的RAC安装过程中,如果网卡实例名在各个节点上不一样,可以通过使用*号符来进行通配,而且RAC也能安装成功,root.sh脚本可以成功执行,但是VIP必须手工才能起来。这说明,checklist的规定必须遵循。
即使这样,RAC的CRS也能够正常运行,但是,在安装ORACLE数据库软件的时候runinstaller仍然会报错,报错的大致意思是说,系统获取的IP地址的格式不正确。到此为止,说明CRS未能够正常运行,而且在安装过程中发现,runinstaller程序未能完完整整进行到最后,导致数据库安装未能发现其所处于的RAC cluster状态,Inventory文件中也缺少了CRS=”true”的字样。
Solaris系统的网卡名字是无法更换的,这是因为在Solaris系统中,只能是以网卡驱动的名字来命名,比如说igb网卡的驱动,系统Plumb起来的网卡名字就是igb,后面根据驱动在系统中发现的网卡个数,赋予每个网卡一个实例号,比如0,1,2等。如果手工更改/etc/path_to_inst文件中的相关内容,将导致驱动无法找到网卡的物理路径而失败。如果修改驱动名字的话,将导致无法驱动网卡,即使物理路径能够找到,但是驱动的库文件里面所定义的是固定的,所以无法手工更改。
实实在在的网卡名字是无法更换,那么有否其他方法来同一名字呢,首先想到就是一些符号链接的方法,这方法看来不太现实,因为修改的东西非常多,而且也不一定能够奏效。
其次可以使用一些虚拟化软件来解决名字同一命名,但是大多数虚拟化比较复杂,而且有些软件是需要license许可的,也就是付费软件,客户一般不太容易接受。
在Solaris中最为简单的方法就是采用网卡的聚合方法来解决这个问题。聚合方法有两个好处,一是解决了名字的同一问题,另外一个就是解决了IPMP问题,第三个就是提供了网络性能。
采用了聚合后,网卡的名字就能够同一为类似于aggr1,aggr2的网卡,具体的聚合方法如下:
1. dladm show-dev查看所有的网卡信息
bge0 link: up speed: 1000 Mbps duplex: full
bge1 link: up speed: 1000 Mbps duplex: full
bge2 link: unknown speed: 0 Mbps duplex: unknown
bge3 link: unknown speed: 0 Mbps duplex: unknown
2. dladm create-aggr创建聚合网卡
dladm create-aggr -d bge0 -d bge2 1
3. ifconfig –a查看网卡信息
aggr1: flags=1000843
使用以上的方法就能够将系统的网卡名字同一起来,RAC就可以直接用来作为public和private的网卡了。