RHCS+Conga+iSCSI+CLVM+GFS实现Web服务的共享存储HA集群

来源:互联网 发布:上色软件 编辑:程序博客网 时间:2024/04/30 14:15

一、RHCS架构规划:

  • 所有服务器系统均为CentOS6.4_x86_64
  • 在架构RHCS集群的诸多设定中如rpm包安装、配置文件修改等都需要在三个节点上同时进行;为了便于实现此过程,配置一台stepping node,在管理机上配置好ansible统一部署cluster_node,同时安装集群管理工具luci;
  • Node1,Node2,Node3配置成web高可用集群,安装ricci,安装iscsi
    initiator作为iSCSI客户端,登录target端输出的共享设备,并启用clvm,格式化为gfs文件系统;
  • Node4上准备集群ISCSI共享磁盘,安装scsi-target-utils作为target服务端,同时将Node4配置成为时间服务器,各节点时间与Node4同步;

上述ansible部署,ntp服务器配置,web服务器,iscsi target端与initiator端的详细搭建见此前相关博文,这里不再赘述
实验架构图
这里写图片描述
二、搭建基于RHCS高可用集群的准备工作
1.设定主机名称解析,确保节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称跟”uname -n“命令的结果保持一致
这里写图片描述
这里写图片描述
这里写图片描述
2.各个节点时间同步
这里写图片描述
3.为避免影响实验结果,关闭各个节点的iptables与selinux设置
这里写图片描述
这里写图片描述
4.确保Node1、Node2、Node3上httpd服务可以正常访问
这里写图片描述
5.停止服务并禁止开机自启
这里写图片描述
这里写图片描述
三、配置Conga(ricci&&luci)
1.集群各节点上安装ricci
这里写图片描述
2.设置ricci账号密码,用于luci连接认证
注意:ansible使用user模块时,password后面指定的密码不能是明文,后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中,而登陆的时候输入的密码会被hash加密以后再去与/etc/shadow中存放的密码去做对比,会出现不一致的现象。所以需要先将密码字符串进行加密处理后指为password
这里写图片描述
3.启动ricci服务
这里写图片描述
4.管理机上安装luci,启动服务,使用web方式配置集群
这里写图片描述
四、Conga管理工具(luci/ricci)定义集群
1.添加信任例外
这里写图片描述
2.登陆RHCS的配置界面为管理机系统管理员的账号密码
这里写图片描述
3.创建一个集群并添加各节点
登录进管理界面,点击Manage Clusters –> Create 填入如下内容:选中如下选项,然后提交
选择Download Packages,配置好yum源,系统会自动安装集群相关软件包
说明:这步会生成集群配置文件/etc/cluster/cluster.conf
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
4. 添加Fence Devices
说明: RHCS要实现完整的集群功能,必须要实现fence功能;这里为演示环境,由于非物理服务器配置等条件限制,使用VMware ESXi5.X的虚拟fence来实现fence设备的功能。
(1)登录进管理界面,点击cluster-> Fence Devices->
(2)选择”Add 选择VMware Fencing(SOAP Interface)
(3)Name “ESXi_fence”
(4)IP Address or Hostname (ESXi地址)
(5)Login&Password为登录fence设备的用户和密码
这里写图片描述
5. 节点绑定Fence设备
(1)点击Node1节点,AddFence Method,这里fence_Node1;
(2)添加一个fence instance,选择”ESXi_fence” VMware Fencing(SOAP Interface)
这里写图片描述
说明: VMNAME: 虚拟机名称,VM UUID: 虚拟机.vmx文件中”uuid.location”值
这里写图片描述
6.创建故障转移域
Prioritized:优先级:有序的 — 可在故障切换域的成员间指定顺序
Restricted:限制 — 允许限制可运行具体集群服务的成员。如果在限制故障切换域中没有可用成员,则无法启动集群服务(手动或者使用集群软件均不可行)
这里写图片描述
7.创建web高可用需要的资源: VIP地址;httpd脚本;
这里写图片描述
8. 新建服务组,添加刚才新建的两个资源进服务组
这里写图片描述
这里写图片描述
访问测试
这里写图片描述
这里写图片描述
五、配置集群ISCSI共享磁盘为后面格式化gfs做准备
1.挂载系统光盘后yum安装target包;在Node4上添加一块新硬盘,作为target对应的存储空间,不需要分区格式化
这里写图片描述
2.启动服务守护进程,创建target;关联存储设备到target;实现基于IP的认证,将initiator-address与target绑定
这里写图片描述
3.Node1,Node2,Node3上挂载系统光盘yum安装initiator客户端软件包:iscsi-initiator-utils
这里写图片描述
这里写图片描述
4.启动服务
这里写图片描述
5.发现存储服务器输出的target
这里写图片描述
这里写图片描述
6.从initiator端登录到存储服务器上
这里写图片描述
7.成功将target上的设备识别为本机设备
这里写图片描述
六、创建共享存储资源基于clvm的gfs
Cluster Logical Volume Manager集群逻辑卷管理是LVM的扩展,借助于HA的基础信息架构层,将某节点对LVM操作通知给其他节点,这种扩展允许cluster中的机器使用LVM来管理共享存储,但是配置之前需要开启lvm支持集群功能。
1.启动CLVM服务,在各节点上通过命令启用CLVM的集成cluster锁服务,也可以编辑/etc/lvm/lvm.conf设置locking_type = 3
这里写图片描述
2.验证配置文件是否修改成功
这里写图片描述
3.启动服务
这里写图片描述
这里写图片描述
4.在Node1上进行配置集群逻辑卷

[root@Node1 ~]# pvcreate /dev/sdb[root@Node1 ~]# vgcreate webvg /dev/sdb[root@Node1 ~]# lvcreate -L 5G -n weblv webvg

5.此时在其他节点上可以看到刚才创建的逻辑卷
这里写图片描述
6.格式化上面新建的逻辑卷,创建一个GFS文件系统;GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但安装GFS需要RHCS的底层组件支持。
说明:创建GFS需要提供的信息:
日志文件大小
文件系统大小
锁类型:lock_nolock/lock_dlm
锁文件的名字,通常为文件系统名:cluster_name:fs_name
日志的个数,通常一个节点对应一个日志文件,但建议提供比节点数更多的日志数目,以提供冗余;
语法格式: gfs_mkfs -p lock_dlm -t ClusterName:FSName -j Number -b block_size -J journal_size BlockDevice
这里写图片描述
7.在每个节点上挂载文件系统,挂载GFS文件的主机必须是对应集群中的节点;Node3挂载失败,因为刚才在Node1上格式化文件系统时只创建了2个日志
这里写图片描述
说明:挂载GFS文件时有如下常用选项可用:
lockproto=[locl_dlm,lock_nolock]
locktable=clustername:fsname
upgrade # GFS版本升级时有用
acl 如果不想每一次启用GFS时都得指定某选项,也可以通过类似如下命令为其一次性指定:
gfs_tool margs”lockproto=lock_dlm,acl”
8.添加一个日志,先卸载再重新挂载
这里写图片描述
这里写图片描述
9.由于挂载点为/var/www/html,原来目录下的index.html会暂时消失,因此在Node1重新创建index.html
[root@Node1 ~]# vim /var/www/html/index.html
可以看到在Node1上增加的内容其会自动同步到其他节点上
这里写图片描述
10.在luci的Resources菜单添加一个GFS2资源,再打开Services Group菜单,点击web_service服务,添加刚创建的share_store
这里写图片描述
这里写图片描述
11.访问VIP,其主页内容已经变成了共享存储上的主页了
这里写图片描述
这里写图片描述
12.高可用性验证,手动关闭Node2,模拟宕机
这里写图片描述
这里写图片描述
这里写图片描述
搭建过程易出错误处:
1、时间不同步造成集群无法进行配置文件传递
2、配置过程中一旦出现某个小错误,修改不易成功,需要重新配置,建议保存关键步骤快照

0 0
原创粉丝点击