[發明專利]一種將對象存儲系統實現為本地文件系統的方法有效
| 申請號: | 201710040491.6 | 申請日: | 2017-01-20 |
| 公開(公告)號: | CN107045530B | 公開(公告)日: | 2019-07-26 |
| 發明(設計)人: | 阮培源;王同洋;路松峰;黃炎;劉儒君;廖衛國 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F16/172 | 分類號: | G06F16/172 |
| 代理公司: | 武漢東喻專利代理事務所(普通合伙) 42224 | 代理人: | 方可 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 對象 存儲系統 實現 本地 文件系統 方法 | ||
1.一種將對象存儲系統實現為本地文件系統的方法,其特征在于,包括:
(1)文件系統元數據緩存:將本地文件系統文件的絕對路徑名作為緩存項的關鍵字,計算得到一個哈希值,以哈希值作為元數據緩存項的關鍵字,將緩存項散列到哈希表中,其中,緩存項結構包括類型、修改時間、緩存時間、是否目錄、狀態、互斥鎖、反向指針、哈希沖突雙向鏈表以及最近最少使用雙向鏈表;
(2)文件系統目錄遍歷:當應用程序通過可移植操作系統接口POSIX兼容的C庫接口readdir訪問本地文件系統的特定目錄時,實現readdir接口所采用算法核心是:預先分配內存池,初始化池中描述目錄結構的描述體dir_info,在每次遍歷文件系統目錄時,都向池中請求dir_info描述體,當池中的dir_info描述體耗盡或達到某個閥值時,啟動回收算法,釋放未被占用的dir_info描述體,歸還到內存池中,應用程序重新從內存池中獲取請求dir_info描述體;
(3)文件的打開:當應用程序讀或者寫文件時,都會執行打開文件操作,對于每個打開文件操作,給所打開的文件分配一個描述打開操作的打開文件句柄內存結構,其中,該打開文件句柄記錄了:(a)描述打開文件的標記,打開文件標記分為讀、寫、讀和寫三種情況;(b)以字節為單位的文件對象的大小;(c)讀緩存區的內存描述體,但實際的讀緩存區滯后到具體第一次讀操作請求時才分配;(d)描述從swift對象存儲系統下載對象的下載上下文結構,該結構體是在打開文件時預分配的,與之關聯的讀緩存區是滯后分配的;(e)描述將文件作為對象上傳到swift對象存儲系統的上傳上下文結構,該結構體是在打開文件時預分配的,但與之關聯的上傳緩存區無需額外分配,復用應用程序寫操作的write調用緩存區即可;(f)描述在寫文件操作時,實際上傳文件到swift對象存儲系統過程的內存描述符上傳任務描述結構,該描述結構體中記錄了上傳狀態、線程ID、互斥訪問鎖、下載計數器、能寫信號量、寫完成信號量、能上傳信號量以及任務結束信號量;整個上傳過程中,用戶的write系統調用與上傳用戶數據到swift對象存儲系統之間的同步邏輯,由這四個信號量進行控制;
(4)讀文件:對于應用程序讀文件的操作,采用的是預讀策略,所謂預讀是指從當前請求偏移處開始,讀出比當前請求數據量更大的一塊到內存緩存起來,每次讀操作時,首先檢查所請求的數據是否在緩存區,如果在,則直接從緩存區中讀出,無需向后端的swift對象存儲系統請求數據,如果不在緩存區,則向后端的swift對象存儲系統請求比當前請求更大的一段數據到內存緩存起來;當應用程序讀文件之前,必須先以讀或者讀和寫方式打開文件,并建立打開文件句柄的內存結構,當應用程序第一次調用read系統調用讀文件時,首先分配一個緩存區,緩存區的大小通過配置文件進行調節,但最小為1Mbytes,然后,采取“預讀”策略,預先從swift對象存儲后端將文件對象的內容一次讀滿緩存區,應用程序后續的讀文件系統調用,將先檢查所讀數據是否已經在緩存區中,如果不在,則再觸發一次對swift對象存儲后端的讀操作,如此反復進行,直到應用程序關閉文件,當文件被關閉時,釋放打開文件句柄所占用的內存和信號量資源;
(5)文件寫入:對于應用程序的寫文件操作,采用的是零次拷貝,分塊寫入的策略,當應用程序打開文件準備寫入數據時,建立打開文件句柄的內存結構,每次應用程序寫文件操作的write系統調用的用戶數據緩存區將被復用為“上傳緩存區”,上傳線程直接從該緩存區中讀取數據上傳到swift對象存儲后端,當該緩存區中的所有數據都上傳完畢時,視該次write系統調用成功執行,下一次write系統調用都重復該過程,直到該文件被關閉,當文件被關閉時,釋放打開文件句柄所占用的內存和信號量資源;在整個寫文件過程中,應用程序的write系統調用與上傳數據到swift對象存儲后端這兩個動作之間的同步,由打開文件句柄所引用的上傳任務描述結構中的四個信號量進行精確控制,而且在用戶態空間沒有任何的數據拷貝操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710040491.6/1.html,轉載請聲明來源鉆瓜專利網。





