RAID
Redundant Arrays of Inexpensive( Independent) Disks
多個(gè)磁盤合成一個(gè)“陣列”來(lái)提供更好的性能、冗余,或 者兩者都提供
RAID功能
提高IO能力:
磁盤并行讀寫
提高耐用性;
磁盤冗余來(lái)實(shí)現(xiàn)
級(jí)別:多塊磁盤組織在一起的工作方式有所不同
RAID實(shí)現(xiàn)的方式
外接式磁盤陣列:通過(guò)擴(kuò)展卡提供適配能力
內(nèi)接式RAID:主板集成RAID控制器(安裝OS前在BIOS里配置)
軟件RAID:通過(guò)OS實(shí)現(xiàn)
RAID級(jí)別
RAID-0:
條帶卷,strip
讀、寫性能提升胰苏;
可用空間:N*min(S1,S2,...)
無(wú)容錯(cuò)能力
最少磁盤數(shù):2, 2
RAID-1:
鏡像卷,mirror
讀性能提升醇疼、寫性能略有下降硕并;
可用空間:1*min(S1,S2,...) 有冗余能力
最少磁盤數(shù):2, 2N
RAID-4:
多塊數(shù)據(jù)盤異或運(yùn)算值,存于專用校驗(yàn)盤
RAID-5:
讀秧荆、寫性能提升
可用空間:(N-1)*min(S1,S2,...)
有容錯(cuò)能力:允許最多1塊磁盤損壞 最少磁盤數(shù):3, 3+
RAID-6:
讀倔毙、寫性能提升
可用空間:(N-2)*min(S1,S2,...)
有容錯(cuò)能力:允許最多2塊磁盤損壞 最少磁盤數(shù):4, 4+
RAID-10:
讀、寫性能提升
可用空間:N*min(S1,S2,...)/2
有容錯(cuò)能力:每組鏡像最多只能壞一塊 最少磁盤數(shù):4,4+
RAID-01乙濒、RAID-50
RAID7:
可以理解為一個(gè)獨(dú)立存儲(chǔ)計(jì)算機(jī)陕赃,自身帶有操作系統(tǒng)和管理工具,可以獨(dú)立運(yùn)行颁股,理論上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:將多塊磁盤的空間合并一個(gè)大的連續(xù)空間使用
可用空間:sum(S1,S2,...)
常用級(jí)別:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
軟件RAID
mdadm:為軟RAID提供管理界面
為空余磁盤添加冗余
結(jié)合內(nèi)核中的md(multi devices)
RAID設(shè)備可命名為/dev/md0凯正、/dev/md1、/dev/md2豌蟋、 /dev/md3等
軟件RAID的實(shí)現(xiàn)
mdadm:模式化的工具
命令的語(yǔ)法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID級(jí)別:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
[made]模式:
創(chuàng)建:-C
裝配: -A
監(jiān)控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意塊設(shè)備
-C: 創(chuàng)建模式
-n #: 使用#個(gè)塊設(shè)備來(lái)創(chuàng)建此RAID
-l #:指明要?jiǎng)?chuàng)建的RAID的級(jí)別
-a {yes|no}:自動(dòng)創(chuàng)建目標(biāo)RAID設(shè)備的設(shè)備文件
-c CHUNK_SIZE: 指明塊大小
-x #: 指明空閑盤的個(gè)數(shù)
-D:顯示raid的詳細(xì)信息;
mdadm -D /dev/md#
管理模式:
-f: 標(biāo)記指定磁盤為損壞
-a: 添加磁盤
-r: 移除磁盤
觀察md的狀態(tài):
cat /proc/mdstat
軟件RAID配置示例
使用mdadm創(chuàng)建并定義RAID設(shè)備:
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1
/dev/sdc1 /dev/sdd1 /dev/sde1
用文件系統(tǒng)對(duì)每個(gè)RAID設(shè)備進(jìn)行格式化:
#mke2fs -j /dev/md0
測(cè)試RAID設(shè)備
使用mdadm檢查RAID設(shè)備的狀況:
#mdadm --detail|D /dev/md0
增加新的成員:
#mdadm –G /dev/md0 –n4 -a /dev/sdf1
軟件RAID測(cè)試和修復(fù)
模擬磁盤故障:
mdadm /dev/md0 -f /dev/sda1
移除磁盤:
mdadm /dev/md0 –r /dev/sda1
從軟件RAID磁盤修復(fù)磁盤故障
? 替換出故障的磁盤然后開(kāi)機(jī)
? 在備用驅(qū)動(dòng)器上重建分區(qū)
? mdadm /dev/md0 -a /dev/sda1
mdadm桑滩、/proc/mdstat及系統(tǒng)日志信息
軟件RAID管理
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停止設(shè)備:mdadm –S /dev/md0
激活設(shè)備:mdadm –A –s /dev/md0 激活
強(qiáng)制啟動(dòng):mdadm –R /dev/md0
刪除raid信息:mdadm --zero-superblock /dev/sdb1
實(shí)驗(yàn):創(chuàng)建RAID5
實(shí)驗(yàn)環(huán)境
在centos7.3上梧疲,添加四塊硬盤,四塊硬盤分別提供10G的空間來(lái)創(chuàng)建可用空間為20G的RAID5設(shè)備(三塊活動(dòng)空間运准,一塊備用空間)幌氮,文件系統(tǒng)為ext4,開(kāi)機(jī)自動(dòng)掛載/mnt/md0目錄
實(shí)驗(yàn)步驟:
1胁澳、添加四塊硬盤(b,c,d,e)该互,四塊硬盤上分別劃分一個(gè)10G的分區(qū),配置如下圖
2、配置RAID5
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x1 /dev/sd{b1,c1,d1,e1}
3韭畸、查看raid狀態(tài)
mdadm -D /dev/md0
cat /proc/mdstat
4宇智、生成raid配置文件
mdadm -Ds /dev/md0 > /etc/mdadm.conf
5、創(chuàng)建文件系統(tǒng)
mkfs.ext4 /dev/md0
6胰丁、建立掛載
mkdir /mnt/md0
mount /dev/md0 /mnt/md0
7随橘、編寫/etc/fstab
vim /etc/fstab
UUID
實(shí)驗(yàn)結(jié)果測(cè)試:
寫速度:
dd if=/dev/zero of=/mnt/md0/c bs=1M count=1024
dd if=/dev/zero of=c bs=1M count=1024
讀速度:
dd if=/mnt/md0/c of=/dev/zero bs=1M count=1024
dd if=c of=/dev/zero bs=1M count=1024
由上可見(jiàn)使用RAID5的讀寫速度明顯提升
實(shí)驗(yàn)收尾工作
刪除RAID設(shè)備
1、取消掛載
umount /dev/md0
2锦庸、停止RAID設(shè)備
mdadm -S /dev/md0
3机蔗、刪除配置文件
rm /etc/mdadm.conf
4、VIM編輯/etc/fstab去掉mdadm配置選項(xiàng)
5、清除RAID設(shè)備上的RAID元數(shù)據(jù)
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1
mdadm --zero-superblock /dev/sdd1
mdadm --zero-superblock /dev/sde1
6萝嘁、重啟檢測(cè)系統(tǒng)中是否還存在RAID相關(guān)數(shù)據(jù)梆掸,若還存在,以上步驟再執(zhí)行一遍