1.8. Linux 虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​

Linux 虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​(LVS)是​​​​​​​一​​​​​​​组​​​​​​​集​​​​​​​成​​​​​​​的​​​​​​​软​​​​​​​件​​​​​​​组​​​​​​​件​​​​​​​,它​​​​​​​用​​​​​​​于​​​​​​​在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​之​​​​​​​间​​​​​​​平​​​​​​​衡​​​​​​​ IP 负​​​​​​​载​​​​​​​。​​​​​​​LVS 运​​​​​​​行​​​​​​​在​​​​​​​一​​​​​​​对​​​​​​​配​​​​​​​置​​​​​​​相​​​​​​​同​​​​​​​的​​​​​​​机​​​​​​​器​​​​​​​上​​​​​​​:一​​​​​​​个​​​​​​​作​​​​​​​为​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​而​​​​​​​另​​​​​​​外​​​​​​​一​​​​​​​个​​​​​​​作​​​​​​​为​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​。​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​扮​​​​​​​演​​​​​​​两​​​​​​​个​​​​​​​角​​​​​​​色​​​​​​​:
  • 在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​之​​​​​​​间​​​​​​​平​​​​​​​衡​​​​​​​负​​​​​​​载​​​​​​​。​​​​​​​
  • 检​​​​​​​查​​​​​​​每​​​​​​​个​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​的​​​​​​​完​​​​​​​整​​​​​​​性​​​​​​​。​​​​​​​
备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​监​​​​​​​控​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​并​​​​​​​在​​​​​​​它​​​​​​​发​​​​​​​生​​​​​​​故​​​​​​​障​​​​​​​时​​​​​​​进​​​​​​​行​​​​​​​接​​​​​​​管​​​​​​​。​​​​​​​
图 1.19 “Components of a Running LVS Cluster” provides an overview of the LVS components and their interrelationship.
Components of a Running LVS Cluster

图 1.19. Components of a Running LVS Cluster

pulse 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​运​​​​​​​行​​​​​​​在​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​以​​​​​​​及​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​上​​​​​​​。​​​​​​​在​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​上​​​​​​​,pulse 发​​​​​​​送​​​​​​​ heartbeat 到​​​​​​​活​​​​​​​动​​​​​​​路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​公​​​​​​​用​​​​​​​接​​​​​​​口​​​​​​​,确​​​​​​​保​​​​​​​活​​​​​​​动​​​​​​​路​​​​​​​由​​​​​​​器​​​​​​​正​​​​​​​常​​​​​​​工​​​​​​​作​​​​​​​。​​​​​​​在​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​上​​​​​​​,pulse 启​​​​​​​动​​​​​​​ lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​并​​​​​​​响​​​​​​​应​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​ heartbeat 查​​​​​​​询​​​​​​​。​​​​​​​
一​​​​​​​旦​​​​​​​启​​​​​​​动​​​​​​​,lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​将​​​​​​​调​​​​​​​用​​​​​​​ ipvsadm 工​​​​​​​具​​​​​​​来​​​​​​​配​​​​​​​置​​​​​​​和​​​​​​​维​​​​​​​护​​​​​​​内​​​​​​​核​​​​​​​里​​​​​​​的​​​​​​​ IPVS(IP 虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​)路​​​​​​​由​​​​​​​表​​​​​​​,并​​​​​​​为​​​​​​​每​​​​​​​台​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​配​​​​​​​置​​​​​​​的​​​​​​​的​​​​​​​每​​​​​​​个​​​​​​​虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​启​​​​​​​动​​​​​​​一​​​​​​​个​​​​​​​ nanny 进​​​​​​​程​​​​​​​。​​​​​​​每​​​​​​​个​​​​​​​ nanny 进​​​​​​​程​​​​​​​检​​​​​​​查​​​​​​​一​​​​​​​台​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​的​​​​​​​一​​​​​​​个​​​​​​​配​​​​​​​置​​​​​​​好​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​的​​​​​​​状​​​​​​​态​​​​​​​,并​​​​​​​告​​​​​​​诉​​​​​​​ lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​这​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​是​​​​​​​否​​​​​​​发​​​​​​​生​​​​​​​了​​​​​​​故​​​​​​​障​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​检​​​​​​​测​​​​​​​到​​​​​​​了​​​​​​​故​​​​​​​障​​​​​​​,lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​将​​​​​​​指​​​​​​​引​​​​​​​ ipvsadm 从​​​​​​​ IPVS 路​​​​​​​由​​​​​​​表​​​​​​​中​​​​​​​删​​​​​​​除​​​​​​​那​​​​​​​台​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​的​​​​​​​条​​​​​​​目​​​​​​​。​​​​​​​
如​​​​​​​果​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​没​​​​​​​有​​​​​​​从​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​收​​​​​​​到​​​​​​​响​​​​​​​应​​​​​​​,它​​​​​​​将​​​​​​​初​​​​​​​始​​​​​​​化​​​​​​​故​​​​​​​障​​​​​​​切​​​​​​​换​​​​​​​,调​​​​​​​用​​​​​​​ send_arp 将​​​​​​​所​​​​​​​有​​​​​​​虚​​​​​​​拟​​​​​​​ IP 地​​​​​​​址​​​​​​​重​​​​​​​新​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​ NIC 硬​​​​​​​件​​​​​​​地​​​​​​​址​​​​​​​(MAC 地​​​​​​​址​​​​​​​),并​​​​​​​通​​​​​​​过​​​​​​​公​​​​​​​用​​​​​​​以​​​​​​​及​​​​​​​专​​​​​​​用​​​​​​​网​​​​​​​络​​​​​​​接​​​​​​​口​​​​​​​向​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​发​​​​​​​送​​​​​​​命​​​​​​​令​​​​​​​来​​​​​​​关​​​​​​​闭​​​​​​​其​​​​​​​ lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​,然​​​​​​​后​​​​​​​在​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​上​​​​​​​启​​​​​​​动​​​​​​​ lvs 守​​​​​​​护​​​​​​​进​​​​​​​程​​​​​​​来​​​​​​​接​​​​​​​受​​​​​​​虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​。​​​​​​​
对​​​​​​​于​​​​​​​访​​​​​​​问​​​​​​​宿​​​​​​​主​​​​​​​服​​​​​​​务​​​​​​​(如​​​​​​​网​​​​​​​站​​​​​​​或​​​​​​​数​​​​​​​据​​​​​​​库​​​​​​​应​​​​​​​用​​​​​​​程​​​​​​​序​​​​​​​)的​​​​​​​外​​​​​​​部​​​​​​​用​​​​​​​户​​​​​​​,LVS 就​​​​​​​象​​​​​​​是​​​​​​​一​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​然​​​​​​​而​​​​​​​,用​​​​​​​户​​​​​​​实​​​​​​​际​​​​​​​上​​​​​​​访​​​​​​​问​​​​​​​了​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​后​​​​​​​面​​​​​​​的​​​​​​​多​​​​​​​个​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​
因​​​​​​​为​​​​​​​在​​​​​​​ LVS 里​​​​​​​没​​​​​​​有​​​​​​​内​​​​​​​置​​​​​​​组​​​​​​​件​​​​​​​在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​间​​​​​​​共​​​​​​​享​​​​​​​数​​​​​​​据​​​​​​​,您​​​​​​​有​​​​​​​两​​​​​​​个​​​​​​​基​​​​​​​本​​​​​​​选​​​​​​​择​​​​​​​:
  • 在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​间​​​​​​​对​​​​​​​数​​​​​​​据​​​​​​​进​​​​​​​行​​​​​​​同​​​​​​​步​​​​​​​。​​​​​​​
  • 在​​​​​​​拓​​​​​​​扑​​​​​​​结​​​​​​​构​​​​​​​中​​​​​​​添​​​​​​​加​​​​​​​用​​​​​​​于​​​​​​​共​​​​​​​享​​​​​​​数​​​​​​​据​​​​​​​访​​​​​​​问​​​​​​​的​​​​​​​第​​​​​​​三​​​​​​​层​​​​​​​。​​​​​​​
对​​​​​​​于​​​​​​​不​​​​​​​允​​​​​​​许​​​​​​​大​​​​​​​量​​​​​​​用​​​​​​​户​​​​​​​在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​上​​​​​​​载​​​​​​​或​​​​​​​修​​​​​​​改​​​​​​​数​​​​​​​据​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​来​​​​​​​说​​​​​​​,第​​​​​​​一​​​​​​​个​​​​​​​选​​​​​​​择​​​​​​​是​​​​​​​首​​​​​​​选​​​​​​​项​​​​​​​。​​​​​​​而​​​​​​​如​​​​​​​果​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​允​​​​​​​许​​​​​​​大​​​​​​​量​​​​​​​用​​​​​​​户​​​​​​​修​​​​​​​改​​​​​​​数​​​​​​​据​​​​​​​,如​​​​​​​电​​​​​​​子​​​​​​​商​​​​​​​务​​​​​​​网​​​​​​​站​​​​​​​,添​​​​​​​加​​​​​​​第​​​​​​​三​​​​​​​层​​​​​​​则​​​​​​​更​​​​​​​为​​​​​​​可​​​​​​​取​​​​​​​。​​​​​​​
有​​​​​​​许​​​​​​​多​​​​​​​方​​​​​​​法​​​​​​​可​​​​​​​以​​​​​​​在​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​间​​​​​​​进​​​​​​​行​​​​​​​数​​​​​​​据​​​​​​​同​​​​​​​步​​​​​​​。​​​​​​​例​​​​​​​如​​​​​​​,您​​​​​​​可​​​​​​​以​​​​​​​使​​​​​​​用​​​​​​​ shell 脚​​​​​​​本​​​​​​​同​​​​​​​时​​​​​​​将​​​​​​​更​​​​​​​新​​​​​​​的​​​​​​​ web 页​​​​​​​面​​​​​​​登​​​​​​​记​​​​​​​到​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​或​​​​​​​者​​​​​​​,您​​​​​​​可​​​​​​​以​​​​​​​使​​​​​​​用​​​​​​​ rsync 等​​​​​​​程​​​​​​​序​​​​​​​以​​​​​​​设​​​​​​​定​​​​​​​的​​​​​​​时​​​​​​​间​​​​​​​间​​​​​​​隔​​​​​​​在​​​​​​​所​​​​​​​有​​​​​​​节​​​​​​​点​​​​​​​间​​​​​​​复​​​​​​​制​​​​​​​改​​​​​​​动​​​​​​​的​​​​​​​数​​​​​​​据​​​​​​​。​​​​​​​然​​​​​​​而​​​​​​​,在​​​​​​​用​​​​​​​户​​​​​​​频​​​​​​​繁​​​​​​​地​​​​​​​上​​​​​​​载​​​​​​​文​​​​​​​件​​​​​​​或​​​​​​​执​​​​​​​行​​​​​​​数​​​​​​​据​​​​​​​库​​​​​​​事​​​​​​​务​​​​​​​的​​​​​​​环​​​​​​​境​​​​​​​里​​​​​​​,使​​​​​​​用​​​​​​​脚​​​​​​​本​​​​​​​或​​​​​​​ rsync 命​​​​​​​令​​​​​​​来​​​​​​​进​​​​​​​行​​​​​​​同​​​​​​​步​​​​​​​并​​​​​​​不​​​​​​​是​​​​​​​最​​​​​​​理​​​​​​​想​​​​​​​的​​​​​​​方​​​​​​​法​​​​​​​。​​​​​​​因​​​​​​​此​​​​​​​,对​​​​​​​于​​​​​​​执​​​​​​​行​​​​​​​大​​​​​​​量​​​​​​​上​​​​​​​载​​​​​​​、​​​​​​​数​​​​​​​据​​​​​​​库​​​​​​​事​​​​​​​务​​​​​​​或​​​​​​​具​​​​​​​有​​​​​​​类​​​​​​​似​​​​​​​流​​​​​​​量​​​​​​​的​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​,三​​​​​​​层​​​​​​​的​​​​​​​拓​​​​​​​扑​​​​​​​结​​​​​​​构​​​​​​​(three-tiered topology) 更​​​​​​​适​​​​​​​合​​​​​​​于​​​​​​​数​​​​​​​据​​​​​​​同​​​​​​​步​​​​​​​。​​​​​​​

1.8.1. Two-Tier LVS Topology

图 1.20 “Two-Tier LVS Topology” shows a simple LVS configuration consisting of two tiers: LVS routers and real servers. The LVS-router tier consists of one active LVS router and one backup LVS router. The real-server tier consists of real servers connected to the private network. Each LVS router has two network interfaces: one connected to a public network (Internet) and one connected to a private network. A network interface connected to each network allows the LVS routers to regulate traffic between clients on the public network and the real servers on the private network. In 图 1.20 “Two-Tier LVS Topology”, the active LVS router uses Network Address Translation (NAT) to direct traffic from the public network to real servers on the private network, which in turn provide services as requested. The real servers pass all public traffic through the active LVS router. From the perspective of clients on the public network, the LVS router appears as one entity.
Two-Tier LVS Topology

图 1.20. Two-Tier LVS Topology

到​​​​​​​达​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​请​​​​​​​求​​​​​​​被​​​​​​​指​​​​​​​引​​​​​​​到​​​​​​​虚​​​​​​​拟​​​​​​​ IP 地​​​​​​​址​​​​​​​或​​​​​​​ VIP。​​​​​​​这​​​​​​​是​​​​​​​一​​​​​​​个​​​​​​​公​​​​​​​用​​​​​​​的​​​​​​​地​​​​​​​址​​​​​​​,站​​​​​​​点​​​​​​​管​​​​​​​理​​​​​​​员​​​​​​​将​​​​​​​它​​​​​​​和​​​​​​​全​​​​​​​限​​​​​​​定​​​​​​​域​​​​​​​名​​​​​​​相​​​​​​​关​​​​​​​联​​​​​​​,如​​​​​​​ www.example.com,并​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​一​​​​​​​个​​​​​​​或​​​​​​​多​​​​​​​个​​​​​​​虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​[1]。​​​​​​​注​​​​​​​意​​​​​​​,进​​​​​​​行​​​​​​​故​​​​​​​障​​​​​​​切​​​​​​​换​​​​​​​时​​​​​​​,VIP 地​​​​​​​址​​​​​​​将​​​​​​​从​​​​​​​一​​​​​​​个​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​移​​​​​​​植​​​​​​​到​​​​​​​另​​​​​​​外​​​​​​​一​​​​​​​个​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​,并​​​​​​​保​​​​​​​持​​​​​​​这​​​​​​​个​​​​​​​ IP 地​​​​​​​址​​​​​​​,这​​​​​​​被​​​​​​​称​​​​​​​为​​​​​​​浮​​​​​​​动​​​​​​​ IP 地​​​​​​​址​​​​​​​(floating IP address)。​​​​​​​
VIP 地​​​​​​​址​​​​​​​可​​​​​​​以​​​​​​​以​​​​​​​连​​​​​​​接​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​到​​​​​​​公​​​​​​​用​​​​​​​网​​​​​​​络​​​​​​​的​​​​​​​接​​​​​​​口​​​​​​​为​​​​​​​别​​​​​​​名​​​​​​​。​​​​​​​例​​​​​​​如​​​​​​​,如​​​​​​​果​​​​​​​ eth0 连​​​​​​​接​​​​​​​至​​​​​​​ Internet,那​​​​​​​么​​​​​​​多​​​​​​​个​​​​​​​虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​可​​​​​​​以​​​​​​​使​​​​​​​用​​​​​​​别​​​​​​​名​​​​​​​ eth0:1。​​​​​​​或​​​​​​​者​​​​​​​,每​​​​​​​个​​​​​​​虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​可​​​​​​​以​​​​​​​按​​​​​​​照​​​​​​​服​​​​​​​务​​​​​​​和​​​​​​​单​​​​​​​独​​​​​​​的​​​​​​​设​​​​​​​备​​​​​​​相​​​​​​​关​​​​​​​联​​​​​​​。​​​​​​​例​​​​​​​如​​​​​​​,HTTP 通​​​​​​​信​​​​​​​在​​​​​​​ eth0:1 上​​​​​​​处​​​​​​​理​​​​​​​,而​​​​​​​ FTP 通​​​​​​​信​​​​​​​在​​​​​​​ eth0:2 上​​​​​​​进​​​​​​​行​​​​​​​处​​​​​​​理​​​​​​​。​​​​​​​
在​​​​​​​某​​​​​​​一​​​​​​​时​​​​​​​刻​​​​​​​只​​​​​​​能​​​​​​​有​​​​​​​一​​​​​​​个​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​处​​​​​​​于​​​​​​​活​​​​​​​动​​​​​​​状​​​​​​​态​​​​​​​。​​​​​​​活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​角​​​​​​​色​​​​​​​是​​​​​​​将​​​​​​​服​​​​​​​务​​​​​​​请​​​​​​​求​​​​​​​从​​​​​​​虚​​​​​​​拟​​​​​​​ IP 地​​​​​​​址​​​​​​​重​​​​​​​定​​​​​​​向​​​​​​​到​​​​​​​实​​​​​​​际​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​这​​​​​​​种​​​​​​​重​​​​​​​定​​​​​​​向​​​​​​​是​​​​​​​基​​​​​​​于​​​​​​​下​​​​​​​面​​​​​​​ 8 个​​​​​​​负​​​​​​​载​​​​​​​平​​​​​​​衡​​​​​​​算​​​​​​​法​​​​​​​中​​​​​​​的​​​​​​​一​​​​​​​个​​​​​​​:
  • 轮​​​​​​​询​​​​​​​调​​​​​​​度​​​​​​​(Round-Robin Scheduling)— 将​​​​​​​每​​​​​​​个​​​​​​​请​​​​​​​求​​​​​​​按​​​​​​​顺​​​​​​​序​​​​​​​地​​​​​​​在​​​​​​​一​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​里​​​​​​​进​​​​​​​行​​​​​​​分​​​​​​​发​​​​​​​。​​​​​​​使​​​​​​​用​​​​​​​这​​​​​​​个​​​​​​​算​​​​​​​法​​​​​​​,所​​​​​​​有​​​​​​​的​​​​​​​真​​​​​​​实​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​都​​​​​​​被​​​​​​​一​​​​​​​视​​​​​​​同​​​​​​​仁​​​​​​​,而​​​​​​​不​​​​​​​考​​​​​​​虑​​​​​​​其​​​​​​​能​​​​​​​力​​​​​​​或​​​​​​​负​​​​​​​载​​​​​​​。​​​​​​​
  • 加​​​​​​​权​​​​​​​轮​​​​​​​询​​​​​​​调​​​​​​​度​​​​​​​(Weighted Round-Robin Scheduling)— 将​​​​​​​每​​​​​​​个​​​​​​​请​​​​​​​求​​​​​​​按​​​​​​​顺​​​​​​​序​​​​​​​地​​​​​​​在​​​​​​​一​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​里​​​​​​​进​​​​​​​行​​​​​​​分​​​​​​​发​​​​​​​,但​​​​​​​赋​​​​​​​予​​​​​​​能​​​​​​​力​​​​​​​更​​​​​​​强​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​更​​​​​​​多​​​​​​​的​​​​​​​负​​​​​​​载​​​​​​​。​​​​​​​能​​​​​​​力​​​​​​​用​​​​​​​用​​​​​​​户​​​​​​​分​​​​​​​配​​​​​​​的​​​​​​​权​​​​​​​重​​​​​​​来​​​​​​​表​​​​​​​示​​​​​​​,然​​​​​​​后​​​​​​​根​​​​​​​据​​​​​​​负​​​​​​​载​​​​​​​信​​​​​​​息​​​​​​​动​​​​​​​态​​​​​​​地​​​​​​​进​​​​​​​行​​​​​​​上​​​​​​​下​​​​​​​调​​​​​​​整​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​里​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​的​​​​​​​能​​​​​​​力​​​​​​​区​​​​​​​别​​​​​​​很​​​​​​​大​​​​​​​,这​​​​​​​是​​​​​​​首​​​​​​​选​​​​​​​的​​​​​​​办​​​​​​​法​​​​​​​。​​​​​​​然​​​​​​​而​​​​​​​,如​​​​​​​果​​​​​​​请​​​​​​​求​​​​​​​负​​​​​​​载​​​​​​​突​​​​​​​然​​​​​​​发​​​​​​​生​​​​​​​变​​​​​​​化​​​​​​​,权​​​​​​​重​​​​​​​更​​​​​​​大​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​可​​​​​​​能​​​​​​​会​​​​​​​处​​​​​​​理​​​​​​​超​​​​​​​过​​​​​​​其​​​​​​​份​​​​​​​额​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​。​​​​​​​
  • 最​​​​​​​小​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​(Least-Connection Scheduling)— 给​​​​​​​活​​​​​​​动​​​​​​​连​​​​​​​接​​​​​​​较​​​​​​​少​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​分​​​​​​​配​​​​​​​更​​​​​​​多​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​。​​​​​​​这​​​​​​​是​​​​​​​一​​​​​​​种​​​​​​​动​​​​​​​态​​​​​​​调​​​​​​​度​​​​​​​算​​​​​​​法​​​​​​​,如​​​​​​​果​​​​​​​请​​​​​​​求​​​​​​​负​​​​​​​载​​​​​​​变​​​​​​​化​​​​​​​较​​​​​​​快​​​​​​​,这​​​​​​​是​​​​​​​一​​​​​​​个​​​​​​​更​​​​​​​好​​​​​​​的​​​​​​​选​​​​​​​择​​​​​​​。​​​​​​​它​​​​​​​最​​​​​​​适​​​​​​​合​​​​​​​于​​​​​​​每​​​​​​​个​​​​​​​节​​​​​​​点​​​​​​​都​​​​​​​具​​​​​​​备​​​​​​​基​​​​​​​本​​​​​​​相​​​​​​​同​​​​​​​的​​​​​​​能​​​​​​​力​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​的​​​​​​​能​​​​​​​力​​​​​​​不​​​​​​​一​​​​​​​样​​​​​​​,权​​​​​​​重​​​​​​​最​​​​​​​小​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​(weighted least-connection scheduling)就​​​​​​​是​​​​​​​更​​​​​​​好​​​​​​​的​​​​​​​选​​​​​​​择​​​​​​​。​​​​​​​
  • 权​​​​​​​重​​​​​​​最​​​​​​​小​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​(Weighted Least-Connections)— 这​​​​​​​是​​​​​​​缺​​​​​​​省​​​​​​​的​​​​​​​算​​​​​​​法​​​​​​​。​​​​​​​它​​​​​​​将​​​​​​​更​​​​​​​多​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​相​​​​​​​对​​​​​​​其​​​​​​​能​​​​​​​力​​​​​​​具​​​​​​​有​​​​​​​较​​​​​​​少​​​​​​​连​​​​​​​接​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​能​​​​​​​力​​​​​​​以​​​​​​​用​​​​​​​户​​​​​​​分​​​​​​​配​​​​​​​的​​​​​​​权​​​​​​​重​​​​​​​来​​​​​​​表​​​​​​​示​​​​​​​,并​​​​​​​根​​​​​​​据​​​​​​​动​​​​​​​态​​​​​​​负​​​​​​​载​​​​​​​信​​​​​​​息​​​​​​​上​​​​​​​下​​​​​​​调​​​​​​​整​​​​​​​。​​​​​​​当​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​包​​​​​​​含​​​​​​​具​​​​​​​有​​​​​​​不​​​​​​​同​​​​​​​能​​​​​​​力​​​​​​​的​​​​​​​硬​​​​​​​件​​​​​​​时​​​​​​​,附​​​​​​​加​​​​​​​的​​​​​​​权​​​​​​​重​​​​​​​使​​​​​​​其​​​​​​​成​​​​​​​为​​​​​​​理​​​​​​​想​​​​​​​的​​​​​​​算​​​​​​​法​​​​​​​。​​​​​​​
  • 基​​​​​​​于​​​​​​​局​​​​​​​部​​​​​​​性​​​​​​​的​​​​​​​最​​​​​​​少​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​(Locality-Based Least-Connection Scheduling)— 将​​​​​​​更​​​​​​​多​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​相​​​​​​​对​​​​​​​其​​​​​​​目​​​​​​​的​​​​​​​ IP 地​​​​​​​址​​​​​​​具​​​​​​​有​​​​​​​较​​​​​​​少​​​​​​​连​​​​​​​接​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​这​​​​​​​个​​​​​​​算​​​​​​​法​​​​​​​用​​​​​​​于​​​​​​​代​​​​​​​理​​​​​​​-缓​​​​​​​存​​​​​​​(proxy-cache)的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​群​​​​​​​集​​​​​​​。​​​​​​​它​​​​​​​根​​​​​​​据​​​​​​​目​​​​​​​标​​​​​​​ IP 地​​​​​​​址​​​​​​​将​​​​​​​数​​​​​​​据​​​​​​​报​​​​​​​文​​​​​​​指​​​​​​​引​​​​​​​到​​​​​​​这​​​​​​​个​​​​​​​地​​​​​​​址​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​,除​​​​​​​非​​​​​​​该​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​超​​​​​​​载​​​​​​​并​​​​​​​有​​​​​​​一​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​处​​​​​​​于​​​​​​​一​​​​​​​半​​​​​​​的​​​​​​​工​​​​​​​作​​​​​​​负​​​​​​​荷​​​​​​​,此​​​​​​​时​​​​​​​它​​​​​​​将​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​负​​​​​​​荷​​​​​​​最​​​​​​​小​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​
  • 带​​​​​​​复​​​​​​​制​​​​​​​的​​​​​​​基​​​​​​​于​​​​​​​局​​​​​​​部​​​​​​​性​​​​​​​最​​​​​​​小​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​(Locality-Based Least-Connection Scheduling with Replication Scheduling)— 将​​​​​​​更​​​​​​​多​​​​​​​的​​​​​​​请​​​​​​​求​​​​​​​分​​​​​​​配​​​​​​​给​​​​​​​相​​​​​​​对​​​​​​​其​​​​​​​目​​​​​​​的​​​​​​​ IP 地​​​​​​​址​​​​​​​具​​​​​​​有​​​​​​​较​​​​​​​少​​​​​​​连​​​​​​​接​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​这​​​​​​​个​​​​​​​算​​​​​​​法​​​​​​​也​​​​​​​用​​​​​​​于​​​​​​​代​​​​​​​理​​​​​​​-缓​​​​​​​存​​​​​​​(proxy-cache)的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​群​​​​​​​集​​​​​​​。​​​​​​​它​​​​​​​和​​​​​​​基​​​​​​​于​​​​​​​局​​​​​​​部​​​​​​​性​​​​​​​最​​​​​​​小​​​​​​​连​​​​​​​接​​​​​​​调​​​​​​​度​​​​​​​的​​​​​​​区​​​​​​​别​​​​​​​是​​​​​​​:它​​​​​​​将​​​​​​​目​​​​​​​标​​​​​​​ IP 地​​​​​​​址​​​​​​​映​​​​​​​射​​​​​​​到​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​节​​​​​​​点​​​​​​​的​​​​​​​一​​​​​​​个​​​​​​​子​​​​​​​集​​​​​​​。​​​​​​​请​​​​​​​求​​​​​​​将​​​​​​​被​​​​​​​发​​​​​​​送​​​​​​​到​​​​​​​这​​​​​​​个​​​​​​​子​​​​​​​集​​​​​​​里​​​​​​​具​​​​​​​有​​​​​​​最​​​​​​​低​​​​​​​连​​​​​​​接​​​​​​​数​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​所​​​​​​​有​​​​​​​目​​​​​​​的​​​​​​​ IP 地​​​​​​​址​​​​​​​的​​​​​​​节​​​​​​​点​​​​​​​都​​​​​​​超​​​​​​​载​​​​​​​,它​​​​​​​将​​​​​​​整​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​里​​​​​​​的​​​​​​​具​​​​​​​有​​​​​​​最​​​​​​​少​​​​​​​连​​​​​​​接​​​​​​​数​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​添​​​​​​​加​​​​​​​到​​​​​​​用​​​​​​​于​​​​​​​该​​​​​​​目​​​​​​​的​​​​​​​ IP 地​​​​​​​址​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​子​​​​​​​集​​​​​​​里​​​​​​​,这​​​​​​​样​​​​​​​就​​​​​​​复​​​​​​​制​​​​​​​了​​​​​​​用​​​​​​​于​​​​​​​该​​​​​​​地​​​​​​​址​​​​​​​的​​​​​​​一​​​​​​​个​​​​​​​新​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​。​​​​​​​然​​​​​​​后​​​​​​​负​​​​​​​载​​​​​​​最​​​​​​​重​​​​​​​的​​​​​​​节​​​​​​​点​​​​​​​将​​​​​​​从​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​子​​​​​​​集​​​​​​​里​​​​​​​删​​​​​​​除​​​​​​​来​​​​​​​防​​​​​​​止​​​​​​​过​​​​​​​度​​​​​​​复​​​​​​​制​​​​​​​。​​​​​​​
  • 源​​​​​​​地​​​​​​​址​​​​​​​散​​​​​​​列​​​​​​​调​​​​​​​度​​​​​​​(Source Hash Scheduling)— 通​​​​​​​过​​​​​​​在​​​​​​​静​​​​​​​态​​​​​​​散​​​​​​​列​​​​​​​表​​​​​​​里​​​​​​​查​​​​​​​找​​​​​​​源​​​​​​​ IP 地​​​​​​​址​​​​​​​来​​​​​​​将​​​​​​​请​​​​​​​求​​​​​​​发​​​​​​​送​​​​​​​到​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​池​​​​​​​。​​​​​​​这​​​​​​​个​​​​​​​算​​​​​​​法​​​​​​​用​​​​​​​于​​​​​​​带​​​​​​​有​​​​​​​多​​​​​​​重​​​​​​​防​​​​​​​火​​​​​​​墙​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​。​​​​​​​
而​​​​​​​且​​​​​​​,活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​通​​​​​​​过​​​​​​​简​​​​​​​单​​​​​​​的​​​​​​​ send/expect scripts 动​​​​​​​态​​​​​​​地​​​​​​​监​​​​​​​控​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​的​​​​​​​特​​​​​​​定​​​​​​​服​​​​​​​务​​​​​​​的​​​​​​​健​​​​​​​康​​​​​​​状​​​​​​​况​​​​​​​。​​​​​​​为​​​​​​​了​​​​​​​帮​​​​​​​助​​​​​​​检​​​​​​​测​​​​​​​需​​​​​​​要​​​​​​​动​​​​​​​态​​​​​​​数​​​​​​​据​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​(如​​​​​​​ HTTPS 或​​​​​​​ SSL)的​​​​​​​健​​​​​​​康​​​​​​​状​​​​​​​况​​​​​​​,您​​​​​​​也​​​​​​​可​​​​​​​以​​​​​​​调​​​​​​​用​​​​​​​外​​​​​​​部​​​​​​​的​​​​​​​执​​​​​​​行​​​​​​​程​​​​​​​序​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​上​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​发​​​​​​​生​​​​​​​了​​​​​​​故​​​​​​​障​​​​​​​,活​​​​​​​动​​​​​​​的​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​将​​​​​​​停​​​​​​​止​​​​​​​发​​​​​​​送​​​​​​​任​​​​​​​务​​​​​​​到​​​​​​​这​​​​​​​个​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​,直​​​​​​​到​​​​​​​它​​​​​​​恢​​​​​​​复​​​​​​​正​​​​​​​常​​​​​​​操​​​​​​​作​​​​​​​。​​​​​​​
备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​扮​​​​​​​演​​​​​​​备​​​​​​​用​​​​​​​系​​​​​​​统​​​​​​​的​​​​​​​角​​​​​​​色​​​​​​​。​​​​​​​LVS 路​​​​​​​由​​​​​​​器​​​​​​​通​​​​​​​过​​​​​​​主​​​​​​​要​​​​​​​的​​​​​​​外​​​​​​​部​​​​​​​公​​​​​​​用​​​​​​​接​​​​​​​口​​​​​​​定​​​​​​​期​​​​​​​地​​​​​​​交​​​​​​​换​​​​​​​ heartbeat 信​​​​​​​息​​​​​​​,在​​​​​​​故​​​​​​​障​​​​​​​切​​​​​​​换​​​​​​​的​​​​​​​情​​​​​​​况​​​​​​​下​​​​​​​则​​​​​​​通​​​​​​​过​​​​​​​专​​​​​​​用​​​​​​​接​​​​​​​口​​​​​​​。​​​​​​​如​​​​​​​果​​​​​​​备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​在​​​​​​​预​​​​​​​期​​​​​​​的​​​​​​​时​​​​​​​间​​​​​​​间​​​​​​​隔​​​​​​​里​​​​​​​没​​​​​​​有​​​​​​​接​​​​​​​收​​​​​​​到​​​​​​​ heartbeat 信​​​​​​​息​​​​​​​,它​​​​​​​将​​​​​​​初​​​​​​​始​​​​​​​化​​​​​​​故​​​​​​​障​​​​​​​切​​​​​​​换​​​​​​​并​​​​​​​开​​​​​​​始​​​​​​​执​​​​​​​行​​​​​​​活​​​​​​​动​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​任​​​​​​​务​​​​​​​。​​​​​​​在​​​​​​​故​​​​​​​障​​​​​​​切​​​​​​​换​​​​​​​过​​​​​​​程​​​​​​​中​​​​​​​,备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​用​​​​​​​ ARP spoofing 技​​​​​​​术​​​​​​​接​​​​​​​管​​​​​​​失​​​​​​​效​​​​​​​路​​​​​​​由​​​​​​​器​​​​​​​的​​​​​​​ VIP 地​​​​​​​址​​​​​​​ — 备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​将​​​​​​​自​​​​​​​己​​​​​​​作​​​​​​​为​​​​​​​发​​​​​​​送​​​​​​​到​​​​​​​失​​​​​​​效​​​​​​​节​​​​​​​点​​​​​​​的​​​​​​​ IP 数​​​​​​​据​​​​​​​包​​​​​​​的​​​​​​​目​​​​​​​的​​​​​​​地​​​​​​​。​​​​​​​当​​​​​​​失​​​​​​​效​​​​​​​节​​​​​​​点​​​​​​​恢​​​​​​​复​​​​​​​正​​​​​​​常​​​​​​​服​​​​​​​务​​​​​​​时​​​​​​​,备​​​​​​​份​​​​​​​ LVS 路​​​​​​​由​​​​​​​器​​​​​​​将​​​​​​​再​​​​​​​次​​​​​​​行​​​​​​​使​​​​​​​其​​​​​​​备​​​​​​​份​​​​​​​功​​​​​​​能​​​​​​​。​​​​​​​
The simple, two-tier configuration in 图 1.20 “Two-Tier LVS Topology” is suited best for clusters serving data that does not change very frequently — such as static web pages — because the individual real servers do not automatically synchronize data among themselves.


[1] 虚​​​​​​​拟​​​​​​​服​​​​​​​务​​​​​​​器​​​​​​​是​​​​​​​一​​​​​​​个​​​​​​​侦​​​​​​​听​​​​​​​特​​​​​​​定​​​​​​​的​​​​​​​虚​​​​​​​拟​​​​​​​ IP 地​​​​​​​址​​​​​​​的​​​​​​​服​​​​​​​务​​​​​​​。​​​​​​​