[关闭]
@Great-Chinese 2016-08-30T05:59:42.000000Z 字数 3815 阅读 1091

Linux系统架构(高可用 负载均衡)

linux


一、Linux高可用

1.1 说明

高可用,当A机器内存爆满B机器无法ping通A机器,这时候B机器就会将B机器的对应的服开启。

1.2 安装

  1. yum install -y heartbeat
  2. yum install -y libnet

1.3 配置文件

拷贝三个文件,HA机器的机器保持配置一致

  1. cd /usr/share/doc/heartbeat-3.0.4
  2. cp authkeys ha.cf haresources /etc/ha.d/
  3. cd /etc/ha.d/

authkeys 文件内容

  1. auth 3
  2. 3 md5 Hello!

ha.cf文件

  1. debugfile /var/log/ha-debug
  2. logfile /var/log/ha.log
  3. logfacility local0
  4. # 监听机器个数
  5. keepalive 2
  6. #死亡时间
  7. deadtime 30
  8. # 警告时间
  9. warntime 10
  10. initdead 60
  11. # 监听端口
  12. udpport 694
  13. # 通过那个网卡和其他ha机器保持通信
  14. bcast eth0
  15. auto_failback on
  16. #当前ha的多个节点,master需要在 /etc/hosts 中配置
  17. node master
  18. node slave
  19. # 路由器ip
  20. ping 192.168.1.1
  21. # 销毁ip的命令
  22. respawn hacluster /usr/lib64/heartbeat/ipfail

haresource 文件

  1. master 192.168.1.109/24/eth0:1 nginx
  2. # master ha主机的 hostname
  3. # 192.168.1.109 移动的ip地址
  4. # 24 ip地址通道
  5. # eth0 网卡名
  6. # :1 同一张网卡的另一个ip
  7. # nginx 监控的服务名,多个空空格隔开

1.4 启动服务

第一次启动会很慢,稍等几分钟后,在放访问 192.168.1.109 自动会跳转成功,HA集群的机器都需要启动这个服务。

  1. /etc/init.d/heartbeat start

二、负载均衡 之 NAT 模式

2.1 说明

优点:可以简单快速配置负载均衡
缺点:单机器有瓶颈
附属机器的网关(GATEWAY)必须是主机内网ip

2.2 安装软件

  1. yum install -y ipvsadm

2.3 通过脚本配置

脚本:/usr/local/sbin/lvs_nat.sh

  1. #!/bin/bash
  2. # director 服务器上开启路由转发功能
  3. echo 1 > /proc/sys/net/ipv4/ip_forward
  4. ## 关闭icmp的重定向
  5. echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
  6. echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
  7. echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
  8. # director 设置nat防火墙功能
  9. iptables -t nat -F
  10. iptables -t nat -X
  11. iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j MASQUERADE
  12. # director 设置 ipsadm
  13. IPVSADM='/sbin/ipvsadm'
  14. $IPVSADM -C #清空ipvsadm的规则
  15. # 192.168.145.128 外网
  16. $IPVSADM -A -t 192.168.145.128:80 -s rr
  17. $IPVSADM -a -t 192.168.145.128:80 -r 192.168.1.27:80 -m
  18. $IPVSADM -a -t 192.168.145.128:80 -r 192.168.1.28:80 -m

三、负载均衡 之 DR 模式

3.1 说明

优点:对服务器没有任何瓶颈,需要通过虚拟ip访问,主机的eth0:0 IP和期附属机器的lo:0的ip需要保持一直

3.2 执行脚本

主机执行脚本

  1. #!/bin/bash
  2. # director 服务器上开启路由转发功能
  3. echo 1 > /proc/sys/net/ipv4/ip_forward
  4. ipv=/sbin/ipvsadm
  5. vip=192.168.1.100
  6. rs1=192.168.1.27
  7. rs2=192.168.1.28
  8. ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 down
  9. ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
  10. route add -host $vip dev eth0:0
  11. $ipv -C
  12. $ipv -A -t $vip:80 -s rr
  13. $ipv -a -t $vip:80 -r $rs1:80 -g -w 1
  14. $ipv -a -t $vip:80 -r $rs2:80 -g -w 1

附属机器执行脚本

  1. #!/usr/bin/env bash
  2. vip=192.168.1.100
  3. ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 down
  4. ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
  5. route add -host $vip lo:0
  6. echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
  7. echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  8. echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  9. echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置完成后,可以访问 192.168.1.100 切换两个不同机器的80端口。

四、keepalived 高可用,监控web服务器状态

4.1 安装 两台机器,一组一丛

  1. yum install -y keepalived

主机器配置,虚拟ip为:192.168.1.100

  1. vrrp_instance VI_1 {
  2. state MASTER # 备用服务器上为BACKUP
  3. interface eth0
  4. virtual_router_id 51
  5. priority 100 #备用服务器上为90
  6. advert_int 1
  7. authentication {
  8. auth_type PASS
  9. auth_pass 1111
  10. }
  11. virtual_ipaddress {
  12. 192.168.1.100
  13. }
  14. }
  15. virtual_server 192.168.1.100 80 {
  16. delay_loop 6 # 每个6秒查询Realserver状态
  17. lb_algo rr # lvs算法
  18. lb_kind DR # Direct Route
  19. persistence_timeout 0 # 同一IP链接60秒内被分配到同一台realserver
  20. protocol TCP #用tcp协议检查realserver状态
  21. real_server 192.168.1.27 80{
  22. weight 100
  23. TCP_CHECK {
  24. connect_timeout 10 #10秒钟无响应超时
  25. nb_get_retry 3
  26. delay_before_retry 3
  27. connect_port 80
  28. }
  29. }
  30. real_server 192.168.1.28 80{
  31. weight 100
  32. TCP_CHECK {
  33. connect_timeout 10 #10秒钟无响应超时
  34. nb_get_retry 3
  35. delay_before_retry 3
  36. connect_port 80
  37. }
  38. }
  39. }

keepalived从机器上

  1. vrrp_instance VI_1 {
  2. state BACKUP # 备用服务器上为BACKUP
  3. interface eth0
  4. virtual_router_id 51
  5. priority 90 #备用服务器上为90
  6. advert_int 1
  7. authentication {
  8. auth_type PASS
  9. auth_pass 1111
  10. }
  11. virtual_ipaddress {
  12. 192.168.1.100
  13. }
  14. }
  15. virtual_server 192.168.1.100 80 {
  16. delay_loop 6 # 每个6秒查询Realserver状态
  17. lb_algo rr # lvs算法
  18. lb_kind DR # Direct Route
  19. persistence_timeout 0 # 同一IP链接60秒内被分配到同一台realserver
  20. protocol TCP #用tcp协议检查realserver状态
  21. real_server 192.168.1.27 80{
  22. weight 100
  23. TCP_CHECK {
  24. connect_timeout 10 #10秒钟无响应超时
  25. nb_get_retry 3
  26. delay_before_retry 3
  27. connect_port 80
  28. }
  29. }
  30. real_server 192.168.1.28 80{
  31. weight 100
  32. TCP_CHECK {
  33. connect_timeout 10 #10秒钟无响应超时
  34. nb_get_retry 3
  35. delay_before_retry 3
  36. connect_port 80
  37. }
  38. }
  39. }

启动主和备用机器的keepalived服务
/etc/init.d/keepalived start
查看端口转发规则
ipvsadm -ln

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注