一.环境配置
redhat6.5版本虚拟机
server1:管理
server2:节点
server3:节点
二.创建集群
在server1配置yum源
添加可扩展文件系统,高可用,负载均衡,存储的相关软件包
安装openssh-clients软件
server2也安装openssh-clients
在server1中复制yum源到server2,也可以自己手动配置
在server1中安装ricci,luci
查看/etc/passwd文件可以看见自动添加了ricci用户,给ricci用户添加密码
在server2中下载ricci
同样给ricci用户添加密码
在server1中开启ricci服务,luci服务(8084端口)
开启server2中的ricci服务
打开浏览器访问https://172.25.6.1:8084(要有本地域名解析)
获取证书
点击learn more
点击add exception
点击confirm security exception登陆用户名密码(root用户)
点击Manage Clusters
点击Add,创建新的集群westos_ha(名字自拟),添加server1和server2两个节点
在server1中设置ricci和luci开机自启(上边选了在添加到集群之前重启节点,所以要设置开机自启,否则添加时一直等待,添加不成功)
返回浏览器点击create cluster
在server1中查看集群节点状态
在server2中查看集群节点状态
三.配置fence
在真机中下载安装fence-virtd.x86_64 , fence-virtd-libvirt.x86_64 , fence-virtd-multicast.x86_64
查看fence的配置文件
添加fence device,选择Fence virt(Multicast Mode)多波模式,名字为vmfence
点击submit
选择server1点击Add Fence Method命名vmfence-1
在vmfence-1点击Add Fence Instance,选择vmfence(xvm Virtual Machine Fencing)
Domain填写uuid(唯一)在virt-manager中打开虚拟机显示虚拟硬件信息
点击submit
server2中同样添加vmfence-2
在真机中建立/etc/cluster目录,生成key
注意Interface,看自己的网络信息
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
scp fence_xvm.key root@172.25.6.1:/etc/cluster/
scp fence_xvm.key root@172.25.6.2:/etc/cluster/
测试:
启动fence服务
systemctl start fence_virtd
在server1中查看文件是否复制成功
在server2中查看文件是否复制成功
在真机中查看fence服务是否打开
在server1中
fence_node server2 #server2会重新启动
四.负载均衡
添加故障转移主节点到westos_ha集群
点击Failover Domain,添加webfail
server1的priority为1,server2为10(越小表示权重越大)
点击Create
点击Resources,添加资源
添加IP Address
添加httpd的启动脚本
点击Service Groups
Failover Domain选择webfail
点击Add Resource
添加之前添加的两个资源
测试:
在server1中下载httpd服务
编辑默认页
在server2中也下载httpd服务
编辑默认页
之前下载httpd服务但是并未开启,在浏览器中刷新可以看见apache已经打开并运行在server1中
在server1中查看httpd服务的状态
clustat #查看集群信息
在真机中
curl 172.25.6.100
在浏览器中修改apache服务运行在server2中
在server2中
clustat
在真机中:
curl 172.25.6.100
如果server2故障:
apache服务会去掉server2,回到server1中,这就是故障转移
五.共享存储硬盘
在server3中
fdisk -l#查看分区表信息
添加一个8g的硬盘
fdisk -l#再次查看分区表信息,多了一个vda
server3中安装scsi-*的所有软件
vim /etc/tgt/targets.conf #添加共享硬盘
启动tatd服务
ps ax #查看进程
tatd有两个进程
在server1,server2中安装iscsi_*所有软件
在server1中查看共享硬盘并使用
fdisk -l #查看多了一个sdb设备
server2同server1操作
在server1中下载安装mysql-server
格式化/dev/sdb
mount /dev/sdb /var/lib/mysql/ #挂载sdb到 /var/lib/mysql/
chmod mysql.mysql /var/lib/mysql/ #修改 /var/lib/mysql/的权限
开启mysql服务,初始化mysql
关闭 mysql服务
umount /var/lib/mysql/ # 卸载
在server2中同理server1
在浏览器中关闭apache服务
在server1中查看
添加资源,选择IP Address
选择Script 添加mysqld脚本
选择Filesystem,添加dbdata
添加故障转移dbfail,权重这里和webfail的相反
添加Seevice Groups
点击Add Resource添加之前添加的三个资源
点击选择apache,去掉之前的运行独占(Run Exclusive),重新apply一下
在server1中查看集群信息,apache服务是关闭的,sql服务在server2上
在server2中测试mysql服务是否可用
用命令开启apache服务
clusvcadm -e apache
clustat # 查看
curl localhost
用命令把apache服务转移到server2中
clusvadm -r apache -m server2
从集群中停止apache服务
此时共享硬盘是单点写入
测试:
在server1中挂载/dev/sdb到/var/lib/mysql
复制一份文件/etc/passwd到此共享硬盘,此时ll是可以查看到的
在server2中却看不到
在server1中删除复制的passwd文件
实现多点写入
卸载sdb
查看clvmd 服务状态(必须是运行,不运行就打开)
停止集群中的所有服务并查看
vim /etc/lvm/lvm.conf # 查看locking_type(3表示开启,1表示关闭)
命令关闭
lvmconf --disable-cluster
命令开启
lvmconf --enable-cluster
开启clvmd服务
lvs #查看lv信息
pvs #查看pv信息
格式化demo
挂载/dev/clustervg/demo
修改/var/lib/mysql权限
开启mysql服务,初始化数据库
关闭数据库
卸载/var/lib/mysql
检查
查看挂载信息
卸载/mnt
mkfs.gfs2 -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo
mount /dev/clustervg/demo /var/lib/mysql(可以设置永久挂载)
chmod mysql.mysql /var/lib/mysql/
在server2中也挂载
mount /dev/clustervg/demo /var/lib/mysql
此时重新复制文件,server1和server2都可以看见
在server1中
[root@server1~]gfs2_tool journals /dev/clustervg/demo #查看生成的两个文件
journal1 - 128MB
journal0 - 128MB
在浏览器中关闭两个服务
点击Sources移除之前的dbdata,重新添加新的GFS2的dbdata
点击Service Groups添加之前添加的资源
开启服务
在server1中查看挂载信息是否挂载上
查看mysqld服务服务状态是否在运行