ezeke 发表于 2019-1-2 13:35:09

LB lvs

  Lvs-nat
  负载均衡nat模式工作原理讲解
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198073UvrA.png
  Lvs是LB 的实现方式
  LB :负载均衡
  Lvs-nat
  Directory 负载均衡调度器
  Real server 真正负载集群的总称
  请求报文
  首先客户端请求一个http资源,经过路由器到达directory的vip 经过路由选择,送到INPUT链上去,INPUT链
  查看他的请求资源是个本机,但是本机是个集群,本机并没有web服务提供,根据配置规则,就修改请求资源的目
  标地址为真正的real server rip 送给dip,dip查看是送到real server xx的就送给xx啦
  响应报文
  Real serverxx查看请求的资源,马上就开始构建响应报文,构建完响应报文后,通过dip送到directory,dip通过修
  改源端口,dip直接从forword链转发到vip,vip在转发给客户端
  工作示意图如上图
  Vmware1   directorynfs 共享mysql   eth0:192.168.1.118/24   eth1:172.16.1.143/16
  Vmware2   lampweb   host1   eth0:192.168.1.11/24   关闭mysql安装wordpress
  Vmware3   lampweb   host2   eth1:192.168.1.12/24   关闭mysql安装Wordpress
  系统均为centos6.5
  配置好ip地址和建立好网页,ping 一下看主机是否在线
  1、节点realserver的配置
  Ifconfig eth0192.168.1.11/24 up使用虚拟通道3
  Routeadddefaultgw192.168.1.11
  Yuminstallhttpdmysql-serverphpphp-mysqlphp-gd -y
  Vim/var/www/html提供网页文件
  Servicehttpdrestart
  节点二一样配置
  2、directory的配置
  首先添加一张网卡,配置能让linux正常识别到
  Ifconfig eth0 192.168.1.118/24 up   桥接
  Ifconfig eth1 172.16.1.143/16 up使用虚拟通道3
  Yuminstallhttpdmysql-serverphpphp-mysqlphp-gd -y
  此时先在directory 测试一下 ping 各节点
  Curlhttp:// 192.168.1.11 测试下个节点的网页是否正常
  3、上面的准备环境做好啦,就可以做真正的集群服务啦
  先要安装软件   配置好yum 源   yum   install   ipvsadm-y
  不懂软件命令使用可以manipvsadm
  ipvsadm -A|E -t|u|f service-address [-s scheduler]
  [-p ] [-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
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198076gSK0.png
  echo "1" > /proc/sys/net/ipv4/ip_forward开启路由转发机制
  配置就成功啦可以先curl http://172.16.1.118 查看是否轮询
  我们还可以改变集群算法,根据业务不同进行集群切换
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198079q6Xg.png
  Ipvsadm -E -t 172.16.1.118:80 -s lc 再测试结果
  各种算法的比较
  静态算法
  动态算法
  4、对实验的升级
  用nfs 共享mysql,给两台realserverweb 安装wordpress提供论坛服务
  用源码编译安装搭建 lamp平台 我们可以先搭建一台,然后快速克隆三台出来
  Ip地址和上面一样
  Directory 提供mysql nfs 的共享
  Real server 提供web服务,但是mysql是关闭的
  三台虚拟主机系统均是centos6.5
  不会lamp源码编译安装的话请看http://1983939925.blog.运维网.com/8400375/1540799
  这里的关键点环境的搭建lamp和mysql的授权问题
  (1)用nfs建共享
  vim /etc/exports
  /www/html172.16.0.0/16(no_root_squash,rw)
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198081lXT6.png
  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
  
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198089vfSj.png
  (4)mysql授权远程主机访问
  重要的是授权本机或者远程主机访问mysql
  主要的是配置文件mysql的注册时,wp-config.PHPmysql的ip地址要填提供mysq服务本机的地址
  对于授权的问题是,我们要授权给共享web服务来访问的ip地址,如果实验验证不了,我们可以现在web
  客户端,远程连接一下,测试一下授权是否成功
  mysql,看有没有权限访问,出错问题还有就是NFS的权限,所有具体的问题要自己结合实际情况解决问题
  (5)directory 集群基于域名解析
  在windows本机的hosts文件中添加可以解析linux的ip地址,这样做的意义是我们要基于域名来解析安装wordpress,
  和访问
  C:\Windows\System32\drivers\etc\hosts
  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
  模式工作示意图
http://s3.运维网.com/wyfs02/M02/49/07/wKiom1QN7B_TNjr-AAFpyI2bDrA934.jpg
  1、注意要点
  Realserver 和 directory 必须要在同一网络中
  Realserver 必须配置vip和directory上的一样,工作中主要是在INPUT链上添加了dip的mac地址和
  realserver 的mac地址
  Realserver配置的vip必须保证,别人的arp请求vip解析不予响应,自己也不通告有vip地址,只是当
  有来自directory的分配时,给予响应
  基本缓解搭配和上面一样,不过这里的directory只要一块网卡,我们要把上面的directory的eth1down掉
  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.20netmask 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
  另一节点的配置也一样
  实验验证也是一样
http://1983939925.blog.运维网.com/attachment/201409/8/8400375_1410198107KZ4F.png



页: [1]
查看完整版本: LB lvs