Linux軟RAID的技術概要及實現

 

1 什麼是 RAID RAID 的級別和特色
什麼是RAID呢?全稱是 「A Case for Redundant Arrays of Inexpensive Disks (RAID)」,在1987年,由加州大學伯克利大學發表的論文而來,其實就是這個標題的縮寫就是RAID;中譯爲「磁盤陣列」;
RAID就是把幾個物理磁盤組合在一塊兒成爲一個大的虛擬物理磁盤,主要目的和用途主要有:把若干小容量物理磁盤組成一個大容量虛擬存儲設備(之前的物理磁盤的容量都比較小);提升物理存儲效率(讀、寫),或提供冗餘以提升數據存儲的安全性。
根據應用方向的不一樣,RAID也分不不一樣級別 ,有LINEAR、RAID0、RAID一、RAID五、RAID十、RAID四、RAID六、MULTIPATH。經常使用的有RAID0、RAID一、RAID五、RAID10(其實就是0+1)、LINEAR

1.1
什麼是硬件 RAID 和軟 RAID
RAID 還分爲硬件RAID 和軟件RAID,硬件RAID是經過RAID 卡來實現的,而軟件RAID是經過軟件來實現的;在企業級應用領域,大部份都是硬件RAID。而軟件RAID因爲性價比高,大多被中小型企業所採用;
硬件RAID是經過RAID卡把若干同等容量大小的硬盤,根據使用方向的不一樣,聚合起來成爲一個大的虛擬RAID設備(或RAID0,或RAID1,或者RAID5,或RAID10……),若是每一個硬盤容量不一致,以最小容量的硬盤爲基礎;它的成員是整個硬盤;
軟RAID是軟把若干同等容量大小的硬盤或分區,根據使用方向的不一樣,聚合起來成爲一個大的虛擬RAID設備(或RAID0,或RAID1,或者RAID5,或RAID10……),若是每一個硬盤或分區容量不一致,以最小容量的硬盤或分區爲基礎。軟RAID的成員是整個硬盤或分區;
RAID 總的來講仍是應用在生產型項目領域中,通常在商用辦公或我的娛樂應用並未被大規模採用。應有領域大多要求性價比級的低端服務器或PC-SERVER;

1.2 RAID
的級別及特色;
RAID 有幾種級別,LINEAR,RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH, and FAULTY.其中咱們經常使用有RAID0、RAID一、RAID五、RAID10。
下面咱們說說經常使用的RAID0、RAID一、RAID5以及RAID10;

1.21
什麼是軟 RAID0 及特色;
RAID0 是把兩個或兩個以上的容量相同的硬盤或分區,經過RAID控制器(硬RAID是經過RAID卡來實現的,軟RAID 是經過軟件來實現的),結合爲一個在容量上是RAID0下成員的容量的總和,在寫入時,要向每一個硬盤或分區同時寫入數據。
在硬RAID中,RAID0的成員是以整個硬盤爲單位的,把兩個硬盤或兩個以上的硬盤經過RAID卡綁定成爲一個虛擬的磁盤設備,而每一個硬盤就是RAID0的成員;
在軟RAID0中,RAID0的成員是整個硬盤或分區,容量是加入RAID0的全部成員容量的總和。在RAID0中每一個成員的容量都是相同一致的。好比咱們把 /dev/sdb 、/dev/sdc、/dev/sdd 三個容量大小爲80G的硬盤作成RAID0,這時RAID0設備的容量就是三個硬盤的總和 80x3=240G。固然咱們也能夠,在寫入數據時,系統要向每一個硬盤同時寫入數據,是以條塊的形式寫入。好比咱們存一份數據linuxsir.tar.gz 到RAID0的設備中,這份數據是分拆成若干份被分散的寫入到RAID0中的每一個成員中。只有RAID0中的每一個成員正常運行,而且RAID0也正常運行的狀況下,這份數據纔是完整的。RAID0中任何一個成員(硬盤分區)有有問題時,RAID0便不能運行,同時數據也不是完整的;
RAID0 在讀寫速度上是比較快的,是普通不作RAID的兩倍左右(注:實際速度和機器的硬件配置有關),因此RAID0常被用於對存儲效率要求較高,但對數據安全性要求不高的應用解決方案中;
安全性:RAID0中有任何一個成員出現故障,整個RAID0就不能被激活。數據不能保障;

1.22
什麼是軟 RAID1 及特色;
RAID1就是把若干相同容量的硬盤或分區,成員與成員之間是鏡像關係。在容量上,RAID1設備是單個成員的容量。好比兩個80G的硬盤作成RAID1,這個RAID1的設備容量還是80G。好比咱們寫入一個份數據linuxsir.tar.bz2 到RAID1設備時,實際上是向RAID的每一個成員都寫了一份。好比RAID1設備下有兩個成員/dev/sdb和/dev/sdc ,咱們寫入linuxsir.tar.bz2 到RAID1時,/dev/sdb和/dev/sdc都有一份完整的linuxsir.tar.bz2。 因此RAID1是冗餘的陣列,通常被用於安全性要求比較高的應用中。
由於RAID1在因爲鏡像冗餘,因此磁盤利用效率並不高,或者說是「浪費」。這種方案相對來講性價比並不高,通常不多應用。數據讀寫效率要比RAID0慢。
安全性:RAID1 中只要有一個成員是健康的,RAID1徹底能夠激活,並且數據絕對是完整安全的。若是全部的成員有故障,RAID1也就報廢了。哈哈,這不是廢話嗎?

1.23
什麼是軟 RAID5 及特色;
軟RAID5也是冗餘安全的,RAID5是把至少三個硬盤或分區經過軟件虛擬成爲一個大的存儲設備。在容量上是(n-1)x單個硬盤(分區)容量 ,好比咱們用三塊80G硬盤作成RAID5,容量就是兩塊容量的和160G。在寫入上,數據被分拆成若干份,分別向RAID5的每一個成員下寫入。好比把linuxsir.tar.bz2寫入RAID5時, 要先把linuxsir.tar.bz2分拆成若干份,分別寫入RAID5成員中。由於涉及到冗餘,因此數據在讀入速度上並非很快,沒辦法和RAID0相比,但RAID5的寫入數據速度沒有RAID1和RAID0快,也沒有不作RAID的磁盤寫入速度要快;
由於RAID5在容量損失比較小,有冗餘安全保障,另外寫入速度比較快,從總體上來看,性價比比較高,因此被大範圍內採用;
安全性:當RAID5中的成員中有一個發生故障時,RAID5同樣能啓動和正常運行,只要n-1(注n>3)塊硬盤或分區的不出故障,RAID5上的數據就是安全,對於一個文件存到RAID5設備中,只有成員是n-1(注n>3)無端障時,這份文件纔是完整的。 好比RAID5有四個硬盤(或分區)作的,當一個硬盤或分區掛掉了,並不影響整個RAID5上數據的完整性和安全性。

1.24
什麼是軟 RAID10 及特色;
軟RAID10也是冗餘安全陣列,是RAID0+1的集成,RAID10是把至少四個硬盤或分區經過軟件虛擬成爲一個大的存儲設備。在容量是:n/2x單個硬盤(分區)容量 ,好比咱們用四塊80G硬盤作成RAID5,容量就是兩塊容量的和4/2x80=160G。作RAID10所須要的硬盤或分區個數是偶數的。
RAID10,有RAID1的鏡像特色,還有RAID0的速度。能夠這麼理解RAID10,好比有四個硬盤作成的RAID10,過程是先把每兩個硬盤作成RAID1,而後再兩個RAID1的基礎上再作成RAID0。從理論上來講,RAID10應該繼承RAID0的速度和RAID1的冗餘安全。但通過我在軟RAID0、RAID一、RAID五、RAID10的測試過程當中發現RAID10的寫入速度是最慢的,測試方法是用超過1G的大文件幾盤複製。結果發現速度由高低的順序是:RAID0> 不作RAID>RAID1>RAID5>RAID10

2
Linux 中,軟 RAID 的建立和管理;
在Linux中,軟RAID是通mdadm來建立和管理的,mdadm 是一個專用建立和管理RAID的軟件,在Linux中,大多發行版本已經默認安裝,mdadm能建立任何級別的軟RAID;
在本節中,RAID建立並非目的,咱們還要查看學會RAID的狀態,啓動、中止RAID。還要學會使用RAID。因此RAID的使用應該包括建立、管理和使用。 RAID的使用就是在RAID設備上建立文件系統,而後供存儲應用;
流程是:
[RAID建立 ]->[RAID管理]->[RAID的使用]
|
[RAID的維護 ]

2.1 RAID
的建立方法;
建立RAID有兩個方法 ,
第一種方法 :用mdadm 經過-C或--create 參數來建立RAID。這種方法 ,是把RAID信息寫到每一個RAID成員的 superblocks(超級塊)中,在每一個RAID成員的超級塊中,都會記錄RAID的級別、成員、RAID的UUID等…… 這種方法把RAID的信息記錄在各個成員的 superblocks(超級塊)中。這種方法對於重裝系統或系統發生災難來來講,有利於現有RAID的恢復;這種方法是最經常使用的;
第二種方法:用mdadm 經過-B或--build 參數來建立RAID。這種方法並不把RAID的信息寫入RAID成員的 superblocks(超級塊中),因此咱們沒法經過查看RAID成員信息來得到RAID的級別,以及RAID的成員等;這種方法對於重裝系統或系統發生災難來來講,不利於現有RAID的恢復;若是你想用第二種方法來建立RAID,能夠在下面的語法中,把-C或--create 換成 -B或--build 。

語法:建立把 RAID 信息寫入 RAID 每一個成員的 superblocks (超級塊)中;
mdadm -C -v /dev/mdX -lY -nZ RAID成員

mdadm --create --verbose /dev/mdX --level=Y --RAID-devices=Z RAID成員
注:
-C 是--create 的縮寫,表示建立的意思;這種方法是建立把RAID信息寫入每一個RAID成員superblocks(超級塊)的方法。這是最經常使用的方法。
-v 和--verbose, 顯示建立過程當中詳細的事件;
若是把-C或--create 換成-B或--build,就是建立RAID的另外一種方法,不把RAID信息寫入RAID成員的superblocks(超級塊)中,若是您試用,請本身嘗試;
RAID設備: /dev/mdX,RAID設備在Linux中,大可能是/dev/md0,/dev/md1…… 第一個設備從/dev/md0開始。 好比你已經有RAID0設備是/dev/md0,你再想作一個RAID5,那就是/dev/md1,以此類推;
RAID級別 : 用-lY或--level=Y表示,Y是RAID的級別。RAID的級別有RAID0就用0表示,RAID1就用1表示,RAID5就用RAID5表示,RAID10就用10表示。RAID的級別是根據本身的使用方向和現有磁盤和分區個數來定位。若是你就想高速讀寫、大容量,對數據安全性要求不高,那就用RAID0,若是對數據要求較高,能夠用RAID1或RAID5,再者就是RAID10。好比-l0或--level=0表示RAID0,-l5或--level=5表示RAID5, -l1或--level=1表示RAID1,-l10或--level=10表示RAID10;
-nZ或--RAID-devices=Z 表示RAID成員的個數,好比咱們把三個硬盤分分區作成一個RAID,那就是3個設備。就要寫成這樣 -n3或 --RAID-devices=3;值得注意的是RAID0和RAID1至少須要兩個設置,RAID5至少須要三個設備,RAID10至少四個設備;
RAID成員:也就是RAID的組成設備,要一個一個的列出來,每一個設備後要用空格來隔開;好比咱們把/dev/sdb、/dev/sdc、/dev/sdd三個硬盤作成RAID0,在RAID設備這塊,咱們要寫成 /dev/sdb /dev/sdc /dev/sdd ; 軟件RAID的成員還能夠是分區,好比 /dev/sdb一、/dev/sdc1 ……
舉例一:咱們要作一個RAID0,成員是 /dev/sdb、/dev/sdc 兩個硬盤設備。 咱們要運行以下命令;
mdadm -C --verbose /dev/md0 -l0 -n2 /dev/sdb /dev/sdc

mdadm -C --verbose /dev/md0 --level=0 --RAID-devices=2 /dev/sdb /dev/sdc
若是咱們想把/dev/sdb1 、/dev/sdc1和/dev/sdd1三個分區作成RAID0呢?
mdadm -C -v /dev/md0 -l0 -n3 /dev/sd[bcd]1

mdadm -C --verbose /dev/md0 --level=0 --RAID-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
舉例二:咱們要作一個RAID5 ,成員是/dev/sdb、/dev/sdc、/dev/sdd 三個設備,咱們要運行以下命令;
mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]

mdadm -C --verbose /dev/md0 --level=5 --RAID-devices=3 /dev/sdb /dev/sdc /dev/sdd
若是咱們想把/dev/sdb1 、/dev/sdc1和/dev/sdd1三個分區作成RAID5呢?
mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]1

mdadm -C --verbose /dev/md0 --level=5 --RAID-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
建立完成後,RAID也就當即啓動了。咱們會發現有相似以下一行的提示信息:
mdadm: array /dev/md0 started.
咱們要能夠經過下面的命令來查看RAID的信息;
mdadm -Ds /dev/md0
mdadm -D /dev/md0

2.2 RAID
管理工具;
RAID的管理包括建立、啓動、狀態查看等一系列工具;咱們只說經常使用的使用方法;

2.21 RAID
的啓動方法;
RAID的啓動有兩種方法,一種是指定RAID設備和RAID成員的辦法來啓動RAID,另外一種辦法是經過加載RAID默認的配置文件來啓動。

第一種方法:不經過讀取 mdadm.conf 來啓動 RAID ;適用狀況是你沒有配置 /etc/mdadm.conf 文件;
語法:
mdadm -A RAID設備 RAID成員
注:
-A 同 --assemble ,意思是激活一個已經存在的RAID;
RAID設備 ,就是/dev/md0 或/dev/md1 …… 根據你所建立的RAID設備爲準;
RAID成員,就是你要啓動的RAID,其下屬設備有哪些,要一個一個的列出來,中間以空格分開;
舉例:好比我要啓動一個RAID,設備是/dev/md0,其下有成員是 /dev/sdb和/dev/sdc;因此我要用下面的辦法;
[root@linuxsir:~] mdadm -A /dev/md0 /dev/sdb /dev/sdc
注: 這種狀況,是沒有配置RAID的配置文件/etc/mdadm.conf 時,所使用的啓動方法;若是您已經配置好了/etc/mdadm.conf文件,就能夠用 mdadm -As 來啓動;

第二種方法:利用配置好的 /etc/mdadm.conf 來啓動 RAID
mdadm -A RAID設備

mdadm -As
注: 這種啓動方法的前提是要配置 /etc/mdadm.conf文件,要把您系統中全部的RAID,都寫入這個文件,而後就能夠簡單的用這個命令來啓動了;
-A 同 --assemble ,意思是激活一個已經存在的RAID;
RAID設備 ,就是/dev/md0 或/dev/md1 …… 根據你所建立的RAID設備爲準;

舉例:
[root@linuxsir:~] mdadm -A /dev/md0
[root@linuxsir:~] mdadm -As
注: 好比我配置好/etc/mdadm.conf 後,啓動RAID設備/dev/md0,就用上面的辦法。具體mdadm.conf的寫法,請參見 RAID的配置文件一節;

2.22 RAID
管理工具一些經常使用參數說明;
mdadm 參數 [RAID設備] [RAID成員]

-A 或 --assemble 激活一個RAID;
-S 和 --stop 中止正在運行的設備;
-s 或 --scan 掃描RAID設備;
-D 或 --detail 查看RAID的詳細信息;
--examine 查看 RAID成員的詳細信息;
注:其中[]中的選項是可選的。
舉例:
[root@linuxsir:~]# mdadm -As
[root@linuxsir:~]# mdadm -Ss
[root@linuxsir:~]# mdadm -Ds
[root@linuxsir:~]# mdadm --examine /dev/sdb
注:上面的些標例, 都是在配置好/etc/mdadm.conf 的狀況下,運行的,若是您沒配置好mdadm.conf文件,請指定RAID設備及其成員;其中,--As 是搜索/etc/mdadm.conf ,而後根據 mdadm.conf 配置好的RAID信息來啓動RAID。 -Ss 是搜索正在運行的RAID,而後中止。-Ds 搜索RAID,查看RAID信息; --examine /dev/sdb 是查看其中一塊硬盤的RAID信息,這個頗有用。好比你忘記了RAID的成員和UUID,想恢復現有的RAID,就要用這個來查看,而後從新讓RAID啓動起來。
好比系統有一個RAID,但在/etc/mdadm.conf 中沒有相應的記錄RAID信息。我不知道這個RAID是哪一個類型的,是RAID0,仍是RAID1,仍是RAID5??到底機器中有幾個RAID?若是您是一個新接手的管理員,應該想知道這些信息。那就一個一個硬盤,一個一個的分區查看過去。從中找出系統中全部的RAID。而後一個一個的恢復。這時就要用到 --examine這個參數了;
[root@linuxsir:~]# fdisk -l

[root@linuxsir:~]# # mdadm --examine /dev/sdb
/dev/sdb:
Magic : a92b4efc
Version : 00.90.00
UUID : 35e1a3e6:ed59c368:e5bc9166:5004fe52
Creation Time : Wed Aug 1 07:11:43 2007
RAID Level : RAID0
Used Dev Size : 0
RAID Devices : 2
Total Devices : 2
Preferred Minor : 0

Update Time : Thu Aug 2 07:43:30 2007
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : 8f8a235e - correct
Events : 0.29

Chunk Size : 64K

Number Major Minor RAIDDevice State
this 0 8 16 0 active sync /dev/sdb

0 0 8 16 0 active sync /dev/sdb
1 1 8 32 1 active sync /dev/sdc
注:
首先:咱們用fdisk -l 查看一下機器中全部硬盤和分區,若是不能徹底列出,請指定具體硬盤。
其次:咱們查看一下某個硬盤或分區上是否有RAID信息,好比我查看的是/dev/sdb ,結果顯示出,/dev/sdb是RAID0設備的一個成員,/dev/sdb和/dev/sdc 共同組成的RAID0;
獲得這些信息有何用呢?咱們就能夠激活RAID,或重寫/etc/mdadm.conf ,讓RAID從新運行起來。在此過程當中, 千萬不要用-C或--create 參數來從新建立RAID,不然你之前存在的RAID就被破壞,裏面的數據固然也會一無全部!!!切記。在一個有數據的RAID中,不能隨便用-C 參數。若是用了-C或--create 就是建立一個新的RAID設備!

2.3 RAID
的配置文件;
RAID並非必定要配置文件,但有配置文件,會方便管理,好比RAID最精簡的方法執行、狀態查看………… 也須要RAID的配置文件。若是不沒有配置文件,還要指定RAID成員;
RAID的配置文件是mdadm.conf 位於/etc目錄,若是你沒有這個文件,能夠本身建立一個;當咱們作好RAID後,首先要配置這個文件;把你全部的RAID配置信息都寫入這個文件。 咱們能夠本身手工編寫。參照mdadm.conf 配置文件的示例就比較方便。
你也能夠用下面的辦法,要先作好/etc/mdamd.conf的備份;
[root@linuxsir~] mv /etc/mdadm.conf /etc/mdadm.conf.bak

第一步:搜索RAID;
搜索RAID是以激活RAID爲前掉條件,不然下面的命令不會有什麼做用;請參見激活RAID的辦法;
語法:
mdadm -Ds
注: 其中-D 表示 --detail ,-s 表示--scan ,二者結合起來就-Ds;
提示:運行查詢RAID的時,要首先激活RAID;
舉例:
[root@linuxsir~] mdadm -Ds
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
第二步:查詢RAID的詳細信息;主要是查看RAID的成員有哪些;
語法:
mdadm -D RAID設備
舉例:
下面查詢已經啓動了的RAID設備/dev/md0的詳細信息;
[root@linuxsir~] mdadm -D /dev/md0

/dev/md0:
Version : 00.90.03
Creation Time : Wed Aug 1 07:11:43 2007
RAID Level : RAID0
Array Size : 156249856 (149.01 GiB 160.00 GB)
RAID Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Aug 2 07:22:27 2007
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Chunk Size : 64K

UUID : 35e1a3e6:ed59c368:e5bc9166:5004fe52
Events : 0.21

Number Major Minor RAIDDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
注:經過查詢詳細信息,咱們獲得 /dev/md0是RAID0,下面兩個成員/dev/sdb和/dev/sdc ;UUID爲 35e1a3e6:ed59c368:e5bc9166:5004fe52 ;這個RAID是有超級塊的;
第三步:書寫RAID的配置文件mdadm.conf;
[root@linuxsir~] mdadm -Ds >> /etc/mdadm.conf 注:把查詢出來的 RAID信息寫到mdadm.conf中;
[root@linuxsir~]more /etc/mdadm.conf 注:看看有沒有內容寫進來?
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
由於咱們在前面已經經過mdadm -D /dev/md0 得知其下有成員/dev/sdb 和 /dev/sdc 兩塊硬盤。因此咱們要修改一下mdamd.conf的內容。要在加上/dev/md0的成員/dev/sdb和/dev/sdc;用編輯器打開/etc/mdadm.conf;
在下面相似的一行;
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52
修改爲
ARRAY /dev/md0 level=RAID0 num-devices=2 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 devices=/dev/sdb,/dev/sdc
其實也就是把/dev/md0這個RAID設備的成員指定出來,每一個設備之間要用,號隔開。或者寫成 devices=/dev/sd[bc]相似的寫法也行;
咱們來看一下/dev/md0這行,其中/dev/md0這行是一個RAID0設備,由兩個成員組成,/dev/md0的UUID爲 UUID=35e1a3e6:ed59c368:e5bc9166:5004fe52 ,兩個成員分別是/dev/sdb和/dev/sdc兩個硬盤;
其實咱們不管添加多少RAID設備,均可以經過這種方法寫入RAID配置文件/etc/mdadm.conf中,每一個RAID設備一行;寫好後,咱們要重啓一下RAID;
[root@linuxsir~] mdadm -Ss

[root@linuxsir~] mdadm --stop --scan
mdadm: stopped /dev/md0


[root@linuxsir~] mdadm -As

[root@linuxsir~] mdadm --assemble --scan

mdadm: /dev/md0 has been started with 2 drives.
注: -S 和--stop相同,表示中止RAID。而-s和 --scan相同,表示掃描RAID。-A和--assemble表示激活RAID;這些參數都比較簡單,查查man和help就知道了;
激活RAID後,咱們要經過查看RAID的狀態來判斷RAID是否正常和健康……

3 RAID
設備的使用: RAID 設備分區、文件系統初始化,掛載方法;
既然咱們已經把RAID設備作好了,咱們就要使用這個設備。RAID作好後,相似一個沒有格式化的新硬盤。若是咱們拿到新硬盤時第一步是作什麼?對,是分區和格式化,安裝操做系統。RAID作好後,沒有文件系統,同樣是沒辦法用的,因此咱們作好RAID後,要來建立文件系統;RAID只不過是把幾個硬盤或分區綁定在一塊兒成爲一個大的虛擬物理存儲設備。若是咱們要對這個大的虛擬設備進行使用,就要在這個設備上建立文件系統才行。Linux 目前可用的文件系統有reiserfs、xfs、ext3,我推薦reiserfs和xfs,感受這個比較安全點。雖然如今有超強的zfs,但我認爲仍是處於小白鼠階段。對於重量級應用來講,咱們仍是觀察一段時間再說。
RAID作好後,咱們要爲它進行文件系統初始化,當初始化完成後,咱們就能夠掛載使用了。在通常狀況下,咱們能夠把作好的RAID掛載到/home,咱們能夠把全部的存儲性文件。
在Linux中,建立文件系統的工具備 mkfs.xfs(建立xfs文件系統), mkfs.jfs(建立JFS文件系統), mkfs.reiserfs (建立reiserfs文件系統), mkfs.ext3 (建立ext3文件系統)…… 。咱們推薦的是reiserfs和xfs,不推薦ext2或ext3,爲何不推薦?由於實踐是檢驗真理的惟一標準,性能不如人、安全性不如人,怎麼用?我不是ext文件系統的專家,我只用最方便,維護起來比較容易的文件系統。
RAID也能夠分區來使用,但以我看來,大可沒必要,凡是能用到RAID的,大可能是服務器領域。咱們能夠把RAID作成後,掛載到/home目錄上。有關數據存儲的都放在RAID上。操做系統並不安裝在RAID上,當操做系統發生故障的時候,咱們僅僅是修復或重裝操做系統,對數據存儲的RAID沒有任何影響。就是重裝操做系統,咱們也能在幾分鐘以內恢復RAID。
若是您想把RAID再進進行分區使用,能夠用fdisk 、parted或cfdisk 來進行分區工做,也能夠嘗試LVM的來對分區進行管理,LVM能自動調整分區的大小。固然,我不會推薦RAID+LVM,或對RAID進行分區操做。
RAID作好後,咱們就像使用物理硬盤同樣使用它,好比根據前面的例子,把/dev/sdb和/dev/sdc兩個硬盤作成RAID0,其設備爲/dev/md0,咱們就能夠對/dev/md0進行和物理硬盤同樣的操做。若是咱們不分區,只是進行建立文件系統,那就比較簡單了。
好比咱們在/dev/md0上建立reiserfs文件系統,咱們能夠用mkfs.reiserfs命令來完成。

第一步:查看 /dev/md0 設備是否存在,以及它的容量;
[root@linuxsir:~]# fdisk -l /dev/md0

Disk /dev/md0: 159.9 GB, 159999852544 bytes
2 heads, 4 sectors/track, 39062464 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table
注:咱們能夠看到/dev/md0設備有 158.0GB的容量,不包含有效分區。若是您想要用分區操做,請用fdisk /dev/md0 、或cfdisk /dev/md0 或parted /dev/md0來操做;

第二步:建立文件系統;
在這裏咱們是計劃用 reiserfs 文件系統;
[root@linuxsir:~]# mkfs.reiserfs /dev/md0

mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

A pair of credits:
Nikita Danilov wrote most of the core balancing code, plugin infrastructure,
and directory code. He steadily worked long hours, and is the reason so much of
the Reiser4 plugin infrastructure is well abstracted in its details. The carry
function, and the use of non-recursive balancing, are his idea.

Oleg Drokin was the debugger for V3 during most of the time that V4 was under
development, and was quite skilled and fast at it. He wrote the large write
optimization of V3.


Guessing about desired format.. Kernel 2.6.21.5-smp is running.
Format 3.6 with standard journal
Count of blocks on the device: 39062464
Number of blocks consumed by mkreiserfs formatting process: 9404
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 2b06b743-8a4e-4421-b857-68eb2176bc50
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/md0'!
Continue (y/n):y 注:在這裏輸入 y ,就進行建立文件系統了;
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok

Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.

ReiserFS is successfully created on /dev/md0.
這樣文件系統 reiserfs 就建立成功了。若是您想建立xfs文件系統,就用mkfs.xfs /dev/md0 ,其它文件系統也相似 ……

第三步:掛載文件系統並使用;
[root@linuxsir:~]# mkdir /mnt/data
[root@linuxsir:~]# mount /dev/md0 /mnt/data
[root@linuxsir:~]# df -lh /dev/md0

文件系統 容量 已用 可用 已用% 掛載點
/dev/md0 150G 33M 149G 1% /mnt/RAID0
注: 這樣就就/dev/md0 設備掛載到/mnt/RAID0上了。能夠看到設備大小爲150G。已使用33M,掛載點爲/mnt/RAID0。咱們能夠向設備裏存儲文件;
其實根據Linux文件系統的結構,以及最新Linux軟件方便易用的特色。咱們徹底能夠把/home獨立出來。把RAID設備掛載到/home目錄上。凡是涉及用戶或數據存儲的,均可以放在/home中,好比數據庫,網絡服務器有關數據存儲的,都指定到 /home中的文件夾中。全部的一切都是根據方便管理爲前提。
若是您的RAID是在安裝系統後建立的,若是掛載到Linux現有目錄下,要先作好相應目錄的數據遷移到RAID設備中,而後再把RAID掛載到Linux目錄中。好比你想把RAID掛載到/home目錄中,能夠先建立一個臨時的目錄,把RAID掛到這個臨時的目錄上,接着再把/home目錄下的文件都移到 RAID上,而後再把RAID卸載,再從新掛載到/home中,這樣/home的數據就完遷移了。
至於如何把操做系統安裝或移到RAID上,不一樣的Linux發行版有不一樣的方法。Fedora或Redhat在安裝的過程當中,就爲咱們提供了在RAID1上安裝系統。其它的發行版是否支持,不太知道,Slackware是不支持。若是您想把系統移植到RAID1中,可能須要安裝好系統後,再進行移植。 感受軟RAID1在一塊硬盤上作,沒太大的必要,若是要作RAID1,也要在兩個硬盤上(或兩個屬於不一樣硬盤的分區上來作)。
如何開機掛載RAID設備,不一樣的發行版也有本身的方法,流程是先激活RAID,而後纔是掛載。

4
RAID 的高級進階及維護;
RAID作好之後,並非萬事大吉了,還要進行平常維護;好比某個硬盤(或分區)壞掉,咱們能夠在不停機的狀況下換上。或者咱們爲RAID作一個冗餘的硬盤或分區,當RAID發生故障時,冗餘硬盤或分區自動推上工做,能實現零停機任務。

4.1
如何向已存在的 RAID 中,添加一塊硬盤或分區;
RAID有幾種模式,好比建立、管理。下面咱們所說的就是RAID的管理模式Manage,也能夠說是RAID的進階應用。管理模式的目的,僅僅是爲了把有問題的RAID成員換掉,或者爲了管理的須要把其中一個RAID成員由另外一個來替換,也多是爲了安全須要,讓新增長的硬盤或分區當作RAID的備用(spare)成員;在管理模式中, RAID的真正成員個數並不改變。好比咱們作RAID5是,用的是三個硬盤或分區。在增長RAID成員時,RAID5還是三個成員,容量仍是保持不變,若是三個RAID成員徹底正常健康,新增長的成員,僅僅是備用(spare)成員。備用成員的用途就是當RAID的真正成員發生問題時,備用成員會立刻啓動,僅僅是起到安全的冗餘的做用;
咱們要向一個既已存在RAID中,添加或移除一個硬盤或分區,咱們要用到mdadm 工具的 -f 和-r 以及-a 參數;
mdadm /dev/mdX -f RAID成員
mdadm /dev/mdX -r RAID成員
mdadm /dev/mdX -a RAID成員
注:
-f 同 --fail 表示把一個設備列爲有問題的設備,以便用-r或--remove參數移除;
-r 同 --remove 表示把RAID中的一個成員移出RAID;
-a 同 --add 表示向一個RAID中添加一個成員;
--re-add 從新把最近移除的RAID成員從新添加到RAID中;
值得一提的是,這些參數的運用,必須是在RAID正常運行的狀況下進行。其中RAID設備是/dev/mdX,X是一個大於0的整數,RAID成員是一個硬盤或分區。添加設備並不會把RAID的容量擴大,僅僅是爲了添加備用成員,好比在RAID一、RAID5和RAID10中特加有用。當一個RAID成員發生故障的時候,要用這種辦法來讓新成員頂替工做;
舉例:
[root@linuxsir:~]# mdadm /dev/md0 -f /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -r /dev/sdb3
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb5
注:當咱們想把一個RAID的成員/dev/sdb3移除 RAID設備/dev/md0時,要首先標註它爲有問題的(也多是徹底正常的,爲了管理須要)。而後 用-r參數移除,接着用-a 參數再添加一個設備/dev/sdb5到RAID設備/dev/md0中;
當咱們用mdadm -D /dev/md0查看RAID的狀態時,咱們會看到RAID的詳細信息。好比是否正常、RAID成員…… 下面是咱們須要掌握的;

Raid Level : 注:陣列級別;好比Raid5
Array Size : 注:陣列容量大小;
Used Dev Size : 注:RAID單位成員容量大小,也就是構成RAID的成員硬盤或分區的容量的大小;
Raid Devices : 注:RAID成員的個數;
Total Devices : RAID中下屬成員的總計個數,由於還有冗餘硬盤或分區,也就是spare,爲了RAID的正常運珩,隨時能夠推上去加入RAID的;
State : clean, degraded, recovering 注:狀態,包括三個狀態,clean表示正常, degraded 表示有問題, recovering 表示正在恢復或構建;
Active Devices : 被激活的RAID成員個數;
Working Devices : 注:正常的工做的RAID成員個數;
Failed Devices : 出問題的RAID成員;
Spare Devices : 備用RAID成員個數,當一個RAID的成員出問題時,用其它硬盤或分區來頂替時,RAID要進行構建,在沒構建完成時,這個成員也會被認爲是spare設備;
Rebuild Status : 注:RAID的構建進度,好比 38% complete ,表示構建到 38%;
UUID : 注:RAID的UUID值,在系統中是惟一的;
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注:表示這個成員是激活的;
1 8 18 1 active sync /dev/sdb2 注:表示這個成員是激活的;
4 8 19 2 spare rebuilding /dev/sdb3 注:未被激活,正在構建中的成頁,正在傳輸數據;
3 8 49 - spare /dev/sdd1
注:spare /dev/sdd1 表示/dev/sdd1是RAID的備用成員,當RAID的正式成員/dev/sdb一、/dev/sdb2或/dev/sdb3中有一個出問題的時候,這個備用成員會自動進行工做的。這個並非必須的,能夠用添加RAID成員的辦法來添加,也能夠在建立的RAID的時候添加;

4.2
如何爲一個現有 RAID 擴充容量;
在RAID的管理模式中,咱們提到增長RAID成員的辦法,若是RAID全部真正成員都是健康的,這個成員就進入備用(spare)狀態。只有當真正成員有問題時,這個備用成員才啓用頂替出問題的成員來工做。
但咱們能不能向RAID添加一個新成員,而且讓他成爲RAID的真正成員,而且達到爲RAID擴充容量呢?好比有一個RAID5,用的是3個20G 的分區作的,其總容量是(3-1)x20=40G,咱們可否爲這個RAID5新增長一個20G的分區,而且讓其成爲這個RAID5真正的成員,而且達到擴充容量的目的,也就是說讓這個RAID5有四個真正的成員,其容量爲(4-1)x20=60G。
在硬RAID中,這個工做比較容易,但在軟RAID中,是否能實現呢?答案是確定的,這種狀況僅針對已經作好的RAID,而且已經在存儲過程當中發現RAID容易不足的狀況下使用。若是是一個新作的RAID,咱們發現計劃錯了,咱們從新作一次就好了,不必用擴容的辦法。
咱們爲現有的RAID擴充容量,利用的就是RAID的Grow模式,中譯爲RAID的增加模式;應用範圍是RAID一、RAID四、RAID五、RAID6。
RAID 擴容流程:
向一個已經存在的 RAID中添加一個成員->執行擴容指令
注: 在這裏咱們要用到RAID的管理模式中的添加成員的辦法。也就是用到mdadm 中的-a 參數,請參考上一節的內容。這時添加的成員是備用(spare)成員,咱們要把備用成員「推」到位置上。這時咱們要用到mdadm的Grow模式;
舉例說明:
好比咱們作的RAID5,由三個硬盤分區/dev/sdb一、/dev/sdc一、/dev/sdd1構成,這時的RAID5真正成員就是3個。當咱們添加一個分區/dev/sdb2到這個RAID5時,新增長的這個sdb2就是這個RAID5R 的備用(spare)成員。好比已有的RAID5的設備是/dev/md0;
·首先,查看RAID狀態;
[root@linuxsir:~]# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注: RAID級別;
Array Size : 39069824 (37.26 GiB 40.01 GB) 注: RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注: RAID中每一個成員的容量是19534912
Raid Devices : 3 注: RAID真正成員是3個設備構成;
Total Devices : 3 注: 總共設備是 3個;
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Aug 7 02:02:33 2007
State : clean 注:狀態正常;
Active Devices : 3 注:激活的設備是 3個;其實就是RAID真正成員正常激活的個數;
Working Devices : 3 注:正常工做的設備是 3個;
Failed Devices : 0 注:有問題的設備是 0個;
Spare Devices : 0 注:備用設備是 0個;

Layout : left-symmetric
Chunk Size : 64K

UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d 注: RAID的UUID;
Events : 0.16

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注: RAID真正成員/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注: RAID真正成員/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注: RAID真正成員/dev/sdd1
·其次,咱們爲這個RAID5添加一個成員;
把/dev/sdb2添加到RAID設備/dev/md0,而後查看RAID的狀態及詳細信息;
[root@linuxsir:~]# mdadm /dev/md0 -a /dev/sdb2 注:添加分區 /dev/sdb2到/dev/md0中;
mdadm: added /dev/sdb2


[root@linuxsir:~]# mdadm -D /dev/md0 注:查看 /dev/md0的詳細信息;
/dev/md0:
Version : 00.90.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5 注: RAID級別;raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注: RAID容量是 39069824
Used Dev Size : 19534912 (18.63 GiB 20.00 GB) 注: RAID中每一個成員的容量是19534912
Raid Devices : 3 注: RAID真正成員是3個設備構成;
Total Devices : 4 注: 總共設備是 4個;
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Aug 7 02:14:13 2007
State : clean 注:狀態正常;
Active Devices : 3 注:激活的設備是 3個;其實就是RAID真正成員正常激活的個數;
Working Devices : 4 注:正常工做的設備是 4個;
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 64K

UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.18

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 注: RAID真正成員/dev/sdb1
1 8 33 1 active sync /dev/sdc1 注: RAID真正成員/dev/sdc1
2 8 49 2 active sync /dev/sdd1 注: RAID真正成員/dev/sdd1

3 8 18 - spare /dev/sdb2 注:注: RAID備用成員/dev/sdb2
添加/dev/sdb2到/dev/md0後,咱們發現RAID的組成設備總數由3個變成了4個,但真正成員個數並無變化,多出了一個備用成員/dev/sdb2。但/dev/md0的容量並無變大。 因此這時咱們要爲RAID來擴容,解決辦法就是讓/dev/sdb2成爲RAID的真正成員,RAID的容易由 40G擴展到 60G;
·第三,爲RAID進行擴充容量;
在這裏咱們要用到RAID的Grow模式,也就是增加模式。擴充模式,極爲簡單,有--size參數,-n參數 --size是指大定RAID的大小,這個能夠省略,具體由你所作的RAID級別而定。 -n 表明RAID真正成員的個數。在這個例子中,RAID5真正成員是3個,後來咱們又添加了一個備用成員/dev/sdb2進去。咱們所作的就是把這個備用成員「推」到真正成員的位置上。也就是說RAID的真正成員由3個變成4個。只是這一簡單的指令,就可讓RAID5容量增長起來。
[root@linuxsir:~] # mdadm -G /dev/md0 -n4

mdadm: Need to backup 384K of critical section..
mdadm: ... critical section passed.
而後咱們查看RAID的詳細信息;
[root@linuxsir:~] # mdadm -D /dev/md0
/dev/md0:
Version : 00.91.03
Creation Time : Tue Aug 7 01:55:23 2007
Raid Level : raid5
Array Size : 39069824 (37.26 GiB 40.01 GB) 注: RAID的容量,咱們發現RAID的容量並無增大,這是由於構建沒有完成;等構建完成時就會改變過來;
Used Dev Size : 19534912 (18.63 GiB 20.00 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Aug 7 02:36:06 2007
State : clean, recovering 注:正常,恢復中;
Active Devices : 4 注: RAID的正式成員已經變到4個;
Working Devices : 4
Failed Devices : 0
Spare Devices : 0 注:備用成員由 1個,減小到0個;說明已經把RAID備用成員推到了RAID的正式成員中;

Layout : left-symmetric
Chunk Size : 64K

Reshape Status : 17% complete 注: RAID從新構建狀態,已經完成17%;目前並未完成構建;
Delta Devices : 1, (3->4) 注: RAID的正式成員增長一個,由3個到4個;

UUID : faea1758:0e2cf8e0:800ae4b7:b26f181d
Events : 0.100

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 49 2 active sync /dev/sdd1
3 8 18 3 active sync /dev/sdb2 注: /dev/sdb2已經由spare改變到 active ,也就是說由備用
當執行完增容後,咱們發現RAID的容量並無增大,這是由於構建沒有完成,等RAID完成構建後,RAID的容量就會改變爲 19534912x(4-1)=58604736K=60G;構建進度也能夠cat /proc/mdstat 來查看。
新增長一個RAID正式成員的辦法,不會讓RAID原有的數據丟失,也不會破壞原有的數據。因此這種辦法對RAID已經存儲大量數據,當容量發生危機時而不損失原有數據的前提下,所採用的一種安全可行的擴容辦法; 固然擴容後,你要修改 /etc/mdadm.conf;

4.3 RAID
正式成員個數達不到 RAID 啓動要求時,如何啓動 RAID
可能存在這樣一種情況,當RAID的一個正式成員掛掉後,這時RAID按之前說的常規辦法是不能啓動的。這時咱們要強制啓動,要用到--run 參數;好比當作RAID5時,咱們用到了三個硬盤或分區,當其中有一個掛掉,按RAID5的特色來講,數據同樣是安全完整的,但RAID5啓動按常規辦法是必需要達到作RAID時所指定的正式成員個數,這時按常規啓動辦法是不行的,咱們要用到--run參數;
咱們舉個例子。好比RAID5正式成員有3個/dev/sdb1,/dev/sdb2,/dev/sdb3,咱們只用/dev/sdb1和/dev/sdb2來啓動RAID5;
[root@linuxsir:~] # mdadm -A --run /dev/md0 /dev/sdb1 /dev/sdb2

5
RAID 設備使用方向的探討;
對於軟RAID是把幾個同容量的物理磁盤或分區組成一個大的虛擬設備來用,咱們應用方向是什麼呢?經過RAID的定義,咱們能夠知道RAID是爲了解決容量、讀寫效率以及磁盤冗餘安全而提出來的。

5.1
僅僅是爲了擴充存儲可用空間,是否必需作 RAID
若是是僅僅解決容量問題,我看大可沒必要用RAID。由於LVM比RAID更爲靈活,不管怎麼作,都不會帶來容易上的損失。而只有RAID0和 LINEAR 級別纔不會帶來容量上的損失,RAID一、RAID5和RAID10因爲要有安全冗餘,因此RAID的容量必然減小;
LVM 技術能把全部空閒硬盤或分區結合在一塊兒來使用,並不要求每一個分區或硬盤大小容易是一致的,而RAID必需要求每一個RAID成員容量大小相同,若是不相同,以最小的成員的容易計算,這個損失還不算,還要有安全冗餘帶來的容量損失,好比把兩塊80G的硬盤作成RAID1,這時的RAID1是一塊硬盤的容量。LVM作好後,也至關於一個空白的虛擬設備,能夠在上面劃成一個分區來使用,也能夠劃分幾個,若是劃成幾個,咱們還能夠自動調整分區的大小。而RAID一但作好,若是再進行分區,分區的容量是沒辦法自由調整的;
有的弟兄會問,我是否是作好RAID,而後在RAID上再作LVM,也就是RAID+LVM模式。這種方案實現起來並不困難,但對於軟RAID來講,這種方案是否真的價值? 咱們用RAID的目的無非是「容量+讀寫效率+安全」。咱們有必要把作好的RAID再分割的四分五裂嗎? 我感受不必,由於對於存儲設備來講,每加強一項管理技術,就意味着風險,這種風險一是來自於管理員技術水平,二是來自於設備老化。另外集中於不分區的存儲設備,也能爲數據遷移和系統管理帶來方便;

5.2
在同一個硬盤作 RAID 是否有必要;
在同一塊硬盤上作RAID是否有必要,若是您是想提升數據讀寫速度,仍是有必要的。RAID0就能爲你帶來這種高速存儲的快感。若是您想在同一塊硬盤上作軟RAID,想同時兼顧效率和安全,我看大能夠免了。由於硬盤一壞掉,什麼重要的數據都會一鍋爛;

5.3
RAID 的合理使用方向;
目前支持SATA主板的機器只能技術最多四塊硬盤。好比四個80G的SATA硬盤,IDE硬盤也同理;咱們要根據本身的使用方向來作RAID。下面我根據一個示例來講明RAID的合理使用方向;
第一個硬盤分區狀況:
/dev/sda1 20G大小
/dev/sda2 20G大小
/dev/sda3 20G大小
-----/dev/sda5 swap 分區 -內存兩倍大小
-----/dev/sda6 用於 /tmp 2G大小;
-----/dev/sda7
注:咱們首先把操做系統安裝到第一個分區/dev/sda1 ,交換分區是/dev/sda5,/dev/sda6爲臨時/tmp的目錄;那/dev/sda1和 sda二、sda三、sda7是用作什麼的呢?能夠用來安裝系統。咱們設計的是僅安裝系統,涉及數據保存的,都放到RAID上。好比我把sda1和sda2安裝一樣的系統,把由第二三四塊硬盤作好的RAID掛在/home上,全部應用數據都存在RAID上。當sda1系統被破壞時,咱們能夠用最短的時間啓用sda2的系統,並在sda2上裝載由第二三四塊硬盤上作的RAID。
第二三四個硬盤,咱們能夠用來整塊硬盤來作RAID, 沒必要爲每塊硬盤分區。好比爲了讀寫效率,咱們能夠作成RAID0,爲了安全,你能夠作RAID5。 若是作RAID0設備的容量是3x80G=240G,若是作RAID5,RAID5設備的容量是(3-1)x80=160G。有的弟兄可能會說,爲何我不能把磁盤進行分區,而後作RAID0呢?RAID10也就是RAID0+RAID1的組合,安全和效率都有。這種方案也是能夠的,但您必須作到,當有一個硬盤壞掉時,不會影響數據的總體安全性。也就是說,當一個硬盤壞掉時,另外兩塊硬盤組合起來,仍能組成一份完整的數據。當RAID中的一塊硬盤壞掉時,咱們能經過更換硬盤,簡單的修復,就能讓RAID正常運行起來,並且數據是完整的。若是您對數據安全極爲重視的,在作軟RAID的過程當中,能作到這點,這個RAID方案就屬於你。
因此在作軟RAID時,首先要明白本身的目的是什麼,而後再來根據目的判斷本身的所要達到的效果。若是是簡單追求的是讀寫效率,咱們就沒必要考慮數據的安全性。若是是數據的安全性對咱們來講極爲重要,咱們就要判斷,當一塊硬盤壞掉時,是否影響數據的完整性!好比,咱們用兩塊硬盤來作RAID5或RAID10,能夠這樣說,沒有一點安全性的。不管您怎麼分區和組合,也不會爲您帶來一點安全感。

6
常見問題及處理;
涉及一些補充和增訂的內容,咱們在這裏一一列出;

6.1
如何清除一個 RAID 成員的超級塊存儲存的 RAID 信息;
RAID成員在 superblock中所存儲的RAID信息是極爲重要的,咱們能夠根據這個信息輕鬆恢復RAID。
mdadm --zero-superblock RAID成員;
若是你確認RAID成員這個成員對你沒任何用處,你已經把這個成員移除RAID,而且您想把這個設備另做他用。這時你能夠清除其 superblock的信息。好比;
[root@linuxsir:~] # mdadm --zero-superblock /dev/sdd3
這個示例就是清除/dev/sdd3中的超級塊中所存儲的RAID信息;

7
關於本文;
其實軟RAID使用起來比較簡單,難點在於後期的管理和維護。軟RAID的使用教程,其實用幾個命令足以能說的清楚。但一想到初學Linux的弟兄也可能象我當初學習Linux同樣,總想找一個Step By Step的教程看着實現本身想要作的東西,基於這個大多數初學者的想法,我就寫了這麼一個看起來相對複雜的文章。
這篇文章看起來條理不夠清晰,另外mdadm的模式也沒有給你們說,而是把模式分拆開來放在具體的應用中。
我僅僅是用本身重新手理解的角度來寫這篇文章,文中大量存在不規範的用語,這也是在情理之中的。最主要的是有些專業束語我不知道如何翻譯纔好。
歡迎弟兄們指正,仍是那句話「看北南寫的文檔,要一分爲二,看着批,批着看!」

8
參考文檔;

9
相關文檔;
相關文章
相關標籤/搜索