天天看點

RAID基礎知識

RAID的介紹:

RAID叫做獨立備援磁盤陣列(Redundant Arrays of Independent Disks)

RAID的機制:就是将多個磁盤裝置組合成一個陣列,進而當做一塊邏輯裝置來使用

根據磁盤組織方式的不同RAID有所謂的RAID level之分:比較常用的如RAID 0、RAID1、RAID5、RAID01、RAID10、RAID50 其級别隻代表磁盤組合方式不同;

RAID0:是應用條帶技術組成的條帶磁盤裝置

   性能提升:讀寫性能都提升

   但是沒有備援能力(容錯能力):無

   空間使用率:nS

   至少需要兩塊盤才能建立RAID0

RAID1:是用磁盤鏡像技術所組成的磁盤裝置

   性能表現:寫性能下降,但讀性能提升

   備援能力:有

   空間使用率:1/2  

   至少需要兩塊盤才能建立RAID1

RAID5:是利用校驗碼技術組成的磁盤裝置

   性能表現:讀寫都提升了

   空使用率:(n-1)/n

   至少需要3塊盤才能建立RAID5

RAID 10:是先做鏡像技術,在做條帶技術 (這個技術更加适用于企業)

   想能表現:讀寫提升

   榮譽能力:有

   空間利用1/2

   至少需要4塊盤才能建立RAID10

RAID 01:是先做條帶技術,在做鏡像技術

   至少需要4塊盤才能建立RAID01

RAID 50:是先做校驗碼技術,在做條帶技術

   性能表現:讀,寫提升

   空間使用率:(n-2)/n

   至少6塊塊盤才能建立RAID50

jbod:是将多塊小盤組合成一塊大盤來使用

   性能表現:無提升

   備援能力:無提升

   空間使用率:100%

   至少2塊盤才能建立RAID

怎麼去實作RAID,RAID的實作形式有兩種

一種叫做硬體RAID

一種叫做軟體RAID

硬體RAID實作:

主機闆上各種硬體裝置特性的設定都是通過BIOS來設定的,通過BIOS的界面來配置啟用RAID晶片制定成相應的RAID級别

如果把不同的磁盤組合成RAID0 或者RAID1,這時系統隻會識别的是RAID0盤和RAID1盤,作業系統要想識别RAID0和RAID1就得有相應的驅動,否則是不能夠識别的

安裝完之後,系統把這些RAID都看成是串行口的裝置,是以把RAID都識别為/dev/sd格式的磁盤

很可能都寫廠商提供的RAID晶片,我們的作業系統是識别不了的,是以安裝過程中一定要而外提供驅動程式

軟體(邏輯)RAID實作:

軟體RAID的實作就是基于核心中有一個子產品叫多裝置md:multi disks

要讓核心放着幾個磁盤就需要有相應的硬體裝置檔案,這就需要在核心中模拟一個假RAID出來,是以他就是一個邏輯RAID,此後在需要存資料的時候就往這個邏輯RAID裡面存

繼而他是一個邏輯裝置,是以要有相應的邏輯裝置檔案,每一個建立好的邏輯裝置在/dev/md#開頭的裝置檔案  

md後#隻辨別不同的RAID裝置的,跟RAID的級别沒有關系,這樣就在核心中建立了一個邏輯裝置和一個以md命名的而檔案

是以完全可以在核心當中用軟體的方式來模拟硬體,這個軟體就我我們的md子產品

要注意的是這兩個模拟的磁盤裝置必須要标記為核心能夠識别的類型,這種類型成為fd類型,即Linux軟RAID

有核心子產品才能建立軟體RAID

如何用軟體的方式去建立軟RAID

首先需要核心子產品md,此外在使用者空間有個指令,能夠去配置RAID的叫做mdadm,是md管理器

md:是用來模拟硬體RAID的一個子產品

mdadm:隻是一個工具,是一個模式化的指令,将任何塊裝置做成RAID,就是可以吧分區做成磁盤,但接下來的示範都在同一磁盤上的不同分區,但在實際中沒有任何意義,沒有任何提升,這隻是用來做實驗的

mdadm模式化的指令:

    建立模式:是用來建立RAID裝置的

           -C

                專用選項:

                        -l:指定RAID裝置級别,後跟裝置級别号

                      -n #:指定裝置個數,一共幾塊盤來做成這個RAID裝置

                        -a:{yes|no}自動為其建立裝置檔案,因為任何一個RAID裝置要想被通路就需要有自己相對應的裝置檔案

                         c:指定chunk(即條帶指定的資料塊大小)大小,每一次分的機關是多大,預設是64kb

                      -x #:指定空閑盤個數

  /proc/mdstat會顯示目前系統所有啟用的RAID裝置

  建立完RAID後需要對RAID進行格式化(即建立檔案系統)

  之後是進行裝置檔案的挂載

這裡在建立鏡像磁盤時要注意的是,再用cat /proc/mdstat 檢視的時候,會顯示鏡像磁盤的同步資訊

管理模式:是用來拆散或是停止RAID

           --add,--remove,--fail  用到這些的時候,預設工作在管理模式下

              -f|--fail|--stt-faulty都可以模拟RAID損壞   

     指定模拟随壞的格式    mdadm /dev/md# --fail /dev/sda7就是把/dev/md#中的裝置/dev/sda7模拟成所懷

監控模式:是用來監控RAID裝置是否正常的

           -F

增長模式:可以讓RAID的數量增加

           -G

裝配模式:在其他作業系統上使用原有的盤,即重新将原有盤識别為RAID,并組合起來

           -A  

              mdadm -A /dev/md1 /dev/sda7 /dev/sd8

 檢視RAID陣列的詳細資訊

        -D|--detail /dev/md#是用來顯示指定RAID裝置的相關資訊

                   --detail

停止陣列:就是移除指定md中的所有陣列

     mdadm -S|--stop /dev/md#        

練習:

建立RAID0,要求其大小為5G;(我們可以選擇一個為3G,另一個為2G)

       首先建立2個磁盤分區,分别是3G和2G

,并修改為fd類型

之後為sda5,6建立md

Mdadm -C

上一篇: PHP基礎知識

繼續閱讀