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

