LVS學(xué)習(xí)筆記1

Linux Cluster:

Cluster:計(jì)算機(jī)集合臂寝,為解決某個(gè)特定問題組合起來形成的單個(gè)系統(tǒng)学密;

Linux Cluster類型:
  • LB:Load Balancing Cluster焊虏,負(fù)載均衡集群
    它是利用一個(gè)集群中的多臺(tái)機(jī)器,完成許多并行的工作厢绝。一般情況下剑肯,如果一個(gè)應(yīng)用使用的人多了莲绰,那么用戶請(qǐng)求的相應(yīng)時(shí)間就會(huì)增大欺旧,機(jī)器的性能也會(huì)受到影響,如果是使用LB蛤签,那么集群中的每一臺(tái)機(jī)器都能響應(yīng)用戶的請(qǐng)求辞友,這樣集群就會(huì)在用戶發(fā)出請(qǐng)求之后,根據(jù)算法選擇機(jī)器接收請(qǐng)求并響應(yīng)震肮,來增加系統(tǒng)的可用性和穩(wěn)定性称龙。
    負(fù)責(zé)均衡集群中有一個(gè)Director(也叫調(diào)度器或分發(fā)器),它處在多個(gè)服務(wù)器的前面钙蒙,接收客戶請(qǐng)求并根據(jù)內(nèi)部定義的規(guī)則或調(diào)度方式在后方服務(wù)器群中選擇一個(gè)來響應(yīng)用戶發(fā)送的請(qǐng)求茵瀑。

  • HA:High Availablity Cluster间驮,高可用集群
    高可用集群是服務(wù)的可用性高躬厌,當(dāng)我們的某臺(tái)服務(wù)器出現(xiàn)問題不可用時(shí)不會(huì)造成服務(wù)不可用。
    衡量標(biāo)準(zhǔn):A=MTBF/(MTBF+MTTR)
    A(0,1): 90%,95%,99%,99.9%,99.99%,99.999%

    • MTBF:服務(wù)在線時(shí)間
    • MTTR:故障處理時(shí)間
  • HP:High Performance Cluster竞帽。高性能集群
    高性能集群是并行處理集群扛施,將大任務(wù)劃分為小任務(wù),分別進(jìn)行處理的機(jī)制屹篓;一般用于科學(xué)研究與大數(shù)據(jù)運(yùn)算等方面的工作疙渣。
分布式系統(tǒng):
  • 分布式存儲(chǔ)
  • 分布式計(jì)算
系統(tǒng)擴(kuò)展方式:
  • Scale UP:向上擴(kuò)展;當(dāng)一臺(tái)服務(wù)器不能滿足需求時(shí)堆巧,更換更高性能的服務(wù)器替換妄荔,這種方式為向上擴(kuò)展
  • Scale Out:向外擴(kuò)展;當(dāng)一臺(tái)服務(wù)器不能滿足需求時(shí)谍肤,添加新的服務(wù)器啦租,組成集群模式來使用,這種方式被稱為向外擴(kuò)展

lvs:Linux Virtual Server

  • lvs:四層路由器荒揣,四層交換機(jī)篷角;
    VS根據(jù)請(qǐng)求報(bào)文的目標(biāo)ip和目標(biāo)協(xié)議及端口將其調(diào)度轉(zhuǎn)發(fā)之某RealServer,根據(jù)調(diào)度算法來挑選RS;
  • lvs : ipvsadm/ipvs
    • ipvsadm:用戶空間的命令行工具系任,規(guī)則管理器恳蹲,用于管理集群服務(wù)及相關(guān)的RealServer;
    • ipvs:工作于內(nèi)核空間的netfilter的INPUT鉤子之上的框架俩滥;
  • lvs集群類型中的術(shù)語:
    • VS: Virtual Server嘉蕾,Director, Dispatcher霜旧,Balancer
    • RS: Real Server错忱,upstream server , backend server
    • CIP: Client ip,VIP: Virtual server ip航背,RIP: Real server ip喉悴,DIP: Director ip
ipvs scheduler:調(diào)度算法(調(diào)度方法);

根據(jù)其調(diào)度時(shí)是否考慮各RS當(dāng)前的負(fù)載狀態(tài)玖媚,可分為靜態(tài)方法和動(dòng)態(tài)方法兩種:

  1. 靜態(tài)方法:僅根據(jù)算法本身進(jìn)行調(diào)度
  • RR: roundrobin, 輪詢箕肃;
  • WRR: Weighted RR, 加權(quán)輪詢;
  • SH: Source Hashing今魔,實(shí)現(xiàn)session sticky勺像,源ip地址哈希;將來自于同一個(gè)ip地址的請(qǐng)求始終發(fā)往第一次挑中的RS,從而實(shí)現(xiàn)回話綁定错森;
  • DH: Destination Hashing,目標(biāo)ip地址哈希吟宦,將發(fā)往同一個(gè)目標(biāo)地址的請(qǐng)求始終發(fā)至第一次挑中的RS,典型的使用場(chǎng)景是正向代理緩存場(chǎng)景中的負(fù)載均衡;
  1. 動(dòng)態(tài)方法:主要根據(jù)每RS當(dāng)前的負(fù)載狀態(tài)及調(diào)度算法進(jìn)行調(diào)度涩维;Overhead(負(fù)載值)殃姓、activeconns(活動(dòng)連接數(shù))、inactiveconns(非活動(dòng)連接數(shù))
  • LC: least connections瓦阐,最少連接數(shù)
    - Overhead=activeconns*256+inactiveconns
  • WLC: Weighted LC, 加權(quán)最少連接蜗侈;
    - Overhead=(activeconns*256+inactiveconns)/weight
  • SED: Shortest Expection Delay,最短的期望延遲;
    - Overhead=(activeconns+1)*256/weight
  • NQ: Never Queue睡蟋,增強(qiáng)版SED
  • LBLC: Locality-Based LC,動(dòng)態(tài)的DH算法踏幻;
  • LBLCR:LBLC with Replication,帶復(fù)制功能的LBLC戳杀;

lvs四種集群:nat该面、dr、tun信卡、fullnat

1. lvs-nat:

多目標(biāo)的DNAT隔缀,通過將請(qǐng)求報(bào)文的目標(biāo)地址和目標(biāo)端口修改為某挑選出的RS的ip、port實(shí)現(xiàn)轉(zhuǎn)發(fā)坐求。
<1>. RIP和DIP必須在同一個(gè)ip網(wǎng)絡(luò)蚕泽,且應(yīng)該使用私網(wǎng)地址;RS的網(wǎng)關(guān)要指向DIP
<2>. 請(qǐng)求報(bào)文和響應(yīng)報(bào)文都必須經(jīng)由Director轉(zhuǎn)發(fā)桥嗤;Director易于稱為系統(tǒng)瓶頸须妻;
<3>. 支持端口映射,可以修改請(qǐng)求報(bào)文的目標(biāo)PORT
<4>. VS必須是Linux系統(tǒng)泛领,RS可以是任意系統(tǒng)

  • 使用場(chǎng)景:小并發(fā)的實(shí)驗(yàn)性應(yīng)用荒吏、mysql集群
2. lvs-dr:

Direct Routing,直接路由渊鞋;
通過為請(qǐng)求報(bào)文重新封裝一個(gè)MAC首部進(jìn)行轉(zhuǎn)發(fā)绰更,源MAC是DIP所在的接口的MAC瞧挤,目標(biāo)MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT儡湾,以及目標(biāo)IP/PORT均保持不變特恬;
Director和各RS都得配置使用VIP;
<1> 確保前段路由器將目標(biāo)ip為VIP的請(qǐng)求報(bào)文發(fā)往Director,有以下三種方式:

  • 在前端網(wǎng)關(guān)做靜態(tài)綁定
  • 在RS上使用arptables徐钠;
  • 在RS上修改內(nèi)核參數(shù)以限制arp通告及應(yīng)答級(jí)別癌刽;

<2> RS的RIP可以使用私網(wǎng)地址,也可以使用公網(wǎng)地址尝丐;RIP和DIP在同一個(gè)ip網(wǎng)絡(luò)显拜;RIP的網(wǎng)關(guān)不能只想DIP,以確保響應(yīng)報(bào)文不會(huì)經(jīng)由Director爹袁;
<3> RS跟Director要在同一個(gè)物理網(wǎng)絡(luò)远荠;
<4> 請(qǐng)求報(bào)文要經(jīng)由Director,但響應(yīng)報(bào)文不能經(jīng)由Director,而是由RS直接發(fā)往Client失息;
<5> 不支持端口映射

  • 使用場(chǎng)景:大眾方式譬淳;
3. lvs-tun:

轉(zhuǎn)發(fā)方式:不修改請(qǐng)求報(bào)文的IP首部(源IP為CIP,目標(biāo)IP為VIP)根时,而是在原IP報(bào)文之外再封裝一個(gè)IP首部(源IP是DIP瘦赫,目標(biāo)IP是RIP),將報(bào)文發(fā)往挑選出的目標(biāo)RS蛤迎;RS直接響應(yīng)給客戶端(源IP是VIP,目標(biāo)IP是CIP)含友;
<1> DIP VIP RIP 都應(yīng)該是公網(wǎng)地址;
<2> RS的網(wǎng)關(guān)不能替裆,也不可能指向DIP;
<3> 請(qǐng)求報(bào)文要經(jīng)由Director,但響應(yīng)不能經(jīng)由Director窘问;
<4> 不支持端口映射
<5> RS的OS得支持隧道功能辆童;

  • 使用場(chǎng)景:廣域網(wǎng)負(fù)載;
4. lvs-fullnat:

通過同時(shí)修改請(qǐng)求報(bào)文的源IP地址和目標(biāo)IP地址進(jìn)行轉(zhuǎn)發(fā)
CIP< - - > DIP
VIP< - - > RIP
<1> VIP是公網(wǎng)地址惠赫,RIP和DIP是私網(wǎng)地址把鉴,且通常不在同一個(gè)IP網(wǎng)絡(luò);因此儿咱,RIP的網(wǎng)關(guān)一般不會(huì)指向DIP
<2> RS收到的請(qǐng)求報(bào)文源地址是DIP庭砍,因此,只能響應(yīng)給DIP;但是Director還要將其發(fā)往Client混埠;
<3> 請(qǐng)求和響應(yīng)報(bào)文都經(jīng)由Director怠缸;
<4> 支持端口映射;

  • 注意: 此類型默認(rèn)不支持钳宪;
總結(jié):
  • lvs-nat揭北,lvs-fullnat:請(qǐng)求和響應(yīng)報(bào)文都經(jīng)由Director
    • lvs-nat:RIP的網(wǎng)關(guān)要指向DIP
    • lvs-fullnat:RIP和DIP未必在同一IP網(wǎng)絡(luò)扳炬,但要能通信
  • lvs-dr,lvs-tun:請(qǐng)求報(bào)文要經(jīng)由Director搔体,但響應(yīng)報(bào)文由RS直接發(fā)往Client
    • lvs-dr:通過封裝新的MAC首部實(shí)現(xiàn)恨樟,通過MAC網(wǎng)絡(luò)轉(zhuǎn)發(fā)
    • lvs-tun:通過在原IP報(bào)文之外封裝新的IP首部實(shí)現(xiàn)轉(zhuǎn)發(fā),支持遠(yuǎn)距離通信

lvs-nat工作原理及配置實(shí)現(xiàn)

工作原理:

  • 客戶端通過Internet訪問本地的服務(wù)疚俱,發(fā)送請(qǐng)求報(bào)文(源地址CIP:目標(biāo)地址VIP:端口號(hào))通過路由和Director的公網(wǎng)ip地址(VIP)到達(dá)Director厌杜,Director收到請(qǐng)求報(bào)文后,通過INPUT鏈上的規(guī)則發(fā)現(xiàn)是訪問RealServer的服務(wù)计螺,就把請(qǐng)求報(bào)文的目標(biāo)地址和端口改為通過算法挑選出RS的ip地址和端口(源地址CIP:目標(biāo)地址RIP:端口)夯尽,并通過DIP網(wǎng)卡發(fā)送給RS;此處要求Director開啟核心轉(zhuǎn)發(fā)功能登馒;
  • RS收到請(qǐng)求報(bào)文匙握,解封裝后發(fā)送響應(yīng)報(bào)文(源端口RIP:目標(biāo)端口:CIP)給Director(此處RS的網(wǎng)關(guān)必須指向Director的DIP才行),Director收到報(bào)文后看到目標(biāo)地址是CIP陈轿,因此就通過本地VIP網(wǎng)卡發(fā)送給Client; 流程如下圖:


    LVS-NAT.png
  • 配置實(shí)現(xiàn):
    根據(jù)上圖的網(wǎng)絡(luò)拓?fù)鋱D圈纺,配置lvs-nat實(shí)驗(yàn)機(jī)

    #把主機(jī)192.168.1.108配置成Director,先檢查看內(nèi)核是否支持lvs
    [root@localhost ~]# grep -i "ipvs" -C 10 /boot/config-3.10.0-693.el7.x86_64
    #在192.168.1.108上在添加一塊網(wǎng)卡麦射,配置僅主機(jī)模式并配置ip
    [root@localhost ~]# ifconfig ens33 192.168.18.254/24
    #開啟核心轉(zhuǎn)發(fā)功能
    [root@localhost ~]# sysctl -w net.ipv4.ip_forward=1
    [root@localhost ~]# hostnamectl set-hostname www.ilinux.com
    
    #在RS1和RS2兩臺(tái)主機(jī)上先安裝httpd蛾娶、telnet-server兩個(gè)服務(wù)以便后面測(cè)試
    [root@localhost ~]# yum -y install httpd telnet-server
    #分別給R1和R2配置兩個(gè)不同的測(cè)試頁
    [root@localhost ~]# vim /var/www/html/test1.html
      R1: <h1>R1,192.168.18.11</h1>
      R2: <h1>R2,192.168.18.12</h1>
    #修改RS1和RS2的主機(jī)名
    [root@localhost ~]# hostnamectl set-hostname rs1.ilinux.com
    [root@localhost ~]# hostnamectl set-hostname rs2.ilinux.com
    #配置RS1和RS2的ip地址,并且網(wǎng)關(guān)指向192.168.18.254
    [root@localhost ~]# ifconfig ens33 192.168.18.11/24 
    [root@localhost ~]# route add default gw 192.168.18.254
    [root@localhost ~]# ifconfig ens33 192.168.18.12/24 
    [root@localhost ~]# route add default gw 192.168.18.254
    #至此網(wǎng)絡(luò)配置完成潜秋,下面配置lvs規(guī)則定義集群
    [root@www ~]# yum -y install ipvsadm
    [root@www ~]# ipvsadm -A -t 192.168.1.108:80 -s rr
    [root@www ~]# ipvsadm -a -t 192.168.1.108:80 -r 192.168.18.11 -m
    [root@www ~]# ipvsadm -a -t 192.168.1.108:80 -r 192.168.18.12 -m
    [root@www ~]# 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.1.108:80 rr
      -> 192.168.18.11:80             Masq    1      0          9         
      -> 192.168.18.12:80             Masq    1      0          8  
    #使用192.168.1.105的主機(jī)訪問測(cè)試:
    [root@localhost ~]# for i in {1..10}; do curl http://192.168.1.108/test1.html;done
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    
    
    #加權(quán)輪詢測(cè)試
    [root@www ~]# ipvsadm -E -t 192.168.1.108:80 -s wrr
    [root@www ~]# ipvsadm -e -t 192.168.1.108:80 -r 192.168.18.11 -m -w 2
    [root@www ~]# ipvsadm -e -t 192.168.1.108:80 -r 192.168.18.12 -m -w 3
    [root@www ~]# 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.1.108:80 rr
      -> 192.168.18.11:80             Masq    2      0          0         
      -> 192.168.18.12:80             Masq    3      0          0   
     #訪問測(cè)試
     [root@localhost ~]# for i in {1..10}; do curl http://192.168.1.108/test1.html;done
    <h1>RS2,192.168.18.12</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    <h1>RS2,192.168.18.12</h1>
    <h1>RS1,192.168.18.11</h1>
    
    
    #假如后端的RS2掛了蛔琅,lvs還會(huì)繼續(xù)調(diào)度,因此需要手動(dòng)刪除或者修改權(quán)重為0
    [root@localhost ~]# for i in {1..10}; do curl http://192.168.1.108/test1.html;done
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
      <h1>RS1,192.168.18.11</h1>
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
      <h1>RS1,192.168.18.11</h1>
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
      <h1>RS1,192.168.18.11</h1>
      curl: (7) Failed connect to 192.168.1.108:80; 拒絕連接
    [root@www ~]# ipvsadm -d -t 192.168.1.108:80 -r 192.168.18.12
    [root@www ~]# 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.1.108:80 wrr
      -> 192.168.18.11:80             Masq    2      0          4 
      #修改權(quán)重為0
    [root@www ~]# ipvsadm -e -t 192.168.1.108:80 -r 192.168.18.12 -m -w 0
    [root@www ~]# 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.1.108:80 wrr
      -> 192.168.18.11:80             Masq    2      0          14        
      -> 192.168.18.12:80             Masq    0      0          0    
    

假如RS1,RS2都掛了峻呛,可以把director當(dāng)做一個(gè)服務(wù)罗售,把RS1,RS2權(quán)重改為0

    [root@www ~]# yum istall nginx -y
    [root@www ~]# cd /usr/share/nginx/html/
    [root@www html]# vim test1.html              
        <h1>SORRY</h1>
    [root@www html]# systemctl start nginx

    [root@www html]# ipvsadm -a -t 192.168.1.108:80 -r 127.0.0.1 -g
    [root@www html]# ipvsadm -e -t 192.168.1.108:80 -r 192.168.18.11 -m -w 0
    [root@www html]# ipvsadm -e -t 192.168.1.108:80 -r 192.168.18.12 -m -w 0
#使用主機(jī)測(cè)試
    [root@localhost ~]# for i in {1..5}; do curl http://192.168.1.108/test1.html;done
    <h1>SORRY</h1>
    <h1>SORRY</h1>
    <h1>SORRY</h1>
    <h1>SORRY</h1>
    <h1>SORRY</h1>

...

[root@www html]# ipvsadm -ln --stats  #統(tǒng)計(jì)信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.1.108:80                  253     1351      652    90948    78005
  -> 127.0.0.1:80                       63      373        0    24983        0
  -> 192.168.18.11:80                  108      545      368    36789    43865
  -> 192.168.18.12:80                   82      433      284    29176    34140
[root@www html]# ipvsadm -ln --rate   #統(tǒng)計(jì)速率
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS
  -> RemoteAddress:Port
TCP  192.168.1.108:80                    0        0        0        0        0
  -> 127.0.0.1:80                        0        0        0        0        0
  -> 192.168.18.11:80                    0        0        0        0        0
  -> 192.168.18.12:80                    0        0        0        0        0

lvs-dr工作原理及配置實(shí)現(xiàn)

工作原理:

  • Client發(fā)送請(qǐng)求報(bào)文(源地址CIP:目標(biāo)地址VIP)經(jīng)過層層路由到達(dá)離我們最近的末梢路由后钩述,末梢路由會(huì)通過ARP廣播寨躁,得到Director的MAC地址,然后在請(qǐng)求報(bào)文外封裝一層mac首部(源mac地址末梢路由網(wǎng)卡的mac:目標(biāo)地址為Director網(wǎng)卡mac)牙勘,然后發(fā)送給Director职恳;
  • Director收到請(qǐng)求報(bào)文后,發(fā)現(xiàn)目標(biāo)地址的mac是自己方面,就拆除mac首部封裝放钦,給請(qǐng)求報(bào)文重新封裝一個(gè)mac首部(源mac為DIP:目標(biāo)mac為RIP)發(fā)送給挑選出的RS;流程如下圖;
  • 注意:此處RS與Director在同一物理網(wǎng)絡(luò)葡幸,都有VIP最筒,因此要確保RS不響應(yīng)末梢路由的ARP廣播才行;有兩種方法
    • 在RS上使用arptables
    • 在RS上修改內(nèi)核參數(shù)以限制ARP通告及應(yīng)答級(jí)別(arp_announce和arp_ignore)


      LVS-DR.png

實(shí)驗(yàn)配置:
按上圖網(wǎng)絡(luò)拓補(bǔ)圖配置試驗(yàn)機(jī)蔚叨,Director和RS全部一塊網(wǎng)卡床蜘,并橋接辙培,設(shè)置DIP:192.168.43.245,RIP:192.168.43.11和192.168.43.12
把VIP地址192.168.43.99設(shè)置在DIP網(wǎng)卡別名上邢锯,RS的lo網(wǎng)卡別名上

#通過腳本修改內(nèi)核參數(shù)以現(xiàn)在RS的ARP通告和應(yīng)答級(jí)別
[root@rs1 ~]# vim setparam.sh 
    #!/bin/bash
    #
    case $1 in
    start)
            echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
            echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
            ;;
    stop)
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
            ;;
    *)
            echo "Usage $(basename $0) start|stop"
            exit 1
            ;;
    esac
    #分別在RS1和RS2上運(yùn)行此腳本
    [root@rs1 ~]# bash -x setparam.sh start
    [root@rs2 ~]# bash -x setparam.sh start
    #在RS1和RS2上配置VIP
    [root@rs1 ~]# ifconfig lo:0 192.168.43.99 netmask 255.255.255.255 broadcast 192.168.43.99 up
    [root@rs2 ~]# ifconfig lo:0 192.168.43.99 netmask 255.255.255.255 broadcast 192.168.43.99 up
    #添加路由條目由哪個(gè)設(shè)備進(jìn)來就由哪個(gè)設(shè)備出去
    [root@rs1 ~]# route add -host 192.168.43.99 dev lo:0
    [root@rs2 ~]# route add -host 192.168.43.99 dev lo:0
    #配置Director的VIP
    [root@www ~]# ifconfig ens33:0 192.168.43.99 netmask 255.255.255.255 broadcast 192.168.43.99 up

    #在Director上安裝ipvs并定義集群
    [root@www ~]# ipvsadm -A -t 192.168.43.99:80 -s rr
    [root@www ~]# ipvsadm -a -t 192.168.43.99:80 -r 192.168.43.11 -g
    [root@www ~]# ipvsadm -a -t 192.168.43.99:80 -r 192.168.43.12 -g
    [root@www ~]# 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.43.99:80 rr
      -> 192.168.43.11:80             Route   1      0          9         
      -> 192.168.43.12:80             Route   1      0          8  

ipvsadm命令

  • 程序包:ipvsadm

  • Unit File: ipvsadm.service

  • 主程序:/usr/sbin/ipvsadm

  • 規(guī)則保存工具:/usr/sbin/ipvsadm-save

  • 規(guī)則重載工具:/usr/sbin/ipvsadm-restore

  • 配置文件:/etc/sysconfig/ipvsadm-config

  • 核心功能:

    • 集群服務(wù)管理:增扬蕊、刪、改丹擎;
    • 集群服務(wù)的RS管理:增尾抑、刪、改蒂培;
    • 查看:
  • 語法格式:
    ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]

              ipvsadm -D -t|u|f service-address
              ipvsadm -C
              ipvsadm -R
              ipvsadm -S [-n]
              ipvsadm -a|e -t|u|f service-address -r server-address [options]
              ipvsadm -d -t|u|f service-address -r server-address
              ipvsadm -L|l [options]
              ipvsadm -Z [-t|u|f service-address]
    

-管理集群服務(wù):增再愈、改、刪护戳;
增翎冲、改:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
刪:ipvsadm -D -t|u|f service-address

    service-address:
            t|u|f:
                -t: TCP協(xié)議的端口,VIP:TCP_PORT
                -u: UDP協(xié)議的端口媳荒,VIP:UDP_PORT
                -f:firewall MARK抗悍,是一個(gè)數(shù)字;
    [-s scheduler]:指定集群的調(diào)度算法钳枕,默認(rèn)為wlc缴渊;
    管理集群上的RS:增、改鱼炒、刪衔沼;
            增弄息、改:
                ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
            刪:
                ipvsadm -d -t|u|f service-address -r server-address
    server-address:
                rip[:port]
        選項(xiàng):
            lvs類型:
                -g: gateway, dr類型
                -i: ipip, tun類型
                -m: masquerade, nat類型
                        
                -w weight:權(quán)重胞皱;
            
    清空定義的所有內(nèi)容:
                ipvsadm -C
            
    查看:
                ipvsadm -L|l [options]
                    --numeric, -n:numeric output of addresses and ports 
                    --exact:expand numbers (display exact values)
                    
                    --connection, -c:output of current IPVS connections
                    --stats:output of statistics information
                    --rate :output of rate information
                
    保存和重載:
                ipvsadm -S = ipvsadm-save
                ipvsadm -R = ipvsadm-restore 
負(fù)載均衡集群設(shè)計(jì)時(shí)要注意的問題:

(1) 是否需要會(huì)話保持牵囤;
(2) 是否需要共享存儲(chǔ)硬爆;

  • 共享存儲(chǔ):NAS, SAN擎鸠, DS(分布式存儲(chǔ))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缀磕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劣光,更是在濱河造成了極大的恐慌袜蚕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绢涡,死亡現(xiàn)場(chǎng)離奇詭異牲剃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雄可,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門凿傅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缠犀,“玉大人,你說我怎么就攤上這事聪舒”嬉海” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵箱残,是天一觀的道長滔迈。 經(jīng)常有香客問我,道長被辑,這世上最難降的妖魔是什么燎悍? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮盼理,結(jié)果婚禮上谈山,老公的妹妹穿的比我還像新娘。我一直安慰自己榜揖,他們只是感情好勾哩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著举哟,像睡著了一般思劳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妨猩,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天潜叛,我揣著相機(jī)與錄音,去河邊找鬼壶硅。 笑死威兜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的庐椒。 我是一名探鬼主播椒舵,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼约谈!你這毒婦竟也來了笔宿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤棱诱,失蹤者是張志新(化名)和其女友劉穎泼橘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迈勋,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡炬灭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了靡菇。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片重归。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡米愿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出提前,到底是詐尸還是另有隱情吗货,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布狈网,位于F島的核電站宙搬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拓哺。R本人自食惡果不足惜勇垛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望士鸥。 院中可真熱鬧闲孤,春花似錦、人聲如沸烤礁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脚仔。三九已至勤众,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鲤脏,已是汗流浹背们颜。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猎醇,地道東北人窥突。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像硫嘶,于是被迫代替她去往敵國和親阻问。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354