LVS 概述

简介

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,官方站点。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。

作用

LVS主要用于服务器集群的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。

术语

  • vs:Virtual Server 虚拟服务,可称为Director、Dispatcher分发器、Balancer负载均衡器

  • rs:Real Server 真实服务器

  • CIP:Client IP 客户端IP

  • VIP:Director Virtual IP 等同于FIP(流动IP),负载均衡器虚拟IP

  • DIP:Director IP 调度IP(第二张网卡IP地址)

  • RIP:Real Server IP 真实服务器IP

LVS 详细说明

工作模型

lvs-nat

通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。
说明
(1) RIP和DIP应该使用私网地址,RS的网状应该指向DIP;
(2) 请求和响应报文都要经由director转发;极高负载的场景中,Director可能会成为系统瓶颈;
(3) 支持端口映射;
(4) VS必须为Linux,RS可以是任意的OS;
(5) RS的RIP与Director的DIP必须在同一IP网络;
工作流量

 

传送门:http://www.cnblogs.com/edisonchou/p/4281978.html

lvs-dr

VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。

 

说明
(1) 确保前端路由器将目标IP为VIP的请求报文一定会发送给Director;实际使用中是修改各RS的内核参数,并把VIP配置在特定的接口上实现禁止其响应;
(2) RS的RIP可以使用私有地址,也可以使用公网地址;
(3) RS跟Director必须在同一物理网络中;
(4) 请求报文必须由Director调度,但响应报文必须不能经由Director;
(5) 不支持端口映射;
(6) 各RS可以使用大多数的OS;

lvs-tun

采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报 文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用 VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

说明
(1) RIP,DIP,VIP全得是公网地址;
(2) RS的网关不能也不可能指向DIP;
(3) 请求报文经由Director调度,但响应报文将直接发给CIP;
(4) 不支持端口映射;
(5) RS的OS必须支持IP隧道功能;

调度算法

轮叫(Round Robin)

调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

加权轮叫(Weighted Round Robin)

调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

最少链接(Least Connections)

调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

加权最少链接(Weighted Least Connections)

在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

基于局部性的最少链接(Locality-Based Least Connections)

"基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器 是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务 器,将请求发送到该服务器。

带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)

"带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个 目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务 器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一 台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的 程度。

目标地址散列(Destination Hashing)

"目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

源地址散列(Source Hashing)

"源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

ipvsadm 命令

用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;

 # yum install -y ipvsadm

管理集群服务

ipvsadm  -A|E -t|u|f  service-address  [-s scheduler][-p [timeout]]
ipvsadm -D -t|u|f service-address

说明

  • -A:添加

  • -E:修改

  • -D:删除

  • service-address:服务地址和 -t|u|f 结合使用

  • -t, tcp, vip:port:TCP的ip和port

  • -u, udp, vip:port:UDP的ip和port

  • -f, fwm, MARK:防火墙标记

  • -s scheduler:默认为WLC调度算法,可省;

  • -p [timeout] :超出时长,持久连接相关,默认时长为300秒

  • --set tcp tcpfin udp 设置连接超时值

管理集群服务上的RS

ipvsadm-a|e  -t|u|f service-address -rserver-address [-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -rserver-address

说明

  • -a:添加一个RS

  • -e:修改一个RS

  • -d:删除一个RS

  • server-address指的是rip[:port],端口可省表示与之前的service-address相同,只有nat模式支持端口映射才会使用

  • -g:GATEWAY (默认),lvs-dr模型

  • -i: IPIP, lvs-tun隧道模型

  • -m: MASQUERADE,lvs-nat模型

查看

ipvsadm -L|l[options]

说明

  • -n:numeric,数字格式显示地址和端口;

  • -c:connection,显示ipvs连接;

  • --stats:统计自该条转发规则生效以来的;

  • --rate:速率

  • --exact:精确值,不经过单位换算的数值
    应用举例

[test@LVS ~]$ sudo /sbin/ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.1.17.10:http wlc
-> 10.2.4.35:http Route 100 25095 18542
-> 10.2.4.31:http Route 100 25097 17657
-> 10.2.4.30:http Route 100 25123 18953
-> 10.2.4.29:http Route 100 25091 18727
-> 10.2.4.24:http Route 100 25075 17703
-> 10.2.4.23:http Route 100 25086 17465
-> 10.2.4.22:http Route 100 25124 17628

InActConn 指非活跃连接数,我们将处于 TCP ESTABLISH 状态以外的连接都称为不活跃连接。例如处于 SYN_RECV 状态的连接,处于 TIME_WAIT 状态的连接等。

[test@LVS ~]$ sudo /sbin/ipvsadm -l --rate
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS
-> RemoteAddress:Port
TCP 192.1.17.10:http 2438 16241 0 6385560 0
-> 10.2.4.35:http 146 965 0 372714 0
-> 10.2.4.34:http 164 1089 0 423347 0
-> 10.2.4.28:http 152 1035 0 406658 0
-> 10.2.4.27:http 157 1031 0 411744 0
-> 10.2.4.22:http 160 1078 0 425447 0
-> 10.2.4.21:http 159 1078 0 423759 0

CPS (current connection rate) 每秒连接数
InPPS (current in packet rate) 每秒的入包个数
OutPPS (current out packet rate) 每秒的出包个数
InBPS (current in byte rate) 每秒入流量(字节)
OutBPS (current out byte rate) 每秒入流量(字节)

[test@LVS ~]$ sudo /sbin/ipvsadm -l --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.1.17.10:http 326629K 3588M 0 22517G 0
-> 10.2.4.23:http 584349K 3896M 0 1469G 0
-> 10.2.4.34:http 597422K 3956M 0 1501G 0
-> 10.2.4.28:http 631106K 4198M 0 1592G 0
-> 10.2.4.27:http 578297K 3850M 0 1459G 0
-> 10.2.4.22:http 580208K 3859M 0 1463G 0
-> 10.2.4.21:http 685758K 283146K 0 1737G 0

Conns (connections scheduled) 已经转发过的连接数
InPkts (incoming packets) 入包个数
OutPkts (outgoing packets) 出包个数
InBytes (incoming bytes) 入流量(字节)
OutBytes (outgoing bytes) 出流量(字节)

清空规则

ipvsadm  -C

数器清零

ipvsadm  -Z [-t|u|f service-address]

保存和重载

保存

ipvsadm -S  > /PATH/TO/SOME_RULE_FILE
ipvsadm-save > /PATH/TO/SOME_RULE_FILE

重载

ipvsadm  -R < /PATH/FROM/SOME_RULE_FILE
ipvsadm-restore< /PATH/FROM/SOME_RULE_FILE

其他

修改 LVS 表中的 fin_timeout 使用指令如下

ipvsadm --set 900 60 300

中间的 60 就是 tcp 的 fin_timeout 时间
查看默认的值使用如下命令:

$ sudo /sbin/ipvsadm -Ln --timeout
Timeout (tcp tcpfin udp): 900 60 300

参考1
参考2

使用举例

lvs-nat模型构建

环境说明

vs DIP:192.168.182.190 VIP:192.168.5.190
rs1 192.168.182.193
rs2 192.168.182.194

上面中vs机器需要安装ipvsadm,而后端的rs全部安装httpd做测试使用。

# curl 192.168.182.193
192.168.182.193
# curl 192.168.182.194
192.168.182.194

rs主机配置

测试页面

# curl http://192.168.182.193
192.168.182.193
# curl http://192.168.182.194
192.168.182.194

网络配置

# route add default gw 192.168.182.190
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.182.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
0.0.0.0 192.168.182.190 0.0.0.0 UG 0 0 0 eth1

注意两台rs 都需要将默认网关指向vs的DIP。

vs主机配置

安装ipvsadm

# yum install -y ipvsadm

启动网卡间核心转发功能

# sysctl -w net.ipv4.ip_forward=1
# cat /proc/sys/net/ipv4/ip_forward
1

注意:上面的修改只是临时生效,如果想永久有效则需要修改配置文件:/etc/sysctl.conf。
定义ipvsadm负载均衡集群规则

# ipvsadm -A -t 192.168.5.190:80 -s rr
# ipvsadm -a -t 192.168.5.190:80 -r 192.168.182.193:80 -m
# ipvsadm -a -t 192.168.5.190:80 -r 192.168.182.194:80 -m

测试

# curl http://192.168.5.190
192.168.182.193
# curl http://192.168.5.190
192.168.182.194

扩展学习

保存规则

# ipvsadm-save -n > /tmp/ipvsadm.bak
# cat /tmp/ipvsadm.bak
-A -t 192.168.5.190:80 -s rr
-a -t 192.168.5.190:80 -r 192.168.182.193:80 -m -w 1
-a -t 192.168.5.190:80 -r 192.168.182.194:80 -m -w 1

删除并还原

# ipvsadm -C
# curl http://192.168.5.190
curl: (7) couldn't connect to host
# ipvsadm-restore < /tmp/ipvsadm.bak
# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.190:80 rr
-> 192.168.182.193:80 Masq 1 0 1
-> 192.168.182.194:80 Masq 1 0 2
# curl http://192.168.5.190
192.168.182.194

修改调度算法

# ipvsadm -E -t 192.168.5.190:80 -s wrr
# ipvsadm -e -t 192.168.5.190:80 -r 192.168.182.193:80 -m -w 2
# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.190:80 wrr
-> 192.168.182.193:80 Masq 2 0 0
-> 192.168.182.194:80 Masq 1 0 0
# curl http://192.168.5.190
192.168.182.193
# curl http://192.168.5.190
192.168.182.193
# curl http://192.168.5.190
192.168.182.194

显示lvs目前的连接

# ipvsadm -Lnc
IPVS connection entries
pro expire state source virtual destination
TCP 01:06 TIME_WAIT 192.168.5.190:52413 192.168.5.190:80 192.168.182.193:80
TCP 01:07 TIME_WAIT 192.168.5.190:52414 192.168.5.190:80 192.168.182.194:80
TCP 01:08 TIME_WAIT 192.168.5.190:52415 192.168.5.190:80 192.168.182.193:80
TCP 01:09 TIME_WAIT 192.168.5.190:52416 192.168.5.190:80 192.168.182.193:80
TCP 01:11 TIME_WAIT 192.168.5.190:52417 192.168.5.190:80 192.168.182.194:80

lvs-dr模型构建

环境说明

vs VIP:192.168.5.188
rs1 192.168.5.229
rs2 192.168.5.230
测试页面

# curl 192.168.5.229
192.168.5.229
# curl 192.168.5.230
192.168.5.230

vs配置

# ifconfig eth0:0 192.168.5.188 netmask 255.255.255.255 broadcast 192.168.5.188 up
# ifconfig eth0:0
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:1A:0A:84
inet addr:192.168.5.188 Bcast:192.168.5.188 Mask:255.255.255.255
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

rs配置

rs1:

# ifconfig lo:0 192.168.5.188/32 broadcast 192.168.5.188 up
# route add -host 192.168.5.188 dev lo:0
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.5.188 Mask:0.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.5.188 0.0.0.0 255.255.255.255 UH 0 0 0 lo
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 192.168.5.1 0.0.0.0 UG 0 0 0 eth0

rs2:
和上面的配置相同。
内核参数说明
arp_annouce定义通告级别:

  • 0:默认级别,将本地的任何接口上的配置的地址都在网络中通告

  • 1:尽量避免向本主机上的其他网卡进行网络通信,特殊情况下其他接口也可以

  • 2:总是使用最佳网络地址接口(仅使用定义的网卡接口在同网络通信)

arp_ignore定义响应级别(0-8九个级别),响应时忽略方式

  • 0:都全都响应

  • 1:只对从本接口进入的请求响应,且本接口地址是个网络地址

注释:一般使用arp_annouce=2,arp_ignore=1

vs主机ipvsadm配置

# ipvsadm -A -t 192.168.5.188:80 -s rr
# ipvsadm -a -t 192.168.5.188:80 -r 192.168.5.229:80 -g
# ipvsadm -a -t 192.168.5.188:80 -r 192.168.5.230:80 -g
# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.188:80 rr
-> 192.168.5.229:80 Route 1 0 0
-> 192.168.5.230:80 Route 1 0 0

测试

注意:测试的客户端不要在vs 主机上。

# curl 192.168.5.188
192.168.5.229
# curl 192.168.5.188
192.168.5.230

通过防火墙标记来定义lvs

FWM防火墙标记功能

防火墙标记可以实现多个集群服务绑定为同一个,实现统一调度;将共享一组RS的集群服务统一进行定义FWM基于iptables的mangle表实现防护墙标记功能,定义标记做策略路。

FWM定义集群的步骤

在director上netfilter的mangle表的PREROUTING定义用于"打标"的规则

# iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $serviceport -j MARK --set-mark #

定义集群服务

# ipvsadm -A -f # [-s scheduler]

举例

# iptables -t mangle -A PREROUTING -d 172.16.50.50 -p tcp --dport 80 -j MARK --set-mark 5
# ipvsadm -A -f 5 -s rr
# ipvsadm -a -f 5 -r 172.16.200.10 -g
# ipvsadm -a -f 5 -r 172.16.200.11 -g

LVS持久连接功能

lvs persistence

无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS;实现方式和lvs调度的十种算法无关,通过lvs持久连接模板(hash表)实现,当超过自定义的可持节连接时长候再根据LVS算法本身进行调度。
ipvsadm命令中-p选项实现,在-p后不指定具体数字(单位:秒),默认为300,到时候会自动延长2分钟,对于web本身就是15秒

每端口持久(PPC)

客户端对同一服务端口发起请求,会基于该服务的端口实现请求在一段时间内对同一RS服务器持久连接;
例如:有两台主机做为RS服务器做http和hssh的两种服务的集群,仅http做每端口持久,Client请求会实现绑定在,但是22号端口请求不会绑定在同一台RS
举例

# ipvsadm -C
# ipvsadm -A -t 192.168.1.88:0 -s rr -p 120
# ipvsadm -a -t 192.168.1.88:0 -r 192.168.1.9 -g
# ipvsadm -a -t 192.168.1.88:0 -r 192.168.1.10 -g
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.88:0 rr persistent 120
-> 192.168.1.9:0 Route 1 0 0
-> 192.168.1.10:0 Route 1 0 0

每客户端持久(PCC)

director会将用户的任何请求都识别为集群服务,并向RS进行调度;同一客户端的请求任何端口都发往同一台第一次选定的RS服务器
举例

# ipvsadm -A -t 192.168.1.88:80 -s rr -p 120
# ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.9 -g
# ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.10 -g

每防火墙标记持久(PFWMC)

将两个或两个以上服务通过防火墙打标绑定在一起,这些服务的请求实现同时定向与同一台RS服务器,服务绑定同一RS
举例
lvs-dr模式下以rr算法绑定http和https服务

~]#iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 80 -j MARK--set-mark 99
~]#iptables -t mangle -A PREROUTING -d 172.16.100.9 -p tcp --dport 443 -j MARK--set-mark 99
~]#ipvsadm -A -f 99 -s rr -p
~]#ipvsadm -a -f 99 -r 172.16.100.68 -g
~]#ipvsadm -a -f 99 -r 172.16.100.69 -g

LVS-DR类型RS脚本示例

#!/bin/bash
#
vip=172.16.50.50
interface="lo:0"
case$1 in
start)
echo1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig$interface $vip broadcast $vip netmask 255.255.255.255 up
routeadd -host $vip dev $interface
;;
stop)
echo0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo0 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig$interface down
;;
status)
ififconfig lo:0 |grep $vip &> /dev/null; then
echo"ipvs is running."
else
echo"ipvs is stopped."
fi
;;
*)
echo"Usage: `basename $0` {start|stop|status}"
exit1
esac

扩展学习:
http://xuding.blog.51cto.com/4890434/1740228
http://www.cnblogs.com/edisonchou/p/4281978.html

LVS.md的更多相关文章

  1. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  2. ysql+heartbeat+DRBD+LVS实现mysql高可用

    在企业应用中,mysql+heartbeat+DRBD+LVS是一套成熟的集群解决方案,通过heart+DRBD实现mysql的主 节点写操作的高可用性,而通过mysql+LVS实现数据库的主从复制和 ...

  3. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  4. [原]一个针对LVS的压力测试报告

    LVS 测试报告 测试计划 基本功能测试 流量压力测试 响应时间测试 配置正确性测试 灾难恢复测试 测试点 基本功能测试 客户端IP地址正确性 RealServer 访问Internet测试(包括Ip ...

  5. 好用的Markdown编辑器一览 readme.md 编辑查看

    https://github.com/pandao/editor.md https://pandao.github.io/editor.md/examples/index.html Editor.md ...

  6. 负载均衡之LVS集群

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  7. Keepalived+LVS+nginx双机热备

    Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...

  8. 基于keepalived双主模型的高可用LVS

    背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...

  9. LVS原理详解

    一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...

随机推荐

  1. 前端工程师的mysql笔记

    背景 最近常参与后台php项目,虽说刚毕业时自学过一阵子php和mysql,不过长时间没用也忘差不多了,于是把mysql再温习一遍,前端同学也可以一起学习下! mysql安装以及操作 安装 brew ...

  2. RabbitMQ---2、介绍

    1.背景 RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现. 2.应用场景 2.1异步处理 场景说明:用户注册后,需要发注册邮件和注册短信, ...

  3. 第9天:原型、继承、函数使用推荐以及this的指向

    原型 javascript原型指向改变如何添加方法和访问 <!DOCTYPE html> <html lang="en"> <head> < ...

  4. 14、IO (字节流、字符流)

    输入和输出 * A:输入和输出 * a: 参照物 * 到底是输入还是输出,都是以Java程序为参照 * b: Output * 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 ...

  5. SecureCRT远程连接Linux下的sqlplus中退格键不能使用之解决方法

    ^H不是H键的意思,是backspace 主要是当你的终端backspace有问题的时候才需要设置   在linux环境下使用sqlplus,在回删(backspace)时往往会出现 一串的乱码.出现 ...

  6. HDU 4747(AC不能)

    http://acm.hdu.edu.cn/showproblem.php?pid=4747

  7. WinFrom柱形图

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. [CTSC2008]祭祀(构造方案)

    前面的话 这道题显然就是最长反链 根据 \(Dilworth\) 定理:最小链覆盖数 = 最长反链长度 然后传递闭包跑匹配即可 \(luogu\)交了一下,\(WA\) 了 \(QAQ\) 本来各种 ...

  9. html5 区块与内联div 与span html块级元素

    HTML <div> 和 <span> HTML 列表 HTML 类 可以通过 <div> 和 <span> 将 HTML 元素组合起来. HTML 块 ...

  10. 使用laravel框架与phantomjs实现截屏功能

    在网上看到的关于phantomjs实现截屏功能很多都是与node结合在一起使用,并需要输入命令才能执行.因此我想要实现输入网址即可截屏并输出图片的功能.示例:http://120.77.171.182 ...