Linux-raid的工作原理與管理

本章內容:

       1、RAID詳細描述

       2、mdadm 工具

       3、創建raid

       4、磁盤陣列的管理

RAID描述:

          RAID:(Redundant Array of indenpensive Disk) 獨立磁盤冗余陣列: 磁盤陣列是把多個磁盤組成一個陣列,             當作單一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁             盤一起動作,大幅減低數據的存取時間,同時有更佳的空間利用率。

      功能:

             提高IO能力:磁盤并行讀寫。
           提高耐用性:磁盤冗余來實現。

   RAID級別:多塊磁盤組織在一起的工作方式有所不同,稱為RAID level。不同的level針對不同的系統及應用,以解               決數據安全的問題。簡單來說,RAID把多個硬盤組合成為一個邏輯扇區。因此,操作系統只會把它當作               一個硬盤。

  RAID的實方式:    
            1. 硬件RAID:用RAId接口卡來實現;需要內核支持其驅動,并且該類設備設備顯示為SCSI設備,代號                   為/dev/sd*。
         2. 軟件RAID:用內核中的MD(multiple devices)模塊實現,該類設備在/etc/下表示為:md*;使用mdadm               工具管理軟RAID;

            雖然來說可以用軟件模擬實現raid,但是相對對磁盤控制的功能及性能不如硬件實現的好,生產環境中最             好使用硬件raid 。

 常見的RAID類型描述:

            RAID0:條帶卷(striping),至少需要兩塊磁盤,做RAID分區的大小最好是相同的(也可以用相同大小的                  兩塊磁盤直接做 RAID);把數據分割成若干個相同大小的chunk,依次均勻的存儲在不同的磁盤                   上,在讀寫的時候可以實現并發,所以讀、寫性能好;但是沒有容錯功能,任何一塊磁盤損壞,將導                  致全部數據的損壞。磁盤利用率100%。

                如下圖:

               Linux-raid的工作原理與管理

                      

          RAID1:鏡像卷(mirroring),至少需要兩塊硬盤,raid大小等于兩個raid分區中最小的容量(最好將分區                 大小分為一樣),磁盤利用率50%;數據有冗余,在存儲時同時寫入兩塊硬盤,實現了數據備份;但                  相對降低了寫入性能,但是讀取數據時可以并發,幾乎類似于raid0的讀取效率。

               如下圖:

                      Linux-raid的工作原理與管理         

       RAID5:最少需要三塊硬盤,可以提供熱備盤實現故障的恢復;采用異或運算,可靠性強,允許損壞一塊磁盤,只有同時                   損壞兩塊硬盤時數據才會完全損壞,只損壞一塊硬盤時,系統會根據存儲的異或校驗位重建數據,臨時提供服務;此               時如果磁盤陣列中有備用盤,系統會自動在備用盤上重建故障磁盤上的數據。

             如下圖:

         Linux-raid的工作原理與管理  

          注:RAID中的容錯表示即使磁盤故障,數據仍能保持完整,可讓系統存取到正確的數據,而SCSI的磁盤陣列更可在工作中抽換               磁盤, 并可自動重建故障磁盤的數據。 


mdadm:模式化的工具

    命令語法格式:mdadm [mode]  <raiddevice> [options] <component-devices>
    支持的RAID級別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
   [mode]:

       -C, –create:  創建一個新的陣列

      -A, –assemble: 激活RAID設備

       -F, –follow, –monitor:選擇監控(Monitor)模式

       -G, –grow:   改變激活陣列的大小或形態

   <raiddevice>: /dev/md# 
   <component-devices>: 任意塊設備
   [options]:選擇一個模式的選項

         -C: 創建模式 
           -n #: 使用#個塊設備來創建此RAID 
           -l #:指明要創建的RAID的級別 
           -a {yes|no}:自動創建目標RAID設備的設備文件 
           -c CHUNK_SIZE: 指明塊大小 
           -x #: 指明空閑盤的個數 
        -D:顯示raid的詳細信息; 
              mdadm -D /dev/md#  
           -s:–scan:掃描配置文件或 /proc/mdstat以搜尋丟失的信息。

               默認配置文件:/etc/mdadm.conf 

   理模式: -f: 標記指定磁盤為損壞 

               -a: 添加磁盤 

               -r: 移除磁盤


創建軟RAID的過程:

     以四個分區模擬創建一個raid5為操作示例

   步驟:

        1、創建RAID5 的組員

       linux中陣列組成單元是分區,分區可以是整個設備也可以是設備多個分區中的一個;組成的陣列中,每個分區          的大小必須一樣;在fdisk分區后需要將分區標志改為Linux raid auto類型;分區后如下:

 

                              Device             Boot       Start     EndBlocks    Id        System

/dev/sda6 19507 22118 20980890 fd Linux raid autodetect
/dev/sdc1 1 2612 20980858+ fd Linux raid autodetect
/dev/sdd1 1 2612 20980858+ fd Linux raid autodetect

       2、建立RAID5磁盤陣列;如下圖:

              Linux-raid的工作原理與管理

    

   3、查看陣列狀態;cat /proc/mdstat

       Linux-raid的工作原理與管理

          上圖中,通過cat /proc/mdstat信息查看所有運行的RAID陣列的狀態,在第一行中首先是MD的設備名md0,active和                 inactive選項表示陣列是否能讀/寫,接著是陣列的RAID級別raid5,后面是屬于陣列的塊設備,方括號[]里的數字表示設           備在陣列中的序號,(S)表示其是熱備盤,(F)表示這個磁盤是 faulty狀態。下一行中首先是陣列的大小,用塊數來表示;           后面有chunk-size的大小,然后是layout類型,不同RAID級別的 layout類型不同,[3/3] [UUU]表示陣列有3個磁盤并且3           個磁盤都是正常運行的,而[2/3]和[_UU] 表示陣列有3個磁盤中2個是正常運行的,下劃線對應的那個位置的磁盤是faulty           狀態。

   4、生成RAID的配置文件;

      mdadm.conf是該軟件的默認配置文件,主要作用是方便跟蹤軟RAID的配置,尤其是可以配置監視和事件上報選項。其中寫入每       一個陣列組成的詳細情況,用于在下次開啟陣列后依據此文件重新裝配開啟陣列,否則就需要在開啟時手動定義陣列中的成         員;當然是推薦創建該文件,防止出現意外情況。

       Linux-raid的工作原理與管理

       

   5、創建文件系統;

     Linux-raid的工作原理與管理

   6、掛載;

      Linux-raid的工作原理與管理

    7、查看陣列的詳細信息;

      Linux-raid的工作原理與管理


磁盤陣列管理:

    1、RAID5磁盤陣列中模擬一塊磁盤故障;下圖中模擬/dev/sdb盤損壞,發現熱備的盤/dev/sdd1/自動替換損壞的磁盤,并顯示數       據構建的進度條。

    Linux-raid的工作原理與管理

    2、移除損壞的磁盤;損壞的磁盤狀態是faulty.

       Linux-raid的工作原理與管理

    注意:對于有冗余的raid形式,在單一磁盤故障時一般能在一段時間內重建數據;但是數據量非常大時,重建會非常緩慢,且重          建系統過程壓力比較大,此時需要多關注系統負載,防止重建過程出現錯誤;在熱移除故障盤后,也需要盡快的換上新              硬盤,并且添加spare盤;在故障修復,重建重建之后,需要重新生成配置文件,防止在下次開啟時,按照最初的定義模            式開啟。

     3、RAID陣列添加新的組員;

           #mdadm -G /dev/md0 -n4 -a /dev/sdb

     4、停止RAID設備;如下圖:

        Linux-raid的工作原理與管理

     5、激活RAID設備;如下圖:

        Linux-raid的工作原理與管理

     6、刪除RAID設備,如下圖:

  •         先取消掛載:#umount /mnt/raid
  •         停止RAID設備:mdadm -S /dev/md0
  •         刪除配置文件:rf -f /etc/mdadm.conf
  •         刪除/etc/fsatb 文件下的對應掛載信息
  •         分別清除RAID成員上的raid元數據:

            # mdadm –zero-superblock /dev/sda6

 RAID-10的創建方法: 

      1、先創建兩個底層的RAID-1:

          #mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sd{a6,b}

          #mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sd{c1,d1}

      2、用兩個RAID-1,創建上層RAID-0

          #mdadm -C /dev/md2 -a yes -l 0 -n 2 /dev/md{0,1}

      3、查看狀態;如下圖:

        Linux-raid的工作原理與管理

      4、創建配置文件

        Linux-raid的工作原理與管理    

      5、停止與開啟陣列;

        Linux-raid的工作原理與管理

       上圖中:關閉與開啟過程,系統只能識別層級,關閉先關閉上層的RAID-0,再關閉底層的兩個RAID-1;

           開啟也是與關閉過程一樣;防止了沖突。







   

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

(3)
shenjialongshenjialong
上一篇 2017-06-24 17:15
下一篇 2017-06-24 20:55

相關推薦

  • 進程管理

    進程概念 內核的功用:進程管理、文件系統、網絡功能、內存管理、驅動程序、安全功能等 Process(進程):運行中的程序的一個副本,是被載入內存的一個指令集合 進程ID (Process ID ,PID )號碼被用來標記各個進程 UID、GID、和SELinux語境決定對文件系統的存取和訪問權限 通常從執行進程的用戶來繼承 存在生命周期 task struc…

    2017-05-09
  • 推薦-使用iptables作為網絡防火墻構建安全的網絡環境

    使用iptables作為網絡防火墻構建安全的網絡環境 使用iptables作為網絡防火墻構建安全的網絡環境 前言 網絡防火墻的優勢 實驗拓撲圖 實驗環境 實驗步驟 防火墻未設置前對所有服務器的測試 針對不同服務器進行”非法”訪問 定義網絡防火墻規則 再次針對不同服務器進行”非法”訪問 測試服務器是否可訪問 總結 前言 一般情況下iptables只作為主機防火…

    Linux干貨 2016-03-31
  • 2017全球互聯網架構大會上海站火熱來襲,等您赴約!

    GIAC 全球互聯網架構大會,是長期關注互聯網技術與架構的高可用架構技術社區推出的,面向架構師、技術負責人及高端技術從業人員的年度技術架構大會。

    2017-11-30
  • 內核編譯

    下載內核并解壓:tar -xvf linux-4.14.9.tar.xz -C ./linux/     接下來是 ? ?make ? config ?。 (具體參照 ? ?《make ? config ?的幾種類型》) 一般采用??# ?make ? menuconfig?? 的方式 是這個樣子的: 此處有可能需要幾個包,選擇最簡單的y…

    2018-01-01
  • MySQL-MMM實現MySQL高可用讀寫分離

    實驗環境 實驗拓撲 主機配置環境說明 主機名 IP地址 角色/用途 MySQL Server_ID master1 192.168.80.101 MySQL主節點,可讀寫操作 11 master2 192.168.80.102 MySQL備節點,可讀寫操作 12 slave1 192.168.80.103 MySQL從節點,僅能讀 13 slave2 192…

    Linux干貨 2016-06-01
  • 0805linux基礎小記(正則匹配)

    cat -ns file   //-s,壓縮重復的空行 cat -T f1  //看到tab鍵 cat f1|tr '\t' '\r' > f2 cat -v f2 //看到^M   tac file //倒的顯示 rev file //反向顯示每一行 echo {1..10} &g…

    Linux干貨 2016-08-07
欧美性久久久久