溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在linux中配置raid

發(fā)布時間:2021-03-12 15:22:19 來源:億速云 閱讀:190 作者:Leah 欄目:系統(tǒng)運維

今天就跟大家聊聊有關(guān)怎么在linux中配置raid,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1 什么是RAID,RAID的級別和特點 ;

什么是RAID呢?全稱是 “A Case for Redundant Arrays of Inexpensive Disks (RAID)”,在1987年,由加州大學(xué)伯克利大學(xué)發(fā)表的論文而來,其實就是這個標(biāo)題的縮寫就是RAID;中譯為“磁盤陣列”;

RAID就是把幾個物理磁盤組合在一起成為一個大的虛擬物理磁盤,主要目的和用途主要有:把若干小容量物理磁盤組成一個大容量虛擬存儲設(shè)備(以前的物理磁盤的容量都比較?。惶岣呶锢泶鎯π剩ㄗx、寫),或提供冗余以提高數(shù)據(jù)存儲的安全性。

根據(jù)應(yīng)用方向的不同,RAID也分不不同級別 ,有LINEAR、RAID0、RAID1、RAID5、RAID10、RAID4、RAID6、MULTIPATH。常用的有RAID0、RAID1、RAID5、RAID10(其實就是0+1)、LINEAR


1.1 什么是硬件RAID和軟RAID;

RAID 還分為硬件RAID 和軟件RAID,硬件RAID是通過RAID 卡來實現(xiàn)的,而軟件RAID是通過軟件來實現(xiàn)的;在企業(yè)級應(yīng)用領(lǐng)域,大部份都是硬件RAID。而軟件RAID由于性價比高,大多被中小型企業(yè)所采用;

硬件RAID是通過RAID卡把若干同等容量大小的硬盤,根據(jù)使用方向的不同,聚合起來成為一個大的虛擬RAID設(shè)備(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每個硬盤容量不一致,以最小容量的硬盤為基礎(chǔ);它的成員是整個硬盤;

軟RAID是軟把若干同等容量大小的硬盤或分區(qū),根據(jù)使用方向的不同,聚合起來成為一個大的虛擬RAID設(shè)備(或RAID0,或RAID1,或者RAID5,或RAID10……),如果每個硬盤或分區(qū)容量不一致,以最小容量的硬盤或分區(qū)為基礎(chǔ)。軟RAID的成員是整個硬盤或分區(qū);

RAID 總的來說還是應(yīng)用在生產(chǎn)型項目領(lǐng)域中,一般在商用辦公或個人娛樂應(yīng)用并未被大規(guī)模采用。應(yīng)有領(lǐng)域大多要求性價比級的低端服務(wù)器或PC-SERVER;


1.2 RAID 的級別及特點;

RAID 有幾種級別,LINEAR,RAID0 (striping), RAID1 (mirroring), RAID4, RAID5, RAID6, RAID10, MULTIPATH, and FAULTY.其中我們常用有RAID0、RAID1、RAID5、RAID10。

下面我們說說常用的RAID0、RAID1、RAID5以及RAID10;


1.21 什么是軟RAID0及特點;

RAID0 是把兩個或兩個以上的容量相同的硬盤或分區(qū),通過RAID控制器(硬RAID是通過RAID卡來實現(xiàn)的,軟RAID 是通過軟件來實現(xiàn)的),結(jié)合為一個在容量上是RAID0下成員的容量的總和,在寫入時,要向每個硬盤或分區(qū)同時寫入數(shù)據(jù)。

在硬RAID中,RAID0的成員是以整個硬盤為單位的,把兩個硬盤或兩個以上的硬盤通過RAID卡綁定成為一個虛擬的磁盤設(shè)備,而每個硬盤就是RAID0的成員;

在軟RAID0中,RAID0的成員是整個硬盤或分區(qū),容量是加入RAID0的所有成員容量的總和。在RAID0中每個成員的容量都是相同一致的。比如我們把 /dev/sdb 、/dev/sdc、/dev/sdd 三個容量大小為80G的硬盤做成RAID0,這時RAID0設(shè)備的容量就是三個硬盤的總和 80x3=240G。當(dāng)然我們也可以,在寫入數(shù)據(jù)時,系統(tǒng)要向每個硬盤同時寫入數(shù)據(jù),是以條塊的形式寫入。比如我們存一份數(shù)據(jù)linuxsir.tar.gz 到RAID0的設(shè)備中,這份數(shù)據(jù)是分拆成若干份被分散的寫入到RAID0中的每個成員中。只有RAID0中的每個成員正常運行,并且RAID0也正常運行的情況下,這份數(shù)據(jù)才是完整的。RAID0中任何一個成員(硬盤分區(qū))有有問題時,RAID0便不能運行,同時數(shù)據(jù)也不是完整的;

RAID0 在讀寫速度上是比較快的,是普通不做RAID的兩倍左右(注:實際速度和機(jī)器的硬件配置有關(guān)),所以RAID0常被用于對存儲效率要求較高,但對數(shù)據(jù)安全性要求不高的應(yīng)用解決方案中;

安全性:RAID0中有任何一個成員出現(xiàn)故障,整個RAID0就不能被激活。數(shù)據(jù)不能保障;


1.22 什么是軟RAID1及特點;

RAID1就是把若干相同容量的硬盤或分區(qū),成員與成員之間是鏡像關(guān)系。在容量上,RAID1設(shè)備是單個成員的容量。比如兩個80G的硬盤做成RAID1,這個RAID1的設(shè)備容量仍是80G。比如我們寫入一個份數(shù)據(jù)linuxsir.tar.bz2 到RAID1設(shè)備時,其實是向RAID的每個成員都寫了一份。比如RAID1設(shè)備下有兩個成員/dev/sdb和/dev/sdc ,我們寫入linuxsir.tar.bz2 到RAID1時,/dev/sdb和/dev/sdc都有一份完整的linuxsir.tar.bz2。 所以RAID1是冗余的陣列,一般被用于安全性要求比較高的應(yīng)用中。

因為RAID1在由于鏡像冗余,所以磁盤利用效率并不高,或者說是“浪費”。這種方案相對來說性價比并不高,一般很少應(yīng)用。數(shù)據(jù)讀寫效率要比RAID0慢。

安全性:RAID1 中只要有一個成員是健康的,RAID1完全可以激活,而且數(shù)據(jù)絕對是完整安全的。如果所有的成員有故障,RAID1也就報廢了。哈哈,這不是廢話嗎?


1.23 什么是軟RAID5及特點;

軟RAID5也是冗余安全的,RAID5是把至少三個硬盤或分區(qū)通過軟件虛擬成為一個大的存儲設(shè)備。在容量上是(n-1)x單個硬盤(分區(qū))容量 ,比如我們用三塊80G硬盤做成RAID5,容量就是兩塊容量的和160G。在寫入上,數(shù)據(jù)被分拆成若干份,分別向RAID5的每個成員下寫入。比如把linuxsir.tar.bz2寫入RAID5時, 要先把linuxsir.tar.bz2分拆成若干份,分別寫入RAID5成員中。因為涉及到冗余,所以數(shù)據(jù)在讀入速度上并不是很快,沒辦法和RAID0相比,但RAID5的寫入數(shù)據(jù)速度沒有RAID1和RAID0快,也沒有不做RAID的磁盤寫入速度要快;

因為RAID5在容量損失比較小,有冗余安全保障,另外寫入速度比較快,從整體上來看,性價比比較高,所以被大范圍內(nèi)采用;

安全性:當(dāng)RAID5中的成員中有一個發(fā)生故障時,RAID5一樣能啟動和正常運行,只要n-1(注n>3)塊硬盤或分區(qū)的不出故障,RAID5上的數(shù)據(jù)就是安全,對于一個文件存到RAID5設(shè)備中,只有成員是n-1(注n>3)無故障時,這份文件才是完整的。 比如RAID5有四個硬盤(或分區(qū))做的,當(dāng)一個硬盤或分區(qū)掛掉了,并不影響整個RAID5上數(shù)據(jù)的完整性和安全性。


1.24 什么是軟RAID10及特點;

軟RAID10也是冗余安全陣列,是RAID0+1的集成,RAID10是把至少四個硬盤或分區(qū)通過軟件虛擬成為一個大的存儲設(shè)備。在容量是:n/2x單個硬盤(分區(qū))容量 ,比如我們用四塊80G硬盤做成RAID5,容量就是兩塊容量的和4/2x80=160G。做RAID10所需要的硬盤或分區(qū)個數(shù)是偶數(shù)的。

RAID10,有RAID1的鏡像特點,還有RAID0的速度??梢赃@么理解RAID10,比如有四個硬盤做成的RAID10,過程是先把每兩個硬盤做成RAID1,然后再兩個RAID1的基礎(chǔ)上再做成RAID0。從理論上來說,RAID10應(yīng)該繼承RAID0的速度和RAID1的冗余安全。但經(jīng)過我在軟RAID0、RAID1、RAID5、RAID10的測試過程中發(fā)現(xiàn)RAID10的寫入速度是最慢的,測試方法是用超過1G的大文件幾盤復(fù)制。結(jié)果發(fā)現(xiàn)速度由高低的順序是:RAID0> 不做RAID>RAID1>RAID5>RAID10


2 在Linux中,軟RAID的創(chuàng)建和管理;

在Linux中,軟RAID是通mdadm來創(chuàng)建和管理的,mdadm 是一個專用創(chuàng)建和管理RAID的軟件,在Linux中,大多發(fā)行版本已經(jīng)默認(rèn)安裝,mdadm能創(chuàng)建任何級別的軟RAID;

在本節(jié)中,RAID創(chuàng)建并不是目的,我們還要查看學(xué)會RAID的狀態(tài),啟動、停止RAID。還要學(xué)會使用RAID。所以RAID的使用應(yīng)該包括創(chuàng)建、管理和使用。 RAID的使用就是在RAID設(shè)備上創(chuàng)建文件系統(tǒng),然后供存儲應(yīng)用;

流程是:

[RAID創(chuàng)建]->[RAID管理]->[RAID的使用]
|
[RAID的維護(hù)]


2.1 RAID的創(chuàng)建方法;

創(chuàng)建RAID有兩個方法 ,

第一種方法 :用mdadm 通過-C或--create 參數(shù)來創(chuàng)建RAID。這種方法 ,是把RAID信息寫到每個RAID成員的 superblocks(超級塊)中,在每個RAID成員的超級塊中,都會記錄RAID的級別、成員、RAID的UUID等…… 這種方法把RAID的信息記錄在各個成員的 superblocks(超級塊)中。這種方法對于重裝系統(tǒng)或系統(tǒng)發(fā)生災(zāi)難來來說,有利于現(xiàn)有RAID的恢復(fù);這種方法是最常用的;

第二種方法:用mdadm 通過-B或--build 參數(shù)來創(chuàng)建RAID。這種方法并不把RAID的信息寫入RAID成員的 superblocks(超級塊中),所以我們無法通過查看RAID成員信息來獲得RAID的級別,以及RAID的成員等;這種方法對于重裝系統(tǒng)或系統(tǒng)發(fā)生災(zāi)難來來說,不利于現(xiàn)有RAID的恢復(fù);如果你想用第二種方法來創(chuàng)建RAID,可以在下面的語法中,把-C或--create 換成 -B或--build 。


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

mdadm --create --verbose /dev/mdX --level=Y --RAID-devices=Z RAID成員

注:

-C 是--create 的縮寫,表示創(chuàng)建的意思;這種方法是創(chuàng)建把RAID信息寫入每個RAID成員superblocks(超級塊)的方法。這是最常用的方法。
-v 和--verbose, 顯示創(chuàng)建過程中詳細(xì)的事件;

如果把-C或--create 換成-B或--build,就是創(chuàng)建RAID的另一種方法,不把RAID信息寫入RAID成員的superblocks(超級塊)中,如果您試用,請自己嘗試;

RAID設(shè)備: /dev/mdX,RAID設(shè)備在Linux中,大多是/dev/md0,/dev/md1…… 第一個設(shè)備從/dev/md0開始。 比如你已經(jīng)有RAID0設(shè)備是/dev/md0,你再想做一個RAID5,那就是/dev/md1,以此類推;

RAID級別 : 用-lY或--level=Y表示,Y是RAID的級別。RAID的級別有RAID0就用0表示,RAID1就用1表示,RAID5就用RAID5表示,RAID10就用10表示。RAID的級別是根據(jù)自己的使用方向和現(xiàn)有磁盤和分區(qū)個數(shù)來定位。如果你就想高速讀寫、大容量,對數(shù)據(jù)安全性要求不高,那就用RAID0,如果對數(shù)據(jù)要求較高,可以用RAID1或RAID5,再者就是RAID10。比如-l0或--level=0表示RAID0,-l5或--level=5表示RAID5, -l1或--level=1表示RAID1,-l10或--level=10表示RAID10;

-nZ或--RAID-devices=Z 表示RAID成員的個數(shù),比如我們把三個硬盤分分區(qū)做成一個RAID,那就是3個設(shè)備。就要寫成這樣 -n3或 --RAID-devices=3;值得注意的是RAID0和RAID1至少需要兩個設(shè)置,RAID5至少需要三個設(shè)備,RAID10至少四個設(shè)備;

RAID成員:也就是RAID的組成設(shè)備,要一個一個的列出來,每個設(shè)備后要用空格來隔開;比如我們把/dev/sdb、/dev/sdc、/dev/sdd三個硬盤做成RAID0,在RAID設(shè)備這塊,我們要寫成 /dev/sdb /dev/sdc /dev/sdd ; 軟件RAID的成員還可以是分區(qū),比如 /dev/sdb1、/dev/sdc1 ……

舉例一:我們要做一個RAID0,成員是 /dev/sdb、/dev/sdc 兩個硬盤設(shè)備。 我們要運行如下命令;

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三個分區(qū)做成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 三個設(shè)備,我們要運行如下命令;

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三個分區(qū)做成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

創(chuàng)建完成后,RAID也就立即啟動了。我們會發(fā)現(xiàn)有類似如下一行的提示信息:

mdadm: array /dev/md0 started.

我們要可以通過下面的命令來查看RAID的信息;

mdadm -Ds /dev/md0
mdadm -D /dev/md0


2.2 RAID管理工具;

RAID的管理包括創(chuàng)建、啟動、狀態(tài)查看等一系列工具;我們只說常用的使用方法;


2.21 RAID的啟動方法;

RAID的啟動有兩種方法,一種是指定RAID設(shè)備和RAID成員的辦法來啟動RAID,另一種辦法是通過加載RAID默認(rèn)的配置文件來啟動。


第一種方法:不通過讀取mdadm.conf來啟動RAID;適用情況是你沒有配置 /etc/mdadm.conf 文件;

語法:
mdadm -A RAID設(shè)備 RAID成員

注:

-A 同 --assemble ,意思是激活一個已經(jīng)存在的RAID;
RAID設(shè)備 ,就是/dev/md0 或/dev/md1 …… 根據(jù)你所創(chuàng)建的RAID設(shè)備為準(zhǔn);
RAID成員,就是你要啟動的RAID,其下屬設(shè)備有哪些,要一個一個的列出來,中間以空格分開;

舉例:比如我要啟動一個RAID,設(shè)備是/dev/md0,其下有成員是 /dev/sdb和/dev/sdc;所以我要用下面的辦法;

[root@linuxsir:~] mdadm -A /dev/md0 /dev/sdb /dev/sdc

注: 這種情況,是沒有配置RAID的配置文件/etc/mdadm.conf 時,所使用的啟動方法;如果您已經(jīng)配置好了/etc/mdadm.conf文件,就可以用 mdadm -As 來啟動;


第二種方法:利用配置好的/etc/mdadm.conf 來啟動RAID;

mdadm -A RAID設(shè)備

mdadm -As

注: 這種啟動方法的前提是要配置 /etc/mdadm.conf文件,要把您系統(tǒng)中所有的RAID,都寫入這個文件,然后就可以簡單的用這個命令來啟動了;

-A 同 --assemble ,意思是激活一個已經(jīng)存在的RAID;
RAID設(shè)備 ,就是/dev/md0 或/dev/md1 …… 根據(jù)你所創(chuàng)建的RAID設(shè)備為準(zhǔn);


舉例:

[root@linuxsir:~] mdadm -A /dev/md0
[root@linuxsir:~] mdadm -As

注: 比如我配置好/etc/mdadm.conf 后,啟動RAID設(shè)備/dev/md0,就用上面的辦法。具體mdadm.conf的寫法,請參見 RAID的配置文件一節(jié);


2.22 RAID管理工具一些常用參數(shù)說明;

mdadm 參數(shù) [RAID設(shè)備] [RAID成員]

-A 或 --assemble 激活一個RAID;
-S 和--stop 停止正在運行的設(shè)備;
-s 或 --scan 掃描RAID設(shè)備;
-D 或 --detail 查看RAID的詳細(xì)信息;
--examine 查看RAID成員的詳細(xì)信息;

注:其中[]中的選項是可選的。

舉例:

[root@linuxsir:~]# mdadm -As
[root@linuxsir:~]# mdadm -Ss
[root@linuxsir:~]# mdadm -Ds
[root@linuxsir:~]# mdadm --examine /dev/sdb

注:上面的些標(biāo)例, 都是在配置好/etc/mdadm.conf 的情況下,運行的,如果您沒配置好mdadm.conf文件,請指定RAID設(shè)備及其成員;其中,--As 是搜索/etc/mdadm.conf ,然后根據(jù) mdadm.conf 配置好的RAID信息來啟動RAID。 -Ss 是搜索正在運行的RAID,然后停止。-Ds 搜索RAID,查看RAID信息; --examine /dev/sdb 是查看其中一塊硬盤的RAID信息,這個很有用。比如你忘記了RAID的成員和UUID,想恢復(fù)現(xiàn)有的RAID,就要用這個來查看,然后重新讓RAID啟動起來。

比如系統(tǒng)有一個RAID,但在/etc/mdadm.conf 中沒有相應(yīng)的記錄RAID信息。我不知道這個RAID是哪個類型的,是RAID0,還是RAID1,還是RAID5??到底機(jī)器中有幾個RAID?如果您是一個新接手的管理員,應(yīng)該想知道這些信息。那就一個一個硬盤,一個一個的分區(qū)查看過去。從中找出系統(tǒng)中所有的RAID。然后一個一個的恢復(fù)。這時就要用到 --examine這個參數(shù)了;

[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 查看一下機(jī)器中所有硬盤和分區(qū),如果不能完全列出,請指定具體硬盤。
其次:我們查看一下某個硬盤或分區(qū)上是否有RAID信息,比如我查看的是/dev/sdb ,結(jié)果顯示出,/dev/sdb是RAID0設(shè)備的一個成員,/dev/sdb和/dev/sdc 共同組成的RAID0;

得到這些信息有何用呢?我們就可以激活RAID,或重寫/etc/mdadm.conf ,讓RAID重新運行起來。在此過程中, 千萬不要用-C或--create 參數(shù)來重新創(chuàng)建RAID,否則你以前存在的RAID就被破壞,里面的數(shù)據(jù)當(dāng)然也會一無所有?。?!切記。在一個有數(shù)據(jù)的RAID中,不能隨便用-C 參數(shù)。如果用了-C或--create 就是創(chuàng)建一個新的RAID設(shè)備!


看完上述內(nèi)容,你們對怎么在linux中配置raid有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI