前言

   隨着網絡的快速普及和應用的日益深入,各種增值業務在網絡上得到了廣泛部署,網絡帶寬也以指數級增長,網絡短時間的中斷就可能影響大量業務,造成重大損失。作爲業務承載主體的基礎網絡,其高可用性(High Availablity,HA)也因此日益成爲關注的焦點。在這種背景下,從運營商到大中型企業客戶,在構建生產網絡(production network)時,5個9的網絡可用性(一年中不能提供服務的時間在5分鐘左右),已經成爲建網的追求。對於設備提供商或解決方案提供商來說,能否提供端到端的高可用性網絡解決方案,不但是廠商技術實力的反映,也是關乎能否在未來激烈的競爭中生存的關鍵。

如何定義高可用性網絡

   那麼,如何衡量一個網絡的可用性呢?首先,一個高可用性網絡不能頻頻出現故障,只要發生故障,即使是很短時間的中斷,都會影響業務運營,特別在當前適時性強、對丟包和時延敏感的業務,如語音和視頻等業務在網絡上廣泛部署的情況下更是如此。其次,高可用性的網絡,即使出現故障,也應該能很快恢復。如果一個網絡一年不出一次故障,但一次故障需要幾個小時,甚至幾天才能恢復,那麼這個網絡也算不上一個高可用的網絡。事實上,故障少、故障恢復時間短基本就概括了高可用性網絡的特點。在實際網絡中,軟、硬件的版本質量是有極限的,並且也避免不了各種人爲和非技術因素造成的網絡故障和服務中斷。基於這個原因,開發能讓網絡迅速從故障中恢復的技術非常重要。事實上,如果網絡總是能在不中斷(絕大部分)業務的情況下恢復,對多數用戶,就其業務體驗來說,甚至可以認爲是無故障的。

總體方案(5個方面)

1.服務器 羣集 (windows  linux  防火牆)

2.路由節點  (HSRP  VRRP)

3.線路  (lan:stp  wan:【備份技術】)

4.磁盤  (raid    raid1 raid5  raid6  raid10)

5.網卡 (bond)

具體方案實施步驟及過程:

方案2.vrrp

VRRP即虛擬路由器冗餘協議。虛擬路由器冗餘協議(VRRP)是一種選擇協議,它可以把一個虛擬路由器的責任動態分配到局域網上的 VRRP 路由器中的一臺。控制虛擬路由器 IP 地址的 VRRP 路由器稱爲主路由器,它負責轉發數據包到這些虛擬 IP 地址。一旦主路由器不可用,這種選擇過程就提供了動態的故障轉移機制,這就允許虛擬路由器的 IP 地址可以作爲終端主機的默認第一跳路由器。使用 VRRP 的好處是有更高的默認路徑的可用性而無需在每個終端主機上配置動態路由或路由發現協議。 VRRP 包封裝在 IP 包中發送。

VRRP拓撲圖


wKioL1LRAI2yzX0BAAEzuM3eevY100.jpg

所需設備:

quidway R2621       3臺

quidway S2403H-EI   2臺

主機   4臺

具體步驟:

SW1配置

<Quidway>system-view

System View: return to User View with Ctrl+Z.

[Quidway]sys

[Quidway]sysname 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

Please wait........................................... Done.

[SW1-Ethernet1/0/1]dis vlan

The following VLANs exist:

 1(default), 10, 20

[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

Please wait........................................... Done.


SW2配置

<Quidway>system-view

System View: return to User View with Ctrl+Z.

[Quidway]sysname 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

Please wait........................................... Done.

[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

Please wait........................................... Done.


R3配置

[Router]sysname R3

[R3]int e0

[R3-Ethernet0]ip add 3.3.3.3 24

[R3-Ethernet0]loopback

[R3-Ethernet0]int s0

[R3-Serial0]ip add 1.1.1.2 24

[R3-Serial0]shut

[R3-Serial0]undo shut

[R3-Serial0]int s1

[R3-Serial1]ip add 1.1.2.2 24

[R3-Serial1]shut

[R3-Serial1]undo shut


R1配置

[Router]sysname R1

[R1]int s0

[R1-Serial0]ip add 1.1.1.1 24

[R1-Serial0]shut

[R1-Serial0]undo shut

[R1-Serial0]int e0.1

[R1-Ethernet0.1]vlan-type dot1q vid 10

[R1-Ethernet0.1]ip add 192.168.10.1 24

[R1-Ethernet0.1]int e0.2              

[R1-Ethernet0.2]vlan-type dot1q vid 20

[R1-Ethernet0.2]ip add 192.168.20.1 24

[R1-Ethernet0.2]quit

[R1]ip route-static 0.0.0.0 0.0.0.0 1.1.1.2

[R1]ping 3.3.3.3

 PING 3.3.3.3: 56  data bytes, press CTRL_C to break

   Reply from 3.3.3.3: bytes=56 Sequence=0 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=255 time = 26 ms

   Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=255 time = 25 ms


 --- 3.3.3.3 ping statistics ---

   5 packets transmitted

   5 packets received

   0.00% packet loss

   round-trip min/avg/max = 25/25/26 ms

[R1]acl 2000 match-order auto

[R1-acl-2000]rule permit source any

 Rule has been added to normal packet-filtering rules

[R1-acl-2000]quit

[R1]nat address-group 1.1.1.4 1.1.1.6 add

[R1]int s0

[R1-Serial0]nat outbound 2000 address-group add

[R1-Serial0]quit

[R1]vrrp ping-enable

 ping vrrp  enable

[R1]int e0.1

[R1-Ethernet0.1]vrrp vrid 10 virtual-ip 192.168.10.254

[R1-Ethernet0.1]vrrp vrid 10 priority 120

[R1-Ethernet0.1]vrrp vrid 10 track s0 reduced 30

[R1-Ethernet0.1]int e0.2                              

[R1-Ethernet0.2]vrrp vrid 20 virtual-ip 192.168.20.254

[R1-Ethernet0.2]quit


R2配置

[Router]sysname R2

[R2]int s1

[R2-Serial1]ip add 1.1.2.1 24

[R2-Serial1]shut

[R2-Serial1]undo shut

[R2-Serial1]int e0.1

[R2-Ethernet0.1]vlan-type dot1q vid 10

[R2-Ethernet0.1]ip add 192.168.10.2 24

[R2-Ethernet0.1]int e0.2              

[R2-Ethernet0.2]vlan-type dot1q vid 20

[R2-Ethernet0.2]ip add 192.168.20.2 24

[R2-Ethernet0.2]quit

[R2]ip route-static 0.0.0.0 0.0.0.0 1.1.2.2

[R2]acl 2000 m a

[R2-acl-2000]rule permit source any

 Rule has been added to normal packet-filtering rules

[R2-acl-2000]quit

[R2]nat address-group 1.1.2.4 1.1.2.6 add

[R2]int s1

[R2-Serial1]nat outbound 2000 address-group add

[R2-Serial1]quit

[R2]vrrp ping-enable

 ping vrrp  enable

[R2]int e0.1

[R2-Ethernet0.1]vrrp vrid 10 virtual-ip 192.168.10.254

[R2-Ethernet0.1]int e0.2

[R2-Ethernet0.2]vrrp vrid 20 virtual-ip 192.168.20.254

[R2-Ethernet0.2]vrrp vrid 20 priority 120            

[R2-Ethernet0.2]vrrp vrid 20 track s1 reduced 30

[R2-Ethernet0.2]quit

[R2]ping 3.3.3.3

 PING 3.3.3.3: 56  data bytes, press CTRL_C to break

   Reply from 3.3.3.3: bytes=56 Sequence=0 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=1 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=2 ttl=255 time = 25 ms

   Reply from 3.3.3.3: bytes=56 Sequence=3 ttl=255 time = 26 ms

   Reply from 3.3.3.3: bytes=56 Sequence=4 ttl=255 time = 25 ms


 --- 3.3.3.3 ping statistics ---

   5 packets transmitted

   5 packets received

   0.00% packet loss

   round-trip min/avg/max = 25/25/26 ms


[R2]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Master

 Virtual IP : 192.168.20.254

   Priority : 120

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial1   Priority reduced : 30


  Ethernet0.1 | Virtual Router 10

      state : Backup

 Virtual IP : 192.168.10.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO




故障模擬1,電信網絡出現故障。

[R2]int s1

[R2-Serial1]shut     //模擬電信網絡故障

% Interface Serial1 is down

[R2-Serial1]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Backup

 Virtual IP : 192.168.20.254

   Priority : 90

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial1   Priority reduced : 30


  Ethernet0.1 | Virtual Router 10

      state : Backup

 Virtual IP : 192.168.10.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO


[R1]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Master

 Virtual IP : 192.168.20.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO


  Ethernet0.1 | Virtual Router 10

      state : Master

 Virtual IP : 192.168.10.254

   Priority : 120

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial0   Priority reduced : 30

 4個主機正常工作。


故障模擬2,網通網絡出現故障。

[R1]int s0

[R1-Serial0]shut    //模擬網絡網絡故障

% Interface Serial0 is shut down

[R2]int s1

[R2-Serial1]undo shut    //恢復電信網絡

% Interface Serial1 is reset

[R2-Serial1]

%01:41:31: Interface Serial1 is UP

[R2-Serial1]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Master

 Virtual IP : 192.168.20.254

   Priority : 120

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial1   Priority reduced : 30


  Ethernet0.1 | Virtual Router 10

      state : Master

 Virtual IP : 192.168.10.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO


[R1]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Backup

 Virtual IP : 192.168.20.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO


  Ethernet0.1 | Virtual Router 10

      state : Backup

 Virtual IP : 192.168.10.254

   Priority : 90

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial0   Priority reduced : 30

 4個主機正常工作。


故障模擬3,子端口出現故障。

[R1]int s0

[R1-Serial0]undo shut   //恢復網通網絡

% Interface Serial0 is reset

[R1-Serial0]

%01:43:07: Interface Serial0 is UP

[R1-Serial0]quit

[R1]int e0.1

[R1-Ethernet0.1]shut    //模擬子端口故障

% Interface Ethernet0.1 is shut down

[R1-Ethernet0.1]

%01:43:30: Line protocol ip on the interface Ethernet0.1 is DOWN

[R1-Ethernet0.1]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Backup

 Virtual IP : 192.168.20.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO


  Ethernet0.1 | Virtual Router 10

      state : Initialize

 Virtual IP : 192.168.10.254

   Priority : 120

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial0   Priority reduced : 30


[R2]dis vrrp

  Ethernet0.2 | Virtual Router 20

      state : Master

 Virtual IP : 192.168.20.254

   Priority : 120

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

   Track IF : Serial1   Priority reduced : 30


  Ethernet0.1 | Virtual Router 10

      state : Master

 Virtual IP : 192.168.10.254

   Priority : 100

    Preempt : YES   Delay Time : 0

      Timer : 1

  Auth Type : NO

4個主機依然正常工作。


方案3-1:stp和鏈路聚合

STP(Spanning Tree Protocol)是生成樹協議的英文縮寫。該協議可應用於在網絡中建立樹形拓撲,消除網絡中的環路,並且可以通過一定的方法實現路徑冗餘,但不是一定可以實現路徑冗餘。生成樹協議最主要的應用是爲了避免局域網中的單點故障、網絡迴環,解決成環以太網網絡的「廣播風暴」問題,從某種意義上說是一種網絡保護技術,可以消除由於失誤或者意外帶來的循環連接。但是,由於協議機制本身的侷限,STP拓撲收斂慢,當網絡拓撲發生改變的時候,生成樹協議需要50-52秒的時間才能完成拓撲收斂;而且不能提供負載均衡的功能,當網絡中出現環路的時候,生成樹協議簡單的將環路進行Block,這樣該鏈路就不能進行數據包的轉發,浪費網絡資源。而鏈路聚合正好解決這兩個不足,鏈路聚合是將兩個或更多數據信道結合成一個單個的信道,該信道以一個單個的更高帶寬的邏輯鏈路出現。

拓撲圖

wKioL1LP86OSMOsrAAA95zHwg4w143.jpg

所需設備:

quidway S2403H-EI   2臺

具體步驟:

SW1配置

<Quidway>system-view

System View: return to User View with Ctrl+Z.

[Quidway]sysname SW1

[SW1]stp enable

[SW1]dis stp

-------[CIST Global Info][Mode MSTP]-------

CIST Bridge         :32768.000f-e274-4920

Bridge Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

CIST Root/ERPC      :32768.000f-e274-4920 / 0

CIST RegRoot/IRPC   :32768.000f-e274-4920 / 0

CIST RootPortId     :0.0

BPDU-Protection     :disabled

TC-Protection       :enabled / Threshold=6

Bridge Config

Digest Snooping     :disabled

TC or TCN received  :0

Time since last TC  :0 days 0h:1m:20s


[SW1]dis stp brief

MSTID        Port                  Role  STP State     Protection

  0        Ethernet1/0/22          DESI  FORWARDING      NONE

  0        Ethernet1/0/24          BACK  DISCARDING      NONE

[SW1]link-aggregation group 1 mode manual

[SW1]int e1/0/22

[SW1-Ethernet1/0/22]port link-aggregation group 1

[SW1-Ethernet1/0/22]dis link-aggregation summary

[SW1-Ethernet1/0/22]int e1/0/24                  

[SW1-Ethernet1/0/24]port link-aggregation group 1

Aggregation Group Type:D -- Dynamic, S -- Static , M -- Manual

Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing

Actor ID: 0x8000, 000f-e274-4920

 AL  AL   Partner ID            Select Unselect Share Master

 ID  Type                       Ports  Ports    Type  Port

--------------------------------------------------------------------------------

 1   M    none                  1      0        NonS  Ethernet1/0/22        


SW2配置

<Quidway>system-view

System View: return to User View with Ctrl+Z.

[Quidway]sysname SW2

[SW2]stp enable

[SW2]dis stp

-------[CIST Global Info][Mode MSTP]-------

CIST Bridge         :32768.000f-e242-8a41

Bridge Times        :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

CIST Root/ERPC      :32768.000f-e242-8a41 / 0

CIST RegRoot/IRPC   :32768.000f-e242-8a41 / 0

CIST RootPortId     :0.0

BPDU-Protection     :disabled

TC-Protection       :enabled / Threshold=6

Bridge Config

Digest Snooping     :disabled

TC or TCN received  :0

Time since last TC  :0 days 0h:4m:5s


[SW2]link-aggregation group 1 mode  manual

[SW2]int e1/0/22

[SW2-Ethernet1/0/22]port link-aggregation group 1

[SW2-Ethernet1/0/22]int e1/0/24                          

[SW2-Ethernet1/0/24]port link-aggregation group 1

[SW2-Ethernet1/0/24]dis link-aggregation summary

Aggregation Group Type:D -- Dynamic, S -- Static , M -- Manual

Loadsharing Type: Shar -- Loadsharing, NonS -- Non-Loadsharing

Actor ID: 0x8000, 000f-e242-8a41

 AL  AL   Partner ID            Select Unselect Share Master

 ID  Type                       Ports  Ports    Type  Port

--------------------------------------------------------------------------------

 1   M    none                  2      0        Shar  Ethernet1/0/22      



方案4.raid (CentOS6.4下測試)

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有「價格便宜具有冗餘能力的磁盤陣列」之意。原理是利用數組方式來作磁盤組,配合數據分散排列的設計,提升數據的安全性。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁盤系統效能。利用這項技術,將數據切割成許多區段,分別存放在各個硬盤上。磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數組中任一顆硬盤故障時,仍可讀出數據,在數據重構時,將數據經計算後重新置入新硬盤中。

mdadm命令使用

--create(或其縮寫-C)參數來創建新的陳列並且將一些重要陣列的標識信息作爲元數據可以寫在每一個底層設備的指定區間

--level(或者其縮寫-l)表示陣列的RAID級別

--chunk(或者其縮寫-c)表示每個條帶單元的大小,以KB爲單位,默認爲64KB,條帶單元的大小配置對不同負載下的陣列讀寫性能有很大影響

--raid-devices(或者其縮寫-n)表示陣列中活躍的設備個數

--spare-devices(或者其縮寫-x)表示陣列中熱備盤的個數,一旦陣列中的某個磁盤失效,MD內核驅動程序自動用將熱備磁盤加入到陣列,然後重構丟失磁盤上的數據到熱備磁盤上。

--verbose(或者其縮寫-v):顯示細節過程

--fail(或者其縮寫-f): 模擬故障


raid1

RAID1通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID1可以提高讀取性能。RAID1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。

wKiom1LRKFzCdS_FAABDls7Mnvw183.jpg


[[email protected] ~]# mdadm -Cv /dev/md0 -l 1 -n 2 /dev/sdb /dev/sdc -x 1 /dev/sdd

Continue creating array? y

[[email protected] ~]# mkfs -t ext3 /dev/md0

[[email protected] ~]# mkdir /mnt/raid1

[[email protected] ~]# mount /dev/md0 /mnt/raid1/

[[email protected] ~]# df -h

/dev/md0              5.0G  139M  4.6G   3% /mnt/raid1

[[email protected] ~]# cd /mnt/raid1/

[[email protected] raid1]# cp -r /usr/share/* ./

^C

[[email protected] mnt]# du -sh raid1/

97Mraid1/

[[email protected] mnt]# vi /etc/fstab

/dev/md0                /mnt/raid1              auto    defaults        0 0

[[email protected] mnt]# mount -a

[[email protected] mnt]# cd raid1/

[[email protected] raid1]# cat /proc/mdstat

Personalities : [raid1]

md0 : active raid1 sdd[2](S) sdc[1] sdb[0]

     5238720 blocks super 1.2 [2/2] [UU]    

unused devices: <none>

[[email protected] ~]# mdadm --detail --scan /dev/md0

wKiom1LRKF2TdIqYAAB_5_RSoPc123.jpg

[[email protected] ~]# mdadm /dev/md0 -f /dev/sdb

mdadm: set /dev/sdb faulty in /dev/md0

[[email protected] ~]# cat /proc/mdstat

Personalities : [raid1]

md0 : active raid1 sdd[2] sdc[1] sdb[0](F)

     5238720 blocks super 1.2 [2/2] [UU]  

unused devices: <none>

[[email protected] ~]# mdadm --detail --scan /dev/md0

wKioL1LRKFCjeq4NAACJ_feTpjQ217.jpg

[[email protected] ~]# mdadm --detail --scan >/etc/mdadm.conf


raid5

   RAID 5 是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。 RAID 5可以理解爲是RAID 0和RAID 1的折中方案。RAID 5可以爲系統提供數據安全保障,但保障程度要比Mirror低而磁盤空間利用率要比Mirror高。RAID 5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信息,RAID 5的磁盤空間利用率要比RAID 1高,存儲成本相對較低。

wKiom1LRKF2iYDiaAABSeRvWR1E973.jpg

[[email protected] ~]# fdisk -l

[[email protected] ~]# mdadm -Cv /dev/md0 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd -x 1 /dev/sde

Continue creating array? y

[[email protected] ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]

     10476544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]  

unused devices: <none>

[[email protected] ~]# mdadm --detail --scan

   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

      3       8       64        -      spare         /dev/sde

[[email protected] ~]# mkfs -t ext3 /dev/md0

[[email protected] ~]# mkdir /mnt/raid5

[[email protected] ~]# mount /dev/md0 /mnt/raid5

[[email protected] ~]# vi /etc/fstab

/dev/md0                /mnt/raid5             auto    defaults        0 0

[[email protected] ~]# mdadm --detail --scan >/etc/mdadm.conf

[[email protected] ~]# cat /etc/mdadm.conf

ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=52a024d4:76260d6f:9eeac1e5:f4a7d0d9

[[email protected] ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd[4] sde[3](S) sdc[1] sdb[0]

     10476544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]      

unused devices: <none>

[[email protected] ~]# mdadm --detail --scan /dev/md0

   Number   Major   Minor   RaidDevice State

      0       8       16        0      active sync   /dev/sdb

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

      3       8       64        -      spare         /dev/sde

[[email protected] ~]# mdadm /dev/md0 -f /dev/sdb

mdadm: set /dev/sdb faulty in /dev/md0

[[email protected] ~]# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]

md0 : active raid5 sdd[4] sde[3] sdc[1] sdb[0](F)

     10476544 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]      

unused devices: <none>

[[email protected] ~]# mdadm --detail --scan /dev/md0

   Number   Major   Minor   RaidDevice State

      3       8       64        0      active sync   /dev/sde

      1       8       32        1      active sync   /dev/sdc

      4       8       48        2      active sync   /dev/sdd

      0       8       16        -      faulty spare  /dev/sdb