【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式

計算機和網絡技術的高速發展對存儲性能和數據可靠性的要求不斷提高。在企業環境中,當公司服務器同時有3000+的用戶同時訪問時,並且用戶同時進行不同的文件讀寫的操作時,單個硬盤的讀寫性能有限,容易出現性能瓶頸。常見的並行接口硬盤中如早期的IDE硬盤最高只到達133Mbps,SCSI小型計算機系統接口硬盤的最高傳輸速率是320Mbps,目前主流的串行接口硬盤SATA接口硬盤中SATA1傳輸速率是300Mbps,SATA2傳輸速率是600Mbps,目前SATA3接口最高可以到達6Gbps。爲了解決性能問題,早期使用SLED技術即Single Large Expensive Disk,但是由於價格昂貴,在企業中無法大面積應用。1987年美國加州大學伯克利分校Patterson,Gibson和Katz發表了一篇論文《A Case for Redundant Arrays of Inexpensive Disks(RAID)》,自此廉價磁盤冗餘陣列的概念產生,但是在企業的實際應用中發現這種技術還是需要花費大量金錢支持,所以更名爲Redundant Arrays of Independent Disks即獨立磁盤冗餘陣列。
【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式
【1】RAID的優勢:
RAID在容量和管理上的優勢
易於靈活的進行容量擴展
“虛擬化”使可管理性極大地增強
RAID在性能上的優勢
“磁盤分塊”技術帶來性能的提高
RAID在可靠性和可用性上的優勢
通過冗餘技術和熱備、熱換提升了可靠性
【2】鏡像冗餘的概念:
鏡像冗餘使用了磁盤鏡像技術;
磁盤鏡像是一個簡單的設備虛擬化技術,每個I/O操作都會在兩個磁盤上執行,兩個磁盤看起來就像一個磁盤一樣;
鏡像冗餘可以提高磁盤的讀性能。
【3】校驗冗餘的概念:
根據冗餘算法計算陣列中成員磁盤上數據的校驗信息,將校驗信息保存在其他磁盤資源上;
保證數據可靠性;
和鏡像冗餘相比較,校驗冗餘的開銷更小。
【4】RAID級別:
不同的RAID級別代表不同的存儲性能,不同的數據可靠性,不同的存儲成本
RAID0的工作原理:
RAID0是以條帶的形式將數據均勻的分佈在陣列的各個磁盤上,數據存儲單位是CHUNK(條帶),默認大小是64K。
性能表現:讀寫性能均提升
冗餘能力:無
空間利用率:100%
至少2塊磁盤
【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式
RAID1的工作原理:
RAID1以鏡像爲冗餘方式,對虛擬磁盤上的數據做多份的拷貝,放在成員磁盤上。
性能表現:寫性能下降,讀性能提升
冗餘能力:有
空間利用率:50%
至少2塊磁盤
【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式
RAID5的工作原理:
RAID5採用獨立存取的陣列方式,校驗信息被均勻的分散在磁盤的各個磁盤上。
性能表現:讀寫性能均提升
冗餘能力:有
空間利用率:(n-1)/n
至少3塊磁盤
【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式
RAID10的工作原理:
RAID10採用先鏡像,後條帶化的方式組織陣列。
性能表現:讀寫性能均提升
冗餘能力:有
空間利用率:50%
至少4塊盤
【我的Linux,我做主!】獨立磁盤冗餘陣列RAID分級及實現方式
除此之外常用的還有RAID50,JBod兩種陣列,不常用的有RAID2、RAID3、RAID4等。
【5】RAID配置命令:
在企業中一般使用硬件RAID存儲數據,不過Linux系統本身也提供RAID能力,這裏我們以軟件RAID的實現方式做相關演示
創建一個2G的RAID0設備示例:
#fdisk /dev/sda
解釋:創建磁盤分區
n(新建分區)
+1G
n
+1G
t(調整分區類型)
5
fd(設置分區類型爲RAID類型)
t
6
fd
w(保存退出)
#partprobe /dev/sda
解釋:同步分區數據
#cat /proc/partitions
解釋:查看分區是否同步成功
#mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6}
解釋:-C表示進入創建模式,-a表示是否爲其自動創建設備文件,-n表示設備個數,-l表示設置的RAID的級別
#cat /proc/mdstat
解釋:查看當前系統所有啓用的設備
#mke2fs -j /dev/md0
解釋:高級格式化,將md0創建爲ext3類型的文件系統
#mount /dev/md0 /mnt
解釋:將RAID0掛載到/mnt的目錄中,就可以開始使用這個設備了
#cd /mnt
解釋:進入到/mnt的目錄下,如果有看到lost+found文件,說明掛載成功
創建一個2G的RAID1設備示例:
#fdisk /dev/sda
解釋:開始創建磁盤分區
n(新建)
+2G
n
+2G
n
+2G
t(調整類型)
7
fd(調整爲RAID類型)
t
8
fd
t
9
fd
w(保存退出)
#partprobe /dev/sda
解釋:同步磁盤分區信息
#cat /proc/partitions
#mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sda7 /dev/sda8
解釋:創建一個類型爲RAID1,自動創建設備文件,並且設備的個數爲2個的RAID1類型分區md1
#cat /proc/mastat
解釋:顯示當前系統所有啓用的設備
#mke2fs -j /dev/md1
解釋:高級格式化,將md1的文件系統類型設置爲ext3
#mount /dev/md1 /media
解釋:將md1的設備文件掛載到/media的目錄下
模擬RAID1設備磁盤損壞示例:
#cp /etc/inittab /media/
解釋:複製/etc下的一個文件到/media目錄下
#mdadm -D /dev/md1
解釋:查看RAID陣列的詳細信息
#mdadm /dev/md1 -f /dev/sda8
解釋:-f模擬磁盤損壞,將md1陣列中的sda8損壞
#mdadm /dev/md1 -r /dev/sda8
解釋:將陣列md1中的磁盤-r刪除
#mdadm /dev/md1 -a /dev/sda9
解釋:添加新的硬盤sda9,可以看到sda9裏信息會在一段時間後同步爲sda7的數據
#mdadm /dev/md1 -f /dev/sda7
解釋:將sda7磁盤模擬損壞
#umount /media
解釋:卸載/media文件目錄
#mdadm -S /dev/md1
解釋:停止md1陣列
#rm /dev/mad1
解釋:刪除md1陣列後就徹底消失了
#mdadm -A /dev/md1 /dev/sda7 /dev/sda9
解釋:重新裝配sda7和sda9磁盤,組成md1陣列,但是由於sda7是壞的,所以md1中只有一個sda9磁盤
模擬RAID1設備熱備、熱換示例:
此時md1中只有一個磁盤sda9
#mdadm /dev/md1 -a /dev/sda8
#mdadm /dev/md1 -a /dev/sda7
解釋:sda7進入陣列後顯示的是空閒磁盤的狀態
#mdadm /dev/md1 -f /dev/sda9
解釋:模擬損壞磁盤sda9,之後sda7磁盤會自動頂上sda9的位置
#watch 'cat /proc/mdstat'
解釋:週期性的執行指定命令,並以全屏方式顯示結果
自動裝配文件,無需指定磁盤:
#mdadm -D --scan > /etc/mdadm.conf
解釋:將當前RAID信息保存至配置文件,以便以後進行裝配
#mdadm -A /dev/md1
解釋:無需再指定具體磁盤如sda7、sda9等

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章