linux集群简介

  • 集群简介
  • 根据功能划分为两大类:高可用和负载均衡。
  • 高可用集群通常为两台服务器,一台工作,另一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务。
  • 实现高可用的开源软件有:heartbeat、keepalived(推荐)。
  • 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务数量至少为2。
  • 实现负载均衡的开源软件有LVS、kepalived、haproxy、nginx,商业的有F5、netscaler。
  • Keepalived介绍
  • 在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验结果。
  • Keepalived通过VRRP(Vitual Router Redundancy Protocl)来实现高可用。
  • 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。
  • Master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包是,就会任务master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的master。
  • Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。
  • Keepalived配置高可用集群
  • 准备两台机器130和132,130作为master,132作为backup。
  • 两台机器都执行yum install -y keeplived 。
  • 两台机器都安装nginx,其中130上已经编译安装nginx,132上需要yum安装nginx:yum install -y nginx。
  • 设定vip为100。
  • 编辑130上keepalived配置文件,内容从 http://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf
  • 获取。
  • 130编辑监控脚本,内容从 http://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh
  • 获取。
  • 给脚本755权限。
  • systemctl start keepalived 130启动服务。
  • 测试高可用
  • 先确定好两台机器上nginx差异,比如可以通过curl -I来查看nginx版本。
  • 测试1:关闭master上的nginx服务。
  • 测试2:在master上增加iptabls规则。
  • iptables -I OUTPUT -p vrrp -j DROP
  • 测试3:关闭master上的keepalived服务。
  • 测试4:启动master上的keepalived服务。
  • 负载均衡集群介绍
  • 主流开源软件LVS、keepalived、haproxy、nginx等。
  • 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy即可以认为是4层,也可达当做7层使用。
  • Keepalived的负载均衡功能其实就是LVS。
  • LVS这种4层的负载均衡是可以分发除80外的其他端口通信的,比如mysql的,而nginx仅仅支持http、https、mail,haproxy也支持mysql这种。
  • 相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求。
  • LVS介绍
  • LVS是由国人章文嵩开发的。
  • 流行度不亚于Apache的httpd,基于tcp/ip做的路由和转发,稳定性和效率都很高。
  • LVS最新版本基于linux内核2.6,已经很多年没有更新了。
  • LVS有三种常见的模式:NAT、DR、IP Tunnel。
  • LVS架构中有一个核心角色叫做分发器(Load Balancing),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs)
  • NAT模式下报文变化
  • 发送接收
  • cip ---> vip
  • cip ---> rip(DNAT)
  • rip ---> cip
  • vip ---> cip(SNAT)
  • 这种模式,需要有一个公共的IP配置在分发器和所有rs上,我们把它叫做vip。
  • 客户端请求的目标IP为vip,分发器收到请求数据包后会对数据包做一个加工,会把目标IP改为rs的IP,这样数据包就到了rs上。
  • Rs接收数据包后,会还原原始数据包,这样目标IP为vip,因为所有rs上配置了这个vip,所有它会认为是它自己。
  • LVS的调度算法
  • 轮询 Round-Robin rr
  • 加权轮询 Weight Round-Robin wrr
  • 最小连接 Least-Connection lc
  • 加权最小连接 Weight Least-Connection wlc
  • 基于局部性的最小连接 Locality-Based Least Connections with Replication lblcr
  • 目标地址散列调度 Destination Hashing dh
  • 源地址散列调度 Source Hashing sh
  • LVS NAT模式搭建
  • 准备工作
  • 三台机器
  • 分发器,也叫调度器(简写为dir)
  • 内网:133.130,外网:147.411(vmware仅主机模式)
  • Rs1
  • 内网:133.132,设置网关为133.130
  • Rs2
  • 内网:133.133,设置网关为133.130
  • 三台机器上都执行命令
  • systemctl stop firewalld
  • systemc disable firewalld
  • systemctl start iptables
  • iptables -F
  • service iptables save
  • 在dir上安装ipvsadm
  • yum install -y ipvsadm
  • 在dir上编写脚本,vim /usr/local/sbin/lvs_nat.sh(内容如下)
  • #!/bin/bash
  • #director 服务器上开启路由转发功能
  • echo 1 > /proc/sys/net/ipv4/ip_forward
  • #关闭icmp的重定向
  • echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
  • echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
  • #注意区分网卡名字,这里我用的两个网卡分别为ens33和ens37
  • echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
  • echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
  • #director设置nat防火墙
  • iptables -t nat -F
  • iptables -t nat -X
  • iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -j MASQUERADE
  • #director设置ipvsadm
  • IPVSADM=’/usr/sbin/ipvsadm’
  • $IPVSADM -C
  • $IPVSADM -A -t 192.168.147.144:80 -s wlc -p 3
  • $IPVSADM -a -t 192.168.147.144:80 -r 192.168.133.132:80 -m -w 1
  • $IPVSADM -a -t 192.168.147.144:80 -r 192.168.133.133:80 -m -w 1

转载于:https://my.oschina.net/u/4095969/blog/3058579

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值