RAID 概述
RAID即廉價冗餘磁碟陣列(RedundantArray of Inexpensive Disk)的簡稱,通過該技術可以將多個磁碟組成一個陣列整體,而應用時可以作為單個磁碟使用。RAID 磁碟陣列根據其使用的技術不同,可用於提高資料讀寫效率、提高資料冗餘(備份),當陣列中的一個磁碟發生故障時,可以通過校正資料從其他磁碟中進行恢複,大大增強了應用系統資料的讀寫效能及可靠性。
較常見的 RAID技術包括如下幾個層級:
RAID 0:最基本的一種陣列方式,通過簡單的將多個磁碟(最少2 塊)組成到一起,作為一個大磁碟使用。存取資料時,通過將資料分段同時寫入到不同的磁碟中,大大提高了效率。但是這種方式沒有資料冗餘,其中任何一個磁碟壞了以後,都可能導致資料丟失。
RAID 1:即磁碟鏡像技術,需要最少2 塊磁碟(磁碟利用率:1/n)。這種方式將資料同時寫入到陣列中的多塊磁碟中,不同磁碟中的資料互為鏡像。因此,其中任何一個磁碟壞了以後,資料不會丟失。
RAID 5:通過引入資料校正技術來保證資料的安全,需要最少 3 塊磁碟(磁碟利用率: n-1)。
這種方式並不使用固定的某塊磁碟存放校正資料,而是分段儲存在各個磁碟中。因此,其中任何一個磁碟壞了以後,也可以根據其他磁碟中的校正資料進行恢複。
由於 RAID5 陣列技術既通過資料冗餘增強了可靠性,又通過多塊磁碟同時寫入資料提高了效率,一直以來受到廣泛的應用。
未使用硬體磁碟卡方式實現的 RAID 技術,通常稱為軟 RAID 技術。本文將在 RHEL5 系統中,使用不同磁碟中的多個分區,配置實現 RAID 5磁碟陣列。
9.2 構建使用軟 RAID磁碟陣列
在 RHEL5 系統中,配置軟 RAID 陣列可以通過安裝 mdadm 軟體包實現。該軟體包一般為系統預設安裝,若檢查沒有安裝的話,從 RHEL5 系統光碟片中尋找安裝即可。
[root@localhost ~]# mount /dev/cdrom/media/cdrom/
mount: block device /dev/cdrom iswrite-protected, mounting read-only
[root@localhost ~]# rpm -ivh /media/cdrom/Server/mdadm-2.5.4-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:mdadm ########################################### [100%]
[root@localhost ~]# rpm -qi mdadm | grep"Summary"
Summary : mdadm 控制 Linux md 裝置 (軟體 RAID 陣列)
下面將以 RAID5磁碟陣列為例,講解軟磁碟陣列的配置使用方法。
準備用於 RAID陣列的分區
用於組成 RAID陣列的各個分區應該位於不同的磁碟裝置中,否則實用價值不大。各分區的容量最好也相同,必要時可以將整個硬碟劃分為一個分區。
為 Linux伺服器添加 4塊 SCSI 硬碟,並使用 fdisk 工具各劃分出一塊 2GB 的分區,依次為:
/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1。分區前請注意確保沒有別的程式正在使用對應的磁碟。下一小節中將以這 4 個分區為例(RAID 5需要至少 3 塊磁碟或分區)講解 RAID5 磁碟陣列的建立方法。
對於上述分區還應該將其類型 ID更改為“fd”,對應為“Linux raid autodetect”,表示支援用於 RAID磁碟陣列。
[root@localhost ~]# fdisk /dev/sdb
……
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-522, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK(1-522, default 522): +2048M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd(Linux raid autodetect)
Command (m for help): p
……
Device Boot Start End Blocks Id System
/dev/sdb1 1 250 2008093+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#