這是一篇很長很長的技術類文章,分成了幾期來呈現給各位。旨在向大家介紹素材存儲與管理的一些基本概念,分析各種存儲方案的利弊,教會大家如何規避可能遇到的問題,並尋求能有一個高效、安全的素材管理方法。我的重點傾向於「為什麼要這麼做」,而不是「這麼做就行了」。

本文的內容,主要面向獨立影像工作者以及小型影像工作室。如果您正準備為一家大型影視公司尋求存儲解決方案,文章中的內容並不算適用。

在上一期文章中,我們最後提到了NAS設備的優勢和劣勢。NAS的功能非常豐富,軟體設計全面,支持幾位工作人員一起協同工作,處理晶元性能普遍強於陣列盒和DAS。

本期文章主要介紹我在研究完素材存儲與管理的相關知識後,基於自己的需求,選用的萬兆NAS存儲方案,以及為什麼選擇這樣的方案。


對於家用平臺,NAS宣傳的賣點可能是各類琳琅滿目的功能,例如離線下載、離線轉碼、遠程監控、虛擬機等等等等。NAS是一個私有雲,如果將NAS通過路由器/交換機連接至外網,我們就可以這麼理解了:除了缺少了強制限速和會員廣告外,百度網盤具備的功能,NAS全都有。百度網盤沒有的功能,NAS也還是有。

這些功能也確實能夠為用戶帶來便利。但是對於我這樣的影視工作者來說,我並不是很在意這些功能,我只要性能足夠強,讓我工作效率高,其他功能聊勝於無。

劃重點,我要性能。

我的工作時常需要拍攝高碼率視頻,甚至RAW視頻。視頻採用的最低拍攝編碼格式為ProRes 422,最高為6K CinemaDNG。每個拍攝項目產生的數據量最低約為100GB,最高能達到6TB之多。基於過去一年的項目數量,以及未來每年預估的增長百分比,推算出我在2018年的素材數據總量約為30TB。

我為客戶拍攝的項目素材會承諾保留兩年。自己獨立拍攝的創作項目,素材無限期保存。所有素材在交付給客戶前需保持雙備份,交付後視素材質量和有無保密協議/版權協議,決定保留雙備份或單備份。備份操作需手動完成,雙備份的數據皆來自於拍攝素材用的存儲卡/固態硬碟。此外,也時常需要調出以前拍攝過的素材進行查看、調色、剪輯、和分類歸檔。接觸過RAW視頻工作流的讀者可能都經歷過大半夜還在苦等機械硬碟備份完畢的蛋疼體驗,1次拷貝需要1小時以上耗時的情況非常常見。

所以,我對存儲設備的需求主要可以總結為:夠大的存儲空間和夠高的安全性,同時也非常需要較快的讀寫速度來應對龐大的數據量和大量的隨機讀寫。其實,空間、安全性和讀寫性能,也是大部分個人和小型影像工作室選擇存儲方案時考慮的三個維度。如果你是一個延時攝影師,需求大致也會跟我相似。

NAS雖然功能豐富,安全性高,產品質量不乏品牌大廠的穩妥保障,可要想在性能上追求極致的速度,就需要花些功夫。對於普通家用平臺,羣暉的產品一直深入人心,口碑一向非常好。可當我用高性能、萬兆、性價比這些關鍵詞來考量他們的產品時,就不太搭調了。於是我轉向了另一個NAS品牌,QNAP威聯通。

QNAP是老牌的臺系廠商,它的產品形象有更加濃重一些的電子工業風格,但在小型工作室和大型公司所用的產品上,有不少性能怪獸級的產品。QNAP的產品線非常豐富,型號的命名規則也相對複雜一些,經過對性能參數的仔細考量,我選擇了TS-873這個型號。

對於有簡略瀏覽需求的讀者,可以觀看下面這條解析視頻。

視頻封面

04:22

我個人還是喜歡可以講得更加細緻,更加深入的文字形式,有興趣的讀者可以繼續往下看。

TS-873是一臺8盤位的NAS,能裝8塊硬碟自不必說。

根據此前算出的每年30TB素材量,我這一次選擇了4塊10TB的西部數據紅盤組成RAID5陣列,另外選擇了兩根1TB 西部數據SN750黑盤固態來進行加速。

選用4塊大容量硬碟,先留下剩下的4個機械硬碟插槽,是為了今後的擴展做準備。可以在之後單獨增加一塊硬碟做RAID 5陣列的熱備份磁碟,進一步增加安全性,也可以直接添加進RAID 5陣列來增加容量。在RAID 5的基礎上增加固態硬碟,主要是為了滿足直接在NAS上處理素材的需求,雖然RAID 5的隨機讀取已經比較強大,但如果是為了處理RAW視頻,固態硬碟帶來的碾壓式隨機讀寫性能還是十分必要的。此外,固態硬碟也可以在備份素材時大大提升寫入速度。

我看中它的主要原因是它性能和的擴展潛力。硬碟的讀寫速度,尤其是隨機讀寫速度,其實不僅與硬碟本身的性能相關,和平臺的處理器性能也是相關的。準確地說,隨機讀寫速度和CPU的頻率直接相關,和CPU的核心數或線程數沒有關聯。這在固態硬碟上表現尤為明顯。

數據來源:中關村在線zol.com.cn

TS-873採用的是x86架構的4核AMD嵌入式CPU,頻率最高可以達到3.4GHz,遠遠超過普通家用平臺採用的ARM架構CPU,最高功耗卻僅為35W。並且帶有4個SO-DIMM內存插槽和兩個PCI-E3.0*4的擴展插槽。有了豐富的擴展插槽,就有了更多性能提升的空間和消除瓶頸的機會。

首先消除的是我最在意的性能瓶頸——網路傳輸速度瓶頸。TS-873自帶的是千兆網口,絕對會浪費RAID 5陣列和固態硬碟的性能。在上一期文章中我們提過,想要消除NAS的網路傳輸速度瓶頸,有固態硬碟、鏈路聚合和萬兆網路三者結合的辦法。鏈路聚合總是顯得很麻煩,而且性能提升也有限。而我的臺式機主板自帶了萬兆介面,於是就自然而然使用萬兆方案。即使沒有自帶萬兆介面,通過主板上的PCI-E插槽,也可以很方便地加裝一張萬兆網卡。TS-873的第一個擴展插槽,我插上了10GbE萬兆網卡,把它變成了支持萬兆傳輸的NAS。

在選擇另一個擴展插槽上的設備時,我糾結了一下。它可以插無需獨立供電的顯卡,比如1050這種級別的顯卡來對機內轉碼功能進行加速,但我沒有這方面的功能需求。也可以插USB3.1擴展卡來支持USB 3.1傳輸,但我已經有了萬兆傳輸。考慮到TS-873雖然內置了兩個M.2固態硬碟插槽,但它們使用的是SATA協議,最快傳輸速度也不會超過600MB/S,有些浪費固態硬碟的性能。所以我在另一個插槽上選擇了QNAP的QM2-2P-344固態硬碟擴展卡,可以插兩根支持NVMe協議的固態硬碟,在介面上避開SATA的瓶頸。其實它還有可以插更多快固態的擴展卡,但是預算有限,先插兩根吧。

拆下TS-873的外殼來加裝擴展卡時,我們順便來看一下這臺NAS的內部做工。它的做工可以說比較紮實,走線乾淨,沒有虛焊,插槽位置一目瞭然。

4根SO-DIMM內存插槽就在這個位置了,最大可以擴充到64GB內存。兩根宇瞻2GB內存以雙通道形式插在上面。

至此,NAS平臺的硬體搭建已經完成。我們還需要進行軟體上的一些設置。

經過多年的完善,QNAP的QTS管理系統已經十分成熟,主要包含了系統、許可權、網路&文件服務以及應用服務四個方面的管理。我最在意的是性能和工作效率,因此最為關註文件服務上的功能。

QNAP設備上的固態硬碟除了作為高速緩存外,還可以使用QNAP特色的功能Qtier,來把固態硬碟的容量也計入存儲區。Qtier是一個自動文件分層存儲技術,可以自動識別NAS中的數據是否常用,把常用的數據放在固態硬碟中,保障我們的工作效率,不常用的素材就會被自動識別出來,放進大容量的機械硬碟中。如今Qtier已經進化到了2.0版本,新增了自動學習、隨選隨用、智能感知以及自定義配置優先權等功能特點,它會變得越來越強大。

可惜的是,目前我插入的兩塊固態硬碟,只能以RAID 1形式開啟Qtier功能,文件安全性是高了,但也有50%的容量無法使用,如果QTS系統能夠允許我選擇RAID 0或者JBOD模式,我會對這個功能更加滿意。

硬體軟體基本都介紹完了,可我想要越高越好的性能,能不能再給力一點呢?

研究了一下,發現當然可以。QTS系統還有一個SSD Op功能,可以犧牲一部分SSD容量,俗稱割肉,來換取更高的隨機讀寫性能,原理在這裡就不介紹了。首先可以用SSD Op功能對固態硬碟進行一個檢測,分析犧牲多少百分比可以達到最高的隨機讀寫速度收益。

檢測下來,割肉40%以上,隨機讀寫速度提升就不大了,而40%已經可以帶來相當大的速度提升,那就割40%吧。30TB都有了,還在意這幾百GB麼。

SSD Op做完以後,性能提升了一些,能不能再給力一點呢

又研究了一下,發現還是可以。TS-873支持iSCSI技術,這是一種存儲設備遠程映射技術,它可以將一個遠程伺服器上的存儲設備映射到本地。通俗地說就是本來是一個網路設備,通過iSCSI連接後,在我們的電腦上看,NAS的存儲區就像一個本地磁碟分區一樣,可以像操作本地磁碟一樣操作NAS分區。iSCSI比普通的SMB協議更加直接,從block級別來傳輸文件,速度也會有一定的提升。缺點是如果是多臺電腦的話,不太容易管理。但我是獨立的自由人,這臺NAS目前只有我一個人用,iSCSI的缺點對我無效,那自然是要用一下它了。

首先在QTS系統中找到iSCSI的相關設置,建立iSCSI LUN。

將區塊大小選為4K可以改善隨機讀寫性能

然後在電腦端的控制平臺中搜索iSCSI發起程序,點擊「發現門戶」,輸入NAS的IP地址進行連接。

隨後進入計算機管理中的磁碟管理,就會發現電腦上多了超級大的一塊磁碟。新建簡單卷後,我們就能在電腦的文件管理器中看到這個分區了,長得跟電腦內置的硬碟一樣,管理方式也是一樣。關鍵是,它又更快了一些。

iSCSI協議也用了,那,能不能再給力一點呢

繼續研究了一下,依然可以。這一次,我來到QTS系統中的網路設置界面,將萬兆網卡的巨幀封包從默認的1500改到最大的9000。

這樣設置有什麼用呢?這涉及到一個幀長的概念,我們可以理解為,在默認的較低的1500幀長下,傳輸同樣的數據量,會產生更多的幀。幀數越多,前導位元組和校驗也會增多,雖然我們的理論帶寬是萬兆級別,但這樣會導致網路傳輸的有效帶寬減少。更多的幀數也會導致更多的DMA中斷,會增加CPU的負載,進而影響傳輸速度。我們把巨幀封包開到最大的9000,就是為了避免這樣的情況的發生。

三板斧輪下去,我們來測試一下傳輸速度吧。我從一塊浦科特M8PeY固態硬碟上拖動總大小為170GB左右的視頻文件,複製到NAS中。

寫入速度達到1.08GB/S,最高達到了1.2GB/S,喫滿萬兆帶寬,真香。

但是拷貝了10GB以上後,速度就開始下降了,降到700MB/S左右並一直保持這個速度直到拷貝完成。

為什麼會這樣呢?能不能再給力一點呢

這個,還真的不可以了。我這次選用的固態硬碟是TLC顆粒的固態硬碟。固態硬碟的存儲顆粒從SLC、MLC到TLC,再到如今的QLC,顆粒成本下降使得固態硬碟變得越來越便宜,容量也可以很容易地做大,但是性能和壽命也進而下降了。廠商為了改善性能下降問題,在TLC固態硬碟上設計了少量DRAM緩存和SLC緩存,來保障讀寫時的體驗,就像我們用固態硬碟來跟NAS的機械硬碟分區加速一樣。但一旦這些緩存寫滿,TLC顆粒的性能就原形畢露了。所以,如今的硬體和軟體設置,已經把這套設備的性能潛力榨乾,很難再往上提升。

顆粒內存儲的數據變多,找數據也就慢

如果想要往上提升,就需要選用MLC顆粒的固態硬碟,或者Intel 900P/905P這樣神仙級別性能的固態硬碟,價格也就一路飆升。咱們有多少預算幹多少事,如今的這套設備方案已經足夠我的使用需求,直接在NAS上對6K CinemaDNG素材進行調色,也完全沒有傳輸上的瓶頸,也就沒什麼必要再往上追求性能了。

至此,我這一次選用的存儲設備方案已經介紹完畢。

關於素材存儲與管理的知識總共四期的連載,到這裡也就全部結束了。在寫作過程中,我發現仍有很多沒有介紹到位的地方,但個人精力有限,全面介紹的話,內容也確實過於生澀。

這一系列的文章,閱讀量不是很高,我並不在意這一點。一篇知識類的文章發佈於網上後,它便永遠存在,永遠等待需要學習這方面知識的讀者。如果這四期總共一萬六千字的文章,在現在或是在未來的某一刻,對讀完它的人起到了實際上的幫助,那便符合我寫作的初衷,我會非常開心。

全文完。

推薦閱讀:

相關文章