VCS的NIC资源是一个非常常用的资源,若你使用VCS做浮动IP,则定会使用到NIC资源。
在一些环境下,VCS集群节点是异构的,意思就是服务器的配置不是完全一致的,通常存在的就是网卡名称不一致,如一台服务器svr1的网卡为bge0并对应的操作系统上的Network Interface为eth0;另外一台服务器svr2的网卡为bge1并对应操作系统上的Network Interface为eth1。
这时候若你需要在这两个网卡上做浮动IP地址,则要求NIC资源在svr1上的时候绑定在eth0上,倒换到svr2上的时候绑定在eth1上。
我们先看一下srv1上的VCS NIC资源的定义:
NIC mynic {
Device = eth0
NetworkHosts = {192.168.128.100}
}
NIC资源有两个基本属性:Network Interface 名称和IP地址。
我们会发现,上面这么定义是没法倒换到svr2的,因为svr2上不存在eth0,即使存在也不是用来绑定浮动IP地址的。
我们再深入进去会发现,VCS的资源有Global和PerSystem两种:Global是全局通用的,整个集群中所有节点都是同一个定义;PerSystem是每个节点可以有不一样的定义。因此上面的问题需要定义PerSystem这种资源来解决。
PerSystem资源定义为:
svr1上:
NIC mynic {
Device @svr1 = eth0
NetworkHosts = {192.168.128.100}
}
svr2上:
NIC mynic {
Device @svr2 = eth1
NetworkHosts = {192.168.128.100}
}
通过上面的定义,我们就做成了srv1上面的NIC资源是使用eth0来绑定192.168.128.100 IP地址;svr2上面的NIC资源是使用eth1来绑定192.168.128.100 IP地址。也就是说:从svr1倒换到svr2后VCS会绑定192.168.128.100 IP地址到svr2上的eth1上,反之亦然。
通过VCS命令完成上面操作的代码:
#将VCS配置文件设置为可写
haconf -makerw
#创建资源组
hagrp -add mygrp
#在mygrp资源组中创建mynic的NIC资源
hares -add NIC manic mygrp
#将mynic资源中的Device属性设置为local(PerSystem),否则下面的命令会执行失败
hares -local mynic Device
#修改mynic资源中Device属性在svr1上为eth0
hares -modify mynic Device eth0 -sys svr1
#修改mynic资源中Device属性在svr2上为eth1
hares -modify mynic Device eth1 -sys svr2
#将修改生效并将VCS配置文件设置为只读
haconf -dump -makero
本文链接:https://www.yunweipai.com/420.html
你这全是技术文章啊~~~~~~~~
呵呵,TekTea是个团队博客,都是写些和我们工作相关的技术文章。