设为首页 收藏本站
查看: 1942|回复: 0

[经验分享] RHCS+Conga+iSCSI+CLVM+GFS实现Web服务的共享存储HA集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-26 10:15:49 | 显示全部楼层 |阅读模式
  一、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端的详细搭建见此前相关博文,这里不再赘述

实验架构图

DSC0000.jpg

二、搭建基于RHCS高可用集群的准备工作

1.设定主机名称解析,确保节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称跟”uname -n“命令的结果保持一致

DSC0001.jpg

DSC0002.jpg

DSC0003.jpg

2.各个节点时间同步

DSC0004.jpg

3.为避免影响实验结果,关闭各个节点的iptables与selinux设置

DSC0005.jpg

DSC0006.jpg

4.确保Node1、Node2、Node3上httpd服务可以正常访问

DSC0007.jpg

5.停止服务并禁止开机自启

DSC0008.jpg

DSC0009.jpg

三、配置Conga(ricci&&luci)

1.集群各节点上安装ricci

DSC00010.jpg

2.设置ricci账号密码,用于luci连接认证

注意:ansible使用user模块时,password后面指定的密码不能是明文,后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中,而登陆的时候输入的密码会被hash加密以后再去与/etc/shadow中存放的密码去做对比,会出现不一致的现象。所以需要先将密码字符串进行加密处理后指为password

DSC00011.jpg

3.启动ricci服务

DSC00012.jpg

4.管理机上安装luci,启动服务,使用web方式配置集群

DSC00013.jpg

四、Conga管理工具(luci/ricci)定义集群

1.添加信任例外

DSC00014.jpg

2.登陆RHCS的配置界面为管理机系统管理员的账号密码

DSC00015.jpg

3.创建一个集群并添加各节点

登录进管理界面,点击Manage Clusters –> Create 填入如下内容:选中如下选项,然后提交

选择Download Packages,配置好yum源,系统会自动安装集群相关软件包

说明:这步会生成集群配置文件/etc/cluster/cluster.conf

DSC00016.jpg

DSC00017.jpg

DSC00018.jpg

DSC00019.jpg

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设备的用户和密码

DSC00020.jpg

5. 节点绑定Fence设备

(1)点击Node1节点,AddFence Method,这里fence_Node1;

(2)添加一个fence instance,选择”ESXi_fence” VMware Fencing(SOAP Interface)

DSC00021.jpg

说明: VMNAME: 虚拟机名称,VM UUID: 虚拟机.vmx文件中”uuid.location”值

DSC00022.jpg

6.创建故障转移域

Prioritized:优先级:有序的 — 可在故障切换域的成员间指定顺序

Restricted:限制 — 允许限制可运行具体集群服务的成员。如果在限制故障切换域中没有可用成员,则无法启动集群服务(手动或者使用集群软件均不可行)

DSC00023.jpg

7.创建web高可用需要的资源: VIP地址;httpd脚本;

DSC00024.jpg

8. 新建服务组,添加刚才新建的两个资源进服务组

DSC00025.jpg

DSC00026.jpg

访问测试

DSC00027.jpg

DSC00028.jpg

五、配置集群ISCSI共享磁盘为后面格式化gfs做准备

1.挂载系统光盘后yum安装target包;在Node4上添加一块新硬盘,作为target对应的存储空间,不需要分区格式化

DSC00029.jpg

2.启动服务守护进程,创建target;关联存储设备到target;实现基于IP的认证,将initiator-address与target绑定

DSC00030.jpg

3.Node1,Node2,Node3上挂载系统光盘yum安装initiator客户端软件包:iscsi-initiator-utils

DSC00031.jpg

DSC00032.jpg

4.启动服务

DSC00033.jpg

5.发现存储服务器输出的target

DSC00034.jpg

DSC00035.jpg

6.从initiator端登录到存储服务器上

DSC00036.jpg

7.成功将target上的设备识别为本机设备

DSC00037.jpg

六、创建共享存储资源基于clvm的gfs

Cluster Logical Volume Manager集群逻辑卷管理是LVM的扩展,借助于HA的基础信息架构层,将某节点对LVM操作通知给其他节点,这种扩展允许cluster中的机器使用LVM来管理共享存储,但是配置之前需要开启lvm支持集群功能。

1.启动CLVM服务,在各节点上通过命令启用CLVM的集成cluster锁服务,也可以编辑/etc/lvm/lvm.conf设置locking_type = 3

DSC00038.jpg

2.验证配置文件是否修改成功

DSC00039.jpg

3.启动服务

DSC00040.jpg

DSC00041.jpg

4.在Node1上进行配置集群逻辑卷

[iyunv@Node1 ~]# pvcreate /dev/sdb
[iyunv@Node1 ~]# vgcreate webvg /dev/sdb
[iyunv@Node1 ~]# lvcreate -L 5G -n weblv webvg
  5.此时在其他节点上可以看到刚才创建的逻辑卷

DSC00042.jpg

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

DSC00043.jpg

7.在每个节点上挂载文件系统,挂载GFS文件的主机必须是对应集群中的节点;Node3挂载失败,因为刚才在Node1上格式化文件系统时只创建了2个日志

DSC00044.jpg

说明:挂载GFS文件时有如下常用选项可用:

lockproto=[locl_dlm,lock_nolock]

locktable=clustername:fsname

upgrade # GFS版本升级时有用

acl  如果不想每一次启用GFS时都得指定某选项,也可以通过类似如下命令为其一次性指定:
gfs_tool margs”lockproto=lock_dlm,acl”

8.添加一个日志,先卸载再重新挂载

DSC00045.jpg

DSC00046.jpg

9.由于挂载点为/var/www/html,原来目录下的index.html会暂时消失,因此在Node1重新创建index.html

[iyunv@Node1 ~]# vim /var/www/html/index.html

可以看到在Node1上增加的内容其会自动同步到其他节点上

DSC00047.jpg

10.在luci的Resources菜单添加一个GFS2资源,再打开Services Group菜单,点击web_service服务,添加刚创建的share_store

DSC00048.jpg

DSC00049.jpg

11.访问VIP,其主页内容已经变成了共享存储上的主页了





12.高可用性验证,手动关闭Node2,模拟宕机







搭建过程易出错误处:

1、时间不同步造成集群无法进行配置文件传递

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143766-1-1.html 上篇帖子: 结合Ansible技术监控Storm集群 下篇帖子: 如何写好Java程序呢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表