Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)

一.概念介绍

        HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。它与被认为是不间断操作的容错技术有所不同。HA系统是目前企业防止核心计算机系统因故障停机的最有效手段。   
         高可用性(High Availability)提供了一种最小化网络中由于单点故障而带来的风险的方法。例如对于部署防火墙的企业,从网络安全方面考虑,所有进出信息流都必须经过防火墙。这时防火墙就是一个单点故障。对于很多企业来说,长时间的服务中断(或许就几分钟)是不可接受的,这就引入了高可用性的需求。随着网络应用的增多和服务实时性需求的增加,用户对高可用性的需求也越来越强。作为网络中单点故障设备,防火墙有必要提供高可用性解决方案。

        Cluster manager 简称CMAN,是一个分布式集群管理工具,运行在集群的各个节点上,为RHCS提供集群管理任务。它用于管理集群成员、消息和通知。它通过监控每个节点的运行状态来了解节点成员之间的有关系。当集群中某个节点出现故障时,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。
           CMAN根据每个节点的运行状态,统计出一个法定节点数,作为集群是否存活的依据。当整个集群中有多于一半的节点处于激活状态时,表示达到了法定节点 数,此集群可以正常运行,当集群中有一半或少于一半的节点处于激活状态时,表示没有达到法定的节点数,此时整个集群系统将变得不可用。CMAN依赖于CCS,并且CMAN通过CCS读取cluster.conf文件。

           rgmanager主要用来监督、启动、停止集群的应用、服务和资源。当一个节点的服务失败时,高可用集群服务管理进程可以将服务从这个失败节点转移至其点健康节点上,这种服务转移能力是自动动,透明的。RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进程为clurgmgrd。
           在RHCS集群中,高可用生服务包括集群服务和集群资源两个方面。集群服务其实就是应用,如APACHE,MYSQL等。集群资源有IP地址,脚本,EXT3/GFS文件系统等。
           在RHCS集群中,高可用性服务是和一个失败转移域结合在一起的。由几个节点负责一个特定的服务的集合叫失败转移域,在失败迁移域中可以设置节点的优先级,主节点失效,服务会迁移至次节点,如果没有设置优先,集群高可用服务将在任意节点间转移。

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第1张图片

集群系统的主要优点:    

1.高可扩展性:    

2.高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效。    

3.高性能:负载平衡集群允许系统同时接入更多的用户。  

4.高性价比:可以采用廉价的符合工业标准的硬件构造高性能的系统。


二.配置环境

server1  172.25.29.1   主  luci   ricci

server2  172.25.29.2

server3  172.25.29.3

server4  172.25.29.4   主  ricci


1.配置yum源


2.在server1和server4分别安装ricci,并设置密码westos,启动ricci


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第2张图片


3.在server1安装luci并启动luci管理端

wKiom1m6kl6i83-tAAANf73NLkI363.png

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第3张图片


4.界面登陆设置

注:账户密码为所安装系统的账户密码,测试环境为server1,root,redhat

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第4张图片


按图中进行创建设置


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第5张图片


注:设置当中,server1与server4会重新启动,启动后需重新启动ricci和luci

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第6张图片


创建成功

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第7张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第8张图片


5.命令界面查看

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第9张图片



三.安装fence系统

        我们把集群创建好后,却无法测试一下集群是否生效,现在咱们装上这个电源管理fence,真实情况下这是一个硬件,来让服务器直接断电的,这时候大家会问 了为什么要给服务器直接断电,这样不会丢失数据吗?现在设想一个情况,有三台服务器,两台是结点,一台是存储服务器如nfs或者scsi,结点1是正常向 外提供服务的机器,但是结点1突然挂掉了,高可用集群就会将服务迁移到结点2,而且存储也接到了结点2,为了防止结点1继续向存储服务器上写数据,我们就 要让他断电,因为直接断电,服务器不会执行sync,也就是将内存上的数据写到磁盘上,这样就保护了存储服务器的硬盘。


1.安装fence

yum install fence-* -y


创建fence

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第10张图片


多播模式  地址默认   端口默认


端口选择实际的接口   key文件的路径


创建cluster目录


生成随机密钥文件   重启服务wKioL1m-dKSh3q4pAABOdJyC1Yk852.png


查看fence服务正常启动  端口正常打开

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第11张图片


将密钥文件传给server1 和server4

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第12张图片


2.创建fence设备
打开高可用web luci管理系统,选择Fance Devices


选择Add,如下图,Name指的是添加vmfence设备的名称,写完之后选择Submit

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第13张图片


选择server1,点击Add Fence Method ,添加Method Name fence1Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第14张图片


选择server2,点击Add Fence Method ,添加Method Name fence2,方法同server1




在fence1下面的Fence Drive的Method,选择Add Tence Instance,绑定虚拟机vm1


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第15张图片



Domain来源于虚拟机的UUID

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第16张图片


server4的做法如server1



3.测试

在server1上将server4节点破坏掉,这时高可用的fence机制起了作用,vm4已经重启



4.附:服务器自带内置fence添加

服务器自带的fence,每台机器都要设置一个fence,每台主机控制自己的fence

添加fence,选择dell服务的自带fence项iDRAC,加密类型设置为none

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第17张图片

wKiom1nfd8vgztxzAAEpij9gwr0834.png

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第18张图片


两个节点添加分别添加各自的fence

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第19张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第20张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第21张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第22张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第23张图片


测试,节点宕掉,server1重启


四.在搭建好的集群上添加服务Nginx(双机热备)

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第24张图片


1.配置好server1和server4的nginx服务,配置好server2和server3的http服务

       首先在server1和server4上安装配置好的nginx服务(只需将server1/usr/local/nginx文件夹拷到server4下,并创建nginx用户即可),server2和server4已经安装好http服务,


测试server1和server4上的nginx轮询服务是否正常




正常,可以继续配置web端


2.配置luci web端

(1)添加服务  这里采用的是双机热备
选择Failover Domains,如图,填写Name(nginxfail),如图选择,前面打勾的三个分别是结点失效之后可以跳到另一个结点、只服务运行指定的结点、当结点失效之跳到另一个结 点之后,原先的结点恢复之后,不会跳回原先的结点。下面的Member打勾,是指服务运行server1和 server4结点,后面的Priority值越小,优先级越高,选择Create


(2)选择Resourcs,点击Add,选择添加IPAddress如图,添加的ip必须是未被占用的ip,24是子网掩码的位数,5指的是等待时间为5秒。选择Submit


(3)以相同的方法添加Script,nginx是服务的名字,/etc/init.d/nginx是服务启动脚本的路径,选择Submit


注:将nginx的脚本放置到/etc/init.d/nginx下,脚本为自己编写,用户启动nginx

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第25张图片


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第26张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第27张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第28张图片


全局资源配置完毕

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第29张图片


(3)选择Service Groups,点击Add如图,apache是服务的名字,下面两个勾指分别的是自动开启服务、运行 ,选择Add Resource,将全局资源IP Address 和Script加入


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第30张图片


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第31张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第32张图片

选择Submit,完成,weblb服务组running

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第33张图片


3.测试

clustat    ,将server1的webib服务转移到server4上

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第34张图片


服务没有停止,已经转义到server4上



4.常用命令

clustat   查看状态

clusvcadm -r weblb -m server4  将weblb转移到server4上

clusvcadm -e weblb   重新激活weblb

clusvcadm -d weblb   停止weblb



五.在搭建好的集群上添加服务sicis共享磁盘(双机热备)


1.配置好server2上的服务端scisi,在server1和server4的配置好客户端iscisi,

yum install scisi-* -y    服务端server2

yum install iscisi-* -y   客户端server1,server4


2.配置server2环境

(1)将server2上添加一块8G的硬盘




wKioL1m-g2nRDRZLAAAfJt0Cfjc438.png


(2)配置scisi文件

vim /etc/tgt/targets.conf

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第35张图片

配置只能server1和server4访问

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第36张图片


重启服务

wKiom1m-g5my4ABnAAAqeOiuybM964.png


(3)tgt-admin-s 查看配置服务是否成功

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第37张图片



3.配置server1和server4   iscisi 服务端

wKiom1m-g5myXANIAAARvZVCkF4563.png


(1)在server1上发现scisi共享磁盘

打开iscisi服务 /etc/init.d/iscsi start


wKioL1m-g2mgnY8WAAAxVB1puRQ585.png


在server1上加入scisi共享磁盘

wKiom1m-g5nhTMGIAABPRgDOQnI372.png


在server1上fdisk -l查看8G磁盘已经显示正常

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第38张图片


(2)在server4上发现scisi共享磁盘

打开iscisi服务 /etc/init.d/iscsi start


wKiom1m-g5rTkMx-AAAvgrGQ6co401.png


在server4上fdisk -l查看8G磁盘已经显示正常

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第39张图片

4.在server1上创建iscsi分区,创建为lvm格式

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第40张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第41张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第42张图片


查看 /etc/lvm/lvm.conf文件

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第43张图片

3显示的是集群模式



5.在server1上创建创建为lvm分区


(1)创建pv、vg、lv

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第44张图片


(2)创建分区

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第45张图片


6.在server1挂载sicis磁盘

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第46张图片


7.在server4挂载sicis磁盘,在server4上同步partproble server1创建好的lvm磁盘


一开始用cat /proc/partition 查询不到,是因为没有同步分区列表

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第47张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第48张图片


在server4上挂载创建好名为clustervg/demo的iscis磁盘

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第49张图片



六.在搭建好的集群上添加服务mysql数据库(双机热备)


1.配置好server1上安装mysql服务端


wKioL1m-jrKSQCJEAAA1wbxqeyQ228.png


启动mysql服务

wKioL1m-jkKBT9w3AAAaVmq0qZE755.png


2.将iscis共享磁盘挂到mnt下,并关闭数据库,将var/lib/mysql数据考入/mnt下(此时是iscis盘)

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第50张图片


3.取消挂载,更改var/lib/mysql所属人为mysql,要不然iscsi内的数据运行会出问题,重新在server1上启动数据库,运行数据库正常,证明使用iscsi内的数据正常

wKiom1m-jnLSBqejAAAmOCj6cz8559.png

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第51张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第52张图片


4.取消server1上数据库挂载并将数据库关闭

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第53张图片


5.在server4上挂载iscsi磁盘重新在server4上启动数据库,运行数据库正常,证明使用iscsi内的数据正常

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第54张图片


6.取消server4上数据库挂载并将数据库关闭

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第55张图片


7.打开web luci管理系统设置mysql主备模式


(1)设置全局资源 IP Address、Filesystem和script



Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第56张图片



(2)设置Service Groups

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第57张图片


Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第58张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第59张图片


8.确认后开启服务

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第60张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第61张图片



七.创建高可用集群共享盘,可以同时读取写入


1.在server1上将原来的iscsi磁盘格式化为高可用集群共享盘

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第62张图片


2.将原来的/var/lib/local的数据库文件拷入/mnt下的高可用集群共享盘,并

wKiom1m-lgbyMChRAAATN5iUWAs260.png

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第63张图片

3.查询高可用集群共享盘的UUID,将其设置为开机自动挂载

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第64张图片


vim /etc/rc.local


4.使用mysql正常

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第65张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第66张图片



5.在server4上也挂载高可用集群共享盘/dev/clustervg/demo,并向server1一样设置开机自动挂载

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第67张图片


6.启动mysql正常高可用集群共享盘两边同时可以正常使用

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第68张图片


7.测试,将db由server1迁移到server2,服务正常运行,没有中断

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第69张图片

Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘)_第70张图片






      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1965443,如需转载请自行联系原作者





你可能感兴趣的:(Linux的企业-高可用性High Availability(nginx+mysql+高可用磁盘))