0
点赞
收藏
分享

微信扫一扫

LVS-NAT

小云晓云 2023-02-09 阅读 88

群集,集群

1.群集分类

·        1)负载均衡:提供服务器的响应和处理能力

·        2)高可用群集:保障服务器的可靠性(解决单点故障问题)

·        3)高性能群集:多个服务器资源整个为一个服务器(提高运算能力,如超级计算机,云环境)

2.集群结构

·        1)第一层:网络群集:LVS,KEEPALIVED,HAProxy的,Nginx的(upsteam)

·        2)第二层:MySQL的集群:主从复制,读写分离,MMMM(主主复制),心跳+ DRBD + MySQL的高可用方案

·        3)第三层:存储集群:NFS + KEEPALIVED + DRDB,HA-集群(红帽),MFS(分布式文件系统)

·        4)第四层:缓存:memcacge、nosql

·        5)第五层:代理层:CDN,Squid,varnish

3.用户访问

客户端 - >代理层 - >缓存层 - > Web群集 - >存储集群 - > MySQL群集

4.负载均衡群集三种模式

1)NAT:方便配置,负载调度器压力大(适用于内网环境,需做DNAT)

2)DR:NAT,TUN综合,但需做DNAT

3)TUN:缓解调度器压力,但每个服务器都需一个公网IP(网络分散全国各地,可加快访问)

5.LVS

1)章文嵩:1995

2)ipvsadm

6.LVS调度算法

1)轮询:依顺序将请求分发给网站

2)加权轮询:根据服务器性能,动态调整权值

3)最小连接:根据服务器的连接数分发给网络

4)加权最小连接:根据服务器的性能,最小连接数动态调整权值

7.部署LVS + NAT

实验环境:

主机IP

主机名

服务器角色

192.168.100.10 (VM1)

Centos01

Web1

192.168.100.20 (VM1)

Centos02

Web2

192.168.100.30 (VM1)

192.168.192.164 (NAT)

Centos03

LVS

 

部署的Web-1

1.配置IP地址

)vim /etc/sysconfig/network-scrips/ifcfg-ens37

TYPE="Ethernet"

BOOTPROTO="static"

DEFROUTE="yes"

NAME="ens37"

DEVICE="ens37"

ONBOOT="yes"

IPADDR=192.168.100.10

NETMASK=255.255.255.0

GATMASK=255.255.255.0

systemctl restart

2.配置安装YUM

)rm -rf /etc/yum.repos.d/*

)vim /etc/yum.repos.d/local.repo

[local]

name=local

baseurl=file:///mnt

gpgcheck=0

)mount /dev/cdrom /mnt

3.部署的httpd

)yum -y install httpd

)echho "web" >/var/www/html/index.html

systemctl start httpd && systemctl enable httpd

部署的Web-2

1.配置IP地址

)vim /etc/sysconfig/network-scripts/ifcfg-ens37

TYPE="Ethernet"

BOOTPROTO="static"

DEFROUTE="yes"

NAME="ens37"

DEVICE="ens37"

ONBOOT="yes"

IPADDR=192.168.100.20

NETMASK=255.255.255.0

GATEWAY=192.168.100.30

) systemctl restart network

2.配置安装YUM

1)rm -rf /etc/yum.repos.d/*

2)vim /etc/yum.repos.d/local.repo

[local]

name=local

baseurl=file:///mnt

gpgcheck=0

3)mount /dev/cdrom /mnt       //需要挂载系统安装光盘

3.部署的httpd

)yum -y install httpd

)echo "web2" >/var/www/html/index.html

) systemctl start httpd && systemctl enable httpd

部署网关+ LVS

需两块网卡,一块VMNET1(内网),第二块桥接/NAT(外网)

1.配置IP

)vim /etc/sysconfig/network-scripts/ifcfg-ens37

TYPE="Ethernet"

BOOTPROTO="static"

DEFROUTE="yes"

NAME="ens37"

DEVICE="ens37"

ONBOOT="yes"

IPADDR=192.168.100.30

NETMASK=255.255.255.0

)cp /etc/sysconfig/network-scrips/ifcfg-ens37 /etc/sysconfig/network-scrips/ifcfg-ens33

)vim /etc/sysconfig/network-scrips/ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

DEVICE="ens33"

ONBOOT=“yes”

 LVS-NAT_NAT

)systemctl restart network

2.配置安装YUM

1)rm -rf /etc/yum.repos.d/*

2)vim /etc/yum.repos.d/local.repo

[local]

name=local

baseurl=file:///mnt

gpgcheck=0

3)mount /dev/cdrom /mnt

4)yum -y install ipvsadm

5)modprobe ip_vs                  //加载lvs模块

6)lsmod | grep ip_vs             //过滤查看是否加载lvs

3.开启路由转发

)vim /etc/sysctl.conf

net.ipv4.ip_forward =1          //开启路由转发

)sysctl -p

4.配置负载分配策略

)systemctl stop ipvsadm       //清除原LVS规则

)ipvsadm -A -t 192.168.192.164:80 -s rr     //指定192.168.192.164:80作为调度器,监听客户端请求(192.168.192.164为LVS公网IP地址)

)ipvsadm -a -t 192.168.192.164:80 -r 192.168.100.10:80 -m -w 1    //LVS使用NAT模式,将客户端web 192.168.100.10:80加入到调度器的web集群中,权值设为1

)ipvsadm -a -t 192.168.192.164:80 -r 192.168.100.20:80 -m -w 1  //LVS使用NAT模式,将客户端web2 192.168.100.20:80加入到调度器的web集群中,权值为1

ipvsadm -S >/wtc/sysconfig/ipvsadm //CentOS 7默认保存,也可执行此命令保存

systemctl start ipvsadm

详解:

-A:添加一条新的记录,记录调度器地址和端口

-a:添加一条新的记录,记录真实服务器(这里指的Web服务器)地址和端口

-t:指明调度器提供的是TCP服务

-s:指定算法;常用选项rr,wrr,lc,wlc,lblc,lblcr,dh,sh,sed,nq

-r:指定真实服务器(这里指的Web服务器)的地址和端口

-m:指定LVS的工作模式为NAT模式;还有-i(指定工作模式为TUN隧道模式), - 克(指定工作模式为DR直接路由模式)

-w:指定真实服务器(这里指的Web服务器)的权值,值越大越优先分配

测试

IE访问192.168.192.164(LVS公网地址)

如果不出效果,关闭web1和web2的公网IP网卡

ipvsadm -L -n //查看调度情况


举报

相关推荐

0 条评论