高可用(HA)集群的搭建

                --图形化搭建(针对rhel6.5)

实验环境:iptables selinux关闭,三台主机做好解析

实验主机IP:

            172.25.0.251

            172.25.0.2

          172.25.0.3

高可用集群包括RHCS,pacemaker+lvs,heartbeat,keepalievd。

在做实验前,先了解RHCS套件,6以下才有,7就取消了。

一些服务进程的含义如下:

Luci/ricci》》web方式的集群管理(配置)工具;

Ccs》》集群配置服务,(例如更新文件)/etc/cluster/cluster.conf;

Dlm》》分布式集群锁。可以让我们并行的去做一些事。

Clvmd》》可以让我们将逻辑卷分区(lvm,pv,vg ,lv)同步到其他节点。

Cman》》统一协调集群,比如fence的管理,colosync(集群心跳引擎》》在两个节点之间)的管理。

Rgmanage》》在cman开启后生成。

所以在启动集群时,要先开启cman,再开启rgmanager,关闭集群时,正好相反。

一般大企业都有两个高可用集群一个坏掉后,通过路由切换到另一条,然后运维人员会去处理坏掉的一个集群。

Stdnith也就是fence。高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第1张图片

第一部分:重新配置yum源。

##我们最初的域名源只有最基础的软件(如下图),也就是只有server,而没有HA,负载均衡,扩展文件系统所有的软件,所以需要重新配置yum源。高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第2张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第3张图片

##将yum源配置成下面内容:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第4张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第5张图片

##刷新,repolist后发现有3819个包。

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第6张图片

##同样server3中做相同的yum源配置,这里是将server2的复制过去:

wps6BCF.tmp

##安装web方式的集群管理(配置)工具luci(一台),ricci(两台):

wps6BD0.tmp

wps6BD1.tmp

##给ricci用户修改密码:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第7张图片

wps6BE3.tmp

##开启ricci(两台),并将ricci设置为开机自启:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第8张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第9张图片

##安装luci:

#Luci只是一个管理工具。】,可以安装在任何一台机子上,只是通过开启luci开启来得到一个网址,然后就可以在web浏览器中配置吗HA,记得这里生成的网址含有主机名,所以要做好解析,也就是安装ricci和luci的三台主机或者两台主机之间做好解析。

wps6BE6.tmp

#用生成的网址登陆:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第10张图片

##点击左侧的管理集群,再点击create就可以创建一个集群:

wps6BE8.tmp

##输入集群名字,节点名字

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第11张图片

##确定所用浏览器的机子能ping同通节点:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第12张图片

##开始将节点加入集群,等待几秒钟:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第13张图片

##其实我们也可以用命令行,但是,图形更加快捷,对于客户来说更喜欢用图形,这个时候,我们在web端做的都会在server2,server3中有相应的进程对应。

##然后,节点就加进来了:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第14张图片

#此时,两个节点都已经重启。

##########以上做法常见的错误就是yum源,iptables(要求关闭),ricci,还有本地解析。

##我们做完上面的将会在/etc/cluster目录中生成cluster.conf文件:

wps6BFC.tmp

##它的内容如下,每修改一次version就会变一次:

#server2的:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第15张图片

#server3的:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第16张图片

##以上我们只是做之前必须要做的就是在每个节点要开启RHCS集群的两个核心进程,cman,rgmanager,并且要先开启cman,再开启rgmanager,

wps6C0F.tmp

##集群是需要以下5个服务支持的:

Cman.rgmanage,ricci,clvmd,modclusterd,所以在luci之前要将每个节点这些服务开启。

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第17张图片

第二部分:安装fence

##fence分为内部fence(服务器厂家自带)和外部fence(价格昂贵,但是性能好)。

##查询fence包,红帽自带安装划线的三个:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第18张图片

##安装完要初始化,这里我们已经安装了,就只演示初始化的过程:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第19张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第20张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第21张图片

##监听多播模块,多播的IP和端口默认,接口写宿主机的网桥,接下来是指定多播密码文件,必须放在/etc/cluster下。后端是默认的,然后配置就完成了。

##对初始化过程中内容的解释:

#libvirt是一套免费、开源的支持Linux下主流虚拟化工具 libvirt 比较和用例模型的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C++,Ruby,Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化),virt-install(命令行模式)等均基于libvirt开发而成。

#multicast:多播:IP多播(也称多址广播或组播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。使用同一个IP多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。

##然后是重启fence,查看fence的状态,查看fence的1229端口。

##下面是我们之前做好的多播密码,在这里要将他删除,再次演示生成密码的步骤,其实就是从随机数中去128个字节:

wps6C15.tmp

wps6C26.tmp

##我们所做的修改都保存在/etc/fence_virt.conf中。

##密码要求装有fence和所有节点的密码都一样,所以我们将刚刚生成的密码复制给节点相应目录中:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第22张图片

##出现上述问题是因为下面的问题:

将这下面的172.25.0.2 和172.25.0.3的公钥删除。

##再拷贝就没有问题了:

wps6C29.tmp

##查看集群状态clustat  -i的话是指定刷新时间,这样可以动态输出集群启停状态转变:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第23张图片

##现在是将两个节点加进来了。

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第24张图片

##增加fence:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第25张图片

##我们在图形中做的都会反映到配置文件中并且是同步的,所有节点都同时改变:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第26张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第27张图片

##增加fence完成后的界面:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第28张图片

##然后选择节点2:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第29张图片

##增加fence设备:

wps6C40.tmp

##给fence起个名字:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第30张图片

##加入一个实例,也就是我们之前创建的fence:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第31张图片

##在真机中看到的虚拟机的名字:

wps6C43.tmp

##并且每个虚拟机都有自己的UUID,标签会变,但是UUID不会变:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第32张图片

##所以在这里我们最好在这里输入节点2的UUID:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第33张图片

##一个domain管理一个server instance。

##节点三做相同的做法,增加一个fence。

##所有的修改都加到了配置文件中:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第34张图片

##fence_node 主机名可以检测一下fence起作用了。节点3重启了。

  # 测试fence设备配置(fence_node/fence_drac/…)

使用fence_node 命令进行fence配置测试,该命令将读取cluster.conf中关于fence设备的配置。

常用命令

/sbin/fence_node db1.fjnet114.com

/sbin/fence_node db2.fjnet114.com

针对每个不同的fence设备,redhat提供了相应的工具fence_drac、fence_ilo等,可在命令下直接加载fence设备参数进行测试。参数-o指定执行的动作,可为reboot\off\on\status等,详见man fence_drac。

如:

[root@db2 ~]# fence_drac -a 192.168.114.106 -l admin -p wlhmbst@2008 -o status

status: on

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第35张图片

##查看集群状态:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第36张图片

##先显示server3不在线,然后就在线了,有问题,会重启,然后自动加入。

##增加服务:

wps6C59.tmp

wps6C5A.tmp

##将发布目录改为server2/3.example。com

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第37张图片

##创建failover domaiin:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第38张图片

##然后界面会如下:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第39张图片

##增加一个vip资源:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第40张图片

##资源里面有好多可以增加,下面列出部分:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第41张图片

##增加http服务,我们可以在里面选择apache,但是会让输入其他内容,为了方便,我们可以增加一个脚本,输入服务名称和启动时调用的文件路径。

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第42张图片

##将刚刚增加的两个资源添加到服务中:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第43张图片

##然后再点击页面下面的submit,就完成了服务的增加:

wps6C91.tmp

##访问VIP,将会得到server2 的发布文件:

wps6C92.tmp

##查看ip,会发现我们将vip加入本地。

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第44张图片

##查看端口,会发现,本地80端口已经增加到vip上

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第45张图片

##用命令将server2搞崩溃:

wps6CA4.tmp

##会发现fence将server2重启了:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第46张图片

##现在server3接管了服务:

wps6CC5.tmp

##现在将server3 的http服务 关掉:

wps6CC6.tmp

##再次访问会发现直接登录不进去 了:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第47张图片

##这是因为心跳检测的原因,并不是一有问题就会fence掉,会有几秒的等待,当fence确定server3的http服务挂掉后,它会重新启动这台的http,另一台的http会开启并继续提供http服务:

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第48张图片

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第49张图片

wps6CDA.tmp

##然后将server2 的网络停掉,会发现server2重启了:

wps6CDB.tmp

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第50张图片

##现在server3接管了http服务(这里只是以http为例,准确的说是server3在集群中起作用):

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)_第51张图片

wps6CEE.tmp

未完待续》》》》》