一、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、配置过程中一旦出现某个小错误,修改不易成功,需要重新配置,建议保存关键步骤快照

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

  1. HA集群之三:corosync+pacemaker实现httpd服务的高可用

    一.基础概念 1.集群的组成结构 HA Cluster: Messaging and Infrastructure Layer|Heartbeat Layer 集群信息事务层 Membership L ...

  2. CHAPTER 3 Web HA集群部署 - Keepalived

    Web HA集群部署 - Keepalived 1. Keepalived概述 1.1 工作原理 1.2 核心功能 1.3 拓扑图 2. KeepAlived安装方式 2.1 yum源安装 2.2 源 ...

  3. web应用的负载均衡、集群、高可用(HA)解决方案

    web应用的负载均衡.集群.高可用(HA)解决方案 参考文章: (1)web应用的负载均衡.集群.高可用(HA)解决方案 (2)https://www.cnblogs.com/huojg-21442/ ...

  4. rabbitmq使用_RabbitMQ的使用(二) RabbitMQ服务在单机中做集群

    作者:markjiang7m2 博客园地址:https://www.cnblogs.com/markjiang7m2/p/12837151.html 官网地址:http://letyouknow.ne ...

  5. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案

    浅谈web应用的负载均衡.集群.高可用(HA)解决方案 转载于:https://www.cnblogs.com/hfultrastrong/p/7887420.html

  6. seata的部署与微服务集成(包含多集群异地容灾配置)

    seata的部署与微服务集成 一.部署Seata的tc-server 1.下载与安装 2.配置文件详细讲解 3.创建数据库表 4.启动 二.微服务集成seata 1.引入依赖 2.修改配置文件 3.启 ...

  7. .Net Core微服务入门——Ocelot和Consul集群高可用

    .Net Core微服务入门--Ocelot和Consul集群高可用 上一章 我们ocelot网关顺利的接入了consul集群,并且访问成功. 但是,我们也遇到了问题,把 192.168.8.25 上 ...

  8. vSphere Web Client 添加主机进VSAN集群时“SAN 主机移至目标群集: vSAN 群集的 UUID 不匹配”报错

    vSphere Web Client 添加主机进VSAN集群时,报"无法将 vSAN 主机移至目标群集: vSAN 群集的 UUID 不匹配 (主机: 5223a6c9-cf94-f978- ...

  9. 简单体验K8S的Saas服务-青云KubeSphereCloud轻量集群服务

    简单体验K8S的Saas服务-青云KubeSphereCloud轻量集群服务 背景 之前有写过几篇KubeSphere的使用笔记: 使用kubekey的all-in-one安装K8S1.24及Kube ...

最新文章

  1. Access restriction required library rt.jar
  2. Transformer又来搞事情!百万像素高清图轻松合成,效果迷人
  3. python编程题-python编程练习题
  4. java中jdbc的封装笔记_JDBC封装学习笔记(三)---面向对象的JDBC,使用preparedStatement...
  5. Angular form学习笔记
  6. P3934-Nephren Ruq Insania【欧拉定理,树状数组】
  7. 《Java8实战》笔记(09):默认方法
  8. 计算机专业英语基础篇
  9. 史上最实用mysql参数之一-----sql_safe_updates
  10. 回车提交、连续点击、layer提示
  11. 完整的安全方案需要参考的几个方面
  12. 18. Make interfaces esay to use correctly and hard to use incorrectly
  13. 在电脑上安装Intel HAXM(硬件加速执行管理器)
  14. php经过twemproxy无法delete后端memcache值的解决方法
  15. SCM提升供应链管理效率
  16. 数据可视化BI平台--CBoard的使用
  17. Python开发工具PyCharm的web开发教程:创建并运行 Python 项目
  18. python2和python3 print_新手学习Python2和Python3中print不同的用法
  19. 个人NAS家庭服务器解决方案概况
  20. C# Lambda 表达式

热门文章

  1. Python如何打印彩色文本,代码瞬间高大上【深度好文,果断收藏】
  2. c语言程序代码应缩进几格,汉诺塔c语言程序代码
  3. Google入门到精通(搜索方法经典)
  4. すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit) AtCoder - 2145
  5. 解决ubuntu安装后进入系统时黑屏,左上角闪动光标(ubuntu20亲测有效,应该是解释最详细的一篇了)
  6. Neo4j Vs JanusGraph Vs Tigergraph
  7. SpringBoot整合MyBatis遇到的问题(一)
  8. 免费制作云图的网站(可以从文章中提取关键字)
  9. 类型萃取类型检查 Type-Traits LibraryType Checks --- C++20
  10. 如何在arxiv上发论文