焱融科技攜手科大訊飛,YRCloudFile邁入IO500 Top6行列
11月18至21日,代表高性能計算和存儲行業最高水平的年度盛會SuperComputing 2019在美國丹佛舉行,與計算性能Top500榜單相對平穩的排名和趨勢相比,IO500榜單的競爭顯得異常激烈。焱融科技本次攜手科大訊飛基礎架構團隊,在焱融科技YRCloudFile的基礎之上,進行了大量創新性開發和調優,最終提交的IO500十節點性能測試數據在激烈的比拼中位列全球第六。相對于上半年的成績,存儲性能有了400%的提升。這次聯合測試的成功經驗,標志著焱融科技與國內頂級人工智能企業在技術攻關過程中取得了較大突破。
從發布的結果上看,焱融科技本次測試的結果比上半年提升了4倍。這得益于焱融科技前期與科大訊飛的緊密溝通,讓我們對人工智能這種需要高性能存儲支持的典型場景有了更深入的理解。在此基礎上,雙方工程師做了針對性的開發和優化,從而獲得了滿意的成績。
在《最新全球IO500名單出爐,焱融云躋身存儲廠商Top10》一文中,我們對IO500做了基本的介紹,很多客戶和同行對IO500表現出強烈的興趣。在此我們再深度剖析一下IO500,進而了解為何眾多高性能存儲和計算的行業領導者對該榜單都高度關注的原因。
總的來說,IO500十節點測試共包含了12項測試任務,測試限制在10個客戶端上執行,評估總體集群的性能表現。這12項測試模擬了各種或簡單或苛刻的IO場景,涉及數據吞吐、元數據等方面操作。以下我們按執行順序來看這些測試任務的含義,并分析這些測試背后對應的實際應用場景:
1)ior_easy_write:
多個客戶端、多個任務、并發地、順序地、獨立地向存儲集群中寫數據,這一項主要測試存儲集群的寫入能力。默認每個任務寫入9.9TB,200個任務會寫入PB級的數據,這個測試模擬了傳統HPC寫入密集型應用場景。
2)mdtest_easy_write:
多個客戶端、多個任務、并發地、獨立地向存儲集群中創建大量空文件,每個任務獨占一個目錄,這一項主要測試存儲集群元數據的處理能力。默認每個任務寫90萬文件,200個任務共寫入1.8億文件。這個測試模擬了新興的人工智能場景中寫入海量文件的場景,側重于元數據性能的測試。
3)ior_hard_write:
多個客戶端、并發地、共享地寫同一個文件,每個任務每次寫的數據量是47008 Bytes,這一項主要測試協同寫單個文件。默認每個任務要寫190萬次,每次寫47008 Bytes。這一測試模擬的是傳統HPC場景,多個計算任務同時更新同一個文件時,文件系統鎖以及并發寫入的能力。
4)mdtest_hard_write:
多個客戶端、并發地創建大量文件,創建文件后,會寫3901Bytes數據,所有任務的文件都寫到同一個目錄下。默認每個任務寫95萬文件,200個任務共寫入1.9億文件。這個測試也是模擬新興的人工智能場景中寫入海量文件的場景,與mdtest_easy_write側重元數據性能測試不同的是,mdtest_hard_write會同時考察文件系統數據寫入的能力。
5)find:
對前面創建的大量文件去做find查詢,考察海量文件下,基于標準POSIX語義的文件系統查詢性能。
6)ior_easy_read:
多個客戶端、多個任務、并發地、順序地讀取自己在ior_easy_write階段寫入的數據。該測試模擬傳統HPC場景中,多客戶端并發讀取數據的過程。
7)mdtest_easy_stat:
多個客戶端、多個任務、并發地去stat自己在mdtest_easy_write階段創建的空文件,這個測試模擬人工智能等應用,在海量文件場景下對文件系統最常用的stat操作性能(文件系統的大量操作會調用到stat接口)。
8)ior_hard_read:
多個客戶端、多個任務、并發地去讀取自己在ior_hard_write階段寫入的文件,每次讀取數據量47008 Bytes。該測試模擬傳統HPC業務,多個計算任務并發加載數據的過程。
9)mdtest_hard_stat:
多個客戶端、多個任務、并發地去stat自己在mdtest_hard_write階段寫入的文件,stat之后再讀取3901 Bytes數據。該測試模擬人工智能業務檢索、open、隨后讀取文件的過程,并評估這一過程的性能。
10)mdtest_easy_delete:
多個客戶端、多個任務、并發地去delete自己在mdtest_easy_write階段創建的文件。該測試模擬元數據集群對海量空文件并發刪除的支持和性能。
11)mdtest_hard_read:
多個客戶端、多個任務、并發地去讀取自己在mdtest_hard_write階段寫入的文件,讀取3901 Bytes數據。該測試模擬人工智能業務對元數據集群open,并讀取指定小文件內容的性能。
12)mdtest_hard_delete:
多個客戶端、多個任務、并發地去delete自己在mdtest_hard_write階段創建的文件。該測試模擬文件系統對海量小文件元數據以及數據刪除的性能。
從這些測試項可以看出,IO500主要測試了四大類場景:
1)存儲集群的吞吐能力,驗證多個任務順序寫,相互之間有無數據沖突,看集群能提供的寫入、讀取吞吐的上限。ior_easy_write、ior_easy_read主要用于測試這個場景。
2)存儲集群對于共享讀寫的處理能力,多個任務共享、協同地讀寫同一個文件,需要做一定的并發控制,否則測試將因數據錯亂而報錯。ior_hard_write、ior_hard_read主要用于測試這個場景,這部分測試針對的是HPC的典型IO類型。
3)存儲集群對于小文件IO的處理能力,比如mdtest_hard_read、mdtest_hard_write的讀寫3901 Bytes,如果數據布局不當,這項測試的性能值會很低。
4)存儲集群元數據的處理能力,重點考察集群創建、查詢、刪除文件的性能。其中md_hard_*還會去測試單個目錄下大量文件(單目錄下1.9億文件)這個場景的性能。
YRCloudFile為了支持單目錄下海量文件的測試,改進了原有的元數據放置策略算法,增加了虛擬目錄層,用于拆分海量文件的目錄,分散目錄熱點,從而提升總體性能。在測試中,YRCloudFile在海量小文件場景下表現突出。
通過2019年兩次參與IO500測試,我們在不斷學習和追趕國際領先存儲企業的先進技術,分析IO500的測試,我們可以看到:
1) IO500委員會由存儲業界知名學者和專家組成,為了加強測試數據的中立,在下半年測試中,委員會針對測試腳本進行了修正,更加確保測試數據的公平、公正,同時模擬真實的高性能計算及人工智能場景,其測試數據可作為評估存儲系統總體能力的一個重要指標。
2) 參與的廠商持續保持非常高的熱情和投入,上半年16家,下半年15家,既有傳統廠商如DDN、NetApp、Dell、IBM、HPE、浪潮,也有新興存儲廠商WekaIO、Qumulo、焱融科技,各家都非常重視IO500的測試成績,一方面這是國際上對存儲性能的公認指標,另一方面由于IO500測試腳本模擬的真實的IO場景,對于各個廠商持續改進產品也是非常好的輸入。
從測試結果看,焱融科技和科大訊飛此次發布的測試數據,也是在對YRCloudFile做了針對性改進后獲得了優異的成績。
接下來,焱融科技將深入總結此次測試中獲得的寶貴經驗,將多項技術創新進一步反饋到產品中,幫助國內眾多人工智能、高性能計算的用戶持續提高AI訓練和數據分析的性能,為客戶提供更優秀的國產高性能存儲產品。