搭建基于NAT、DB模式的web集群

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一

可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。

我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。

在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,

我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,

我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN(Virtual Server via IP Tunneling),和通过直接路由实现

虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。

VS/NATVS/TUNVS/DR技术是LVS集群中实现的三种IP负载均衡技术。

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

LBC      负载均衡群集

HA     高可用群集

HPC    高性能运算群集


1、结构

负载调度器:分配用户请求,提供服务器池内的主机健康状态检查

服务器池:真正处理用户请求的多台主机组成的集群。

共享存储:通过网络提供数据给服务器池中的节点主机

2、工作模式

NAT:地址转换

TUN:隧道模式

DR:路由模式

3、调度算法:

轮询

加权轮询

最少连接

加权最少连接

加权:分配用户请求之前,检测目标主机的性能是否达到瓶颈。




实验环境:

两台Web-Server,一台负载调度器(Director),一台NFS共享服务器(可在web节点实现)

网络配置:

VIP(Virtual IP):192.168.66.1/24

web-node1:192.168.66.145/24

web-node2:192.168.66.146/24

NFS-Server:192.168.66.150/24

公网IP:172.31.26.16/24



搭建VS/NAT步骤:


1、配置内网主机        -- (所有内网机都指向网关)


a、配置共享存储服务器

vim /etc/exports

/share192.168.66.0/24(ro,sync)        --哪个网段ip可以访问该共享(只读,实时同步)

servie rpcbind restart

service  nfs restart

showmount192.168.66.100                -- 查看共享

b、配置服务器池节点主机

cd /var/www/html

mount -t nfs 共享存储IP:共享目录 /var/www/html

service httpd start

第二台手动创建首页文件进行测试

2、配置负载调度器

查询内核是否支持

modprobe ip_vs

cat /proc/net/ip_vs

安装ipvsadm软件

rpm -ivh ipvsadm

查看版本

ipvsadm -v

开启IPv4路由转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

配置防火墙

iptables -t nat -A POSTROUTING -o 外网接口名 -s 内网网段 -j SNAT --to-source 外网IP地址

ipvsadm -A -t 外网IP:80 -s rr                                        --  -A代表添加负载调度器;-s代表使用的算法;rr代表轮询

ipvsadm -a -t 外网IP:80 -r 网站节点1:80 -m                  --  -m代表NAT模式

ipvsadm -a -t 外网IP:80 -r 网站节点2:80 -m

查看所配置的信息

ipvsadm -Ln

保存并设置自启

service ipvsadm save

chkconfig ipvsadm on

3、测试

访问负载调度器的外网卡IP,重复刷新可看到效果。




搭建VS/DR步骤:


1、负载调度器配置:


service NetworkManager stop

配置虚拟IP:

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth0:0

vim ifcfg-eth0:0

DEVICE=eth0:0

IPADDR=虚拟IP

ifup eth0:0

配置内核参数,使其不发广播包,以免造成ip冲突

vim /etc/sysctl.conf

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.eth0.send_redirects = 0

sysctl -p

modprobe ip_vs

cat /proc/net/ip_vs

安装并配置ipvsadm

rpm -ivh ipvsadm

ipvsadm -v

ipvsadm -A -t 虚拟IP:80 -s rr                             --  -A代表添加负载调度器;-s代表使用的算法;rr代表轮询

ipvsadm -a -t 虚拟IP:80 -r 网站节点1:80 -g       --  -g代表DB模式

ipvsadm -a -t 虚拟IP:80 -r 网站节点2:80 -g

ipvsadm -Ln

service ipvsadm save

chkconfig ipvsadm on


2、网站服务器1配置:


service NetworkManager stop

拷贝并配置虚拟IP

cd /etc/sysconfig/network-scripts/

cp ifcfg-loifcfg-lo:0

DEVICE=lo:0

IPADDR=虚拟IP

NETMASK=255.255.255.255

修改内核参数,防止ip冲突

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

sysctl -p

指一条路由,代表所有要访问该虚拟ip的主机都通过lo:0网卡访问

route add -host 虚拟IP dev lo:0

mount -t nfs 共享存储:共享目录 /var/www/html

service httpd start


3、网站节点2配置:


service NetworkManager stop

拷贝并配置虚拟IP

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

DEVICE=lo:0

IPADDR=虚拟IP

NETMASK=255.255.255.255

修改内核参数,防止ip冲突

vim /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

sysctl -p

指一条路由,代表所有要访问该虚拟ip的主机都通过lo:0网卡访问

route add -host 虚拟IP dev lo:0

vim /var/www/html/index.html

"hello world"

service httpd start

4、共享存储配置:


共享存储

vim/etc/exports

/share内网网段(ro,sync)

servie rpcbind restart

service  nfs restart

你可能感兴趣的:(搭建基于NAT、DB模式的web集群)