HA集群及varnish缓存基础

HA集群及varnish缓存基础

一、简述HA cluster原理


HA cluster高可用集群:高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换,这样可以保证服务一直在线。在这个过程中,对于客户端来说是透明的。

1.高可用集群的衡量标准:高可用集群一般是通过系统的可靠性(reliability)和系统的可维护性(maintainability)来衡量的。通常用平均无故障时间(MTTF)来衡量系统的可靠性,用平均维护 时间(MTTR)来衡量系统的可维护性。因此,一个高可用集群服务可以这样来定义:HA=MTTF/(MTTF+MTTR)*100%

2.高可用集群的相关特性:

二、keepalived实现主从、主主架构


keepalived:vrrp(virtual redundant routing protocol)协议的软件实现,原生设计的目的是为了高可用ipvs服务。

Keepalived的配置前提:

keepalived的主从架构:使用node1,node2中部署keepalived做主从和主主的架构,在后端服务器node3,node4部署nginx搭建web站点。

1.搭建后端nginx服务:

2.配置nginx显示页面配置:

3.在node1上配置lvs-dr的配置,创建lvsdr脚本:

执行RS脚本:

4.node2采取同样的配置。

搭建node3服务:安装keepalived和ipvsadm程序包:

编辑keepalived配置文件:

查看ipvsadm的端口状态:

配置node4服务器的keepalived,配置node3,修改相对应的参数即可,使用ipvsadm查看状态:

测试,访问vip地址,获得的服务如下:

此时node3为master,node4为backup,将node3服务关闭,此时node4将成为master,同样测试vip的服务:

此时服务仍正常,说明keepalived的主从配置正确。

keepalived主主配置:

修改node3的keepalived配置文件:

查看ipvsadm的状态为:

node4如node3一样配置,修改相应的参数即可。

在node1和node2上添加lo:1的地址,如下:

在客户端上访问10.3.88.188,及10.3.88.187均能访问到服务:

三、简述http协议缓存原理及常用首部讲解


http协议缓存的原理: 程序的运行具有局部性特征:
1.时间局部性:一个数据被访问过之后,可能很快会被再次访问到;
2.空间局限性:一个数据被访问时,其周边的数据也有可能被访问到。

http缓存处理的步骤:
接受请求–>解析请求(提取请求的URL及各种首部)–>查询缓存–>判断缓存的有效性–>构建响应报文–>发送响应–>记录日志

与缓存相关的首部:

四、varnish实现缓存对象及反代后端主机


varnish简介

1.varnish的程序结构:
varnish主要运行两个进程:Management进程和Child进程(cache进程)。
Management进程主要实现新的配置,编译VLC,监控varnish,初始化varnish以及提供一个命令接口等。management进程会每隔几秒钟探测一下child进程以判断其是否正常运行,如果在指定的时长内未得到child进程的回应,management将会重启此child进程。

varnish基础架构如下: HA集群及varnish缓存基础

2.varnish的缓存存储机制:

varnish支持多种不同类型的后端存储,这可以再varnishd启动时使用-s选项指定。后端存储的类型包括:

3.varnish日志:

varnish通过可以基于文件系统接口进行访问的共享内存区域来记录日志,为了与系统的其它部分进行交互,Child进程使用了可以通过文件系统接口进行访问的共享内存日志(shared memory log),因此,如果某线程需要记录信息,其仅需要持有一个锁,而后向共享内存中的某内存区域写入数据,再释放持有的锁即可。而为了减少竞争,每个worker线程都使用了日志数据缓存。

varnish的程序环境: /etc/varnish/varnish.params: 配置varnish服务进程的工作特性,例如监听的地址和端口,缓存机制; /etc/varnish/default.vcl:配置各Child/Cache线程的缓存策略; 主程序: /usr/sbin/varnishd CLI interface: /usr/bin/varnishadm Shared Memory Log交互工具: /usr/bin/varnishhist /usr/bin/varnishlog /usr/bin/varnishncsa /usr/bin/varnishstat /usr/bin/varnishtop 测试工具程序: /usr/bin/varnishtest VCL配置文件重载程序: /usr/sbin/varnishreloadvcl Systemd Unit File: /usr/lib/systemd/system/varnish.service varnish服务 /usr/lib/systemd/system/varnishlog.service /usr/lib/systemd/system/varnishncsa.service 日志持久的服务;

varnish的缓存存储机制( Storage Types): -s [name=]type[,options]

varnish程序的选项: 程序选项:/etc/varnish/varnish.params文件 -a address[:port][,address[:port][…],默认为6081端口; -T address[:port],默认为6082端口; -s [name=]type[,options],定义缓存存储机制; -u user -g group -f config:VCL配置文件; -F:运行于前台; … 运行时参数:/etc/varnish/varnish.params文件, DEAMONOPTS DAEMONOPTS=”-p threadpoolmin=5 -p threadpoolmax=500 -p threadpooltimeout=300″

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100814

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code