“高可用性”(high availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。nginx于keepalived可以实现高可用,实现双机热备+自动切换,这种操作在现在的集群系统中,比较的常见,还有,通过keepalived和redis实现热备份的,还有和mysql实现的,类似的案例挺多。
keepalived是一个免费开源的,用c编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖linux的虚拟服务内核模块(ipvs),而高可用是通过vrrp协议实现多台机器之间的故障转移服务。
上图是keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空间(kernel space)。
内核空间:主要包括ipvs(ip虚拟服务器,用于实现网络服务的负载均衡)和netlink(提供高级路由及其他相关的网络功能)两个部份。
用户空间:
watchdog:负载监控checkers和vrrp进程的状况
vrrp stack:负载负载均衡器之间的失败切换failover,如果只用一个负载均稀器,则vrrp不是必须的。
checkers:负责真实服务器的健康检查healthchecking,是keepalived最主要的功能。换言之,可以没有vrrp stack,但健康检查healthchecking是一定要有的。
ipvs wrapper:用户发送设定的规则到内核ipvs代码
netlink reflector:用来设定vrrp的vip地址等。
keepalived的所有功能是配置keepalived.conf文件来实现的。
更多nginx相关技术文章,请访问nginx使用教程栏目进行学习!
以上就是nginx高可用是什么意思的详细内容。