LVS入門

隨著互聯網進入尋常百姓家,網絡流量愈來愈大,大規模的網路訪問如果都使用一個服務器提供服務,那么網絡通訊注定會擁堵不堪。為了解決這些問題,達到使網絡流量均衡地分散到各個服務器上的目的,一些技術大牛發明了LVS負載均衡技術。

 

LVS簡介

 

LVS(Linux Virtual Server)即為Linux虛擬服務器,使由章文嵩博士主導開發的,這也是我們中國人對開源界的一大貢獻,目前LVS已經被收錄在了內核中,小伙伴們在使用較新版Linux系統時默認會附加這個功能。

什么是負載均衡呢?簡單來說就是通過技術手段,將前端訪問數據流通過調度算法分派給后端服務器的過程。按照實現技術手段不同,可以分為NAT DR TUNEFULLNAT四種類型。

 

基于NAT LVS

此種類型的負載均衡與iptables的源地址轉發較類似,主要區別在于:負載均衡在PREROUTING鏈上沒有規則,接收到的報文會發送給本機的INPUT鏈,然后通過內核調度直接把報文按照設定的規則通過POSTROUTING鏈發送給網絡服務器。

 

基于DRLVS

此種類型的負載均衡在LVS服務器接收到客戶端的報文后會修改報文的目標MAC地址,然后將其重新發送給交換機,交換機接收到之后再按照新的目標MAC地址將報文發送給網絡服務器,網絡服務器的內部回環設置與LVS相同的IP地址,并通過技術手段禁止此地址在局域網廣播,在響應客戶端請求時會使用此IP地址,達到偽裝LVS 地址的作用。

由于此種類型的響應報文不經過LVS服務器的轉發,其效率最好,但配置方法最復雜。

 

基于TUNELVS

此種類型的負載均衡的LVS服務器在接收報文時會在收到IP段首部添加目標網絡服務器的IP首部,并發送發給遠程網絡服務器,當網絡服務器接收到這些報文時會拆分數據報,并使用與LVS相同的IP地址將響應報文發送給客戶端。

 

基于FULLNATLVS

此種類型的負載均衡的LVS服務器與NAT類似,只不過在接收報文時會將報文中的源和目的地址都進行修改,這樣即使局域網中有多個路由器,也可以把響應報文準確傳給LVS服務器。

 

LVS調度算法

上述四種模式都包含了以下幾種調度算法:

輪詢調度

加權輪詢調度

最小連接調度

加權最小連接調度

基于局部性最少連接調度

目標地址散列調度

源地址散列調度

下面以NAT模式為例,介紹下LVS安裝使用流程

yum安裝ipvsadm

yum install –y ipvsadm

 

ipvsadm 選項  服務器地址 –s 算法

ipvsadm 選項  服務器地址 –r 真實服務器地址[工作模式][權重]

ipvsadm常用參數:

-A 添加一個虛擬服務器

-E 編輯一個虛擬服務器

-D 刪除一個虛擬服務器

-C 清空虛擬服務器列表

-R 從標準輸入中還原規則

-S 保存規則

-a 向虛擬服務器中添加一個真實服務器

-e 修改一個真實服務器

-d 刪除一個真實服務器

-L 顯示虛擬服務器列表

-t 使用tcp

-u 使用udp

-s 指定LVS的調度算法

-r 設置真實服務器IP地址和端口信息

-g 設置LVS工作模式為DR

-I 設置LVS工作模式為TUN

-m設置LVS工作模式為NAT

-w 設置指定服務器權重

-c 連接狀態

-n 數字格式輸出

 

例:以NAT模式添加LVS

ipvsadm –A –t 172.18.55.62:80 –s rr
ipvsadm –a –t 172.18.55.62:80 –r 192.168.0.1:80 –m
ipvsadm –a –t 172.18.55.62:80 –r 192.168.0.2:80 –m

 

ipvsadm –Ln #查看LVS規則
ipvsadm –Lnc #查看調度狀態

 

例:備份和加載LVS配置

ipvsadm –S > /etc/lvs.bak
ipvsadm –R < /etc/lvs.bak

 

 

原創文章,作者:realmaster,如若轉載,請注明出處:http://www.www58058.com/75149

(0)
realmasterrealmaster
上一篇 2017-05-09 22:41
下一篇 2017-05-10 20:15

相關推薦

  • 第一天,學習

    好好學習,天天向上

    Linux干貨 2016-08-08
  • Linux Sysadmin–part2

    1、寫一個腳本,使用ping命令探測192.168.4.1-192.168.4.254之間的所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主使用紅色顯示; #!/bin/bash #description: #date: #Author: for i in {1..254}; do if ping -c 3 192.168.4.$i &&g…

    2017-09-19
  • N22-第5周博客作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單…

    Linux干貨 2016-12-05
  • 用戶管理、三種權限、三種特殊權限的使用

    用戶管理、三種權限、三種特殊權限的使用 一、用戶管理 1、軟鏈接:ln  -s  相對于軟鏈接的路徑/絕對路徑   軟鏈接文件    硬鏈接:ln  相對路徑原文件   硬鏈接文件 2、getent的使用    gentent p…

    系統運維 2016-08-05
  • shell-語句總結

    shell腳本語法總結 過程式編程語言: 順序執行 選擇執行 循環執行 shell默認是順序執行,如果有判斷或循環語句則執行判斷或循環。 條件判斷 if     單分支         if 判斷條件:then  &nb…

    Linux干貨 2016-08-21
  • Linux文件類型及把剩下的顏色標識

    Linux文件類型及bash下的顏色標識 Linux一切皆文件 查看文件類型的命令: 例如:列出ls的文件類型                file  /bin/ls 例如:粗略的列出文件類型           &n…

    Linux干貨 2016-10-16
欧美性久久久久