LB lvs-nat lvs-dr 的理解及实验

Lvs-nat

负载均衡nat模式工作原理讲解

wps_clip_image-28707

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

wps_clip_image-4637

echo "1" > /proc/sys/net/ipv4/ip_forward  开启路由转发机制

配置就成功啦  可以先  curl http://172.16.1.118 查看是否轮询

我们还可以改变集群算法,根据业务不同进行集群切换

wps_clip_image-4656

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源码编译安装的话请看http://1983939925.blog.51cto.com/8400375/1540799

这里的关键点环境的搭建lamp和mysql的授权问题

(1)用nfs建共享

vim /etc/exports

/www/html  172.16.0.0/16(no_root_squash,rw)

wps_clip_image-17891

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

注释掉他的示例虚拟主机

新建虚拟主机

<VirtualHost *:80>

   DocumentRoot "/www/html"

   <Directory "/www/html">

    Require all granted

   </Directory>

   ServerName www.dingchao.com

</VirtualHost>

wps_clip_image-7473

(4)mysql授权远程主机访问

重要的是授权本机或者远程主机访问mysql

主要的是配置文件mysql的注册时,wp-config.PHP  mysql的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

模式工作示意图

wKiom1QN7B_TNjr-AAFpyI2bDrA934.jpg

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

另一节点的配置也一样

实验验证也是一样

wps_clip_image-29065

你可能感兴趣的:(lb,lvs-dr,lvs-nat,的理解及实验)