存儲(chǔ)
? 冗余:防止出現(xiàn)單點(diǎn)故障,采取冗余——處處冗余。好處:壞了一個(gè),還有一個(gè)。
?能否去除一個(gè)冗余,達(dá)到負(fù)載均衡。
控制器是存儲(chǔ)器的心臟
光纖:SC 轉(zhuǎn)接頭(不常用),lc轉(zhuǎn)接頭較常用。單模傳輸距離遠(yuǎn),多模傳輸距離近,傳輸速度是一樣的。200-300可以使用多模。
存儲(chǔ)的幾個(gè)特點(diǎn):有CPU、緩存、管理接口等
???? 1.? 空間聚集
????? 2.? 加快硬盤的訪問速度
????? 3.? 支持raid技術(shù) :提供冗余,提高訪問速度。
raid主要有三個(gè)關(guān)鍵概念和技術(shù):
鏡像( Mirroring):鏡像,將數(shù)據(jù)復(fù)制到多個(gè)磁盤,一方面可以提高可靠性,另一方面可并發(fā)從兩個(gè)或多個(gè)副本讀取數(shù)據(jù)來提高讀性能。顯而易見,鏡像的寫性能要稍低, 確保數(shù)據(jù)正確地寫到多個(gè)磁盤需要更多的時(shí)間消耗。鏡像技術(shù)提供了非常高的數(shù)據(jù)安全性,其代價(jià)也是需要至少雙倍的存儲(chǔ)空間。
數(shù)據(jù)條帶(Data Stripping):數(shù)據(jù)條帶,將數(shù)據(jù)分片保存在多個(gè)不同的磁盤,多個(gè)數(shù)據(jù)分片共同組成一個(gè)完整數(shù)據(jù)副本,這與鏡像的多個(gè)副本是不同的,它通常用于性能考慮。數(shù)據(jù)條帶具有更高的并發(fā)粒度,當(dāng)訪問數(shù)據(jù)時(shí),可以同時(shí)對位于不同磁盤上數(shù)據(jù)進(jìn)行讀寫操作, 從而獲得非常可觀的 I/O 性能提升 。通俗來講,就是把數(shù)據(jù)分割成n分由n個(gè)磁盤來裝載,其性能也是單個(gè)磁盤的n倍。數(shù)據(jù)條帶是基于提高 I/O 性能而提出的,也就是說它只關(guān)注性能, 而對數(shù)據(jù)可靠性、可用性沒有任何改善。
數(shù)據(jù)校驗(yàn)(Data parity):數(shù)據(jù)校驗(yàn),利用冗余數(shù)據(jù)進(jìn)行數(shù)據(jù)錯(cuò)誤檢測和修復(fù),冗余數(shù)據(jù)通常采用海明碼、異或操作等算法來計(jì)算獲得。利用校驗(yàn)功能,可以很大程度上提高磁盤陣列的可靠性、魯棒性和容錯(cuò)能力。不過,數(shù)據(jù)校驗(yàn)需要從多處讀取數(shù)據(jù)并進(jìn)行計(jì)算和對比,會(huì)影響系統(tǒng)性能。
不同等級(jí)的 RAID 采用一個(gè)或多個(gè)以上的三種技術(shù),來獲得不同的數(shù)據(jù)可靠性、可用性和 I/O 性能。
raid技術(shù):
raid0 :
可以提高我們寫入和讀取硬盤的速度,但硬盤越多,壞一塊硬盤的幾率就大。其中一個(gè)硬盤壞了,所有的數(shù)據(jù)都丟失了,沒有任何冗余。只適合對讀寫速度要求很高,對可靠性沒有要求。最少兩塊硬盤,最多不要超過6塊硬盤

raid1:
也叫鏡像,同時(shí)往兩塊硬盤上寫數(shù)據(jù),寫性能沒有提高,讀性能可以從兩塊硬盤上讀取數(shù)據(jù)。提供冗余,但是浪費(fèi)了兩塊硬盤。至少浪費(fèi)了50%的空間。應(yīng)用于服務(wù)器兩塊硬盤做成raid1.

RAID5:
三塊盤,第四塊盤計(jì)算出前三塊的數(shù)據(jù),最多可以壞一塊硬盤,最多浪費(fèi)(1/n)空間,有冗余。讀性能比較高,可以同時(shí)讀,但是寫性能很差。任何一個(gè)磁盤壞了都可以由另一個(gè)盤來恢復(fù)數(shù)據(jù)。不能同時(shí)壞兩塊盤。壞了一塊硬盤,整體性能急速下降。最少磁盤樹:3,3+。RAID5 兼顧存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本等各方面因素,它可以理解為 RAID0 和 RAID1 的折中方案,是目前綜合性能最佳的數(shù)據(jù)保護(hù)解決方案。 RAID5 基本上可以滿足大部分的存儲(chǔ)應(yīng)用需求,數(shù)據(jù)中心大多采用它作為應(yīng)用數(shù)據(jù)的保護(hù)方案。
把硬盤設(shè)備的數(shù)據(jù)奇偶校驗(yàn)信息保存到其他硬盤設(shè)備中。
數(shù)據(jù)的奇偶校驗(yàn)信息并不是單獨(dú)保存到某一塊硬盤設(shè)備中,而是存儲(chǔ)到除自身以外的其他每一塊硬盤設(shè)備上,這樣的好處是其中任何一設(shè)備損壞后不至于出現(xiàn)致命缺陷
圖中parity部分存放的就是數(shù)據(jù)的奇偶校驗(yàn)信息
實(shí)際上沒有備份硬盤中的真實(shí)數(shù)據(jù)信息,而是當(dāng)硬盤設(shè)備出現(xiàn)問題后通過奇偶校驗(yàn)信息來嘗試重建損壞的數(shù)據(jù)
這樣的技術(shù)特性“妥協(xié)”地兼顧了硬盤設(shè)備的讀寫速度、數(shù)據(jù)安全性與存儲(chǔ)成本問題。

raid6:
實(shí)現(xiàn)了冗余,可以同時(shí)壞兩塊硬盤。寫性能比raid5還要差。最少4塊。RAID6 引入雙重校驗(yàn)的概念,它可以保護(hù)陣列中同時(shí)出現(xiàn)兩個(gè)磁盤失效時(shí),陣列仍能夠繼續(xù)工作,不會(huì)發(fā)生數(shù)據(jù)丟失。 RAID6 等級(jí)是在 RAID5 的基礎(chǔ)上為了進(jìn)一步增強(qiáng)數(shù)據(jù)保護(hù)而設(shè)計(jì)的一種 RAID 方式,它可以看作是一種擴(kuò)展的 RAID5 等級(jí)。
RAID6 不僅要支持?jǐn)?shù)據(jù)的恢復(fù),還要支持校驗(yàn)數(shù)據(jù)的恢復(fù),因此實(shí)現(xiàn)代價(jià)很高,控制器的設(shè)計(jì)也比其他等級(jí)更復(fù)雜、更昂貴。 RAID6 思想最常見的實(shí)現(xiàn)方式是采用兩個(gè)獨(dú)立的校驗(yàn)算法,假設(shè)稱為 P 和 Q ,校驗(yàn)數(shù)據(jù)可以分別存儲(chǔ)在兩個(gè)不同的校驗(yàn)盤上,或者分散存儲(chǔ)在所有成員磁盤中。當(dāng)兩個(gè)磁盤同時(shí)失效時(shí),即可通過求解兩元方程來重建兩個(gè)磁盤上的數(shù)據(jù)。RAID6 具有快速的讀取性能、更高的容錯(cuò)能力。但是,它的成本要高于 RAID5 許多,寫性能也較差,并有設(shè)計(jì)和實(shí)施非常復(fù)雜。因此, RAID6 很少得到實(shí)際應(yīng)用,主要用于對數(shù)據(jù)安全等級(jí)要求非常高的場合。它一般是替代 RAID10 方案的經(jīng)濟(jì)性選擇

raid 01
讀寫性能都較好,但空間浪費(fèi)50%

raid10:oracle數(shù)據(jù)庫里建議使用后兩個(gè)。
RAID10是先做鏡象,然后再做條帶。
RAID01是先做條帶,然后再做鏡象。
比如以6個(gè)盤為例,RAID10就是先將盤分成3組鏡象,然后再對這3個(gè)RAID1做條帶。RAID01則是先利用3塊盤做RAID0,然后將另外3塊盤做為RAID0的鏡象。
下面以4塊盤為例來介紹安全性方面的差別:
1、RAID10的情況
這種情況中,我們假設(shè)當(dāng)DISK0損壞時(shí),在剩下的3塊盤中,只有當(dāng)DISK1一個(gè)盤發(fā)生故障時(shí),才會(huì)導(dǎo)致整個(gè)RAID失效,我們可簡單計(jì)算故障率為1/3。
2、RAID01的情況
這種情況下,我們?nèi)匀患僭O(shè)DISK0損壞,這時(shí)左邊的條帶將無法讀取。在剩下的3塊盤中,只要DISK2,DISK3兩個(gè)盤中任何一個(gè)損壞,都會(huì)導(dǎo)致整個(gè)RAID失效,我們可簡單計(jì)算故障率為2/3。
因此RAID10比RAID01在安全性方面要強(qiáng)。
從數(shù)據(jù)存儲(chǔ)的邏輯位置來看,在正常的情況下RAID01和RAID10是完全一樣的,而且每一個(gè)讀寫操作所產(chǎn)生的IO數(shù)量也是一樣的,所以在讀寫性能上兩者沒什么區(qū)別。而當(dāng)有磁盤出現(xiàn)故障時(shí),比如前面假設(shè)的DISK0損壞時(shí),我們也可以發(fā)現(xiàn),這兩種情況下,在讀的性能上面也將不同,RAID10的讀性能將優(yōu)于RAID01。

RAID10和RAID5的比較
為了方便對比,這里拿同樣多驅(qū)動(dòng)器的磁盤來做對比。
RAID5選擇3D+1P的RAID方案RAID10選擇2D+2D的RAID方案
1、安全性方面的比較
其實(shí)在安全性方面,勿須質(zhì)疑,肯定是RAID10的安全性高于RAID5。我們也可以從簡單的分析來得出。當(dāng)盤1損壞時(shí),對于RAID10,只有當(dāng)盤1對應(yīng)的鏡象盤損壞,才導(dǎo)致RAID失效。但是對于RAID5,剩下的3塊盤中,任何一塊盤故障,都將導(dǎo)致RAID失效。
在恢復(fù)的時(shí)候,RAID10恢復(fù)的速度也快于RAID5。
2、空間利用率的比較
用四塊盤分別做RAID10和RAID5的情況下:
RAID10的利用率是50%
RAID5的利用率是75%
硬盤數(shù)量越多,RAID5的空間利用率越高。
3、讀寫性能方面的比較
主要分析分析如下三個(gè)過程:讀,連續(xù)寫,離散寫。
在介紹這三個(gè)過程之前,先介紹一個(gè)特別重要的概念:cache。
cache已經(jīng)是整個(gè)存儲(chǔ)的核心所在,就是中低端存儲(chǔ),也有很大的cache存在,包括最簡單的raid卡,一般都包含有幾十,甚至幾百兆的raid cache。
cache的主要作用是什么呢?
體現(xiàn)在讀與寫兩個(gè)不同的方面,如果作為寫,一般存儲(chǔ)陣列只要求寫到cache就算完成了寫操作,所以,陣列的寫是非??焖俚模趯慶ache的數(shù)據(jù)積累到一定程度,陣列才把數(shù)據(jù)刷到磁盤,可以實(shí)現(xiàn)批量的寫入,至于cache數(shù)據(jù)的保護(hù),一般都依賴于鏡像與電池(或者是UPS)。
cache的讀一樣不可忽視,因?yàn)槿绻x能在cache中命中的話,將減少磁盤的尋道,因?yàn)榇疟P從尋道開始到找到數(shù)據(jù),一般都在6ms以上,而這個(gè)時(shí)間,對于那些密集型io的應(yīng)用可能不是太理想。但是,如果cache能命中,一般響應(yīng)時(shí)間則可以在1ms以內(nèi)。兩者應(yīng)該相差3個(gè)數(shù)量級(jí)(1000倍)。
raid01于raid5性能對比總結(jié)
所以要求較高的空間利用率,對安全性要求不是特別高、大文件存儲(chǔ)的系統(tǒng)采用RAID5比較好。
相反,安全性要求很高,不計(jì)成本,小數(shù)據(jù)量頻繁寫入的系統(tǒng)采用RAID10的方式比較好。
鑒于RAID 5技術(shù)是因?yàn)橛脖P設(shè)備的成本問題對讀寫速度和數(shù)據(jù)的安全性能而有了一定的妥協(xié),但是大部分企業(yè)更在乎的是數(shù)據(jù)本身的價(jià)值而非硬盤價(jià)格,因此生產(chǎn)環(huán)境中主要使用RAID 10技術(shù)。
RAID類型 個(gè)數(shù) 利用率 優(yōu)缺點(diǎn)總結(jié)
RAID0 條帶集:2 ,速遞: n*100% 讀寫速率最快,不容錯(cuò)
RAID1 鏡像集:2 n*50% 讀寫速率一般,容錯(cuò)
RAID5 帶奇偶校驗(yàn)條帶集:3, (n-1)/n 讀寫速率快,容錯(cuò),允許壞一塊
RAID6 帶奇偶校驗(yàn)條帶集雙校驗(yàn)dp 4,(n-2)/n 讀寫快,容錯(cuò),允許壞兩塊
實(shí)例:創(chuàng)建一個(gè)10G可用空間的RAID5:
fdisk /dev/sda,? n , +5G,l,fd? linux raid auto
t, 7 ,fd, t,8 ,fd
partx -a /dev/sda
partx -a /dev/sda??? 再創(chuàng)建一個(gè)分區(qū)做空閑設(shè)備.
cat /proc/mdstat,mdadm -C /dev/md0 -a yes -n 3? -x 1? 5? /dev/sda{7,8,9,10} ,cat /pro/mdstat
mke2fs -t ext4? /dev/md0
mkdir /mydata
mount /dev/md0 /mydata
df -lh?
blkid /dev/md0
mdadm -D /dev/md0 查看詳細(xì)信息
mdadm /dev/md0 -f /dev/sda7 標(biāo)記為損壞
watch -n1 'cat /proc/mdstat'? 動(dòng)態(tài)查看;
cp /etc/fstab /mydata/
cd /mydata/
mdadm /dev/md0 -f /dev/sda8
mdadm /dev/md0 /dev/sda7 移除壞盤
mdadm /dev/md0 -a /dev/sda7 加上恢復(fù)盤

mdadm -S /dev/md# 停止md設(shè)備
所以要求較高的空間利用率,對安全性要求不是特別高、大文件存儲(chǔ)的系統(tǒng)采用RAID5比較好。
相反,安全性要求很高,不計(jì)成本,小數(shù)據(jù)量頻繁寫入的系統(tǒng)采用RAID10的方式比較好。