RAID磁盤陣列(Redundant Arrays of Inexpensive Disks,RAID)
RAID包含:RAID 0、RIAD 1、 RIAD 5、 RAID 1+0(也成RAID 10) 隻介紹常見的幾種企業會用得到的
RAID 0:又稱striping(資料分條技術),通過把連接配接的資料通路分散到多個磁盤上來提高存儲性能,這樣資料請求就可以被多個磁盤 并行的執行。可以并行的讀寫,提供最快的速度,單沒有備援的能力,至少要兩個磁盤,當其中的一個磁盤挂掉了,那整個資料就丢失了。可以用在隻追求速度,而不在乎資料安全的系統上面
RAID 1:又稱為Mirroring(鏡像方式),也就是資料的備援,把同樣的資料同時寫在硬碟中,用得到的容量為1/n,速度變慢,安全性提高,至少要兩塊磁盤,當磁盤壞掉一塊之後,可以通過相對應的磁盤來恢複,(但是不能兩個相對應的磁盤同時壞掉)我們也可以把 raid1了解為備份。
RAID 5:不對存儲的資料進行備份,而是把資料和相對應的奇偶校驗資訊存儲到組成RAID5的各個磁盤上,并且奇偶校驗資訊和相對應的資料分别存儲于不同的磁盤上,當RAID5的一個磁盤資料發送損壞後,利用生效的資料和相應的奇偶校驗資訊區回風被損壞的資料,至少要三塊硬碟,隻能壞一塊,磁盤的使用率為(n-1)/n,當RAID5壞掉一塊後,RAID就不能使用了,必須恢複之後 才能使用,RAID 5的讀出速度高,寫入的速度一般,raid5有容錯的方式(不是備援)。
RAID 1+0(10):是RAID 0和RAID1的組合形式,繼承了RAID 0的速度,又有RAID 1的備援,但是浪費的空間比較大,使用的n/2,提供了安全性和速度,至少要用4塊硬碟磁盤數為雙數,存儲資料的時候,是先進行的RAID 1的方式,在進行RAID 0的方式,資料先并行的寫在一組磁盤,然後下一個資料在并行的寫到下一組磁盤中,可以同時壞掉RAID 1的盤。raid1+0首先創 建2個獨立的Raid1,然後将這兩個獨立的Raid1組成一個Raid0。
說明:RAID分為軟RAID和硬體RAID
硬體RAID:
硬體RAID的實作,看你主機闆,如果主機闆支援RAID那直接省事,不支援RAID,那直接買RAID卡做RAID。
在主機闆設定開啟raid。按照步驟提示建立
軟體RAID:
是基于系統的軟體工作不穩定,如果系統壞了,RAID整列也就損壞,容易造成資料丢失
下面我們要講的基于LINUX系統的軟體RAID
在LINUX下管理RAID陣列的工具是mdadm工具
mdadm程式是一個獨立的程式,能完成所有的軟RAID管理功能
主要有7 種使用模式:
Create 使用空閑的裝置建立一個新的陣列,每個裝置具有中繼資料塊
Assemble 将原來屬于一個陣列的每個塊裝置組裝為陣列
Build 建立或組裝不需要中繼資料的陣列,每個裝置沒有中繼資料塊
Manage 管理已經存儲陣列中的裝置,比如增加熱備磁盤或者設定某個磁盤失效,然後從陣列中删除這個
磁盤
Misc 報告或者修改陣列中相關裝置的資訊,比如查詢陣列或者裝置的狀态資訊
Grow 改變陣列中每個裝置被使用的容量或陣列中的裝置的數目
Monitor 監控一個或多個陣列,上報指定的事件
由于這個工具太強大,不能一一為大家講解
我們今天主要講建立任意級别的RAID,和如何删除這個RAID
至于管理就隻有您自己下來找資料研究了
往往廉價的東西,用的人都多
RAID分區的ID是fd
建立RAID的流程:
RAID建立----->RAID管理----->RAID的使用----->RAID的維護
RAID裝置的成員是硬碟的分區,需要先對硬碟格式化,做RAID的效果是用不同的硬碟的分區來做RAID
1、先添加硬碟
我在已有一塊硬碟的基礎上面添加4塊20G的SATA,sdb,sdc,sdd,sde
在對新添加的硬碟進行分區
sdb:sdb1--->10G sdb2--->10G
sdc:sdc1--->10G sdc2--->4G sdc3--->4G sdc4--->2G
sdd:sdd1--->10G sdd2--->4G sdd3--->4G sdd5--->2G
sde:sde1--->10G sde2--->4G sde3--->4G sde5--->1G sde6--->1G
輸入指令 :
fdisk /dev/sdb(對那塊硬碟操作就寫那塊硬碟)
d delete a partition //删除一個分區
l list known partition types //已知的分區類型清單
m print this menu
n add a new partition //添加一個新的分區
o create a new empty DOS partition table
p print the partition table //列印分區表
q quit without saving changes //退出但不儲存配置
s create a new empty Sun disklabel
t change a partition's system id //改變一個分區的系統辨別
u change display/entry units //改變顯示/條目機關
v verify the partition table //驗證分區表
w write table to disk and exit //儲存
此時作業系統并不知道已經有新的分區了,是以需要探測一下分區的變化
指令partprobe
具體怎麼分區,這裡不再累贅
2、建立raid
RAID 0的建立:空間使用率100%,沒有容錯能力,其中一個磁盤損壞,那麼資料全部丢失,并行的寫到不同的磁盤特點速度快,不安全
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdc4 /dev/sdd5 (把分區中的兩個2G做raid0)
RAID 1的建立:空間使用率50%,容錯能力最強,其中一個磁盤損壞,在另外一個磁盤上有完整的資料
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc2 /dev/sdd2
mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1 /dev/sdc3 /dev/sdd3 /dev/sde3(建立帶熱備的raid1)
如果沒有建立帶熱備的raid,當raid的其中一個分區壞掉之後解決的方法:
模拟分區壞掉: mdadm /dev/md1 -f /dev/sdc2
分區壞掉之後馬上移出去: mdadm /dev/md1 -r /dev/sdc2
把新的分區添加到raid中: mdadm /dev/md1 -a /dev/sde2
如果建立熱備的raid,那隻需要把壞掉的分區移出即可,raid1需要兩個分區,熱備也需要一個分區 ,當壞掉一個分區後。熱備分區會立即從spare狀态變為active狀态
RAID 5的建立:空間使用率n-1/n,是保證速度和容錯能力的折中方案,隻允許一個磁盤的資料損壞,超過1個磁盤損壞,資料丢失。
mdadm -C /dev/md5 -a yes -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1(建立帶熱備的raid5)
RAID 10的建立:
mdadm -C /dev/md0 -l1 -n2 -x1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm -C /dev/md1 -l1 -n2 -x1 /dev/sdb2 /dev/sdc2 /dev/sdd2
mdadm -C /dev/md2 -l1 -n2 -x1 /dev/sdb3 /dev/sdc3 /dev/sdd3
mdadm -C /dev/md3 -l0 -n3 -x1 /dev/md0 /dev/md1 /dev/md2
參數解釋:
-C 代表建立
-l 代表建立的級别
-n 代表活動的分區,也就是你要給這個級别多少個分區
-x 就是熱備份的分區
mdadm的相關指令:mdadm -D /dev/md0 (檢視raid的詳細資訊) -f是删除 -r是移出 -a是添加 -S停用
使軟RAID永久生效
mdadm -D -s >> /etc/mdadm.conf
3、把建立的raid格式化(分區隻有格式化了才能使用)
mkfs -t ext3[ext4] /dev/md0
4、把raid挂載
mount /dev/md0 /data/raid0
實作開機挂載
echo "/dev/md0 /data/raid0 ext4 defaults 0 0" >> /etc/fstab
也可以把/dev/md0改成相應的UUID号 /dev/md0 <------> UUID= 26c7f009-f2280f44-69cea438-3125d40a
5、解除安裝raid
先卸掉挂載umount---->在停用raid mdamd -S /dev/md0---->使用超級塊覆寫raid資訊----->mdamd --zero-superblock /dev/sdb1 /dev/sdc1 /dev/sdd1------>在用fdisk 删除分區
建立:
RAID 0
空間使用率100%,沒有容錯能力,其中一個磁盤損壞,那麼資料全部丢失
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb1 /dev/sdc1
RAID 1(帶熱備盤)
空間使用率50%,容錯能力最強,其中一個磁盤損壞,在另外一個磁盤上有完整的資料
mdadm -C /dev/md1 -a yes -l 1 -n 2 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1
RAID 5(帶熱備盤)
空間使用率n-1/n,是保證速度和容錯能力的折中方案,隻允許一個磁盤的資料損壞,超過1個磁盤損壞,資料丢失。
mdadm -C /dev/md5 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
檢視:
mdadm --detail
mdadm -D -s
模拟容錯實驗,以RAID5示例:
破壞一個磁盤
mdadm /dev/md5 -f /dev/sdb1
移除損壞的磁盤
mdadm /dev/md5 -r /dev/sdb1
添加新磁盤
mdadm /dev/md5 -a /dev/sde1
線上添加硬碟或者錄音帶機:
第一步:将新硬碟或者錄音帶機做好實體連接配接;
第二步:在Linux系統中以root使用者運作指令:
echo "scsi add-single-device x y z u" >> /proc/scsi/scsi
其中:
x是硬碟或者錄音帶機所在SCSI控制器号;
y是硬碟或者錄音帶機所在SCSI通道的編号;
z是硬碟或者錄音帶機的SCSI ID号;
u是硬碟或者錄音帶機的lun号預設情況都是0
如果x y z參數不正确,系統是不能識别添加的硬碟和錄音帶機的可以通過 cat /proc/SCSI/SCSI指令來核實是否添加成功。
移除硬碟或者錄音帶機:
第一步:在Linux系統中以root使用者運作指令:
echo “scsi remove-single-device x y z u”> /proc/scsi/scsi
x y z u的定義同上
第三步:實體上斷開硬碟或者錄音帶機連接配接。
建立以個RAID0裝置:
mdadm --create /dev/md0 --level=0 --chunk=32 --raid-devices=3 /dev/sd[i-k]1
建立以個RAID1裝置:
mdadm -C /dev/md0 -l1 -c128 -n2 -x1 /dev/sd[i-k]1
建立以個RAID5裝置:
mdadm -C /dev/md0 -l5 -n5 -x1 /dev/sd[c-g]1 /dev/sdb
建立以個RAID10裝置:
mdadm -C /dev/md0 -l10 -n6 -x1 /dev/sd[b-g]1 /dev/sdh
建立以個RAID1+0裝置:
1.安裝四塊磁盤 分區
rpm -vih mdadm-2.5.4-*
fdisk -l
fdisk /dev/sdb
n
p
t
fd
w
2.做raid5卷
mdadm -Cv /dev/md5 -a yes -n4 l5 /dev/sd[b-e]1
3.做lvm卷
partprobe
pvcreate /dev/md5
vgcreate yan /dev/md5
lvcreate -L 10G -n wei yan
mkfs -ext3 /dev/yan/wei
4.磁盤配額
mkdir /aaa
echo "/dev/yan/wei /aaa ext3 defaults,usrquota,grpquota 0 0" >> /etc/fstab
mount /dev/yan/wei /aaa
groupadd accp
useradd jerry
useradd -G accp tom
quotacheck -augcv
edquota -u tom
edquota -g accp
quotaon -ugv /aaa
本文轉自 jie783213507 51CTO部落格,原文連結:http://blog.51cto.com/litaotao/1187986,如需轉載請自行聯系原作者