利用Veritas实现SUN Solaris服务器HA
Veritas Cluster Server 3.5及以后版本的软件提供了两个资源 MultiNICB和IPMultiNICB,它们可以利用Solaris系统的IPMP功能,实现IP网络多路径的故障探测和恢复。MultiNICB资源为我们提供的探测功能为,当主机的一个网卡出现故障时,它可以将网络访问切换(Failover)到另一个备用网卡上,实现网络访问的快速恢复。
本例子假设主机有ce0, ce2两个网卡,并且ce0已经配置对外连接的IP地址为10.48.155.101。现在要将ce2配置成备用网卡,在ce0出故障时,VCS调用系统的IPMP功能,将原有ce0上的所有对外IP切换到ce2上。
1、 使能本地网卡的MAC地址
eeprom local-mac-address?
local-mac-address?=false
eeprom local-mac-address?=true
2、 配置IP文件:
? 修改/etc/hosts,添加如下内容:
127.0.0.1 localhost
10.48.155.101 host1 loghost log_host
10.48.155.103 host1-ce0
10.48.155.105 host1-ce2
其中,host1-ce0和host1-ce2是用来做主备网卡与服务器是否正常连通的检测IP。它们的IP值不能用来进行网络通讯。
? 将/etc/hostname.ce0改为包含如下内容:
host1-ce0 netmask + broadcast + deprecated -failover up
addif host1 netmask + broadcast + up
其中,本地物理IP(10.48.155.101)被改为附加的IP。
它的IP地址在系统运行后的初始显示逻辑名将为“ce0:1”。
? 将/etc/hostname.ce2 改为如下内容(如没有,要新建)
host1-ce2 netmask + broadcast + deprecated -failover up
? 重启系统,进行验证设置生效。
? host2的配置类似。它使用的IP地址依次为102、104和106。
3、 在VCS中配置资源组使用MultiNICB和IPMultiNICB。
main.cf的内容如下:
include “types.cf”
include “3gapp.cf”
include “OracleTypes.cf”
cluster UT3G (
UserNames = { admin = GjkCjeJgkFkkIskEjh }
ClusterAddress = “10.48.155.110”
Administrators = { admin }
CredRenewFrequency = 0
CounterInterval = 5
)
system host1 (
)
system host2 (
)
group ClusterService (
SystemList = { host1 = 0, host2 = 1 }
AutoStartList = { host1, host2 }
OnlineRetryLimit = 3
OnlineRetryInterval = 120
)
IP webip (
Device = ce0
Address = “10.48.155.110”
NetMask = “255.255.255.0”
)
NIC csgnic (
Device = ce0
)
VRTSWebApp VCSweb (
Critical = 0
AppName = vcs
InstallDir = “/opt/VRTSweb/VERITAS”
TimeForOnline = 5
RestartLimit = 3
)
VCSweb requires webip
webip requires csgnic
// resource dependency tree
//
// group ClusterService
// {
// VRTSWebApp VCSweb
// {
// IP webip
// {
// NIC csgnic
// }
// }
// }
group TEST (
SystemList = { host1 = 0, host2 = 1 }
AutoStartList = { host1, host2 }
)
IPMultiNICB testip (
BaseResName = testnic
Address = “10.48.155.100”
NetMask = “255.255.255.0”
DeviceChoice = 1
)
MultiNICB testnic (
MpathdCommand = “/sbin/in.mpathd”
Device @host1 = { ce0 = 1, ce2 = 2 }
Device @host2 = { ce0 = 1, ce2 = 2 }
DefaultRouter = “0.0.0.0”
)
testip requires testnic
// resource dependency tree
//
// group TEST
// {
// IPMultiNICB testip
// {
// MultiNICB testnic
// }
// }
4、 测试方法
? 监控服务器IP连接情况
用“ping ip_address -t”对10.48.155.101,102,100,110进行监控。
其中101,102分别是host1和host2的本地物理IP。100是资源组test需要使用的虚拟IP。110也是虚拟IP。但是它没有使用多网卡配置。所以当ce0失效时,资源组ClusterService将会失效。
? 插拔网线进行测试
拔掉host1的ce0网线。
拔掉host2的ce0网线。
拔掉host2的ce2网线。
插回host2的ce0网线。
拔掉host1的ce2网线。
测试结果应该为,当主机的单个网卡失效时,VCS将能保证HA系统对外连接的IP得到恢复。但没有配置使用多网口资源的ClusterService的IP地址就不一样。