人人妻人人澡人人爽人人精品av_精品乱码一区内射人妻无码_老司机午夜福利视频_精品成品国色天香摄像头_99精品福利国产在线导航_野花社区在线观看视频_大地资源在线影视播放_东北高大肥胖丰满熟女_金门瓶马车内剧烈运动

首頁>國內(nèi) > 正文

Linux NFS文件系統(tǒng)端架構(gòu)與代碼解析

2023-08-08 10:21:14來源:數(shù)據(jù)存儲張

我們知道NFS分布式文件系統(tǒng)是一個客戶端-服務(wù)端架構(gòu)(CS架構(gòu))。其客戶端是Linux內(nèi)核中的一個文件系統(tǒng),跟Ext4和XFS類似,差異在于其數(shù)據(jù)請求不存儲在本地磁盤,而是通過網(wǎng)絡(luò)發(fā)送到服務(wù)端進(jìn)行處理。


(相關(guān)資料圖)

圖片

從上圖所示的整體架構(gòu)圖上可以看出,NFS也是位于VFS下的文件系統(tǒng)。因此當(dāng)NFS掛載后,其與本地文件系統(tǒng)并沒有任何差異,用戶在使用的時候也是透明的。

1NFS整體架構(gòu)

作為VFS下的具體文件系統(tǒng),NFS主要需要實現(xiàn)兩套函數(shù)指針,對于文件(對于目錄來說是另外的指針)來說前端實現(xiàn)了nfs_file_operations,用于適配VFS的調(diào)用。后端的接口實現(xiàn)則是nfs_file_aops,其用于實現(xiàn)與NFS服務(wù)端的通訊。

圖片

2nfs_file_operations實現(xiàn)

nfs_file_operations的實現(xiàn)如下所示,可以看出這里實現(xiàn)了文件讀寫相關(guān)的函數(shù)接口,比如打開,讀寫,尋址和鎖等等。

圖片

以寫數(shù)據(jù)為例,當(dāng)用戶調(diào)用write API時,首先會觸發(fā)VFS的vfs_write函數(shù),而該函數(shù)通過函數(shù)指針的方式調(diào)用nfs_file_write,具體如下所示。

圖片

3nfs_file_aops實現(xiàn)

nfs_file_aops的具體實現(xiàn)如下所示,這里主要實現(xiàn)了如何將緩存頁的數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到服務(wù)端,或者從服務(wù)端接收消息。其中nfs_writepags用于將緩存頁發(fā)送到服務(wù)端。對于本地文件系統(tǒng)來說該函數(shù)的實現(xiàn)通常是將數(shù)據(jù)寫入持久化的設(shè)備上。

圖片

對于讀數(shù)據(jù)來說通常是通過nfs_readpages,該函數(shù)則用于從遠(yuǎn)端設(shè)備讀取數(shù)據(jù)。除此之外還有很多其它函數(shù)實現(xiàn),本文不再贅述。

本文主要從架構(gòu)上來介紹NFS文件系統(tǒng)的實現(xiàn),后續(xù)我們會結(jié)合具體的流程深入到函數(shù)實現(xiàn)的細(xì)節(jié)。更多精彩內(nèi)容還請關(guān)注本號。

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 [email protected]  備案號: 京ICP備2022022245號-21