ipvsadm用法

ipvsadm命令的用法:

     1.用于管理Lvs集群服務

     2.用于進行RS的增刪改

     3.查看配置

 lvs服務器架設步驟:

 1.判斷內核是否支持ipvs(看到CONFIG_NETFIFLER_XT_MATCH_IPVS=m,)

# grep -A 30 -i 'IPVS' /boot/config-2.6.32-279.el6.x86_64 

# IPVS transport protocol load balancing support

#

CONFIG_IP_VS_PROTO_TCP=y

CONFIG_IP_VS_PROTO_UDP=y

CONFIG_IP_VS_PROTO_AH_ESP=y

CONFIG_IP_VS_PROTO_ESP=y

CONFIG_IP_VS_PROTO_AH=y

CONFIG_IP_VS_PROTO_SCTP=y

#

# IPVS scheduler

#

CONFIG_IP_VS_RR=m

CONFIG_IP_VS_WRR=m

CONFIG_IP_VS_LC=m

CONFIG_IP_VS_WLC=m

CONFIG_IP_VS_LBLC=m

CONFIG_IP_VS_LBLCR=m

CONFIG_IP_VS_DH=m

CONFIG_IP_VS_SH=m

CONFIG_IP_VS_SED=m

CONFIG_IP_VS_NQ=m

#

# IPVS application helper

#

CONFIG_IP_VS_FTP=m

從上可以看出內核已經支持了ipvs協議,其中:

   CONFIG_NETFIFLER_XT_MATCH_IPVS=m   表示能夠執行模塊化編譯

   CONFIG_IP_VS_PROTO_TCP=y    

   CONFIG_IP_VS_PROTO_UDP=y       表示支持TCP和UDP協議

   CONFIG_IP_VS_RR=m      表示支持的調度協議

 2.ipvsadm的安裝

 #yum -y install ipvsadm

 安裝成功后檢驗:

 # rpm -ql ipvsadm

/etc/rc.d/init.d/ipvsadm        #ipvs的服務用于加載內核規則

/etc/sysconfig/ipvsadm-config

/sbin/ipvsadm                  #主程序

/sbin/ipvsadm-restore       #用于重載配置到內核中

/sbin/ipvsadm-save        #保存規則的文件

/usr/share/doc/ipvsadm-1.26

/usr/share/doc/ipvsadm-1.26/README

/usr/share/man/man8/ipvsadm-restore.8.gz

/usr/share/man/man8/ipvsadm-save.8.gz

/usr/share/man/man8/ipvsadm.8.gz

man查看

SYNOPSIS

       ipvsadm -A|E -t|u|f service-address [-s scheduler]        大寫選項用于管理ipvs集群

               [-p [timeout]] [-M netmask]

       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     小寫選項用于管理ipvs集群的rs

               [-g|i|m] [-w weight] [-x upper] [-y lower]

       ipvsadm -d -t|u|f service-address -r server-address

       ipvsadm -L|l [options]

       ipvsadm -Z [-t|u|f service-address]

       ipvsadm –set tcp tcpfin udp

       ipvsadm –start-daemon state [–mcast-interface interface]

               [–syncid syncid]en

       ipvsadm –stop-daemon state

       ipvsadm -h   

     管理集群服務:增、改、刪、查

        ipvsadm -A|E -t|u|f service-address [-s scheduler] 

             -A:添加

             -E:修改

             -t:tcp

             -u:udp

             -f:防火墻標記

             service-address:

                 -t,tcp   地址格式    vip:port

                 -u,udp   地址格式    vip:port

                 -f,fire wall mark   mark

             -s scheduler:默認為wlc

         ipvsadm -D -t|u|f service-address

             -D:刪除

     管理集群上的RS:

         ipvsadm -a|e -t|u|f service-address -r server-address

             -a:增

             -e:改

         使用命令前,必須創建好Vserver

             -r server-address

                 RS的地址:

                    rip[:port]   #如果端口省略,則與Vserver端口相同

             -g,gateway,dr  默認類型

             -i,ipip,tun

             -m,masquerade,nat

             -w,weight   適用wrr、wlc、sed

     

     查看:

         ipvsadm -L|l [options]

             -n,–numeric:數字格式顯示  IP:端口

             –exact:精確顯示

             -c,–connection:顯示當前IPVS的連接

             –stats:顯示統計數據

             –rate:速率

     清空規則:

         ipvsadm -C 

  

     保存和重載:

         保存:

             ipvsadmin -S > /PATH/TO/SOME_RULE_FILE

             ipvsadmin -save > /PATH/TO/SOME_RULE_FILE

         重載:

             ipvsadm -R < /PATH/TO/SOME_RULE_FILE

             ipvsadm -restore < /PATH/TO/SOME_RULE_FILE

     清空計數器:

         ipvsadm -Z [-t|u|f service-address]

1.數字形式查看IPVS規則:

 # ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags                                        #VIP的信息

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn         #RS的信息

2.添加一個LVS服務器,再次查看

# ipvsadm -A -t 172.20.150.8:80 -s rr

# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 rr

3.為LVS服務器關聯一個RS,指定調度類型為NAT

# ipvsadm -a -t 172.20.150.8:80 -r 192.168.1.1:8080 -m -w 1

# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 rr

  -> 192.168.1.1:8080             Local   1      0          0 

# ipvsadm -Ln –stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  172.20.150.8:80                     0        0        0        0        0

  -> 192.168.1.2:8080                    0        0        0        0        0

  Conns:連接數

  InPkts:入棧報文數

  OutPkts:出棧報文數

  InBytes:入棧字節

  OutBytes:出棧字節

# ipvsadm -Ln –rate

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port                 CPS    InPPS   OutPPS    InBPS   OutBPS

  -> RemoteAddress:Port

TCP  172.20.150.8:80                     0        0        0        0        0

  -> 192.168.1.2:8080                    0        0        0        0        0

  CPS:每秒鐘的連接數

  InPPS:每秒入棧報文數

  OutPPS:每秒出棧報文數

  InBPS:每秒入棧字節

  OutBPS:每秒出棧字節

修改LVS服務器調度方法:

# ipvsadm -E -t 172.20.150.8:80 -s wlc

# ipvsadm -Ln 

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 wlc

  -> 192.168.1.2:8080             Masq    1      0          0

修改LVS服務器下RS的權重:

# ipvsadm -e -t 172.20.150.8:80 -r 192.168.1.2:8080 -m -w 10

# ipvsadm -Ln 

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.20.150.8:80 wlc

  -> 192.168.1.2:8080             Masq    10     0          0 

配置文件的備份、恢復:

   保存IPVS配置文件:

# ipvsadm -S > /tmp/ipvsadm-config.v1

# cat /tmp/ipvsadm-config.v1 

-A -t cdh1:http -s wlc

-a -t cdh1:http -r 192.168.1.2:webcache -m -w 10

   刪除IPVS配置文件

# ipvsadm -C

   重新載入IPVS配置文件

# ipvsadm -R < /tmp/ipvsadm-config.v1

配置開機自動加載:

# ipvsadm -S > /etc/sysconfig/ipvsadm        加載時會默認讀取這個文件

# chkconfig ipvsadm on

負載均衡集群設計時的要點:

     (1)session保持

           session sticky(ip hash)

           session cluster

           session server

     (2)共享存儲:

           NAS:訪問接口是文件系統

           SAN:訪問接口是塊級別

           DS:分布式存儲,訪問接口通常是文件級別,接口可是文件系統,也可以是API;ceph,內核級別的分布式存儲

          數據同步:

           rsync+inotify (主從服務器  主服務器能夠讀寫、從服務器只能夠讀)

          數據格式:

               結構化數據:存儲在SQL數據庫中                   #即所有數據都能明確定義出數據類型的

               半結構化數據:xml,json,存儲于文件系統或NoSQL;

               非結構化數據:文件系統,NAS、SAN、DS;

 LVS-NAT:

     設計要點:

        (1)DIP與RIP要在同一IP網絡住,RIP的網關要指向DIP;

        (2)支持端口映射;

        (3)是否用到共享存儲取決于業務需求;

     實踐作業:負載均衡一個php應用;

         測試:(1)是否需要會話保持;

               (2)是否需要共享存儲;

 LVS-DR:direct routing

     在各主機(Director,RS)均需要配置VIP;因此,要解決地址沖突的問題,目標是讓各RS上的VIP不可見,僅用接受目標地址為VIP的報文,同時可作為響應報文的源地址;

        (1)在前端的網關接口上靜態綁定;   #弊端是無法再高可用的Director集群上很好的切換

        (2)在各RS上使用arptables;   #拒絕RS服務器響應ARP請求

        (3)在各RS上修改內核參數,來限制arp響應和通告;

                限制響應級別:arp_ignore

                     0:默認,使用本地任意接口上配置的地址進行響應

                     1:僅在請求的目標IP配置在本地主機的接收報文的入棧接口,才給與響應

                     2-8:在LVS-DR集群配置中用不到

                限制通告級別:arp_announce

                     0:默認,把本機所有接口信息向所有接口通告

                     1:盡量避免向非本地網絡通告;

                     2:總是避免通告;

     設計要點:

        (1)各主機一個接口即可,但需要在同一物理網絡中;

        (2)RIP的網關不能指向DIP;RIP和DIP通常應該在同一網絡,但此二者未必會與VIP在同一網絡;

        (3)各RS需要先設置內核參數,再設置VIP和路由;

        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

        設置接口IP:

               ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip

               route add -host $vip dev lo:0

     實踐作業:增刪減RS,NAT和DR模式哪一個方便?

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

(1)
oranixoranix
上一篇 2017-01-10 13:18
下一篇 2017-01-10 15:25

相關推薦

  • 第十七周作業

    1、結合圖形來描敘LVS的工作原理; 工作原理 LVS分為兩個組件:ipvs和ipvsadm         ipvs:工作于內核空間,主要用于使用戶定義的策略生效;         ipvsadm : 工作于用戶空間,主要用于用戶定義和管理集群服務…

    2017-06-27
  • Linux磁盤知識,分區與文件系統

    硬件設備在Linux系統中的表現     設備文件      I/O Ports: I/O設備地址      一切皆文件:         open(), read(), write(), close()   &nbsp…

    Linux干貨 2016-08-29
  • DHCP

        動態主機設置協議(Dynamic Host Configuration Protocol,DHCP)是一個局域網的網絡協議,使用UDP協議工作,主要有兩個用途: 用于內部網絡或網絡服務供應商自動分配IP地址給用戶 用于內部網絡管理員作為對所有電腦作中央管理的手段     …

    Linux干貨 2017-07-24
  • 馬哥Linux學習之Linux背景和主要發行版篇

        Linux是一種 類Unix計算機操作系統的統稱,簡單的說來就是Linux內核+GNU工程的各種工具和數據庫。Linux包括各種Linux的發行版,其實也就是為達到不同的目的而制作(目的包括對不同計算機結構的支持,對一個具體區域或語言的本地化,實時應用或嵌入式)的不同版本。     Linux的由來.…

    2015-03-19
  • shell編程2

    組合測試條件  第一種方式:        COMMAND1 && COMMAND2 并且        COMMAND1 || COMMAND2 或者        ! COMMAND 非   &nbs…

    Linux干貨 2016-08-21
欧美性久久久久