linux 下的RHCS集群套件实现HA高可用(一)——针对故障切换

一.实验环境(rhel6.5版本)

主机环境:rhel6.5 selinux 和iptables 都必须是disabled状态

各主机信息

主机名IP服务
server1172.25.8.1HA1(高可用节点1:ricci) 和 管理节点(luci),作主节点
server2172.25.8.2HA2(高可用节点2:ricci),作副节点
fountion真机172.25.8.250fence集群端

注: 
从红帽企业版 Linux 6.1 开始,您在任意节点中使用 ricci 推广更新的集群配置时要求输入密码。所以在前面两台主机安装完成ricci后需要修改ricci用户的密码,这个是后面节点设置的密码。

 

二.RHCS实现高可用(针对故障切换)的部署:

1.两HA节点(server1与server2)搭建高级yum源:

添加负载均衡、高可用、文件存储和大文件系统扩展源

并将此yum 源配置文件发送给server2

2.安装ricci与luci软件:

配置server1(高可用节点与管理节点):

(1)安装ricci与luci,开启服务,设置开机自启(因为后面设置的fence经常会使机器重启,所以设置开机自启动),以及设置ricci用户密码(以便集群服务管理各节点,为每一个节点提供一个测试页面)(安装ricci后会自动生成ricci用户)

luci是RHCS基于web的集群管理工具

开启ricci 服务

开启luci 服务

设置开机自启

为ricci 用户设置密码

(2)查看luci服务端口:netstat   -antulpe

luci默认侦听端口为8084,ricci默认侦听端口为11111

配置server2(高可用节点):安装ricci并开启服务,设定ricci用户密码,设置开机自启

(1)安装ricci,开启服务,设置开机自启(因为后面设置的fence经常会使机器重启,所以设置开机自启动),以及设置ricci用户密码(以便集群服务管理各节点,为每一个节点提供一个测试页面)(安装ricci后会自动生成ricci用户)

3.网页登陆集群管理并添加集群(两个HA节点)

(1)打开集群管理网页(在网页浏览器的地址栏中输入 cman 服务器的 URLluci服务器的URL语法为https://server1IP:luci_server_port。luci_server_port 的默认值为 8084 。因为server1安装luci集群管理工具)

注:一定要以https://协议开头

(2)登陆:使用正确的用户及密码就可以登陆了,如果是root用户登录会有警告提示信息。

虽然所有可以在托管 luci 的系统中认证的用户都可以登录 luci,但从红帽企业版 Linux 6.2 开始,只 有运行 luci 的系统中的 root 可以访问所有 luci 组件,除非管理员(root 用户或者有管理员权限的用 户)为那个用户设置权限。

(3)创建集群:选择Manage Clusters,点击create开始创建(其中Password是ricci用户的密码)

最下面两个是加入节点自动重启支持共享存储

注意:
    1、在「集群名称」 文本框中输入集群名称。集群名称不能超过 15 个字符。
    如果集群中的每个节点都有同样的 ricci 密码,您可以选择「在所有 节 点中使用相同的密 码 」 ,这样就可在添加的节点中自动填写「密 码 」 字段。
    2、在「 节 点名称」 栏中输入集群中节点的名称,并在「密 码 」 栏中为该节点输入 ricci 密码。
    3、如果要在 ricci 代理中使用不同的端口,而不是默认的 11111 端口,可以更改那个参数。
    4、如果不想要在创建集群时升级已经在节点中安装的集群软件软件包,请选择「使用本地安装的软 件包」 选项。如果要升级所有集群软件软件包,请选择「下 载软 件包」 选项。
    *5、添加完成后会发现一直在等待状态,这时查看服务器,会发现server1和server2已经重启,这时只需要启动后再开启服务就成功添加节点了。

如果缺少任意基本集群组件(cman、rgmanager、modcluster 及clvmd),无论是选择「使用本地安装的 软 件包」 ,还是「下 载软 件包」 选项,都会安装它 们。如果没有安装它们,则创建节点会失败


创建好后,点击Create Cluster,提交成功后server1与server2会自动重启

(4)检测集群是否创建成功(以server1为例,server2同理)

查看集群配置

查看集群状态

注意:集群添加成功的前提是做好server1与server2的解析,因为创建集群时写的是主机名而不是ip,当然也可以写ip。

4.添加fence设备:点击Fence Device开始进行添加,添加完后点击Submit提交

FENCE的工作原理:

当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资 源进行了释放,保证了资源和服务始终运行在一个节点上。


此时查看server1的集群信息文件/etc/cluster/cluster.conf,会发现vmfence(以server1为例,server2同理)

5.fountion真机上fence的安装及配置

(1)fence 的安装

(2)进行初始化设置(其中要将接口设备改为br0,其他默认回车,最后一项输入y确定即可)

  • 注:这里br0是因为虚拟服务器受主机控制的网卡是br0

  • 查看初始化过程中的参数(IP和Port)

  • 其中IP和Port这个参数信息,是由fence的配置文件决定的

(3)生成及发送fence_xvm.key

建立目录

dd截取,生成128位的fence_xvm.key,可以file查看这个key类型是数据(data),所以只能利用下面的命令来查看该文件

查看key

给HA节点发送key

6.HA节点与fence的关联

(1)关联server1 节点:

点击Nodes,双击server1,接着点击Add fence Method添加fence策略,最后submit提交即可

接着点击Add Fence Instance添加fence实例,最后submit提交即可

注意:其中添加fence实例时的Domain写的server1的UUID(在virt-manager 中查看)

关联成功后:

(2)关联server2节点:
点击Nodes,双击server2,接着点击Add fence Method添加fence策略,最后submit提交即可

接着点击Add Fence Instance添加fence实例,最后submit提交即可

关联成功后:

测试fence是否搭建好:

1.fountion真机上开启fence服务

2.通过server1使server2重启

7.配置Failover Domains(故障回切域)

(1)击Failover Domains进行故障切换域设置,接着点击add进行添加

Restricted(只在指定节点跑)

<No Failback选项为不回切的意思,如果勾选则vip不回切,否则则会自动回切
Priority是优先级的意思,数字越小优先级越高>

到此处为止,部署基本完成,HA高可用就可以实现了,接下来我们只需要在添加资源,更具体的实现一些服务的高可用。
这里以httpd为例。

 

8.添加apache资源:

(1)选择Resources,点击add进行添加

添加vip:
(其中5为等待时间)

注意:子网掩码要匹配,不一定都是24

添加Script脚本

server1与server2上安装apache服务,在/var/www/html目录下建立发布文件index.html,启动Apache服务检测是否正常显示网页,检测完成后server1和server2均关闭httpd服务;

注 : 交给集群的资源一定是屏蔽掉的,因为要交给集群去开启。

 

8.资源整合(添加服务组)

(1)选择Service Groups,点击add进行添加

输入一个自定义名称,例如”apache“,选中”Automatically Start This Service“(集群自动开启)和”Run Exclusive(表示运行独占(即只能在此机上运行))“,选中”Failover Domain”下刚才创建的”webfile“,”Recovery Policy”选择”Relocate“,点击下方Add Resource,选择之前创建的Resources,因为有两个,所以需要添加两次,完成后点击Submit;  

节点资源添加的顺序,就是启动的顺序,所以先开启VIP,然后再启动httpd,要注意!!


 

接着点击Add Resource
选择前面添加过的vip和script脚本

测试:

资源整合完后,点击submit进行提交(提交前将server1与server2的http服务关掉),提交后可看到server2的http服务在跑,而且vip也在server2上(因为server2的优先级大于server1,所以服务会现在server2上跑)

在server2中关闭httpd服务用clustat命令查看效果:

正确的效果为server1的状态是started,当server2的httpd服务重启之后,started的主机仍然是server1。除非,关闭server1的httpd服务,started的主机才会变为server2
 

或者我们手动模拟server2节点宕机:

因为http服务与vip都在server2上,我们手动让它宕机,看vip是否回漂移到server1上,实现高可用

(1)执行命令:echo c> /proc/sysrq-trigger(手动使server2宕机)

(2)此时,vip会漂移到server1上节点

(3)但是5秒后当server2重新起来后,vip又会回切到server2上(因为我们之前设置的是自动回切)

此时clustat查看集群状态,apache服务在server2上跑

通过真机访问curl 172.25.8.100,出现server2的页面内容

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值