基于UniWhale的分布式文件系統(tǒng)的視窗訪問方法
【技術領域】
[0001]本發(fā)明涉及一種客戶端訪問的技術領域,尤其是一種基于UniWhale的分布式文件系統(tǒng)的視窗訪問方法。
【背景技術】
[0002]目前分布式數據存儲產品UniWhale已經成功商用,其節(jié)點布署關系圖如圖1所示。UniWhale實現(xiàn)了數據文件分布式存儲功能,可以適應于性能不苛刻的數據共享場合。
[0003]UniWhale系統(tǒng)為三層組織結構,按照節(jié)點職能劃分分別是:客戶PC機節(jié)點、文件代理服務器和存儲服務器集群。
[0004]客戶PC機節(jié)點是安裝了各類Windows操作系統(tǒng)的辦公用電腦??蛻鬚C機節(jié)點通過網絡路徑可以像訪問本地文件系統(tǒng)一樣容易訪問文件代理服務器上的代理目錄下的各級目錄和文件,并進行創(chuàng)建、讀取、寫入、修改、刪除等各類操作。這些目錄和文件最終分布式地存儲在各個存儲服務器節(jié)點,但對上層的客戶PC機是透明的。
[0005]文件代理服務器屏蔽了底層存儲服務器集群的實現(xiàn)細節(jié),客戶PC機節(jié)點對底層的數據迀移、均衡、備份、擴容等操作不可見。在具體實現(xiàn)上,文件代理服務器只與存儲服務器集群中的單個節(jié)點,如圖1中的UniWhale_node2進行通迅,而對存儲于集群中其它節(jié)點上的目錄和文件的操作都需要經過這個節(jié)點轉發(fā),這導致存取訪問操作效率低,對文件操作無法做到并行處理,吞吐量受到嚴重限制,因而大大限制了分布式文件系統(tǒng)整體性能的發(fā)揮。
【發(fā)明內容】
[0006]本發(fā)明的目的在于提供一種基于UniWhale的分布式文件系統(tǒng)的視窗訪問方法,將管理文件存儲位置的功能從現(xiàn)有技術中的文件存儲服務器集群中指定的一臺服務器移動到UniWhale客戶端,使得UniWhale客戶端可以直接與每個存儲服務器節(jié)點通訊。UniWhale客戶端在對每個目錄或文件進行操作之前,首先根據目錄或文件完整路徑名和存儲服務器集群的hash值分布空間計算出目錄或文件所在的具體節(jié)點,然后與此節(jié)點進行文件訪問和相關操作。經過改造,可以真正實現(xiàn)對文件存儲服務器集群的并行操作,使得文件存儲服務器系統(tǒng)性能得到極大的提升。有效地克服了存取訪問操作效率低,對文件操作無法做到并行處理,吞吐量受到嚴重限制,因而大大限制了分布式文件系統(tǒng)整體性能的發(fā)揮的缺陷。
[0007]為了達到上述目的,本發(fā)明的技術方案是:一種基于UniWhale的分布式文件系統(tǒng)的視窗訪問方法,具體如下:
[0008]進行UniWhale客戶端卷掛載流程,即用戶首先輸入要掛載的存儲服務器節(jié)點的IP、卷名和本地盤符名稱,點擊掛載,接著客戶端會加載文件系統(tǒng)驅動,如果不成功,就提示無法與驅動連接并結束UniWhale客戶端卷掛載流程,如果成功,和管理服務器建立握手并獲取host文件,如果獲取不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果獲取成功了,就與存儲服務端建立連接,獲取vol文件,如果獲取成功,就分析vol文件和host文件,獲取有效的集群IP,如果獲取有效的集群IP不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果獲取有效的集群IP成功,從掛載服務器獲取每個brick的端口信息并建立長連接,如果連接不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果連接成功,在客戶端創(chuàng)建盤符,并提示掛載成功和結束UniWhale客戶端卷掛載流程。
[0009]在UniWhale客戶端進行文件創(chuàng)建操作時,先由用戶啟動文件創(chuàng)建流程,操作系統(tǒng)調用存儲客戶端,并將需要創(chuàng)建的路徑、文件名這樣的屬性信息作為輸入參數傳入,存儲客戶端根據路徑和文件名,得到文件即將位于的存儲節(jié)點,存儲客戶端向此存儲服務器節(jié)點發(fā)送文件查詢消息,判斷是否存在同名文件,如果存在同名文件,就提示文件名已存在并結束UniWhale客戶端進行文件創(chuàng)建操作,如果不存在同名文件,執(zhí)行文件創(chuàng)建操作,如果創(chuàng)建不成功,存儲服務器節(jié)點返回文件創(chuàng)建失敗信息并結束UniWhale客戶端進行文件創(chuàng)建操作,如果創(chuàng)建成功,存儲服務器節(jié)點返回文件創(chuàng)建成功信息并結束UniWhale客戶端進行文件創(chuàng)建操作。
[0010]在UniWhale客戶端進行文件刪除操作時,先由用戶啟動文件刪除流程,而操作系統(tǒng)調用存儲客戶端,并將需要刪除的路徑、文件名這樣的屬性信息作為輸入參數傳入,存儲客戶端根據路徑和文件名,得到文件位于的存儲節(jié)點,存儲客戶端向此存儲服務器節(jié)點發(fā)送文件查詢消息,由此判斷文件是否存在,如果文件不存在,就提示文件已不存在并結束UniWhale客戶端進行文件刪除操作,如果文件存在,查詢文件屬性,判斷文件是否可以刪除,如果不可以刪除,就提示文件不可被刪除并結束UniWhale客戶端進行文件刪除操作,如果可以刪除,執(zhí)行文件刪除操作,如果刪除不成功,存儲服務器節(jié)點返回文件刪除失敗信息并結束UniWhale客戶端進行文件刪除操作,如果刪除成功,存儲服務器節(jié)點返回文件刪除成功信息并結束UniWhale客戶端進行文件刪除操作。
[0011 ]在進行查看磁盤屬性操作時,先由用戶開始讀取磁盤信息,進入磁盤空間,從掛載服務器獲取磁盤總空間和可用空間,如果獲取成功,就顯示可用空間和總空間屬性并結束進行查看磁盤屬性操作,如果獲取不成功,就顯示可用空間和總空間的大小都為O并結束進行查看磁盤屬性操作。
[0012]在進行文件讀取操作時,先由用戶啟動文件讀取流程,操作系統(tǒng)調用存儲客戶端,并將需要讀取的路徑、文件名這樣的屬性信息作為輸入參數傳入,接著判斷文件是否需要遠程讀取,如果不需要遠程讀取,就結束文件讀取操作,如果需要遠程讀取,存儲客戶端根據路徑和文件名,得到文件所在的存儲節(jié)點,存儲客戶端向文件所在存儲服務器節(jié)點發(fā)送文件讀取消息,進行讀取文件,如果讀取不成功,存儲服務器節(jié)點返回錯誤信息并結束文件讀取操作,如果讀取成功,存儲服務器節(jié)點返回文件內容和大小這樣的信息并結束文件讀取操作。
[0013]在文件進行寫入操作時,先由用戶啟動文件寫入流程,操作系統(tǒng)調用存儲客戶端,并將需要寫入的路徑、文件名、偏移量、寫入內容這樣的信息作為輸入參數傳入,判斷該文件是否需要通過IRP流程,如果不需要通過IRP流程,就結束文件進行寫入操作,如果需要通過IRP流程,存儲客戶端根據路徑和文件名,得到文件所在的存儲節(jié)點,存儲客戶端向文件所在存儲服務器節(jié)點發(fā)送讀取文件信息消息,獲取文件屬性和文件ID,如果獲取不成功,存儲服務器節(jié)點返回文件寫入獲取信息并結束文件進行寫入操作,如果獲取成功,通過文件ID打開文件,如果打開不成功,存儲服務器節(jié)點返回文件寫入打開信息并結束文件進行寫入操作,如果打開成功,執(zhí)行文件寫入操作,如果寫入不成功,存儲服務器節(jié)點返回文件寫入失敗信息并結束文件進行寫入操作,如果寫入成功,存儲服務器節(jié)點返回文件寫入成功信息,最后結束文件進行寫入操作。
[0014]在進行文件重命名操作時,先由用戶啟動文件重命名流程,如果新文件和老文件名稱一致,就結束文件重命名操作,如果新文件和老文件名稱不一致,繼續(xù)判斷該文件是否存在,如果不存在,提示找不到指定文件并結束文件重命名操作,如果存在,繼續(xù)判斷新文件名是否存在,如果存在,就提示新文件名已經存在并結束文件重命名操作,如果不存在,繼續(xù)判斷重命名是不是成功,如果不成功,提示重命名失敗然后結束文件重命名操作,如成功,就結束文件重命名操作。
[0015]根據目錄或文件完整路徑名和存儲服務器集群的hash值分布空間計算出目錄或文件所在的具體節(jié)點,然后與此節(jié)點建立連接并通訊。經過改造,可以真正實現(xiàn)對文件存儲服務器集群的并行操作,使得文件存儲服務器系統(tǒng)性能得到極大的提升。
【附圖說明】
[0016]圖1是現(xiàn)有技術的布署關系圖。
[0017]圖2是本發(fā)明的布署關系圖。
[0018]圖3是本發(fā)明的UniWhale客戶端卷掛載的流程圖。
[0019]圖4是本發(fā)明的UniWhale客戶端進行文件創(chuàng)建操作的流程圖。
[0020]圖5是本發(fā)明的UniWhale客戶端進行文件刪除操作的流程圖。
[0021 ]圖6是本發(fā)明的查看磁盤屬性操作的流程圖。
[0022]圖7是本發(fā)明的文件讀取操作的流程圖。
[0023]圖8是本發(fā)明的文件寫入操作的流程圖。
[0024]圖9是本發(fā)明的文件重命名的流程圖。
【具體實施方式】
[0025]以下結合附圖給出的實施例對本發(fā)明作進一步詳細的說明。
[0026]參見圖1-圖9所示,基于UniWhale的分布式文件系統(tǒng)的視窗訪問方法,具體如下:
[0027]進行UniWhale客戶端卷掛載流程,即用戶首先輸入要掛載的存儲服務器節(jié)點的IP、卷名和本地盤符名稱,點擊掛載,接著客戶端會加載文件系統(tǒng)驅動,如果不成功,就提示無法與驅動連接并結束UniWhale客戶端卷掛載流程,如果成功,和管理服務器建立握手并獲取host文件,如果獲取不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果獲取成功了,就與存儲服務端建立連接,獲取vol文件,如果獲取成功,就分析vol文件和host文件,獲取有效的集群IP,如果獲取有效的集群IP不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果獲取有效的集群IP成功,從掛載服務器獲取每個brick的端口信息并建立長連接,如果連接不成功,就提示掛載失敗并結束UniWhale客戶端卷掛載流程,如果連接成功,在客戶端創(chuàng)建盤符,并提示掛載成功和結束UniWhale客戶端卷掛載流程;在UniWhale客戶端進行文件創(chuàng)建操作時,先由用戶啟動文件創(chuàng)建流程,操作系統(tǒng)調用存儲客戶端,并將需要創(chuàng)建的路徑、文件名這樣的屬性信息作為輸入參數傳入,存儲客戶端根據路徑和文件名,得到文件即將位于的存儲節(jié)點,存儲客戶端向此存儲服務器節(jié)點發(fā)送文件查詢消息,判斷是否存在同名文件,如果存在同名文件,就提示文件名已存在并結束UniWhale客戶端進行文件創(chuàng)建操作,如果不存在同名文