元數據伺服器、機群系統及機群系統中的文件創建方法
2023-06-08 12:44:36 2
專利名稱:元數據伺服器、機群系統及機群系統中的文件創建方法
技術領域:
本發明主要涉及機群系統領域,特別是指一種元數據伺服器、機群系統及機群系統中的文件創建方法。
背景技術:
機群(cluster)系統由互相連接的多個獨立計算機所組成,該計算機可以是單機或多處理器系統,例如PC(個人計算機)、工作站或SMP(對稱多處理系統),每個計算機都有自己的存儲器、1/0(輸入/輸出)設備和作業系統。機群系統對用戶來說是一個單一的系統,能夠提供低價高效的高性能環境和快速可靠的服務。由於機群系統具有高性價比的優勢,其已成為高性能計算機的主流結構。在機群系統中,通常配備有大容量的存儲設備,在機群系統運作時,需要對這些存儲設備進行管理。同時,機群系統還需要為不同客戶端(計算結點)的用戶提供文件共享服務,機群文件系統為機群系統提供了上述服務,它將機群系統中的所有存儲設備整合起來, 建立一個統一的名字空間(文件和目錄的組織結構)。各個客戶端看到目錄結構一致的文件系統,不同結點(客戶端)的用戶可以採用透明的方式訪問相同的文件。機群文件系統中的數據通常不存儲在本客戶端的磁碟中,而是存儲在存儲伺服器上,因而通常都會設有專用的存儲伺服器(輸入輸出I/O伺服器)。以寫為例,應用進程通過機群文件系統的客戶端寫數據時,客戶端首先將數據通過網絡傳送到元數據伺服器端,然後將檢索到的元數據 (如文件的分布信息)返回到客戶端;客戶端根據文件的分布等信息,將數據直接發送到存儲伺服器端,存儲伺服器再將接收到的數據寫到存儲伺服器的存儲設備中。機群文件系統的IO路徑比較長,整個操作的執行過程涉及到多個關鍵組件,比如機群文件系統客戶端的緩存、存儲伺服器端的緩存、存儲伺服器端IO調度和控制器、處理器以及網絡資源。目前,磁碟訪問和網絡傳輸性能相對較低,落後於其它組件的發展。因此, 對於機群文件系統的I/O密集型應用來說,數據的磁碟訪問和網絡傳輸時間佔據了整個請求處理時間的絕大部分。通過以上的描述可知在機群文件系統中,一般使用三種類型的結點元數據伺服器、I/O伺服器和計算結點;元數據伺服器負責元數據記錄(包括文件目錄樹組織、屬性維護、文件操作日誌記錄、授權訪問等)的創建和管理,管理整個存儲系統的命名空間,對外提供單一的系統映像,並負責整個存儲集群的管理監控;I/O伺服器負責數據文件的創建,數據文件是存儲文件系統的文件數據,負責數據的存儲和檢索;文件的創建分成元數據記錄和數據文件兩部分,由於數據文件存放在分布式環境下的多個I/O伺服器上,而元數據記錄存放在專用的元數據伺服器中,因此計算結點創建文件時,需要分別與上述二種伺服器進行消息通訊,因此在多個I/O伺服器上創建數據文件時,所耗費時間佔用了整個文件創建的大部分時間。但在機群文件系統的很多應用中,常常在計算過程中需要創建很多的中間文件,這些文件因數據量小造成實際的文件數據只能存放於部分I/O伺服器上的數據文件中,從而導致大部分I/O伺服器上的數據文件實際為空文件,浪費寶貴的網絡通信資源和I/O伺服器資源,增加了文件創建的延時。
發明內容
本發明實施例提出一種元數據伺服器、機群系統及機群系統中的文件創建方法, 通過將小於一定閾值的數據寫入元數據伺服器中的元數據記錄中,減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。本發明實施例的技術方案是這樣實現的一種元數據伺服器,應用於機群系統中,包括第一接收單元,用於接收所述機群系統中的計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;第一創建單元,用於根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;寫入單元,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。優選的,還包括第一判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值;第一交互單元,用於當所述第一判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。優選的,還包括第二判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值;遷移單元,用於當所述第二判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O 伺服器的所述第一數據文件中。一種機群系統,包括元數據伺服器、輸入輸出I/O伺服器和計算結點;所述元數據伺服器包括第一接收單元,用於接收所述計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;第一創建單元,用於根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;寫入單元,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中;所述計算結點包括第三判斷單元,用於判斷所述第一文件數據的大小是否小於所述第一預設閾值;第一發送單元,用於當所述第三判斷單元判斷所述第一文件數據的大小小於所述第一預設閾值時,向所述元數據伺服器發送所述第一文件創建包。優選的,所述元數據伺服器還包括
第一判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值;第一交互單元,用於當所述第一判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。優選的,所述元數據伺服器還包括第二判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值;遷移單元,用於當所述第二判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O 伺服器的所述第一數據文件中。優選的,所述元數據伺服器還包括第二接收單元,用於接收所述計算結點的第二文件創建請求包;第二創建單元,用於根據所述第二文件創建請求包創建第二元數據記錄,並與所述第二元數據記錄所分配的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第二數據文件;應答單元,用於根據所述第二元數據記錄返回應答信息給所述計算結點;所述計算結點還包括第二發送單元,用於當所述第三判斷單元判斷所述第一文件數據的大小不小於所述第一預設閾值時,向所述元數據伺服器發送第二文件創建請求包;第三發送單元,用於當接收到所述應答單元的應答信息時,向所述輸入輸出I/O 伺服器發送不小於所述第一預設閾值的第一文件數據,將不小於所述第一預設閾值的第一文件數據寫入所述輸入輸出I/O伺服器的所述第二數據文件中。一種機群系統中的文件創建方法,應用於由元數據伺服器、輸入輸出I/O伺服器和計算結點所組成的機群系統中,包括接收所述計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。優選的,所述將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中後還包括判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值;當寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與所述輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。優選的,所述與所述輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件後還包括判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值;當寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的所述第一數據文件中。本發明通過將小於一定閾值的數據寫入元數據伺服器中的元數據記錄中,而不用再在I/O伺服器中創建數據文件,從而減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明第一實施例一種元數據伺服器的結構示意圖;圖2為本發明第二實施例一種元數據伺服器的結構示意圖;圖3為本發明第一實施例一種機群系統的結構示意圖;圖4為本發明第二實施例一種機群系統的結構示意圖;圖5為本發明第一實施例一種機群系統中的文件創建方法的流程示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。參照圖1,示出了本發明第一實施例一種元數據伺服器的結構示意圖。所述元數據伺服器100應用於機群系統中,所述機群系統由元數據伺服器100、輸入輸出I/O伺服器和計算結點組成。所述元數據伺服器100包括第一接收單元110、第一創建單元120和寫入單元 130。所述第一接收單元110,用於接收所述機群系統中的計算結點的第一文件創建請求包。所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據。計算結點想要寫入文件數據,需要先向元數據伺服器100發送文件創建請求,請求元數據伺服器100創建元數據記錄。在本實施例中,所述第一文件創建請求包中除了包括文件創建請求外,還包括小於第一預設閾值的第一文件數據,也就是說,在本實施例中,所述文件創建請求和所述第一文件數據(小於第一預設閾值)打包由所述計算結點發送至所述元數據伺服器100。所述第一創建單元120,用於根據所述第一文件創建請求包創建第一元數據記錄。 所述第一元數據記錄包含所述第一文件數據的第一擴展屬性。所述第一元數據記錄除了包括文件目錄樹組織、屬性維護、文件操作日誌記錄、授權訪問等信息外,還包括所述第一文件數據的第一擴展屬性,以便於所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性。所述寫入單元130,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。在現在技術中,計算結點的待寫入文件數據都寫入相應的輸入輸出I/O伺服器中,相應的輸入輸出I/O伺服器由元數據伺服器100創建的元數據記錄確定。因此,在現有技術中,不論待寫入文件數據是大是小,都需要先與元數據伺服器100通信,再與輸入輸出 I/O伺服器通信,需要耗費較多的網絡通信資源和I/O伺服器資源。而在本發明中,如果待寫入的文件數據比較小,如小於第一預設閾值,則可以直接將所述待寫入文件數據作為所述第一元數據記錄的擴展屬性寫入元數據伺服器100創建的元數據記錄中,而不需要將較小的文件數據再寫入I/O伺服器,從而不需要再與I/O伺服器進行通信,因此能減少網絡通信資源和I/O伺服器資源的耗費。所述第一預設閾值可以根據實際需要進行設置,如可以設置為1.5M、2M其它值, 本發明對此不進行任何限定。本發明通過將小於一定閾值的數據寫入元數據伺服器中的元數據記錄中,而不用再在I/O伺服器中創建數據文件,從而減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。參照圖2,示出了本發明第二實施例一種元數據伺服器的結構示意圖。所述元數據伺服器100應用於機群系統中,所述機群系統由元數據伺服器100、輸入輸出I/O伺服器和計算結點組成。所述元數據伺服器100包括第一接收單元110、第一創建單元120、寫入單元130、第一判斷單元210和第一交互單元220。所述第一接收單元110,用於接收所述機群系統中的計算結點的第一文件創建請求包。所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據。計算結點想要寫入文件數據,需要先向元數據伺服器100發送文件創建請求,請求元數據伺服器100創建元數據記錄。在本實施例中,所述第一文件創建請求包中除了包括文件創建請求外,還包括小於第一預設閾值的第一文件數據,也就是說,在本實施例中,所述文件創建請求和所述第一文件數據(小於第一預設閾值)打包由所述計算結點發送至所述元數據伺服器100。所述第一創建單元120,用於根據所述第一文件創建請求包創建第一元數據記錄。 所述第一元數據記錄包含所述第一文件數據的第一擴展屬性。所述第一元數據記錄除了包括文件目錄樹組織、屬性維護、文件操作日誌記錄、授權訪問等信息外,還包括所述第一文件數據的第一擴展屬性,以便於所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性。所述寫入單元130,用於將所述第一文件數據寫入所述第一元數據記錄的所述第
一擴展屬性中。在現在技術中,計算結點的待寫入文件數據都寫入相應的輸入輸出I/O伺服器中,相應的輸入輸出I/O伺服器由元數據伺服器100創建的元數據記錄確定。因此,在現有技術中,不論待寫入文件數據是大是小,都需要先與元數據伺服器100通信,再與輸入輸出 I/O伺服器通信,需要耗費較多的網絡通信資源和I/O伺服器資源。而在本發明中,如果待寫入的文件數據比較小,如小於第一預設閾值,則可以直接將所述待寫入文件數據作為所述第一元數據記錄的擴展屬性寫入元數據伺服器100創建的元數據記錄中,而不需要將較小的文件數據再寫入I/O伺服器,從而不需要再與I/O伺服器進行通信,因此能減少網絡通信資源和I/O伺服器資源的耗費。所述第一預設閾值可以根據實際需要進行設置,如可以設置為1.5M、2M其它值, 本發明對此不進行任何限定。所述第一判斷單元210,用於判斷寫入所述第一元數據記錄的文件數據是否大於
第二預設閾值。將所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性後,即成為所寫入所述第一元數據記錄的文件數據。所述第一交互單元220,用於當所述第一判斷單元210判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。在本發明的另一實施例中,所述元數據伺服器100還包括第二判斷單元230,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值。遷移單元M0,用於當所述第二判斷單元230判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的第一數據文件中。由於所述元數據伺服器100的存儲空間畢竟有限,如果寫入所述元數據伺服器 100的文件數據太多則會影響所述元數據伺服器100的性能,並可能造成其它影響,因此, 如果寫入所述第一元數據記錄的文件數據大於第二預設閾值,則需要進行將文件數據遷移到I/O伺服器的準備,與輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建數據文件。如果寫入所述第一元數據記錄的文件數據大於第三預設閾值,則需要將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的數據文件中,從而使所述元數據伺服器100的存儲空間不會被太多的文件數據所佔據。所述第二預設閾值和第三預設閾值可以根據實際需要進行設置,本發明對此不進行任何的限制,所述第三預設閾值一般大於所述第二預設閾值,當然,所述第三預設閾值也可以與所述第二預設閾值相等,另外所述第三預設閾值一般情況下與所述第一預設閾值相等,如都為1.5M,當然,所述第三預設閾值也可以不與所述第一預設閾值相等。文件系統在初始創建時,只在元數據伺服器上創建元數據記錄,同時將文件數據以元數據擴展屬性的形式也存儲在元數據記錄中。根據機群規模和具體應用的情況,可以設置兩個與文件大小有關的閾值文件預遷移閾值(第二預設閾值)和小文件閾值(第三預設閾值)。隨著文件的不斷寫入數據,當文件大小超過預遷移閾值時,在I/O伺服器上創建數據文件;當文件大小超過小文件閾值時,則將存儲在元數據擴展屬性中的文件數據遷移到所創建的I/O伺服器中。從而實現I/O伺服器創建數據文件以及數據文件寫入數據的過程與計算結點的I/O操作相重疊,節省文件創建時延。採用本發明技術方案後1、對於機群系統中文件的創建,無需創建數據文件,最小化文件系統中網絡的通信次數,減少文件的創建和訪問延時,大大提高文件的I/O性能,特別是在大規模文件的應用中,效果會更加明顯;
2、根據機群規模和具體應用的情況,可以合理設定文件數據的遷移閾值,使機群文件系統更有效率,改善整個系統的性能,具有很好的靈活性;3、充分利用了元數據伺服器處理元數據的過程,發揮元數據伺服器的能力,全面提高機群文件系統對具體應用的性能。參照圖3,示出了本發明第一實施例一種機群系統的結構示意圖。所述機群系統包括元數據伺服器100、輸入輸出I/O伺服器300和計算結點200。其中,所述元數據伺服器100包括第一接收單元110,用於接收所述機群系統中的計算結點的第一文件創建請求包。所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據。計算結點想要寫入文件數據,需要先向元數據伺服器100發送文件創建請求,請求元數據伺服器100創建元數據記錄。在本實施例中,所述第一文件創建請求包中除了包括文件創建請求外,還包括小於第一預設閾值的第一文件數據,也就是說,在本實施例中,所述文件創建請求和所述第一文件數據(小於第一預設閾值)打包由所述計算結點發送至所述元數據伺服器100。第一創建單元120,用於根據所述第一文件創建請求包創建第一元數據記錄。所述第一元數據記錄包含所述第一文件數據的第一擴展屬性。所述第一元數據記錄除了包括文件目錄樹組織、屬性維護、文件操作日誌記錄、授權訪問等信息外,還包括所述第一文件數據的第一擴展屬性,以便於所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性。寫入單元130,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。所述計算結點200包括第三判斷單元320,用於判斷所述第一文件數據的大小是否小於所述第一預設閾值。第一發送單元310,用於當所述第三判斷單元320判斷所述第一文件數據的大小小於所述第一預設閾值時,向所述元數據伺服器100發送所述第一文件創建包。在本發明的另一實施例中,所述元數據伺服器100還包括所述第一判斷單元210,用於判斷寫入所述第一元數據記錄的文件數據是否大於
第二預設閾值。將所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性後,即成為所寫入所述第一元數據記錄的文件數據。所述第一交互單元220,用於當所述第一判斷單元210判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。在本發明的另一實施例中,所述元數據伺服器100還包括第二判斷單元230,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值。遷移單元M0,用於當所述第二判斷單元230判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的第一數據文件中。由於所述元數據伺服器100的存儲空間畢竟有限,如果寫入所述元數據伺服器 100的文件數據太多則會影響所述元數據伺服器100的性能,並可能造成其它影響,因此, 如果寫入所述第一元數據記錄的文件數據大於第二預設閾值,則需要進行將文件數據遷移到I/O伺服器的準備,與輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建數據文件。如果寫入所述第一元數據記錄的文件數據大於第三預設閾值,則需要將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的數據文件中,從而使所述元數據伺服器100的存儲空間不會被太多的文件數據所佔據。所述第二預設閾值和第三預設閾值可以根據實際需要進行設置,本發明對此不進行任何的限制,所述第三預設閾值一般大於所述第二預設閾值,當然,所述第三預設閾值也可以與所述第二預設閾值相等,另外所述第三預設閾值一般情況下與所述第一預設閾值相等,如都為1.5M,當然,所述第三預設閾值也可以不與所述第一預設閾值相等。本發明通過將小於一定閾值的數據寫入元數據伺服器100中的元數據記錄中,而不用再在I/O伺服器中創建數據文件,從而減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。參照圖4,示出了本發明第二實施例一種機群系統的結構示意圖。所述機群系統包括元數據伺服器100、輸入輸出I/O伺服器300和計算結點200。其中,所述元數據伺服器100包括第一接收單元110,用於接收所述機群系統中的計算結點的第一文件創建請求包。所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據。第一創建單元120,用於根據所述第一文件創建請求包創建第一元數據記錄。所述第一元數據記錄包含所述第一文件數據的第一擴展屬性。寫入單元130,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。第二接收單元410,用於接收所述計算結點的第二文件創建請求包。所述第二文件創建請求包與所述第一文件創建請求包的不同之處在於,所述第二文件創建請求包中只包括文件創建請求,而不包括文件數據(如小於第一預設閾值的第一文件數據)。第二創建單元420,用於根據所述第二文件創建請求包創建第二元數據記錄,並與所述第二元數據記錄所分配的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第二數據文件。所述第二元數據記錄與所述第一元數據記錄的不同之處在於,所述第二元數據記錄中必須包括相應的輸入輸出I/O伺服器信息,而所述第一元數據記錄中可以沒有,並且所述第一元數據記錄中必須包括第一擴展屬性,以便寫入所述文件數據,而所述第二元數據記錄中則可以沒有所述第一擴展屬性。應答單元430,用於根據所述第二元數據記錄返回應答信息給所述計算結點。所述應答信息中包括相應的輸入輸出I/O伺服器信息,通知計算結點將數據寫入相應的輸入輸出I/O伺服器。所述計算結點200包括
第三判斷單元320,用於判斷所述第一文件數據的大小是否小於所述第一預設閾值。第一發送單元310,用於當所述第三判斷單元320判斷所述第一文件數據的大小小於所述第一預設閾值時,向所述元數據伺服器100發送所述第一文件創建包。第二發送單元440,用於當所述第三判斷單元320判斷所述第一文件數據的大小不小於所述第一預設閾值時,向所述元數據伺服器100發送第二文件創建請求包。第三發送單元450,用於當接收到所述應答單元430的應答信息時,向所述輸入輸出I/O伺服器300發送不小於所述第一預設閾值的第一文件數據,將不小於所述第一預設閾值的第一文件數據寫入所述輸入輸出I/O伺服器的所述第二數據文件中。在本發明的另一實施例中,所述元數據伺服器100還包括所述第一判斷單元210,用於判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值。將所述第一文件數據寫入所述第一元數據記錄的第一擴展屬性後,即成為所寫入所述第一元數據記錄的文件數據。所述第一交互單元220,用於當所述第一判斷單元210判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。在本發明的另一實施例中,所述元數據伺服器100還包括第二判斷單元230,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值。遷移單元M0,用於當所述第二判斷單元230判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的第一數據文件中。由於所述元數據伺服器100的存儲空間畢竟有限,如果寫入所述元數據伺服器 100的文件數據太多則會影響所述元數據伺服器100的性能,並可能造成其它影響,因此, 如果寫入所述第一元數據記錄的文件數據大於第二預設閾值,則需要進行將文件數據遷移到I/O伺服器的準備,與輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建數據文件。如果寫入所述第一元數據記錄的文件數據大於第三預設閾值,則需要將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的數據文件中,從而使所述元數據伺服器100的存儲空間不會被太多的文件數據所佔據。所述第二預設閾值和第三預設閾值可以根據實際需要進行設置,本發明對此不進行任何的限制,所述第三預設閾值一般大於所述第二預設閾值,當然,所述第三預設閾值也可以與所述第二預設閾值相等,另外所述第三預設閾值一般情況下與所述第一預設閾值相等,如都為1.5M,當然,所述第三預設閾值也可以不與所述第一預設閾值相等。在本實施例中,如果待寫入的數據較大,如大於或等於第一預設閾值,則計算結點先與元數據伺服器100通信,由元數據伺服器100建立元數據記錄,並通知計算結點相應的輸入輸出I/O伺服器300等信息,然後計算結點再與相應的輸入輸出I/O伺服器300通信, 將待寫入文件數據寫入相應的輸入輸出I/O伺服器300通信。如果待寫入的數據較小,如小於第一預設閾值,則按圖3所示實施例的方法進行處理,從而減少網絡通信資源和I/O伺服器資源的耗費。參照圖5,示出了本發明第一實施例一種機群系統中的文件創建方法的流程示意圖,所述方法應用於由元數據伺服器100、輸入輸出I/O伺服器300和計算結點200所組成的機群系統中。所述方法包括步驟S510、接收所述計算結點的第一文件創建請求包。所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據。步驟S520、根據所述第一文件創建請求包創建第一元數據記錄。所述第一元數據記錄包含所述第一文件數據的第一擴展屬性步驟S530、將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。本發明通過將小於一定閾值的數據寫入元數據伺服器中的元數據記錄中,而不用再在I/O伺服器中創建數據文件,從而減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。在本發明的另一實施例中,所述步驟S530後還包括步驟S540、判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值。步驟S550、當寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與所述輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。步驟S560、判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值。步驟S570、當寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的第一數據文件中。本領域普通技術人員可以理解,實現上述實施例方法中的全部或部分步驟是可以通過程序來指令相關的硬體來完成,所述的程序可以存儲於一計算機可讀取存儲介質中, 該程序在執行時,包括如上述方法實施例的步驟,所述的存儲介質,如磁碟、光碟、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。 在本發明各方法實施例中,所述各步驟的序號並不能用於限定各步驟的先後順序,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,對各步驟的先後變化也在本發明的保護範圍之內。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種元數據伺服器,應用於機群系統中,其特徵在於,包括第一接收單元,用於接收所述機群系統中的計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;第一創建單元,用於根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;寫入單元,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。
2.根據權利要求1所述的元數據伺服器,其特徵在於,還包括第一判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值;第一交互單元,用於當所述第一判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。
3.根據權利要求2所述的元數據伺服器,其特徵在於,還包括第二判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值;遷移單元,用於當所述第二判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的所述第一數據文件中。
4.一種機群系統,其特徵在於,包括元數據伺服器、輸入輸出I/O伺服器和計算結點; 所述元數據伺服器包括第一接收單元,用於接收所述計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;第一創建單元,用於根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;寫入單元,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中;所述計算結點包括第三判斷單元,用於判斷所述第一文件數據的大小是否小於所述第一預設閾值; 第一發送單元,用於當所述第三判斷單元判斷所述第一文件數據的大小小於所述第一預設閾值時,向所述元數據伺服器發送所述第一文件創建包。
5.根據權利要求4所述的機群系統,其特徵在於,所述元數據伺服器還包括 第一判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值;第一交互單元,用於當所述第一判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與機群系統中的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。
6.根據權利要求5所述的機群系統,其特徵在於,所述元數據伺服器還包括 第二判斷單元,用於判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值;遷移單元,用於當所述第二判斷單元判斷寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的所述第一數據文件中。
7.根據權利要求6所述的機群系統,其特徵在於,所述元數據伺服器還包括 第二接收單元,用於接收所述計算結點的第二文件創建請求包;第二創建單元,用於根據所述第二文件創建請求包創建第二元數據記錄,並與所述第二元數據記錄所分配的輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第二數據文件;應答單元,用於根據所述第二元數據記錄返回應答信息給所述計算結點; 所述計算結點還包括第二發送單元,用於當所述第三判斷單元判斷所述第一文件數據的大小不小於所述第一預設閾值時,向所述元數據伺服器發送第二文件創建請求包;第三發送單元,用於當接收到所述應答單元的應答信息時,向所述輸入輸出I/O伺服器發送不小於所述第一預設閾值的第一文件數據,將不小於所述第一預設閾值的第一文件數據寫入所述輸入輸出I/O伺服器的所述第二數據文件中。
8.一種機群系統中的文件創建方法,應用於由元數據伺服器、輸入輸出I/O伺服器和計算結點所組成的機群系統中,其特徵在於,包括接收所述計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。
9.根據權利要求8所述的機群系統中的文件創建方法,其特徵在於,所述將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中後還包括判斷寫入所述第一元數據記錄的文件數據是否大於第二預設閾值; 當寫入所述第一元數據記錄的文件數據大於所述第二預設閾值時,與所述輸入輸出I/ 0伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件。
10.根據權利要求9所述的機群系統中的文件創建方法,其特徵在於,所述與所述輸入輸出I/O伺服器進行交互,通知所述輸入輸出I/O伺服器創建第一數據文件後還包括判斷寫入所述第一元數據記錄的文件數據是否大於第三預設閾值; 當寫入所述第一元數據記錄的文件數據大於所述第三預設閾值時,將寫入所述第一元數據記錄的文件數據遷移至所述輸入輸出I/O伺服器的所述第一數據文件中
全文摘要
本發明實施例公開了元數據伺服器、機群系統及機群系統中的文件創建方法。所述元數據伺服器包括第一接收單元,用於接收所述機群系統中的計算結點的第一文件創建請求包,所述第一文件創建包中至少包括小於第一預設閾值的第一文件數據;第一創建單元,用於根據所述第一文件創建請求包創建第一元數據記錄,所述第一元數據記錄包含所述第一文件數據的第一擴展屬性;寫入單元,用於將所述第一文件數據寫入所述第一元數據記錄的所述第一擴展屬性中。本發明實施例通過將小於一定閾值的數據寫入元數據伺服器中的元數據記錄的擴展屬性中,從而減少了機群系統中網絡的通信次數,減少了文件創建和訪問延時,大大提高了文件的I/O性能。
文檔編號G06F17/30GK102193952SQ20101012988
公開日2011年9月21日 申請日期2010年3月19日 優先權日2010年3月19日
發明者潘勇 申請人:聯想(北京)有限公司