金鑫
【摘要】當(dāng)今信息技術(shù)和存儲技術(shù)的不斷發(fā)展,作為數(shù)字化平臺的基礎(chǔ)“盤陣”的種類越來越多,隨著SAS盤、近線SAS盤以及萬兆NAS技術(shù)的逐步發(fā)展,光纖盤逐漸推出了舞臺。電視臺高清非編及媒資的存儲平臺有著極大的帶寬要求,如何選擇和實(shí)現(xiàn)高帶寬成為了難題。
【關(guān)鍵詞】盤陣 SAS 近線SAS 條帶
近年來,磁盤陣列提供了各種磁盤種類來滿足不同的需求,電視臺作為媒體資源的制作和發(fā)布者需要有大量的素材資源進(jìn)行編輯和存儲,構(gòu)建非編或媒資網(wǎng)絡(luò)時(shí)選擇一款適合自己的盤陣以及提供穩(wěn)定的高帶寬至關(guān)重要。下面我將結(jié)合我臺的實(shí)際應(yīng)用來闡述幾個(gè)能影響磁盤陣列性能的因素:
一. SAS與SATA及近線SAS的區(qū)別
大家都知道SATA是Serial ATA的縮寫,即串行ATA,這是一種完全不同于并行ATA的新型硬盤接口類型。SAS(Serial Attached SCSI)即串行連接SCSI;SAS是并行SCSI接口之后開發(fā)出的全新接口,此接口的設(shè)計(jì)是為了改善存儲系統(tǒng)的效能、可用性和擴(kuò)充性,并且提供與SATA硬盤的兼容性。說到這,大家也許就明白了,SATA接口的開發(fā)是為了取代原有的ATA接口,支持熱拔插,提高傳輸速度等。而SAS是全新借口的SCSI,為企業(yè)級用戶設(shè)計(jì),SAS的接口技術(shù)可以向下兼容SATA。
近線SAS簡單來講其實(shí)就是SAS接口,SATA的盤底。所以它的硬盤轉(zhuǎn)速是跟SATA一樣只有7200轉(zhuǎn),但是接口速度跟SAS一樣有6Gbps,所以還是有SAS的尋址迅速、傳輸率高的優(yōu)點(diǎn)。
SATA畢竟只是ATA,所以SATA雖然在單任務(wù)的測試中不比SCSI差,但面對大數(shù)據(jù)吞吐量的服務(wù)器,還是有差距的。除了速度之外,面對多任務(wù)數(shù)據(jù)讀取,硬盤磁頭頻繁地來回?cái)[動,使硬盤過熱是SATA最大的問題。SAS具有強(qiáng)大SCSI指令集(包括SCSI指令隊(duì)列)、雙核處理器(對比SATA使用的單核處理器,即使有SATA硬盤使用雙核處理器,性能也相差甚遠(yuǎn)),以及對硬件順序流處理的支持。 SAS硬盤支持雙向全雙工模式,為同時(shí)發(fā)生的讀寫操作提供了兩路活動通道。相比之下,SATA只能提供單通道和半雙工模式,無疑弱了不少。如圖1:
我臺在對磁盤陣列的磁盤做測試時(shí):當(dāng)讀寫線程少,近線SAS基本能和SAS提供相同的帶寬,且單塊盤波動值范圍接近;當(dāng)同樣使用Sanagy客戶端50個(gè),每個(gè)寫入為1G,單塊近線SAS盤的延時(shí)波動明顯幅度高,而隨著數(shù)量逐步增加達(dá)到控制器緩存極限時(shí),總的輸出帶寬也沒有SAS高;當(dāng)寫入和讀取同時(shí),延時(shí)會更高。如圖2:
經(jīng)過多次的類似測試,我臺非編網(wǎng)使用了SAS盤的盤陣,媒資網(wǎng)采用了近線SAS的盤陣。主要依據(jù)是:SAS的雙工模式能更穩(wěn)定更持久的提供非編網(wǎng)反復(fù)讀寫的帶寬,而近線SAS能提供媒資網(wǎng)近線存儲的大容量空間和相對少的并發(fā)讀寫。
二. 條帶化的設(shè)置
盤陣中磁盤的讀寫有別于單塊硬盤的讀寫,為了獲得高帶寬,對盤陣磁盤的讀寫往往是通過條帶對整個(gè)條帶組中的盤進(jìn)行讀寫。
條帶化(Striping)是把連續(xù)的數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每段數(shù)據(jù)分別寫入到陣列中不同磁盤上的方法。目的是為了讓所有的磁盤均勻的活動,以避免出現(xiàn)單個(gè)磁盤或RAID可能 90%的busy,余下的可能低于10%的 busy。
首先我們來認(rèn)識下條帶,RAID級別也會出現(xiàn)條帶的概念,我們常用的raid1+0,其中的0指的就是條帶。RAID 0原理是把連續(xù)的數(shù)據(jù)分散到多個(gè)物理磁盤上存取。這樣,系統(tǒng)有數(shù)據(jù)請求就可以被多個(gè)磁盤并行的執(zhí)行,這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,比較顯著提高磁盤整體存取性能。當(dāng)用操作系統(tǒng)組建動態(tài)磁盤時(shí)使用帶區(qū)卷方式,是由2個(gè)或多個(gè)磁盤中的空余空間組成的卷,在向帶區(qū)卷中寫入數(shù)據(jù)時(shí),數(shù)據(jù)被分割成固定大小的數(shù)據(jù)塊,然后同時(shí)向陣列中的每一 塊磁盤寫入不同的數(shù)據(jù)塊。這個(gè)過程顯著提高了磁盤效率和性能,但是,帶區(qū)卷 不提供容錯(cuò)性。也就是通常說的軟RAID0。 .
盤陣的條帶化可以在做RAID的時(shí)候?qū)崿F(xiàn),但在電視臺非編網(wǎng)或者媒資網(wǎng)的SAN架構(gòu)中,往往是采用獨(dú)立的磁盤管理軟件來實(shí)現(xiàn)更好的帶寬質(zhì)量和負(fù)載均衡、多通道并發(fā),從而發(fā)揮SAN網(wǎng)絡(luò)架構(gòu)的優(yōu)勢。我臺非編網(wǎng)絡(luò)中使用了StorNext磁盤管理軟件,如圖3是StorNext下文件系統(tǒng):
結(jié)合臺里非編網(wǎng)絡(luò)的實(shí)際應(yīng)用情況,將Fsblock Size設(shè)置為16K,對應(yīng)的JournalSize應(yīng)為16M,更適合非編網(wǎng)絡(luò)視頻文件都是大文件的情況。如圖4:
同時(shí)將元數(shù)據(jù)、日志與數(shù)據(jù)在Raid Group層面進(jìn)行分離。讓其使用不同的Raid Group。因?yàn)樵獢?shù)據(jù)、日志都是很小的文件,讀寫和較頻繁且不是連續(xù)的I/O,而數(shù)據(jù)都是大文件,其讀一般為連續(xù)I/O。元數(shù)據(jù)、日志信息存儲的LUN其Block size最好采用較小的數(shù)值如:512K。
三. 如何通過增加盤數(shù)量而提供更高的帶寬
從廣義上講,只要盤箱控制器能提供足夠的帶寬,盤的數(shù)量越多,讀寫帶寬也會相應(yīng)增加。但實(shí)際操作中,由于RAID中的盤數(shù)量越大,所占控制器CPU資源也越多,一般單個(gè)RAID中不超過9塊硬盤,想通過單個(gè)RAID的盤數(shù)量的增加來提高IO的帶寬是不現(xiàn)實(shí)的。
辦法是通過磁盤管理軟件中條帶組(StripeGroup)功能來實(shí)現(xiàn)。對多個(gè)LUN進(jìn)行綁定,進(jìn)行文件級的RAID,這樣既減少了控制器的負(fù)擔(dān),又提高了IO的效率。在我臺實(shí)際應(yīng)用中,我們發(fā)現(xiàn)StripeGroup下LUN的數(shù)量為2-4個(gè)最佳,LUN的大小盡量一致,這樣磁盤的性能能達(dá)到最佳。下圖是我臺其中一個(gè)文件系統(tǒng),文件系統(tǒng)中有3個(gè)StripeGroup,如圖5:
經(jīng)過長期的測試,除了以上三種因素能影響盤陣的性能與帶寬,其它如盤陣的AV模式針對大文件讀寫的優(yōu)化、盤陣的數(shù)據(jù)池(pooldata)等對盤陣性能與帶寬都有影響。因此,不同的硬件平臺、不同的磁盤管理軟件、不同的網(wǎng)絡(luò)壞境中往往具體參數(shù)都會根據(jù)自己的實(shí)際情況進(jìn)行調(diào)整。以上是吳江電視臺在非編媒資網(wǎng)絡(luò)應(yīng)用中的一點(diǎn)心得體會,不當(dāng)之處敬請指正。B&P