一種分布式文件系統的目錄容量管理方法及系統的制作方法
【技術領域】
[0001]本發明涉及分布式文件系統技術領域,特別是涉及一種分布式文件系統的目錄容量管理方法及系統。
【背景技術】
[0002]目前,分布式文件系統已經發展了很長時間,但是對于配額功能的支持一直是困擾用戶的問題,尤其是目錄容量配額,不能實時統計目錄的容量,這直接導致當前目錄容量配額的準確性不高,易出現目錄下的數據大小超出配額值的情況。
[0003]在分布式文件系統中,磁盤目錄容量配額可以幫助管理員實現管理目錄大小的目的,當目錄容量達到配額限度或接近配額限度時可以及時郵件、短信提醒,實現對目錄使用的合理控制,提高訪問數據的效率和管理、維護數據的方便性。
[0004]但是,在現有的分布式文件系統中,由于其是直接使用目錄iNode(索引節點)大小來表示當前的目錄容量大小,而目錄iNode大小并不能實時統計目錄容量大小,這也就直接導致當前目錄容量配額的準確性存在偏差,滿足不了客戶對配額準確性要求比較高的使用場景,比如,有多個用戶在客戶端向系統寫入數據,如果有多個用戶在寫同一個目錄(文件夾),由于服務端不能給客戶端實時更新當前目錄容量大小,那么客戶端當前記錄的目錄容量大小已經不能正確表示當前目錄的真實大小,所以繼續寫入數據時,使用當前目錄大小判斷是否超過配額值會導致寫入數據大小超過配額值。
[0005]基于此,亟需一種能夠及時更新目錄容量大小,進而提高配額準確性的方法。
【發明內容】
[0006]有鑒于此,本發明提供了一種分布式文件系統的目錄容量管理方法及系統,以實現及時更新目錄容量大小,進而提高配額準確性的目的。
[0007]為解決上述技術問題,本發明提供一種分布式文件系統的目錄容量管理方法,該方法包括:
[0008]客戶端在檢測到對目標文件的寫操作時生成所述目標文件所屬目錄的已用目錄容量大小的更新請求,并將所述更新請求發送至服務端;
[0009]所述服務端在收到所述更新請求時,遍歷所述目標文件所屬目錄下的所有文件,得到當前已用目錄容量大小,并將所述當前已用目錄容量大小反饋至所述客戶端。
[0010]上述方法中,優選地,在所述服務端將所述當前已用目錄容量大小反饋至所述客戶端之后,還包括:
[0011 ]所述客戶端判斷所述當前已用目錄容量大小達到針對所述目標文件所屬目錄的目錄配額限度;
[0012]如果達到,則顯示所述目標文件所屬目錄已達所述目錄配額限度的提示信息;
[0013]如果未達到,則顯示所述目標文件所屬目錄當前可用容量大小的提示信息。
[0014]上述方法中,優選地,在所述服務端將所述當前已用目錄容量大小反饋至所述客戶端之后,還包括:
[0015]所述客戶端根據所述當前已用目錄容量大小更新已用目錄容量參數。
[0016]上述方法中,優選地,所述更新請求包含于針對所述寫操作的寫請求,所述客戶端在檢測到對所述目標文件的所述寫操作時,生成所述寫請求并將所述寫請求發送至所述服務端。
[0017]上述方法中,優選地,所述客戶端在檢測到對目標文件的寫操作時生成所述目標文件所屬目錄的已用目錄容量大小的更新請求,包括:
[0018]所述客戶端在檢測到對目標文件的寫操作時,判斷提高配額準確性模式是否開啟,如果是,則生成所述目標文件所屬目錄的已用目錄容量大小的更新請求。
[0019]本發明還提供了一種分布式文件系統的目錄容量管理系統,該系統包括:
[0020]客戶端,用于在檢測到對目標文件的寫操作時生成所述目標文件所屬目錄的已用目錄容量大小的更新請求,并將所述更新請求發送至服務端;
[0021 ]所述服務端,用于在收到所述更新請求時,遍歷所述目標文件所屬目錄下的所有文件,得到當前已用目錄容量大小,并將所述當前已用目錄容量大小反饋至所述客戶端。
[0022]上述系統中,優選地,所述客戶端還用于在所述服務端將所述當前已用目錄容量大小反饋至所述客戶端之后,判斷所述當前已用目錄容量大小達到針對所述目標文件所屬目錄的目錄配額限度;如果達到,則顯示所述目標文件所屬目錄已達所述目錄配額限度的提示信息;如果未達到,則顯示所述目標文件所屬目錄當前可用容量大小的提示信息。
[0023]上述系統中,優選地,所述客戶端還用于在所述服務端將所述當前已用目錄容量大小反饋至所述客戶端之后,根據所述當前已用目錄容量大小更新已用目錄容量參數。
[0024]上述系統中,優選地,所述更新請求包含于針對所述寫操作的寫請求,所述客戶端具體用于在檢測到對所述目標文件的所述寫操作時,生成所述寫請求并將所述寫請求發送至所述服務端。
[0025]上述系統中,優選地,所述客戶端用于在檢測到對目標文件的寫操作時生成所述目標文件所屬目錄的已用目錄容量大小的更新請求,包括:
[0026]所述客戶端具體用于在檢測到對目標文件的寫操作時,判斷提高配額準確性模式是否開啟,如果是,則生成所述目標文件所屬目錄的已用目錄容量大小的更新請求。
[0027]以上本發明提供的一種分布式文件系統的目錄容量管理方法及系統中,客戶端主動向服務端請求更新已用目錄容量大小,其在檢測到對目標文件的寫操作時生成所述目標文件所屬目錄的已用目錄容量大小的更新請求,并將所述更新請求發送至服務端;所述服務端在接收到更新請求時,遍歷所述目標文件所屬目錄下的所有文件(而不是直接使用目錄iNode大小),得到當前已用目錄容量大小,并將所述當前已用目錄容量大小反饋至所述客戶端。可見,本發明有效實現了及時更新目錄容量大小,進而提高配額準確性的目的。
【附圖說明】
[0028]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0029]圖1為本發明實施例提供的一種分布式文件系統的目錄容量管理方方法的流程圖;
[0030]圖2為本發明實施例提供的一種分布式文件系統的目錄容量管理方系統的結構框圖示意圖。
【具體實施方式】
[0031]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0032]本發明的核心是提供一種分布式文件系統的目錄容量管理方法及系統,以實現及時更新目錄容量大小,進而提高配額準確性的目的。
[0033]為了使本技術領域的人員更好地理解本發明方案,下面結合附圖和【具體實施方式】對本發明作進一步的詳細說明。
[0034]參考圖1,圖1示出了本發明實施例提供的一種分布式文件系統的目錄容量管理方法的流程圖,該方法具體可以包括如下步驟:
[0035]步驟S100、客戶端在檢測到對目標文件的寫操作時生成目標文件所屬目錄的已用目錄容量大小的更新請求,并將更新請求發送至服務端。
[0036]本發明中,當客戶端檢測到對某一目標文件進行寫操作時,需要知道在分布式文件系統中該目標文件所歸屬于的目錄是否還能在繼續寫入數據,即該目錄的已使用容量大小是否已經達到目錄配額限度,如果達到則不能再往該目標文件中寫入數據,反之,則按正常寫入方式寫入數據至該目標文件中。
[0037]本發明中,客戶端主動向服務端請求更新已用目錄容量大小,進一步地,由于客戶端每次在檢測到對目標文件的寫操作時,會向服務端發送針對本次寫操作的寫請求,以告知服務端客戶端需要對目標文件執行寫操作了。因此,客戶端可以在每次向服務端發送寫請求的同時,請求更新目標文件所歸屬的目錄的已用目錄容量大小,也就是說,更新請求包含于針對寫操作的寫請求,這樣就不需要專門單獨發送一次更新請求。
[0038]在具體實施過程中,客戶端在檢測到對目標文件的寫操作時,生成寫請求并將寫請求發送至服務端。在服務端接收到寫請求及該寫請求中的更新請求后,做相應的處理操作。當然,本發明主要針對服務端對更新請求的處理進行詳細描述,至于對寫請求中的其它內容的處理,可參考現有技術,本發明在此不作詳細闡述。
[0039]步驟S101、服務端在收到更新請求時,遍歷目標文件所屬目錄下的所有文件,得到當前已用目錄容量大小,并將當前已用目錄容量大小反饋至客戶端。