磁盤陣列(Redundant Arrays of Independent Disks,RAID):(廉價冗餘磁盤陣列):多個磁盤組合成的一種形式,以提高磁盤的讀寫速度,可靠性。面試
RAID的建立有兩種方式:軟RAID,硬RAIDcentos
RAID幾種常見的類型安全
RAID類型服務器 |
|
最低磁盤個數併發 |
空間利用率app |
各自的優缺點post |
級 別性能 |
說 明centos7 |
|
|
|
RAID0spa |
條帶卷 |
2+ |
100% |
讀寫速度快,不容錯 |
RAID1 |
鏡像卷 |
2 |
50% |
讀寫速度通常,容錯 |
RAID5 |
帶奇偶校驗的條帶卷 |
3+ |
(n-1)/n |
讀寫速度快,容錯,容許壞一塊盤 |
RAID10 |
RAID1的安全+RAID0的高速 |
4 |
50% |
讀寫速度快,容錯 |
鏡像:提供了數據的安全性;
條帶(塊大小也能夠說是條帶的粒度),它的存在的就是提供了數據併發性
數據的校驗:提供了數據的安全
RAID-0的工做原理
條帶 (strping),也是咱們最先出現的RAID模式
需磁盤數量:2塊以上(大小最好相同),是組建磁盤陣列中最簡單的一種形式,只須要2塊以上的硬盤便可.
特色:成本低,能夠提升整個磁盤的性能。RAID 0沒有提供冗餘或錯誤修復能力,速度快.
任何一個磁盤的損壞將損壞所有數據;磁盤利用率爲100%。
RAID-1的工做原理
mirroring(鏡像卷),須要磁盤兩塊以上
原理: 是把一個磁盤的數據鏡像到另外一個磁盤上,也就是說數據在寫入一塊磁盤的同時,會在另外一塊閒置的磁盤上生成鏡像文件,(同步)
特色: RAID 1 mirroring(鏡像卷),至少須要兩塊硬盤
磁盤利用率爲50%,即2塊100G的磁盤構成RAID1只能提供100G的可用空間。以下圖
RAID-5
須要三塊或以上硬盤,能夠提供熱備盤實現故障的恢復;只損壞一塊,沒有問題。但若是同時損壞兩塊磁盤,則數據將都會損壞。 空間利用率: (n-1)/n 2/3 以下圖所示
奇偶校驗信息的做用:
當RAID5的一個磁盤數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
擴展:異或運算
所謂的「奇偶校驗」能夠簡單理解爲二進制運算中的「異或運算」,一般用 xor 標識。
最左邊的是原始數據,右邊分別是三塊硬盤,假設第二塊硬盤出了故障,經過第一塊硬盤上的 1 和第三塊硬盤上的 1 xor 2,就可以還原出 2。同理能夠還原出 3 和 8。至於 5 xor 6 則更簡單了,直接用 5 和 6 運算出來便可。
一句話解釋 raid 5 的數據恢復原理就是:都是用公式算出來的。
嵌套RAID級別
RAID-10鏡像+條帶
RAID 10是將鏡像和條帶進行兩級組合的RAID級別,第一級是RAID1鏡像對,第二級爲RAID 0。
通常兩種處理方法:熱備和熱插拔
熱備:HotSpare
定義:當冗餘的RAID組中某個硬盤失效時,在不干擾當前RAID系統的正常使用的狀況下,用RAID系統中另一個正常的備用硬盤自動頂替失效硬盤,及時保證RAID系統的冗餘性
熱插拔:HotSwap
定義:在不影響系統正常運轉的狀況下,用正常的物理硬盤替換RAID系統中失效硬盤。
全局式:備用硬盤爲系統中全部的冗餘RAID組共享
專用式:備用硬盤爲系統中某一組冗餘RAID組專用
以下圖所示:是一個全局熱備的示例,該熱備盤由系統中兩個RAID組共享,可自動頂替任何一個RAID中的一個失效硬盤
RAID的實現方式
面試題:咱們作硬件RAID,是在裝系統前仍是以後?
答:先作陣列才裝系統 ,通常服務器啓動時,有顯示進入配置Riad的提示。
硬RAID:須要RAID卡,咱們的磁盤是接在RAID卡的,由它統一管理和控制。數據也由它來進行分配和維護;它有本身的cpu,處理速度快
軟RAID:經過操做系統實現
mdadm命令常見參數解釋:
參數 |
做用 |
-a |
檢測設備名稱 添加磁盤 |
-n |
指定設備數量 |
-l |
指定RAID級別 |
-C |
建立 |
-v |
顯示過程 |
-f |
模擬設備損壞 |
-r |
移除設備 |
-Q |
查看摘要信息 |
-D |
查看詳細信息 |
-S |
中止RAID磁盤陣列 |
1.新添加4塊硬盤
第一步:查看磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
第二步:下載mdadm
[root@ken ~]# yum install mdadm -y
第三步:建立raid10陣列
[root@ken ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd{b,c,d,e}
-C:建立
V:顯示過程
-a:檢測設備名稱添加磁盤
-n:指定設備數量
-l:指定RAID級別
第四步:格式磁盤陣列爲xfs
[root@ken ~]# mkfs.xfs /dev/md0
mapper/ mcelog md0 mem midi mqueue/
第五步:掛載
[root@ken ~]# mkdir /raid10
[root@ken ~]# mount /dev/md0 /raid10
[root@ken ~]# df -h
第六步:查看/dev/md0的詳細信息m
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
第七步:寫入到配置文件中
[root@ken ~]# echo "/dev/md0 /raid10 ext4 defaults 0 0" >> /etc/fstab
-D:查看詳細信息
第一步:模擬設備損壞
[root@ken ~]# mdadm /dev/md0 -f /dev/sdb
-f: 模擬設備損壞
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
-D:查看詳細信息
第二步:添加新的磁盤
[root@ken ~]# reboot
[root@ken ~]# umount /raid10
[root@ken ~]# mdadm /dev/md0 -a /dev/sdb
*-a:檢測設備名稱,添加磁盤
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
-D:查看詳細信息
再次查看發現已經構建完畢
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
第一步:查看磁盤
[root@ken ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
第二步:建立RAID5陣列
[root@ken ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd{b,c,d,e}
第三步:格式化爲xfs
[root@ken ~]# mkfs.xfs /dev/md0
第四步:掛載
[root@ken ~]# mount /dev/md0 /raid5
[root@ken ~]# df -h
第五步:查看陣列信息
能夠發現有一個備份盤/dev/sde
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
第六步:模擬/dev/sdb磁盤損壞
能夠發現/dev/sde備份盤當即開始構建
[root@ken ~]# mdadm /dev/md0 -f /dev/sdb
[root@ken ~]# mdadm -D /dev/md0/dev/md0:
1.uefi或BIOS初始化,開始開機自檢post(power on self test)(自檢磁盤、CPU、內存)
2.加載MBR到內存(引導程序)
3.GRUB階段(加載操做系統)
4.加載內核和initramfs模塊(內核和虛擬內存)
5.內核開始初始化,使用systemd來代替centos6之前的init程序