專利名稱:內存轉儲處理方法和裝置及內存轉儲系統的制作方法
技術領域:
本發明實施例涉及數據處理技術,尤其涉及一種內存轉儲處理方法和裝置及內存轉儲系統。
背景技術:
操作系統一般會在系統崩潰后實行內存轉儲,將內存中的數據轉儲到存儲設備中,以方便事后問題定位。隨著硬件技術的發展,內存得到了極大的擴展,導致了系統轉儲時間過長。同時現代處理器技術的發展,處理器已經從單核發展到多核多線程,能夠同時并行處理多個線程,即處理器具有多個邏輯CPU,一個邏輯CPU即為一個處理單元。而傳統的轉儲使用單個邏輯CPU處理,這就造成了系統的計算能力極大的浪費。現有技術的一些系統如 AIX (Advanced Interactive eXecutive), HP-UX (Hewlett Packard UniX)等提供了并行轉儲的功能,它將內存分塊,由一個或多個邏輯CPU負責一個內存塊的各環節(如預處理、過濾、壓縮、寫磁盤等)的處理操作,從而加快了處理速度。但是,由于處理各個內存塊的邏輯CPU相互獨立并行工作,當多個邏輯CPU同時進行磁盤I/O 傳輸時,會引起磁盤I/O傳輸的瞬時峰值流量,導致轉儲性能的下降。而且,要求存儲設備的驅動程序必須是可重入的,才能保證多個邏輯CPU同時使用存儲設備。
發明內容
本發明實施例提供一種內存轉儲處理方法和裝置及內存轉儲系統,以避免磁盤I/ 0傳輸的瞬時峰值流量,提高內存轉儲性能。本發明實施例提供一種內存轉儲處理方法,包括調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,所述后續處理環節為已處理環節的下一環節;其中,所述各處理單元組對應處理內存轉儲處理中的一個環節。本發明實施例提供一種內存轉儲處理裝置,包括啟動處理模塊,用于調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;后續處理模塊,用于對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,所述后續處理環節為已處理環節的下一環節;其中,所述各處理單元組對應處理內存轉儲處理中的一個環節。本發明實施例提供一種內存轉儲系統,包括內存和至少兩個處理單元,還包括本發明實施例提供的內存轉儲處理裝置。由上述技術方案可知,本發明實施例提供內存轉儲處理方法和裝置及內存轉儲系統,通過調用第一處理單元組對各內存塊的第一環節進行處理,可以逐個觸發對各內存塊的轉儲處理,因此實現將各內存塊串行通過磁盤I/O寫入存儲設備,避免了磁盤I/O傳輸的瞬時峰值流量,存儲設備的驅動程序也無需為可重入的,提高了內存轉儲性能。另外,本實施例對各內存塊的后續處理環節,調用各對應組的處理單元分別進行處理,可以實現各處理單元組以流水方式對各內存塊的各環節的處理,提高了處理單元的利用效率,避免了資源浪費。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例一提供的內存轉儲處理方法流程圖;圖2為本發明實施例二提供的內存轉儲處理方法流程圖;圖3為本發明實施例三提供的內存轉儲處理方法流程圖;圖4為本發明實施例四提供的內存轉儲處理裝置結構示意圖;圖5為本發明實施例五提供的內存轉儲處理裝置結構示意圖;圖6為本發明實施例六提供的內存轉儲系統結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。實施例一圖1為本發明實施例一提供的內存轉儲處理方法流程圖。如圖1所示,本實施例提供的內存轉儲處理方法具體可以應用于具有多個處理單元(即多個邏輯CPU)的系統,當該系統的操作系統崩潰后,操作系統的內存轉儲處理裝置即可控制各處理單元,采用該內存轉儲處理方法進行內存轉儲。內存轉儲處理裝置可以通過硬件和軟件的形式來實現,可以集成在操作系統的控制裝置中,也可以獨立設置內存轉儲處理裝置。本實施例的內存轉儲處理方法包括步驟10、內存轉儲處理裝置調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;具體的,內存已經被劃分成多個內存塊,可以按照多種預設規則進行劃分。通常每個內存塊的轉儲處理都涉及至少兩個環節,例如,典型的環節可以包括預處理、過濾、壓縮和寫磁盤等環節,對內存塊各環節的處理具有一定的順序,只有當上一環節處理完成后,才能進行下一環節的處理。本實施例所采用的技術方案中,為每個環節分配對應的處理單元組,每組中處理單元的數量可以根據處理單元的實際處理速度來分配,可以為一個或多個。 如預處理環節對應的處理單元組中包括一個處理單元,過濾環節對應的處理單元組中包括一個處理單元,壓縮環節對應的處理單元組中包括三個處理單元,寫磁盤環節對應的處理單元組中包括一個處理單元,以使各環節保持相對一致的處理進度。上述步驟10即調用第一環節對應的第一處理單元組,對各內存塊的第一環節進行處理,具體可以按照設定的順序對各內存塊進行處理。步驟20、對第一環節處理完成后的后續處理環節,調用第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,后續處理環節為已處理環節的下一環節。其中,各處理單元組對應處理內存轉儲處理中的一個環節。第一處理單元組為第一環節對應的處理單元組,調用第一處理單元組對各內存塊的第一環節進行處理,當第一處理單元組對一個內存塊的第一環節處理完成后,該第一環節即為已處理環節,此時才可以調用其他處理單元組對該內存塊依次進行后續處理環節的處理,而此時,第一處理單元組可以繼續對下一個內存塊的第一環節進行處理。隨著轉儲的進展,各內存塊陸續出現后續處理環節,這些后續處理環節可能對應著不同的環節,內存轉儲處理裝置可以調用不同的處理單元組同時對這些后續處理環節進行處理。下面以內存塊的內存轉儲處理包括預處理、過濾、壓縮和寫磁盤四個環節為例對內存轉儲處理方法進行說明,該四個環節對應的處理單元組分別為第一處理單元組、第二處理單元組、第三處理單元組和第四處理單元組。通過本實施例提供的內存轉儲處理方法進行內存轉儲的具體過程可以為首先調用第一處理單元組對第一個內存塊的預處理環節進行處理,預處理環節處理完成后,該環節即為已處理環節,則第一個內存塊的過濾環節為后續處理環節。此時,可以按照內存塊的順序,調用第一處理單元組對第二個內存塊的預處理環節進行處理,同時,可調用第二處理單元組對第一個內存塊的過濾環節進行處理。第一個內存塊的過濾環節處理完成后,壓縮環節成為后續處理環節,而第二個內存塊的預處理環節處理完成后,其過濾環節成為后續處理環節。此時,可以按照內存塊的順序,調用第一處理單元組對第三個內存塊的預處理環節進行處理,同時,調用第三處理單元組對第一個內存塊的壓縮環節進行處理,調用第二處理單元組對第二個內存塊的過濾環節進行處理。 后續的操作過程類似執行,第一個內存塊的壓縮環節處理完成后,調用第四處理單元組對第一個內存塊的寫磁盤環節進行處理,將第一個內存塊寫入存儲設備,至此就完成了對第一個內存塊的轉儲處理。第二個內存塊的過濾環節處理完成后調用第三處理單元組對第二個內存塊的壓縮環節進行處理,第三個內存塊的預處理環節處理完成后,調用第二處理單元組對第三個內存塊的過濾環節進行處理,同時調用第一處理單元組對第四個內存塊的預處理環節進行處理。依次循環實現對各內存塊的各環節的流水線處理,實現將所有內存塊順序通過磁盤I/O寫入存儲設備。本實施例提供的內存轉儲處理方法,通過調用第一處理單元組對各內存塊的第一環節進行處理,可以逐個觸發對各內存塊的轉儲處理,因此實現將各內存塊串行通過磁盤 I/O寫入存儲設備,避免了磁盤I/O傳輸的瞬時峰值流量,存儲設備的驅動程序也無需為可重入的,提高了內存轉儲性能。另外,本實施例對各內存塊的后續處理環節,調用各對應組的處理單元分別進行處理,可以實現各處理單元組以流水方式對各內存塊的各環節的處理,提高了處理單元的利用效率,避免了資源浪費。實施例二
圖2為本發明實施例二提供的內存轉儲處理方法流程圖。本實施例與實施例一的區別在于,上述實施例中的步驟20,對第一環節處理完成后的后續處理環節,調用第一處理單元組之外的各處理單元組分別進行處理,具體可以包括當內存轉儲處理裝置識別到內存塊存在后續處理環節時,調用對應的處理單元組進行處理,且在處理完成后,將下一個環節更新為后續處理環節。通過對內存塊的后續處理環節的識別和更新,可以實現各內存塊的各環節流水處理的同步。在本實施例中,環節具體可以包括預處理環節、過濾環節、壓縮環節和寫磁盤環節。預處理環節、過濾環節、壓縮環節和寫磁盤環節順序處理,第一環節為預處理環節,后續處理環節為過濾環節、壓縮環節或寫磁盤環節。如,作為第一環節的預處理環節處理完成后,過濾環節為后續處理環節,當過濾環節處理完成后,壓縮環節為后續處理環節,以此類推。環節的設置可以根據實際內存轉儲需要來設置,不以本實施例為限。在本實施例中,優選地,各內存塊的各環節對應設置有存儲位,用于存儲處理狀態標識,則當內存轉儲處理裝置識別到內存塊存在后續處理環節時,調用對應的處理單元組進行處理,且在處理完成后,將下一個環節更新為后續處理環節的操作具體可以包括如下步驟步驟301、當內存轉儲處理裝置根據各內存塊各存儲位的處理狀態標識識別到后續處理環節時,調用對應的處理單元組進行處理;步驟302、在內存塊當前的后續處理環節處理完成后,內存轉儲處理裝置更新內存塊對應的處理狀態標識,以將下一個環節更新為后續處理環節。處理狀態標識具體用以指示某一內存塊的某一環節是否已經處理完成。存儲位具體可以設置在內存的預留存儲區域中,該預留存儲區域在系統正常工作時不調用,只有在系統崩潰需要進行內存轉儲時,才使用該預留存儲區域中的存儲位存儲處理狀態標識。 存儲位也可以設置在其他存儲單元中,在系統崩潰時可以用以存儲位存儲處理狀態標識即可,不以本實施例為限。存儲位的設置方法具體可以為假設將內存總共劃分為IOM塊內存塊,每個內存塊需要進行四個環節的處理,則每個內存塊需要三個處理狀態標識,分別對應前三個環節的處理狀態,若某一環節的狀態為未處理,該環節對應的處理狀態標識為“0”,當該環節處理完成后,將該環節對應的處理狀態標識更新為“1”,據此可以對內存塊的該環節的下一環節進行處理,實現了各環節的同步操作。通過一個存儲位存儲一個處理狀態標識,則需要10MX3 = 3072個存儲位,一個存儲位具體可以為1比特,則至少需要384個字節的預留存儲區域。在內存轉儲工作開始之前,具體可以將預留存儲區域中的所有存儲位存儲的處理狀態標識初始化為“0”,以便內存轉儲過程中對處理狀態標識更新來實現對各環節的同步。通過處理狀態標識的設置,在系統崩潰的環境下,避免了應用系統信號量進行流水處理中各環節同步而引起的錯誤,提高了內存轉儲處理的正確性,進一步提高了內存轉儲性能。流水處理中各環節的同步也可以通過隊列、堆棧等數據結構來實現,不以本實施例為限。在本實施例中,步驟10內存轉儲處理裝置調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理,具體可以包括
步驟101、內存轉儲處理裝置按照各內存塊的順序對內存塊進行編號;步驟102、內存轉儲處理裝置調用第一處理單元組按照編號順序對各內存塊的內存轉儲處理的第一環節進行處理。通過按照各內存塊的順序對內存塊進行編號,調用第一處理單元組按照編號順序對各內存塊的第一環節進行處理,實現對各內存塊的后續處理環節也是按照內存塊的順序進行,將內存塊寫入存儲設備后不需要進行特殊處理就可以還原內存中的文件數據。實施例三圖3為本發明實施例三提供的內存轉儲處理方法流程圖。本實施例提供的內存轉儲處理方法具體還可以包括如下步驟步驟40、內存轉儲處理裝置檢測各處理單元組的負載狀況,生成檢測結果;步驟50、內存轉儲處理裝置根據檢測結果動態調整各處理單元組中處理單元的數量。通過對各處理單元組的負載狀況的檢測,能夠對各環節動態分配處理單元,保持了處理過程的平衡性,避免出現瓶頸。具體的,可以預先設置預處理環節對應的處理單元組中包括一個處理單元,過濾環節對應的處理單元組中包括一個處理單元,壓縮環節對應的處理單元組中包括三個處理單元,寫磁盤環節對應的處理單元組中包括一個處理單元。在內存轉儲過程中,再通過對各處理單元組的負載狀況的檢測動態地調整各處理單元組中的處理單元的數量,當壓縮環節的處理速度過快時,而過濾環節的處理速度比較慢時,可以使壓縮環節的三個處理單元中的一個停止工作,釋放該處理單元的資源,并將該處理單元用于進行過濾環節的處理工作。也可以預設各環節對應的處理單元組中處理單元的數量均為一個,再在內存轉儲過程中,通過對各處理單元組的負載狀況的檢測動態地調整各處理單元組中處理單元的數量。值得注意的是,內存轉儲處理裝置檢查各處理單元組的負載狀況, 并調整各處理單元組中處理單元的數量的步驟可以在內存轉儲過程中進行,與上述內存轉儲的各步驟不具有必然的時序關系。在本實施例中,優選地,步驟40內存轉儲處理裝置檢測各處理單元組的負載狀況,生成檢測結果,具體可以包括內存轉儲處理裝置檢測各處理單元組處理設定數量內存塊對應環節的平均時間, 作為檢測結果。通過對各處理單元組處理設定數量內存塊對應環節的平均時間進行檢測,作為檢測結果,以反映各處理單元的負載情況,操作簡單,易于實現。在本實施例中,當后續處理環節為寫磁盤環節時,則對第一環節處理完成后的后續處理環節,調用第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備的操作具體可以包括如下步驟內存轉儲處理裝置調用寫磁盤環節對應的處理單元組,根據磁盤I/O的數量和內存塊的編號進行寫磁盤環節處理,將內存塊通過磁盤I/O寫入存儲設備。在實際應用中,磁盤I/O的數量可能為多個,通過多個磁盤I/O將內存塊寫入存儲設備時,可以根據磁盤I/O的數量和內存塊的編號進行寫磁盤環節處理,以保證內存塊在存儲設備中的存儲順序。在本實施例中,優選地,根據磁盤I/O的數量和內存塊的編號進行寫磁盤環節處理,將內存塊通過磁盤I/O寫入存儲設備,具體可以包括如下步驟對內存塊的編號和磁盤I/O的數量取模,根據取模結果將內存塊通過對應的磁盤 I/O寫入存儲設備。具體的,例如,內存塊的編號為1-1024,磁盤I/O的數量為2個,編號為0和1,則 1號內存塊的編號1,與2取模,取模結果為1,則將1號內存塊通過1號磁盤I/O寫入存儲設備,2號內存塊的編號為2,與2取模,取模結果為0,則將2號內存塊通過0號磁盤寫入存儲設備。在本實施例中,在步驟10內存轉儲處理裝置調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理,之前,具體還可以包括劃分內存塊的步驟步驟60、內存轉儲處理裝置根據待寫入磁盤I/O的帶寬將內存劃分為至少兩個內存塊。根據寫入磁盤I/O的帶寬對內存進行劃分,可以避免磁盤I/O的擁塞而導致的內存轉儲性能的下降。在本實施例中,優選地,步驟60內存轉儲處理裝置根據待寫入磁盤I/O的帶寬將內存劃分為至少兩個內存塊,具體可以包括步驟601、內存轉儲處理裝置根據待寫入磁盤I/O的帶寬計算內存塊的容量,其中,內存塊經過寫磁盤環節之前各環節處理后的容量不大于磁盤I/O的帶寬;步驟602、內存轉儲處理裝置根據計算得到的內存塊容量對內存進行劃分。如寫入磁盤I/O的帶寬為20M/s,過濾環節的比率為50 %和壓縮環節的比率為 50%, 20/50% /50%= 80M,則劃分的內存塊的容量大小為80M,根據該內存塊容量對內存進行劃分,可以有效利用磁盤I/O的帶寬。實施例四圖4為本發明實施例四提供的內存轉儲處理裝置結構示意圖。如圖4所示,本實施例提供的內存轉儲處理裝置具體可以實現本發明任意實施例提供的內存轉儲處理方法, 但并不以此為限。本實施例提供的內存轉儲處理裝置包括啟動處理模塊11和后續處理模塊12。啟動處理模塊11用于調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理。本實施例所采用的技術方案中,內存轉儲處理裝置可以預先為每個環節分配對應的處理單元組13,每處理單元組中處理單元的數量也可以根據處理單元的實際處理速度來分配,可以為一個或多個。后續處理模塊12用于對第一環節處理完成后的后續處理環節,調用第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,后續處理環節為已處理環節的下一環節。其中,各處理單元組對應處理內存轉儲處理中的一個環節。本實施例提供的內存轉儲處理裝置,通過啟動處理模塊11的設置,調用第一處理單元組對各內存塊的第一環節進行處理,可以逐個觸發對各內存塊的轉儲處理,因此實現將各內存塊串行通過磁盤I/O寫入存儲設備,避免了磁盤I/O傳輸的瞬時峰值流量,存儲設備的驅動程序也無需為可重入的,提高了內存轉儲性能。另外,本實施例通過后續處理模塊 12的設置,對各內存塊的后續處理環節,調用各對應組的處理單元分別進行處理,可以實現各處理單元組13以流水方式對各內存塊的各環節的處理,提高了處理單元的利用效率,避免了資源浪費。實施例五圖5為本發明實施例五提供的內存轉儲處理裝置結構示意圖。在本實施例中,各內存塊的各環節對應設置有存儲位,用于存儲處理狀態標識,處理狀態標識具體用以指示某一內存塊的某一環節是否已經處理完成。存儲位具體可以設置在內存15的預留存儲區域中,該預留存儲區域在系統正常工作時不調用,只有在系統崩潰需要進行內存轉儲時,才使用該預留存儲區域中的存儲位存儲處理狀態標識。存儲位也可以設置在其他存儲單元中,在系統崩潰時可以用以存儲位存儲處理狀態標識即可,不以本實施例為限。本實施例提供內存轉儲處理裝置中的后續處理模塊12具體可以包括后續環節處理單元121和存儲位更新單元122。后續環節處理單元121用于當根據各內存塊各存儲位的處理狀態標識識別到后續處理環節時,調用對應的處理單元組進行處理。存儲位更新單元122用于在內存塊當前的后續處理環節處理完成后,更新內存塊對應的處理狀態標識, 以將下一個環節更新為后續處理環節。通過處理狀態標識的設置,在系統崩潰的環境下,避免了應用系統信號量進行流水處理中各環節同步而引起的錯誤,提高了內存轉儲處理的正確性,進一步提高了內存轉儲性能。流水處理中各環節的同步也可以通過隊列、堆棧等數據結構來實現,不以本實施例為限。在本實施例中,啟動處理模塊11具體可以包括編號單元111和啟動單元112,編號單元111用于按照各內存塊的順序對內存塊進行編號。啟動單元112用于調用第一處理單元組按照編號順序對各內存塊的內存轉儲處理的第一環節進行處理。通過編號單元111按照各內存塊的順序對內存塊進行編號,并通過啟動單元112 調用第一處理單元組按照編號順序對各內存塊的第一環節進行處理,實現對各內存塊的后續處理環節也是按照內存塊的順序進行,將內存塊寫入存儲設備14后不需要進行特殊處理就可以還原內存中的文件數據。在本實施例中,內存轉儲處理裝置具體還包括負載檢測模塊17和負載調整模塊 18,負載檢測模塊17用于檢測各處理單元組的負載狀況,生成檢測結果。負載調整模塊18 用于根據檢測結果動態調整各處理單元組中處理單元的數量。通過負載檢測模塊17對各處理單元組的負載狀況的檢測,負載調整模塊18能夠對各環節動態分配處理單元,保持了處理過程的平衡性,避免出現瓶頸,也有效地利用了處
理資源。在本實施例中,優選地,負載檢測模塊17可以檢測各處理單元組處理設定數量內存塊對應環節的平均時間,作為檢測結果。通過對各組處理單元處理設定數量內存塊對應環節的平均時間進行檢測,作為檢測結果,以反映各處理單元的負載情況,操作簡單,易于實現。在本實施例中,后續環節處理單元121至少包括寫磁盤處理子單元1211。寫磁盤處理子單元1211用于當根據各內存塊各存儲位的處理狀態標識識別到后續處理環節,且后續處理環節為寫磁盤環節時,調用寫磁盤環節對應的處理單元組進行處理,且指示根據磁盤I/O的數量和內存塊的編號進行寫磁盤環節處理,將內存塊通過磁盤I/O寫入存儲設備14。
在實際應用中,磁盤I/O的數量可能為多個,通過多個磁盤I/O將內存塊寫入存儲設備14時,可以通過寫磁盤處理子單元1211指示寫磁盤環節對應的處理單元組13根據磁盤I/O的數量和內存塊的編號進行寫磁盤環節處理,以保證內存塊在存儲設備14中的存儲順序。在本實施例中,內存轉儲處理裝置還可以包括內存劃分模塊16,內存劃分模塊16 用于根據待寫入磁盤I/O的帶寬將內存1 5劃分為至少兩個內存塊。根據寫入磁盤I/O的帶寬對內存1 5進行劃分,可以避免磁盤I/O的擁塞而導致的內存轉儲性能的下降。實施例六圖6為本發明實施例六提供的內存轉儲系統結構示意圖,如圖6所示,本實施例提供的內存轉儲系統包括內存15和至少兩個處理單元23,還包括本發明任意實施例提供的內存轉儲處理裝置21。本實施例提供內存轉儲系統中通過內存轉儲處理裝置21調用處理單元23對內存15進行轉儲的工作過程具體可以參照上述實施例,此不再贅述。本實施例提供的內存轉儲系統,可以逐個觸發對各內存塊的轉儲處理,因此實現將各內存塊串行通過磁盤I/O寫入存儲設備14,避免了磁盤I/O傳輸的瞬時峰值流量,存儲設備14的驅動程序也無需為可重入的,提高了內存轉儲性能。也可以實現各處理單元組 13以流水方式對各內存塊的各環節的處理,提高了處理單元的利用效率,避免了資源浪費。本發明實施例提供的內存轉儲處理方法和裝置及內存轉儲系統,以流水方式實現多處理單元合作對內存塊串行轉儲,將峰值的磁盤I/O流量分流到了各個環節,避免了磁盤I/O傳輸的瞬時峰值流量,存儲設備的驅動程序也無需為可重入的,提高了內存轉儲性能。實現了對內存文件的順序轉儲,對于多磁盤I/O提供了簡單的處理原則。根據各環節的負載情況動態地調整各組處理單元的數量,避免了瓶頸問題,有效地利用了系統資源。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換; 而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
權利要求
1.一種內存轉儲處理方法,其特征在于,包括調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,所述后續處理環節為已處理環節的下一環節;其中,所述各處理單元組對應處理內存轉儲處理中的一個環節。
2.根據權利要求1所述的內存轉儲處理方法,其特征在于,對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理包括當識別到內存塊存在后續處理環節時,調用對應的處理單元組進行處理,且在處理完成后,將下一個環節更新為后續處理環節。
3.根據權利要求2所述的內存轉儲處理方法,其特征在于,各內存塊的各環節對應設置有存儲位,用于存儲處理狀態標識,則當識別到內存塊存在后續處理環節時,調用對應的處理單元組進行處理,且在處理完成后,將下一個環節更新為后續處理環節包括當根據各內存塊各存儲位的處理狀態標識識別到后續處理環節時,調用對應的處理單元組進行處理;在內存塊當前的后續處理環節處理完成后,更新內存塊對應的處理狀態標識,以將下一個環節更新為后續處理環節。
4.根據權利要求1或2或3所述的內存轉儲處理方法,其特征在于,調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理包括按照各內存塊的順序對內存塊進行編號;調用第一處理單元組按照所述編號順序對各內存塊的內存轉儲處理的第一環節進行處理。
5.根據權利要求1或2或3所述的內存轉儲處理方法,其特征在于,還包括檢測各處理單元組的負載狀況,生成檢測結果;根據所述檢測結果動態調整各處理單元組中處理單元的數量。
6.根據權利要求5所述的內存轉儲處理方法,其特征在于,檢測各處理單元組的負載狀況,生成檢測結果包括檢測各處理單元組處理設定數量內存塊對應環節的平均時間,作為檢測結果。
7.根據權利要求4所述的內存轉儲處理方法,其特征在于,當后續處理環節為寫磁盤環節時,則所述對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備包括調用寫磁盤環節對應的處理單元組,根據磁盤I/O的數量和所述內存塊的編號進行寫磁盤環節處理,將所述內存塊通過磁盤I/O寫入存儲設備。
8.根據權利要求7所述的內存轉儲處理方法,其特征在于,根據磁盤I/O的數量和所述內存塊的編號進行寫磁盤環節處理,將所述內存塊通過磁盤I/O寫入存儲設備包括對所述內存塊的編號和所述磁盤I/O的數量取模,根據取模結果將所述內存塊通過對應的磁盤I/O寫入存儲設備。
9.根據權利要求1所述的內存轉儲處理方法,其特征在于,在調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理之前,還包括根據待寫入磁盤I/O的帶寬將內存劃分為至少兩個內存塊。
10.根據權利要求9所述的內存轉儲處理方法,其特征在于,根據待寫入磁盤I/O的帶寬將內存劃分為至少兩個內存塊包括根據待寫入磁盤I/O的帶寬計算內存塊的容量,其中,所述內存塊經過寫磁盤環節之前各環節處理后的容量不大于所述磁盤I/O的帶寬;根據計算得到的內存塊容量對所述內存進行劃分。
11.根據權利要求1所述的內存轉儲處理方法,其特征在于所述環節包括預處理環節、過濾環節、壓縮環節和寫磁盤環節;所述預處理環節、過濾環節、壓縮環節和寫磁盤環節順序處理;所述第一環節為所述預處理環節,所述后續處理環節為所述過濾環節、所述壓縮環節或所述寫磁盤環節。
12.—種內存轉儲處理裝置,其特征在于,包括啟動處理模塊,用于調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;后續處理模塊,用于對所述第一環節處理完成后的后續處理環節,調用所述第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備,所述后續處理環節為已處理環節的下一環節;其中,所述各處理單元組對應處理內存轉儲處理中的一個環節。
13.根據權利要求12所述的內存轉儲處理裝置,其特征在于,各內存塊的各環節對應設置有存儲位,用于存儲處理狀態標識,且所述后續處理模塊包括后續環節處理單元,用于當根據各內存塊各存儲位的處理狀態標識識別到后續處理環節時,調用對應的處理單元組進行處理;存儲位更新單元,用于在內存塊當前的后續處理環節處理完成后,更新內存塊對應的處理狀態標識,以將下一個環節更新為后續處理環節。
14.根據權利要求12或13所述的內存轉儲處理裝置,其特征在于,所述啟動處理模塊包括編號單元,用于按照各內存塊的順序對內存塊進行編號;啟動單元,用于調用第一處理單元組按照所述編號順序對各內存塊的內存轉儲處理的第一環節進行處理。
15.根據權利要求12或13所述的內存轉儲處理裝置,其特征在于,還包括負載檢測模塊,用于檢測各處理單元組的負載狀況,生成檢測結果;負載調整模塊,用于根據所述檢測結果動態調整各處理單元組中處理單元的數量。
16.根據權利要求14所述的內存轉儲處理裝置,其特征在于所述后續環節處理單元至少包括寫磁盤處理子單元,用于當根據各內存塊各存儲位的處理狀態標識識別到后續處理環節,且后續處理環節為寫磁盤環節時,調用寫磁盤環節對應的處理單元組進行處理,且指示根據磁盤I/O的數量和所述內存塊的編號進行寫磁盤環節處理,將所述內存塊通過磁盤I/O寫入存儲設備。
17.根據權利要求12所述的內存轉儲處理裝置,其特征在于,還包括內存劃分模塊,用于根據待寫入磁盤I/O的帶寬將內存劃分為至少兩個內存塊。
18. 一種內存轉儲系統,包括內存和至少兩個處理單元,其特征在于,還包括權利要求 12-17任一所述的內存轉儲處理裝置。
全文摘要
本發明實施例提供一種內存轉儲處理方法和裝置及內存轉儲系統,該方法包括調用第一處理單元組對各內存塊的內存轉儲處理的第一環節進行處理;對第一環節處理完成后的后續處理環節,調用第一處理單元組之外的各處理單元組分別進行處理,以將內存塊寫入存儲設備。本發明實施例提供的內存轉儲處理方法和裝置及內存轉儲系統,可以實現流水方式對各內存塊的各環節進行處理,避免磁盤I/O傳輸的瞬時峰值流量,提高內存轉儲性能。
文檔編號G06F12/06GK102203718SQ201180000579
公開日2011年9月28日 申請日期2011年5月26日 優先權日2011年5月26日
發明者張超, 李俊 申請人:華為技術有限公司