CentOS 7.3 部署LVS 集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.3 部署LVS 集群相关的知识,希望对你有一定的参考价值。

简介

LVS的全称Linux vitual system, linux vitual server
是由目前阿里巴巴的著名工程师章文嵩博士开发的一款开源软件。LVS工作在一台server上提供Directory(负载均衡器)的功能,本身并不提供服务,只是把特定的请求转发给对应的realserver(真正提供服务的主机),从而实现集群环境中的负载均衡。
LVS的核心组件ipvs工作在kernel中,是真正的用于实现根据定义的集群转发规则把客户端的请求转发到特定的realserver。而另一个组件ipvsadm是工作在用户空间的一个让用户定义ipvs规则的工具。故我们只要在server上装了ipvsadm软件包就可以定义ipvs规则,
而在linux kernel的2.6版本之后kernel是直接支持ipvs的。
注:由于ipvs是接受netfilter五个钩子函数的中的local_in函数控制的。故ipvs不能和netfilter的一些控制规则同时使用。

三种模式

DR直接路由模式、NAT转发模式、IP隧道模式
十几种算法
轮训算法 加权轮训算法 最小连接算法 加权最下连接算法 ..... 
LVS Scheduling Method LVS的调度方法:
1.Fixed Scheduling Method  静态调服方法
(1).RR     轮询 
(2).WRR    加权轮询 
(3).DH     目标地址hash
(4).SH     源地址hash
2.Dynamic Scheduling Method 动态调服方法
(1).LC     最少连接 
(2).WLC    加权最少连接 
(3).SED    最少期望延迟
(4).NQ     从不排队调度方法
(5).LBLC   基于本地的最少连接
(6).LBLCR  带复制的基于本地的最少连接

部署环境·为四台centos 7 其中一台做调度 两台提供 http 服务 一台提供共享

 nfs-utils 自动安装好伴随这系统自带
NFS是Network File System的缩写NFS在文件传送或信息传送的过过程中,依赖于RPC协议。
RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。
NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。
systemctl start nfs.service //启动服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33 //修改网卡
BOOTPROTO=staic //从自动获取IP地址改为静态
IPADDR=192.168.200.13  //手动添加IP地址 
NETMASK=255.255.255.0  //子网掩码
GATEWAY=192.168.200.1  //网管
service network restart //重启网卡服务我在虚拟机上所有还要把网卡绑定为主机模式
systemctl stop firewalld.service  //关闭防火墙
setenforce 0 //关闭增强行安全功能
编辑配置文件
vim /etc/exports 
/usr/share *(ro,sync)   //提供站点目录 自带就有所有来访者都可以访问 只读 同步
/opt/benet 192.168.100.0/24(rw,sync)    // 为两个节点服务创建两个站点 共享的网段访问 可以都可写
看个人需求·若希求多了可以自行添加···
mkdir /opt/benet accp  //创建两个目录 然后可以创建做个磁盘整列 看个人
chmod 777 benet/ accp/  //并且给与权限 ··
--发布共享---
exportfs -rv

客户端两台同同样的配置

yum install httpd -y  //下载httpd 服务并且关闭防火墙
 修改网卡··· 
systemctl restart network.service 重启网卡服务 
systemctl stop firewalld.service  关闭防火墙
setenforce 0 关闭防火墙
systemctl start httpd.service 开启服务并且进行自测
netstat -ntap | grep 80 查看端口有没有开启  
showmount -e 192.168.200.130 查看共享文件有没有
mount.nfs 192.168.200.130:/opt/accp /var/www/html/ //挂在站点目录
echo "this is accp web "> index.html 写一个首页目录 然后去 提供挂在的地方 就可以看

技术分享图片
技术分享图片
查看扫描共享的时候报错对应下面的报错解决办法

服务端验证NFS共享:
showmount -e ip 
注:正常能显示出上面设置的共享目录,如果报如下错误:
clnt_create: RPC: Program not registered
说明 rpcbind服务与NFS服务 启动顺序不对,把他俩都停了,重新启动,先启动rpcbind服务再启动nfs服务;
客户端验证NFS共享:
showmount -e 192.168.1.207 (即NFS服务器的IP地址)
注:正常也能显示出上面设置的共享目录,如果报如下错误:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
说明防火墙没有开启相应需要开启的端口,把防火墙关掉,再测试应该就可以正常了;不过防火墙比较重要,一般情况下,不会随意关闭,在服务端可开启如下命令列出的所有端口即可:
# rpcinfo -p localhost

技术分享图片
最后配置 调度的服务器

centos7-1 做为调度器做为网管 双网卡       调度  外 12.0.0.1  内 192.168.200.1
yum install ipvsadm -y //安装方便管理软件

vim /etc/sysctl.conf 设置防火墙
net.ipv4.ip_forward = 1 //最后添加开启路由转换
sysctl -p 生效
iptables -t nat -F //清楚防火墙中nat 
iptables -F  //清楚防火墙中所有规则
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.200.0/24 -j SNAT --to-source 12.0.0.1 /
规则 添加规则 -t nat -A 在POSTROUTING链 指定出口 ens36 指定源地址192.168.200.0/24 -j 做动作SNAT --to-source 转换成12.0.0.1
modprobe ip_vs 加载模块 
cat /proc/net/ip_vs 查看内核版本
ipvsadm --save > /etc/sysconfig/ipvsadm 保存规则 不然开启服务会失败
systemctl start ipvsadm.service  开启服务
NAT、只要在服务器上配置,业务服务器不需要特殊配置--------
cd /opt/  //可以自行定义
vi nat.sh
#!/bin/bash
ipvsadm -C //清楚内核虚拟服务器表中的所有记录
ipvsadm -A -t 12.0.0.1:80 -s rr     //添加一台虚拟的服务器 -t 指定那种IP -s 指定那种算 rr 
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.101:80 -m  -a 指定虚拟的IP地址的 r 指定的真是的IP地址节点服务 -m指定 SNAT 模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.102:80 -m  -a -t 通过一个虚拟的IP地址访问-r 到一真时的地址 
ipvsadm  启用服务 

技术分享图片
技术分享图片
技术分享图片
技术分享图片
技术分享图片

以上是关于CentOS 7.3 部署LVS 集群的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.3 部署LVS + Keepalived 高可用群集

centos 7.3 LVS的NAT模式负载均衡实操

CentOS 7 部署LVS集群(DR模式NAT模式,LVS+keepalived)

centos7部署负载均衡LVS+keepalived

CentOS 7.3(1611) 环境下详细部署安装分布式存储系统Ceph

MHA-结合MySQL半同步复制高可用集群(Centos7)