當(dāng)在渲染墻上運行的作業(yè)需要訪問紋理集時,它會隨機選擇一個文件服務(wù)器并從該副本訪問紋理。此流程使我們可以將紋理負載分攤給多個文件服務(wù)器,從而極大地改善了性能。盡管該解決方案要優(yōu)于依靠單一文件服務(wù)器,但發(fā)布和復(fù)制流程很復(fù)雜,并需要進行非常耗時的一致性檢查來確保副本保持相同。
我們開始注意到 NetApp FlexCache 和 SA600 存儲加速器在解決由紋理集導(dǎo)致的性能問題方面是一種更為簡單的方法。FlexCache 軟件在存儲基礎(chǔ)結(jié)構(gòu)中創(chuàng)建一個緩存層,自動適應(yīng)不斷變化的使用模式,從而消除性能瓶頸。此外,F(xiàn)lexCache 可使用本地高速緩存卷自動復(fù)制和提供基礎(chǔ)結(jié)構(gòu)中任何位置的熱數(shù)據(jù)集。
無需手動將紋理數(shù)據(jù)復(fù)制到多個文件服務(wù)器,F(xiàn)lexCache 允許我們動態(tài)地緩存當(dāng)前常用的紋理并通過 SA600 提供給渲染墻。我們對該解決方案進行了測試,結(jié)果發(fā)現(xiàn)該解決方案在我們的環(huán)境中運行得非常好,因此,在《阿凡達》預(yù)定完成前的八個月,我們做了一次大膽的嘗試:安裝了四個 SA600 系統(tǒng),每個系統(tǒng)都安裝有兩個 16 GB 性能加速器模塊 (PAM)。(PAM 作為高速緩沖存儲器以進一步降低延遲。)
總紋理集大約有 5 TB,但 FlexCache 準(zhǔn)備就緒后,我們發(fā)現(xiàn)在給定的任意時間里僅大約 500 GB 的紋理集是熱數(shù)據(jù)集。每個 SA600 都有足夠的本地磁盤來容納熱數(shù)據(jù)集,并且當(dāng)熱數(shù)據(jù)集更改時,無需我們干預(yù),高速緩存會自適應(yīng)這種變化??偼掏铝砍^ 4 GB/秒,遠遠超過我們以前曾經(jīng)達到的吞吐量。
通過 FlexCache 緩存紋理是卓越的解決方案。它使作業(yè)運行得更快,并簡化了管理紋理集的工作。我們進入了四年電影項目的最后一年。如果我們引入 SA600 后遇到無法快速解決的問題,我們可能不得不撤消 SA600 的部署。但是,一星期過去了,我們幾乎忘記了它們,直到影片結(jié)束才注意到。這正是令 IT 人員感到高興的事情。
存儲性能對渲染發(fā)生的速度有很大影響。存儲瓶頸可能會阻礙渲染庫的吞吐量。在《阿凡達》制作的最后一年,我們開始深入研究這種瓶頸產(chǎn)生的影響,并在每項作業(yè)中增加了許多監(jiān)控功能和統(tǒng)計信息。
有許多固定的待辦作業(yè)等待運行;每天有許多比渲染墻可能實際完成的作業(yè)還要多的作業(yè)等待渲染。Weta Digital 的“牧馬人”團隊負責(zé)監(jiān)控作業(yè),以確保每項作業(yè)都能按預(yù)期進行。我們引入 FlexCache 后的一天早晨,“牧馬人”團隊的組長來到我的辦公室報告一切工作都已完成。FlexCache 運行得實在是太快了,他猜想我們可能打破了某些記錄。
為什么選擇 NetApp?
我是 NetApp 的忠實用戶已經(jīng)有很長時間了。第一次使用 NetApp 是在 90 年代末網(wǎng)絡(luò)公司興起之時,當(dāng)時我在阿拉斯加一家 ISP 工作。那次使用經(jīng)歷讓我印象非常深刻,以至于后來在其他幾家公司我都引入了 NetApp 存儲。當(dāng)我來到 Weta Digital 時,我高興地發(fā)現(xiàn)該公司已經(jīng)在使用 NetApp 存儲了。
對于像 Weta Digital 這樣的公司,發(fā)生故障也會泰然處之,因為沒有任何其它公司使用與 Weta Digital 完全一樣的方式來實施基礎(chǔ)結(jié)構(gòu)。關(guān)鍵在于,當(dāng)故障發(fā)生時,你需要有供應(yīng)商來幫助你修復(fù)它。即使我在規(guī)模較小的公司工作時,NetApp 都始終有專人花時間同我一起研究問題,直到問題解決為止。你可能會認為這只是公事公辦罷了,但依我的經(jīng)驗來看,能做到這種程度的公司并不多見。
存儲可能很復(fù)雜。NetApp 技術(shù)使存儲盡量簡單。當(dāng)然,我覺得 NetApp 也有不足之處,但跟我所知道的其它公司相比,NetApp 不僅能做出易于使用的多功能產(chǎn)品,而且能夠給予客戶強有力的支持。這就是我們?yōu)槭裁蠢^續(xù)選擇 NetApp 的原因。