Cluster基础(四):创建RHCS集群环境、创建高可用Apache服务

一、创建RHCS集群环境

目标:

准备四台KVM虚拟机,其三台作为集群节点,一台安装luci并配置iSCSI存储服务,实现如下功能:

  • 使用RHCS创建一个名为tarena的集群
  • 集群中所有节点均需要挂载iSCSI共享存储
  • 使用集群中任意节点对iSCSI设置进行分区格式化
  • 安装luci的虚拟主机要求额外添加一块20G硬盘
  • 物理主机IP地址为192.168.4.1,主机名称为desktop1.example.com

方案:

使用4台虚拟机,1台作为luci和iSCSI服务器、3台作为节点服务器,拓扑结构如下图所示。

所有主机的主机名及对应的IP地址如下表所示。

步骤:

步骤一:安装前准备

1)为所有节点配置yum源,注意所有的虚拟主机均需要挂载安装光盘。

[[email protected] ~]# mount /dev/cdrom /media
  [[email protected] ~]# rm -rf /etc/yum.repos.d/*
  [[email protected] ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [[email protected] ~]# yum clean all
  [[email protected] ~]# mount /dev/cdrom /media
  [[email protected] ~]# rm –rf /etc/yum.repos.d/*
  [[email protected] ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [[email protected] ~]# yum clean all
  [[email protected] ~]# mount /dev/cdrom /media
  [[email protected] ~]# rm -rf /etc/yum.repos.d/*
  [[email protected] ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [[email protected] ~]# yum clean all
  [[email protected] ~]# mount /dev/cdrom /media
  [[email protected] ~]# rm -rf /etc/yum.repos.d/*
  [[email protected] ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [[email protected] ~]# yum clean all

2)修改/etc/hosts并同步到所有主机。

[[email protected] ~]# vim /etc/hosts
  192.168.4.1        node1.example.com
  192.168.4.2        node2.example.com
  192.168.4.3        node3.example.com
  192.168.4.4        luci.example.com
  [[email protected] ~]# for i in {1..3};do scp /etc/hosts 192.168.4.$i:/etc/;done

3)所有节点关闭NetworkManager、SELinux服务。

[[email protected] ~]# service NetworkManager stop
  [[email protected] ~]# chkconfig NetworkManager off
  [[email protected] ~]# sed -i ‘/SELINUX=/s/enforcing/permissive/‘ /etc/sysconfig/selinux
  [[email protected] ~]# setenforce 0
  [[email protected] ~]# iptables -F; service iptables save
  [[email protected] ~]# service NetworkManager stop
  [[email protected] ~]# chkconfig NetworkManager off
  [[email protected] ~]# sed -i ‘/SELINUX=/s/enforcing/permissive/‘ /etc/sysconfig/selinux
  [[email protected] ~]# setenforce 0
  [[email protected] ~]# iptables -F; service iptables save
  [[email protected] ~]# service NetworkManager stop
  [[email protected] ~]# chkconfig NetworkManager off
  [[email protected] ~]# sed -i ‘/SELINUX=/s/enforcing/permissive/‘ /etc/sysconfig/selinux
  [[email protected] ~]# setenforce 0
  [[email protected] ~]# iptables -F; service iptables save
  [[email protected] ~]# service NetworkManager stop
  [[email protected] ~]# chkconfig NetworkManager off
  [[email protected] ~]# sed -i ‘/SELINUX=/s/enforcing/permissive/‘ /etc/sysconfig/selinux
  [[email protected] ~]# setenforce 0
  [[email protected] ~]# iptables -F; service iptables save

步骤二:部署iSCSI服务

1)在luci主机上部署iSCSI服务器,将/dev/sdb使用iSCSI服务共享。

提示:服务器IQN名称为: iqn.2015-06.com.example.luci:cluster。

[[email protected] ~]# yum  -y  install  scsi-target-utils        //安装软件
  .. ..
  [[email protected] ~]# rpm  -q  scsi-target-utils
  scsi-target-utils-1.0.24-10.el6.x86_64
  [[email protected] ~]# vim /etc/tgt/targets.conf
  <target iqn.2015-06.com.example.luci:cluster>
       # List of files to export as LUNs
       backing-store /dev/sdb                            //定义存储设备
       initiator-address 192.168.4.0/24                    //定义ACL
  </target>
  [[email protected] ~]# service  tgtd  start                     //启动服务
  Starting SCSI target daemon:                               [  OK  ]
  [[email protected] ~]# chkconfig  tgtd  on

2)所有节点服务器挂载该iSCSI共享。

[[email protected] ~]# yum -y install iscsi-initiator-utils    //安装软件
  [[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l                                //挂载iSCSI共享
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l
  [[email protected] ~]# yum -y install iscsi-initiator-utils    //安装软件
  [[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 –l                                //挂载iSCSI共享
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l
  [[email protected] ~]# yum -y install iscsi-initiator-utils    //安装软件
  [[email protected] ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l                                //挂载iSCSI共享
  [[email protected] ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 –l

步骤三:安装集群软件

1)在luci.example.com主机上安装luci,并启动服务。

[[email protected] ~]# yum –y install luci
  [[email protected] ~]# service luci start;chkconfig luci on

2)在所有的集群节点中安装ricci,并启动服务。

[[email protected] ~]# yum -y install ricci
  [[email protected] ~]# echo "11111" |passwd --stdin ricci
  [[email protected] ~]# service ricci start;chkconfig ricci on
  [[email protected] ~]# yum -y install ricci
  [[email protected] ~]# echo "11111" |passwd --stdin ricci
  [[email protected] ~]# service ricci start;chkconfig ricci on
  [[email protected] ~]# yum -y install ricci
  [[email protected] ~]# echo "11111" |passwd --stdin ricci
  [[email protected] ~]# service ricci start;chkconfig ricci on

步骤四:配置集群

1)浏览器访问luci,任意主机使用浏览器访问即可。

[[email protected] ~]# firefox https://luci.example.com:8084

2)创建集群。

使用浏览器访问luici页面后,点击“Manage Clusters“页面,点击”Create“按钮创建一个新的集群,如下图所示。

接下来,在弹出的回话框中,输入集群的名称“tarena“,勾选”Download Packages“、“Reboot Nodes Befor Joining Cluster”、“Enable Shared Storage Support”,效果如下图所示。

等待所有的节点重启之后,在luci页面将显示如图-4所示的页面,代表所有节点以及加入到了tarena集群中。

提示:如果节点重启后,有部分节点无法自动加入集群中,可以将正常的节点系统中/etc/cluster/cluster.conf文件同步到其他失败的节点中,并确保失败节点的cman和rgmanager服务为启动状态即可。

二、创建高可用Apache服务

目标:

沿用练习一,使用集群中的节点创建高可用Apache服务,实现以下目标:

  • 在任意节点将练习一挂载的iSCSI磁盘分区并格式化
  • 为集群添加有效的Fence设备
  • 创建名为prefer_node1的故障转移域
  • Apache服务优先运行于node1节点
  • Apache服务提供的VIP地址为192.168.4.100
  • 客户端通过访问VIP地址访问Web页面

方案:

沿用练习一的拓扑架构,依次完成如下操作:

  1. 部署httpd服务
  2. 创建Fence设备
  3. 创建故障转移域
  4. 创建VIP资源
  5. 创建存储资源
  6. 创建Apache服务资源
  7. 创建服务组

步骤:

步骤一:准备存储资源,并在所有节点安装httpd软件

1)在任一集群节点将iSCSI磁盘分区并格式化。

[[email protected] ~]# parted /dev/sdb mklabel msdos
  [[email protected] ~]# parted /dev/sdb mkpart primary 1 1000
  [[email protected] ~]# partprobe
  [[email protected] ~]# mkfs.ext4  /dev/sdb1

2)安装httpd软件

[[email protected] ~]# yum –y install httpd
  [[email protected] ~]# yum –y install httpd
  [[email protected] ~]# yum –y install httpd

3)挂载共享存储并生成测试web页面

[[email protected] ~]# mount /dev/sdb1  /var/www/html
  [[email protected] ~]# echo “test page for rhcs”  > /var/www/html/index.html

步骤二:创建Fence设备

1)安装软件包,生成共享秘钥。

[[email protected] ~]# yum -y install \
  >fence-virtd fence-virtd-libvirt fence-virtd-multicast
  [[email protected] ~]# mkdir /etc/cluster
  [[email protected] ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4k count=1
  [[email protected] ~]# systemctl enable fence_virtd

2)拷贝秘钥

[[email protected] ~]# for i in {1..3};do scp /etc/cluster/fence_xvm.key \
  > 192.168.4.$i:/etc/cluster/; done

3)配置Fence

注意:Interface项填写网络接口,Backend module项填写libvirt。

[[email protected] ~]# fence_virtd –c
  [[email protected] ~]# systemctl start fence_virtd

4)登录luci为集群节点添加Fence

在任一使用浏览器访问https://luci.example.com:8084,配置Fence。首先选择“Fence Devices”菜单后,选择Add添加按钮,效果如下图所示。

在弹出的回话框中选择Fence设备的类型为Fence virt(Multicast Mode),并给fence设备设置名称,效果如下图所示。

创建完Fence设备后,接下来还需要给每个节点添加该Fence设备,首先在集群中点击“Nodes”菜单,依次选择所有节点,给每个节点添加Fence 设备。如下图所示,选择node1准备给该节点添加Fence设备。

在节点列表中选择了某个节点后,通过点击“Add Fence Method”添加Fence设备,效果如下图所示。

选择“Add Fence Method”后在弹出的回话框中输入名称,如下图所示。

接下来,执行最后的操作,为Fence设备添加实例,选择“Add Fence Instance”,效果如下图所示。

在弹出的回话框中,选择之前创建的Fence实例“fence_xvm”,并为每个节点填写对应的虚拟机域名称,注意名称必须与虚拟机名称一致,如下图所说。

步骤三:创建高可用Apache服务

1)创建故障转移域

在任一节点使用浏览器访问https://luci.example.com:8084,点击“Failover Domains”菜单,通过下面的Add按钮创建故障转移域,如下图所示。

在弹出的回话框中为故障转移域填写名称:prefer_node1,依次勾选“Prioritized”、“Restricted”、“No Failback”,并为每个节点设置优先级,为了确保服务优先运行在node1上,我们将node1的优先级设置为1,如下图所示。

2)创建资源(VIP、共享存储、Apache服务)

创建资源,可以通过点击“Resources”菜单,使用“Add”按钮创建,如下图所示。

在弹出的回话框中,我们选择IP Address这个资源,并为该资源设置具体的参数,VIP地址为192.168.4.100,效果如下图所示。

使用相同的方法,创建共享存储,在资源列表中选择Filesystem,并设置具体的参数将共享iSCSI磁盘挂载到/var/www/html中,为了确保挂载点的唯一性,这里我们使用的是设备的UUID(请各位同学根据自己的实际情况填写具体的值),查看UUID的方法是blkid /dev/sdb1,最终的设置效果如下图所示。

最后创建Apache服务资源,在资源列表中选择Apache,设置名称为web_service,如下图所示。

3)创建服务组

在任意节点使用浏览器访问https://luci.example.com:8084,点击“Service Groups”菜单,通过下面的Add按钮创建服务组,如下图所示。

在弹出的回话框中,输入具体的参数,设置服务名称为web_clu,选择故障域为prefre_node1,恢复策略为Relocate,并通过Add Resource给该服务组添加服务资源,将上一步中创建的3个资源添加到该服务组中,效果如下图所示。

步骤四:验证测试

在任意集群节点中,输入clustat查看集群及高可用服务运行状态,如下图所示。

原文地址:https://www.cnblogs.com/baichuanhuihai/p/8446507.html

时间: 2024-10-11 16:02:31

Cluster基础(四):创建RHCS集群环境、创建高可用Apache服务的相关文章

创建RHCS集群环境

创建RHCS集群环境 1.1 问题 准备四台KVM虚拟机,其三台作为集群节点,一台安装luci并配置iSCSI存储服务,实现如下功能: 使用RHCS创建一个名为tarena的集群 集群中所有节点均需要挂载iSCSI共享存储 使用集群中任意节点对iSCSI设置进行分区格式化 安装luci的虚拟主机要求额外添加一块20G硬盘 物理主机IP地址为192.168.4.1,主机名称为desktop1.example.com 1.2 方案 使用4台虚拟机,1台作为luci和iSCSI服务器.3台作为节点服务

etcd集群搭建(高可用)

一.etcd介绍: ETCD 是一个高可用的分布式键值数据库,可用于服务发现.ETCD 采用 raft 一致性算法,基于 Go 语言实现.etcd作为一个高可用键值存储系统,天生就是为集群化而设计的.由于Raft算法在做决策时需要多数节点的投票,所以etcd一般部署集群推荐奇数个节点,推荐的数量为3.5或者7个节点构成一个集群. 二.特点: 实际上,etcd作为一个受到Zookeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更具有以下4个特点{![引自Docker官方文档]}

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 http://www.tuicool.com/articles/naeEJbv 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案 时间 2014-02-21 15:15:17  IT社区推荐资讯 原文  http://itindex.net/detail/48192-redis-sentinel-redis Redis Sentinel是一个分布式系统,可以部署多个Se

RHCS之用css_tool命令创建HA集群及创建gfs2集群文件系统

准备环境 node1:192.168.139.2 node2:192.168.139.4 node4:192.168.139.8 node5:192.168.139.9 node1 作为target端 node2 node4 node5 作为initiator端 并且将node2 node4 node5安装cman+rgmanager后配置成一个三节点的RHCS高可用集群,因为gfs2为一个集群文件系统,必须借助HA高可用集群将故障节点Fence掉,及借助Message Layer进行节点信息传

Storm 系列(四)—— Storm 集群环境搭建

一.集群规划 这里搭建一个 3 节点的 Storm 集群:三台主机上均部署 Supervisor 和 LogViewer 服务.同时为了保证高可用,除了在 hadoop001 上部署主 Nimbus 服务外,还在 hadoop002 上部署备用的 Nimbus 服务.Nimbus 服务由 Zookeeper 集群进行协调管理,如果主 Nimbus 不可用,则备用 Nimbus 会成为新的主 Nimbus. 二.前置条件 Storm 运行依赖于 Java 7+ 和 Python 2.6.6 +,所

Redis5以上版本伪集群搭建(高可用集群模式)

redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下: 第一步:在第一台机器的/usr/local/redis下创建文件夹redis-cluster,然后在其下面创建6个文件夹如下: mkdir -p /usr/local/redis/redis-cluster 进入redis-clus

架构设计:系统存储(17)——Redis集群方案:高可用

1.概述 从本篇文章开始,我们将向读者介绍几种Redis的高可用高负载集群方案.除了介绍Redis 3.X版本中推荐的原生集群方案外,还会介绍使用第三方组件搭建Redis集群的方法.本文我们会首先介绍Redis的高可用集群方案. 2.Redis高可用方案 Redis提供的高可用方案和我们介绍过的很多软件的高可用方案类似,都是使用主从节点的思路.即是有一个Master节点在平时提供服务,另外一个或多个Slave节点在平时不提供服务(或只提供数据读取服务).当Master节点由于某些原因停止服务后,

2-20 MySQL集群搭建实现高可用

MySQL集群概述和安装环境 MySQL Cluster是MySQL适合于分布式计算环境的高实用.高冗余版本.Cluster的汉语是"集群"的意思.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器. MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署"内存中"数据库的 Cluster .通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求.此外,由于每个组件有自己的内存和磁盘,不存在单

基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在Redis2.4中,Redis2.8中Sentinel更加稳定),Redis集群是以分片(Sharding)加主从的方式搭建,满足可扩展性的要求: Redis Sentinel介绍 Redis Sentinel是Redis官方提供的集群管理工具,主要有三大功能: 监控,能持续监控Redis的主从实例是否正常