热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVS集群搭建

LVS(Linux虚拟服务器)全拼:LinuxVirtualServer是一个虚拟的服务器集群系统三种模式:LVS-NAT:地址转换,原理简述客户端向VIP发起请求连接,DS在经过
LVS(Linux虚拟服务器)全拼:Linux Virtual Server
是一个虚拟的服务器集群系统
三种模式:
LVS-NAT:地址转换,
技术分享图片
技术分享图片
原理简述
客户端向VIP发起请求连接,DS在经过调度之后选取RS,然后RS返还数据给DS,DS将数据返还客户端,数据包来回都要经过NAT转换,所以DS将成为系统瓶颈。NAT支持10-20台服务器。需要有两个网卡。
=====================================================================
技术分享图片
LVS-TUN:隧道
技术分享图片
原理简述
客户端向VIP发送请求时,DS经过调度轮询后选择一个RS后使用隧道技术再次封装后向RS发送,RS通过隧道收到请求后拆开数据后得到目的IP,找到数据后将数据直接通过公网返还给客户端,可以跨网段。速度快。
=====================================================================
技术分享图片
LVS-DR: 路由模式
技术分享图片
原理简述
直接路由,此种方式是最常用的方式,当客户端向VIP发起请求时,数据包通过路由器发送到DS。然后DS不修改其源IP目的iP。经过调度后将目的MAC改为RS的MAC,然后RS找到数据后直接通过公网返回给客户端。
速度快,所有的DS和RS都在同一个物理网络中(交换机)并且都只有一块网卡。
=====================================================================
调度常用算法:
手动:
1. 轮叫调度 rr
2. 加权轮叫 wrr
自动:
3. 最少链接 lc
4. 加权最少链接 wlc
 
步骤:
所需环境,一台DS,两台RS,一台客户机,在一个网段中,全部关闭防火墙。操作过程中不可重启。
DS:
1.
#yum -y install ipvsadm #下载ipvsadm命令
参数:
-C–clear 清除内核虚拟服务器表中的所有记录。
-A:增加一台新的虚拟服务器,也就是VIP
-a:在虚拟服务器中增加一台新的真实服务器
-t:–tcp 说明虚拟服务器提供的是tcp 的服务
-r:后跟真实的服务器ip
-s:指定调度算法
-g:指定LVS 的工作模式为直接路由模式
 
2.
#ipvsadm -C
#ipvsadm -A -t 192.168.29.250:80 -s rr
#ipvsadm -a -t 192.168.29.250:80 -r 192.168.29.138:80 -g
#ipvsadm -a -t 192.168.29.250:80 -r 192.168.29.139:80 -g
 
#ifconfig ens33:0 192.168.29.250 broadcast 192.168.29.250 netmask 255.255.255.255 up
给ens33网卡添加一块子网卡,IP地址设为250,并且设置为广播地址
#route add -host 192.168.29.250 dev ens33:0
访问192.168.29.250的时候指定一条路由,走子网卡,
 
RS:
1.
# ifconfig lo:0 192.168.29.250 broadcast 192.168.29.250 netmask 255.255.255.255 up
给LOOPBACK添加子网卡,设置IP为250,并设置为广播地址
# route add -host 192.168.29.250 dev lo:0
访问250指定路由是从设备LOOPBACK走
 
2.
配置内核参数文件
arp_ignore: 定义接收到ARP请求时的响应级别
0:默认,只有本地配置的有相应的地址才给与回应
1:仅仅在目标地址是本地地址,并是配置在请求进来的接口上的时候才给予响应
arp_announce:定义将自己的地址向外通告时的级别
0:默认,表示使用配置在任何接口的任何地址向外通告
1:尽量仅向目标网络通过余其网络匹配地址
2:仅向与本地接口上地址匹配的网络进行通告
# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
# echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
# echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
 
该配置文件重启失效,是写在内存中的。
如果要永久生效,要把参数写在/etc/sysctl.conf中
 
3.
给RS和DS端都安装httpd服务
在RS1,RS2端/var/www/html目录下创建index.html文件
编辑:this is 138 host
this is 139 host
启动httpd服务
 
4.
测试:
自己做实验时DS端的子IP不在了,所以不成功,记得检查一下!!!
在客户机执行 curl 192.168.29.250,或者在浏览器输入网址
在DS上查看ipvsadm的
ipvsadm -Ln --stats
-L:显示内核虚拟服务器表
-n:输出IP地址和端口的数字形式
ipvsadm --zero :清空流量
 
为防止服务重启失败
cd /etc/sysconfig
touch ipvsadm文件
 
扩展:
tun隧道模式
 
DS端配置:
ifconfig tunl0 192.168.254.250 broadcast 192.168.254.250 netmask 255.255.255.0 up
route add -host 192.168.254.250 dev tunl0
ipvsadm -A -t 192.168.254.250:80 -s rr
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.18 -i
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.19 -i
# tunl0是隧道网卡的名字,可以随意起名字
 
RS端的配置
ifconfig tunl0 192.168.254.250 netmask 255.255.255.255 broadcast 192.168.254.250 up
route add -host 192.168.254.250 dev tunl0
 
echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
 
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
 
echo "0" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
 
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。
如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),
如果反向路径不同,则直接丢弃该数据包。

LVS集群搭建


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • A*算法在AI路径规划中的应用
    路径规划算法用于在地图上找到从起点到终点的最佳路径,特别是在存在障碍物的情况下。A*算法是一种高效且广泛使用的路径规划算法,适用于静态和动态环境。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
author-avatar
peaxcwxzl_372248
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有