為使我們工程師的創(chuàng)新工作不出現(xiàn)中斷或延誤,IT必須為他們提供具有最高性能的可用存儲平臺,專門用來為文件驅(qū)動式I/O密集型工程工作流提供“暫存空間”和數(shù)據(jù)卷。隨著數(shù)據(jù)的增長,我們團隊的主要目標(biāo)之一是最大限度地提高“CPU時間與實際時間”的比率,其中實際時間表示處理計算作業(yè)所需的總時間,而 CPU時間計算的是CPU主動處理任務(wù)所花的時間。比率越高,我們計算工廠的效率就越高;不過,提高此比率需要一個I/O速度極快的存儲平臺。CPU等待存儲響應(yīng)所花費的時間屬于空閑時間,會降低我們的整體效率。
對存儲層的技術(shù)要求
幾年前,我們曾嘗試使用其他供應(yīng)商的存儲技術(shù),即將所有磁盤呈帶狀分布到一個更大的陣列中去,致使我們遭遇了以下三個問題:
系統(tǒng)無法提供我們所需的線性性能。
小文件隨機I/O成為瓶頸。
穩(wěn)定性和可靠性不夠。存儲控制器故障可能會導(dǎo)致延遲上市;工作流中的所有活動作業(yè)可能要從頭開始再來一遍。
在評估問題解決方法的同時,替換當(dāng)前的系統(tǒng)成為明智之舉。鑒于以下原因,我們的團隊選擇了NetApp作為我們研發(fā)計算操作的支持后盾:
性能。我們的研發(fā)計算操作具有很高的并發(fā)性,同時會有超過5000個計算節(jié)點訪問存儲,因此性能高低在很大程度上取決于存儲控制器。我們始終希望存儲控制器能用上最快的處理器,這樣存儲控制器就能以最多的并行網(wǎng)絡(luò)線程來處理I/O請求。我們還需要高效處理小文件隨機I/O操作的能力,因為這也是影響我們工作負載性能的主要決定因素。
可擴展性。NetApp可讓我們以模塊化方式添加更多的控制器,從而在數(shù)據(jù)增長的同時確保最佳性能。我們可以水平擴展存儲,這種模式對我們來說非常有效。同時還會降低風(fēng)險,因為我們不會受單點故障的影響。
可靠性。我們需要類似NetApp Data ONTAP這樣的成熟可靠的數(shù)據(jù)管理平臺。使用高可用性對中的NetApp存儲控制器集群可使我們在出現(xiàn)硬件故障的情況下提供無縫故障轉(zhuǎn)移并執(zhí)行更新,而不會對計算工廠中正在運行的作業(yè)造成任何中斷。即使某個域發(fā)生故障,也不會讓整個集群崩潰。
效率。我們不斷努力控制整體能耗和硬件占用空間,并盡可能地提高密度。NetApp提供許多能實現(xiàn)效率最大化的技術(shù),包括與占用最少存儲空間的時間點 Snapshot副本保持數(shù)據(jù)一致性的功能。默認情況下,NetApp卷已經(jīng)過精簡配置,能減少初始存儲空間使用量。
精簡性。能否靈活使用網(wǎng)絡(luò)文件系統(tǒng)(NFS)和通用 Internet文件系統(tǒng)(CIFS)快速配置存儲并對工程文件提供共享訪問非常重要。憑借NetApp統(tǒng)一存儲架構(gòu)中的多協(xié)議支持,我們可以使用以下兩種協(xié)議(見圖 1)。
圖 1)NVIDIA工程計算工廠采用NetApp Data ONTAP 8.2。通過NFS和CIFS訪問相同的文件系統(tǒng)時,Data ONTAP完全保持了數(shù)據(jù)的完整性。
如何借助NetApp存儲使容量翻倍
截至2012年,以NetApp存儲為后盾,我們的工程計算基礎(chǔ)架構(gòu)基本能夠滿足需求。為了保證創(chuàng)新工作有條不紊,我們需要支持更多的并發(fā)工作流并提高計算作業(yè)的性能。
為解決這一難題,我們部署了采用智能緩存技術(shù)的NetApp FAS6280和FAS6290存儲系統(tǒng)以提高吞吐量,并將多個獨立系統(tǒng)整合為高可用性對。同時,我們升級到了Data ONTAP的更新版本,它提供了更多的并行網(wǎng)絡(luò)線程來處理I/O請求,而且使CPU在所有核心間的利用率更加平衡。此外,我們還與NetApp工程部展開密切合作,聯(lián)手進行基準(zhǔn)測試并針對我們特定的EDA工具進行存儲優(yōu)化,這并未改變或影響我們工程團隊的底層工作流。
借助其他NetApp 存儲系統(tǒng)、緩存和優(yōu)化操作,最終我們計算工廠的整體處理效率提高了一倍多,每天的計算作業(yè)量從200萬增加到450萬。我們可以在任何指定時間同時執(zhí)行60,000項計算作業(yè)。CPU時間與實際時間的整體比率也有所提升 — 我們發(fā)現(xiàn)實際編譯性能提高多達 19% 且模擬運行次數(shù)增加多達25%。
高效存儲為產(chǎn)品上市提速
NetApp 技術(shù)對我們計算工廠的性能、效率和可靠性發(fā)揮著重要作用,有助于我們使用相同的存儲平臺優(yōu)化順序工作負載和隨機工作負載, 進而加快上市速度。
提升小文件隨機 I/O 性能
NetApp能出色地處理通過NFS傳入的I/O請求,一部分是因為 WAFL(任意位置寫入文件布局),這是最令我印象深刻的NetApp功能之一。WAFL使用臨時數(shù)據(jù)布局同時寫入元數(shù)據(jù)和用戶數(shù)據(jù),以盡量減少將數(shù)據(jù)提交到存儲所需的磁盤操作次數(shù),而不是將數(shù)據(jù)和元數(shù)據(jù)存儲到磁盤上的預(yù)定位置。將非常小的文件(小于64字節(jié))存儲到文件系統(tǒng)內(nèi)的索引節(jié)點數(shù)據(jù)結(jié)構(gòu)中,而非磁盤塊中;因此,無需訪問磁盤(省下了查找時間),提升了性能。
借助智能緩存節(jié)省空間和能耗的同時優(yōu)化讀取性能
我們借助NetApp Flash Cache來提升決定著大部分工作負載速度的讀取性能。通過在連接到控制器的 PCIe卡上緩存最近讀取的數(shù)據(jù)和元數(shù)據(jù),F(xiàn)lash Cache在PCI 總線中充當(dāng)WAFL擴展緩沖區(qū),從而幫助我們?nèi)菁{非常大的數(shù)據(jù)集。我們與 NetApp 緊密合作,共同確定工作負載所需的Flash Cache數(shù)量并決定使用512 GB和1 TB PCIe卡。這樣一來,緩存使用率就始終高于90%。
借助Flash Cache,我們可以使用混合存儲模式,以便最大限度地減少存儲占用空間并控制成本。在該模式下,我們使用了具有較高密度的高性能串行連接SCSI(SAS)驅(qū)動器和成本較低的串行 ATA(SATA)驅(qū)動器。若不采用Flash Cache,要達到我們目前的性能水平,我們需要的磁盤架數(shù)量以及相應(yīng)的能耗和散熱資源可能要增加三倍多;而且,若不采用 Flash Cache,我們可能無法在現(xiàn)有環(huán)境下使用高容量 SATA 磁盤,且很難擴展計算工廠的容量。我們的數(shù)據(jù)中心可能已不堪負重。事實上,在我們對計算工廠進行容量擴展之后,借助新NetApp存儲系統(tǒng)的能效,我們已從電力公司贏得了200,000美元的返利。
降低風(fēng)險,同時保持數(shù)據(jù)一致性
NetApp存儲另一個極具吸引力的功能是Snapshot副本,它們是活動文件系統(tǒng)基于指針的只讀副本。WAFL利用寫時復(fù)制技術(shù)最大限度地減少Snapshot副本占用的磁盤空間,這樣我們就可以在保留數(shù)據(jù)集的時間點副本時,既無需占用存儲空間,又不會影響性能。Snapshot副本可幫助我們保持數(shù)據(jù)一致性,這在工程環(huán)境中至關(guān)重要,而且有助于避免數(shù)據(jù)丟失的風(fēng)險。計算作業(yè)完成后,我們可以使用 Snapshot 副本臨時保護無需保留的數(shù)據(jù),避免因重復(fù)存儲而產(chǎn)生費用,這一方法十分簡便。Snapshot 副本可以在我們這種文件數(shù)量巨大的環(huán)境中提供快速恢復(fù),只需翻轉(zhuǎn)文件系統(tǒng)指針即可 — 如果實驗過程中出錯,我們可以使用Snapshot副本中的數(shù)據(jù)副本快速恢復(fù)到已知狀態(tài)。NVIDIA目前使用NetApp SnapVault®進行備份并使用 NetApp SnapMirror將數(shù)據(jù)復(fù)制到位于薩克拉門托的災(zāi)難恢復(fù)站點。
我們還使用 NetApp 重復(fù)數(shù)據(jù)刪除來消除某些卷內(nèi)的冗余數(shù)據(jù)塊,并因此而獲益。重復(fù)數(shù)據(jù)刪除技術(shù)會找到相同的數(shù)據(jù)塊,并以引用單個共享數(shù)據(jù)塊的方式將其替換。這種方法特別適合我們保留了多個副本的 Perforce 軟件配置管理系統(tǒng),因為這些副本中有大量的重復(fù)數(shù)據(jù)。我們將這些卷的容量要求降低了 30%。
用更少的人手管理更多的存儲
盡管我們計算工廠的存儲容量已大幅提升,但我們未雇用更多的基礎(chǔ)架構(gòu)人員,且我們的預(yù)算與往年持平。實際上,少一個全職員工我們也可以正常運行。正是因為NetApp讓我們能夠輕松簡單地管理15 PB的數(shù)據(jù)占用空間,才讓這成為可能。
借助NetApp OnCommand Unified Manager管理軟件,我們可以快速了解性能指標(biāo)和利用率統(tǒng)計信息。為了盡早發(fā)現(xiàn)存儲基礎(chǔ)架構(gòu)中的問題以免對計算作業(yè)造成影響,我們選擇使用NetApp AutoSupport,它可在出現(xiàn)磁盤故障或其他潛在問題時迅速做出響應(yīng)并向我們發(fā)出警報。
業(yè)務(wù)影響:加快NVIDIA及客戶的上市速度
對NVIDIA而言,計算工廠的效率提升25%意味著可以在更短的時間內(nèi)測試、驗證芯片設(shè)計并將其推向市場。NetApp幫助我們提升了CPU時間與實際時間的比率,這對我們的上市時間至關(guān)重要。隨著性能和容量的提升,我們每天可以支持的作業(yè)量將是之前的兩倍多,反過來這將促使我們推出更多的設(shè)計。我們不再受停機時間的影響,借助NetApp系統(tǒng),我們實現(xiàn)了高于99.99%的可用性。我們不再關(guān)注存儲正常運行時間,因為我們的NetApp 存儲隨時可供工程師們使用。
縮短發(fā)布周期也將為我們的客戶帶來巨大的商業(yè)價值,這不僅能夠鞏固我們的戰(zhàn)略業(yè)務(wù)合作伙伴地位,而且有助于客戶推出基于NVIDIA技術(shù)的突破性產(chǎn)品。
未來規(guī)劃
借助NetApp Flash Cache和其他存儲效率,NVIDIA實現(xiàn)了R&D計算轉(zhuǎn)型并成功打造了一個支持不斷創(chuàng)新的計算工廠。在擴大和完善計算工廠的過程中,我們將繼續(xù)信賴與NetApp之間的合作,我們還期望借助新一代NetApp FAS6000存儲系統(tǒng)提高性能并在能耗和散熱方面獲得更多優(yōu)勢。同時,我們還將擴大NetApp存儲在其他業(yè)務(wù)領(lǐng)域的應(yīng)用,包括公司IT和我們的VMware vSphere®虛擬服務(wù)器環(huán)境。
在不久的將來,我們計劃將計算工廠遷移到NetApp集群模式Data ONTAP操作系統(tǒng),目前我們正處于測試階段。通過將我們現(xiàn)有的NetApp存儲系統(tǒng)合并到集群模式Data ONTAP下的單個全局命名空間,我們將從無縫橫向擴展、簡易負載平衡以及整個生命周期內(nèi)保持聯(lián)機的芯片設(shè)計數(shù)據(jù)中獲益。