UFS分布式文件系統(tǒng)
UFS是一款分布式文件系統(tǒng)產(chǎn)品,它能夠?yàn)檫\(yùn)行于 UCloud 公有云、物理云、托管云上的各類主機(jī)提供高可用、高可靠、易拓展的文件存儲功能。通過 UFS 產(chǎn)品提供的共享存儲功能,可以方便地為各類數(shù)據(jù)備份、serverless、AI 數(shù)據(jù)分析、高性能 web 站點(diǎn)等應(yīng)用場景提供強(qiáng)有力的支撐。
之前UFS僅支持NFSv4.0協(xié)議,只能提供給Linux主機(jī)使用。針對用戶需要在Windows主機(jī)使用UFS的需求,近日,UCloud優(yōu)刻得升級UFS產(chǎn)品功能,支持SMB和NFSv3接入?yún)f(xié)議。存量UFS實(shí)例能夠直接使用NFSv3協(xié)議掛載,新建UFS實(shí)例時(shí)則可以選擇接入NFS或者SMB。從而使UFS擁有了全量接入Windows主機(jī)的能力,讓W(xué)indows用戶也能充分利用UFS分布式文件系統(tǒng)創(chuàng)造價(jià)值。
下圖為UFS整體io處理架構(gòu)。
SMB介紹和支持
SMB(Server Message Block)是一種網(wǎng)絡(luò)文件共享協(xié)議,用于共享文件和打印機(jī)等資源,Windows主機(jī)廣泛使用該協(xié)議進(jìn)行文件的共享。當(dāng)前UFS接入支持的協(xié)議版本有CIFS,SMB2.0,SMB2.1,SMB3.0。
和本地搭建SMB服務(wù)比較,UFS擁有以下優(yōu)勢:高容量,彈性擴(kuò)展,可支持最高PB級別的容量按需進(jìn)行擴(kuò)容;高可靠,數(shù)據(jù)存儲有跨機(jī)器、跨機(jī)架的三個(gè)副本;高可用,整體服務(wù)路徑均采用節(jié)點(diǎn)多實(shí)例設(shè)計(jì)和部署,沒有單機(jī)故障的隱患。
通過SMB協(xié)議掛載訪問UFS,Windows用戶可以使用UFS分布式文件系統(tǒng)進(jìn)行海量視頻素材的存儲和編輯等。
NFSv3提升小文件操作的吞吐
Linux和Windows主機(jī)均可以使用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. 確認(rèn)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. 確認(rèn)訪問權(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大批量操作小文件的性能會遠(yuǎn)遠(yuǎn)差于NFSv3?為了支持狀態(tài),NFSv4.0打開文件需要提供Open-Owner,協(xié)議中規(guī)定針對每個(gè)Open-Owner,同一時(shí)刻只能發(fā)起一個(gè)相關(guān)請求;在Linux內(nèi)核實(shí)現(xiàn)中,同一個(gè)用戶的進(jìn)程會共用同一個(gè)Open-Owner,因此在大量小文件讀寫的情況下,文件的打開流程會變成串行操作,影響性能。所以在大批量操作小文件并且沒有文件鎖需求的場景下,NFSv3相比NFSv4.0可以大幅度提高性能。
以下針對小文件夾的讀寫場景分別在NFSv3和NFSv4.0掛載下進(jìn)行了測試。測試環(huán)境為Centos8.3虛機(jī),測試文件為Linux內(nèi)核源碼包,有8w+文件。
下面的表格為測試結(jié)果,可以看出在大批量操作小文件的情況下NFSv3比NFSv4.0性能好得多。
某知名在線英語教育公司使用UCloud GPU云主機(jī)進(jìn)行AI訓(xùn)練,訓(xùn)練數(shù)據(jù)存儲在UFS分布式文件系統(tǒng)中,最開始這家公司的客戶端使用的是NFSv4.0掛載,使用過程中發(fā)現(xiàn)訓(xùn)練性能不理想,在沒有達(dá)到硬件瓶頸的情況下,并發(fā)運(yùn)行多個(gè)訓(xùn)練任務(wù)也并沒有顯著減少訓(xùn)練時(shí)間。經(jīng)過排查后發(fā)現(xiàn),NFS掛載讀取吞吐較低,用戶的訓(xùn)練數(shù)據(jù)小文件居多,監(jiān)控?cái)?shù)據(jù)中看到大量的open請求,導(dǎo)致讀取數(shù)據(jù)性能差。更換使用NFSv3掛載后,沒有額外的open開銷,訓(xùn)練速度提升了至少2倍。
總結(jié)和展望
UFS分布式文件系統(tǒng)的接入能力升級,支持了Windows主機(jī)使用,加速了用戶特定場景的使用功能。UFS還在進(jìn)行產(chǎn)品私有化的開發(fā)工作,未來會研發(fā)并行文件系統(tǒng),以更低的io時(shí)延,更高的吞吐,支撐HPC場景應(yīng)用。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )