每个企业的IT系统建设都有一套标准的技术规范,企业在系统建设前期,可根据应用架构及业务连续性的要求制定采用适合的系统架构,常见架构有集群模式、负载均衡模式、高可用模式等。
集群模式多为应用集群、数据库集群。如常用的IBM IHS Plugin+WAS集群,Oracle RAC集群,DB2 PureScale集群等,集群中的节点可进行会话复制与保持。该模式更多用于关键业务系统,这类系统对业务连续性要求高,可达到无缝接管。
负载均衡模式更多的用于应用实现负载。常见的负载均衡器有F5等产品,负载分发器也可以使用产品软件实现,但性能不佳。此类模式同样多用于关键业务系统,对业务连续性要求较高。
高可用模式多用于应用、数据库环境,有主备模式、互备模式。系统发生灾难时,应用系统将发生主备切换,在业务方面有短暂中断影响。
上述的三种模式运行均可作到无人值守,但对业务的连续性有本质的区别。本文介绍如何使用SUSE LINUX实现高可用建设的方法,为阅读者提供一个思路。
文档以高可用配置为主体内容,对主机网卡绑定、以及存储卷管理等内容归纳到准备工作中。
1 高可用系统架构
1.1 系统架构
以主备模式运行的高可用环境,,当主节点发生灾难时,备节点会在短时间内接管全部应用,接管过程时间视应用程序大小、启动复杂度,一般在1-2分钟内完成切换。
以环境两台X86 PC服务器、SUSE LINUX 11企业版及High Availability(简称HA)高可用软件,外接SAN光纤存储为例。要求服务器采用4块网卡、2块HBA卡冗余配置,架构如下图所示:
1.2 节点信息
其中:子网掩码为:255.255.255.0
网关为:192.168.1.254
2 准备工作
为了更清晰的体现高可用配置过程,这里把网络、存储方面的配置归纳入准备工作中。
2.1 高可用节点网卡的绑定
说明:该工作放置在高可用配置前进行,本文以生产网卡为例,心跳网卡绑定同样方法实现。
步骤1:# cd /etc/sysconfig/network
步骤2:配置绑定网卡bond0
#vi ifcfg-bond0
DEVICE=bond0 #绑定设备名称,其他绑定以此序号后推
BOOTPROTO='static' #静态IP
STARTMODE='onboot' #启动后网卡激活
IPADDR='192.168.1.1[192.168.1.2]’#绑定后IP
NETMASK='255.255.255.0’#子网掩码
BONDING_MODULE_OPTS='mode=1 miimon=100' #模式为主备,100ms检查状态
BONDING_SLAVE0='em1'#第一块网卡
BONDING_SLAVE1='em2'#第二块网卡
步骤3:更改em1、em2实际网卡信息配置
#vi em1[em2]
DEVICE=em1[em2]
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
步骤4:重启主机或网卡服务
#shutdown -r now
2.2 高可用节点网关设置
说明:该工作放在网卡绑定后进行配置,作为高可用监听地址。
步骤1:#yast->Network Devices->Network Settings->Routing
设置默认网关为:192.168.1.254
2.3 磁盘卷组与文件系统管理
以EMC存储多路径软件为例
1)查看磁盘信息
步骤:
#powermt display dev=all
Pseudo name=emcpowera
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
###HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
0 fscsi0 hdisk4 SP A1 active alive 0 0
1 fscsi1 hdisk7 SP B0 active alive 0 0
2)创建物理卷
步骤:# pvcreate /dev/ecmpowera
3)创建卷组
步骤:#vgcreate datavg /dev/emcpowera
4)创建逻辑卷
步骤:
#lvcreate –L 50G –n dbdirlv datavg
#lvcreate –L 50G –n archloglv datavg
#lvcreate –L 50G –n smstmpdblv datavg
5)创建文件系统
步骤:
#mkdir /dbdir
#mkdir /archlog
#mkdir /smstmpdb
4.3.1在线扩充文件系统
说明:日常运维中经常需要对逻辑卷或文件系统进行在线扩充或缩减,其中缩减工作存在一定风险,注意数据备份,该工作在一台主机上操作即可。例为/dbdir增加50GB容量操作。
步骤:
#lvextend –L +50G /dev/datavg/dbdirlv
#resize2fs /dev/datavg/dbdirlv
3 安装SUSE LINUX HA软件
3.1 工具YaST安装HA软件
说明:在主机HOST1与HOST2同时执行。
步骤:yast->software reposity->install HA。
3.2 关闭防火墙
说明:在主机HOST1与HOST2同时执行。
步骤:yast->Secrity and Users-Firewall->start-up ->选择Disable Firewall Automatic starting。
4 SUSE LINUX高可用的实现
4.1 产生集群密钥authkey
说明:生产密钥为集群中节点的公司密钥,只需在一台服务器上执行。
步骤:corosync-keygen
4.2 配置心跳IP
通过vi直接编辑corosync.conf配置文件,修改其中如下部份:
totem {
rrp_mode: active
join: 60
max_messages: 20
vsftype: none
token: 5000
consensus: 6000
token_retransmits_before_loss_const: 10
version: 2
transport: udpu
interface {
bindnetaddr: 10.1.1.0
mcastport: 7329
ringnumber: 0
member {
memberaddr: 10.1.1.1
}
member {
memberaddr: 10.1.1.2
}
}
}
4.3 两台机器同步corosync配置及集群密钥文件
说明:同步配置文件可以采用拷贝方式进行。
3.3.1同步corosync配置
步骤:HOST1#scp /etc/corosync/corosync.conf HOST2:/etc/corosync/corosync.conf
3.3.2同步集群密钥文件
步骤:HOST1#scp /etc/corosync/authkey
HOST2:/etc/corosync/authkey
3.3.3重新启用xinetd
说明:csync2服务依赖xinetd daemon进行
步骤:restart xinetd
4.4 启动openais
步骤:/etc/init.d/openais start
4.5 配置集群
启动crm配置行,#crm configure
步骤1:增加服务IP地址
#primitive SVC-IP ocf:heartbeat:IPaddr params ip=192.168.1.3
步骤2:增加卷组
#primitive RS_VG ocf:heartbeat:LVM params volgrpname="datavg"
步骤3:增加文件系统
#primitive RS_FS_DBDIR ocf:heartbeat:Filesystem params device=/dev/datavg/dbdirlv directory=/dbdir fstype=ext3
#primitive RS_FS_ARCH ocf:heartbeat:Filesystem params device=/dev/datavg/archloglv directory=/archlog fstype=ext3
#primitive RS_FS_SMS ocf:heartbeat:Filesystem params device=/dev/datavg/smstmpdblv directory=/smstmpdb fstype=ext3
步骤4:增加创建组
#group DB_GRP SVC-IP RS_VG RS_FS_DBDIR RS_FS_ARCH RS_FS_SMS
property no-quorum-policy=ignore property stonith-enabled="false" rsc_defaults $id="rsc_defaults-options" resource-stickiness="100" op_defaults $id="op_defaults-options" timeout="300"
步骤5:增加网关监听
#primitive pingd ocf:pacemaker:ping params host_list="192.168.1.254" multiplier="100" debug="true" op monitor interval="20s" timeout="60s" op start interval="0" timeout="90s" op stop interval="0" timeout="100s" clone cl_pingd pingd meta globally-unique="false" location LO1 DB_GRP rule 100:
步骤6:储存配置
#verify
#commit
5 结束语
系统架构的选择应注重业务需求,充分考虑业务连续性的必要性。无论选择哪种架构模式,运维的应急响应以及应急处理能力更为至关重要,要经过不断的业务连续性切换演练、不断的深入挖掘才能积累更多经验。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论