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