集群系统在网管中的应用
为提高网管系统的可用性,CLUSTER结构已经在网管中得到应用,以VERITAS 4.0双机为例,说明配置维护多主机网管的要点。
Cluster集群技术定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。
通常有两种cluster,一种是parallel方式,可以提供N+1的冗余:
目前在网管中使用的是failover,主要用于以失败或负荷触发切换以提高可靠性
以VERITAS为例,引入下列技术实现集群
High-Availability Daemon (HAD)
Low Latency Transport (LLT)
Group Membership Services/Atomic Broadcast (GAB)
(相关进程都设置在/etc/rc2.d目录下,SOLARIS启动时载入)
VCS可以检测到应用失败和节点失败
应用需要提供各种行为的脚本(启动,关闭,监控),也依赖于文件系统和网络接口
VCS可以区分节点失败和节点通讯失败,采用心跳线,共享存储,冗余数据接口来保护系统.
切换分主动切换和失败切换两种
比如基于流量负荷均衡的原因可以触发主动切换switchover,节点或通讯失败可以触发失败切换failover
不管是哪种切换,应用要保证数据安全特别是临时数据的可靠性,一致性,完整性,采用cluster系统的应用设计时就要考虑到,比如基于服务器-客户端结构的应用要将临时数据存在共享存储器中,程序不能依赖于系统的物理特性,只依赖于数据,所以VCS提供float IP地址给客户端
为了理解配置cluster需要认识下列概念
1、 NODE节点,或称为SYSTEM指一个CLUSTER系统中的各主机,通常以hostname标识
2、 Resources资源,指cluster系统的各组成部分,可以是硬件如存储文件系统或网口,也可以是软件如数据库管理系统或应用程序,最常用的BSS网管cluster资源有:
Mount分区,NIC网口,IP提供给客户端的浮动地址,ORACLE数据库,NETLSNR数据库入口,APPLICATION即APP
3、 Resource Dependencies资源关系
如网卡running才能提供float IP,表空间所在分区mount,oracle才能启动,再加上APP版本所在分区mount,APP进程才能启动,listener启动后客户端才能使用sqlplus.
4、 Service Groups指一个cluster系统,一套网管硬件平台可以跑一个实例,也可以跑数个实例,相应的需配置一个或数个Service Groups
5、Types of Service Groups指failover还是parallel
为了采用cluster系统,后台网管的安装时需做下列配置
1、 两台主机需设置相同的用户、组及权限,保证root用户可以在两台主机上相互rlogin、rcp即/.rhosts文件中写入两台主机的hostname
2、 设置float IP,在$APPHOME/conf/syscfg.ini、MP的\config\tcpip.cfg或级联域配置中都用float IP定义服务器
3、磁阵连两台主机,手工修改scsi号,用命令
# eeprom scsi-initiator-id=X
改一台主机上的scsi号重启后生效,veritas可以将不同的scsi号转成相同的DID
3、 配置分区时磁阵所在分区不能在/etc/vfstab中mount,改由VCS控制,以防SOLARIS引导时mount冲突
4、 ORACLE程序可安装在本地硬盘,但表空间、重做日志、LOG文件、控制文件、归档日志(可选)都要改到磁阵上,不能使用默认的$ORACLE_BASE安装到内置硬盘中
5、 在两台主机上安装ORACLE,在一台主机上创建数据库实例,然后将omcinit.ora.tnsnames.ora,listener.ora拷贝到另一台主机上,各节点保持完全一致
6、 APP必须安装在外部共享磁阵中(其中$APPHOME/tmp/log可以mount到内置硬盘以分散磁盘读写提高性能),在一台主机上创建表空间即可
7、 两台主机至少连一根交叉网线做心跳线(安装veritas server时选择心跳网口或手工用命令创建)
8、 可以先装oracle,也可以先装veritas
9、 按节点申请VERITAS注册码,然后安装veritas server 4.0 除SMTP、SNTP、VXFEN外其它package都选上(如果采用veritas volume manager作为卷管理要加上VXFEN)
10、资源组配置时用oracle类型的模板导入后做修改即可
11、APP需参照veritas agent developer手册定义专门的start、stop、monitor脚本,以便VCS控制决定application资源的动作
属性值参考表
Required Attributes Type and Dimension Definition
StartProgram string-scalar The executable, created locally on each node, that
starts the application. Specify the complete path of the
executable. Command-line arguments (if applicable)
follow the name of the executable, separated by
spaces.
StopProgram string-scalar The executable, created locally on each node, that
stops the application. Specify the complete path of the
executable. Command-line arguments (if applicable)
follow the name of the executable, separated by
spaces.
At least one of the
following attributes:
◆ MonitorProcesses
◆ MonitorProgram
◆ PIDFiles
See descriptions under
Optional Attributes. See Optional
Attributes table. See Optional Attributes table.
以APP启动shell脚本为例
su - app -c "/export/home/app/appboot/appcstart.sh"
exit 110
返回值参考表
Script-Based Exit values:
◆ 100 - Offline
◆ 101-110 - Online
◆ 99 - Unknown
12、验收测试可做主机掉电倒换、重启倒换,网线拔插倒换,ORACLE关闭倒换,APP停止倒换,手工倒换
13、VCS troubleshooting可以参考日志
14、可以在一个集群两台主机的双机系统中配置两套ORACLE数据库实例和应用,运行时负荷分摊,每台主机分别跑一个实例,某台主机故障时两套系统都切换到同一台主机上运行,等待故障机修复,可能在提高可性能的同时充分利用服务器资源
15、网管故障分为软故障,硬故障,人为故障,可恢复故障,不可恢复故障,集群不能解决所有问题,关键还是日常维护的规范化,特别的备份制度的严格执行,好的系统可以提高可用性,也可以提高性能,更需要好的设计和维护