集群基本介紹

Linux Cluster:

Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統;

Linux Cluster類型:

  • LB:Load Balancing,負載均衡;主機來平均訪問的壓力。由負載均衡器和多個后端主機分擔主。

  • HA:High Availiablity,高可用,靠冗余節點實現;提高服務的可用性,有多個負載均衡器(和備份)來接收來自用戶的請求

    A(可用性)=MTBF(平均無故障時間)/(MTBF+MTTR(故障修復時間))

      (0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%, 99.999%
  • HP:High Performance,高性能;提升系統性能的!分布式系統解決方案的初期。解決計算難題。

      www.top500.org

    系統擴展方式:

      Scale UP:向上擴展,指的是計算機性能跟不上了以后就換個性能更好的
      Scale Out:向外擴展
          Cluster

負載均衡集群

負載均衡器(調度器)用來接收來自用戶的請求并按調度的算法發送到后端主機分擔處理的計算機。這些主機的集合就叫做負載均衡集群

LB Cluster 負載均衡集群:

LB Cluster的實現:

硬件:

F5 Big-IP
Citrix Netscaler
A10 A10

軟件:

lvs:Linux Virtual Server
nginx
haproxy
ats:apache traffic server 
perlbal
pound

基于工作的協議層次劃分:

傳輸層(通用):(DPORT端口分發)

    lvs:傳輸層直接路由轉發

    偽傳輸層調度
    nginx:(stream),偽裝成一個后端程序做轉發通過套接字;并發能力有限!
    haproxy:(mode tcp)

應用層(專用):(自定義的請求模型分類)

proxy sferver:(某個協議的代理)
        http:nginx, httpd, haproxy(mode http), ...
        fastcgi:nginx, httpd, ...
        mysql:mysql-proxy, ...
        ...

站點指標:

  • PV:Page View,每次客戶端成功請求的頁面入口的瀏覽量(并不是對頁面的每個資源的請求量)

  • UV:Unique Vistor,每個獨立客戶端對服務器的訪問。每個訪問者就是一個UV(客戶端就是瀏覽器進程)

  • IP:獨立的地址訪問次數

注意:Cookie:用來追蹤用戶身份。服務器端用seession來保存客戶端的各種活動

會話保持:
(1) session sticky(會話粘性)訪問綁定
    Source IP基于源ip綁定
    Cookie 基于cookie綁定

(2) session replication; 復制集群
    session cluster:把后邊的主機的session做同步

(3) session server

lvs:Linux Virtual Server 虛擬服務器

VS: Virtual Server(負載均衡器就是vs)
RS: Real Server(后端服務器)

作者:章文嵩;alibaba –> didi

lvs:四層路由器,四層交換機;

VS:根據請求報文的目標IP和目標協議及端口將其調度轉發至某RealServer,根據調度算法來挑選RS;

iptables/netfilter:

iptables:用戶空間的管理工具;
netfilter:內核空間上的框架;

        流入:PREROUTING --> INPUT 
        流出:OUTPUT --> POSTROUTING
        轉發:PREROUTING --> FORWARD --> POSTROUTING

DNAT:目標地址轉換; PREROUTING;

和iptables類似 lvs: ipvsadm/ipvs

ipvsadm:用戶空間的命令行工具,規則管理器,用于管理集群服務及RealServer;

ipvs:工作于內核空間的netfilter的INPUT鉤子之上的框架;
集群基本介紹

lvs集群類型中的術語:

vs:Virtual Server, Director, Dispatcher, Balancer
rs:Real Server, upstream server, backend server3

CIP:Client IP, VIP: Virtual serve IP, RIP: Real server IP, DIP: Director IP

通信方式:
集群基本介紹
CIP <–> VIP == DIP <–> RIP

lvs集群的類型:

  1. lvs-nat:修改請求報文的目標IP

  2. lvs-dr:操縱封裝新的MAC地址;

  3. lvs-tun:在原請求IP報文之外新加一個IP首部;

  4. lvs-fullnat:修改請求報文的源和目標IP;

1.lvs-nat:

多目標IP的DNAT,通過將請求報文中的目標地址和目標端口修改為某挑出的RS的RIP和PORT實現轉發;

(1)RIP和DIP必須在同一個IP網絡,且應該使用私網地址;RS的網關要指向DIP;
(2)請求報文和響應報文都必須經由Director轉發;Director易于成為系統瓶頸;
(3)支持端口映射,可修改請求報文的目標PORT;
(4)vs必須是Linux系統,rs可以是任意系統;

2.lvs-dr:

Direct Routing,直接路由;
集群基本介紹
通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變;

Director和各RS都得配置使用VIP;

Director將接受的請求進行重新封裝,添加MAC首部發向交換機,讓交換機發往后端主機。

RS的vip配置在lo上,接收到路由轉發過來的請求后,拆解報文送往lo上的vip后再處理。

發送信息也要先經過lo再通過外部網卡轉發發出去,這樣就保證了源ip為vip,目標ipione為Cip了!

(1) 確保前端路由器將目標IP為VIP的請求報文發往Director:
    (a) 在前端網關做靜態綁定;
    (b) 在RS上使用arptables;
    (c) 在RS上修改內核參數以限制arp通告及應答級別 
        arp_announce
        arp_ignore
(2) RS的RIP可以使用私網地址,也可以是公網地址;RIP與DIP在同一IP網絡;RIP的網關不能指向DIP,以確保響應報文不會經由Director;
(3) RS跟Director要在同一個物理網絡;
(4) 請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client;
(5) 不支持端口映射;

3.lvs-tun:

轉發方式:不修改請求報文的IP首部(源IP為CIP,目標IP為VIP),而在原IP報文之外再封裝一個IP首部(源IP是DIP,目標IP是RIP),將報文發往挑選出的目標RS;

(1) DIP, VIP, RIP都應該是公網地址;
(2) RS的網關不能,也不可能指向DIP;
(3) 請求報文要經由Director,但響應不能經由Director;
(4) 不支持端口映射;
(5) RS的OS得支持隧道功能;
(6)可以跨越互聯網進行轉發。

4.lvs-fullnat:

通過同時修改請求報文的源IP地址和目標IP地址進行轉發;

        CIP --> DIP 
        VIP --> RIP 

(1) VIP是公網地址,RIP和DIP是私網地址,且通常不在同一IP網絡;因此,RIP的網關一般不會指向DIP;
(2) RS收到的請求報文源地址是DIP,因此,只需響應給DIP;但Director還要將其發往Client;
(3) 請求和響應報文都經由Director;
(4) 支持端口映射;

注意:此類型默認不支持;

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

(0)
qzxqzx
上一篇 2016-10-30 21:32
下一篇 2016-10-30 22:31

相關推薦

  • Hadoop簡介

    我們之前已經解釋過了分布式存儲,分布式存儲有很多的解決方案,其中有個開源程序叫做HDFS,HDFS+MAPREDUCE=hadoop。 hadoop不算是單存的分布式存儲,我們之前提到的Mogilefs和Fastdfs都是分布式存儲。hadoop屬于分布式計算,MAPREDUCE是一個編程的框架,使得程序可以并行計算。 HDFS適用于存儲單個大文件,在存儲中…

    2017-03-13
  • ?awk

    awk

    Linux干貨 2016-09-24
  • LINUX HASH命令

    LINUX:Hash命令 介紹:linux系統下會有一個hash表,剛開始這個hash表為空,每執行過一條命令hash表會緩存下這條命令。Shel優先會查看hash表。 hash緩存表可大大提高命令的調用速率 下面介紹幾個hash常用選項 剛進入系統使用Hash命令 哈希表為空 使用過命令后使用Hash命令 使用過命令后,Hash可顯示緩存的命令 Hash …

    Linux干貨 2017-04-03
  • ngx_http_proxy_module

    ngx_http_proxy_module 1.proxy_pass Syntax: proxy_pass URL; Context: location, if in location, limit_except 這條指令將來是用的相當多的指令。 v  附加1:proxy_pass后面的路徑不帶uri時,其會將loca…

    2016-10-30
  • 用戶組和權限管理知識總結

    在介紹本期內容之前呢,有一個小插曲.就是由于昨天晚上我沒有正常關閉虛擬機,今天早上打開的時候一直顯示正在使用中,彈 出來個小框框,如下圖,馬賽克部分呢就是提示的路徑,安裝路徑不一樣,提示的就也不一樣. 此虛擬機似乎正在使用中。 如果此虛擬機已在使用中,請按“取消”按鈕,以免損壞它。如果此虛擬機未使用,請按“取得所有權(T)”按鈕以獲取它的所有權。&…

    2017-07-28
  • Linux中的cut、sort、uniq以及用戶(組)管理類指令應用示例

    Linux中的cut、sort、uniq指令 列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,只顯示一次。 解決思路: 先使用who指令顯示出所有已登錄的用戶。然后對who指令的輸出進行切割得到想要的第一列內容,即只包含用戶名。可以使用cut指令。最后對cut的結果進行排序并去重??梢允褂胹ort指令。   借助管道符,可以方便的…

    Linux干貨 2016-11-13
欧美性久久久久