以下所有操作都是在Red-hat 6.5上
实验环境:
server1和server4作为集群的节点,server1也为集群控制节点。
共享存储模块:server2
1.红帽集群套件介绍
RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。是由红帽公司自主研发,并且开源的套件,特别适用新手进行集群的部署的练习。
2.集群的配置
在部署集群时,应该注意准备的几个部分:
2.1 yum源的的配置
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.42.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.41.250/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer] ##负载均衡需要的软件包
name=LoadBalancer
baseurl=http://172.25.41.250/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage] ##存储恢复所需要的软件包
name=ResilientStorage
baseurl=http://172.25.41.250/rhel6.5/ResilientStorage
[ScalableFileSystem] ##大规模文件所需要的软件包
name=ScalableFileSystem
baseurl=http://172.25.41.250/rhel6.5/ScalableFileSystem
gpgcheck=0
2.2时间同步(为了实行集群节点的心跳一致)
2.3集群套件的下载安装
server1和server4执行同样的操作
yum install -y ricci 下载集群套件
passwd ricci 集群套件的使用必须要有一个密码
/etc/init.d/ricci start 开启ricci服务即可
chkconfig ricci on 设置开机自启动
luci只在server1上安装。
通常是服务器架或者托管 luci 的数据中心的一台计算机中,但集群计算机也可托管 luci, 这里为了实验操作不繁琐我们就将luci放在集群计算机中
yum install -y luci 下载图形管理器(监视器)
/etc/init.d/luci start 开启监视服务
chkconfig luci on 设置luci开机自启动(注意:如果不设置开机自启动,在网页配置时重启后端时服务就会起不来)
打开浏览器访问 https://172.25.78.1:8084(然后进行网页设置)
3.fence系统
我们把集群创建好后,却无法测试一下集群是否生效,现在咱们装上这个电源管理fence,真实情况下这是一个硬件,来让服务器直接断电的,这时候大家会问了为什么要给服务器直接断电,这样不会丢失数据吗?现在设想一个情况,有三台服务器,两台是结点,一台是存储服务器如nfs或者scsi,结点1是正常向外提供服务的机器,但是结点1突然挂掉了,高可用集群就会将服务迁移到结点2,而且存储也接到了结点2,为了防止结点1继续向存储服务器上写数据,我们就要让他断电,因为直接断电,服务器不会执行sync,也就是将内存上的数据写到磁盘上,这样就保护了存储服务器的硬盘。
在物理机上配置fence。
安装fence需要的三个插件:
yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
fence_virtd -c
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Module search path [/usr/lib64/fence-virt] --可用模块
Listener module [multicast] --监听的模块
Multicast IP Address [225.0.0.12] --
Multicast IP Port [1229] --ip端口
Interface [virbr0]: br0 --网络类型
Key File [/etc/cluster/fence_xvm.key]: --key文件的生成目录
Backend module [libvirt]: --选择libvirt模块
Replace /etc/fence_virt.conf with the above [y/N]? y
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
安装完组件在物理机并且初始化后的操作:
mkdir /etc/cluster 建立之后生成key文件所在的目录
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1使用本机存在的取随机数的命令生成相应的key
systemctl restart fence_virtd.service 重启服务
scp fence_xvm.key root@172.25.41.1:/etc/cluster/ 将生成的key发给两个节点
scp fence_xvm.key root@172.25.41.4:/etc/cluster/ 将生成的key发给两个节点
测试:
执行: fence_node server4 #在server1上执行
结果:fence server4 success #说明配置成功
4.在集群上部署ip,http
4.1首先定义名字,接下来的三个选项分别是按照结点优先级去进行服务,只在选定结点内切换服务,当从一个结点切换到另一个结点的时候不再自动切换回原先的结点。最下面是选择我们要添加的结点。
4.2添加资源
添加ip资源
添加apache资源,我们选择用脚本的方式配置apache
4.3整合服务组
5.4.添加存储资源
真正环境下的服务,存储都不在结点机上,而是一台数据库服务器其他的服务器上,我们也是这样实验,现在使用server2作为存储服务器,做一个iscsi网络分享存储。
配置server2(存储设备):
yum install -y scsi-*
vim /etc/tgt/targets.conf
<target iqn.2017-07.com.example:server.target1>
backing-store /dev/vdb 设置分享的区
initiator-address 172.25.41.1 设置可以连接的设备
initiator-address 172.25.41.4 这里可以设置多个设备,但我们此次实验只需设置两个集群节点就好了
</target>
/etc/init.d/tgtd start开启服务
配置server1和server4(集群节点):
yum install -y iscsi-*
iscsiadm -m discovery -t st -p 172.25.41.2 告诉本机存储模块的位置
iscsiadm -m node -l 登陆模块
partprobe ##进行重载
进行分区:
fdisk -cu /dev/sda 对共享存储做分区 (分出一个8G的 LVM 的分区)
pvcreate /dev/sda1
vgcreate clustervg /dev/sda1
lvcreate -L +2G -n demo clustervg
mkfs.ext4 /dev/clustervg/demo 格式化
6.gfs2文件类型创建(两个后端资源可同步)
iscsiadm -m discovery -t st -p 172.25.41.2
iscsiadm -m node -l 登入
mkfs.gfs2 -j 3 -p lock_dlm -t lululu:mygfs2 /dev/clustervg/demo 格式化/dev/clustervg/demo为gfs2类型
vim /etc/fstab 编写挂载文件(注意:gfs2 是网络类型,要添加 _netdev )
UUID="7333efbc-c142-7824-e8a4-6e8cce95fd8b" /var/www/html/ gfs2 _netdev,defaults 0 0