UFS分布式文件系統(tǒng)
UFS是一款分布式文件系統(tǒng)產(chǎn)品,它能夠為運行于 UCloud 公有云、物理云、托管云上的各類主機提供高可用、高可靠、易拓展的文件存儲功能。通過 UFS 產(chǎn)品提供的共享存儲功能,可以方便地為各類數(shù)據(jù)備份、serverless、AI 數(shù)據(jù)分析、高性能 web 站點等應(yīng)用場景提供強有力的支撐。
之前UFS僅支持NFSv4.0協(xié)議,只能提供給Linux主機使用。針對用戶需要在Windows主機使用UFS的需求,近日,UCloud優(yōu)刻得升級UFS產(chǎn)品功能,支持SMB和NFSv3接入?yún)f(xié)議。存量UFS實例能夠直接使用NFSv3協(xié)議掛載,新建UFS實例時則可以選擇接入NFS或者SMB。從而使UFS擁有了全量接入Windows主機的能力,讓W(xué)indows用戶也能充分利用UFS分布式文件系統(tǒng)創(chuàng)造價值。
下圖為UFS整體io處理架構(gòu)。
SMB介紹和支持
SMB(Server Message Block)是一種網(wǎng)絡(luò)文件共享協(xié)議,用于共享文件和打印機等資源,Windows主機廣泛使用該協(xié)議進行文件的共享。當(dāng)前UFS接入支持的協(xié)議版本有CIFS,SMB2.0,SMB2.1,SMB3.0。
和本地搭建SMB服務(wù)比較,UFS擁有以下優(yōu)勢:高容量,彈性擴展,可支持最高PB級別的容量按需進行擴容;高可靠,數(shù)據(jù)存儲有跨機器、跨機架的三個副本;高可用,整體服務(wù)路徑均采用節(jié)點多實例設(shè)計和部署,沒有單機故障的隱患。
通過SMB協(xié)議掛載訪問UFS,Windows用戶可以使用UFS分布式文件系統(tǒng)進行海量視頻素材的存儲和編輯等。
NFSv3提升小文件操作的吞吐
Linux和Windows主機均可以使用NFSv3掛載UFS文件系統(tǒng),在大批量操作小文件的場景下,NFSv3相對于NFSv4.0性能更好。
以下我們分別介紹兩種協(xié)議版本讀取文件的流程。
NFSv4.0讀取文件流程:
1. 打開文件:PUTFH設(shè)置文件父目錄file handle(文件系統(tǒng)內(nèi)唯一標(biāo)識文件對象),OPEN打開指定文件,GETFH獲取打開文件的file handle,ACCESS檢查文件訪問權(quán)限,GETATTR獲取文件屬性信息。
2. 確認Open-Owner(可選):如果server需要confirm,客戶端再發(fā)起OPEN_CONFIRM。
3. 讀取數(shù)據(jù):PUTFH設(shè)置文件file handle,使用返回的stateid讀取文件。
4. 關(guān)閉打開文件:PUTFH設(shè)置文件file handle,關(guān)閉stateid指定的文件。
NFSv3讀取文件流程:
1. 查詢文件:LOOKUP查詢指定目錄下的文件,返回文件file handle和屬性信息。
2. 確認訪問權(quán)限:ACCESS檢查文件是否有訪問權(quán)限。
3. 讀取數(shù)據(jù):使用文件file handle讀取數(shù)據(jù)。
得益于NFSv4.0引入的COMPOUND Procedure,額外支持狀態(tài)的NFSv4.0協(xié)議RPC交互數(shù)量一般也和NFSv3一樣多。但是為什么NFSv4.0大批量操作小文件的性能會遠遠差于NFSv3?為了支持狀態(tài),NFSv4.0打開文件需要提供Open-Owner,協(xié)議中規(guī)定針對每個Open-Owner,同一時刻只能發(fā)起一個相關(guān)請求;在Linux內(nèi)核實現(xiàn)中,同一個用戶的進程會共用同一個Open-Owner,因此在大量小文件讀寫的情況下,文件的打開流程會變成串行操作,影響性能。所以在大批量操作小文件并且沒有文件鎖需求的場景下,NFSv3相比NFSv4.0可以大幅度提高性能。
以下針對小文件夾的讀寫場景分別在NFSv3和NFSv4.0掛載下進行了測試。測試環(huán)境為Centos8.3虛機,測試文件為Linux內(nèi)核源碼包,有8w+文件。
下面的表格為測試結(jié)果,可以看出在大批量操作小文件的情況下NFSv3比NFSv4.0性能好得多。
某知名在線英語教育公司使用UCloud GPU云主機進行AI訓(xùn)練,訓(xùn)練數(shù)據(jù)存儲在UFS分布式文件系統(tǒng)中,最開始這家公司的客戶端使用的是NFSv4.0掛載,使用過程中發(fā)現(xiàn)訓(xùn)練性能不理想,在沒有達到硬件瓶頸的情況下,并發(fā)運行多個訓(xùn)練任務(wù)也并沒有顯著減少訓(xùn)練時間。經(jīng)過排查后發(fā)現(xiàn),NFS掛載讀取吞吐較低,用戶的訓(xùn)練數(shù)據(jù)小文件居多,監(jiān)控數(shù)據(jù)中看到大量的open請求,導(dǎo)致讀取數(shù)據(jù)性能差。更換使用NFSv3掛載后,沒有額外的open開銷,訓(xùn)練速度提升了至少2倍。
總結(jié)和展望
UFS分布式文件系統(tǒng)的接入能力升級,支持了Windows主機使用,加速了用戶特定場景的使用功能。UFS還在進行產(chǎn)品私有化的開發(fā)工作,未來會研發(fā)并行文件系統(tǒng),以更低的io時延,更高的吞吐,支撐HPC場景應(yīng)用。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!