<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

運行多個文件系統的文件服務器的內部寫方法和服務器的制造方法

文檔序號:6636023閱讀:279來源:國知局
運行多個文件系統的文件服務器的內部寫方法和服務器的制造方法
【專利摘要】本發明公開了一種運行多個文件系統的文件服務器的內部寫方法和服務器,該方法為:當所述文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所述所有文件系統的內部寫;啟動第一文件系統的內部寫;其中,所述第一文件系統為所有文件系統中臟數據量最小的文件系統,所述第一文件系統的內部寫為將所述緩存中第一文件系統的臟數據寫入硬盤的操作。該方法避免了因文件服務器的內存不足導致文件系統被設置為寫保護狀態,引起文件系統的如創建、刪除、修改等業務中斷的問題。
【專利說明】運行多個文件系統的文件服務器的內部寫方法和服務器

【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種運行多個文件系統的文件服務器的內部寫方法和服務器。

【背景技術】
[0002]同一文件服務器通常支持同時運行多個文件系統,由于文件服務器的內存有限,不可避免的會存在多個文件系統同時搶占文件服務器的內存的情況。如圖1所示,為現有技術下多個文件系統的內部寫示意圖,文件系統1、文件系統2和文件系統3同時進行內部寫,即各文件系統同時進行內部寫且各文件系統按照檢查點(Checkpoint)的順序進行內部寫。其中,一個事務對應文件系統的一個檢查點上的元數據和數據,每個檢查點上文件系統的元數據和數據均是一致的;內部寫是指文件系統在高速緩沖存儲器(Cache)的分區中的臟數據寫入硬盤,臟數據是指緩存到cache中的數據塊已經修改了,但是還沒寫入到硬盤中的數據。
[0003]為了提升主機的響應速度,文件系統通常先將數據存儲到為該文件系統分配的Cache的分區中,然后利用后臺程序,進行內部寫。文件系統內部需要按照檢查點的先后順序進行內部寫,如果前一個檢查點的內部寫還未完成,那么下一個檢查點的內部寫將被迫等待。文件系統在進行內部寫的過程中,可能還需要另外申請文件服務器的內存,用于緩存進行內部寫的過程中產生的中間數據以及寫時拷貝(Copy on Write)的間接塊信息等。如果在某個檢查點進行內部寫,由于文件服務器的內存不足導致申請占用內存失敗時,將導致該檢查點的內部寫無法完成。由于各個文件系統同時進行內部寫,文件服務器的內存不足,將導致各個文件系統的內部寫均無法完成,各文件系統會直接將文件系統狀態設置為寫保護狀態,拒絕主機寫10,各文件系統的如創建、刪除、修改等業務均將中斷。


【發明內容】

[0004]本發明實施例提供一種運行多個文件系統的文件服務器的內部寫方法和服務器,用以解決現有技術中因文件服務器的內存不足導致文件系統狀態被設置為寫保護狀態,弓丨起文件系統的如創建、刪除、修改等業務中斷的問題。
[0005]第一方面,本發明實施例提供了一種運行多個文件系統的文件服務器的內部寫方法,該方法包括:
[0006]當所述文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所述所有文件系統的內部寫;
[0007]啟動第一文件系統的內部寫;其中,所述第一文件系統為所有文件系統中臟數據量最小的文件系統,所述第一文件系統的內部寫為將所述Cache中第一文件系統的臟數據寫入硬盤的操作。
[0008]結合第一方面,在第一方面的第一種可能的實現方式中,所述方法還包括:
[0009]當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間大于預設閾值時,啟動除所述第一文件系統外的其他文件系統的內部寫。
[0010]結合第一方面,在第一方面的第二種可能的實現方式中,所述方法還包括:
[0011]當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間小于預設閾值時,從除所述第一文件系統外的其他文件系統中選擇第二文件系統,啟動所述第二文件系統的內部寫;其中,所述第二文件系統為除所述第一文件系統外的其他文件系統中臟數據量最小的文件系統。
[0012]結合第一方面,在第一方面的第三種可能的實現方式中,所述方法還包括:
[0013]當所述第一文件系統的內部寫失敗,則將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
[0014]結合第一方面的第三種可能的實現方式,在第一方面的第四種可能的實現方式中,還包括:
[0015]將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫,在所述第一文件系統的任意一個檢查點的內部寫完成后,將所述第一文件系統的與所述任意一個檢查點對應的的根節點寫入硬盤。
[0016]第二方面,本發明實施例提供了一種運行多個文件系統的文件服務器,該文件服務器包括:
[0017]停止單元,用于當所述文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所述所有文件系統的內部寫;
[0018]啟動單元,用于啟動第一文件系統的內部寫;其中,所述第一文件系統為所有文件系統中臟數據量最小的文件系統,所述第一文件系統的內部寫為將所述Cache中第一文件系統的臟數據寫入硬盤的操作。
[0019]結合第二方面,在第二方面的第一種可能的實現方式中,所述啟動單元還用于:
[0020]當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間大于預設閾值時,啟動除所述第一文件系統外的其他文件系統的內部寫。
[0021]結合第二方面,在第二方面的第二種可能的實現方式中,所述啟動單元還用于:
[0022]當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間小于預設閾值時,從除所述第一文件系統外的其他文件系統中選擇第二文件系統,啟動所述第二文件系統的內部寫;其中,所述第二文件系統為除所述第一文件系統外的其他文件系統中臟數據量最小的文件系統。
[0023]結合第二方面,在第二方面的第三種可能的實現方式中,所述啟動單元還用于:
[0024]當所述第一文件系統的內部寫失敗,則將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
[0025]結合第二方面的第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述啟動單元還用于:
[0026]將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫,在所述第一文件系統的任意一個檢查點的內部寫完成后,將所述第一文件系統的與所述任意一個檢查點對應的的根節點寫入硬盤。
[0027]第三方面,本發明實施例提供了一種運行多個文件系統的文件服務器,包括中央處理單元和內存,所述內存存儲計算機指令,所述中央處理單元執行所述計算機指令用于執行本發明實施例第一方面或第一方面的第一至四任一可能的實施方式。
[0028]利用本發明實施例提供的方案,當多個文件系統在內部寫的過程中遇到文件服務器的內存不足的情況時,通過停止所有文件系統的內部寫然后依次開啟文件系統的內部寫,以及在單文件系統內以單個文件或目錄為單位進行內部寫的方法,避免了因內存不足導致文件系統被設置為寫保護狀態,引起文件系統的如創建、刪除、修改等業務中斷的問題。

【專利附圖】

【附圖說明】
[0029]圖1為現有技術下多個文件系統的內部寫示意圖;
[0030]圖2為本發明實施例提供的一種運行多個文件系統的文件服務器的內部寫方法的流程圖;
[0031]圖3為本發明實施例多個文件系統的內部寫示意圖;
[0032]圖4為本發明實施例單個文件系統內部的內部寫示意圖;
[0033]圖5為本發明實施例提供的一種文件服務器的結構圖。

【具體實施方式】
[0034]本發明實施例提供了一種運行多個文件系統的文件服務器的內部寫方法和服務器,當多個文件系統在內部寫的過程中遇到文件服務器的內存不足的情況時,通過停止所有文件系統的內部寫然后依次開啟文件系統的內部寫的方法,避免了因文件服務器的內存不足導致文件系統被設置為寫保護狀態,引起文件系統的如創建、刪除、修改等業務中斷的冋題。
[0035]下面結合說明書附圖和各實施例對本發明技術方案進行說明。
[0036]參閱圖2所示,本發明實施例提供了一種運行多個文件系統的文件服務器的內部寫方法,該方法的實施流程如下:
[0037]步驟201:當文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所有文件系統的內部寫。
[0038]任意一個文件系統在內部寫的過程中發現文件服務器的內存不足時,即刻上報到文件服務器,文件服務器根據上報的內存不足的消息,遍歷各個文件系統,調用文件系統暫停內部寫的接口,以停止所有文件系統的內部寫。
[0039]但是,在停止所有文件系統的內部寫的過程中,文件服務器不會中斷所有文件系統的外部寫,外部寫為將接收的用戶數據寫入Cache的操作。因為文件系統的外部寫不中斷,即表示主機寫1不中斷,從而文件系統對外的業務不會中斷。
[0040]步驟202:啟動第一文件系統的內部寫;其中,第一文件系統為所有文件系統中臟數據量最小的文件系統,第一文件系統的內部寫為將Cache中第一文件系統的臟數據寫入硬盤的操作。
[0041 ] 其中,臟數據包含了文件系統的數據以及元數據。
[0042]具體地,文件服務器分別獲取Cache中緩存的各個文件系統對應的臟數據量,從中篩選出臟數據量最小的文件系統,并僅啟動該臟數據量最小的文件系統的內部寫。
[0043]例如,如圖3所示,若文件系統I為被選中的臟數據量最小的文件系統,那么文件系統I將重新啟動內部寫,按照檢查點的順序依次將檢查點1、檢查點2、檢查點3的臟數據寫入硬盤,而文件系統2和文件系統3仍處于內部寫停止的狀態。如此,文件服務器將其內部多個文件系統同時進行內部寫的方式,轉換為順序進行內部寫的方式。
[0044]上述第一文件系統被選中開啟內部寫后,無論能否成功將Cache中的臟數據寫入硬盤,均將內部寫的結果上報給文件服務器。
[0045]當第一文件系統的內部寫成功,并且文件服務器的內存的剩余空間大于預設閾值時,文件服務器便啟動除第一文件系統外的其他文件系統的內部寫。
[0046]當第一文件系統的內部寫成功,并且文件服務器的內存的剩余空間小于預設閾值時,文件服務器便從除第一文件系統外的其他文件系統中選擇第二文件系統,啟動第二文件系統的內部寫;其中,第二文件系統為除第一文件系統外的其他文件系統中臟數據量最小的文件系統。
[0047]當第一文件系統的內部寫失敗,文件服務器則將第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
[0048]例如,如圖4所示,文件系統I在內部寫檢查點I的臟數據時,將文件1、文件2、文件3、目錄4分別作為一組,首先將組成文件I的塊(Chunk)O和塊I同時寫入硬盤,完成后再將文件2的塊0、塊1、塊2寫入硬盤,依次類推,直至將組成目錄4的塊O寫入硬盤,從而完成將檢查點I的臟數據全部寫入硬盤。如此,文件服務器將同一文件系統內部同一檢查點的多個文件和目錄同時寫入硬盤的方式,轉換為以單個文件或目錄為一組、分組寫入硬盤的方式。
[0049]現有技術中,文件系統內部同一檢查點的文件和目錄是同時寫入硬盤的,在所有檢查點的文件、目錄和元數據寫入硬盤之后,文件系統再將該文件系統的根節點寫入硬盤。這里,文件系統的根節點可以理解為一種指針,其指向了該文件系統的所有文件、目錄和元數據在硬盤上的存儲地址。當遭遇非正常斷電等特殊情況時,文件服務器正常開機后硬盤中的文件、目錄和元數據都將處在同一個檢查點,即同一檢查點的所有文件和目錄要么全部有效,要么全部無效,這是文件系統的一致性。
[0050]而本發明實施例在文件系統內部采用了將同一檢查點的文件和目錄按照單個文件或目錄分組進行內部寫的方式,為了維持文件系統的一致性,防止出現當遭遇非正常斷電等特殊情況文件服務器正常開機后,硬盤中同一檢查點對應的文件、目錄和元數據部分有效、部分無效的情況,文件服務器將第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫,在第一文件系統的一個檢查點A的內部寫完成后,將第一文件系統的與檢查點A對應的的根節點寫入硬盤,該根節點指向了該檢查點A的文件、目錄及元數據在硬盤上的存儲地址。如此,只要該檢查點A的根節點沒有被寫入硬盤,已寫入硬盤的文件和目錄對于文件服務器而言都是不可見的,并且元數據也不會生效,從而保證了文件系統的一致性;其中,檢查點A表示文件系統的一個檢查點。
[0051]參閱圖5所示,本發明實施例提供了一種文件服務器50,用于實現本發明圖2所示的運行多個文件系統的文件服務器的內部寫方法,該文件服務器50包括:
[0052]停止單元501,用于當文件服務器50的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所有文件系統的內部寫。
[0053]啟動單元502,用于啟動第一文件系統的內部寫;其中,第一文件系統為所有文件系統中臟數據量最小的文件系統,第一文件系統的內部寫為將Cache中第一文件系統的臟數據寫入硬盤的操作。
[0054]進一步地,在所有文件系統的內部寫停止的過程中,所有文件系統的外部寫并不中斷,外部寫為將接收的用戶數據寫入Cache的操作。
[0055]進一步地,當第一文件系統的內部寫成功,并且文件服務器50的內存的剩余空間大于預設閾值時,啟動單元502將啟動除第一文件系統外的其他文件系統的內部寫。
[0056]當第一文件系統的內部寫成功,并且文件服務器50的內存的剩余空間小于預設閾值時,啟動單元502將從除第一文件系統外的其他文件系統中選擇第二文件系統,啟動第二文件系統的內部寫;其中,第二文件系統為除第一文件系統外的其他文件系統中臟數據量最小的文件系統。
[0057]當第一文件系統的內部寫失敗,則啟動單元502將第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
[0058]進一步地,啟動單元502將第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫時,在第一文件系統的任意一個檢查點的內部寫完成后,啟動單元502將第一文件系統的與該任意一個檢查點對應的的根節點寫入硬盤。
[0059]本發明實施例提供了一種運行多個文件系統的文件服務器,包括中央處理單元和內存,所述內存存儲計算機指令,所述中央處理單元執行所述計算機指令用于執行本發明實施例描述的任一方法。
[0060]綜上所述,本發明實施例提供的技術方案,當多個文件系統在內部寫的過程中遇到文件服務器的內存不足的情況時,通過停止所有文件系統的內部寫然后依次開啟文件系統的內部寫,以及在單文件系統內部將同一檢查點的數據以單個文件或目錄為單位進行內部寫的方式,并且在這個過程中不中斷文件系統的外部寫,從而避免了因文件服務器的內存不足導致文件系統被設置為寫保護狀態,引起文件系統的如創建、刪除、修改等業務中斷的問題。
[0061]本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機非易失性存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
[0062]本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0063]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0064]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0065]盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
[0066]顯然,本領域的技術人員可以對本發明實施例進行各種改動和變型而不脫離本發明實施例的范圍。這樣,倘若本發明實施例的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種運行多個文件系統的文件服務器的內部寫方法,其特征在于,包括: 當所述文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所述所有文件系統的內部寫; 啟動第一文件系統的內部寫;其中,所述第一文件系統為所有文件系統中臟數據量最小的文件系統,所述第一文件系統的內部寫為將所述緩存中第一文件系統的臟數據寫入硬盤的操作。
2.如權利要求1所述的方法,其特征在于,所述方法還包括: 當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間大于預設閾值時,啟動除所述第一文件系統外的其他文件系統的內部寫。
3.如權利要求1所述的方法,其特征在于,所述方法還包括: 當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間小于預設閾值時,從除所述第一文件系統外的其他文件系統中選擇第二文件系統,啟動所述第二文件系統的內部寫;其中,所述第二文件系統為除所述第一文件系統外的其他文件系統中臟數據量最小的文件系統。
4.如權利要求1所述的方法,其特征在于,所述方法還包括: 當所述第一文件系統的內部寫失敗,則將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
5.如權利要求4所述的方法,其特征在于,還包括: 將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫,在所述第一文件系統的任意一個檢查點的內部寫完成后,將所述第一文件系統的與所述任意一個檢查點對應的的根節點寫入硬盤。
6.一種運行多個文件系統的文件服務器,其特征在于,包括: 停止單元,用于當所述文件服務器的內存的剩余空間不能夠滿足所有文件系統的需求時,停止所述所有文件系統的內部寫; 啟動單元,用于啟動第一文件系統的內部寫;其中,所述第一文件系統為所有文件系統中臟數據量最小的文件系統,所述第一文件系統的內部寫為將所述緩存中第一文件系統的臟數據寫入硬盤的操作。
7.如權利要求6所述的文件服務器,其特征在于,所述啟動單元還用于: 當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間大于預設閾值時,啟動除所述第一文件系統外的其他文件系統的內部寫。
8.如權利要求6所述的文件服務器,其特征在于,所述啟動單元還用于: 當所述第一文件系統的內部寫成功,并且所述文件服務器的內存的剩余空間小于預設閾值時,從除所述第一文件系統外的其他文件系統中選擇第二文件系統,啟動所述第二文件系統的內部寫;其中,所述第二文件系統為除所述第一文件系統外的其他文件系統中臟數據量最小的文件系統。
9.如權利要求6所述的文件服務器,其特征在于,所述啟動單元還用于: 當所述第一文件系統的內部寫失敗,則將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫。
10.如權利要求9所述的文件服務器,其特征在于,所述啟動單元還用于: 將所述第一文件系統的臟數據以單個文件或單個目錄為單位進行內部寫,在所述第一文件系統的任意一個檢查點的內部寫完成后,將所述第一文件系統的與所述任意一個檢查點對應的的根節點寫入硬盤。
11.一種運行多個文件系統的文件服務器,其特征在于,所述文件服務器包括中央處理單元和內存,所述內存存儲計算機指令,所述中央處理單元執行所述計算機指令用于執行權利要求1至5任一所述的方法。
【文檔編號】G06F3/06GK104461382SQ201410696796
【公開日】2015年3月25日 申請日期:2014年11月26日 優先權日:2014年11月26日
【發明者】陳華, 陳虎 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影