天天看點

軟raid之詳解

raid是一種存儲機制,将幾塊硬碟組合在一起,成為一個大硬碟,還具備資料備援的功能。在linux上,實作raid有兩種機制,一種用軟體模仿磁盤陣列的方式來實作,我們稱之為軟raid。另外一種用磁盤陣列卡的的方式來實作,稱之為硬體raid。軟raid是企業環境是不可能存在,因為軟raid是要消耗系統資源,對于一台已經很繁忙的伺服器,還要額外占用系統資源,這會使伺服器更繁忙。當然這篇文章是基于軟raid來做實作,畢竟磁盤陣列卡還是蠻貴的,但是它們操作上基本相似。

硬體raid:實作硬體raid需要在主機闆上插一塊raid卡,raid卡提供資料線,因為當我們将幾塊硬碟做成raid時,系統已經不能再識别單個硬碟,隻能檢測到目前系統存在一個raid的磁盤。

軟raid:在核心中有個md(multiple devices)子產品,模仿硬體raid卡來實作raid的功能,當我們建立軟raid時,軟raid在/dev/目錄以md0,md1r

1 raid常見等級:

(1)raid0:至少有兩顆磁盤組成,raid會将磁盤先切好成區塊,當有檔案要寫入磁盤時,先經過raid,此時raid将檔案切成符合區塊的大小;然後再依次寫入各個磁盤。

特點:讀寫性能高,無備援,至少兩塊以上,磁盤使用率100%

(2)raid 1:至少兩顆磁盤組成,跟raid0恰好相反,一份資料在磁盤上存兩次。是以raid 1也被稱作映像模式。

特點:讀性能高,寫性能低(因寫一份資料要占用兩次i/o總線),有備援,磁盤使用率1/n,支援空閑盤

(3)raid 5:至少三顆磁盤組成,寫入資料有點像raid0,依次循環寫入各個磁盤,隻不過多增加了一位校驗碼。如果有一顆磁盤壞了,資料不會丢失。因為有校驗碼的存在,使丢失的資料,可以用已經存在的資料與校驗碼做異或運算可以得到。

特點:既容錯,又高性能,允許壞一塊硬碟,支援空閑盤。磁盤使用率n-1/n

(4)raid 10:先用兩個磁盤做成raid1,再将兩個raid1做raid0。

特點:既有raid1又有raid0的特點。

2,軟raid設定,基于redhat 5.8上實作。先檢查主機有沒有安裝mdadm這個軟體,軟raid在/dev/的裝置檔案是md0,md1...。而硬碟raid在/dev/的裝置檔案是/dev/sd[a-p],因為使用scsi的子產品。

(1)raid 5實作過程:先檢查有沒有安裝mdadm這個軟體。

mdadm [mode] <raiddevice> [options] <component-devices>

mdamd  模式     裝置        選項     子元件

一,建立磁盤分區4個,并修改分區的id為fd

<a href="http://blog.51cto.com/attachment/201206/192117839.jpg" target="_blank"></a>

二,建立raid 5

<a href="http://blog.51cto.com/attachment/201206/192554837.jpg" target="_blank"></a>

三,檢視raid資訊

<a href="http://blog.51cto.com/attachment/201206/192932561.jpg" target="_blank"></a>

四,格式化   mke2fs -j /dev/md0 并挂載 mount /dev/md0 /mnt

四個步驟就完成raid 5的建立,下面開始實作開機自動挂載

将md0的uuid導入到/etc/mdadm.conf中,mdadm --examine --scan &gt;/etc/mdadm.conf

<a href="http://blog.51cto.com/attachment/201206/193523785.jpg" target="_blank"></a>

修改/etc/fstab檔案

<a href="http://blog.51cto.com/attachment/201206/193749975.jpg" target="_blank"></a>

 五,給raid添加一塊空閑盤,雖然raid 5支援一顆硬碟損壞,但當一個顆硬碟損壞了,對資料的通路速度極慢,也容易導緻另外兩顆硬碟損壞。是以有必要拿一顆磁盤做空閑盤用,意思就是當一顆損壞了,空閑盤會自動接替那顆壞了磁盤工作。

 mdadm /dev/md0 -a /dev/sda8會自動變成空閑盤

<a href="http://blog.51cto.com/attachment/201206/194135243.jpg" target="_blank"></a>

用mdadm --detail /dev/md0

<a href="http://blog.51cto.com/attachment/201206/194312420.jpg" target="_blank"></a>

六,模仿/dev/sda5損壞

mdadm /dev/md0 --fail /dev/sda5(當執行這個指令,sda8會自動接替sda5的位置)

七,移除/dev/sda5

mdadm /dev/md0 --remove /dev/sda5

raid 5到此結束。

(2)raid10:先停掉raid 5; mdadm --stop /dev/md0

mdadm --create /dev/md0 -a yes --level=1 --raid-devices=2 /dev/sda{5,6}

mdadm --create /dev/md1 -a yes --level=1 --raid-devices=2 /dev/sda{7,8}

mdadm --create /dev/md2 -a yes --level=0 --raid-devices=2 /dev/md{0,1}

之後的步驟跟建立raid的一樣,到此結束。

本文轉自 deng304749970 51CTO部落格,原文連結:http://blog.51cto.com/damondeng/901879,如需轉載請自行聯系原作者

繼續閱讀