赞
踩
Cluster
每种群集都至少包含两台服务器,对外表现为一个整体,只提供一个访问入口
负载均衡群集(Load Balance Cluster)
高可用群集(High Availability Cluster)
高性能运算群集(High Performance Computer Cluster)
不同类型的群集在必要时可以合并,如高可用的负载均衡群集
典型的负载均衡群集中包括三个层次的组件
第一层,负载调度器
第二层,服务器池
第三层,共享存储
基于IP的负载均衡模式中,常见的三种工作模式有
地址转换(Network Address Translation)
IP 隧道(IP Tunnel)
直接路由(Direct Routing)
NAT方式只需要一个公网 IP地址,从而成为最易用的一种负载均衡模式,许多硬件负载均衡设备就采用这种方式
优势
相比较而言DR 模式和 TUN 模式
优势
缺点
Linux Virtual Server
最常用的四种算法
轮询(RoundRobin)
加权轮询(Weighted Round Robin)
最少连接(Least Connections)
加权最少连接(Weighted Least Connections)
ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删除服务器节点,以及查看群集的运行状态。
实验环境
各web节点需要设置网关,NFS不需要
CentOS 系统,手动加载 ip_vs 模块并查看信息
- //加载 ip_vs模块
- [root@localhost ~]# modprobe ip_vs
- //查看 ip_vs 版本信息
- [root@localhost ~]# cat /proc/net/ip_vs
- IP Virtual Server version 1.2.1(size=4096)
- Prot LocalAddress:Port Scheduler Flags
- ->RemoteAddress:Port Forward Weight ActiveConn InActConn
配置负载调度器
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# systemctl stop firewalld
安装 ipvsadm
[root@localhost ~]# yum -y install ipvsadm
查看 ipvsadm 版本
- [root@localhost ~]# ipvsadm -v
- ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
添加配置文件
- [root@localhost ~]# vim /etc/sysctl.conf
- ## 添加下面代码
- net.ipv4.ip_forward = 1
语句生效
[root@localhost ~]# sysctl -p
配置新策略
[root@localhost ~]# ipvsadm -C
创建虚拟服务器
[root@localhost ~]# ipvsadm -A -t 172.16.16.172:80 -s rr
添加服务器节点
- [root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.102:80 -m -w 1
- [root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.103:80 -m -w 1
查看当前策略信息
- [root@localhost ~]# ipvsadm-save
- -A -t localhost.localdomain:http -s rr
- -a -t localhost.localdomain:http -r 192.168.10.102:http -m -w 1
- -a -t localhost.localdomain:http -r 192.168.10.103:http -m -w 1
-s:指定调度算法
rr:轮询
wrr:加权轮询
lc:最小链接数
wlc:加权最小连接数
(
-A 添加一个新的集群服务;
-E 修改一个己有的集群服务;
-D 删除指定的集群服务;
-a 向指定的集群服务中添加RS及属性;
-e 修改RS属性;
-t 指定为tcp协议;
-u 指定为udp协议;
-s 调度方法,默认为wlc;
-w 指定权重,默认为1;
-g Gateway, DR模型;
-i ipip, TUN模型;
-m masquerade, NAT模型;
-S 保存ipvsadm设定的规则策略,默认保存在/etc/sysconfig/ipvsadm中;
-R 载入己保存的规则策略,默认加载/etc/sysconfig/ipvsadm;
-C 清除所有集群服务;
-Z 清除所有记数器;
-L 显示当前己有集群服务,能通过相应的options查看不同状态信息;
-r 指定真实服务器的地址)
启动 ipvsadm
[root@localhost ~]# systemctl enable ipvsadm
配置 web 节点服务器
在两个 web 节点上安装 httpd
- [root@localhost ~]# yum -y install httpd
- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# yum -y install nfs-utils
创建测试页
- [root@localhost ~]# vim /var/www/html/index.html
- LVS test1
启动 httpd 服务
- [root@localhost ~]# systemctl start httpd
- [root@localhost ~]# systemctl enable httpd
客户端测试 LVS 群集
[root@localhost ~]# curl 172.16.16.172
在 LVS 上产看调度信息
- [root@localhost ~]# ipvsadm -ln
- IP Virtual Server version 1.2.1 (size=4096)
- Prot LocalAddress:Port Scheduler Flags
- -> RemoteAddress:Port Forward Weight ActiveConn InActConn
- TCP 172.16.16.172:80 rr
- -> 192.168.10.102:80 Masq 1 0 0
- -> 192.168.10.103:80 Masq 1 0 0
ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED
InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接
linux 做客户端时可以用以下代码进行测试
[root@localhost ~]# for i in $(seq 10);do curl 172.16.16.172;done
NFS
CentOS7系统中,需要安装软件包提供 NFS共享服务
前者用于 NFS 共享发布和访问
后者用于RPC支持
安装 nfs-utils、rpcbind 软件包
- [root@localhost ~]# systemctl stop firewalld
- [root@localhost ~]# setenforce 0
- [root@localhost ~]# yum -y install nfs-utils rpcbind
- [root@localhost ~]# systemctl enable nfs
- [root@localhost ~]# systemctl enable rpcbind
设置共享目录
- [root@localhost ~]# mkdir -p /opt/wwwroot
- [root@localhost ~]# vi /etc/exports
- /opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)
可以同时发布多个目录,并且可以为不同的客户端设置不同的访问权限
启动 NFS 服务程序
- [root@localhost ~]# systemctl start rpcbind
- [root@localhost ~]# systemctl start nfs
- [root@localhost ~]# netstat -anpt | grep rpc
- tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 44153/rpc.mountd
- tcp 0 0 0.0.0.0:50661 0.0.0.0:* LISTEN 7511/rpc.statd
- tcp6 0 0 :::20048 :::* LISTEN 44153/rpc.mountd
- tcp6 0 0 :::54742 :::* LISTEN 7511/rpc.statd
查看本机发布的 NFS 共享目录
- [root@localhost ~]# showmount -e
- Export list for localhost.localdomain:
- /opt/wwwroot 192.168.7.0/24
- /var/ftp/pub 192.168.10.173,192.168.7.172
在客户机中访问 NFS 共享资源
安装 rpcbind 软件包,并启动 rpcbind 服务
- [root@localhost ~]# yum -y install rpcbind nfs-utils
- [root@localhost ~]# systemctl enable rpcbind
- [root@localhost ~]# systemctl start rpcbind
手动在 web 节点挂载 nfs
[root@localhost ~]# mount -t nfs 192.168.10.105:/opt/wwwroot /var/www/html
在 nfs 上创建测试网页
- [root@localhost ~]# vim /var/www/html/index.html
- LVS test
linux做客户端时可以用一下代码进行测试
[root@localhost ~]# for i in $(seq 10);do curl 172.16.16.172;done
小阿轩yx-LVS负载均衡群集
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。