RHCS(企业6上的高可用集群搭建和图形化管理)

2019/7/22 18:28:16 人评论 次浏览 分类:学习教程

一、rhel6.5的封装和快照的创建

##由于具体的封装步骤与rhel7.5版本的步骤一致,所以重复的内容不再赘述,只简单说明不同的操作
(1)配置ip,网关,DNS,主机名和本地解析
(2)关闭iptables,ip6tables,selinux,并关闭开机自启动
(3)搭建yum源,安装vim,lftp,openssh等常用软件
(4)删除不适用的规则,删除root用户家目录下的文件
(5)重启后再次查看设定,关机
(6)清缓存,删掉virt-manager中母盘的快捷方式,创建快照

注意:企业6版本中并没有systemctl这个命令,所有软件的运行到都要以脚本的方式来启动
/etc/init.d/iptables stop 			##企业6中默认并没有firewalld,但是有iptables和ip6tables
/etc/init.d/ip6tabls stop			
chkconfig iptables off				##关闭开机自启动的方法
chkconfig ip6tables off				
vim /etc/sysconfig/network			##更改主机名的方法,而且需要重启后才能生效
cd /etc/udev/rules.d/				##查看本机的规则文件,因为里面可能会有企业7版本中的规则,企业6中并不能使用,不删除后面的操作可能会出问题
rm -fr 70-*							##删掉企业7版本的规则

二、图形化网站管理的搭建

1.环境准备:

为了节省资源,在本次实验中只使用两台虚拟机server1和server2,让server1既是管理节点也属于一个集群节点,server2只是一个集群节点
##本次实验中,server1的ip设为172.25.21.1,server2的ip设为172.25.21.2
因为高可用和负载均衡等安装包不在本身的yum源中,所以需要再配置一下yum源
vim /etc/yum.repo.d/rhel6.repo				##添加如下内容,server1和server2都做此设定
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.21.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.21.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.21.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.21.250/rhel6.5/ScalableFileSystem
gpgcheck=0

在这里插入图片描述
在这里插入图片描述

2.服务搭建:

(1)安装软件并开启服务
[root@server1 ~]# yum install ricci luci -y			##既是管理节点也是集群节点
[root@server2 ~]# yum install -y ricci

两个软件分别的作用:
ricci是安装在每个后端的每个节点上的,luci管理集群上的各个节点就是通过和节点上的ricci进行通信,ricci监听在11111上
luci是用来配置和管理集群,监听在8084上

id ricci				##可以看到系统生成了一个ricci的用户
passwd ricci			##给这个用户一个密码,在图形网页界面登陆时会用到,建议server1和server2使用相同密码
/etc/init.d/ricci start		##开启服务
chkconfig ricci on			##设置服务开机自启动(因为在网页管理时会给你重启节点,不设置自启动会导致服务起不来)
[root@server1 ~]# /etc/init.d/luci start		##开启管理服务并设置自启动
[root@server1 ~]# chkconfig luci on
chkconfig --list			##查看以脚本方式运行的软件的状态,不全为off即视为可以自启动
(2)集群的创建和节点的添加
在网页输入https://172.25.21.1:8084进入高可用图形管理界面,以root用户登陆,登陆后可能会有一个警告,点ok即可
进入后的初始管理界面应该为:

在这里插入图片描述
在这里插入图片描述

##先点击Manage Clusters,然后点击create创建一个集群,并将server1和server2当作节点加入这个集群
##添加好信息点击create,等待即可,注意:如果一直在等待启动,那可能是ricci和luci服务没有设置开机自启动

在这里插入图片描述

集群创建好后应该如下图所示:
##也可以在命令行中查看集群策略和状态信息:
cat /etc/cluster/cluster.conf				##集群信息的保存文件
clustat										##查看集群中节点的状态

在这里插入图片描述
在这里插入图片描述

3.fence管理:

此时需要另一台主机来当作fence主机管理两个节点,在这里我们就用真机来管理

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

##它一般可分为软件和硬件两种:
硬件Fence:电源Fence,通过关掉电源来踢掉坏的服务器
软件Fence:Fence卡(智能卡),通过线缆、软件来踢掉坏的服务器
(1)fence主机上的设定:
yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64	##安装fence管理软件
fence_virtd -c			##初始化设定,除了网卡修改为真机的桥接br0外,其他都用默认,直接回车即可,最后在是否替代配置文件
					时选择yes

mkdir /etc/cluster		##根据最后一步的密钥文件保存位置来手动生成一个密钥(自己的那里是啥就写啥)
cd /etc/cluster			##进入目录
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1		##生成一个密钥文件

scp fence_xvm.key root@172.25.21.1:/etc/cluster/		##将密钥分别发送给两个节点,进行管理时会用密钥来验证
scp fence_xvm.key root@172.25.21.2:/etc/cluster/
(2)图形界面的设置:
首先在Fence Devices里add一个fence设备,设置参数如下图:

在这里插入图片描述

然后点击Nodes,分别点击server1和server2来完成设定,设定如下图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)测试:
此时可以在server1上通过命令让server2直接断电,反过来也可以实现
systemctl start fence_virtd.service			##在fence管理主机上开启fence服务 
[root@server2 ~]# fence_node server1		##在server2上关闭server1
cat /etc/cluster/cluster.conf				##查看配置文件可以看到fence策略
netstat -antuple | grep 1229				##查看fence服务的端口

##注意:fence主机的防火墙和selinux应该允许fence服务,否则就会失败但是不报错

在这里插入图片描述

4.集群apache服务的管理:

(1)
首先在Failover Domanins点击add添加一个服务集群并选择成员节点
创建完后如下图所示:

在这里插入图片描述
在这里插入图片描述

(2)在Resources里面点击Add添加资源:
##添加过程及完成效果应该如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)
#在server1和server2上安装apache并编写一个默认发布文件,但是不用开启服务,图形界面配置好后,集群会自动开启
#然后在图形管理界面把资源Resources添加到一个组里面,即在Service Groups里创建一个组并把apache的资源添加进来

yum install -y httpd			##安装apache
vim /var/www/html/index.html	##编写一个默认发布文件

图形管理界面操作如下图所示:
注意:记得添加资源,不然没有服务运行

在这里插入图片描述
在这里插入图片描述

测试:模拟问题,把server1关掉,可以看到服务自动切换到server2

[root@server2 ~]# watch -n1 clustat				##在server2上监听集群的变化,然后关掉server1
##在日志中可以看到ip的增加和移除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.集群共享数据存储服务的图形化准备工作(这里以mysql服务为例)

(1)
环境准备,需要一个专门提供共享设备的服务器,这里就再添加一台虚拟机server3
并且给server3添加一个5g存储硬盘来当作共享设备,提供共享设备所用服务为iscsi

fdisk -l 		##查看添加的硬盘大小和名称

在这里插入图片描述

(2)
server3共享服务的设定:
yum install scsi-* -y			##安装iscsi服务
vim /etc/tgt/targets.conf		##修改配置文件
/etc/init.d/tgtd start			##开启iscsi服务

ps aux							##应该可以看到两个tgtd的进程
tgt-admin --s					##开启服务后执行可以查看到共享的设备信息

在这里插入图片描述
在这里插入图片描述

server1和server2上的设置:(没有特殊说明则两台主机设置相同)
yum install -y iscsi-*								##安装iscsi客户端服务
iscsiadm -m discovery -t st -p 172.25.21.3			##发现共享设备
iscsiadm -m node -l									##将共享设备挂载到本地
cat /proc/partitions								##查看本地设备中是否有共享设备,一般名字都为sda

fdisk -cu /dev/sda									##创建一个分区
mkfs.ext4 /dev/sda1									##格式化文件系统

注意:一般为了避免分区引导表丢失然后导致数据无法找回的问题,应该主动备份或者只分一个区甚至不分区

在这里插入图片描述

server1和server2上继续设置:
yum install -y mysql-server				##安装数据库软件
mount /dev/sda1 /var/lib/mysql/			##将刚才格式化的设备挂载到mysql的数据目录下
ll -d /var/lib/mysql/					##查看权限可以看到是root,因为这是mysql软件运行存放数据的,所以改回mysql
chown mysql.mysql /var/lib/mysql/
/etc/init.d/mysqld start				##启动服务
ls /var/lib/mysql/						##可以看到产生了数据
/etc/init.d/mysqld stop					##停止服务
umount /var/lib/mysql/					##取消挂载

在这里插入图片描述

(3)
开始图形化管理的设置

在这里插入图片描述
Resources的添加(两个服务不能使用同一个ip,否则会有冲突,所以这里再设置一个不同的ip):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#服务组的设定:
在这里插入图片描述
在这里插入图片描述

(4)
测试:
取消apache的运行独占,让他们可以运行在一台主机上,因为apache会向最高优先级自动切换
所以我们让mysql运行在apache的主机上

在这里插入图片描述
在这里插入图片描述

6.集群共享数据存储服务的图形化实现(gfs2:一台主机写入数据库数据目录的文件另一台主机挂载后也可以看到)

(1)以命令行的形式来设置:
server1和server2的设定:
/etc/init.d/clvmd status	##确保在共享服务开启前这个存储服务是开启的,否则后面回有冲突
vim /etc/lvm/lvm.conf		##查看共享设备模式是否为集群模式3
lvmconf --disable-cluster	##可恢复默认模式1
lvmconf --enable-cluster	##如果不是模式3可以用此命令变成模式3

fdisk -cu /dev/sda
mount /dev/sda1 /var/lib/mysql	##一个新设备的权限还是root,所以需要重新修改权限
chown mysql.mysql  /var/lib/mysql		

pvcreate /dev/sda1			##把原来的设备删掉,创建一个新设备来共享
vgcreate clustervg /dev/sda1
lvcreate -L 2G -n demo clustervg

clustat						##在使用gfs2格式化之前先确认集群的名称,自己的集群名称是什么就写什么
mkfs.gfs2 -t yy_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo		##以gfs2格式将它格式化,用法实例可以通过man查看
blkid						##查看本地的设备信息,可以看到server1和server2上的uuid是相同的
(2)测试:
在server1上写入文件,server2上挂载后可以看到同样的内容

在这里插入图片描述
在这里插入图片描述

(3)以图形方式来设置共享方法:(注意,这里也是利用现有的设备,所以上一个实验还要完成
首先在Service Groups里停止sql服务,然后把其中的Filesystem资源删掉,再把Resources里的Filesystem删掉重写
写完以后再把资源添加到服务组里,重启服务即可

图形界面的实验现象与命令行操作的现象应该相同

在这里插入图片描述
在这里插入图片描述

三、图形化界面管理再启动服务出现错误时的一种解决方法

1.错误如下图:
在这里插入图片描述

出现错误的原因:很可能是因为后端的数据与前端更新的数据不匹配,多出现在修改数据之后,导致节点处于位置状态

解决方法:
(1)把集群的管理服务cman重新启动,但是需要先关闭其他的服务才可以关闭cman
/etc/init.d/clvmd stop					##全部关闭后在启动即可
/etc/init.d/rgmanager stop
/etc/init.d/cman stop
/etc/init.d/ricci stop
/etc/init.d/luci stop

(2)如果执行方法一还不行,那么就把server1和server2重新启动,在此登陆刷新页面,可以看到服务直接启动了

在这里插入图片描述

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->