Linux中基于ricci luci的集群服务实现web高可用(apache,iscsi,GSF2集群服务)
1. 服务简介
Ricci: ricci是安装在每个后端的每个节点上的,且监听在11111上,luci管理集群上的各个节点就是通过和节点上的ricci进行通信
Luci:luci是用来配置和管理集群,监听在8084上
Fence:
(1).作用:在HA集群坏境中,备用服务器B通过心跳线来发送数据包来看主服务器A是否还活着,主服务器A接收了大量的客户端访问请求,服务器A的CPU负载达到100%响应不过来了,资源已经耗尽,没有办法回复服务器B数据包时,(回复数据包会延迟),服务器B认为服务器A已经挂了,于是备用服务器B把资源夺过来,自己做主服务器,过了一段时间服务器A响应过来了,服务器A觉得自己是老大,服务器B觉得自己也是老大,他们两个就挣着抢夺资源,集群资源被多个节点占有,两个服务器同时向资源写数据,破坏了资源的安全性和一致性,这种情况的发生叫做“脑裂”。服务器A负载过重,响应不过来了,有了Fence机制,Fence会自动的把服务器A给kill掉,以阻止“脑裂”的发生。
(2).原理:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。
(3).类型:硬件Fence:电源Fence,通过关掉电源来踢掉坏的服务器 软件Fence:Fence卡(智能卡),通过线缆、软件来踢掉坏的服务器 。
2.环境配置:
服务端1:server1 172.25.26.1
服务端2:server2 172.25.26.2
(1)server1和server2配置yum源
vim /etc/yum.repos.d/rhel-source.repo
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.26.250/rhel6.5/HighAvailability
gpgcheck=0[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.26.250/rhel6.5/LoadBalancer
gpgcheck=0[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.26.250/rhel6.5/ResilientStorage
gpgcheck=0[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.26.250/rhel6.5/ScalableFileSystem
gpgcheck=0
(2)server1安装ricci和luci,并启动和设置开机自启,并设置ricci密码
yum install -y ricci luci/etc/init.d/ricci start/etc/init.d/luci start ##开启服务chkconfig ricci onchkconfig luci on ##开机自启passwd ricci ##设置用户密码netstat -tnlp ##查看端口
(3)server2安装ricci并设置密码(server1和server2的密码要相同)
yum install -y ricci/etc/init.d/ricci startchkconfig ricci onchkconfig --list ##查看开机自启名单passwd ricci
(4)物理登陆配置:
https://172.25.41.1:8084
这里使用server1和server2设置的密码
cman 集群管理器
rgmanager 资源管理器
ricci 集群服务
modclusterd 配置文件修改服务
clvmd 集群逻辑卷服务
(5)server1或server2查看效果
clustat
cat /etc/cluster/cluster.conf
3.fence监控
(1)主机安装fence监控模块
rpm -qa| grep fence ##查看fence服务的安装包
yum install fence-virtd-multicast.x86_64 fence-virtd-libvirt.x86_64 fence-virtd.x86_64 -y
mkdir /etc/cluster/ ##创建密码生成目录
fence_virtd -c ##网卡选择br0(与两个虚拟机连接的网卡)
ls /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1##如果未生成的密钥的话,自行创建
systemctl start fence_virtd.service ##开启fence服务
scp fence_xvm.key 172.25.26.2:/etc/cluster/ ##将密码传给server1和2
scp fence_xvm.key 172.25.26.1:/etc/cluster/
netstat -autnlp | grep fence_virtd ##查看服务端口
(2)浏览器的luci页面配置fence
添加fence设备
为server1和server2添加fence服务
因为这里要用序列区分fence,所以我们用虚拟机的UUID(不会重复)
server2
server1或server2测试
server1:fence_node server2
server2:fence_node server1
4.失败回切(一个服务器崩溃后,由另一个服务器来接管)
这里我们用apache服务作为失败回切服务来测试
添加失败回切服务
添加apache服务,设置ip地址和网络位,并设置ip转跳时间
将apache服务和失败回切放入同一个集群
效果
为server1和server2安装httpd,并配置默认页
开启集群服务,查看效果
如果开启出错,则去查看webfile优先级是否设置成功(越小越优先),如未设置,则设置好之后再去开启apache集群服务
开启服务查看效果
在server1中输入echo c> /proc/sysrq-trigger(将内核搞崩溃)
然后等待五秒后在server2中查看是否回切
5.ricci的命令行指令(不使用luci控制页面)
clusvcadm -e apache ##开启集群服务
clusvcadm -r apache -m server2 ##更改集群服务所在服务器
clusvcadm -d apache ##关闭集群服务
6.共享存储分区管理iscsi(只支持单点写入)
server3:172.25.26.3(作为iscsi共享分区的服务器)
sercver1和server3作为共享分区的两个客户端
(1)环境配置
server3:
物理机上为server3加一块作为共享的硬盘
重启生效
yum install -y scsi-*
fdisk -l
vim /etc/tgt/targets.conf
<target iqn.2019-04.com.example:server.target1>backing-store /dev/vda
</target>
/etc/init.d/tgtd start
ps ax
server1
yum install -y iscsi-* ##安装服务
iscsiadm -m discovery -t st -p 172.25.41.3 ##查看server3中的共享设备
iscsiadm -m node -l ##将共享server3共享设备
fdisk -l ##查看是否共享成功
yum install -y mysql-server ##安装mysql
mount /dev/sdb /var/lib/mysql/ ##由于文件类型的问题,无法挂载
mkfs.ext4 /dev/sdb ##格式化文件
mount /dev/sdb /var/lib/mysql/ ##重新挂载ll -d /var/lib/mysql/ ##查看mysql文件夹的权限
chown mysql.mysql /var/lib/mysql/
ll -d /var/lib/mysql/
/etc/init.d/mysqld start ##开启mysql
cd /var/lib/mysql/
ls ##查看mysql服务是否生成了默认文件,由于mysql挂载了共享设备,默认文件也就放入了共享设备中
/etc/init.d/mysqld stop
umount /var/lib/mysql/ ##卸载,并停止mysql
server2
yum install -y iscsi-*
iscsiadm -m discovery -t st -p 172.25.41.3
iscsiadm -m node -l
fdisk -l
yum install -y mysql-server
主机在浏览器的luci页面上配置mysql集群服务(基于iscsi)
设置sql的ip
设置启动文件
设置自动挂载服务
设置回切服务
为集群服务添加规则
开启sql集群服务
server1测试查看
clustat
df
由于server2未格式化设备所以集群服务无法运行在server2上
由于iscsi只支持单点写入server1在共享设备所挂载的目录中新建文件不能同步到server2中
7.共享存储分区管理GSF2(只支持多点写入)
server1环境配置:
yum install -y lvm2-cluster-2.02.100-8.el6.x86_64
/etc/init.d/clvmd start
此功能必须开启clvmd服务
lvmconf --enable-cluster ##设置lvm的开机自启
vim /etc/lvm/lvm.conf ##查看是否设置成功,(是否变为3)
创建lvm分区并格式化
pvcreate /dev/sdb
pvs
vgcreate clustervg /dev/sdb
vgs
lvcreate -L 4G -n demo clustervg
lvs
mkfs.ext4 /dev/clustervg/demo
mount /dev/clustervg/demo /var/lib/mysql/
ll -d /var/lib/mysql/
chown mysql.mysql /var/lib/mysql/
ll -d /var/lib/mysql/
/etc/init.d/mysqld start
ls /var/lib/mysql/
/etc/init.d/mysqld stoplvextend -L +4G /dev/clustervg/demo
lvextend -l +1023 /dev/clustervg/demo ##磁盘扩展
lvs
umount /var/lib/mysql/
e2fsck -f /dev/clustervg/demo
resize2fs /dev/clustervg/demo
yum install -y man xz-*
yum install -y gfs2-utils-3.0.12.1-59.el6.x86_64 ##安装gfs2服务
mkfs.gfs2 -t westos_ha:mygfs2 -p lock_dlm -j 2 /dev/clustervg/demo ##
gfs2_tool sb /dev/clustervg/demo all
blkid
vim /etc/fstabUUID="8326924a-f0db-4f0a-db1b-f91b27be2c86" /var/lib/mysql gfs2 _netdev 0 0##UUID使用blkid查询lvm所对应的id
fuser -vm /var/lib/mysql/
/etc/init.d/mysqld stop
mount -a
主机在浏览器的luci页面上配置mysql集群服务(基于gfs2)
Linux中基于ricci luci的集群服务实现web高可用(apache,iscsi,GSF2集群服务)相关推荐
- linuxweb集群mysql_企业web高可用集群实战之lvs+keepalived+mysql
前端用两台server做lvs+keepalived负载调度器,中间用apache+php作为web应用服务器,后端用两台做mysql高可用,用nfs.mfs或作为web文件共享服务器 系统环境: L ...
- 项目实战2 | 基于Swarm+Prometheus实现双VIP可监控Web高可用集群
创作不易,来了的客官点点关注,收藏,订阅一键三连❤
- 实现Kubernetes跨集群服务应用的高可用
我们在进行生产环境部署时得到的一个明确的需求,是Kubernetes用户希望服务部署能够zone.跨区域.跨集群甚至跨云边界(译者:如跨云供应商).相比单集群多zone部署,跨集群服务提供按地域分布, ...
- Linux 高可用(HA)集群之Pacemaker详解
大纲 说明:本来我不想写这篇博文的,因为前几篇博文都有介绍pacemaker,但是我觉得还是得写一下,试想应该会有博友需要,特别是pacemaker 1.1.8(CentOS 6.4)以后,pacem ...
- 基于LVS高可用架构实现Nginx集群分流
Nginx实用插件_踩踩踩从踩的博客-CSDN博客 前言 前面文章介绍Nginx的核心及扩展插件必要的性能优化,以及在nginx中如何实用用https:本篇文章会继续讲解重要的概念 lvs高可用框架, ...
- 基于高可用配置的RabbitMQ集群实践
本文将提供一个基于高可用配置的RabbitMQ集群方案.通过介绍RabbitMQ的基本概念.主要作用和使用场景,并搭建RabbitMQ单节点环境.用程序演示消息发送接收过程,以及搭建RabbitMQ高 ...
- Linux 高可用(HA)集群之keepalived详解
大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用的前端负载均衡器 一.前言 这篇文章是前几篇文章的总结,我们先简单的总结一下我们前面讲解的内容 ...
- Linux 高可用(HA)集群之DRBD详解
http://freeloda.blog.51cto.com/2033581/1275384 大纲 一.前言 二.DRBD 是什么 三.DRBD 主要功能 四.DRBD 工作原理 五.DRBD与HA ...
- 深入浅出百亿请求高可用Redis(codis)分布式集群揭秘
摘要:作为noSql中的kv数据库的王者,redis以其高性能,低时延,丰富的数据结构备受开发者青睐,但是由于redis在水平伸缩性上受限,如何做到能够水平扩容,同时对业务无侵入性是很多使用redis ...
最新文章
- Hadoop CDH4.5 HBase部署
- 16个Linux服务器监控命令
- 博物馆守卫问题(世界名画展览馆)
- 密码学电子书_密码学中的电子密码书(ECB)
- 图解 RoIAlign 以及在 PyTorch 中的使用(含代码示例)
- db h2 数据类型_H2数据库函数及数据类型概述-阿里云开发者社区
- cmd查看所有数据库 db2_民生银行数据库自动化部署的探索与实践
- 如何在java输入_怎么在java中编写输入语句?
- 用 Boost.extension 做C/C++插件
- 读书202101『股票大作手回忆录』
- sqlserver中日期转字符串
- C语言推箱子完整代码
- 人的9种2266对联文字的世界纪录(图)
- 支付宝前端团队详解基于Node.js Web框架Chair
- c语言标准库详解(九):实用函数stdlib.h
- hibernate hbb.xml 映射关系
- android用什么更新应用程序,如何在Android上更新应用程序 教你如何更新安卓手机APP...
- IDA详细使用教程,适合逆向新手的实验报告
- 面试问到DCL失效不知所措
- 这几行码是什么意思呢
热门文章
- Swift 3.0 打开手机手电筒
- html语言教程 ppt,HTML语言基础入门课件.ppt
- VR电影这一新概念在中国电影道路上的探索
- 企业直播云服务崛起背后:PaaS平台成直播下半场“杀手锏”
- word2016 卡顿_office2016打开卡顿怎么办?office2016打开缓慢的解决技巧
- android_16_布局笔记
- 【SD-WAN】哪些垂直行业可以从SD-WAN部署中获益?
- 【gdx ashley】入门
- mysql数据应用从入门_《MySQL数据库应用从入门到精通》
- GEE:提取一个小区域影像的所有波段像素值到csv