ipvsadm 命令 記錄

對ipvsadm 的命令參考,並根據本身使用的經驗,進行了一個簡單的翻譯,但願
對ipvsadm 的使用者有必定的幫助。
爲了更好的讓你們理解這份命令手冊,將手冊裏面用到的幾個術語先簡單的介紹
一下:
1,virtual-service-address:是指虛擬服務器的ip 地址
2,real-service-address:是指真實服務器的ip 地址
3,scheduler:調度方法
命令選項解釋:
有兩種命令選項格式,長的和短的,具備相同的意思。在實際使用時,兩種均可
以。
-A --add-service 在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。也
就是增長一臺新的虛擬服務器。
-E --edit-service 編輯內核虛擬服務器表中的一條虛擬服務器記錄。
-D --delete-service 刪除內核虛擬服務器表中的一條虛擬服務器記錄。
-C --clear 清除內核虛擬服務器表中的全部記錄。
-R --restore 恢復虛擬服務器規則
-S --save 保存虛擬服務器規則,輸出爲-R 選項可讀的格式
-a --add-server 在內核虛擬服務器表的一條記錄裏添加一條新的真實服務器
記錄。也就是在一個虛擬服務器中增長一臺新的真實服務器
-e --edit-server 編輯一條虛擬服務器記錄中的某條真實服務器記錄
-d --delete-server 刪除一條虛擬服務器記錄中的某條真實服務器記錄
-L|-l --list 顯示內核虛擬服務器表
-Z --zero 虛擬服務表計數器清零(清空當前的鏈接數量等)
--set tcp tcpfin udp 設置鏈接超時值
--start-daemon 啓動同步守護進程。他後面能夠是master 或backup,用來講
明LVS Router 是master 或是backup。在這個功能上也能夠採用keepalived 的
VRRP 功能。
--stop-daemon 中止同步守護進程
-h --help 顯示幫助信息
其餘的選項:
-t --tcp-service service-address 說明虛擬服務器提供的是tcp 的服務
[vip:port] or [real-server-ip:port]
-u --udp-service service-address 說明虛擬服務器提供的是udp 的服務
[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark 說明是通過iptables 標記過的服務類型。
-s --scheduler scheduler 使用的調度算法,有這樣幾個選項
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默認的調度算法是: wlc.
-p --persistent [timeout] 持久穩固的服務。這個選項的意思是來自同一個客
戶的屢次請求,將被同一臺真實的服務器處理。timeout 的默認值爲300 秒。
-M --netmask netmask persistent granularity mask
-r --real-server server-address 真實的服務器[Real-Server:port]
-g --gatewaying 指定LVS 的工做模式爲直接路由模式(也是LVS 默認的模式)
-i --ipip 指定LVS 的工做模式爲隧道模式
-m --masquerading 指定LVS 的工做模式爲NAT 模式
-w --weight weight 真實服務器的權值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的鏈接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護進程狀態
--stats 顯示統計信息
--rate 顯示速率信息
--sort 對虛擬服務器和真實服務器排序輸出
--numeric -n 輸出IP 地址和端口的數字形式node

 
 
 
LVS瑣碎記憶:
 
一、InActConn並不表明錯誤鏈接,它是指不活躍鏈接(Inactive Connections), 咱們將處於TCP ESTABLISH狀態之外的鏈接都稱爲不活躍鏈接,例如處於SYN_RECV狀態的鏈接,處於TIME_WAIT狀態的鏈接等。 二、用四個參數來關閉arp查詢響應請求: echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 三、ipvsadm -L -n --stats Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes 鏈接數 輸入包 輸出包 輸入流量 輸出流量 四、注意事項: 1)在LVS方案中,虛擬ip地址與普通網絡接口大大不一樣,這點須要特別注意。 虛擬ip地址的廣播地址是它自己,子網掩碼是255.255.255.255。 爲何要這樣呢?由於有若干機器要使用同一個ip地址, 用自己作廣播地址和把子網掩碼設成4個255就不會形成ip地址衝突了,不然lvs將不能正常轉發訪問請求。 2)假如兩臺VS之間使用的互備關係,那麼當一臺VS接管LVS服務時,可能會網絡不通,這時由於路由器的MAC緩存表裏關於vip這個地址的MAC地 址仍是被替換的VS的MAC,有兩種解決方法,一種是修改新VS的MAC地址,另外一種是使用send_arp 命令(piranha軟件包裏帶的一個小工具) 格式以下: send_arp: send_arp [-i dev] src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr 這個命令不必定非要在VS上執行,只+要在同一VLAN便可。 /sbin/arping -f -q -c 5 -w 5 -I eth0 -s $WEB_VIP -U $GW 5.Virtual Server via Direct Routing(VS/DR) VS/DR經過改寫請求報文的MAC地址,將請求發送到真實服務器,而真實服務器將響應直接返回給客戶。同VS/TUN技術同樣,VS/DR技術可極大地 提升集羣系統的伸縮性。這種方法沒有IP隧道的開銷,對集羣中的真實服務器也沒有必須支持IP隧道協議的要求,可是要求調度器與真實服務器都有一塊網卡連 在同一物理網段上。 6. LVS 經驗: 1). LVS調度的最小單位是「鏈接」。 2). 當apache的KeepAlive被設置成Off時,「鏈接」才能被較均衡的調度。 3). 在不指定-p參數時,LVS才真正以「鏈接」爲單位按「權值」調度流量。 4). 在指定了-p參數時,則一個client在必定時間內,將會被調度到同一臺RS。 5). 能夠經過」ipvsadm –set tcp tcpfin udp」來調整TCP和UDP的超時,讓鏈接淘汰得快一些。 6). 在NAT模式時,RS的PORT參數纔有意義。 7). DR和TUN模式時,InActConn 是沒有意義的(Thus the count in the InActConn column for LVS-DR, LVS-Tun is inferred rather than real.) /sbin/arping -f -q -c 5 -w 5 -I eth0 -s $WEB_VIP -U $GW 3、LVS 性能調優 Least services in System or Compile kernel. Performace Tuning base LVS: LVS self tuning( ipvsadm Timeout (tcp tcpfin udp)). ipvsadm -Ln --timeout Timeout (tcp tcpfin udp): 900 120 300 ipvsadm --set tcp tcpfin udp Improving TCP/IP performance net.ipv4.tcp_tw_recyle=1 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_max_syn_backlog=8192 net.ipv4.tcp_keepalive_time=1800 net.ipv4.tcp_fin_timeout=30 net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 net.core.netdev_max_backlog=3000 項目實施案例及經驗分享: 一、機房沒法實時刷新MAC,LVS+Heartbeat方案沒法正常隨機切換IP? 假如兩臺VS之間使用的互備關係,那麼當一臺VS接管LVS服務時,可能會網絡不通,這時由於路由器的MAC緩存表裏沒法及時刷新MAC.關於vip這個 地址的MAC地址仍是替換的VS的MAC,有兩種解決方法,一種是修改新VS的MAC地址,另外一種是使用send_arp /arpiing命令. 以arping命令爲例. /sbin/arping -I eth0 -c 3 -s ${vip}${gateway_ip} > /dev/null 2>&1 Eg: /sbin/arping -I eth0 -c 3 -s 192.168.1.6192.168.1.1 【注】07年部署某大型商業網站項目時,263機房遇到此問題,最好讓機房調整路由 MAC緩存表的刷新頻率;同朋公司移動機房實施相關項目時發現切換IP後仍是沒法 訪問VIP,最後利用上面的arping一個命令搞定. 【附】若是採用Piranha/keealived方案切換的時候會內置自動發送send_arp命令. UltraMonkey方案經測試也會自動發送此命令.如用heartbeat方案,須要寫一個send_arp或者arping相關的腳本看成 heartbeat一個資源切換服務的時候自動發送 相關命令腳本. 二、某臺機器down掉之後,IPVS列表中權值已經置0了,爲何還輪詢到這臺機器上? 配置 ldirectord.conf quiescent=no或 echo 1 >/proc/sys/net/ipv4/vs/expire_nodest_conn 【注】經如上設置某臺Realserver服務down掉之後如何從IPVS列表自動中刪除恢復時如何自動添加. 三、爲何作壓力測試的時候,LVS不能負載均衡多部分鏈接只到某一臺機器上? 難道是LVS不能實現真正的負載均衡? 這和LVS腳本里指定-p參數有關,若是指定了一個client在必定的時間內,將會被調度到同一臺RS上。因此你在歷來源來作壓力測試的時候大部分鏈接 會調度到同一臺機器上,這樣就出現了負載不均衡的情況。不少人常常問我這個問題,仍後我叫他們多從幾個點去同時向LVS服務器作壓力測試的時候就發現負載 很均衡了。
相關文章
相關標籤/搜索