天天看點

高可用性網絡

一、簡介

高可用性網絡的實質就是不出現單點故障。高可用性網絡實作主要有以下幾種:

1.伺服器上實作高可用性,需要實作群集。

高可用性群集 可用性(availability)當叢集中的一個系統發生故障時,叢集軟體迅速做出反映,将該系統的任務配置設定到叢集中其它正在工作的系統上執行。 考慮到計算機硬體和軟體的易錯性,高可用性群集的的目的主要是為了使群集的整體服務盡可能可用。如果高可用性群集中的主節點發生了故障,那麼這段時間内将由次節點代替它。次節點通常是主節點的鏡像,是以當它代替主節點時,它可以完全接管其身份,并且是以使系統環境對于使用者是一緻的。高可用性(HA)群集緻力于使伺服器系統的運作速度和響應速度盡可能快。它們經常利用在多台機器上運作的備援節點和服務,用來互相跟蹤。如果某個節點失敗,它的替補将在幾秒鐘或更短時間内接管它的職責。是以,對于使用者而言,群集永遠不會停機。 某些 HA 群集也可以維護節點間備援應用程式。是以,使用者的應用程式将繼續運作,即使他或她使用的節點出了故障。正在運作的應用程式會在幾秒之内遷移到另一個節點,而所有使用者隻會察覺到響應稍微慢了一點。但是,這種應用程式級備援要求将軟體設計成具有群集意識的,并且知道節點失敗時應該做什麼。HA 群集也可以執行負載均衡,但通常主伺服器運作作業,而系統使輔助伺服器保持閑置。輔助伺服器通常是主伺服器作業系統設定的鏡像,盡管硬體本身稍有不同。輔助節點對主伺服器進行活動監控或心跳觀察,以檢視它是否仍在運作。如果心跳計時器沒有接收到主伺服器的響應,則輔助節點将接管網絡和系統身份。

2.路由節點上主要有兩種協定實作高可用性:HSRP  VRRP

VRRP       虛拟備援路由協定   quidway網絡裝置

VRRP(虛拟路由器備援協定)是這樣一種協定,它允許一個多路通路鍊路上的幾個路由器利用同一個虛拟IP位址。控制虛拟路由器IP位址的 VRRP 路由器稱為主路由器,它負責轉發資料包到這些虛拟IP位址。一旦主路由器不可用,這種選擇過程就提供了動态的故障轉移機制,這就允許虛拟路由器的IP位址可以作為終端主機的預設第一跳路由器。使用VRRP的好處是有更高的預設路徑的可用性而無需在每個終端主機上配置動态路由或路由發現協定。 VRRP 包封裝在 IP 包中發送。VRRP使路由器自動繞過故障而路由,進而確定了網絡的不間斷運作。

HSRP         熱備份路由協定     cisco網絡裝置

是思科推出的用于建立容錯預設網關的專有備援協定,由RFC 2281進行描述。虛拟路由備援協定(VRRP)是基于标準的HSRP替代協定,由IETF标準RFC 3768進行描述。這兩種技術在概念上相似,但互不相容。

HSRP在網絡路由器之間建立預設網關的倒換架構,當主網關不可達時進行切換。此協定經常與快速會聚路由協定EIGRP或OSPF協同工作。HSRP使用多點傳播位址224.0.0.2和UDP端口1985向其他啟用HSRP協定的路由器發送HELLO封包,來交流路由器間的優先級。配置有最高優先級的主路由器将成為虛拟路由器,以預先配置好的網關IP和MAC位址0000.0c07.acXX(XX是組IP的十六進制值)回應區域網路對網關的ARP的請求。如果主路由器當機,次優先級路由器将接管網關IP并以同樣的MAC位址回應ARP的請求,這樣就實作了透明的預設網關自動倒換。

HSRP和VRRP都不是路由協定,因為它們不釋出IP路由也不影響路由表。

3.網絡鍊路

在區域網路上主要是實作STP(生成樹協定)或者聚合鍊路,以及VLAN通訊的高可用性:

STP(Spanning Tree Protocol,生成樹協定)不能使端口狀态快速遷移,即使是在

點對點鍊路或邊緣端口,也必須等待2倍的Forwarddelay的時間延遲,端口才能

遷移到轉發狀态。

RSTP(Rapid Spanning Tree Protocol,快速生成樹協定)可以快速收斂,但是和

TP一樣存在以下缺陷:區域網路内所有網橋共享一棵生成樹,不能按VLAN阻塞冗

餘鍊路,所有VLAN的封包都沿着一棵生成樹進行轉發。

MSTP(Multiple Spanning Tree Protocol,多生成樹協定)将環路網絡修剪成為一

個無環的樹型網絡,避免封包在環路網絡中的增生和無限循環,同時還提供了資料

轉發的多個備援路徑,在資料轉發過程中實作VLAN資料的負載均衡。

MSTP相容STP和RSTP,并且可以彌補STP和RSTP的缺陷。它既可以快速收

斂,也能使不同VLAN的流量沿各自的路徑分發,進而為備援鍊路提供了更好的負

載分擔機制。

鍊路聚合

鍊路聚合(LinkAggregation),是指将多個實體端口捆綁在一起,成為一個邏輯端口,以實作出/ 入流量在各成員端口中的負荷分擔,交換機根據使用者配置的端口負荷分擔政策決定封包從哪一個成員端口發送到對端的交換機。當交換機檢測到其中一個成員端口的鍊路發生故障時,就停止在此端口上發送封包,并根據負荷分擔政策在剩下鍊路中重新計算封包發送的端口,故障端口恢複後再次重新計算封包發送端口。鍊路聚合在增加鍊路帶寬、實作鍊路傳輸彈性和備援等方面是一項很重要的技術。

1、交換機認為之間通訊的多條鍊路是一條鍊路

2、所有鍊路都工作實作負載均衡

3、一條鍊路失效之後,其他鍊路繼續工作

VLAN之間通訊

vlan間通訊  ---》高層 {三層}  ---》{路由器防火牆三層交換機}

在廣域網上實作備份技術來保證網絡的高可用性(對于廣域網不做多應用)

4. 在磁盤上主要是實作raid。

主要有raid1   raid5 raid6  raid10

        raid:容錯式廉價磁盤陣列raid 可以透過一個技術(軟體戒硬體),将多個較小的磁盤整合成為一個較大的磁盤裝置;而這個較大的磁盤功能可不止是儲存而已,他還具有資料保護的功能呢。整個 raid 由于選擇的等級 (level) 不同,而使得整合後的磁盤具有不同的功能。

二、各種方式高可用性的實作

 1、路由節點上實驗高高可用性

VRRP實驗

實驗裝置主要是H3Csecpath F100C防火牆和quidway s2000h-hi交換機

拓撲結構:

高可用性網絡

拓撲圖中vlan10  vlan20 是虛拟連接配接到備份組上,實際上vlan10連接配接上sw1交換機的e1/0/10上, vlan20連接配接上sw2交換機的e1/0/20上。

模拟鍊路故障可以直接拔掉r1防火牆上的網線即可。

配置檔案如下:

R1防火牆:

<H3C>sys

[H3C]sysname r1

[r1]int eth0/0.1

[r1-Ethernet0/0.1]vlan-type dot1q vid 10

[r1-Ethernet0/0.1]ip add 192.168.10.1 24

[r1-Ethernet0/0.1]int eth0/0.2

[r1-Ethernet0/0.2]vlan-type dot1q vid 20

[r1-Ethernet0/0.2]ip add 192.168.20.1 24

[r1-Ethernet0/0.1]quit    

[r1]undo insulate

[r1]firewall zone trust

[r1-zone-trust]add interface eth0/0

[r1-zone-trust]add interface eth0/0.1

[r1-zone-trust]add interface eth0/0.2

[r1-zone-trust]quit

[r1]firewall packet-filter default permit

[r1]vrrp ping-enable

[r1-Ethernet0/0.1]vrrp vrid 10 virtual-ip 192.168.10.254

[r1-Ethernet0/0.1]vrrp vrid 10 priority 120

[r1-Ethernet0/0.2]vrrp vrid 20 virtual-ip 192.168.20.254

R2防火牆:

<H3C>sy

[H3C]sysname r2

[r2]int eth0/0.1

[r2-Ethernet0/0.1]vlan-type dot1q vid 10

[r2-Ethernet0/0.1]ip add 192.168.10.2 24

[r2-Ethernet0/0.1]int eth0/0.2          

[r2-Ethernet0/0.2]ip add 192.168.20.2 24

[r2-Ethernet0/0.2]vlan-type dot1q vid 20

[r2-Ethernet0/0.2]quit

[r2]undo insulate

[r2]firewall zone trust

[r2-zone-trust]add interface eth0/0

[r2-zone-trust]add interface eth0/0.1

[r2-zone-trust]add interface eth0/0.2

[r2-zone-trust]quit

[r2]vrrp ping-enable

[r2-Ethernet0/0.1]vrrp vrid 10 virtual-ip 192.168.10.254

[r2-Ethernet0/0.1]vrrp vrid 10 priority 120

[r2-Ethernet0/0.1]int eth0/0.2

[r2-Ethernet0/0.2]vrrp vrid 20 virtual-ip 192.168.20.254

Sw1交換機:

[sw1]vlan 10

[sw1-vlan10]port e1/0/10

[sw1-vlan10]vlan 20

[sw1-vlan20]port e1/0/20

[sw1-vlan20]int e1/0/1

[sw1-Ethernet1/0/1]port link-type trunk

[sw1-Ethernet1/0/1]port trunk permit vlan all

[sw1-Ethernet1/0/1]int e1/0/24

[sw1-Ethernet1/0/24]port link-type trunk

[sw1-Ethernet1/0/24]port trunk permit vlan all

Sw2交換機:

[Quidway]sys sw2

[sw2]vlan 10

[sw2-vlan10]port e1/0/10

[sw2-vlan10]vlan 20

[sw2-vlan20]port e1/0/20

[sw2-vlan20]int e1/0/1  

[sw2-Ethernet1/0/1]port link-type trunk

[sw2-Ethernet1/0/1]port trunk permit vlan all

[sw2-Ethernet1/0/1]int e1/0/24              

[sw2-Ethernet1/0/24]port link-type trunk      

[sw2-Ethernet1/0/24]port trunk permit vlan all

2、網絡鍊路實作高可用性

mstp(多生成樹協定)實驗

主要使用裝置quidway s2000h-hi 交換機。

拓撲結構如下:

高可用性網絡

sw1交換機

[Quidway]syssw1

[sw1]vlan10

[sw1-vlan10]vlan20

[sw1-vlan20]vlan30

[sw1-vlan30]vlan30

[sw1-vlan30]inte1/0/22

[sw1-Ethernet1/0/22]portlink-type trunk

[sw1-Ethernet1/0/22]porttrunk permit vlan all

[sw1-Ethernet1/0/22]inte1/0/24

[sw1-Ethernet1/0/24]portlink-type trunk      

[sw1-Ethernet1/0/24]porttrunk permit vlan all

[sw1-Ethernet1/0/24]inte1/0/1

[sw1-Ethernet1/0/1]portlink-type trunk      

[sw1-Ethernet1/0/1]porttrunk permit vlan all

[sw1-Ethernet1/0/1]quit

[sw1]link-aggregationgroup 1 mode manual  //配置聚合

[sw1]inte1/0/22

[sw1-Ethernet1/0/22]portlink-aggregation group 1   //将端口e1/0/22加入聚合組

[sw1-Ethernet1/0/22]inte1/0/24                        

[sw1-Ethernet1/0/24]portlink-aggregation group 1   //将端口e1/0/24加入聚合組

[sw1-Ethernet1/0/24]quit

[sw1]stpenable

[sw1]stpregion-configuration

[sw1-mst-region]region-nameabc  //域名是必須填寫的

[sw1-mst-region]instance1 vlan 10 20  //将VLAN10VLAN20 添加進域1

[sw1-mst-region]instance2 vlan 30 40   //将VLAN30VLAN40 添加進域2

[sw1-mst-region]quit

[sw1]stpinstance 1 root primary  //将域1作為第一生成樹

[sw1]stpinstance 2 root secondary //域2作為第二生成樹

[sw1-mst-region]revision-level1

[sw1-mst-region]activeregion-configuration

[sw1-mst-region]checkregion-configuration //  檢測

Admin configuration

  Format selector    :0

  Region name        :abc

  Revision level     :0

  Instance  Vlans Mapped

     0      1 to 9, 11 to 19, 21 to 29, 31 to 39, 41 to 4094

     1      10, 20

     2      30, 40

Sw2 交換機

配置檔案:

<Quidway>sys

[Quidway]syssw2

[sw2]vlan10

[sw2-vlan10]vlan20

[sw2-vlan20]vlan30

[sw2-vlan30]vlan40

[sw2-vlan40]inte1/0/2

[sw2-Ethernet1/0/2]portlink-type trunk

[sw2-Ethernet1/0/2]porttrunk permit vlan all

[sw2-Ethernet1/0/2]inte1/0/22

[sw2-Ethernet1/0/22]portlink-type trunk      

[sw2-Ethernet1/0/22]porttrunk permit vlan all

[sw2-Ethernet1/0/22]inte1/0/24              

[sw2-Ethernet1/0/24]portlink-type trunk      

[sw2-Ethernet1/0/24]porttrunk permit vlan all

[sw2-Ethernet1/0/24]quit

[sw2]link-aggregationgroup 1 mode manual

[sw2]inte1/0/22                        

[sw2-Ethernet1/0/22]portlink-aggregation group 1

[sw2-Ethernet1/0/22]inte1/0/24

[sw2-Ethernet1/0/24]portlink-aggregation group 1

[sw2]stpenable

[sw2]stpregion-configuration

[sw2-mst-region]region-nameabc   //域sw1的域名保持一緻

[sw2-mst-region]instance1 vlan 10 20

[sw2-mst-region]instance2 vlan 30 40

[sw2-mst-region]quit

[sw2]stpinstance 2 root primary

[sw2]stpinstance 1 root secondary

[sw2-mst-region]revision-level1

[sw2-mst-region]activeregion-configuration

[sw2-mst-region]checkregion-configuration

Sw3交換機

[Quidway]sysnamesw3

[sw3]vlan10  

[sw3-vlan10]vlan20

[sw3-vlan20]vlan30

[sw3-vlan30]vlan40

[sw3-vlan40]inte1/0/1

[sw3-Ethernet1/0/1]portlink-type trunk

[sw3-Ethernet1/0/1]porttrunk permit vlan all

[sw3-Ethernet1/0/1]inte1/0/2                

[sw3-Ethernet1/0/2]portlink-type trunk      

[sw3-Ethernet1/0/2]porttrunk permit vlan all

[sw3-Ethernet1/0/2]quit

[sw3]stpenable

[sw3]stpregion-configuration

[sw3-mst-region]region-nameabc

[sw3-mst-region]instance1 vlan 10 20

[sw3-mst-region]instance2 vlan 30 40    

[sw3-mst-region]revision-level1

[sw3-mst-region]activeregion-configuration

[sw3-mst-region]checkregion-configuration

  Revision level     :1

結果如下:

第一生成樹:

[sw1]disstp instance 1 brief

MSTID       Port                  Role  STP State    Protection

  1       Ethernet1/0/1           DESI FORWARDING      NONE  

  1       Ethernet1/0/22          DESI  FORWARDING      NONE

//DESI 指定端口   FORWARDING 轉發狀态

[sw2]disstp instance 1 brief

  1        Ethernet1/0/2           DESI FORWARDING      NONE

  1       Ethernet1/0/22          ROOT  FORWARDING      NONE

//ROOT 根端口

<sw3>disstp instance 1 brief

  1       Ethernet1/0/1           ROOT FORWARDING      NONE

  1       Ethernet1/0/2           ALTE  DISCARDING      NONE

//ALTE 阻塞端口   DISCARDING 阻塞狀态

第二生成樹

[sw1]disstp instance 2 brief

  2       Ethernet1/0/1           DESI  FORWARDING      NONE

  2       Ethernet1/0/22          ROOT  FORWARDING      NONE

[sw2]disstp instance 2 brief

  2       Ethernet1/0/2           DESI FORWARDING      NONE

  2       Ethernet1/0/22          DESI  FORWARDING      NONE

<sw3>disstp instance 2 brief

  2       Ethernet1/0/1           ALTE  DISCARDING      NONE

  2       Ethernet1/0/2           ROOT  FORWARDING      NONE  

3、聚合鍊路實作高可用性

           聚合鍊路的要求

           聚合要求

           端口類型要一緻

         1.類型(是access  還是  trunk)

         2.速率(10/100 強制) speed 100

         3.雙工(全雙工強制)duplex full

         4.端口序号連續的主端口

   實驗:

   (1)在quidways2403H-HI交換機上

1.手工聚合

           2.端口序号無要求

              3.雙工速率無要求

       配置指令:

              stpenable //開啟stp協定

              link-aggregation  group [組号] mode manual

              int端口 //進入要聚合的端口

              portlink-aggregation group [組号]

              displaylink-aggregation summery   //顯示聚合端口

       (2)在quidways2403h-ei與s3526s交換機上

       這裡就要嚴格按照聚合要求來做

              1、首先是要開啟stp  // stp enable      

              2、在端口上配置speed(速率)為100秒,和duplex(雙工模式)為full

              3、配置完那些之後在進行聚合配置

                 link-aggregation [接口] to [接口] both

                 dis link-aggregation   //查詢聚合端口

   4、磁盤上實作高可用性

       Raid 技術

       實作

       硬體 raid卡(這裡不做介紹)

       os:軟體raid (linux )

       使用者空間中的工具

        mdadm

       指令格式: mdadm[mode] <raiddevice> [options] <component-devices>

         Assemble (裝配模式)Assemble  the components of a previously created arrayinto an active array.  Components can beexplicitly givenor can be searched for. mdadm checks that the components do form a bona fide array, and can, onrequest, fiddlesuperblock information so as to assemble a faulty array.将之前建立的數組的元件組裝成一個活躍的數組。元件可以明确givenor可以尋找。mdadm檢查表單元件做一個真正的數組,并且可以在請求,超級塊資訊,裝配錯誤的數組。

                                    Create (建立模式)Createa new array with per-device metadata (superblocks).  Appropriate metadata is written to eachdevice,  andthen the array comprisingthose devices is activated.  A 'resync'process is started to make sure that the arrayis consistent (e.g. both sides ofa mirror contain the same data) but the content of the device is  left other-wise untouched.  The arraycan be used as soon as it has been created. There is no need to wait for the initialresync to finish.建立一個新數組,用裝置中繼資料(superblocks)。适當的中繼資料寫入每個裝置,然後該數組包含這些裝置被激活。重新同步的過程開始確定數組是一緻的(如雙方鏡子包含相同的資料),但不然不和裝置發生的内容。可以使用數組就已經建立。沒有必要等待最初的重新同步完成。

Follow or Monitor 遵循或監視Monitor one or more md devices and act on any state changes.  This is only meaningful for RAID1, 4, 5, 6,10  or multipath  arrays, as  only these have interestingstate.  RAID0 or Linear never havemissing, spare, or faileddrives, so there is nothing to monitor.監控一個或多個md裝置在任何狀态變化和行動。這是唯一有意義的RAID1、4、5、6、10或多路徑數組,因為隻有這些有趣的狀态。恢複或線性從來沒有失蹤,備用,或失敗的驅動器,是以沒有監控。

Grow   增長模式Grow (orshrink) an array, or otherwise reshape it in some way.  Currently supported  growth options  includingchanging  the active size of component devices and changingthe number of active devices in Linear and RAID lev-els 0/1/4/5/6, changing theRAID level between 0, 1, 5, and 6, and between 0 and 10, changing the chunksize andlayout for RAID 0,4,5,6, as well as adding or removing a write-intentbitmap.增長(或減少)一個數組,或者重塑它在某種程度上。目前支援增長選項包括改變元件的活動規模裝置和改變活動裝置的數量線上性和RAID lev-els 0/1/4/5/6,改變之間的RAID級别0,1,5日和6日0和10之間,改變RAID 0的塊大小和布局,4,5,6,以及添加或删除write-intent位圖。

Manage 管理模式This is for doing things to specific components of an array such asadding new spares and removing faultydevices.這是給特定元件的數組,如添加新的備件和删除錯誤的裝置。

             Options for selecting a mode are:

             -A, --assembleAssemble a pre-existingarray.

             -B,--buildBuild a legacy array without superblocks.

             -C,--createCreate a new array.

             -F,--follow, --monitorSelect Monitor mode.

             -G,--growChange the size or shape of an active array.

             -I, --incrementalAdd/remove a single device to/from an appropriatearray,                                                and possibly start the array.

--auto-detectRequest that the kernel starts any auto-detectedarrays.  This can only work if md iscompiled into the kernel

--not  if  it  isa module.  Arrays can be auto-detected bythe kernel if all the components are in primary MS-DOSartitions with partitiontype FD, and all use v0.90 metadata. In-kernel autodetect is not recommended for  newinstallations.  Using mdadm to detect and assemble arrays --possibly in an initrd-- is substantially more flexi-ble and should bepreferred.

If a device isgiven before any options, or if the first option is --add, --fail, or --remove,then the MANAGE mode  is assumed.  Anything other than these will cause the Miscmode to be assumed.

                  -v, --verbose    表示詳細資訊

                  -l, --level=  指明raid等級

                  -N,--name=  命名

                  -n   要添加的磁盤數量

                  -f   失效

                  -r   删除

                  -a   增加

                  -x   備份

執行個體1:

eg:mdadm-Cv  /dev/md0 -l 1 -n 2  /dev/sdc /dev/sdd  //建立一個raid1  

        cat   /proc/mdstat     //檢視

        mkfs -t ext3   /dev/md0  //要格式化

   mount   /dev/md0     /mnt/raid1

        mdadm /dev/md0 -f/dev/sdc   //模拟失效

watch -n  1 ' cat /proc/mdstat'    //記錄檢視raid的狀态(在另一個連接配接頁面中)

mdadm /dev/md0 -a /dev/sde    //sdc失效之後要添加一個來維持raid1的正常運作    sde是另一塊磁盤

//這種是知道一塊磁盤失效之後才能安裝,若是不能發現, raid1就會中斷,資訊丢失

eg:另一種良好的解決方案

mdadm -Cv/dev/md1 -l 1 -n  2  /dev/sdc dev/sdd   -x 1 /dev/sde     在建立時就定義好一塊備份的磁盤

之後要格式化  mkfs -t ext3  /dev/md0  

挂載  mount  /dev/md0      /mnt/raid1

檢視raid的狀态

        cat          /proc/mdstat

        mdadm     --detail --scan  /dev/md0

        mdadm  --detail --scan  >/etc/mdadm.conf        

        raid5 實作:以下指令

        mdadm    -Cv             /dev/md0          -l 5    -n      3       /dev/sda         /dev/sdc     -x  1  /dev/sde

                                    ///dec/sda  /dev/sdc 是已有的磁盤,/dev/sde是備用磁盤

繼續閱讀