集群-ipvsadm和NAT實驗(3)

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

調度算法:

1、靜態方法:

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

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

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

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

2、動態方法:

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

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

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

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

lblc:基于本地的最少連接。和dh一樣,考慮cache的連接數??赡芷茐木彺婷新省?/p>

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 22:43
下一篇 2015-12-15 22:46

相關推薦

  • 作業:0803日

    1:三種權限rwx對文件和目錄的不同意義:       對文件: r:能夠查看文件內容 w:修改文件內容 x:執行文件,通常文件的執行權限能夠發起一個進程       對目錄: r: 能夠cd進目錄,使用ls查看目錄內的文件列表 w: 能夠…

    Linux干貨 2016-08-05
  • Vim編輯工具用法的總結

    描述:    Vim是一款強大的命令行界面的文本編輯器,是vi的高級版本,先說下學習它的原因:  1,所有的UNIX Like 系統都會內置vi文本編輯器,其他的文本編輯器則不一定會存在;  2,很多軟件的編輯接口都會主動調用vi  3,vim具有程序編輯的能力,可以主動以字體顏色辨別語法的正確性,方便程序設…

    Linux干貨 2016-08-11
  • 馬哥教育網絡班22期+第三周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     [root@zabbix ~]# who|awk '{print $1}'|sort| uniq 2、取出最后登錄到當前系統的用戶的相關信息。 &nb…

    Linux干貨 2016-08-23
  • TCP 的那些事兒(上)

       TCP是一個巨復雜的協議,因為他要解決很多問題,而這些問題又帶出了很多子問題和陰暗面。所以學習TCP本身是個比較痛苦的過程,但對于學習的過程卻能讓人有很多收獲。關于TCP這個協議的細節,我還是推薦你去看W.Richard Stevens的《TCP/IP 詳解 卷1:協議》(當然,你也可以去讀一下RFC793以及后面N多的RFC)。另…

    Linux干貨 2015-04-01
  • Bash Shell中的for循環和運算表達式應用

    Bash Shell中的for循環和運算表達式應用 1、寫一個腳本 實現以下功能: 接受一個以上文件路徑作為參數, 顯示每個文件擁有的行數,總結說明本次共為幾個文件統計了其行數。設定此腳本至少需要一個參數并給出提示,$#表示參數的個數。將腳本提供的所有參數組成一個列表放入for語句依次進行循環執行echo "$i has $(wc -l $i | …

    Linux干貨 2016-12-13
  • 啟動流程與內核管理

    centos6和centos5啟動流程與內核管理,啟動過程中遇到的系統不能啟動,各個階段該怎么解決

    Linux干貨 2018-01-02

評論列表(1條)

  • stanley
    stanley 2015-12-15 22:46

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

欧美性久久久久