设为首页 收藏本站
查看: 1579|回复: 0

[经验分享] LB lvs-nat lvs-dr 的理解及实验

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-9 08:29:41 | 显示全部楼层 |阅读模式
本帖最后由 kjjhg 于 2014-9-9 08:31 编辑

                      Lvs-nat
负载均衡nat模式工作原理讲解
wKiom1QN7B_TNjr-AAFpyI2bDrA934.jpg
Lvs是LB 的实现方式
LB :负载均衡
Lvs-nat
Directory 负载均衡调度器
Real server 真正负载集群的总称
请求报文
首先客户端请求一个http资源,经过路由器到达directory  的vip 经过路由选择,送到INPUT链上去,INPUT链
查看他的请求资源是个本机,但是本机是个集群,本机并没有web服务提供,根据配置规则,就修改请求资源的目
标地址为真正的real server rip 送给dip,dip查看是送到real server xx的就送给xx啦
响应报文
Real server  xx查看请求的资源,马上就开始构建响应报文,构建完响应报文后,通过dip送到directory,dip通过修
改源端口,dip直接从forword链转发到vip,vip在转发给客户端
工作示意图如上图
Vmware1   directory  nfs 共享mysql   eth0:192.168.1.118/24     eth1:172.16.1.143/16
Vmware2   lamp  web   host1   eth0:192.168.1.11/24   关闭mysql  安装wordpress
Vmware3   lamp  web   host2   eth1:192.168.1.12/24   关闭mysql  安装Wordpress
系统均为centos6.5
配置好ip地址和建立好网页,ping 一下看主机是否在线
1、节点real  server的配置
Ifconfig eth0  192.168.1.11/24 up  使用虚拟通道3
Route  add  default  gw  192.168.1.11
Yum  install  httpd  mysql-server  php  php-mysql  php-gd -y
Vim  /var/www/html  提供网页文件
Service  httpd  restart
节点二一样配置
2、directory的配置
首先添加一张网卡,配置能让linux正常识别到
Ifconfig eth0 192.168.1.118/24 up   桥接
Ifconfig eth1 172.16.1.143/16 up  使用虚拟通道3
Yum  install  httpd  mysql-server  php  php-mysql  php-gd -y
此时先在directory 测试一下 ping 各节点
Curl  http:// 192.168.1.11 测试下个节点的网页是否正常
3、上面的准备环境做好啦,就可以做真正的集群服务啦
先要安装软件   配置好yum 源   yum   install   ipvsadm  -y
不懂软件命令使用可以  man  ipvsadm
ipvsadm -A|E -t|u|f service-address [-s scheduler]
               [-p [timeout]] [-M netmask]
       ipvsadm -D -t|u|f service-address
       ipvsadm -C
ipvsadm -a|e -t|u|f service-address -r server-address
               [-g|i|m] [-w weight] [-x upper] [-y lower]
-A 添加集群
-E 修改集群
-C 清空集群配置
-D 删除集群
-a 添加real server 配置
-e 修改real server 配置
-d 删除real server 配置
-m 是开启nat模式
-g 是开启dr模式
-w 算法的权重
-L 列出信息
-n 查看详细信息
echo "1" > /proc/sys/net/ipv4/ip_forward  打开路由间转发功能
配置服务
Ipvsadm -A -t 172.16.1.143:80 -s rr
Ipvsadm -a -t 172.16.1.143:80 -r 192.168.1.11 -m -w 1
Ipvsadm -a -t 172.16.1.143:80 -r 192.168.1.12 -m -w 2

echo "1" > /proc/sys/net/ipv4/ip_forward  开启路由转发机制
配置就成功啦  可以先  curl http://172.16.1.118 查看是否轮询
我们还可以改变集群算法,根据业务不同进行集群切换

Ipvsadm -E -t 172.16.1.118:80 -s lc 再测试结果
各种算法的比较
静态算法
动态算法
4、对实验的升级
用nfs 共享mysql,给两台real  server  web 安装wordpress提供论坛服务
用源码编译安装搭建 lamp平台 我们可以先搭建一台,然后快速克隆三台出来
Ip地址和上面一样
Directory 提供mysql nfs 的共享
Real server 提供web服务,但是mysql是关闭的
三台虚拟主机系统均是centos6.5
这里的关键点环境的搭建lamp和mysql的授权问题
(1)用nfs建共享
vim /etc/exports
/www/html  172.16.0.0/16(no_root_squash,rw)

service nfs restart
(2)lamp的配置
搭建安装lamp
vim /etc/httpd24/http.conf
指定pid
PidFile "/var/run/httpd.pid"
支持.php的网页文件
DirectoryIndex index.php index.html
开启虚拟主机设置网页
Include /etc/httpd24/extra/httpd-vhosts.conf
支持网页的格式设置
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
(3)虚拟主机的配置
vim //etc/httpd24/extra/httpd-vhosts.conf
注释掉他的示例虚拟主机
新建虚拟主机

   DocumentRoot "/www/html"
   
    Require all granted
   
   ServerName www.dingchao.com


(4)mysql授权远程主机访问
重要的是授权本机或者远程主机访问mysql
主要的是配置文件mysql的注册时,wp-config.PHP  mysql的ip地址要填提供mysq服务本机的地址
对于授权的问题是,我们要授权给共享web服务来访问的ip地址,如果实验验证不了,我们可以现在web
客户端,远程连接一下,测试一下授权是否成功
mysql,看有没有权限访问,出错问题还有就是NFS的权限,所有具体的问题要自己结合实际情况解决问题
(5)directory 集群基于域名解析
在windows本机的hosts文件中添加可以解析linux的ip地址,这样做的意义是我们要基于域名来解析安装wordpress,
和访问
C:WindowsSystem32driversetchosts
172.16.1.143 www.dingchao.com
基于主要是因为此软件 基于ip注册访问的话,有很强的缓存,实验验证的话会出现问题
安装Wordpress就不说啦
mysql -u root -h 127.0.0.1 -p
Creat database wp;
grant all on wp.* to 'tom'@'共享web ip' identified by '1234';
(6)directory 集群配置和上面rpm配置的一样
(7)实验验证在浏览器中发表一篇文章real server1,我这里是基于域名安装的wordpress,然后在后台关闭real server1,
再在浏览其中访问word server 可以看到你在real server1 中发表的文章,及说明你实验成功
Lvs-dr
模式工作示意图

1、注意要点
Real  server 和 directory 必须要在同一网络中
Real  server 必须配置vip和directory上的一样,工作中主要是在INPUT链上添加了dip的mac地址和
real  server 的mac地址
Real  server  配置的vip必须保证,别人的arp请求vip解析不予响应,自己也不通告有vip地址,只是当
有来自directory的分配时,给予响应
基本缓解搭配和上面一样,不过这里的directory只要一块网卡,我们要把上面的directory的eth1  down掉
2、具体配置
Directory 的配置
Ifconfig eth0 192.168.100.15/24 up
Ifconfig eth0:0 192.168.100.20/24 up
Route add default gw 192.168.100.1
Ipvsadm -A -t 192.168.100.20:80 -s rr
Ipvsadm -a -t 192.168.100.20:80 -r 192.168.1.11 -g -w 1
Ipvsadm -a -t 192.168.100.20:80 -r 192.168.1.12 -g -w 2
Real server的配置
Ifconfig eth0 192.168.100.11/24 up
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 192.168.100.20  netmask 255.255.255.255 broadcast 192.168.100.20 up   自己只能跟自己通话
Route add default gw 192.168.100.1
route add -host 192.168.100.20 dev lo:0
另一节点的配置也一样
实验验证也是一样

                    


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24569-1-1.html 上篇帖子: 在centos6系统上基于session绑定实现nat模型的lvs集群,并在RS上安装Discuz论坛 下篇帖子: 如何理解lvs中DR模型的arp请求-arp_announce和arp_ignore
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表