金鑫



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