LVS 基礎

LVS (Linux Virtual Server)

什么是LVS铣耘?它是一種集群(Cluster)技術,采用IP負載均衡技術和基于內容請求分發(fā)技術躏啰。調度器具有很好的吞吐率雹拄,將請求均衡地轉移到不同的服務器上執(zhí)行,且調度器自動屏蔽掉服務器的故障荧飞,從而將一組服務器構成一個高性能的凡人、高可用的虛擬服務器名党。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序挠轴。(另外传睹,LVS 項目是章文嵩博士的成名作[1]

LVS 主要組成部分

  • 負載調度器(load balancer / Director),它是整個集群對外面的前端機岸晦,負責將客戶的請求發(fā)送到一組服務器上執(zhí)行欧啤,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。
  • 服務器池(server pool / Realserver)启上,是一組真正執(zhí)行客戶請求的服務器邢隧,執(zhí)行的服務一般有 WEB, MAIL, FTP 和 DNS 等。
  • 共享存儲(shared storage)冈在,它為服務器池提供一個共享的存儲區(qū)倒慧,這樣很容易使得服務器池擁有相同的內容,提供相同的服務讥邻。

LVS 負載均衡方式[2]

LVS 有三種負載均衡方式:

  1. Virtual Server via Network Address Translation NAT (VS/NAT)
  2. Virtual Server via IP Tunneling (VS/TUN)
  3. Virtual Server via Direct Routing (VS/DR)

VS/DR 方式是目前大型網站使用最廣泛的一種負載均衡手段迫靖。對這三種方式,我談下自己的理解:
1 中的 LB 工作在 http 層兴使,可看做一個 http 服務器系宜,它接收到客戶端請求后向 real server 發(fā)出請求,接收到返回后再返回給客戶端发魄。為什么 real server 不能直接返回給客戶端呢盹牧?因為根據 TCP/IP 協(xié)議,real server 返回的包的目標 IP 地址是請求包的源 IP励幼,即 LB 的 IP汰寓。

2 中的 LB 用到了 IP 封裝協(xié)議,大概可以這樣理解(是我揣測的苹粟,沒有求證)有滑。LB 向 real server 發(fā)送請求時,源 IP 還是 LB 的 IP嵌削,但是包體里面包含了客戶端的 IP毛好,根據協(xié)議 real server 返回的時候會把包的目標 IP 設為包體里的客戶端 IP。如果真是這樣的話苛秕,協(xié)議數據走在應用層肌访,但是又對傳輸層的數據做了修改,比較 hack艇劫,沒有遵守分層的設計規(guī)范吼驶。

3 中的 LB 工作在數據鏈路層,LB 直接把 frame 的 mac 地址修改為 某臺 real server 的 mac 地址,轉發(fā)給 real server蟹演。real server 拿到包里的源 IP 是客戶端的 IP风钻,返回包的目標 IP 自然為客戶端的 IP。

基于它們工作的網絡協(xié)議轨帜,有下面的特點魄咕。(注:子網的出口的路由器叫做網關)

指標 VS/NAT VS/TUN VS/DR
服務器操作系統(tǒng) 任意 支持隧道 多數(支持Non-arp)
服務器網絡 私有網絡 局域網/廣域網 局域網
服務器數目(100M網絡) 10~20 100 大于100
服務器網關 負載均衡器 自己的路由 自己的路由
效率 一般 最高

其他負載均衡方法

HTTP 重定向負載均衡

當用戶發(fā)來請求的時候,Web 服務器通過修改 HTTP 響應頭中的 Location 標記來返回一個新的 url蚌父,然后瀏覽器再繼續(xù)請求這個新 url哮兰,實際上就是頁面重定向。通過重定向苟弛,來達到“負載均衡”的目標喝滞。例如,我們在下載 PHP 源碼包的時候膏秫,點擊下載鏈接時右遭,為了解決不同國家和地域下載速度的問題,它會返回一個離我們近的下載地址缤削。重定向的 HTTP 返回碼是 302窘哈。

優(yōu)點:比較簡單。
缺點:瀏覽器需要兩次請求服務器才能完成一次訪問亭敢,性能較差滚婉。重定向服務自身的處理能力有可能成為瓶頸,整個集群的伸縮性國模有限帅刀;使用 HTTP 302 響應碼重定向让腹,有可能使搜索引擎判斷為 SEO 作弊,降低搜索排名扣溺。

DNS 域名解析負載均衡

DNS(Domain Name System)負責域名解析的服務骇窍,域名url實際上是服務器的別名,實際映射是一個IP地址锥余,解析過程腹纳,就是DNS完成域名到IP的映射。而一個域名是可以配置成對應多個 IP的驱犹。因此嘲恍,DNS也就可以作為負載均衡服務。

事實上着绷,大型網站總是部分使用DNS域名解析蛔钙,利用域名解析作為第一級負載均衡手段锌云,即域名解析得到的一組服務器并不是實際提供Web服務的物理服務器荠医,而是同樣提供負載均衡服務的內部服務器,這組內部負載均衡服務器再進行負載均衡,將請求分發(fā)到真是的 Web 服務器上彬向。

優(yōu)點:將負載均衡的工作轉交給 DNS兼贡,省掉了網站管理維護負載均衡服務器的麻煩,同時許多 DNS 還支持基于地理位置的域名解析娃胆,即會將域名解析成舉例用戶地理最近的一個服務器地址遍希,這樣可以加快用戶訪問速度,改善性能里烦。
缺點:不能自由定義規(guī)則凿蒜,而且變更被映射的IP或者機器故障時很麻煩,還存在 DNS 生效延遲的問題胁黑。而且DNS負載均衡的控制權在域名服務商那里废封,網站無法對其做更多改善和更強大的管理。

反向代理負載均衡

反向代理服務可以緩存資源以改善網站性能丧蘸。實際上漂洋,在部署位置上,反向代理服務器處于Web服務器前面(這樣才可能緩存 Web 相應力喷,加速訪問)刽漂,這個位置也正好是負載均衡服務器的位置,所以大多數反向代理服務器同時提供負載均衡的功能,管理一組 Web 服務器很魂,將請求根據負載均衡算法轉發(fā)到不同的 Web 服務器上鸳慈。Web服務器處理完成的響應也需要通過反向代理服務器返回給用戶。由于 Web 服務器不直接對外提供訪問颈畸,因此 Web 服務器不需要使用外部ip地址,而反向代理服務器則需要配置雙網卡和內部外部兩套 IP 地址没讲。

優(yōu)點:和反向代理服務器功能集成在一起眯娱,部署簡單。
缺點:反向代理服務器是所有請求和響應的中轉站爬凑,其性能可能會成為瓶頸徙缴。

反向代理負載均衡跟 VS/NAT 的原理一樣。


參考資料

  1. http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html

  1. http://www.linuxvirtualserver.org/zh/lvs1.html ?

  2. http://blog.jobbole.com/103871/ ?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末嘁信,一起剝皮案震驚了整個濱河市于样,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潘靖,老刑警劉巖穿剖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卦溢,居然都是意外死亡糊余,警方通過查閱死者的電腦和手機秀又,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贬芥,“玉大人吐辙,你說我怎么就攤上這事≌号” “怎么了昏苏?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長威沫。 經常有香客問我贤惯,道長,這世上最難降的妖魔是什么棒掠? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任救巷,我火速辦了婚禮,結果婚禮上句柠,老公的妹妹穿的比我還像新娘浦译。我一直安慰自己,他們只是感情好溯职,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布精盅。 她就那樣靜靜地躺著,像睡著了一般谜酒。 火紅的嫁衣襯著肌膚如雪叹俏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天僻族,我揣著相機與錄音粘驰,去河邊找鬼。 笑死述么,一個胖子當著我的面吹牛蝌数,可吹牛的內容都是我干的。 我是一名探鬼主播度秘,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼顶伞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剑梳?” 一聲冷哼從身側響起唆貌,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎垢乙,沒想到半個月后锨咙,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡追逮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年酪刀,在試婚紗的時候發(fā)現(xiàn)自己被綠了粱侣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓖宦,死狀恐怖,靈堂內的尸體忽然破棺而出油猫,到底是詐尸還是另有隱情稠茂,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布情妖,位于F島的核電站睬关,受9級特大地震影響,放射性物質發(fā)生泄漏毡证。R本人自食惡果不足惜电爹,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望料睛。 院中可真熱鬧丐箩,春花似錦、人聲如沸恤煞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽居扒。三九已至概漱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喜喂,已是汗流浹背瓤摧。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玉吁,地道東北人照弥。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像进副,于是被迫代替她去往敵國和親产喉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理敢会,服務發(fā)現(xiàn)曾沈,斷路器,智...
    卡卡羅2017閱讀 134,697評論 18 139
  • 【摘要】 面對大量用戶訪問鸥昏、高并發(fā)請求塞俱,海量數據,可以使用高性能的服務器吏垮、大型數據庫障涯,存儲設備罐旗,高性能Web服務器...
    靜修佛緣閱讀 4,564評論 0 24
  • 一、什么是負載均衡 首先我們先介紹一下什么是負載均衡:負載平衡(Load balancing)是一種計算機網絡技術...
    小流江海閱讀 1,011評論 0 2
  • Linux服務器集群系統(tǒng)各概念辨析 計算機集群 WEB的負載均衡唯蝶、集群九秀、高可用解決方案 計算機集群 計算機集群簡稱...
    Zhang21閱讀 3,292評論 0 18
  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程粘我,通過DNS域名解析服務器IP鼓蜒,并建...
    七寸知架構閱讀 81,037評論 21 356