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

[经验分享] LVS的DR模型和NAT模型

[复制链接]

尚未签到

发表于 2019-1-4 09:02:38 | 显示全部楼层 |阅读模式
  一:集群的定义
  集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群系统的主要优点:高可扩展性、高可用性、高性能、高性价比。
  二、集群类型   

1.scale on:向上扩展     
  将服务器的内存容量调大和cpu数量增加些(简单说升级服务器硬件)   
缺点:在一定的范围之内它的性能是上升的趋势,但是超出范围之后就是下降的趋势。因为随着它的cpu的个数增加我们需要给我们的cpu仲裁,而且随着cpu个数的增加资源竞争性越大。

2.scale out:向外扩展   
  一台服务器应付不过来,我们就再增加一台服务器。   
优点:增减服务器很方便,而且没有向上扩展随着增加性能下降。   
向外扩张的工作模式:当客户端向服务器端发送请求,服务器端只拿出来一台服务器来相应我们的客户端的请求。

(1).LB:Load Balancing:负载均衡集群
  负载均衡集群中有一个分发器或者叫调度器,我们将其称之为Director,它处在多台服务器的上面,分发器根据内部锁 定义的规则或调度方式从下面的服务器群中选择一个以此来响应客户端发送的请求。
(2).HA:High Availability 高可用集群   
  高可用集群是服务的可用性比较高,当我们某台服务器死机后不会造成我们的服务不可用。其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断。一般来说我们集群中工作在前端(分发器)的服务器都会对我们的后端服务器做一个健康检查,如果发现我们服务器当机就不会对其在做转发。

衡量标准:可用性=在线时间/(在线时间+故障处理时间)
99%、99.9%、99.99%、99.999%
(3).HP:Hight Performance 高性能   
  高性能的集群是当某一个任务量非常大的时候,我们做一个集群共同来完成这一个任务。这种处理方式我们称为并行处理集群,并行处理集群是将大任务划分为小任务,分别进行处理的机制。一般这样的集群用来科学研究与大数据运算等方面的工作。现在比较火的Hadoop就是使用的并行处理集群。

说明:三种集群之间的区别   
负载均衡着重在于提供服务并发处理能力的集群,高可用以提升服务在线的能力的集群。高性能着重用于处理一个海量任务。

  
  三:LB负载均衡的NAT和DR模型。
    术语解释
  
.LVS中每个主机IP地址的定义

  • VIP:Director用来向客户端提供服务的IP地址,也是DNS解析的IP
  • RIP:集群节点(后台真正提供服务的服务器)所使用的IP地址
  • DIP:Director用来和RIP进行交互的IP地址
  • CIP:公网IP,客户端使用的I
  

    1)NAT模型
  

  

  


  • 集群节点跟director必须在同一个网段上面
  • RIP通常是私有地址,仅用于个集群
  • 支持口映射
  • realsever可以使用任意OS(操作系统)
  • 较大规模应用场景中director已成为系统瓶颈
  notice:负载均衡调度器内网络转发要打开cat /proc/sys/net/ipv4/ip_forward
  
  2)DR模型

  
  


  • 集群节点跟director必须在同一个物理网络中
  • RIP可以使用公网地址(一般不这样用).实现便捷的远程控制服务器
  • RIP可以使用私网地址,通过NAT转换经路由器转发出去。

  • director只负责处理入站请求,相应报文则有realserver直接发往客户端
  • realserver不能将网关指向DIP(减轻director的服务压力)
  • director不支持端口映射
  • 大多数操作系统都能应用在real server上
  • DR比NAT能处理更多的real server
  

  一:实验目的

  利用LVS的NAT模型实现discuz负载均衡
  二:实验拓扑图

  WEB服务器与PHP服务器在同一网段内,mysql服务器同时起着LVS负载均担作用。

  

  三:搭建WEB服务器
  本次WEB服务器采用编译安装服务,编译过程请参考LAMP平台编译。接下来配置WEB服务器主配置文件。
vim /etc/httpd24/extra/httpd-vhosts.conf  #前面的路径为编译时指定的路径。
ifconfig eth0 192.168.1.16/24 up           #修改主机的IP地址
ifconfig eth0:0 192.168.1.17/24 up
route add defauit gw 192.168.1.1           #添加默认路由
   
    #虚拟主机一
    DocumentRoot "/mnt/web"
    ServerName www.llhdiscuz.com
    ProxyRequests Off   
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.2:9000/nfs/web/$1 #指向PHP服务器
    ErrorLog "logs/pma_error_log"
    CustomLog "logs/pma_access_log" common
   
        Options none
        AllowOverride none
        Require all granted
   

   #虚拟主机二
    DocumentRoot "/mnt/web"
    ServerName www.llhdiscuz.com
    ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.2:9000/nfs/web/$1  #指向PHP服务器
    ErrorLog "logs/pma_error_log"
    CustomLog "logs/pma_access_log" common
   
         Require all granted
   

   2)要想启用web服务器的虚拟主机功能需要打开主配置文件相应的模块。
vim /etc/httpd24/httpd.conf
Include /etc/httpd24/extra/httpd-vhosts.conf #启用此模块
  四:搭建PHP服务器
  因为此次编译安装的PHP服务器是在单独的一台主机上,所以编译安装的模块选择中要把--enable-fpm模块编译上去。如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),从PHP 5.4开始它就是默认设置了。其他的编译过程请参考LAMP平台编辑博客。
   由于本次编译启动了fpm模块,要提供fpm配置文件。
1)配置php-fpm
为php-fpm提供SysV init脚本,并将其添加至服务列表:
# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
2)为php-fpm提供配置文件:
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
编辑php-fpm的配置文件:
# vim /usr/local/php/etc/php-fpm.conf
3)配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
listen = 192.168.1.2:9000 #修改Mysql的监听IP地址
ifconfig eth0 192.168.1.2/24 up            #修改主机的IP地址
route add default gw 192.168.1.1           #添加默认路由  :提供NFS服务器

    打开NFS主配置文件
  
vim /etc/exports  
/nfs/web 192.168.1.16(no_root_squash,rw,no_all_squash)192.168.1.17(no_root_squash,rw,no_a
ll_squash) 192.168.1.2(no_root_squash,rw,no_all_squash)
#172.16.16.2 为NFS文件服务器
#在web服务器上和PHP服务器上挂载NFS文件服务
mount -t nfs 172.16.16.2:/nfs/web  /mnt/web  在web服务器上挂载
mount -t nfs 172.16.16.2:/nfs/web  /nfs/web  在PHP服务器上挂载
   六:搭建mysql服务器
    mysql搭建请参考编译安装LAMP博客
  七:提供LVS服务
yum -y install ipvsadm  #安装ipvs
ipvsadm -A -t 172.16.16.2:80 -s rr
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.16 -m
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.17 -m
查看配置信息
[root@localhost ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.16.2:80 rr
  -> 192.168.1.16:80              Masq    1      0          0         
  -> 192.168.1.17:80              Masq    1      0          0  一:实验目的
  利用DR模型实现discuz负载均衡


  二:实验拓扑图
  
  1)配置director服务器
  director服务器上安装两块网卡一块位eth0他的IP地址为VIP:172.16.16.2,另一块的IP地址为DIP:192.168.1.13
ifconfig eth0 172.16.16.2/16 up
   ifconfig eth1 192.168.1.13/24 up
   sysctl -p #查看net.ipv4.ip_forward是否为1.  2)配置RIP1服务
因为RIP服务器配置的有VIP地址所以外面有请求VIP时他也会进行相应,而我们这里是为了实现DR转发,不能让他进行响应,我们需要对RIP的端口信息进行隐藏。
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore  #忽略其他端口发来的请求信息
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce #不广播自己的端口信息
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  
ifconfig eth0 192.168.1.16/24 up
ifconfig lo:0 172.16.16.2 netmask 255.255.255.255 broadcast 172.16.16.2
route add -host 172.16.16.2 dev lo:0  响应的信息通过lo:0端口 ,为了使响应的IP地址为VIP  3)配置RIP2服务
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore  #忽略其他端口发来的请求信息
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce #不广播自己的端口信息
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  
ifconfig eth0 192.168.1.2/24 up
ifconfig lo:0 172.16.16.2 netmask 255.255.255.255 broadcast 172.16.16.2
route add -host 172.16.16.2 dev lo:0  响应的信息通过lo:0端口 ,为了使响应的IP地址为VIP  4)打开两个RIP内的WEB服务
service httpd start
ss -tnl #查看80端口是否已经启动
给RIP1一个测试网页
vim  /var/www/html/index.html
  www.helloword.com   #给RIP1一个测试页面
curl http://172.16.16.2  #测试一下能否访问
给RIP2一个测试网页
vim /var/www/html/index.html
  helloword   #给RIP2一个测试页面
curl http://172.16.16.2  

  5) 配置DR协议
在dr服务器上配置如下信息
ipvsadm -A -t 172.16.16.2:80 -s rr
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.16 -g
ipvsadm -a -t 172.16.16.2:80 -r 192.168.1.2 -g
[root@localhost ~]# ipvsadm -l -n       #查看配置信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.16.2:80 rr
  -> 192.168.1.2:80               Route   1      0          0         
  -> 192.168.1.16:80              Route   1      0          0  三:测试访问
  



  OK 我们的LVS基于NAT模型和DR模型试验做好了。




运维网声明 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-659163-1-1.html 上篇帖子: Linux中使用LVS实现负载均衡 下篇帖子: LVS 三种模型集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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