存儲極客
這是一群存儲偏執(zhí)狂
為存儲而生,跟存儲死磕
各具獨家秘笈
有觀點,有碰撞,有干貨
從2015年8月18起
做客存儲極客欄目
與你分享存儲里的那點事兒
在發(fā)布了《存儲極客:這些硬盤參數(shù)你都懂嗎?(上)-從案例引發(fā)的討論》和《存儲極客:這些硬盤參數(shù)你都懂嗎?(下)-監(jiān)控選型與系統(tǒng)設計》兩篇之后,我們收到了來自一些視頻專業(yè)廠商朋友的反饋,其中有很多值得與大家分享的信息。
監(jiān)控硬盤的前生今世
關于桌面硬盤、企業(yè)級近線硬盤(NL-SAS/SATA)和監(jiān)控硬盤的差別,我們在前文中已經(jīng)講得很詳細,這里再換一個角度來看看。
“監(jiān)控硬盤是希捷和西數(shù)為視頻監(jiān)控定制的,典型的寫多讀少,一般讀寫比例為10:1。假設將讀寫比例變成1:1,則壞盤速度非常快。(企業(yè)級近線硬盤和監(jiān)控盤的抗振能力)是不一樣的,用的RV Sensor和算法都不一樣。”
——浙江宇視科技有限公司 數(shù)據(jù)中心產(chǎn)品部總工 許鐘聲
這個與監(jiān)控硬盤的設計思想和定位有關,按照我的理解,是在桌面硬盤的基礎上盡量少增加硬件成本的情況下,對固件進行優(yōu)化,使之在視頻監(jiān)控應用中能夠有更好的表現(xiàn),包括平均無故障時間和抗振能力等。
多年前,希捷只有一款專門定位于視頻應用的SV35,就是今天監(jiān)控硬盤的前身。當時我還曾與硬盤廠商的朋友開玩笑說:“它與桌面硬盤的區(qū)別就是寫緩存算法吧?”
實際上可能不止于此,我們先來看看官方是怎么說的?
監(jiān)控優(yōu)化固件以提升耐用性:
● ATA串流指令支持流暢的視頻錄制和回放,支持從多視頻流錄制更高分辨率的視頻并可以盡可能減少掉幀
● 指令完成時間更短,可以提升硬盤吞吐量,支持更多的攝像頭、更高的分辨率
● 節(jié)能模式可以全面減少功耗和發(fā)熱
● 可以在更高的溫度下運行,獨特的監(jiān)控搜索配置文件可將發(fā)熱降至最低
● 噪聲更低,運行更加安靜
● 為快速寫入而優(yōu)化的數(shù)據(jù)高速緩存,支持更多的攝像頭且不影響吞吐量和性能
大存儲容量:
● 存儲容量足以應對全天候運行和多攝像頭應用
● 支持高分辨率視頻和存檔的監(jiān)控錄像
物理設計改進:
● 平衡馬達可以將硬盤造成的振動降至最低并且可以降低噪音
● 耐用的硬盤元件可以保證寫入優(yōu)化和全天候運行模式下的可靠性
監(jiān)控存儲應用的特點就是流式寫入,I/O數(shù)據(jù)塊較大,但不代表就是完全的順序寫入,因為還要考慮多路監(jiān)控并發(fā)寫入帶來的影響。監(jiān)控硬盤的最大特點應該是緩存針對寫入做最大優(yōu)化,一旦出現(xiàn)異常斷電,丟失個幾MB或者幾十MB數(shù)據(jù)對視頻監(jiān)控系統(tǒng)來說沒有多大影響。
也就是說,這種硬盤不需要為傳統(tǒng)服務器工作負載而考慮;而企業(yè)級近線硬盤,需要能適應多種應用場景,會盡可能地保證數(shù)據(jù)一致性。以前在RAID環(huán)境中有專門的緩存保護技術,像數(shù)據(jù)庫等關鍵應用通常建議關閉硬盤上的寫緩存。
在上一篇中,我們提到了“希捷在最新一代Enterprise Capacity 8TB型號上內(nèi)置了2MB NOR閃存,用于掉電時備份寫緩存數(shù)據(jù),因此可以打開WCE(Write Cache Enable)提升隨機寫性能。”這是企業(yè)級硬盤為兼顧性能和掉電保護做出的一種改良。
HGST最新的大容量企業(yè)級近線充氦硬盤,支持2種寫緩存保護機制。除了在SAS接口版本上提供非易失性的NVC Quick Cache之外,還有另一種技術Media Cache——“開辟一小部分磁道作為將隨機寫I/O變成順序寫入的緩沖區(qū)”。
此外還有一個“Rebuild助手”模式。舉例來說,在多塊硬盤配置RAID+熱備盤的情況下,如果故障盤只是某個磁頭失效,那么在重建的過程中,其它碟面上的數(shù)據(jù)就可以從故障盤直接拷貝到熱備盤,以減少對整個RAID組中其它硬盤增加的I/O開銷,加快Rebuild過程同時減少二次故障風險。據(jù)了解,希捷現(xiàn)在也具備類似的技術,該功能需要配合RAID卡/控制器來實現(xiàn)。
監(jiān)控硬盤顯然不愿這樣提高成本,加大DRAM寫緩存的使用可以減少磁頭寫操作的次數(shù),在同等硬件條件達到了一定的延長壽命的效果。但事物總是一分為二的,這種優(yōu)化相應地就會削弱硬盤原本的讀緩存,所以如果超出傳統(tǒng)監(jiān)控使用范圍,讀操作比例增大就會導致壞盤率提高。
所以,監(jiān)控硬盤的應用場景是限定的,而企業(yè)級近線硬盤可勝任更廣泛的用途。像噪音更低,實現(xiàn)方式就是降低轉速和尋道速度,而性能則是“夠用就好”的原則。至于物理設計改進,監(jiān)控盤使用的組件比企業(yè)級近線硬盤還是要降低一個等級的。
傳統(tǒng)RAID限制及應變之道
這里再引用一段許先生給我們的反饋:
“不是監(jiān)控盤的RAID硬盤個數(shù)小于等于16個,即使用企業(yè)盤一般單陣列內(nèi)推薦的硬盤數(shù)量也不超過16個(實際不超過15個左右),除了你說的共振之外,最主要的是性能,單RAID陣列從3-15塊硬盤遞增,性能也是遞增的,但是超過十五塊盤,性能會開始下降。一般的做法是24盤位陣列:11+12+1,性能最高。”
許先生是監(jiān)控存儲方面的專家,考慮問題以及推薦的一般做法,都是以監(jiān)控用途為出發(fā)點。除了性能之外,傳統(tǒng)RAID組中磁盤數(shù)量越多,Rebuild時要讀取的數(shù)據(jù)量也是成正比的(前面介紹的硬盤快速Rebuild技術目前應用還不普及),出現(xiàn)第2、3壞盤的概率也會增大。
我的另一位朋友楊小雷也曾在微博里面提到,在RAID卡固定條帶大小的情況下,參與硬盤數(shù)量越多Rebuild速度也會越慢。
因此在RAID卡和一些設計比較傳統(tǒng)的磁盤陣列上,硬盤數(shù)多了之后一般需要人為分成多個RAID組,在操作系統(tǒng)的卷管理器層面,再根據(jù)需要“拼”或者條帶化成邏輯卷。在今天看來這樣不是太方便,并且對規(guī)劃人員也會有要求。那么如果我們在底層不愿意分成多個RAID組,解決之道就是寬條帶化。
如上圖,左邊的“傳統(tǒng)存儲系統(tǒng)”基于磁盤做RAID,當RAID上的LUN映射給某個前端主機時,它的性能會受限于該RAID組的磁盤數(shù)量。而像以戴爾SC(Compellent)等為代表的存儲系統(tǒng),先將磁盤切割為數(shù)據(jù)塊(粒度細化的可達到512KB-4MB),然后在這些數(shù)據(jù)塊/頁面之間做RAID。也有人后來給寬條帶化RAID起了RAID 1.5、RAID2.0… 的叫法。
由于底層虛擬化打散的原因,寬條帶化RAID可以在更大的存儲池上,保持理想的數(shù)據(jù)/冗余校驗位比例,比如RAID 5 4+1和RAID 6 8+2等。這樣單個LUN就能享受到整個磁盤池的性能,同時還不用面對傳統(tǒng)RAID組磁盤數(shù)量過多所帶來的問題。
寬條帶化比傳統(tǒng)RAID更加智能,而這只是先進的企業(yè)級存儲系統(tǒng)相對于使用RAID卡或者軟RAID搭建廉價存儲服務器的優(yōu)勢之一。盡管許多監(jiān)控存儲在成本控制上要求較高,但是“高投入、高回報”的道理仍然適用。除了存儲操作系統(tǒng)、硬盤選擇之外,一款設計優(yōu)秀的雙控制器陣列還在更多方面保障設備的可靠性和可用性,包括我們前文談過的共振考慮,以及冗余模塊化組件無單點故障等。