RAID
RAID提供幾個功能,提高效率、容錯,整核磁碟空間等等。



RAID模式
RAID-0
  Striping Mode,等量模式。由至少兩個以上磁碟組成,總容量為組成的硬碟相加,假設我有兩顆80G硬碟,做RAID-0的話容量就變成160G了。當有資料要寫入時,會依其資料大小平均分給各個磁碟存入,藉以提升磁碟效能,所以組成的磁碟越多,效能就越好。而它的缺點就是缺乏容錯的功能,只要有一個磁碟壞了,整個RAID就掛了。

RAID-1
  Mirroring Mode,鏡射模式。由兩個以上磁碟組成,此模式較浪費空間,總容量為 1/n(n為磁碟數量),假設我有兩顆80G硬碟,做RAID-1的話,容量還是80G。RAID-1做好的功能就是容錯,當有一顆硬碟故障,還有一顆硬碟可以繼續運作,只要不是兩顆硬碟一起故障的話。

RAID-5
  結合0與1的優點,由至少三個磁碟組成。簡單說它與RAID-0相似,但它在寫入磁碟時會先算出每份資料的同位元檢查碼,當磁碟故障時就會藉由這個同位元檢查碼計算出故障的資料。由於它需要計算同位元檢查碼,這需要使用到CPU的效能因而會降低系統效能。


先介紹簡單的軟體RAID,這功能一樣是需要核心支援才能動作,


Linux的RAID
一般RAID分為兩種,Linux也是一樣,分別是:
Hardward RAID,硬體磁碟陣列。這種RAID會有專用的RAID控制卡來控制RAID,Linux只要能抓到控制卡就可以管理RAID。一般來說硬體磁碟陣列效能較好,相對也比較貴。

Software RAID,軟體磁碟陣列。這種RAID需要Linux的kernel支援,只要核心支援就可以直接使用。軟體的效能沒有硬體式的好,但相對就便宜,因為它是Linux本身就提供的功能。


RAID建立的三步驟(軟體)
產生單元
配置磁碟裝置
設定/etc/mdadm.conf

產生單元
Linux的磁碟陣列式由多個分割區組成,在分割磁碟時,須注意將System Id設為 "fd - Linux raid autodetect"


建立多重磁碟
做完磁碟分割後,在來就要建立多重磁碟,這個動作會用到mdadm這個指令:

mdadm  RAID名稱  RAID等級  要用來建制RAID的裝置名稱
option
-a:yes 如果沒有在執行
-C:create
-l:level
-n:設備數量

mdadm -C /dev/rd1 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdb2
以這個例子來看,使用-C 來建立一個RAID位置為 /dev/rd1,-a yes意思為如果沒有這個RAID的話在建立,-l 5 就是建立RAID-5,-n 2 由兩個分割區組成分別為 /dev/sdb1 /dev/sdb2


設定/etc/mdadm.conf
這是mdadm預設的設定檔,當系統啟動時,會根據這個設定檔來啟用多重磁碟,也會根據這個多重磁碟來啟動軟體磁碟陣列監控伺服器。這個設定檔其實可以省略,不過如果你想要開機時就啟動磁碟軟體,那就要設定這個檔案。
預設這個檔案也不存在,必須要自己新增,這個檔案的語法如下:
DEVICE  devicename
ARRAY   raiddevice  devices
例如:
DEVICE  /dev/sdb1 /dev/sdb2
ARRAY    /dev/md0  devices=dev/sdb1,/dev/sdb2


檢視多重磁碟狀況
主要有兩個方法可以檢視目前多重磁碟的狀況:
/proc/mdstat 直接讀取這個檔案
[root@fedora8VM ~]# cat /proc/mdstat
Personalities : [raid0] [raid1]
md2 : active raid1 sdb3[0] sdb2[1]
      497856 blocks [2/2] [UU]

unused devices: <none>


mdadm  --detail device  使用mdadm的--detail參數來達成:
[root@fedora8VM ~]# mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Sat Mar 14 09:03:05 2009
     Raid Level : raid0
     Array Size : 995776 (972.60 MiB 1019.67 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Sat Mar 14 09:03:05 2009
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 64K

           UUID : cb07d9a0:2d487fb0:dca26a00:0e7dddb5
         Events : 0.1

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2


線上新增/移除磁碟

這個功能只適用在有容錯的RAID上(RAID 1、5),在沒有在容錯的RAID上就沒辦法使用了。其實這個也可以看做是磁碟的故障處理,因為方法差不多。步驟如下:
1. 移除故障的磁碟
2. 安裝新的磁碟
其實非常的簡單,主要也是使用mdadm這個指令。

你可以先使用  mdadm --detail /dev/md2 最下面的狀態來看看是哪顆磁碟壞了,故障的磁碟會標示為 faulty
    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      faulty   /dev/sdb2

接著使用 mdadm /dev/md2 --remove /dev/sdb2 來移除壞掉的磁碟

在使用  mdadm /dev/md2  --add /dev/sdb3 來加入新的磁碟,這樣就完成了


啟用與停用多重磁碟
啟用
mdadm  --assemble  MD_DEVICE

停用
mdadm  --stop  MD_DEVICE



刪除多重磁碟
萬一不要RAID,或是建立裝置時有錯誤,可能需要刪除多重磁碟,步驟如下:
1. 停用多重磁碟,也就是 mdadm  --stop MD_DEVICE
2. 使用 mdadm --zero-superblock DEVICE ,這個指令會將磁碟的superblock


f
創作者介紹
創作者 xiangyang17 的頭像
xiangyang17

xiangyang17

xiangyang17 發表在 痞客邦 留言(0) 人氣()