[發明專利]Linux平臺上使用FUSE的文件移動方法在審
| 申請號: | 201610064269.5 | 申請日: | 2016-01-29 |
| 公開(公告)號: | CN105740413A | 公開(公告)日: | 2016-07-06 |
| 發明(設計)人: | 李良 | 申請(專利權)人: | 珠海全志科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 深圳市君盈知識產權事務所(普通合伙) 44315 | 代理人: | 葉志頻 |
| 地址: | 519000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | linux 平臺 使用 fuse 文件 移動 方法 | ||
技術領域
本發明涉及Linux平臺下用戶空間文件系統(FUSE,FilesysteminUserspace)中的文件移動領域,具體涉及一種Linux平臺上使用FUSE的內存數據零拷貝的文件移動方法。
背景技術
Linux服務器由于具有良好的穩定性和開放性,支持各種文件系統,因而在互聯網中使用日益廣泛。在Linux服務器中,具有用戶空間文件系統(FUSE,FilesysteminUserspace)功能。當用戶使用FUSE,通過應用程序向底層設備傳輸數據時,需要多次在用戶空間和內核空間拷貝數據,這會消耗內存帶寬和CPU帶寬,嚴重影響系統的執行效率,最終的結果是導致讀寫性能下降。
此外,隨著多媒體的發展,在Linux服務器上移動大文件的需求不斷增多。在響應對大文件的移動需求時,使用自適應的直接IO加速方法可以提高對順序讀寫大文件的性能。但自適應的直接IO加速方法也會使隨機小文件的讀寫效率急劇降低,破壞服務器整體的讀寫均衡性,無法同時滿足快速、高效的移動大文件和小文件的業務需求。
發明內容
本發明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種共享內存數據的文件移動方案,克服了現有技術條件下不斷在用戶空間和內核空間之間進行切換,致使CPU帶寬和內存帶寬消耗過高,系統執行效率低,導致讀寫性能下降的缺陷,并且完全不需要硬件的支持。
本發明解決其技術問題所采用的技術方案是:一種Linux平臺上使用FUSE的文件移動方法,所述Linux平臺包括用戶空間及內核空間,所述Linux平臺上使用FUSE的文件移動方法包括:使用FUSE在內核空間中獲取用戶空間讀寫進程的頁面指針;通過所獲取的頁面指針,在所述用戶空間讀寫進程與相應的內核空間守護進程之間共享內存;在所述守護進程中,將所述用戶空間讀寫進程的頁面指針改寫為需要移動的文件所在的頁面指針,以實現內存空間零拷貝的文件移動。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,所述在內核空間獲取用戶空間頁面指針過程包括如下步驟:用戶應用程序開啟讀寫FUSE的進程,通過系統調用后進入內核空間;在內核空間中,FUSE獲取用戶空間傳遞過來的參數和數據緩沖區對應的頁面指針,并將所述頁面指針封裝成請求后投遞到FUSE的請求隊列中;FUSE的服務對象開啟與用戶應用程序所在讀寫進程相對應的守護進程,從內核空間獲取由所述讀寫進程生成的并已加入所述FUSE隊列中待執行的請求;所述守護進程通過隊列等待機制獲取到所需對應請求。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,使用“get_user_pages”操作在內核態中獲取所述用戶空間的頁面指針,將用戶空間進程中的頁面指針寫入所述FUSE隊列中。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,所述共享內存的步驟包括:在內核態調用“mmap”操作進行內存數據共享,并按照所述請求的目的直接將待移動的數據填充至所述讀寫進程與所述守護進程共享的內存數據緩沖區,實現內存數據零拷貝的文件移動。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,所述共享內存的步驟還包括:將數據頭也進行數據共享,以進一步減少拷貝的數據量。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,所述共享內存的步驟還包括:所述守護進程在請求完成執行以后,將執行結果返回給所述用戶空間中的讀寫進程。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,使用“mmap”操作在所述用戶進程和守護進程之間實現內存共享。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,利用“remap_pfn_range”操作或是缺頁中斷實現所述“mmap”操作。
所述Linux平臺上使用FUSE的文件移動方法的進一步改進,FUSE請求的最大數據長度由FUSE設置,默認為128KB。
本發明的有益效果在于,通過開啟兩個進程,在兩個進程之間傳遞頁面指針,從而共享內存數據,達到內存數據零拷貝而移動文件的效果。
本發明的有意效果還在于,不需要硬件支持DMA,就能夠實現內存零拷貝移動文件,使硬件成本降低。
本發明還可在如exfat,androidsdcard服務,分布式文件系統moosefs等其他用戶文件系統和應用中使用。
附圖說明
下面將結合附圖及實施例對本發明作進一步說明,附圖中:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海全志科技股份有限公司,未經珠海全志科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610064269.5/2.html,轉載請聲明來源鉆瓜專利網。





