您的位置 首页 系统运维

如何在异构环境下(两个服务器的Network Interface名称不一致)创建VCS NIC资源

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

热门文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注