RAID磁碟陣列的原理與RAID0搭建
還是慣例介紹一下RAID。
傳統硬碟由於工作原理的限制,在效能上的提升非常緩慢。而固態硬碟價格昂貴,短時間內難以被普通使用者接受。因此採用兩塊或多塊硬碟組建RAID磁碟陣列也成為了目前比較有價效比的硬碟效能提升解決方案。兩塊硬碟組建RAID0磁碟陣列後在效能上相比之前會有33.3%~203%的效能提升。
獨立磁碟冗餘陣列(RAID,redundant array of independent disks)是把相同的資料儲存在多個硬碟的不同的地方(因此,冗餘地)的方法。通過把資料放在多個硬碟上,輸入輸出操作能以平衡的方式交疊,改良效能。因為多個硬碟增加了平均故障間隔時間(MTBF),儲存冗餘資料也增加了容錯。
磁碟陣列(Redundant Arrays of Independent Drives,RAID),有“獨立磁碟構成的具有冗餘能力的陣列”之意。
磁碟陣列是由很多價格較便宜的磁碟,組合成一個容量巨大的磁碟組,利用個別磁碟提供資料所產生加成效果提升整個磁碟系統效能。利用這項技術,將資料切割成許多區段,分別存放在各個硬碟上。磁碟陣列還能利用同位檢查(Parity Check)的觀念,在陣列中任意一個硬碟故障時,仍可讀出資料,在資料重構時,將資料經計算後重新置入新硬碟中。
優點
提高傳輸速率。RAID通過在多個磁碟上同時儲存和讀取資料來大幅提高儲存系統的資料吞吐量(Throughput)。在RAID中,可以讓很多磁碟驅動器同時傳輸資料,而這些磁碟驅動器在邏輯上又是一個磁碟驅動器,所以使用RAID可以達到單個磁碟驅動器幾倍、幾十倍甚至上百倍的速率。這也是RAID最初想要解決的問題。因為當時CPU的速度增長很快,而磁碟驅動器的資料傳輸速率無法大幅提高,所以需要有一種方案解決二者之間的矛盾。RAID最後成功了。
通過資料校驗提供容錯功能。普通磁碟驅動器無法提供容錯功能,如果不包括寫在磁碟上的CRC(迴圈冗餘校驗)碼的話。RAID容錯是建立在每個磁碟驅動器的硬體容錯功能之上的,所以它提供更高的安全性。在很多RAID模式中都有較為完備的相互校驗/恢復的措施,甚至是直接相互的映象備份,從而大大提高了RAID系統的容錯度,提高了系統的穩定冗餘性。
缺點
RAID0沒有冗餘功能,如果一個磁碟(物理)損壞,則所有的資料都無法使用。
RAID1磁碟的利用率最高只能達到50%(使用兩塊盤的情況下),是所有RAID級別中最低的。
RAID0+1以理解為是RAID 0和RAID 1的折中方案。RAID 0+1可以為系統提供資料安全保障,但保障程度要比 Mirror低而磁碟空間利用率要比Mirror高。
RAID級別:
· RAID0 = 條帶化
· RAID1 = 映象
· RAID5 = 單磁碟分散式奇偶校驗
· RAID6 = 雙磁碟分散式奇偶校驗
· RAID10 = 映象 + 條帶
RAID概念:
1.校驗方式用在 RAID 重建中從校驗所儲存的資訊中重新生成丟失的內容。 RAID 5,RAID 6 基於校驗。
2.條帶化是將切片資料隨機儲存到多個磁碟。它不會在單個磁碟中儲存完整的資料。如果我們使用2個磁碟,則每個磁碟儲存我們的一半資料。
3.映象被用於 RAID 1 和 RAID 10。映象會自動備份資料。在 RAID 1 中,它會儲存相同的內容到其他盤上。
4.熱備份只是我們的伺服器上的一個備用驅動器,它可以自動更換髮生故障的驅動器。在我們的陣列中,如果任何一個驅動器損壞,熱備份驅動器會自動用於重建 RAID。
5塊是 RAID 控制器每次讀寫資料時的最小單位,最小 4KB。通過定義塊大小,我們可以增加 I/O 效能。
準備工作
[[email protected] ~]# cat /etc/redhat-release #檢視系統版本
CentOS Linux release 7.2.1511 (Core)
[[email protected] ~]# uname -r #檢視系統核心版本
3.10.0-327.el7.x86_64
[[email protected] ~]# uname -m #檢視系統是否64位
x86_64
先做raid0的磁碟陣列
raid 0:條帶(strping)
需要兩塊或以上磁碟(最好大小相同)
原理:將資料分段後,分別傳輸到兩塊磁碟中。
提高的寫入和讀取的速度(即搬運工,原來一個人搬,現在多了一個人,所以速度成倍增加)但是由此,每一個磁碟的資料都是很重要的,不能損壞。
特點:成本低、提高整個磁碟效能和吞吐量,即速度快
缺點:沒有冗餘或錯誤修復能力
磁碟利用率:100%
任何一個磁碟的損壞將損壞全部資料(分別儲存,均分)
首先我先新增兩塊5G的硬碟
[[email protected] ~]# ls /dev/sd{a,b,c} #看是否安裝上硬碟
[[email protected] ~]# lsblk -l #列出所有塊裝置
[[email protected] ~]# fdisk /dev/sdb #我們把b盤給進行分割槽
[[email protected] ~]# fdisk /dev/sdc #然後我們把c盤進行分割槽
[[email protected] ~]# ls /dev/sd #雙擊兩次Tab鍵就可以顯示
mdadm是一個用於建立、管理、監控RAID裝置的工具,它使用linux中的md驅動。
mdadm程式是一個獨立的程式,能完成所有軟體RAID的管理功能,主要有7中使用模式。
[[email protected] ~]# yum info mdadm #我們看一下可以安裝什麼版本的mdadm
[[email protected] ~]# yum install mdadm #安裝mdadm連續點選兩個Y
這種方法是把 RAID 資訊寫入 RAID 每個成員的 superblocks (超級塊)中的軟 RAID
[[email protected] ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
# -C 是--create 的縮寫,表示建立的意思;-v 是--verbose 的縮寫,顯示建立過程中詳細的事件;-l是級別0;-n代表了有2個裝置;
//DADAD:塊大小預設為512K
//DADADM:預設版本1.2元資料
//MADADM:陣列/DEV/M0啟動。
[[email protected] ~]# ll /dev/md0 #看一下有這麼目錄
[[email protected] ~]# mdadm -Ds #-s 或 --scan 掃描 RAID 裝置;-D 或 --detail 檢視 RAID 的詳細資訊
[[email protected] ~]# mdadm -D /dev/md0 #看一下md0的詳細資訊
[[email protected] ~]# mdadm -Ds > /etc/mdadm.conf #把查詢出來的 RAID 資訊寫到 mdadm.conf 中
[[email protected] ~]# lsblk -l
[[email protected] ~]# fdisk /dev/md0
[[email protected] ~]# mkfs.xfs /dev/md0p1 #對磁碟進行xfs格式
[[email protected] ~]# mkdir /mnt/md0 #建立掛載點
[[email protected] ~]# mount /dev/md0p1 /mnt/md0/ #掛載目錄
[[email protected] ~]# df -Th #檢視一下
[[email protected] ~]# blkid | grep md0 #blkid命令對查詢裝置上所採用檔案系統型別進行查詢。
[[email protected] ~]# vi /etc/fstab #設定開機自動掛載,在fstab這個目錄下可以按住Ctrl+Y鍵自動補全defaults和後面的,只能在這個目錄下才能用
[[email protected] ~]# mount -a #重新載入核心
RAID0的搭建完成!