实验环境

redhat6.5虚拟机三台,各1G内存,时间同步

server1  172.25.44.1

server2  172.25.44.2

server3  172.25.44.3

火墙和selinux均处于关闭状态

编辑/etc/hosts文件,加入解析

 

 

不支持在集群节点中使用 NetworkManager。如果已经在集群节点中安装了 NetworkManager,应该删除或者禁用该程序。

server1  server2 ricci节点

(1).yum源配置

 

 

wKiom1eKSA7xCtgJAAE6ZGVK5DI471.png-wh_50

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

[server]

name=localserver

baseurl=http://172.25.44.44/rhel6.5

gpgcheck=0

 

[HighAvailability]     ###高可用集群

name=localserver

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

gpgcheck=0

 

[LoadBalancer]

name=localserver

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

gpgcheck=0

 

[ResilientStorage]   ###存储

name=localserver

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

gpgcheck=0

 

[ScalableFileSystem]     ###大型文件系统

name=localserver

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

gpgcheck=0

 

yum repolist ###列出可用的包,默认都是server里面的3690个包

yum源配置完成之后,有可用的包 3819      

 

wKioL1eKSFmjo_QeAABWc2Mq3kI453.png-wh_50


(2).安装ricci以及设置开机自启动

yum install ricci  -y

chkconfig ricci on  ###开机自启动

echo linux | passwd --stdin ricci  ###6.1版本之后要给一个密码(cat /etc/issue查看版本)

/etc/init.d/ricci  start   ###启动服务

 

server3

 

(1)yum源的配置同server1 server2

(2)yum install luci -y

   chkconfig luci on  ###开机自启动

(3)/etc/init.d/luci  start  出现如下界面

 

wKiom1eKSFmyHw1RAAA1xoGX6uI719.png-wh_50


浏览器中访问https://server3.example.com:8084

可以看到如下luci登录界面

以超级用户的身份和密码登录进行管理

 

wKioL1eKSFrAXgDKAABjssq5AQc437.png-wh_50

 

创建集群

(1)luci Homebase” 页面左侧菜单中点击「管理集群」 。此时会出现「集群」 页面;

(2)点击创建后出现创建集群界面。如下

 

wKiom1eKSF7zolYfAAB5MvX8-bY161.png-wh_50


参数说明:

a.集群名称随意输入,不能超过15个字符

b.如果节点的ricci密码相同,则可以选择“使用相同密码(所有节点)

c.添加节点,节点名称密码自己添加,端口默认为11111,自己可以更改

d.下载软件安装包比使用本地软件安装包多了一个更新的功能

e.选择加入集群前重启和启动共享存储支持

 

###点击创建属性之后,会有相关信息显示正在创建;

注意:点击创建出现错误,重新给ricci节点一个密码,确保其密码和添加节点的时候输入的密码一致。

 

创建完成后:

 

wKioL1eKSF7DUApMAACHYg_YiHg469.png-wh_50


wKiom1eKSUXi4_kvAAB9ptCKXcQ177.png-wh_50


 

clustat查看状态

 

 

配置fence设备

产生脑裂:

(1)网络突然断开,彼此都以为对方接收不到信息,然后同时对数据进行操作

(2)一个夯住,另外一个节点以为对方挂掉,当夯住的那个节点醒来之后继续工作,两个都会对数据进行传送;

夯住的时候可以使用fence机制,简单来说,就是另外一个节点把夯主的那个节点一棍子打死,就不会产生脑裂现象;

图形界面添加一个fence设备

 

wKiom1eKST2i5RbQAABqJkVm3qk316.png-wh_50


 

这里用的两个虚拟机,类型选择虚拟设备的多播模型;

 

物理机只是添加一个连接接口,它可以发出foceoff的命令;

 

物理机:

(1)

yum install fence-virtd fence-virtd-libvirt  fence-virtd-multicast -y


(2)systemctl start fence_virtd  ###开启服务

netstat -anulpe #查看端口 1229

(3)fence_virtd  -c

默认回车   Interface [virbr0]: br0   Backend module [libvirt]:libvirt

(4)mkdir /etc/cluster  ###不存在则建立

cd /etc/cluster

dd if=/dev/urandom of=fence_xvm.key bs=128 count=1  ####截取生成fence_xvm.key文件

systemctl restart fence_virtd.service ###重启服务

(5)key文件scp到其他两个ricci节点主机

scp fence_xvm.key  root@172.25.44.1:/etc/cluster/

scp fence_xvm.key  root@172.25.44.2:/etc/cluster/

 

 

建立虚拟机和其hostname之间的映射

在图形界面节点选项中选择一个设备比如server1:

 

wKioL1eKST6BxjXeAAAq4mSxAVE407.png-wh_50

wKioL1eKST7AxvTiAABmz9zJKFo297.png-wh_50


这里的Domain可以是虚拟机的名称或者uuiduuid是唯一的

 

server2server1的方法一样,把所有节点都配置

 

检测:在server1中: fence_node server2.example.com 

  server2断电重启,执行forceoff命令,反之一样

wKiom1eKST_zZRWsAAAqdT2Fu8U929.png-wh_50


创建Failover Domain

Failover Domain是配置集群的失败转移域,通过其可以将服务器和资源的切换限制在指定的节点间

 

 

wKiom1eKST_iXWzaAABqyOSSIrw987.png-wh_50


 

参数说明:

prioritized:是否在这个域中启用域成员优先级设置,这里选择启用;

Restricted:是否在失败转移域成员中启用服务故障切换限制;

No failback:主节点故障,备节点会自动接管相关业务;当主节点恢复正常,不恢复到主节点,只有当备节点故障时,才会回到主节点;

优先级的设置,数字越小,优先级越高


创建资源


wKioL1eKSUOQDDEyAABgRaI4tS0090.png-wh_50


填写的ip要是ping不通的,为集群vip

wKiom1eKSUSD6NBxAAA-ntvu9Vo789.png-wh_50


两台ricci节点主机安装httpd,且httpd的状态为stop

 创建资源组

wKioL1eKSUSDQ6CMAABn-bjZg3Y755.png-wh_50

添加资源,顺序ip-->httpd

添加的顺序就是开机的启动顺序

测试:

server1server2中创建测试页

server1:echo  "<h1>server1</h1>" >/var/www/html/index.html

server2:echo  "<h1>server2</h1>" >/var/www/html/index.html


当前在server1

 

网页访问:172.25.44.144 

 

(1)

wKioL1eKS1XB5gQqAAAUfQtOpqc089.png-wh_50


wKiom1eKS1TSQ15XAACfRVxJDo0758.png-wh_50


wKioL1eKS1WRoeGgAAAXf6EX9Og037.png-wh_50


 正常情况下由server1主管,当server1的服务停止后,由server2进行接管,由于是一个集群vip,所以ip不变。

(2)server 2: /etc/init.d/network  stop

wKioL1eKS1XB5gQqAAAUfQtOpqc089.png-wh_50

(3)server1: echo c > /proc/sysrq-trigger   ###使内核崩掉

server1 崩掉后fence机制,force重启

 

 共享:

server3:装有luci的主机

 yum install scsi-* -y

添加磁盘8G  fdisk -l 可以查看

分区fdisk -cu /dev/vda

vim /etc/tgt/targets.conf

 

wKiom1eKS1ajbhtOAABRUfLmdFE909.png-wh_50


/etc/init.d/tgtd  start

 

server1  server2

(两台ricci节点主机)

yum install iscsi-* -y

 

wKiom1eKS1bDjOh7AACahx1IZKk099.png-wh_50


检测并登录

 

登录成功后fdiks -l 查看多了/dev/sdb

以上操作两台主机都执行

 

server1

server1中对/dev/sdb/进行分区(server2执行partprobe后会同步)

fdisk -cu /dev/sdb     t   8e

 

pvcreate /dev/sdb1

vgcreate clustervg /dev/sdb1

lvcreate  -L 2G -n data1 clustervg

mkfs.ext4 /dev/clustervg/data1   

 

ext4 本地文件系统,不支持多个挂载点同时对文件进行读写,保证一个点挂载不会出现问题

 

mount /dev/clustervg/data1  /mnt

 echo "<h1>linux</h1>" /mnt/index.html   ####编辑测试页

umount /mnt

 

 server1  server2

clusvcadm  -d apache  ###停止apache

 

wKioL1eKS1exwOJmAACdw_qlGqs853.png-wh_50


 

wKioL1eKS1ejAY7LAAB81x5q3eM386.png-wh_50


在服务组里面添加资源

顺序:ip --> filesystem(data1) -->httpd(script)

 

clusvcadm  -e apache  ###启动apache

 

测试:172.25.44.144

 

wKiom1eKS1jild8mAAASlqKz1bE208.png-wh_50