linux系统lvs命令的简单介绍

Linux里面lvs和haproxy区别是什么?LVS和HAPROXY都是优秀的负载均衡软件 。
LVS:
1.OSI四层负载均衡软件 。
2.并发能力非常高,可达几十万 , 远大于HAproxy
3.支持TCP,UDP等的负载调度 。
4.特别是DR模式,数据返回客户端不经过DR,效率超高 。
5.经过改良的后期FULLNAT模式,更是进入和返回分离的集群模式,并发可达百万 。
6.仅适合大并发场景下的7层负载(负责HTTP处理)前面做首次4层负载调度(负责tcp调度) 。
Haproxy:
1.OSI四层、7层负载均衡软件 。
2.不仅支持TCP等负载,还支持HTTP等7层应用负载 。
3.并发不如LVS ,
【linux系统lvs命令的简单介绍】4.数据来去都经过负载均衡器 , 因此效率要低一些 。
5.对于流量并发不大的网站使用Haproxy就够了 , 无需LVS , 但是目前,老男孩老师建议更好的替代nginx 。
linux运维之LVS(一)关于LVS负载均衡
一、什么是负载均衡:
负载均衡集群提供了一种廉价、有效、透明的方法,来扩展网络设备和
服务器的负载、带宽、增加吞吐量、加强网络数据处理能力,提高网络的灵活性
和可用性 。
二、搭建负载均衡服务的需求:
1)把单台计算机无法承受的大规模的并发访问或者数据流量分担到多台节点设备上
分别处理,减少用户等待响应的时间,提升用户体验 。
2)单个重负载的运算分担到多台节点设备上做并行处理 , 每个节点设备结束后,
将结果汇总,返回给用户,系统处理能力得到大幅度提升 。
3)7*24的服务保证,任意一个或多个有限节点设备宕机,要求不能影响业务 。
三、LVS的介绍:
LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器
集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能 。
该项目是在1998年5月由章文嵩博士组织成立的,是中国国内最早出现的自由
软件项目之一 。
四、关于LVS的配置使用:
LVS负载均衡调度技术是在Linux内核中实现的,因此 , 被称为Linux
虚拟服务器 。我们使用该软件配置LVS时候,不能直接配置内核中的ipvs,
而需要使用ipvs的管理工具ipvsadm进行管理 , ipvs的管理工具ipvsadm管理ipvs 。
五、LVS技术点小结:
1)真正实现负载均衡的工具是ipvs,工作在linux内核层面 。
2)LVS自带的ipvs管理工具是ipvsadm 。
3)keepalived实现管理ipvs及对负载均衡器的高可用 。
4)Red hat工具Piranha WEB管理实现调度的工具ipvs 。
六、LVS体系结构与工作原理:
1)LVS集群负载均衡接收服务的所有入站客户端计算机请求,并根据调度算法决定哪个集群节点应该处理回复请求 。
负载均衡(LB)有时也被称为LVS Director(简称 Director).
2)LVS虚拟服务器的体系结构如下图 , 一组服务器通过高速的局域网或者地理分布
的广域网相互连接,在他们的前端有一个负载调度器(Load Balancer) 。负载调度器能
无缝地将网络请求调度到真正的服务器上,从而使得服务器集群的结构对客户是透明的,
客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样 。客户程序
不受服务器集群的影响不需做任何修改 。系统的伸缩性通过在服务集群中透明地加入和删除
一个节点来达到,通过检测节点或服务进程故障和正确的重置系统达到高可用性 。由于我们的负载调度技术在
linux内核中实现的,我们称之为linux虚拟服务器(Linux Virtual Server) 。
七、LVS社区提供了一个命名的约定:
名称:缩写
虚拟IP地址(Virtual IP Address)VIP
说明:VIP为Director用于向客户端计算机提供服务的ip地址,
比如: 域名就解析到vip上提供服务 。
-------------------------------------------------------------------------------
真实ip地址(Real Server ip Address)缩写:VIP
说明:在集群下面节点上使用的ip地址,物理ip地址 。
-----------------------------------------------------------------------------------
Director的ip地址(Director ip Adress)缩写:DIP
说明:Director用于连接内外网络的ip地址,物理网卡上的IP地址,
是负载均衡上的ip 。
-------------------------------------------------------------------------------------
客户端主机IP地址(Client IP Address)缩写:CIP
说明:客户端用户计算机请求集群服务器的IP地址,该地址用作发送
给集群的请求的源ip地址 。
----------------------------------------------------------------
LVS集群内部的节点称为真实服务器(Real server),也叫做集群节点 。请求集群服务的
计算机称为客户端计算机 。
与计算机通常在网上交换数据包的方式相同,客户端计算机、Director
和真实服务器使用IP地址彼此进行通信 。
------------------------------------------------------------------------------------------
八、LVS集群的3种工作模式介绍与原理讲解
1)IP虚拟服务软件ipvs,在调度器的实现技术中,IP负载均衡技术是
效率最高的 。在已用的ip负载均衡技术中有通过网络地址转换
(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,
我们称之为VS、NAT技术(Virtual Server Network Adress Translation) 。
2)在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出通过IP隧道实现虚拟服务器的
方法VS/TUN(Virtual Server via IP Tunneling)和通过直接路由实现虚拟服务
器的方法VS/DR(Virtual Server via Director Routing),它们可以极大地提高系统的伸缩性 。
3)淘宝开源的模式FULLNAT 。
LVS的四种工作模式:
缩写及全拼:
NAT(Network Adress Translation)、TUN(Tunneling)、
DR(Director Routing)、FULLNAT(FULL Network address Translation)
-------------------------------------------------------------------------------------------
九、什么是ARP协议:
1) ARP协议:全称"Address Resolution Protocol",中文名地址解析协议,使用ARP协议可
实现通过IP地址获得得对应主机的物理地址(MAC地址) 。
在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的ip地址 ,
这种互联网地址是在网际范围标识主机的一种逻辑地址 。为了让报文在
物理网路上传输,还必须要知道对方目的主机的物理地址(MAC)才行 。这样就存在把IP地址变成
物理地址的地址转换的问题 。
在以太网环境 , 为了正确地目的主机传送报文,必须把目的主机的32位IP
地址转换成为目的主机48位以太网的地址(MAC地址) 。这就需要在互联层有一个服务或功能将
IP地址转换为相应的物理地址(MAC地址),这个服务或者功能就是ARP协议 。
所谓的“地址解析”,就是主机在发送帧之前将目标IP地址转换成目标MAC地址的过程 ,
ARP协议的基本功能就是通过目标设备的ip地址,查询目标设备的MAC地址,以保证主机
间互相通信的顺利进行 。
ARP协议和DNS有点相像之处 , 不同点是:DNS是在域名和IP之间的解析,另外,ARP协议不需要
配置服务,而DNS要配置服务才行 。
ARP协议要求通信的主机双方必须在同一个物理网段(即局域网)!
2)关于ARP的小结:
1.ARP全称“Address Resolution Protocol”;
2.实现局域网内通过IP地址获取主机的MAC地址;
3.MAC地址48位主机的物理地址,局域网内唯一;
4.ARP协议类似DNS服务 , 但不需要配置服务 。
5.ARP协议是三层协议 。
--------------------------------------------------------------------------------------------------------
十、ARP缓存表:
1)每台安装有TCP/IP协议的电脑都会有一个ARP缓存表(windows 命令提示符里输入arp -a即可) 。
表里的ip地址与MAC地址是一一对应的 。
arp常用命令:
arp -a :查所有记录
arp -d :清除
arp -s :绑定IP和MAC
2)ARP缓存表是把双刃剑:
1.主机有了arp缓存表,可以加快ARP的解析速度,减少局域网内广播风暴 。
2.正是有了arp缓存表,给恶意黑客带来了攻击服务器主机的风险,这个就是arp欺骗攻击 。
3.切换路由器,负载均衡器等设备时,可能会导致短时网络中断 。
3)为啥用ARP协议?
OSI模型把网络工作分为七层 , 彼此不直接通信打交道 , 只通过接口 。IP地址工作在第三层,
MAC地址工作在第二层 。当协议在发送数据包时,需要先封装第三层IP地址,第二层MAC地址的报头,
但是协议只知道目的节点的ip地址,不知道目的节点的MAC地址,又不能跨第二、三层,所以得用ARP协议服务,
来帮助获取目的节点的MAC地址 。
4)ARP在生产环境产生的问题及解决办法:
1.ARP病毒,ARP欺骗
2.高可用服务器对之间切换时要考虑ARP缓存的问题 。
3.路由器等设备无缝迁移时需要考虑ARP缓存的问题 , 例如:更换办公室的路由器 。
5)ARP欺骗原理:
ARP攻击就是通过伪造IP地址和MAC地址对实现ARP欺骗的,如果一台主机中了ARP病毒,
那么它就能在网络中产生大量的ARP通信量,很快的进行广播以至于使网络阻塞,攻击者
只要持续不断的发出伪造的ARP响应就能更改局域网中目标主机ARP缓存中的IP-MAC条目,
造成网络中断或者中间人攻击 。
基于lvs实现4层负载均衡 章文嵩:研发,原就职alibaba公司,目前就职滴滴;
lvs:2部分组成
ipvsadm:用户空间的命令行工具;用于管理集群服务及集群服务上的RS;
ipvs:是内核中的框架;工作于内核上的netfilter的INPUT钩子上的程序 , 可根据用户定义的集群实现请求转发;
注意:在lvs主机上 , 不允许在INPUT链上添加规则,一般不建议与ipvs一同使用filter规则;更不能使用nat规则,任何链接追踪功能都不能开启,链接会话表就限制了会话能力,否则,并发响应能力将大大受到限制;
支持基于TCP UDP SCTP AH EST AH_EST等协议及端口进行调度;
以下部分内容摘自于:
多目标的DNAT;通过将请求报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT实现转发;
ipvs工作在INPUT链上,所以只有在INPUT链上才能判断出集群服务,然后才能向后转发,转发时,基于某种调度算法,ipvs自动从后端主机中挑选出一个来响应用户请求,挑选出的主机IP会成为报文目标IP的修改对象;
定义负载均衡集群服务时 , 要定义集群服务 , 集群服务的真实主机;
上图为lvs-nat的常见的使用场景,其工作流程如下:
1、客户端的请求发往Director 的VIP 。
2、Director发到客户端请求报文后,将报文中的目标Ip修改为集群中的选定的RIP,目标端口80也修改成8080 , 然后将请求报文发往RS 。
3、当RS收到请求报文后 , 在检查报文的目标IP为自己的RIP后 , 会接受报文并进行处理响应 。响应的源Ip为RIP , 目标IP为CIP,端口不变 。
4、Director收到RS的响应报文,修改响应报文的源IP为VIP,端口为80,然后转发给客户端 。
5、客户端接受响应报文,其源IP为VIP,端口为80 , 整个过程对于客户端来说是透明无感知的 。
通过修改请求报文的MAC地址 , 重新封装一个MAC首部进行转发;源MAC是DIP所在接口的MAC地址 , 目标MAC是挑选出的某RS的RIP所在接口的MAC地址;IP首部不会发生变化(依然是CIP--VIP)
lvs服务主机与后端服务器主机接在同一交换机上 , 且每个后端主机都配有vip,为了避免地址冲突,把各后端主机配置的vip进行隔离;
隔离的方法有3种
(1)确保前端路由器将目标IP为VIP的请求报文转发往Director;
(2)RS的RIP可以使用私有地址,也可以使用公网地址;
(3)RS跟Director必须在同一物理网络(基于MAC地址转发);RS的网关必须不能指向DIP;
(4)请求报文必须由Directory调度,但响应报文必须不能经由Director;
(5)不支持端口映射;
(6)RS可以使用大多数的OS;一般都为Linux系统;
上图为lvs-dr的常见的使用场景,其工作流程如下:
1、客户端的请求会发往Director,此时,客户端请求报文的源Ip为CIP,目标Ip为Director的VIP 。
2、当Director接受到客户端的请求报文后,Director会在请求报文外封装一个MAC首部,其源MAC为Director接口的MAC地址,目标MAC为选定RS的MAC地址;
3、当RS收到Director转发过来的请求报文后 , 检查发现请求报文的目标Ip为本地环回接口上配置的VIP , 因此会接受报文进行响应处理 。另外由于对ARP响应规则做了修改,因此RS不会把响应报文响应给director,而是响应给GW;
4、客户端接收响应报文,完成通信 。
请求报文源IP为cip,目标IP为vip , 到达lvs服务进入INPUT链上,在整个ip报文外又加了一层ip首部,即IP报文传输IP报文所以叫IP隧道,此时外层源IP为dip , 目标IP为某一个被挑选出来远端的rip , 远端的服务主机收到报文经过不断拆包后,将响应报文发给客户端,构建响应报文的源IP为rip,目标IP为cip;
(1)RIP,DIP , VIP全得是公网地址;
(2)RS网关不能指向也不可能指向DIP;
(3)请求报文经由Director转发,但响应报文将直接发往CIP;
(4)不支持端口映射;
(5)RS的OS必须支持隧道功能;
(1)VIP是公网地址,RIP和DIP一般是私网地址,且通常不再同一网络中,但需要经由路由器互通;
(2)RS收到的请求报文源IP为DIP,因此响应报文将直接响应给DIP;
(3)请求和响应报文都经由Director;
(4)支持端口映射;
(5)RS可以使用大多数的OS;
负载均衡集群中会话保持的方式
(1)原地址哈希;
(2)会话集群;
(3)会话服务器;
如上图所示:
1.客户端的请求会发往Director,此时 , 客户端请求报文的源IP为CIP,目标IP为Director的VIP
2.当Director收到客户端的请求报文时,会将源IP修改为本机的DIP,同时将请求报文中的目标IP修改为后端某个RS的RIP,具体为哪个RS的RIP,取决于LVS使用的具体算法
3.当RS收到对应的请求报文时,会发现报文的目标IP就是自己的RIP , 于是就会接收报文并处理后进行响应 。响应报文的源IP则为RIP , 目标IP则为DIP
4.当Director收到对应的响应报文时,Director会将响应报文的源IP修改为VIP,目标IP修改为CIP,于是响应报文被发往客户端 。
5.客户端则会收到响应报文,源IP为VIP,端口为80,而LVS相对于客户端而言 , 转换过程是透明的 。
根据其调度时是否考虑后端主机的当前负载,可分为 静态方法 和 动态方法 两类
基于客户端瘦cookie 服务器端的session机制,在负载均衡时,同一用户被调度不同后端服务器时,为了保持会话连接功能不丢失;当第一次用户请求时,通过调度机制给该用户分配了一个负责响应后端服务器,以后来自该用户的请求就由这个服务器负责响应了,而不再调度,这就叫 源地址哈希 ;
在调度器上有会话追踪表,在这个会话追踪模板中,把用户的IP地址和挑选的后端服务器对应的记录下来 , 而且定义一个超时时长,在定义的时间内该条目不会删除;所以,用户请求到来时,先检查这个表,把原IP当做k查找 , 因为哈希就是k/v数据,对应的v就是后端的真实服务器;如果检查有用户的IP对应的记录,则直接将请求报文发给记录中对应的后端真实服务器,而不通过调度;
缺陷 :当记录的真实服务器挂了时,就没有会话保持记录了;当内网用户同过同一IP地址访问外网时,可能会把内网用户的所有请求都发往会话记录表上的真实服务器,这样负载均衡能力是受到损害的;
解决办法
内网用户请求的目标地址 , 在调度器上把目标地址绑定到一个代理缓存服务器上,以后,任何用户访问的是该目标地址就发往绑定的代理服务器,代理服务器收到请求后,再发往后端服务器主机,从而实现正向代理负载均衡的作用;
ipvs功能特别强大,一般网站用到的可能性比较?。媸员鼗嵛实剑?
如果负载不是特别大,使用配置比较麻烦 , 维护成本较大;
ipvs/ipvsadm的关系相当于netfilter/iptables的关系;
真正提供lvs服务的是ipvs;
因为是根据请求的目标ip地址和目标端口(能识别协议)进行转发;一个ipvs(Director)主机就可同时为多个集群提供服务进行调度;这就是四层交换的原因;只不过一个Director很有可能成为负载均衡的瓶颈;
注意:单个Director可同时为多个集群提供调度服务;
在centos 7系统上:
判断内核是否支持ipvs:
判断ipvsadm程序包是否安装
ipvsadm -A|E -t|u|f service-address [-s scheduler]
-A:增,添加
-E:修改
ipvsadm -D -t|u|f service-address
-D:删除集群服务;
service-address:定义集群服务的地址
-t:tcp,把tcp端口定义成集群服务,vip:tcp_port;
-u:udp,把udp端口定义成集群服务,vip:udp_port;
-f:Firewalls mark防火墙标记,是一个数字;
-s scheduler:定义集群服务的调度方法,默认为wlc加权最少连接;
ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-a:增,添加RS;
-e:改,修改RS;
ipvsadm -d -t|u|f service-address
-d:删除
-rserver-address:向已存在的service-address(集群服务)添加RS的地址;
rip[:port] 端口省略时,表示不做端口映射,与请求服务的端口为同一端口;有些集群服务不支持端口映射,如lvs-dr,lvs-tun,只要响应报文不经过Director都不支持;
查看:ipvsadm -L|l [options]
-L,--list:列出集群服务;
-n, --numeric:数字格式显示,不反解主机名到ip地址,服务到端口号;
--exact:精确显示数值 , 不进行单位换算;
-c, --connection:显示当前ipvs连接;可查看后端服务器是否连接;
--stats:统计数据;
--rate:速率;
清空 :clear
ipvsadm -C
保存和重载
保存:输出重定向
ipvsadm -S/PATH/TO/SOME_RULE_FILE
ipvsadm-save/PATH/TO/SOME_RULE_FILE
重载:输入重定向
ipvsadm -R/PATH/TO/SOME_RULE_FILE
ipvsadm-restore/PATH/TO/SOME_RULE_FILE
清空计数器:
ipvsadm -Z [-t|u|f service-address]
例如:
例如:
添加集群服务 , vip为172.18.11.111提供web服务,指明调度方法为rr;不指明为默认wlc;
在集群服务中添加RS地址为192.168.255.2,类型为lvs-nat,权重为1此值无意义 , 因为前面已经指明使用rr调度算法
再次添加一个RS
再次添加一个集群服务
在另一个集群服务上添加2个RS
修改集群服务的调度方法为wrr
注意:修改只能改属性,不能改IP地址;只有删除集群服务才能从新改IP地址;
修改RS的权重值为10
保存集群服务规则至指定路径
查看保存的内容:
清空集群服务
重载集群服务配置文件
下次开机时会自动载入集群服务规则:
所以,可把规则保存在/etc/sysconfig/ipvsadm文件中;
[root@VM_0_2_centos ~]# ipvsadm-save/etc/sysconfig/ipvsadm
一般手动保存后(确保保存无误),下次开机时 , 会自动重载此文件;
需要开机自动有效:
[root@VM_0_2_centos ~]# systemctl enable ipvsadm.service
lvs-nat设计要点:
(1)DIP与RIP要在同一IP网络,RIP的网关要指向DIP;
(2)支持端口映射;
(3)是否用到共享存储,取决于业务需要;
1、配置RS1
2、配置RS2
3、配置Director
打开网卡核心转发功能;永久有效:
查看内核参数是否打开核心转发功能
此时,在Director测试,访问RS1、RS2;
添加ipvs集群:
在另一台虚拟机上测试 , 调度是否起作用:
测试主机为:172.18.11.111
修改Director上的调度方式为wrr
再到测试主机为:172.18.11.111 , 测试wrr的调度效果
经过多次请求测试后,有明显wrr调度效果;
其RS服务器响应权重比是1:2,即RS1响应1次后RS响应2次;
数据同步:rsync inotify
响应报文不用经过Director,每个RS必须配置VIP,为了避免地址冲突,有3种方式:
在各主机(Director,RS)均需要配置VIP , 因此,要解决地址的冲突的问题,目标是让各RS上的VIP不可见,仅用接收目标地址为VIP的报文,同时可作为响应报文的源地址;
(1)在前端的网关接口上静态绑定(vip mac);
缺陷:一旦Director挂了,基于高可用转移另外节点上无法实现;而且,要在网关上有权限操作;
(2)在各RS上使用arptables;添加规则,拒绝自己的VIP地址向外通告及响应arp解析地址的请求;
(3)在各RS上修改内核参数,来限制arp响应和通告;
注意:要将VIP配置在lo的别名上,不能配置在网卡的别名上;
在各RS上设置arp通告级别即修改两个内核参数arp_ignore、arp_announce , 因为地址是属于内核的,所以在Linux主机默认的通告方式是所有本机的可用IP地址通告给每个接口;
arp_announce要限制通告级别,每一个网卡仅在把自己的网络地址向所在物理网络中通告,即各网卡间地址绝不交叉通告;arp_announce设置为2;
arp_ignore是限制响应别人arp请求的级别;默认响应请求是无论从哪个接口接收到arp请求,只要本机有这个地址都会响应;限制arp响应级别后可实现,从哪个网卡接收的arp请求,
必须与该接口属于同一网络时才响应;arp_ignore`设置为1
lvs-dr设计要点:
(1)各主机一个接口即可,但需要在同一物理网络中;
(2)RIP的网关不能指向DIP,RIP和DIP通常应在同一网络 , 但此二者未必会与VIP在同一网络;
(3)各RS需要先设置内核参数,再设置VIP和路由;
搭建网络环境
1、配置Director
2、配置RS1
3、配置RS2
4、访问测试
在RS2主机运行
在报文进入时,进行打标记,例如目标IP是VIP端口80,把这类报文分拣出来打标 , 标记一般为十六进制整数 , 例如标记1;在input链上定义集群服务时,就可判定如果防火墙标记为1,则为集群服务;把本来在input链上完成识别、定义集群服务分成了两步,识别在prerouting做,定义在ipvs(inputing)上实现;
在mangle表上的prerouting链上 , 目标ip(VIP)为172.18.11.7,目标端口为80,打标记为1;
mark标记里包含了IP地址和端口;定义集群服务时使用mark即可;
打标记的方法:
iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $clusterserverport -j MARK --set-mark #
#:代表十六进制整数;
打标作用 :提供辅助持久连接功能;在多个端口定义服务时,可把相关作为一个集群来调度;
配置RS1:
配置RS2:
在Director创建CA:
在RS1主机:
在CA服务上签证并传回给RS1:
在各RS主机重启web服务并查看443端口是否监听:
手动测试直接访问RS的IP:
测试请求,OK可以响应页面;-k表示可接受不受信任的页面响应;
单机测试ok,下面绑定80和443服务,打标记:
linux LVS NAT模式连接不到LVSNAT模型就是多目标地址转换 linux系统lvs命令,linux系统lvs命令你的机器2和机器3不能直接响应请求给客户端linux系统lvs命令,而是要经过你的机器1转发给客户端实现地址伪装
很明显,你的机器1是做调度器,eth0是DIP,面向你的机器2和机器3,转发客户端的请求给机器2和机器3,你的eth1面向客户端,响应由DIP转发过来的资源给客户端,你机器1上的ipvsadm的规则已经有linux系统lvs命令了,并且你curl的时候也实现了负载均衡,
弱弱的问一句,你说的连接不到机器1是什么意思linux系统lvs命令?
linux负载均衡lvs原理详细讲解 什么是lvs负载均衡技术LVS共有三种模式 , 优缺点比较如下:
NAT模式
优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统 , 物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址 。
不足:扩展性有限 。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生 。假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的处理器将使得这个延迟时间变短),负载均衡器的最大容许能力为8.93M/s,假定每台物理服务器的平台容许能力为400K/s来计算,负责均衡器能为22台物理服务器计算 。
TUN模式
我们发现,许多Internet服务(例如WEB服务器)的请求包很短?。Υ鸢ǔ:艽?。
优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户 。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈 。使用VS-TUN方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个Virtual Server能达到1G的吞吐量 。
不足:但是,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,我仅在Linux系统上实现了这个,如果你能让其它操作系统支持,还在探索之中 。
DR模式
优点:和VS-TUN一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端 。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器,其中包括:Linux 2.0.36、2.2.9、2.2.10、2.2.12;Solaris 2.5.1、2.6、2.7;FreeBSD 3.1、3.2、3.3;NT4.0无需打补?。籌RIX 6.5;HPUX11等 。
不足:要求负载均衡器的网卡必须与物理网卡在一个物理段上
Linux 中的逻辑卷 LVM 管理完整初学者指南这是 Linux 中 LVM(逻辑卷管理)的完整初学者指南 。
在本教程中,您将了解 LVM 的概念、它的组件以及为什么要使用它 。
我不会仅限于理论上的解释 , 我还将展示在 Linux 中创建和管理 LVM 的动手示例 。
简而言之 , 我将为您提供在现实世界中开始使用 LVM 所需的所有必要信息 。
LVM 代表逻辑卷管理 。这是管理存储系统的另一种方法 , 而不是传统的基于分区的方法 。在 LVM 中 , 您无需创建分区,而是创建逻辑卷,然后您可以像挂载磁盘分区一样轻松地将这些卷挂载到文件系统中 。
LVM 包含三个主要组件:
尽管该列表由三个部分组成 , 但其中只有两个是分区系统的直接对应部分,下表记录了这一点 。
物理卷没有任何直接对应物,但我很快就会谈到这一点 。
LVM 的主要优点是调整卷或卷组的大小非常容易 。它抽象出了所有丑陋的部分(分区、原始磁盘),并为我们留下了一个中央存储池可供使用 。
如果您曾经经历过分区大小调整的恐惧,那么您会想要使用 LVM 。
这篇文章不仅仅是理论 。在此过程中,我将展示实际的命令示例,学习某些东西的最佳方法是亲身实践 。为此,我建议您使用虚拟机 。
为了帮助你,我已经准备了一个简单的 Vagrantfile , 你可以用它来用 VirtualBox 启动一个非常轻量级的虚拟机 。此虚拟机具有三个额外的磁盘 , 您和我可以将它们用于下面的命令示例 。
在文件系统的某处创建一个目录 , 并将以下内容保存在该文件中,名为Vagrantfile.
或者,如果您愿意,可以使用wget或curl从我的 gist 下载文件 。
确保你安装了Vagrant和VirtualBox 。
一旦 Vagrantfile 就位,将环境变量设置VAGRANT_EXPERIMENTAL为disks.
最后,使用以下命令启动虚拟机(确保您与 Vagrantfile 位于同一目录中):
机器运行后,您可以使用vagrant sshSSH 连接到它并运行本文中的示例命令 。
完成后请记住vagrant destroy从与 Vagrantfile 相同的目录运行 。
在您可以使用任何命令之前 , 您需要安装该lvm2软件包 。这应该预装在大多数现代发行版中,尤其是基于 Ubuntu 的发行版中 。但是,在继续之前,我不得不提到这一点 。要安装lvm2,请查阅您的发行版的文档 。
对于这个动手演练,我构建了一个具有 40G 根存储(不重要)和三个大小为 5G 的外部磁盘的虚拟机 。这些磁盘的大小是任意的 。
如您所见,我将使用的设备sdc是sdd和sde 。
还记得我告诉过你 LVM 包含三个主要组件吗?
是时候一一见他们了 。
关于 LVM,您首先需要了解的是物理卷 。物理卷是用于实现抽象即逻辑卷的原材料或构建块 。简单来说,物理卷是 LVM 系统的逻辑单元 。
物理卷可以是任何东西,原始磁盘或磁盘分区 。创建和初始化物理卷是一回事 。两者都意味着您只是在为进一步的操作准备构建块(即分区、磁盘) 。这将在瞬间变得更加清晰 。
实用程序:pv所有管理物理卷的实用程序都以P hysical Volume的字母开头 。例如pvcreate, pvchange,pvs等pvdisplay 。
您可以使用原始未分区磁盘或分区本身来创建物理卷 。
正如我之前提到的,我的虚拟机连接了三个外部驱动器,让我们从/dev/sdc.
我们使用pvcreate命令来创建物理卷 。只需将设备名称传递给它即可 。
你应该看到这样的东西:-
接下来我将/dev/sdd分成相等的部分 。使用任何工具cfdisk,,,等parted,fdisk有很多工具可以完成这项工作 。
您现在可以在一个步骤中从这两个分区中快速创建另外两个物理卷 , 同时将这两个设备传递给pvcreate 。
看一看:-
您可以使用三个命令来获取可用物理卷的列表pvscan,pvs和pvdisplay 。您通常不需要向这些命令传递任何内容 。
pvscan:-
pvs:-
pvdisplay:-
正如您所看到的,除了列出物理卷之外,这些命令还为您提供了大量有关这些卷的其他信息 。
pvremove您可以使用该命令删除物理卷 。就像pvcreate,只需将设备(初始化为物理卷)传递给pvremove命令 。
为了演示,我将从/dev/sdd2列表中删除 。
输出应与此相同:-
现在列出物理卷sudo pvs
/dev/sdd2不再在这里 。
卷组是物理卷的集合 。它是 LVM 中的下一个抽象级别 。卷组是结合了多个原始存储设备的存储容量的存储池 。
实用程序:所有卷组实用程序名称都以 开头vg,代表卷组,例如、等 。vgcreatevgsvgrename
卷组是使用该vgcreate命令创建的 。的第一个参数vgcreate是您要为该卷组指定的名称 , 其余的是要支持存储池的物理卷的列表 。
例子:-
列出卷组类似于列出物理卷,您可以使用具有不同详细级别的不同命令vgdisplay、vgscan和vgs 。
我个人更喜欢vgs命令,sudo vgs
您可以使用以下命令列出连接到特定卷组的所有物理卷:-
例子:-
您还可以获得物理卷的计数 。
例子:-
扩展卷组意味着向卷组添加额外的物理卷 。为此,vgextend使用该命令 。语法很简单:-
让我们将lvm_tutorial音量扩大/dev/sdd2.
专注于输出:-
在物理卷部分 , 我们最终将其/dev/sdd2作为物理卷删除,但必须将分区或原始磁盘初始化为物理卷,否则 LVM 将无法将其作为卷组的一部分进行管理 。所以在将它添加到卷组之前vgextend做好准备 。/dev/sdd2
现在列出附加到此卷组的物理卷,以确保安全 。
输出:-
/dev/sdd2现在按预期在列表中 。
就像扩展一个卷组意味着添加另一个物理卷一样,减少它意味着删除一个或多个物理卷 。
我们使用vgreduce命令来执行此操作 。一般语法如下:-
让我们删除物理卷/dev/sdc和/dev/sdd1.
例子:-
再次列出物理卷 。
输出:-
那两个物理卷不见了 。
现在,为了本文的其余部分,将这两个物理卷添加回来 。
vgremove您可以使用该命令删除逻辑卷 。
现在不要运行此命令 , 否则您必须重新创建卷组 。如果您想对其进行测试,请在本文的最后运行它 。
这是您将主要使用的内容 。逻辑卷就像一个分区,但它不是位于原始磁盘之上 , 而是位于卷组之上 。你可以,
在本节中,您将学习,
实用程序:所有卷组实用程序名称都以 开头lv , 代表逻辑卷 。例如, ,等等, ,等等lvcreatelvslvreducevgcreatevgsvgrename
lvcreate使用该命令创建逻辑卷 。常用的语法如下所示,
在虚拟机上运行以下命令:
示例输出:
正如我之前所说,您可以将文件系统放在逻辑卷上,也可以将其挂载到文件系统的任何位置 。
/dev/ /创建后,您可以在路径中找到逻辑卷 。例如,在我们的例子中 , 音量将在 /dev/lvm_tutorial/lv1 .
现在您可以像使用任何分区一样使用它 。用ext4格式化,
将它安装在当前目录结构中的某个位置,例如/mnt,
您可以使用命令扩展逻辑卷lvextend并使用命令减小其大小lvreduce 。或者,您可以使用单个命令lvresize来完成这两项任务 。
首先让我们看看卷组中是否还有剩余空间 。
输出:-
根据输出,我还有一些空间,所以让我们将卷大小增加 2GB 。
请记住,逻辑卷仍安装在/mnt.
使用以下命令调整卷大?。?
一般语法是这样的:
后面的符号或 --L取决于您是尝试增加音量还是分别减小音量 。
卷大小增加后,文件系统也必须调整大小 。对于 ext4 , 要使用的命令是resize2fs.
输出:
减少逻辑卷是一项稍微复杂的任务,我不会在本文中讨论这个问题 。我将把这个卷的大小减少 1GB 。
lvremove您可以使用该命令删除逻辑卷 。命令语法如下:-
在虚拟机上运行此命令:-
输出:-
在逻辑卷、物理卷和卷组上还有许多其他操作可行 , 但不可能将所有这些都写到一篇文章中 。
我/dev/sde在虚拟机中为您多留了一个磁盘,使用它,练习本文中的一些命令 , 创建一个新的卷组,扩展一个现有的卷组,只是练习 。
我希望这篇文章对你有所帮助,如果你想在以后看到更多关于这方面的内容,请在下面的评论部分告诉我 。
linux系统lvs命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、linux系统lvs命令的信息别忘了在本站进行查找喔 。

    推荐阅读