Linux搭建负载均衡集群,使用LVS的NAT模式

来源:互联网 发布:非农历史数据一览表 编辑:程序博客网 时间:2024/04/30 02:36

Linux Cluster
LB(负载均衡集群)

负载均衡集群,通常有两种实现方式,基于硬件或基于软件。
基于硬件:BIP
基于软件:
基于OSI第四层传输层:LVS(Linux Virtual Server)
基于OSI第期层传输层:nginx

1.LVS

1.1认识LVS

LVS,全称Linux Virtual Server,由国人章文嵩博士提出并实现。LVS有三种工作模式:DR直接路由模式、NAT地址转换模式、TUN隧道模式

2.基于LVS搭建 LB Linux Cluster

2.1 LVS的NAT模式实现

2.1.1 实验拓扑图

2.1.2 实验简介

Director具备两张网卡,一张连接外网,一张连接内网中的realserver。realserver单网卡配置内网IP,运行http服务,挂上简单的测试web。

2.1.3 实验准备

物理机上安装virtualbox软件上创建一台centos5.5,最小化安装即可,作为Director。桌面可装可不装,使用6.X,7.X也是可以的,这里使用centos5.5是因为my computer才8G内存virtualbox的虚拟介质管理,复制2台刚才安装好的centos5.5硬盘,明明为realserver1,realserver2新建虚拟机作为realserver时,选择存储介质选择现有的磁盘,路径指向刚才复制的centos5.5

2.1.4 实验步骤

0).ipvs在2.6.X版本后的内核中默认安装有,我们需要安装ipvsadm进行管理,**注意:ipvsadm与iptables不能同时使用,实验前需关闭iptables与selinux**关闭iptables:
setup或:service iptables stop  #停止iptables服务chkconfig iptables off #iptables开机不自启
关闭selinux:
setup或:vim /etc/sysconfig/selinux  #修改selinux的配置文件SELINUX=disabled   #将SELINUX等号右边的值修改为disabled
1).Director设置双网卡,外网网卡选择桥接模式,内网网卡选择host-only模式2).为Director安装ipvsadm
yum -y install ipvsadm
    检查是否安装成功只需输入ipvsadm,无输出则未安装有,若已安装则输出如下字样
    IP Virtual Server version 1.2.1 (size=4096)    Prot LocalAddress:Port Scheduler Flags    -> RemoteAddress:Port     Forward Weight ActiveConn InActConn
3).配置director的IP地址,启动realserver,网卡模式选择host-only并配置IP地址,realserver网关指向director的内网IP4).配置测试网页   为每台realserver安装http,并启动httpd服务
 yum install httpservice httpd startecho "this is realserver1 test web" > /var/www/html/index.htmlecho "this is realserver2 test web" > /var/www/html/index.htmlecho "this is realserver3 test web" > /var/www/html/index.html#分别创建测试页curl http://ipaddress    #访问测试页
5).配置ipvsadm规则   在director上配置
ipvsadm -A -t 192.168.8.28:80 -s rr   #添加集群服务 tcp服务类型 服务的ip与端口号 使用调度算法为 rripvsadm -a -t 192.168.8.28:80 -r 192.168.56.102 -m #添加服务器,工作模式为NATipvsadm -a -t 192.168.8.28:80 -r 192.168.56.103 -mipvsadm -a -t 192.168.8.28:80 -r 192.168.56.104 -m
ipvsadm -l -n  #查看当前就群信息连接数等输出结果如下IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port       Forward Weight ActiveConn InActConnTCP  192.168.8.28:80 rr-> 192.168.56.103:80            Masq    1      0          0         -> 192.168.56.102:80            Masq    1      0          0  
6).测试在director打开网卡转发
echo 1 > /proc/sys/net/ipv4/ip_forward  #默认为0,不打开网卡转发
使用物理机的浏览器输入http://director的ip地址不断刷新即可看到效果   

3.注意事项

在集群中服务器与director之间的时间误差不能超过一秒解决办法:办法一:运行ntp服务,与网络上的ntp服务器进行时间同步即可
service ntpd start
办法二:把director当作时间服务器使realserver与director进行时间同步
director运行service ntpd start
realserver运行ntpd directorIP,如ntpd 192.168.56.101

4.ipvsadm命令的用法

-A --add-service      在内核的虚拟服务器表中添加一条新的虚拟服务器记录。 -E --edit-service     编辑内核虚拟服务器表中的一条虚拟服务器记录。 -D --delete-service   删除内核虚拟服务器表中的一条虚拟服务器记录。 -C --clear           清除内核虚拟服务器表中的所有记录。 -R --restore         恢复虚拟服务器规则 -S --save            保存虚拟服务器规则,输出为-R 选项可读的格式 -a --add-server      在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。-e --edit-server     编辑一条虚拟服务器记录中的某条真实服务器记录 -d --delete-server   删除一条虚拟服务器记录中的某条真实服务器记录 -L|-l --list         显示内核虚拟服务器表 -t --tcp-service service-address     说明虚拟服务器提供的是tcp  -u --udp-service service-address     说明虚拟服务器提供的是udp -s --scheduler scheduler             使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.#本节ipvsadm的用法来自http://linux.51yip.com/

5.常见的调度算法

director收到用户请求后,需要通过一定的调度算法来决定将请求分发给那台realserver处理。分为动态调度与静态调度,静态调度为 rr wrr,不考虑服务器性能与当前连接数,将请求轮流分发;动态调度为wlc|lblc|lblcr|dh|sh|sed|nq,若不指定调度算法默认为wlc,一句当前服务器的性能当前连接数与权重,进行运算,将用户请求分给相对较为空闲的realserver。
0 0
原创粉丝点击