RHCS集群

理论基础:

User → HA →     Lb    → web → sql → 分布式filesystem ->磁盘I/O

用户   高可用 负载均衡    应用   数据库      mfs/hadoop

磁盘I/O是硬伤,前面的各个厂商基本都可以做到最好,虽然可以考虑换成固态硬盘,但是固态的价格就目前来看相对比较昂贵,实际情况下显然不现实。

 

红帽集群套件 RHCS

红帽集群套件管理器 RHCSM

集群配置管理工具 conga 

 

        luci  :8084

         /                           vip

       /                             service(web)

ricci ricci                filesystem

        HA

 

cman 核心套件

rgmanage 集群资源管理器

lvm2-cluster lvm支持

sg3_utils 支持scsi

gfs2-utils 分布式文件系统支持

 

注:ricci只负责与luci连接进行集群配置

真正的集群服务为:

cman

rgmanage

modclusterd

clvmd

 

server33 server34

                       /

                      /

             HA  /

       share storage

当server33的 卡坏了,server33和server34都会认为对方挂掉了,双方同时接管资源,用户在访问的时候因为server33的 卡坏的,无法访问,只能访问server34,因此在用户看来,服务是没有问题的。

当server33昏迷后,此时server34接管资源,但是当server33恢复后,还占据着原来的资源,此时用户访问时就不知道该访问哪台主机了。因此需要第三方设备来解决此问题,即Fence!

 

           Fence

           /         

         /                                      一整套资源:

       /       HA                            vip

server33 server34             service

                          /                    stroage

                       /

                     /

        share storage

server33和server34连接着Fence,当有其中一方挂掉之后,虽然双方都会认为对方挂掉了,但是另一方仍然可以连接到Fence,可以通过向fence所在主机发送请求将对方主机进行断电处理,自己接管资源。当故障主机恢复后,将成为备份主机,不再是master,也不会争抢资源。

 

存储方式

SAN存储(iscsi):服务端共享出设备,在客户端上进行分区,格式化才能使用。即文件系统在客户端上

NAS存储(NFS):在服务端上进行分区,格式化。客户端上只需进行mount操作即可使用。

 

配置:

系统环境: rhel6 x86_64 iptables and selinux disabled

主机: 192.168.122.119 server19.example.com

192.168.122.25 server25.example.com

192.168.122.1 desktop36.example.com

yum仓库配置:

[rhel-source]

name=Red Hat Enterprise Linux $releasever – $basearch – Source

baseurl=ftp://192.168.122.1/pub/yum

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

[HighAvailability]

name=Instructor Server Repository

baseurl=ftp://192.168.122.1/pub/yum/HighAvailability

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

enabled=1

 

[LoadBalancer]

name=Instructor Server Repository

baseurl=ftp://192.168.122.1/pub/yum/LoadBalancer

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

enabled=1

 

[ResilientStorage]

name=Instructor Server Repository

baseurl=ftp://192.168.122.1/pub/yum/ResilientStorage

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

enabled=1

 

[ScalableFileSystem]

name=Instructor Server Repository

baseurl=ftp://192.168.122.1/pub/yum/ScalableFileSystem

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

enabled=1

 

#启动luci

以下步骤在server19server25上实施:

[root@server19 ~]# yum install ricci -y

[root@server19 ~]# passwd ricci

[root@server19 ~]# chkconfig ricci on

[root@server19 ~]# /etc/init.d/ricci start

 

以下步骤在desktop36上实施:

[root@desktop36 ~]# yum install luci -y

[root@desktop36 ~]# /etc/init.d/luci start

 

 

#创建集群

选择Manage Clusters

 

 

按照如下图配置创建集群

 

 

#配置Fence设备

以下步骤在desktop36上实施:

[root@desktop36 ~]# yum list fence*

[root@desktop36 ~]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y

[root@desktop36 ~]# fence_virtd -c

Module search path [/usr/lib64/fence-virt]:

 

Available backends:

libvirt 0.1

Available listeners:

multicast 1.1

 

Listener modules are responsible for accepting requests

from fencing clients.

 

Listener module [multicast]:

 

The multicast listener module is designed for use environments

where the guests and hosts may communicate over a network using

multicast.

 

The multicast address is the address that a client will use to

send fencing requests to fence_virtd.

 

Multicast IP Address [225.0.0.12]:

 

Using ipv4 as family.

 

Multicast IP Port [1229]:

 

Setting a preferred interface causes fence_virtd to listen only

on that interface. Normally, it listens on the default network

interface. In environments where the virtual machines are

using the host machine as a gateway, this *must* be set

(typically to virbr0).

Set to ‘none’ for no interface.

 

Interface [none]: virbr0

 

The key file is the shared key information which is used to

authenticate fencing requests. The contents of this file must

be distributed to each physical host and virtual machine within

a cluster.

 

Key File [/etc/cluster/fence_xvm.key]:

 

Backend modules are responsible for routing requests to

the appropriate hypervisor or management layer.

 

Backend module [checkpoint]: libvirt

 

The libvirt backend module is designed for single desktops or

servers. Do not use in environments where virtual machines

may be migrated between hosts.

 

Libvirt URI [qemu:///system]:

 

Configuration complete.

 

=== Begin Configuration ===

backends {

libvirt {

uri = “qemu:///system”;

}

 

}

 

listeners {

multicast {

interface = “virbr0”;

port = “1229”;

family = “ipv4”;

address = “225.0.0.12”;

key_file = “/etc/cluster/fence_xvm.key”;

}

 

}

 

fence_virtd {

module_path = “/usr/lib64/fence-virt”;

backend = “libvirt”;

listener = “multicast”;

}

 

=== End Configuration ===

Replace /etc/fence_virt.conf with the above [y/N]

注:以上设置除“Interface”处填写虚拟机通信接口和Backend module填写libvirt外,其他选项均可回车保持默认。

 

[root@desktop36 ~]# mkdir /etc/cluster

[root@desktop36 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1

[root@desktop36 ~]# scp /etc/cluster/fence_xvm.key root@192.168.122.119:/etc/cluster/

[root@desktop36 ~]# scp /etc/cluster/fence_xvm.key root@192.168.122.25:/etc/cluster/

[root@desktop36 ~]# /etc/init.d/fence_virtd start

[root@desktop36 ~]# netstat -anuple | grep fence

udp 0 0 0.0.0.0:1229 0.0.0.0:* 0 823705 6320/fence_virtd

注:可查看到1229端口说明fence_virtd启动成功.

 

测试:

server19domainvm1,server25domainvm2

在server19上执行 fence_xvm -H vm2,若server25重启说明配置成功

在server25上执行 fence_xvm -H vm1,若server19重启说明配置成功

 

选择Fence Devices

 

按照下列图片进行配置

 

按照下列图片对每一个node进行配置

选择Add Fence Method

 

选择Add Fence Instance

 

注:此处所填写的Domain与Virtual Machine Manager中此虚拟机的名称一致.

 

测试:

在server19上执行 echo c > /proc/sysrq-trigger,若server19重启说明配置成功

在server25上执行 echo c > /proc/sysrq-trigger,若server25重启说明配置成功

 

 

#在集群中添加集群服务(apache为例)

以下步骤在server19server25上实施:

[root@server19 ~]# yum install httpd -y

[root@server19 ~]# echo `hostname` > /var/www/html/index.html

注:无需手动将apache启动起来,将由集群来管理服务.

 

选择Failover Domains

 

按如下图配置

 

选择add

 

选择add

选择Add Resouce添加刚才所设置的IP Address和Script并点击Submit

 

访问192.168.122.147若正常则说明配置成功.

 

测试:

可通过执行 watch clustat查看当前集群服务由哪个node接管着(假设刚开始由server19接管)

1.将server19上的httpd服务关闭,查看集群服务是否会由server25接管.

2.在server25上执行ifconfig eth0 down模拟 线断掉,看server25是否被执行断电操作,并且集群服务由server19接管

3.在server19上执行echo c > /proc/sysrq-trigger模拟内核崩溃,看server19是否被执行断电操作,集群服务被server25接管,且当server19重启后服务自动切换回server19上.

 

 

#配置共享存储

以下步骤在desktop36上实施:

先划分出一个分区,类型为Linux LVM.

[root@desktop36 Desktop]# pvcreate /dev/sdb8

[root@desktop36 Desktop]# vgcreate vg_rhelserver6 /dev/sdb8

[root@desktop36 Desktop]# lvcreate -L 3G -n koendemo vg_rhelserver6

[root@desktop36 Desktop]# yum search all iscsi

[root@desktop36 Desktop]# yum install scsi-target-utils.x86_64 -y

[root@desktop36 Desktop]# vim /etc/tgt/targets.conf

backing-store /dev/vg_rhelserver6/koendemo

initiator-address 192.168.122.119

initiator-address 192.168.122.25

[root@desktop36 Desktop]# /etc/init.d/tgtd start

通过执行tgtadm –lld iscsi –op show –mode target能查看到次设备说明配置成功

 

以下步骤在server19server25上实施:

[root@server19 ~]# yum install iscsi-initiator-utils.x86_64 -y

[root@server19 ~]# iscsiadm -m discovery -t st -p 192.168.122.1

[root@server19 ~]# iscsiadm -m node -l

执行fdisk -l可查看到此设备说明成功.

[root@server19 ~]# lvmconf –enable-cluster

[root@server19 ~]# /etc/init.d/clvmd restart

 

以下步骤在server19server25上实施:

[root@server19 ~]# fdisk -cu /dev/sdb

将此设备划分分区,一般只划分一个分区,类型为Linux LVM,若划分多个分区为保险期间要注意备份分区表.

[root@server19 ~]# pvcreate /dev/sdb1

[root@server19 ~]# vgcreate -c y koenvg /dev/sdb1

执行vgdisplay查看koenvg的Clustered参数是否为yes.

[root@server19 ~]# lvcreate -L 1G -n koenlv koenvg

[root@server19 ~]# mkfs.gfs2 -p lock_dlm -t koen_007:gfs2 -j 3 /dev/koenvg/koenlv

-p 定义为 DLM 锁方式,如果不加此参数,当在两个系统中同时挂载此分区时就会像 EXT3 格式一 样,两个系统的信息不能同步

-t koen_007 DLM 锁所在的表名字,就是你的集群的名字gfs 分区的卷标

-j GFS 分区中最多支持多少个节点同时挂载,这个可以在使用中动态调整 ,通常设定值为节点数+1

mount -t gfs /dev/koenvg/koenlv /var/www/html (自动挂载可以写入/etc/fstab, 或添加为集群资源,由集群加载) 其他集群节点相同操作,只是不要执行格式化

 

访问https://desktop36.example.com:8084

 

 

选择Service Groups

 

选择add

选择Service Groups

 

将集群服务先关闭(Disable)

选择Nodes

RHCS集群

 

将所有节点选中,点击Leave Cluster

 

以下步骤在server19server25上实施:

[root@server19 ~]# /etc/init.d/cman stop

[root@server19 ~]# chkconfig cman off

[root@server19 ~]# /etc/init.d/rgmanager stop

[root@server19 ~]# chkconfig rgmanager off

[root@server19 ~]# /etc/init.d/modclusterd stop

[root@server19 ~]# chkconfig modclusterd off

[root@server19 ~]# /etc/init.d/ricci stop

[root@server19 ~]# chkconfig ricci off

[root@server19 ~]# /etc/init.d/iscsi stop

[root@server19 ~]# chkconfig iscsi off

[root@server19 ~]# /etc/init.d/iscsid stop

[root@server19 ~]# chkconfig iscsid off

 

以下步骤在desktop36上实施:

[root@desktop36 ~]# /etc/init.d/fence_virtd stop

[root@desktop36 ~]# chkconfig fence_virtd off

[root@desktop36 ~]# /etc/init.d/luci stop

[root@desktop36 ~]# chkconfig luci off

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8747 人正在系统学习中 相关资源:软件测试群软件测试群软件测试群软件测试群_测试群-其它文档类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年11月7日
下一篇 2014年11月7日

相关推荐