高可用--redhat自带套件

高可用集群--redhat

一、集群结点与集群管理

<1>选用两台虚拟机作为集群结点n1,n2

要求:两台虚拟机须时间同步、互有解析,方便实验,虚拟机内存大小为为1024MB

1.先查看时间是否同步,使用date命令

2.看解析文件

3.配置yum源:企业六中自带集群组件

(1)镜像挂载目录下,查看集群组件

  cd  /var/www/html/rehl6.5

  ls  ##显示内容如下:

高可用--redhat自带套件

(2)配置集群结点的yum与源

  vim  /etc/yum.repos.d/rhel-source.repo

编辑后内容显示如下:

       [rhel-source]

       name=RedHat Enterprise Linux $releasever - $basearch - Source

       baseurl=http://172.25.13.250/rhel6.5

       enabled=1

       gpgcheck=1

       gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

       [HighAvailability]  ##高可用

       name=HighAvailability

       baseurl=http://172.25.13.250/rhel6.5/HighAvailability

       gpgcheck=0

       [ResilientStorage]   ##存储

       name=ResilientStorage

       baseurl=http://172.25.13.250/rhel6.5/ResilientStorage

       gpgcheck=0

       [LoadBalancer]             ##负载均衡

       name=LoadBalancer

       baseurl=http://172.25.13.250/rhel6.5/LoadBalancer

       gpgcheck=0

       [ScalableFileSystem]     ##大文件系统

       name=ScalableFileSystem

       baseurl=http://172.25.13.250/rhel6.5/ScalableFileSystem

       gpgcheck=0

:wq

4.集群结点下载集群管理工具。所谓集群管理工具不同与管理端,该工具须下载至每个集群结点,而管理端可以不是集群结点。

在两台配置相同的虚拟主机做如下相同操作:

(1)yum install  ricci  -y          ##安装集群管理工具

(2)passwd ricci    ##给集群结点加密(一定在启动管理工具前设置密码)

(3)/etc/init.d/ricci  -y    ##启动ricci

(4)chkconfig  ricci on      ##使开机自启,监听11111端口

高可用--redhat自带套件

<2>管理端配置

管理端一般不在集群结点上,因为在创建本身所在主机为集群结点时,可能会造成服响应过慢,还需注意在创建本机为集群结点时,一定要设置luci服务为开机自启

1.yum install  luci  -y

2/etc/init.d/luci  start   ##启动服务

[[email protected] ~]# /etc/init.d/luci start

Start luci...                                             [  OK  ]

Point your web browser tohttps://server1:8084 (or equivalent) to access luci

##显示内容中提示:luci监听8084端口,访问https://server1:8084可进行管理集群结点

3.chkconfig  luci on          ##使开机自启(若是管理端在某集群结点上)

高可用--redhat自带套件

<3>测试,打开浏览器访问https://server1:8084--luci管理端监听端口

1.选择超户登录

高可用--redhat自带套件

2.管理页面显示:add表示添加集群结点至某个集群,该集群已经存在

Create表创建集群

高可用--redhat自带套件

3.创建集群

  Usethe Same Password for All Nodes:表示使用对所有结点同一密码,注意此处的密码非用户密码,根据表格信息,因为之前设置的ricci密码,ricc监听11111端口。

 Download Packages:调用本地的yum源下载安装包或更新

  UseLocally Installed Packages:使用本地已有的安装包

 Reboot Nodes Before Joining Cluster:结点加入集群前应先重启

  Enable Shared Storage Support:支持共享存储

 注意:在创建前一定要设置与ricci在同一主机的luci开机启动。

高可用--redhat自带套件

4.创建过程需要等待,创建成功时,集群结点的个组建工作状态为Running

高可用--redhat自带套件

二、集群命令方式

<一>高可用集群原理<High  Availabilty>

   实际应用过程中,并不是所有的集群结点都在工作,一般为某台工作,其余作为“热备”:                

高可用--redhat自带套件

1.Corosync(心跳检测):检测集群结点是否正常,若停止“心跳”,rg组工作;

2.直连线通信(交换机):连接集群结点的网卡接口;

3.Fence(电源交换机):对某集群结点先断电,再重启,使得内存数据不会刷新至存储系统。

4.rg组:(1)vip--可迁移地址,一定时未被占用的ip地址,与lip无关;

     (2)filesystem--共享的、集群的或是clvm的文件系统;

     (3)service--服务

5.rg组工作方式:假设当前rg组工作在集群结点1上,当node1挂掉时,rg组中的vip将filesystem迁移至另一集群结点(“热备”),因此rg组对外显示的地址为vip,而非lip。

6.Fence(电源交换机)作用:

    首先了解“脑裂”:当结点间的通信断开,但集群结点或服务本身正常时,此时集群结点会竞争rg组,  若集群结点同时对文件系统进行操作,则会造成文件系统毁坏,这种现象即为“脑裂”。

   上述现象,当结点间的通信断开,但集群结点或服务本身正常时,交换机与fence电源交换机通信,检查另一结点是否还在运行,若还在运行,fence则对另一结点先进行断电处理,然后集群结点再重启。

<二>fence配置

<1>安装fence服务--物理主机

yum install fence-virtd-libvirt-0.3.2-2.el7.x86_64  ##后端连接组件

             fence-virtd-multicast-0.3.2-2.el7.x86_64  ##多播服务

            fence-virtd-0.3.2-2.el7.x86_64         ##virtd服务

<2>fence配置

1.fence_virtd  -c          ##创建fence

显示内容解释如下:

       Modulesearch path [/usr/lib64/fence-virt]:[enter]       ##选择默认路径

       Listenermodule [multicast]:[enter]       ##多播监听方式,也可以安装其他方式,本机仅安装了multicast

       MulticastIP Address [225.0.0.12]:[enter]     ##组播ip,选择默认(可更改,但同时需要更改集群结点端)

       MulticastIP Port [1229]:[enter]    ##监听端口,选择默认1229

       Interface[virbr0]: br0           ##连接br0

       KeyFile [/etc/cluster/fence_xvm.key]:[enter]      ##该文件用来检验集群结点身份,选择默认

       Backendmodule [libvirt]:[enter]   ##后端连接libvirtd

       Replace/etc/fence_virt.conf with the above [y/N]? y   ##配置内容会保存至/etc/fence_virt.conf

2.mkdir /etc/cluster     ##创建key文件目录

 dd  if=/dev/urandom  of=/etc/cluster/fence_xvm.key  bs=128 count=1

  ##从随即数urandom中截取128字节来生成key,一般先从urandom截取,不够时选择random

3.systemctl restart  fence_virtd  ##生成key文件后,一定重启服务使key生效

4.scp /etc/cluster/fence_xvm.key  集群结点ip:/etc/cluster

  ##集群结点不需手动创建/etc/cluster,ricci服务会自动生成该目录

高可用--redhat自带套件

5.systemctl stop  firewalld

 systemctl  disabled  firewalld        ##关闭火墙

<3>管理端添加fence设备

1.选择Fence  virt(Multicase Mode)多播模式。

2.添加fence设备的过程:提交添加请求后,管理端会自动连接每个集群结点:1111,将更改保存至集群结点的cd/etc/cluster/cluster.conf;

  该文件的修改需要调用root权限,所以若要删除某集群结点,不能仅从管理端remove,且需要修改集群结点的配置文件。

3.集群结点的cman组件:基础架构,实现物理机操作与集群结点的映射。如图所示物理机test1对应集群结点server1,但fence设备并不能识别test1即为server1的物理主机,所以需要对集群结点作映射,使对内部集群结点即为对物理机的操作。

高可用--redhat自带套件

##添加设备,命名为vmfence

4.给每个结点添加fence  method:

高可用--redhat自带套件

添加fece设备,实现fence对结点的管理:

其中,Domain:结点的物理主机名或者是UUID

高可用--redhat自带套件

5.查看/etc/cluster/cluster.conf看生成结果:

高可用--redhat自带套件

高可用--redhat自带套件

 

<4>测试

1.如在server1端,执行:fence_node  server3   ##命令fence对server3立即断电,然后重启

2.ip link  set  eth0 down       ##关闭自身网卡,fence将会作用:先断电,再重启

高可用--redhat自带套件

高可用--redhat自带套件

<三>rg组的部署

<1>Failover  Domains--创建域

1.Prioritized   ##优先级设置,数字越小级别越高,默认级别高的为数据接收方

2.Restricted    ##指定结点

3.No Failback

 ##选中该项表示:不回切

 ##回切解释:如当n1挂掉,n2接管;当n1恢复后,资源回切至n1,使n1成为master,该机制下n2为“热备”。一般在n1性能很好时可选择回切,但回切可能发生资源损失:如丢包

高可用--redhat自带套件

4.自动更新设置至主配置文件

<2>Resources

1.添加IP address,设置vip,注意一定是未被占用的ip

高可用--redhat自带套件

2.添加服务,选择script脚本类型:资源切换所执行的脚本。需要保证上述域中设置的每个结点主机均有该服务。(server1、server3),如下选择httpd服务:

高可用--redhat自带套件

<3>Service  Group:服务组/资源组

##Run Exclusive           表示运行独占,此处不选择

高可用--redhat自带套件

<4>测试,访问172.25.13.113或使用clustat查看acpache服务工作于哪个结点

高可用--redhat自带套件