原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://lzysg172.blog.51cto.com/6624306/1153607
一、總線種類
IDE總線(並行):理論值133Mbps(兆位)
SATA(1、2、3)藉口(串行ATA):理論值分別是是300Mbps、600Mbps、6Gbps
USB (串行)3.0:理論值是4480Mbps
SCSI(small Computer SYstem Interface):小型計算機藉口 【傳輸速度比較快】 (並行總結) 【Ultra SCSI 320Mbps】
SCSI:8 ,7target(目標); 16,15target(目標)
SAS:(串行口的SCSI)串行附加存儲
二、SCSI與SAS比較:
端口 | 體積 | 容量 | 轉速 | |
SCSI | 並行 | 大 | 大 | 塊 |
SAS | 串行 | 小 | 小 | 慢 |
三、RAID由來
對於非常繁忙的服務器來說如果有很多用戶同時下載東西,而且並行下載,下載的還都不一樣,這意味着什麼?這意味着每秒鐘傳輸的數據塊量將會非常非常大的,那它的硬盤將會瘋狂的再轉,仍然滿足不了需求?這又是爲什麼呢?因爲我們整個存儲設備的速度太慢了。這我們該如何辦呢?這時我們應該找一個更快的有着更大的I/O設備,但是我們發現一個文件再強也不可能有那麼強的功能。如果我們將多個設備組合起來並行工作是不是快了不少呀!這時就出現了將多個設備連起來來完成一個任務。
這時又出現了一種接口。例如,在主板上加了一個更強大 的控制器,而特殊的是這個控制器不是連接硬盤的而是連接一個設備 ,而這個設備有特殊接口,它能夠將一個接口一分爲多個接口,而每一個接口都可以接一個SATA盤或SCSI盤,我們可以將多個SATA盤接到多個SATA口上去,用幾個控制器當做一個設備向計算機輸出。這裏的主板看來就是一個主機,是一塊盤,因爲就一個接口,A控制口就和B的控制芯片通信,這個控制芯片本身在內部把它分解成了多個盤,這裏主機是看不到這多個設備的,這時的控制器就是特殊的控制器了。就是我們今天要說的RAID控制器。如圖
在早期只有IDE和SCSI硬盤時,硬盤還很小,而且容易損壞,性能很差,怎麼辦?在當時用的最多的是SLED(single largely on large)單個的非常大的很昂貴的磁盤,由於太貴了小機構是用不起的,但是這種硬盤速度比較快,存儲能力也比較強,但是買不起,這個就比較麻煩,總要想辦法來解決的,在1987年的美國加州大學伯克利分校的幾個人發表了一篇論文,A Case for Redundant Arrays of Inexpensive Disks(RAID)廉價冗餘磁盤陣列,就是用某種特殊方式將這幾塊磁盤組合起來,能夠起到有比較大的空間,而且速度比較快,跟SLED比較起來比較便宜,當時有很多人看到這篇論文,都想嘗試去實現這種應用,當他們實現之後發現要想設備達到很好的性能控制器芯片和外圍的硬件設備,總體的價格和SLED的價格差不多了,這時候就重命名稱作獨立冗餘磁盤陣列,出現了條帶化。
四、RAID命令和軟RAID的操作
RAID:獨立冗餘磁盤陣列
組合方式:
SATA
SAS
邏輯RIAD:
/dev/md#:後面的數字 例如: /dev/md0 /dev/md1
md:(multi disks)多磁盤或多設備 lsmod列出模塊
mdadm:將任何塊設備做成RAID【用戶空間工具,管理工具】
創建軟RAID
模式化的命令:
1、創建模式
-C
專用選項:
-l:級別
-n:設備個數
-a{yes|no}:自動爲其創建設備文件.回答yes
-c:數據塊大小,(2^n),默認爲64k
-x #:指定空閒盤個數
①例如:創建一個2G的RIAD0,我們可以用4個512MB的分區,也可以用2個1G的分區【注意:兩塊盤大小要一樣】。
mdadm –C /dev/md0 –a yes –l 0 –n 2 /dev/sda{5,6}
創建設備/dev下的md0,自動創建設備文件的,然後設置級別爲0,一共兩個設備,設備是/dev下的sda5和sda6.如圖
這時候我們可以用cat /proc/mdstat如圖:
用cat /proc/mdstat可以查看查看當前系統上所有處於啓用狀態RAID設備。看圖正在啓用raid0。md0是raid0級別的設備,有兩個設備sda6和sda5,chunk大小爲64k。
②例如:創建一個2G的RIAD1,也可以用2個2G的分區【注意:兩塊盤大小要一樣】(不過這裏儘量建立三個分區,有一個留給下邊演示如果前面兩個有一個壞了,用於替補)
mdadm –C /dev/md1 –a yes –l 1 –n 2 /dev/sda{7,8}
創建設備/dev下的md1,自動創建設備文件的,然後設置級別爲1,一共兩個設備,設備是/dev下的sda7和sda8.如圖
用cat /proc/mdstat查看可以看出raid1和raid0其它信息還是差不多相同的,但是多了一段信息,那個信息表示鏡像磁盤要將每一個信息位都要對應起來,修改了任何一個磁盤的內容,另一個磁盤的同意位置內容也會修改。這兩個磁盤要鏡像成一模一樣,所以它們要同步進行,同步完成後,這個磁盤就爲可用狀態了。
我們再用fdisk -l 查看當前系統上識別幾塊硬盤。但是我們主要不是看這個主要是讓你們看一下raid1的大小是不是2G如圖:
上面紅線可用看到是md0的兩個1G組成的大小是2G,而下面紅線劃的md1的兩個2G組成的大小也是2G。(藍線劃的是各自大小)
2、管理模式
--add,--remove,--fail|-f
模擬損壞
mdadm /dev/md# --fail /dev/sda8表示把/dev/md#陣列中的/dev/sda8模擬給損壞了。如圖
查看是不是已經給損壞了。
紅線劃的就是我們模擬後的結果。這個已經損壞了,我們是不是可以把它給移除了。這是們用mdadm /dev/md1 –r /dev/sda8將其移除。如圖
我們發現圖上就剩一塊盤了,顯示removde,已經移除了。這是我們發現RAID1已經成了瘸腿狀態了,我們這時候應該用提前的那個/dev/sda9來頂替被移除的/dev/sda8。如圖:
從圖中可以看出,我們已經成功了。我們可以cat /proc/mdstat一下。發現同sda7與sda8同步傳輸數據一樣的同步傳輸數據。等數據完全傳輸完成後這時候如果把sda7給損壞,sda9上的數據也是正常的(不給於演示步驟同上類似)。
3、監控模式
-F :監控模式
-D| --detail:查看RAID陣列的詳細信息
例如:mdadm -D /dev/md1 我們可以查看md1的相關信息的。
紅色劃的顯示版本信息的,藍色顯示陣列大小,黃色顯示所有設備大小,綠色顯示一共有多少設備,紫色顯示一共有多少設備,黑色顯示優先使用哪個設備,而且下面紫色方框裏說明了,是一個鏡像有兩個設備,都處於正常使用當中。
4、增長模式
-G
5、裝配模式
-A
停止陣列:
mdadm -S /dev/md1
--stop
藍色線劃的就是md1、md2陣列。這時候我們用mdadm –S /dev/md1停止md1的陣列。我們再查看一下如圖:
藍色方框中就是答案,只剩下md0陣列了。
watch:週期性的執行指定命令,並以全屏方式顯示結果
-n #:指定週期長度,單位爲秒,默認爲2
格式:watch -n # 'COMMAND(命令)'
Mdadm –D –scan :
顯示當前主機上每一個RAID設備了,以及每個RAID關聯到設備本身,這個設備的UUID號。【我們可以把這個將當前RAID信息保存在/etc/mdadm.conf下以後再重新裝設備的時候就不用在指設備了自動讀取這個配置文件並裝配的】 mdadm -D --scan > /etc/mdadm.conf
六、RAID級別
RAID level::級別,僅代表磁盤組織方式不同,沒有上下之分。(使用這幾種方式不僅要考慮速度,也要考慮設備的可用性)
級別:
性能提升 | 冗餘能力 | 空間利用率 | 需要的磁盤數 | |
0條帶技術 | 讀、寫 | 無 | ns | 至少2塊 |
1表示鏡像 | 寫能力下降讀能力提升 | 有 | 1/2 | 至少2塊 |
5:(輪流爲校驗盤) | 讀、寫能力提升 | 有 | (n-1)/n | 至少三塊 |
10先鏡像後條帶技術 | 讀寫提升 | 有 | 1/2 | 至少4塊 |
01先條帶後鏡像技術 | 讀寫提升 | 有 | 1/2 | 至少4塊 |
50 | 讀寫提升 | 有 | (n-2)/n | 至少6塊 |
jbod | 無提升 | 無 | 100% | 至少2塊 |
磁盤鏡像:用鏡像的技術保留數據可用性。
校驗碼:如果是四塊盤,就用前三塊盤。而第四塊是備份.(浪費空間的n分之一,可允許一塊盤出錯,不允許多塊盤出錯)
圖像:
1、RAID0
2、RAID1
3、RAID5
4、RAID10
5、RAID01
6、RAID50
7、jbod
本文出自 “滴水石穿” 博客,請務必保留此出處http://lzysg172.blog.51cto.com/6624306/1153607