成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NFS協(xié)議端到端實例解析之寫數(shù)據(jù)流程

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
服務(wù)端向RPC注冊了各種回調(diào)函數(shù),當(dāng)接收到客戶端的請求時會調(diào)用具體的回調(diào)函數(shù)進行處理。本例將調(diào)用nfsd3_proc_write函數(shù)。該函數(shù)最后調(diào)用VFS層的寫數(shù)據(jù)函數(shù),而VFS寫數(shù)據(jù)函數(shù)則調(diào)用具體文件系統(tǒng)(例如Ext4)的函數(shù)完成最終的寫數(shù)據(jù)操作。?

對于NFS來說,其寫模式包含同步寫,異步寫和直接寫等模式。模式的差異在于打開文件時指定的參數(shù)。限于篇幅,本文很難一一介紹所有模式,這里主要介紹一個核心流程。

NFS作為Linux下的文件系統(tǒng),為了實現(xiàn)與VFS的對接,NFS也要實現(xiàn)一套函數(shù)指針接口。以文件相關(guān)的操作為例,其實現(xiàn)的函數(shù)指針如下所示。對于寫數(shù)據(jù)來說,VFS會調(diào)用NFS的nfs_file_write函數(shù)。

圖片圖片

在該函數(shù)中,如果有SYNC標(biāo)記則會觸發(fā)同步寫的流程,否則寫入緩存后就會返回給調(diào)用者。本節(jié)我們主要關(guān)注觸發(fā)同步寫的流程,也就是數(shù)據(jù)是如何從NFS文件系統(tǒng)發(fā)送到服務(wù)端的。

直接寫和同步寫都會觸發(fā)將數(shù)據(jù)發(fā)送到服務(wù)端的流程,本節(jié)以同步寫為例介紹數(shù)據(jù)是如何發(fā)送到服務(wù)端的。如果觸發(fā)同步刷寫,那么會調(diào)用nfs_file_fsync函數(shù),該函數(shù)是將緩存數(shù)據(jù)傳輸?shù)椒?wù)端的入口。該函數(shù)到后端訪問接口nfs_do_writepage的主線流程如下圖所示。

圖片圖片

nfs_file_fsync主線流程

這里nfs_do_writepage用于將一個緩存頁發(fā)送到服務(wù)端,具體實現(xiàn)如下代碼所示。其中主要是功能由nfs_page_async_flush函數(shù)完成。這里比較重要的參數(shù)是pgio,在該參數(shù)中有頁數(shù)據(jù)傳輸相關(guān)的函數(shù)指針,關(guān)于該參數(shù)類型的詳細(xì)定義請參考內(nèi)核源代碼。

圖片圖片

然后我們再從nfs_page_async_flush函數(shù)開始計數(shù)看一下主線流程,具體下圖所示。函數(shù)nfs_generic_pg_pgios就是在pgio初始化的函數(shù)指針,其在nfs_pageio_doio中被調(diào)用。該主線流程最終調(diào)用到nfs_initiate_pgio函數(shù),該函數(shù)完成PRC消息和參數(shù)的封裝,然后調(diào)用RPC服務(wù)的API函數(shù)完成請求。

nfs_page_async_flush主線流程nfs_page_async_flush主線流程

當(dāng)nfs_initiate_pgio調(diào)用rpc_run_task函數(shù)后,整個流程就進入RPC服務(wù)內(nèi)部了。也就是進入RPC服務(wù)狀態(tài)機的流程了。關(guān)于RPC狀態(tài)機的處理流程的介紹請參考本號相關(guān)內(nèi)容。

最后,我們將整個寫流程的簡圖展示一下,這里包括客戶端的函數(shù)調(diào)用流程和服務(wù)端的處理流程。其中客戶端的流程中省略了部分函數(shù)調(diào)用。

網(wǎng)絡(luò)文件系統(tǒng)訪問示意圖網(wǎng)絡(luò)文件系統(tǒng)訪問示意圖

服務(wù)端向RPC注冊了各種回調(diào)函數(shù),當(dāng)接收到客戶端的請求時會調(diào)用具體的回調(diào)函數(shù)進行處理。本例將調(diào)用nfsd3_proc_write函數(shù)。該函數(shù)最后調(diào)用VFS層的寫數(shù)據(jù)函數(shù),而VFS寫數(shù)據(jù)函數(shù)則調(diào)用具體文件系統(tǒng)(例如Ext4)的函數(shù)完成最終的寫數(shù)據(jù)操作。

責(zé)任編輯:武曉燕 來源: 數(shù)據(jù)存儲張
相關(guān)推薦

2021-08-27 14:48:09

數(shù)據(jù)

2010-08-03 09:59:30

NFS服務(wù)

2024-07-17 09:03:56

2025-01-16 10:11:58

2023-08-08 09:52:13

系統(tǒng)端架構(gòu)NFS

2010-01-20 16:12:16

專家答疑端到端加密保護數(shù)據(jù)

2024-03-13 09:39:45

端到端自動駕駛

2021-05-27 14:23:50

加密端到端加密加密技術(shù)

2021-06-30 09:00:00

測試Web軟件

2020-10-26 13:51:11

Kafka數(shù)據(jù)端到端

2022-09-02 10:20:44

網(wǎng)絡(luò)切片網(wǎng)絡(luò)5G

2023-02-16 08:00:00

數(shù)據(jù)流客戶端開發(fā)數(shù)據(jù)集

2018-10-25 14:12:49

Oracle數(shù)據(jù)安全

2010-06-28 16:12:43

ARP協(xié)議

2024-02-21 09:14:32

端到端自動駕駛

2025-02-27 00:00:00

2024-06-27 09:50:56

2024-03-04 09:51:41

自動駕駛特斯拉

2020-05-08 15:07:29

Zoom收購Keybase

2023-03-16 14:29:48

Vue.js測試
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91精品久久久久久久 | 国产伦精品一区二区三区高清 | 亚洲成人久久久 | 日韩精品 电影一区 亚洲 | 亚洲精品福利视频 | 成人av电影在线观看 | 日韩精品免费一区 | 日日操夜夜摸 | 一级看片免费视频囗交动图 | 性高湖久久久久久久久aaaaa | 国产成人小视频 | 色综合色综合色综合 | 亚洲精品一区中文字幕乱码 | 亚洲精品中文字幕 | 亚洲男人的天堂网站 | 中文字幕日韩一区 | 亚洲性爰| 免费看a| 日韩在线视频观看 | 国产精品亚洲一区二区三区在线观看 | 国产一区二区精品在线观看 | av在线天天 | 亚洲精品一二三 | 国产精品久久久久久久久久久久午夜片 | 国产色婷婷久久99精品91 | 久久亚洲天堂 | 97超碰人人草 | 91视频一区二区 | 一区二区三区欧美 | 国产精品揄拍一区二区久久国内亚洲精 | 亚洲欧美在线一区 | 国产日韩视频 | 一区二区国产精品 | 免费高清av | 日韩精品久久久久 | 欧美日韩黄 | 中文字幕 国产 | 国产1区| 中国一级毛片免费 | 成人久草 | 无毛av |