集群-ipvsadm和NAT實驗(3)

糾正:報文進入內核空間后,當到達input鏈時發現是一個集群服務時,則直接發送到postrouting鏈,不經過forward鏈。

調度算法:

1、靜態方法:

rr:輪詢,即依照次序從所有RS中進行挑選

wrr:加權輪詢,按照權重在RS中進行輪詢

sh:source hashing,源地址哈希,即對來自相同客戶端的請求發送至同一RS,這樣會破壞負載均衡效果。可以基于cookie實現session綁定。

dh:destination hash,目標地址哈希,將同樣的請求發給同一個RS。可以提高緩存命中率。

2、動態方法:

lc:最少連接。(活動連接數*256+非活動連接數),誰的最小就是誰。

wlc:加權最少連接。(活動連接數*256+非活動連接數)/weight,誰的最小就是誰。

sed:最少期望延遲。不再考慮非活動連接。(活動連接數+1)*256/weight,誰的最小就是誰。

nq:最少隊列調度,改進的sed算法,也不考慮非活動連接數。無需隊列。如果有臺realserver的連接數=0就直接分配過去,不需要在進行sed運算。

lblc:基于本地的最少連接。和dh一樣,考慮cache的連接數。可能破壞緩存命中率。

lblcr:基于本地的帶復制功能的最少連接。如果一臺服務器的訪問過高,可以將緩存復制給其他服務器前面的緩存服務器,然后由其他服務器提供服務。緩存服務器之間會部分復制緩存。

生產環境中比較理想的是wlc,因為非活動連接可能是無法忽略的。

安裝ipvsadm及命令詳解:

yum直接安裝ipvsadm即可。

grep -i 'vs' /boot/config-2.6.32-504.el6.x86_64   #即可查看ipvsadm的相關算法等信息

主要功能:

1、管理集群服務:
    添加:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]
        -t|u|:tcp|udp
            service-address:ip:port
        -f:防火墻標記
            service-address:mark number
        默認使用wlc算法
    修改:同上
    刪除:ipvsadm -D -t|u|f service-address
2、管理集群中RS:
    添加:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]
        service-address:先定義的集群服務
        -r server-address:RS地址,在NAT模型中可以使用ip:port來做端口映射
        [-g|i|m]:g,DR模型;i,TUN模型;m,地址偽裝NAT模型,默認為DR模型
        -w weight:權重,若集群不指定權重,則此處無意義 
    修改:同上
    刪除:ipvsadm -d -t|u|f service-address -r server-address
3、查看
    -L|l:查看
        -n:數字格式顯示ip和端口
        --stats:顯示統計信息
        --rate:顯示速率
        --timeout:顯示tcp,tcpfin,udp超時
        --daemon:顯示多播等信息
        --sort:排序
        -c:顯示連接狀態
-Z:清空計數器
-C:清空所有集群服務
保存規則:
    -S > 文件(使用輸出重定向)
    或者service ipvsadm save,自動保存至/etc/sysconfig/ipvsadm中
導入規則:
    -R < 文件(使用輸入重定向)

實驗:

前提:

1、時間得同步。尤其是以后的高可用模型對時間同步要求很嚴格。

2、改主機名

3、directory(調度器)的兩塊網卡之間得打開轉發功能

blob.png

IP規劃如上圖

開啟網卡轉發功能:

blob.png

Directory網絡配置(eth0設置為橋接,eth1設置為僅主機模式):

blob.png

RS網絡設置

RS1:(網卡設置為僅主機模式)

blob.png

RS2:(網卡設置為僅主機模式)

blob.png

添加集群服務并查看 

blob.png

blob.png

在RS中添加默認網頁:

echo “RS1” > /var/www/html/index.html
echo “RS2” > /var/www/html/index.html

再RS中啟動httpd服務:service httpd start

查看一下index.html文件:

blob.png(此處未改主機名)

blob.png(此處未改主機名)

在網頁中輸入192.168.0.20并刷新

blob.png

blob.png

保存規則并查看:

blob.png

blob.png

清空規則并查看:

blob.png

此時已無規則。

導入規則并查看:

blob.png

DR模型:

blob.png

Director配置:(配置DIP,VIP,添加路由)

blob.png

blob.png

RS1配置:

blob.png

(此處未改主機名)

[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 
[root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置vip:

[root@RS1 ~]# ifconfig lo:0 192.168.0.21 broadcast 192.168.0.21 netmask 255.255.255.255 up

添加路由:

[root@RS1 ~]# route add -host 192.168.0.21 dev lo:0

RS2配置:

blob.png

(此處未改主機名)

[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 
[root@RS2 ~]# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce 
[root@RS2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置VIP:

[root@RS2 ~]# ifconfig lo:0 192.168.0.21 broadcast 192.168.0.21 netmask 255.255.255.255 up

配置路由:

[root@RS2 ~]# route add -host 192.168.0.21 dev lo:0

Director添加集群服務并查看

blob.png

瀏覽器查看:

blob.pngblob.png

原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/9488

(0)
黑白子黑白子
上一篇 2015-12-15
下一篇 2015-12-15

相關推薦

  • Python from entry to abandon

          學習Linux已經有大致兩周了,依然感覺到自己仍然在運維的大門外徘徊。于是我想要找到一個在Linux之外的業余方向,可以作為枯燥基礎學習的調節。沒過多久我就發現了Python可以 說是欽定的選擇,它作為Linux的內置語言,傳言風格簡潔優美,功能強大。Python老生常談的缺點是效率不高,哎,沒辦…

    Linux干貨 2017-04-01
  • 制作自動化安裝的啟動U盤

    制作自動化安裝的啟動U盤 準備: CentOS 6.8 系統、CentOS-6.8-x86_64-bin-DVD1.iso光盤、U盤、centos-6-x86_64(kickstart文件) mkdir /mnt/myiso  創建目錄,創建安裝樹 查看光盤的掛載點 cp -r /media/CentOS_6.8_Final/isolinux/ &…

    2017-04-05
  • 第六周作業 bash編程學得好痛苦啊,啊啊啊~~需要挺??!

    請詳細總結vim編輯器的使用并完成以下練習題 VIM很強大,但是萬變不離其宗,最核心的三模式以下圖表示: 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s/^[[:blank:]]\+.*/\0#/g 2、復制/boot/grub/grub.conf至/…

    Linux干貨 2016-12-19
  • 2班jackcui20160802作業

    1、每日課堂筆記總結 2、預習 3、每日課堂pdf練習 4、在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 [root@centos7 /]# groupadd g1 [root@centos7 /…

    Linux干貨 2016-08-05
  • 馬哥教育網絡班21期-第六周課程練習

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;  # :%s@^[[:space:]]\+@#&@g 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; &nb…

    Linux干貨 2016-08-15
  • 基于heartbeat v2 crm實現基于nfs的mysql高可用集群

    前言 因heartbeat v1內置的資源管理器haresource功能比較簡單,且不支持圖形化管理,所以heartbeat v2不再支持haresource,轉而使用更加強大的資源管理器crm進行集群管理。本文將講解如何基于heartbeat v2 crm實現基于nfs的mysql高可用集群。 高可用實現 實驗拓撲 實驗環境 node1:172.16.10…

    Linux干貨 2015-06-11

評論列表(1條)

  • stanley
    stanley 2015-12-15 22:46

    哈,很不錯,不過最核心的 arp_announce 原理呢?

欧美性久久久久