sqlserver數(shù)據(jù)庫(kù)服務(wù)器讀寫(xiě)性能之陣列RAID對(duì)比簡(jiǎn)介
一: RAID簡(jiǎn)介
RAID(Redundant Array of Independent Disk 獨(dú)立冗余磁盤(pán)陣列)是一項(xiàng)數(shù)據(jù)保護(hù)策略.
二: RAID的幾種常用級(jí)別
1. RAID 0
通過(guò)并行讀取來(lái)提高數(shù)據(jù)I/O, 讀取操作效率很高, 但是不提供數(shù)據(jù)容錯(cuò)及保護(hù). 不推薦作為SQL Server使用.
2. RAID 1
鏡像保護(hù),有兩個(gè)驅(qū)動(dòng)器,一個(gè)做主驅(qū)動(dòng)器,一個(gè)做鏡像, 所以是實(shí)際需要兩倍的驅(qū)動(dòng)器,第二個(gè)所為冗余使用. 使用RAID 1我們的存儲(chǔ)容量應(yīng)該是(n*s/2)。
一次寫(xiě)操作寫(xiě)入到兩個(gè)磁盤(pán), 所以雖寫(xiě)入速度會(huì)稍微有影響, 但是讀取速度幾乎是大多數(shù)情況下的兩倍. 因?yàn)樵谧x取操作過(guò)程中驅(qū)動(dòng)器可以并行地進(jìn)行訪問(wèn),從而提高了吞吐量。RAID 1限制于兩個(gè)驅(qū)動(dòng)器。
3. RAID 5
帶校驗(yàn)的磁盤(pán)條帶。在這種類(lèi)型的RAID中,數(shù)據(jù)以復(fù)雜條帶的形式寫(xiě)入到陣列中的所有驅(qū)動(dòng)器中,同時(shí)所有驅(qū)動(dòng)器中都有分布數(shù)校驗(yàn)塊。這樣RAID 5就可能使用三個(gè)或者更多磁盤(pán)組成的任意大小的陣列,只犧牲相當(dāng)于一個(gè)磁盤(pán)的存儲(chǔ)容量用于校驗(yàn)。但是這種校驗(yàn)是分布式的,并不單獨(dú)存在于任何一個(gè)物理磁盤(pán)中.
RAID 5由于在大型陣列中犧牲的存儲(chǔ)容量較少,所以它具有成本效益的特點(diǎn),從而被人們所廣泛使用。與鏡像不同的是,帶有校驗(yàn)的條帶要求必須在磁盤(pán)之間進(jìn)行針對(duì)每個(gè)寫(xiě)入條帶的計(jì)算,這造成了一部分的開(kāi)銷(xiāo)。因此,吞吐量并不總是一個(gè)容易計(jì)算的項(xiàng)目,它在很大程度上取決于系統(tǒng)在做校驗(yàn)計(jì)算時(shí)候的計(jì)算能力。
計(jì)算RAID 5的容量非常簡(jiǎn)單:就是((n-1)*s)。RAID 5陣列可以避免這列中任何單個(gè)磁盤(pán)的丟失.
對(duì)RAID5的每一次寫(xiě)操作, 都會(huì)涉及到多個(gè)讀用于計(jì)算并且存儲(chǔ). 對(duì)SQL Server有很多的寫(xiě)操作,并且要求很高效率的時(shí), RAID 5并不是一個(gè)很好的選擇.
4. RAID 6
帶雙重校驗(yàn)的磁盤(pán)條帶。RAID 6與RAID 5非常相似,但它的每個(gè)條帶使用兩個(gè)校驗(yàn)塊,而不是一個(gè),這加強(qiáng)了應(yīng)對(duì)磁盤(pán)故障的保護(hù)能力。
RAID 6是RAID家族中的新成員。RAID 6是其他幾個(gè)RAID類(lèi)型實(shí)現(xiàn)標(biāo)準(zhǔn)化幾年之后增加的。RAID 6比較特殊,因?yàn)樗梢猿惺荜嚵兄腥我鈨蓚€(gè)驅(qū)動(dòng)器的故障,同時(shí)防止數(shù)據(jù)丟失。但是為了配合額外的冗余度,RAID 6陣列需要犧牲陣列中相當(dāng)于兩個(gè)驅(qū)動(dòng)器的容量,并要求真列中最少有四個(gè)驅(qū)動(dòng)器。RAID 6的容量可以用((n-2)*s)來(lái)計(jì)算。
5. RAID 10
帶條帶的鏡像。從技術(shù)上來(lái)說(shuō),RAID 10是一種混合的RAID,包括存在于一個(gè)非校驗(yàn)條帶(RAID 0)中的一對(duì)RAID鏡像。
當(dāng)一個(gè)陣列中只有兩個(gè)驅(qū)動(dòng)器的時(shí)候,很多廠商會(huì)稱(chēng)其為RAID 10(或者RAID 10+),但從技術(shù)上來(lái)說(shuō)這應(yīng)該是RAID 1,因?yàn)殛嚵兄兄辽儆兴膫€(gè)驅(qū)動(dòng)器才會(huì)發(fā)生條帶化。對(duì)于RAID 10來(lái)說(shuō),驅(qū)動(dòng)器必須是一對(duì)一對(duì)添加的,因此陣列中的驅(qū)動(dòng)器數(shù)量只可能是偶數(shù)。
RAID 10可以在丟失近半數(shù)驅(qū)動(dòng)器組的情況下正常運(yùn)轉(zhuǎn),同時(shí)最多只能承受每個(gè)驅(qū)動(dòng)器中一個(gè)驅(qū)動(dòng)器發(fā)生故障或者丟失。RAID 10不包含校驗(yàn)計(jì)算,這使得它相對(duì)RAID 5和RAID 6來(lái)說(shuō)具有一定的性能優(yōu)勢(shì),而且陣列對(duì)計(jì)算能力的要求也更低。RAID 10提供了超過(guò)任何一種常見(jiàn)類(lèi)型RAID的讀取性能,因?yàn)樵谧x取操作中陣列中的所有驅(qū)動(dòng)器都可同時(shí)使用。但是RAID 10的寫(xiě)入性能要低很多。RAID 10的容量計(jì)算方法和RAID 1相同,都是(n*s/2)。
RAID性能比較
讀效率: 因?yàn)槭遣⑿凶x取, 讀取效率都很高.
寫(xiě)效率: RAID 0 > RAID 1 > RAID 10 > RAID 5
磁盤(pán)利用率: RAID 0 > RAID 5 > RAID 1 = RAID 10
容錯(cuò)能力: RAID 10 = RAID 1 > RAID 5 > RAID 0
作為SQL Server 的DB Server建議使用RAID 1 或RAID10.
三: RAID與SQL Server
DB server physical disk design with separate RAID volumes for data, log, tempdb and backup files.
磁盤(pán)架構(gòu):
C: OS [要求很好的數(shù)據(jù)讀寫(xiě)效率, 并且有很強(qiáng)的容錯(cuò)能力, 提供數(shù)據(jù)保護(hù)]
D: 做RAID10, 存儲(chǔ)DB數(shù)據(jù)文件 [要求讀的效率高, 寫(xiě)效率比較低一些, 容錯(cuò)能力要強(qiáng),如果數(shù)據(jù)文件很大, 要求節(jié)約磁盤(pán)空間]
E: 做RAID1, 存儲(chǔ)DB日志文件 [在DB運(yùn)行過(guò)程中, 日志讀寫(xiě)比較頻繁, 需要很高的數(shù)據(jù)讀寫(xiě)效率]
F: 做RAID10, 存儲(chǔ)數(shù)據(jù)庫(kù)的tempdb [存放臨時(shí)數(shù)據(jù)庫(kù)]
G(可選): 做RAID1, 數(shù)據(jù)備份,建議數(shù)據(jù)備份在遠(yuǎn)端
SSD硬盤(pán):SSD的英文全稱(chēng)是Solid State Disk/Drive, 中文翻譯為固態(tài)硬盤(pán). 可以廣泛應(yīng)用于服務(wù)器、臺(tái)式機(jī)、筆記本、移動(dòng)設(shè)備、游戲機(jī)等, 加速啟動(dòng), 提高性能, 同時(shí)降低功耗.
優(yōu)點(diǎn):
速度快(高I/O).
耐用防震
無(wú)噪音
重量輕
SQL Server搭配SSD硬盤(pán)可以取得很好的I/O性能
缺點(diǎn):
價(jià)格高,容量小,做RAID會(huì)進(jìn)一步損失容量, 所以性價(jià)比不高. 對(duì)于不考慮價(jià)格的公司就另當(dāng)別論.
技術(shù)還不是太成熟
四: 總結(jié)
針對(duì)不同的功能,建立不同的RAID架構(gòu)可以提高數(shù)據(jù)效率和利用率.
相關(guān)文章
sqlserver中查找所有包含了某個(gè)文本的存儲(chǔ)過(guò)程
我想查找所有使用了sp_a 的存儲(chǔ)過(guò)程。右擊sp_a->view dependencies-> 選擇 view objects that depend on [sp_a] 你會(huì)發(fā)現(xiàn),有時(shí)候結(jié)果不能夠全部列出來(lái),不能夠找到所有使用了sp_a的其他存儲(chǔ)過(guò)程。2010-05-05Sql2000數(shù)據(jù)庫(kù)的備份文件恢復(fù)到Sql2005的方法
真的和sql2000恢復(fù)方法不同,我用這里介紹的辦法恢復(fù)成功了2009-12-12sql server中批量插入與更新兩種解決方案分享(存儲(chǔ)過(guò)程)
對(duì)于sql 來(lái)說(shuō)操作集合類(lèi)型(一行一行)是比較麻煩的一件事,而一般業(yè)務(wù)邏輯復(fù)雜的系統(tǒng)或項(xiàng)目都會(huì)涉及到集合遍歷的問(wèn)題,通常一些人就想到用游標(biāo),這里我列出了兩種方案,供大家參考2012-05-05MDF文件在SQL Server中的恢復(fù)技術(shù)
MDF文件在SQL Server中的恢復(fù)技術(shù)...2007-01-01SQL Server 2000“設(shè)備激活錯(cuò)誤”的解決方法
數(shù)據(jù)庫(kù)恢復(fù)時(shí)出現(xiàn)諸如“設(shè)備激活錯(cuò)誤,請(qǐng)使用with move選項(xiàng)來(lái)標(biāo)志該文件的有效位置”報(bào)錯(cuò)的解決方法2013-11-11SQLServer中IF THEN邏輯的實(shí)現(xiàn)
if-then語(yǔ)句是IF控制語(yǔ)句中最簡(jiǎn)單的形式,經(jīng)常用于決策和更改程序執(zhí)行的控制流程,本文主要介紹了SQLServer中IF THEN邏輯的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02