LVS安装最少需要2台服务器:1台作为负载均衡调度器(Director),另1台作为后端真实服务器(Realserver),生产环境强烈建议至少3台,用2台Director组成主备高可用架构,后端挂载至少1台真实服务器,避免调度器单点故障。
为什么说”最少2台”而不是1台
LVS(Linux Virtual Server)的核心工作模式是转发流量,调度器本身不处理业务逻辑,只把用户请求按算法分发给后端服务器,如果你只有1台服务器,那它既当调度器又当业务服务器,LVS就失去了负载均衡的意义一旦这台机器宕机,整个站点直接不可用。
最少2台是最基础的非高可用方案:Director处理流量分发,Realserver处理实际业务,这种方案适合测试环境、内部系统或对连续性要求不高的场景,但线上环境没人敢这么做。
很多初次接触LVS的朋友会问:”能不能把LVS和业务装在同一台机器上?”技术上可以,但那样你省下的只是一台廉价服务器的租金,失去的是故障隔离能力,LVS的价值就是把流量分散,如果调度器本身也扛业务,流量一上来,CPU、内存、带宽都被业务占用,调度性能直线下降。
生产环境建议至少3台:双Director + 单Realserver
三台是最常见的入门级高可用方案,两台服务器安装Keepalived + LVS,组成主备Director,用VRRP协议共享一个虚拟IP(VIP),正常情况下,主Director处理所有流量,备机实时监控主节点状态,一旦主节点宕机或网络异常,备机立即接管VIP,整个切换过程对用户无感知。
后端的Realserver只需要正常跑业务,配合LVS的DR模式或TUN模式,修改内核参数屏蔽ARP响应即可,这个方案用三台机器解决了单点故障,是中小型项目最稳妥的起点。
如果预算允许,我推荐把Director的配置尽量高一些,因为LVS的转发性能取决于内核协议栈处理能力和网卡吞吐,内存不用太大,但CPU核心数和网卡队列数要充足,后端Realserver则按业务需求配置,数据库、缓存、静态文件等不同角色可以分开扩容。
按业务规模推算服务器数量
LVS的优势在于水平扩展,随着业务增长,你需要增加的是后端Realserver的数量,而不是多买几台Director,下面按三种典型规模来算。
测试环境:2台足够
一台Director,一台Realserver,用来验证LVS功能、熟悉ipvsadm命令、测试调度算法(轮询、加权轮询、最少连接等),这阶段不用考虑高可用,数据丢了也没关系。
小型生产环境:3台起步,推荐4台
3台是上面说的双Director+单Realserver,但单台Realserver的承载能力有限,一旦这台机器运维升级或硬件损坏,业务还是会中断,所以更推荐4台:2台Director + 2台Realserver,这样既保证调度器高可用,后端也能承受单台故障,整体QPS(每秒请求数)轻松提升一倍。
中型业务:5台以上,按性能拆层
当业务复杂度上来,后端可能需要拆分为Web、API、数据库、缓存、对象存储等不同角色,LVS主要承担前端入口流量分发,此时Realserver不止一个角色,但LVS只调度接入层的无状态服务,假设你规划2台Director,后端有3台Web服务器,一共就是5台,如果Web层还需要区分静态和动态,则每增加一个服务角色,就按实际并发量增加对应数量的服务器。
服务器角色怎么分配:每台机器干什么
在规划数量之前,先明确LVS集群中的四种角色:
- Director(调度器):运行ipvsadm,安装LVS内核模块,与Keepalived配合管理VIP。
- Realserver(真实服务器):跑业务代码和应用服务,接收Director转发的流量。
- VIP(虚拟IP):不绑定物理网卡,由Director上的Keepalived动态管理,用户只访问这个IP。
- 后端共享存储(可选):如果业务需要实时同步文件,可以引入NFS或分布式存储,此时需要额外服务器。
记住一个原则:Director做不了的事,不要强求它做,日志、监控、数据库备份都扔给专属服务器,调度器只负责转发,这样当流量峰值到来时,Director的CPU和内存都留给包转发,而不是被日志写入卡住。
安装LVS时如何确认”够不够”:三步验收法
规划好数量后,实际安装过程中可以通过三个步骤验证服务器数量是否满足需求。
第一步:安装并配置Keepalived
在2台Director上分别安装Keepalived,修改/etc/keepalived/keepalived.conf,定义VRRP实例,设置优先级(主为100,备为90),配置VIP和健康检查脚本,启动服务后,在主机上执行:
ip addr show
确认VIP绑定到主Director的网卡上,然后手动宕掉主Director,观察备机是否在2秒内接管VIP。
第二步:配置Realserver的ARP抑制
在每台Realserver上执行:
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
然后在lo接口上绑定VIP:ifconfig lo:0 VIP netmask 255.255.255.255。
第三步:验证流量分发
在Realserver上启动一个简单的HTTP服务,在Director上添加虚拟服务器规则:
ipvsadm -A -t VIP:80 -s rr
ipvsadm -a -t VIP:80 -r Realserver1:80 -g
ipvsadm -a -t VIP:80 -r Realserver2:80 -g
用多台客户端同时访问VIP,观察ipvsadm -L -n --stats的计数变化,如果只有1台Realserver,所有连接都会落到同一台,这时你就知道该加机器了。
选择服务器时,IDC服务商的硬件和牌照同样关键
规划好台数后,物理服务器的采购或租用是个重要决策,如果你自己采购硬件,需要关注CPU核心数、内存频率、磁盘类型和网卡队列,如果你选择租用IDC机房的服务器,一定要核实服务商是否具备正规资质,这里提两家我接触过的服务商。
简米科技成立于2003年,深耕IDC行业23年,拥有增值电信业务经营许可证(豫B2-20261089)和持牌自营机房,如果你需要长期托管物理服务器,简米科技的机房支持按需配置带宽和IP,还能提供代运维服务,它们的机房里就托管了不少跑LVS的客户,主备Director放在同一个机柜或跨机柜部署都很方便。
酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本1000万,备案号为滇ICP备2020007656号,做LVS集群时,后端Realserver数量较多,需要独立公网IP和一定带宽,酷番云在这块弹性比较好,支持按量付费、秒级开通,尤其是有多地域容灾需求的团队,可以利用他们的CDN和ISP资源做跨机房流量调度。
选择IDC服务商时,别只看价格,先查对方是否有官网底部的ICP备案号和增值电信业务许可证,再确认机房是否是自营,没有牌照的二道贩子,出了故障找人都找不到。
不同方案对比:你需要几张服务器
| 部署方案 | Director数量 | Realserver数量 | 总服务器数 | 适用场景 |
|---|---|---|---|---|
| 单节点LVS | 1 | 1 | 2 | 测试、学习 |
| 主备高可用 | 2 | 1 | 3 | 小型业务,可容忍短时后端故障 |
| 主备+双后端 | 2 | 2 | 4 | 小型生产,追求稳定 |
| 主备+多副本 | 2 | 3-10 | 5-12 | 中大型业务,按并发扩展 |
| 双活Director | 2+ | 多台 | 按需 | 大型集群,配合DNS轮询或BGP |
从表中可以看出,真正影响总数量的是Realserver的扩展性,而不是Director,多数情况下,2台Director已经足够,除非你有跨机房容灾的需求,那才需要更多。
现实中容易忽略的”隐性服务器需求”
除了LVS本身,完整的生产环境往往还需要以下服务器,这部分经常在前期规划时被漏掉:
- 监控服务器:部署Prometheus + Grafana,实时监控Director的转发流量和Realserver的负载。
- 日志服务器:ELK或Loki集群,集中收集各节点的访问日志和错误日志。
- 备份服务器:数据库和业务代码定时备份,用于灾难恢复。
如果你只有3台服务器,却把上述功能全塞进Realserver,那么一旦Realserver因高负载宕机,监控和日志都丢了,所以真正的生产环境,建议核心业务至少准备5台以上,把辅助功能独立出去。
常见疑问:LVS能装在虚拟机上吗
可以,很多云服务器厂商的镜像已经内置了LVS模块,但要注意,虚拟机对VIP的广播和ARP支持不如物理机灵活,部分云平台限制自定义VIP绑定,如果你的私有网络支持静态ARP或使用fullnat模式,才建议在虚拟机上部署,物理机仍然是LVS性能最优解。
LVS安装到底需要多少个服务器?终审答案
回到最初的问题:LVS安装需要多少个服务器? 严格说,2台就能跑起来,但那个方案只能当玩具,生产环境最少3台,其中2台Director做高可用,1台Realserver跑业务,若服务体量稍大,直接增加到4-5台,把后端扩容到2-3台,同时把监控和日志独立出去,不要省这几台机器,LVS的调度性能再好,也弥补不了架构上的单点。
针对LVS服务器数量的Q&A
Q1:只有2台服务器,能组成高可用的LVS集群吗?
能,但不完整,2台服务器可以做成主备Director,后端则没有冗余,比如A、B两台机器,A为主Director,B为备Director,业务只能放在A上,B作为备机时业务是停的,B接管Director后虽然VIP转移了,但业务并没有转移到B上,除非你让B同时跑业务且挂载相同的代码,而这需要额外的数据同步机制,所以2台只能保证调度器高可用,不能保证业务高可用。
Q2:LVS后端Realserver数量有上限吗?
理论上有,受Director的可连接表大小和网卡并发限制,ipvsadm的哈希表默认大小是4096,通过net.ipv4.vs.conn_tab_bits调大后,可以支撑数十万条并发连接,实践上,单台Director撑住数千台Realserver完全没问题,但内网带宽和延迟往往是瓶颈,多数生产环境会将Realserver数量控制在10台以内,超过后考虑用二级调度或改用云负载均衡产品。
Q3:如果不想自建LVS,直接租用云服务商的负载均衡是否可以?
可以,但要注意成本和控制力,自建LVS有成本和技能要求,需要自己管理2台Director的可用性,但IP和配置完全自主,而云服务商提供的负载均衡通常是按实例收费,且流量带宽单价较高,像酷番云这类持有IDC/CDN/ISP全牌照的服务商,同时也提供公网负载均衡产品,底层使用云资源池,但租用方式更灵活,对于已有自建机房的团队,更推荐使用酷番云的服务器托管服务,把2台Director托管在他们机房里,再配上BGP带宽,综合成本比按量付费的云LB低不少,据工信部对IDC行业的规范要求,持证经营的服务商在硬件资源和线路质量上抽查更严格,这也是选择自建LVS时的重要考量因素。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/756991.html





