LVS (Linux Virtual Server) - 负载均衡集群 - keepalived
今天稍微了解了LVS 的原理和使用,在网络上找到不少好文章,稍微加以处理并在这里备份:
原理介绍:Linux Virtual Server
关于:http://www.linuxvirtualserver.org/about.html
The mission of the Linux Virtual Server project is to build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.
Currently, the major work of the LVS project is to develop advanced IP load balancing software (IPVS), application-level load balancing software (KTCPVS), cluster management components. These components make the LVS framework illustrated in the following figure.

- IPVS: is an advanced IP load balancing software implemented inside the Linux kernel. The IPVS code was already included into the standard Linux kernel 2.4 and 2.6.
- KTCPVS: implements application-level load balancing inside the Linux kernel, currently under development.
一.检查内核是否支持LVS

备注:2.4.23以后版本的内核已经支持LVS,只需要直接使用,不需要进行内核的下载和更新工作。
二.检查内核是否支持lvs的ipvs模块
[root@wjb10000 ~]# modprobe -l|grep ipvs
modprobe: invalid option -- 'l'
备注:参数l无效,查了很多资料。好像现在没有这个参数了,可以改用下面这个命令查看内核是否支持lvs的ipvs模块
[root@wjb10000 ~]# find /lib/modules/$(uname -r)/ -iname "**.ko*" | cut -d/ -f5-
....................前面省略...................
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
....................后面省略...................
看到有输出以上内容,说明内核支持lvs了,无需再编译内核了。
当然也可以进入文件夹列出:

三.查看ipvsadm 程序是否被安装
[root@wjb10000 ~]# ipvsadm
-bash: ipvsadm: command not found
输出以上信息表明未安装ipvsadm程序。下面通过yum的方式安装ipvsadm程序,不用考虑软件之间的依懒性。
[root@wjb10000 ~]# yum -y install ipvsadm
[root@wjb10000 ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
安装完ipvsadm之后输出的信息。说明ipvsadm安装成功。
我们简要查看ipvsadm的信息,可以获取到更多有意思的事情:

可以发现,它确实已经加入到内核之中了,并一直有新的版本释出。https://kernel.org/pub/linux/utils/kernel/ipvsadm/
四.配置 IPVS (资源来源自网络未验证,只供参考)
1.开启IP转发功能
[root@wjb10000 /]#echo 1 >/proc/sys/net/ipv4/ip_forward
默认是0,关闭ip转发;这里需要开启,所以设置值为1。
2.配置重定向
[root@wjb10000 /]#echo "0" >/proc/sys/net/ipv4/ip_forward
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
3.清除ipvsadm表
[root@wjb10000 /]#ipvsadm -C
4.使用ipvsadm安装LVS服务实例:
ipvsadm -A -t vip:端口号 -s rr
5.增加二台内部web服务器
ipvsadm -a -t vip:端口号 -r web1服务器IP:端口号 -m -w 1
ipvsadm -a -t vip:端口号 -r web2服务器IP:端口号 -m -w 1
ipvsadm使用指南
1.名词解释
virtual-service-address(VIP):虚拟服务器的 ip 地址
real-service-address(RIP):是指真实服务器的 ip 地址
scheduler:调度方法
2.ipvsadm的用法和格式如下
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p[timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h
3.命令选项
-A --add-service
在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。
-E --edit-service
编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D --delete-service
删除内核虚拟服务器表中的一条虚拟服务器记录。
-C --clear
清除内核虚拟服务器表中的所有记录。
-R --restore
恢复虚拟服务器规则
-S --save
保存虚拟服务器规则,输出为-R选项可读的格式
-a --add-server
在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e --edit-server
编辑一条虚拟服务器记录中的某条真实服务器记录
-d --delete-server
删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l --list
显示内核虚拟服务器表,输出对应文件/proc/net/ip_vs
-Z --zero
虚拟服务表计数器清零(清空当前的连接数量等)
--set tcp tcpfin udp
设置连接超时值
--start-daemon
启动同步守护进程。他后面可以是 master 或 backup,用来说明 LVS Router是master或是backup。在这个功能上也可以采用keepalived的 VRRP 功能。
--stop-daemon
停止同步守护进程
-h --help
显示帮助信息
其他的选项::
-t --tcp-service service-address
说明虚拟服务器提供的是tcp的服务[vip:port] or [real-server-ip:port]
-u --udp-service service-address
说明虚拟服务器提供的是udp的服务[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark
说明是经过iptables标记过的服务类型。
-s --scheduler scheduler
使用的调度算法,有这样几个选项 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq。默认的调度算法是:wlc.
-p --persistent [timeout]
持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理,timeout的默认值为300秒。
-r --real-server server-address
真实的服务器[Real-Server:port]
-g --gatewaying
指定LVS的工作模式为直接路由模式(也是LVS默认的模式)
-i --ipip
指定LVS的工作模式为隧道模式
-m --masquerading
指定LVS的工作模式为NAT模式
-w --weight weight
真实服务器的权值
--mcast-interface interface
指定组播的同步接口
-c --connection
显示LVS目前的连接。如:ipvsadm -L –,输出对应文件/proc/net/ip_conn
--timeout
显示tcp tcpfin udp的timeout值。如:ipvsadm -L --timeout
--daemon
显示同步守护进程状态
--stats
显示统计信息,输出对应文件/proc/net/ip_vs_stats
--rate
显示速率信息输出对应文件/proc/net/ip_vs_stats
--sort
对虚拟服务器和真实服务器排序输出
--numeric -n
输出IP地址和端口的数字形式
原文链接:http://blog.51cto.com/wjb10000/1789332
扩展参考链接:https://www.cnblogs.com/liwei0526vip/p/6370103.html
扩展链接2:https://www.cnblogs.com/bananaaa/p/7929796.html
KeepAlived介绍:http://m.elecfans.com/article/700023.html
保持更新,资源来源自网络。内容加以修改,转载请注明出处。https://www.cnblogs.com/xuyaowen/p/lvs-help.html
LVS (Linux Virtual Server) - 负载均衡集群 - keepalived的更多相关文章
- LVS : Linux Virtual Server 负载均衡,集群,高并发,robust
1 LVS : Linux Virtual Server http://www.linuxvirtualserver.org/ http://www.linuxvirtualserver.org/zh ...
- LVS (Linux Virtual Server) 负载均衡
[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服 ...
- Keepalived+LVS(dr)高可用负载均衡集群的实现
一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2 ...
- Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived
文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...
- Heartbeat+LVS构建高可用负载均衡集群
1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...
- SQL Server 负载均衡集群方案之Moebius
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 架构原理(Architecture) 测试环境(Environment) 安装Moebius( ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群
高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...
- Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...
随机推荐
- list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...
- RecyclerView的简单使用
使用 RecyclerView 要做下面这些操作, 1.在build.gradle添加 RecyclerView的依赖,因为RecyclerView不是内置在android系统中的,请注意版本要一致 ...
- 带分页功能的SSH整合,DAO层经典封装
任何一个封装讲究的是,使用,多状态.Action: 任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...
- hadoop之editlogs和fsimage
一.概述 hadoop的namenode和secondarynamenode: 1. namenode负责 负责客户端请求的响应 元数据的管理(查询,修改) 2. 元数据管理 namenod ...
- javascript变量提升详解
js变量提升 对于大多数js开发者来说,变量提升可以说是一个非常常见的问题,但是可能很多人对其不是特别的了解.所以在此,我想来讲一讲. 先从一个简单的例子来入门: a = 2; var a; cons ...
- 详细的最新版fastdfs单机版搭建
前言 目前项目是tomcat单机部署的,图片.视频也是上传到tomcat目录下,关键是此项目的主要内容还就是针对图片.视频的,这让我非常担忧:文件服务器的应用是必然的,而且时间还不会太久.之前一直有听 ...
- 基于vue框架手写一个notify插件,实现通知功能
简单编写一个vue插件,当点击时触发notify插件,dom中出现相应内容并且在相应时间之后清除,我们可以在根组件中设定通知内容和延迟消失时间. 1. 基础知识 我们首先初始化一个vue项目,删除不需 ...
- 清除电脑垃圾.bat
echo.title delete cachecolor 0aecho.echo please enter any key start.....@echo offecho execuing delet ...
- [SEO基础知识] html标签优化 (摘抄)
1.<title>页面标题</title> 百度优化全靠它!对于做百度优化来说,一定要记得这个标签可能是你是否真正能够做到网站排名提高的重点,而且这个重点绝对不容忽视.标题主要 ...
- 【Quartz】问题记录注意事项【四】
记录一:queartz 在同时启动多个任务是,触发器名称不能设置一致,不然第二次启动会不成功 记录二:quartz 在使用任务与触发器分离写法时,任务必须要带(.StoreDurably()) IJo ...