LVS-NAT/DR模型

1.使用NAT模型的TCP协议类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;

2.使用DR模型的FWM类型的lvs服务负载均衡一个php应用,如Discuz!论坛或者phpMyAdmin;

注意:以上两个集群需要考虑两个问题:

1) 是否需要会话保持;

2) 是否需要共享存储;

-------------------------------------------------------------------------------------------

1.使用NAT模型负载均衡wordpress


环境部署:

serverA :调度器     外网:172.16.1.2   内网:192.168.100.7

serverB :rs1       内网:192.168.100.8

serverC :rs2       内网:192.168.100.9

serverD :nfs服务器   内网:192.168.100.6

大致拓扑图:

注意:

(1)配置之前把所有主机的防火墙和SElinux关闭,方便实验

~]# iptables -F && setenforce 0 && systemctl stop firewalld.service

(2)同步时间

时间同步是最重要的环节,Director和后台的RealServer的时间必须同步,并且时间差小于1秒钟。 本次我们使用Director服务器作为时间服务器,全部都向它来同步时间。

~]# service ntpd restart # 重启ntp服务器

Shutting down ntpd: [ OK ]

Starting ntpd: [ OK ]

~]# ntpdate 192.168.100.7 # 客户端同步三台都要同步这里我们就不多说了

rs1配置

安装服务 yum -y install httpd php php-mysql

设置网关

route add default gw 192.168.100.7

配置主页信息

echo "rs1.zrs.com" > /var/www/html/index.html

启动服务

systemctl start httpd.service

查看一下

~]# curl http://localhost

rs1.zrs.com

rs2配置

安装服务 yum -y install httpd php php-mysql

设置网关

route add default gw 192.168.100.7

配置主页信息

echo "rs2.zrs.com" > /var/www/html/index.html

启动服务

systemctl start httpd.service

查看一下

~]# curl http://localhost

rs2.zrs.com

调度器配置

测试rs1和rs2主机能否正常通信:

ping 192.168.100.8

ping 192.168.100.9

curl http://192.168.10.8

curl http://192.168.10.9

安装lvs软件包 yum -y install ipvsadm

开启核心转发功能

~]# echo 1 > /proc/sys/net/ipv4/ip_forward

创建集群

~]# ipvsadm -A -t 172.16.1.2:80 -s rr

~]# ipvsadm -a -t 172.16.1.2:80 -r 192.168.100.8 -m

~]# ipvsadm -a -t 172.16.1.2:80 -r 192.168.100.9 -m

查看集群

~]# 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.1.2:80 rr

-> 192.168.100.8:80             Masq    1      0          0

-> 192.168.100.9:80             Masq    1      0          0

由于这个集群使用的是rr(轮询)算法,所以rs1和rs2交替被访问

客户端测试

循环测试

~]# for i in {1..10};do curl http://172.16.1.2 ;done

rs1.zrs.com

rs2.zrs.com

rs1.zrs.com

rs2.zrs.com

rs1.zrs.com

rs2.zrs.com

rs1.zrs.com

rs2.zrs.com

rs1.zrs.com

rs2.zrs.com

可以保存一下规则,重启后可继续适用

ipvsadm -S > /etc/sysconfig/ipvsadm.web

重载规则

ipvsadm -R < /etc/sysconfig/ipvsadm.web

nfs服务器配置

1.安装所需软件包

yum -y install nfs-utils

2.准备用户apache(访问NFS服务时映射为的用户)

useradd -u 48 apache

3.准备需要导出的目录,且其属主、属组为apahce

install -o apache -g apache -d /data/application/web

4.下载wordpress程序包并解压至/data/application/web目录下,并将其属主、属组改为apache,wordpress目录下的wp-content目录的权限改为777(上传图片时需要写权限)

unzip wordpress-4.3.1.-zh_CN.zip

mv wordpress /data/application/web

cd /data/application/web

chown -R apache.apache wordpress

chmod 777 wordpress/wp-content

5.在wordpress目录下,修改配置文件 :

mv wp-config-sample.php wp-config.php

vim wp-config.php

/** WordPress数据库的名称*/

define('DB_NAME', 'wpdb');

/** MySQL数据库用户名 */

define('DB_USER', 'wpuser');

/** MySQL数据库密码 */

define('DB_PASSWORD', '123456');

/** MySQL主机 */

define('DB_HOST', '192.168.100.6');

6.编辑nfs配置文件,将/data/application/web目录导出,允许192.168.10.0/24网段连接,导出属性为rw,async,用户映射为apache。

vim /etc/exports

/data/application/web 192.168.10.0/24(rw,async,anonuid=48,anongid=48)

7.启动mysql服务,创建数据库wpdb和dzdb,并分别授权用户wpuser对wpdb数据库下的所有表拥有所有权限,dzuser对dzdb数据库下的所有表拥有所有权限;

yum -y install mariadb-server php-mysql

systemctl start mariadb.service

MariaDB [(none)]> CREATE DATABASE wpdb;

MariaDB [(none)]> grant all on wpdb.* to 'wpuser'@'192.168.%.%' identified by '123456';

MariaDB [(none)]> FLUSH PRIVILEGES;

rs1和rs2

创建session目录,存放会话,更改属组属主为apache

~]# ll -d /var/lib/php/session/

drwxr-xr-x. 2 apache apache 4096 10月 21 10:28 /var/lib/php/session/

将D主机nfs服务器上导出的目录挂载至/var/www/html目录下

mount.nfs 192.168.100.6:/data/application/web /var/www/html

客户端测试

-------------------------------------------------------------------------------------------


2.使用DR模型的FWM类型的lvs服务负载均衡wordpress

环境部署:

serverA :调度器      VIP:172.16.1.2  DIP:172.16.1.100

serverB :rs1        RIP1:172.16.1.3

serverC :rs2        RIP2:172.16.1.4

serverD :nfs服务器    nfs:172.16.1.5

大致拓扑图:

注意:

和上面的nat模型一样需要注意时间同步和防火墙及SElinux的设置,在这里就不再赘述。

调度器主机:

安装一个仅主机的网卡地址为172.16.1.100,此ip地址为DIP

VIP配置在接口的别名上,如下配置

[[email protected] ~]# ifconfig eno16777736:0 172.16.1.2 netmask 255.255.255.255  broadcast 172.16.1.2 up

安装lvs软件包 yum -y install ipvsadm

集群配置

设置FWH规则:

[[email protected] ~]# iptables -t mangle -A PREROUTING -p tcp --dport 80 -d 172.16.1.2 -j MARK --set-mark 6

[[email protected] ~]# ipvsadm -A -f 6 -s rr

[[email protected] ~]# ipvsadm -a -f 6 -r 172.16.1.3:80 -g

[[email protected] ~]# ipvsadm -a -f 6 -r 172.16.1.4:80 -g

[[email protected] ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

FWM  6 rr

-> 172.16.1.3:80                Route   1      0          0

-> 172.16.1.4:80                Route   1      0          0

开启核心转发功能

~]# echo 1 > /proc/sys/net/ipv4/ip_forward

rs1&rs2配置

安装服务 yum -y install httpd php php-mysql

配置主页信息

echo "<h1>rs1.zrs.com</h1>" > /var/www/html/index.html

echo "<h1>rs2.zrs.com</h1>" > /var/www/html/index.html

启动服务

systemctl start httpd.service

在DR模型中,各个主机均需要配置VIP;为了解决地址冲突可以修改对应的内核参数,来限制ARP的通告和应答的级别

arp_ignore:

0:默认值,对于从任何网络接口接收到对本机任意IP地址的ARP查询请求均予以回应;

1:只应答目标IP地址是入站接口上配置的IP地址所在网段的IP地址的ARP请求;

2:只应答目标IP地址是入站接口上配置的IP地址所在网段的IP地址的ARP请求,且来访IP地址也必须与该接口的IP地址在同一子网中;

3:不响应该网络接口的ARP请求,而只对设置为全局的IP地址做应答;

4-7:保留;

8:不应答所有的ARP请求;

arp_announce:

0:默认值,将本机所有接口的信息向所有接口所连接的网络中通告;

1:尽量避免向与本接口不同网络中的其他接口通告;

2:绝对避免向非本网络的主机通告;

可以用脚本实现

~]# vim arp_para.sh

#!/bin/bash

#

VIP=172.16.1.2

MASK=255.255.255.255

case $1 in

start)

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

ifconfig lo:0 $VIP netmask $MASK  broadcast $VIP up

route add -host $VIP dev lo:0

;;

stop)

ifconfig lo:0 down

echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce

echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

;;

*)

echo "Usage: $(basename $0) { start | stop }"

;;

esac

~]# chmod +x arp_para.sh ///赋予执行权限

~]# ./arp_para.sh start  ///运行脚本环境即可配置成功

客户端测试

nfs共享存储服务器配置

和上面的nat模型基本一样,在这里就不再赘述,需要注意的是更改/etc/exports此文件中的网段为本次dr模型实验的网段。

最后同样将共享目录分别挂载到rs1和rs2中,可以用mount命令查看挂载信息:

客户端测试

原文地址:http://blog.51cto.com/shenmengdong/2090682

时间: 2024-08-29 20:35:06

LVS-NAT/DR模型的相关文章

位于2个网段的LVS的DR模型实验

实验规划说明: Director两块网卡,IP地址分配如下: 1.本地公网IP(eth0):192.168.112.101 2.vip(eth1:1):192.168.112.100 3.dip(eth1):192.168.201.7 Realsever1两块网卡,IP地址分配如下: 1.rip(eth0):192.168.201.8 2.vip(lo:0):192.168.112.100 3.本地IP(eth1):192.168.112.8  //通过该IP以便从Realsever1可以访问C

Linux实验报告-构建一个LVS的DR模型

Linux实验报告-构建一个LVS的DR模型 实验背景: 学习笔记,构建一个LVS的DR模型 实验目的: 了解LVS的DR模型工作原理 实现一个LVS的DR模型的实验 实验环境: Vmware Workstation 9,CentOS 6.4  实验步骤: 1,实验目的规划如下模型,CIP.VIP.DIP与RIP在同一网段 2.RS1上配置如下: 配置内核参数: #echo 1 > /prco/sys/net/ipv4/conf/lo/arp_ignore                    

LVS简单实现NAT&amp;DR模型

LVS:Linux Virtual Server  一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org. 现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS是LB集群的一种软件实现方案,类似的有haproxy,nginx,ats(apache

LVS基础详解和NAT/DR模型的实现

LVS:Linux Virtual Server 所谓虚拟的服务就是,当客户端请求服务时,将服务在前端调度器上,通过一定方式负载到后端多台服务器上,但对于客户端来说是不可见的,像在访问同一台服务器一样,这就是虚拟的意思 原理 ipvs:使用LVS服务时,在linux内核当中的一个过滤框架,作用在Input链上,通过解析用户请求的ip和端口号,判断是否是集群服务(若较老的版本内核中没有内置则需自行编译安装) 当用户请求到达,进入调度器内核空间,由于请求的是本地地址,转发到Input链,通过请求的i

LVS NAT/DR

LVS介绍:http://www.linuxvirtualserver.org/zh/lvs3.html DR 工作流: HOST发送服务请求报文(源IP为HOST IP,目的IP为VSIP) General Device收到请求后转发给LB Device(Server上的VSIP不会响应ARP请求) LB Device 接收到请求报文后,借助持续性功能或者调度算法计算出应该讲请求分发给哪台Server LB Device 分发报文(源IP为HOST IP,目的IP为VSIP,目的MAC为Ser

LVS/NAT/DR/TUN三种模式

集群简介 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多. 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务LVS在企业架构中的位置: 以上的架构只是众多企业里

lvs+srs(dr模型)

参考: https://my.oschina.net/fengjihu/blog/416883 (srs集群模式) http://blog.csdn.net/reblue520/article/details/50857078 (lvs负载均衡) http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html (arp_ignore和arp_announce) http://www.linuxvirtualserver.org/docs

LVS基于DR模型实现负载均衡集群实验

实验拓扑: 实验规划: Director: eth0   DIP: 192.168.1.40 eth0:0 VIP: 192.168.1.41 RS1: eth0  RIP1: 192.168.1.20 lo:0  VIP: 192.168.1.41 RS2: eth0  RIP2: 192.168.1.21 lo:0  VIP: 192.168.1.41 实验步骤: 在各RS上部署web服务 yum install httpd -y echo "server is working."

集群--LVS的DR模型配置

1.查看内核是否有IPVS内核模块 grep -i 'ip_vs' /boot/config-2.6.32-431.el6.x86_64 或者 Centos6.5内核已经自带安装了lvs 2.安装ipvsadm内核中的lvs是通过ipvsadm来进行管理的 yum install -y ipvsadm 3.环境准备 管理IP地址 角色 备注 192.168.1.114 调度器(Director) 对外提供VIP服务的地址为192.168.1.88 192.168.1.115 RS1   192.

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同