LVS DR直接路由模式 负载均衡配置(感觉优于IP隧道模式) Linux
LVS 采用IP负载技术 是目前最牛逼的软负载,其功能已经集成到Linux内核
LVS负载的特点: 无单点故障 , web服务器自动维护(死机剔除服务队列,重启后 加入服务队列)
LVS主机与备机 始终有一个提供服务
检查系统配置
uname -a #查看系统内核版本 达到2.6及以上
搭建测试环境:
虚拟机 四台:
192.168.2.210 LVS主机
192.168.2.211 lvs备机
192.168.2.221 HTTP server1
192.168.2.223 HTTP server2
系统采用: centos 6.10 X64位系统
开始搭建:
1) 搭建HTTP服务器(2.221 2.223)
安装 apache 服务器 httpd
yum -y install httpd httpd-devel
安装完毕,修改server主页
touch /var/www/html/index.html
vi /var/www/html/index.html #分别加入内容 11111 ,22222
启动服务:
service httpd start #ok 启动成功, 通过局域网IP访问各自主机的首页
至此, 两天服务器搭建完毕
2) 开始搭建 负载均衡服务
一)两台httpd服务(2.221 , 2.223)搭建本机回调服务
touch /etc/init.d/rserver
vi /etc/init.d/rserver #加入如下内容
-----------------------------------------
# chkconfig: 2345 10 90 # description: realserver .... SNS_VIP=192.168.2.224 #这个IP是当前局域网的某个未占用的IP,也是LVS主机的虚拟IP . /etc/rc.d/init.d/functions case "$1" in start) ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP /sbin/route add -host $SNS_VIP dev lo:0 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p >/dev/null 2>&1 echo "RealServer Start OK" ;; stop) ifconfig lo:0 down route del $SNS_VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
--------------------------------------
创建文件后,将脚本作为服务器启动(并设置为自启)
保存退出后,rserver文件为普通文件,无法启动,需要附权X
chmod +x /etc/init.d/rserver
//附加到服务 并自启
chkconfig rserver on
server rserver start #启动轮回地址广播服务
ifconfig #查看轮回广播是否启动
二) 创建LVS服务 (2.210)
yum install -y keepalived # 在线安装 keepalived
/etc/keepalived/keepalived.conf #配置文件位置 rpm -ql keepalived 查找
修改keepalived.conf文件 内容为 如下内容:
global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER #主机 interface eth0 virtual_router_id 51 priority 100 #主机优先级要 高于备机 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.224 #虚拟IP 局域网内 未使用的IP } } virtual_server 192.168.2.224 80 { delay_loop 6 lb_algo wrr #IP负载方式 lb_kind DR nat_mask 255.255.255.0 persistence_timeout 0 protocol TCP real_server 192.168.2.221 80 { #真实负载服务器一 weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.2.223 80 { #真实负载服务器二 weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
配置完毕后, 可以启动服务(若是不确定是否启动成功,日志查看命令及日志位置: tail /var/log/message):
service keepalived start #启动命令
至此LVS负载算是完成了 前台浏览器可以访问
http://192.168.2.224/ 来访问服务器是否正常。
三)备机配置 (2.211)
备机与主机基本一致, 只是优先级要比主机低
yum -y install keepalived
将配置keepalived.conf文件修改为如下内容:
global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { state BACKUP #标记为备机 interface eth0 #当前主机的网卡 virtual_router_id 51 priority 99 #优先级 低于主负载 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.224 #与主保持一致,多个IP记得分行 } } virtual_server 192.168.2.224 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 0 protocol TCP real_server 192.168.2.221 80 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.2.223 80 { weight 3 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
启动备机服务:
service keepalived start #启动脚本,自己跟踪日志 /var/log/message文件
至此 LVS负载没有 单点瓶颈。算是完善了架构。
如有疑问 请留言 欢迎提供建议
评论已有 0 条