亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

RAID初始化的方法及裝置與流程

文檔序號:12747730閱讀:1484來源:國知局
RAID初始化的方法及裝置與流程
本發(fā)明涉及通信
技術領域
,尤其涉及一種RAID(RedundantArraysofIndependentDisks,磁盤陣列)初始化的方法及裝置。
背景技術
:為了保證數據的可用性以及后續(xù)應用訪問的性能,RAID在使用之前通常需要進行初始化。以軟件RAID為例,在相關技術中,軟件RAID在初始化時可以根據配置客戶端下發(fā)的配置命令構造數據,并根據構造的數據查找目標硬盤,然后,軟件RAID可以將目標硬盤除超級塊和位圖之外的所有數據清零以完成初始化。在相關技術中,軟件RAID發(fā)出的數據必須要經過操作系統(tǒng)才能傳遞到硬盤,在數據發(fā)出之后,軟件RAID需要等待硬盤回應,并在接收到硬盤回應的數據后對回應數據進行處理。大部分情況下硬盤會返回操作成功的命令,但是接收回應并分析以便進行錯誤處理這一步驟并不能省略。因此,在軟件RAID初始化的過程中,操作系統(tǒng)需要占用較多的CPU資源和內存資源。故,操作系統(tǒng)在上述過程中的負擔較重。技術實現要素:有鑒于此,本發(fā)明提供一種RAID初始化的方法,應用于存儲設備,所述存儲設備的主板包括CPU以及基于FPGA的初始化模塊;所述基于FPGA的初始化模塊與所述CPU以及所述存儲設備的若干物理磁盤分別相連接;所述方法包括:步驟A、所述CPU接收配置客戶端發(fā)送的RAID創(chuàng)建命令;所述RAID創(chuàng)建命令攜帶用于創(chuàng)建RAID的若干目標磁盤的標識信息;步驟B、所述CPU基于所述若干目標磁盤的標識信息確定所述若干目標磁盤,并基于所述若干目標磁盤的硬件信息為所述若干目標磁盤分別構造對應的初始化命令;其中,所述若干目標磁盤的硬件信息包括所述若干目標磁盤的物理地址以及磁盤容量;步驟C、所述CPU將所述初始化命令下發(fā)至所述基于FPGA的初始化模塊;步驟D、所述基于FPGA的初始化模塊接收所述CPU下發(fā)的所述初始化命令,并基于所述初始化命令構造對應的初始幀;步驟E、所述基于FPGA的初始化模塊將所述初始幀分別發(fā)送至所述若干目標磁盤,以使所述若干目標磁盤基于所述初始幀完成初始化??蛇x的,所述步驟B具體包括:分別判斷所述若干目標磁盤是否支持WRITESAME命令;在完成判斷后,針對所述若干目標磁盤中支持WRITESAME命令的磁盤使用WRITESAME命令構造對應的初始化命令;以及針對所述若干目標磁盤中不支持WRITESAME命令的磁盤使用WRITE命令構造對應的初始化命令??蛇x的,所述目標磁盤包括若干塊存儲空間,并基于所述若干塊存儲空間完成初始化;所述步驟E進一步包括:接收所述目標磁盤返回的針對當前存儲空間的執(zhí)行結果;基于所述執(zhí)行結果判斷所述存儲空間是否正常初始化;當所述存儲空間未正常初始化時,向所述目標磁盤重新發(fā)送所述初始幀或發(fā)送重新構造的初始幀;當所述存儲空間正常初始化時,基于預設的偏移量修改對應的初始幀的磁盤地址,并將修改后的初始幀發(fā)送至對應的目標磁盤??蛇x的,所述步驟E進一步包括:在所述若干目標磁盤成功完成初始化后,生成并向所述CPU發(fā)送完成指令,以使所述CPU將所述完成指令轉發(fā)至所述配置客戶端,完成所述RAID的初始化。本發(fā)明同時提供一種磁盤陣列RAID初始化的裝置,應用于存儲設備,所述存儲設備的主板包括CPU以及基于FPGA的初始化模塊;所述基于FPGA的初始化模塊與所述CPU以及所述存儲設備的若干物理磁盤分別相連接;所述裝置包括:所述CPU模塊,用于接收配置客戶端發(fā)送的RAID創(chuàng)建命令;所述RAID創(chuàng)建命令攜帶用于創(chuàng)建RAID的若干目標磁盤的標識信息;所述CPU模塊進一步基于所述若干目標磁盤的標識信息確定所述若干目標磁盤,并基于所述若干目標磁盤的硬件信息為所述若干目標磁盤分別構造對應的初始化命令;其中,所述若干目標磁盤的硬件信息包括所述若干目標磁盤的物理地址以及磁盤容量;所述CPU模塊進一步將所述初始化命令下發(fā)至所述基于FPGA的初始化模塊;所述基于FPGA的初始化模塊,用于接收所述CPU下發(fā)的所述初始化命令,并基于所述初始化命令構造對應的初始幀;所述基于FPGA的初始化模塊進一步將所述初始幀分別發(fā)送至所述若干目標磁盤,以使所述若干目標磁盤基于所述初始幀完成初始化??蛇x的,所述CPU模塊進一步用于:分別判斷所述若干目標磁盤是否支持WRITESAME命令;在完成判斷后,針對所述若干目標磁盤中支持WRITESAME命令的磁盤使用WRITESAME命令構造對應的初始化命令;以及針對所述若干目標磁盤中不支持WRITESAME命令的磁盤使用WRITE命令構造對應的初始化命令??蛇x的,所述目標磁盤包括若干塊存儲空間,并基于所述若干塊存儲空間完成初始化;所述基于FPGA的初始化模塊進一步用于:接收所述目標磁盤返回的針對當前存儲空間的執(zhí)行結果;基于所述執(zhí)行結果判斷所述存儲空間是否正常初始化;當所述存儲空間未正常初始化時,向所述目標磁盤重新發(fā)送所述初始幀或發(fā)送重新構造的初始幀;當所述存儲空間正常初始化時,基于預設的偏移量修改對應的初始幀的磁盤地址,并將修改后的初始幀發(fā)送至對應的目標磁盤??蛇x的,所述基于FPGA的初始化模塊進一步用于:在所述若干目標磁盤成功完成初始化后,生成并向所述CPU發(fā)送完成指令,以使所述CPU將所述完成指令轉發(fā)至所述配置客戶端,完成所述RAID的初始化。在本發(fā)明中,存儲設備上的CPU可以接收配置客戶端發(fā)送的RAID創(chuàng)建命令,并基于該創(chuàng)建命令中的若干目標磁盤的標識信息確定若干目標磁盤,在確定上述若干目標磁盤后,CPU可以基于該若干目標磁盤的硬件信息為該若干目標磁盤分別構造對應的初始化命令,然后,CPU可以將上述初始化命令下發(fā)至基于FPGA的初始化模塊,基于FPGA的初始化模塊在接收到上述初始化命令后,可以生成對應的初始幀,并將對應的初始幀分別發(fā)送至上述若干目標磁盤,以使上述若干目標磁盤可以基于對應的初始幀完成初始化。在本發(fā)明中,基于FPGA的初始化模塊可以直接與磁盤交互,從而可以降低大部分操作系統(tǒng)內的IO操作,減輕操作系統(tǒng)的負擔,同時,由于基于FPGA的初始化模塊承載了大部分的IO操作以及磁盤響應的處理,節(jié)省了傳輸到操作系統(tǒng)的時間,因此,本發(fā)明同時可以提高軟件RAID的初始化速度。附圖說明圖1是本發(fā)明一實施例示出的一種RAID初始化的方法的流程圖;圖2是本發(fā)明RAID初始化的裝置所在設備的一種硬件結構圖;圖3是本發(fā)明RAID初始化的裝置的一個實施例框圖。具體實施方式這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。在本發(fā)明使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權利要求書中所使用的單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯的列出項目的任何或所有可能組合。應當理解,盡管在本發(fā)明可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。請參見圖1,為本發(fā)明一實施例示出的一種RAID初始化的方法的流程圖。該實施例應用于存儲設備,包括以下步驟:步驟101:所述CPU接收配置客戶端發(fā)送的RAID創(chuàng)建命令;所述RAID創(chuàng)建命令攜帶用于創(chuàng)建RAID的若干目標磁盤的標識信息。在本發(fā)明中,上述存儲設備的主板可以包括CPU以及基于FPGA的初始化模塊,其中,基于FPGA的初始化模塊可以與上述CPU以及上述存儲設備的若干物理磁盤分別相連接。在本發(fā)明中,上述CPU可以接收配置客戶端發(fā)送的RAID創(chuàng)建命令,其中,該RAID創(chuàng)建命令可以攜帶用于創(chuàng)建RAID的若干目標磁盤的標識信息。具體地,上述若干目標磁盤可以為構成RAID的若干物理磁盤,上述若干目標磁盤的標識信息可以為該若干物理磁盤的基本信息,例如,磁盤容量、條帶規(guī)格等。在示出的一個實施例中,上述若干目標磁盤的標識信息可以如表1所示:Name(名稱)RAID_Volume1RAIDLevel(RAID級別)RAID0(Stripe)StripeSize(條帶規(guī)格)128KBCapacity(容量)149.0GB表1在一個實施例中,用戶可以通過配置客戶端輸入RAID創(chuàng)建命令,其中,該RAID創(chuàng)建命令可以包括RAID創(chuàng)建參數,該RAID創(chuàng)建參數可以與上述若干物理磁盤的基本信息相對應,在該RAID創(chuàng)建命令輸入完成后,配置客戶端可以經操作系統(tǒng)把該RAID創(chuàng)建命令發(fā)送至CPU。需要說明的是,由于RAID創(chuàng)建命令通常為一個字節(jié)較短的數據,因此,在配置客戶端經操作系統(tǒng)將上述RAID創(chuàng)建命令發(fā)送至CPU的過程中,占用的操作系統(tǒng)的資源較低。步驟102:所述CPU基于所述若干目標磁盤的標識信息確定所述若干目標磁盤,并基于所述若干目標磁盤的硬件信息為所述若干目標磁盤分別構造對應的初始化命令;其中,所述若干目標磁盤的硬件信息包括所述若干目標磁盤的物理地址以及磁盤容量。在本發(fā)明中,上述CPU在接收到配置客戶端下發(fā)的RAID創(chuàng)建命令后,可以基于該命令中的若干目標磁盤的標識信息確定若干目標磁盤。在一個實施例中,上述CPU在接收到配置客戶端下發(fā)的RAID創(chuàng)建命令后,可以根據該命令中若干目標磁盤的標識信息從本地預設的對應關系中確定對應的目標磁盤,其中,本地預設的對應關系可以包括上述存儲設備中的磁盤的ID與磁盤的標識信息的對應關系。在示出的一個實施例中,上述預設的對應關系的部分表項可以如表2所示:IDSize(規(guī)格)574.5GB630.0GB774.5GB880.5GB表2由表1和表2可知,當上述CPU根據如表1所示的目標磁盤的標識信息從如表2所示的對應關系中確定目標磁盤時,可以確定磁盤5和磁盤7為目標磁盤。上述CPU在確定若干目標磁盤后,可以基于該若干目標磁盤從預存的磁盤硬件信息表中獲取該若干目標磁盤的硬件信息。其中,該硬件信息可以包括該若干目標磁盤的物理地址以及磁盤容量。需要說明的是,上述磁盤硬件信息表可以包括上述存儲設備中的磁盤的ID與磁盤的標識信息的對應關系。上述CPU在獲取到該若干目標磁盤的硬件信息后,可以基于該硬件信息為該若干目標磁盤分別構造對應的初始化命令。在本發(fā)明中,上述CPU在為該若干目標磁盤分別構造對應的初始化命令的過程中,可以先分別判斷該若干目標磁盤是否支持WRITESAME命令。具體地,上述CPU可以針對該若干目標磁盤分別構造若干對應的WRITESAME命令,然后,可以將該若干WRITESAME命令分別發(fā)送至對應的目標磁盤。該若干目標磁盤接收到對應的WRITESAME命令后可以執(zhí)行該命令,并將執(zhí)行結果返回至上述CPU,上述CPU接收到該若干目標磁盤返回的針對WRITESAME命令的執(zhí)行結果后,可以根據該執(zhí)行結果判斷對應的目標磁盤是否支持WRITESAME命令。在示出的一個實施例中,可以假設上述CPU針對表2所示的磁盤5以及磁盤7分別構造并發(fā)送了對應的WRITESAME命令,假設磁盤5在接收并執(zhí)行對應的WRITESAME命令后,向上述CPU返回的執(zhí)行結果為done。則上述CPU可以在接收到該執(zhí)行結果后判斷磁盤5為支持WRITESAME命令的磁盤;類似地,可以假設磁盤7在接收并執(zhí)行對應的WRITESAME命令后,向上述CPU返回的執(zhí)行結果為fail。則上述CPU可以在接收到該執(zhí)行結果后判斷磁盤7為不支持WRITESAME命令的磁盤。需要說明的是,上述的執(zhí)行結果僅為示例使用,在實際應用中,上述執(zhí)行結果可以包括success、finish、error等,本發(fā)明對此不做限制。在完成上述判斷后,如果該若干目標磁盤中存在支持WRITESAME命令的磁盤,則上述CPU可以針對該磁盤使用WRITESAME命令構造對應的初始化命令;如果該若干目標磁盤中存在不支持WRITESAME命令的磁盤,則上述CPU可以針對該磁盤使用WRITE命令構造對應的初始化命令。在示出的一個實施例中,可以假設上述磁盤5支持WRITESAME命令,則上述CPU可以使用WRITESAME命令構造與磁盤5對應的初始化命令;類似地,可以假設上述磁盤7不支持WRITESAME命令,則上述CPU可以使用WRITE命令構造與磁盤7對應的初始化命令。由于使用WRITESAME命令以及WRITE命令基于磁盤的硬件信息構造初始化命令的技術為現有技術,故本發(fā)明在此不再贅述。步驟103:所述CPU將所述初始化命令下發(fā)至所述基于FPGA的初始化模塊。步驟104:所述基于FPGA的初始化模塊接收所述CPU下發(fā)的所述初始化命令,并基于所述初始化命令構造對應的初始幀。步驟105:所述基于FPGA的初始化模塊將所述初始幀分別發(fā)送至所述若干目標磁盤,以使所述若干目標磁盤基于所述初始幀完成初始化。在本發(fā)明中,在構造了對應的初始化命令后,上述CPU可以通過PCIE總線將上述初始化命令發(fā)送至基于FPGA的初始化模塊。在本發(fā)明中,基于FPGA的初始化模塊接收到上述CPU下發(fā)的初始化命令后,可以基于該初始化命令構造對應的初始幀。然后,基于FPGA的初始化模塊可以將構造的初始幀分別發(fā)送至若干目標磁盤,以使該若干目標磁盤可以基于上述初始幀完成初始化。在本發(fā)明中,上述若干目標磁盤可以包括若干塊存儲空間,并可以基于該若干塊存儲空間完成初始化。其中,該若干塊存儲空間可以為連續(xù)的存儲空間。在接收到對應的初始幀后,上述若干目標磁盤可以分別基于對應的初始幀進行初始化。在初始化的過程中,該若干目標磁盤可以在完成每塊連續(xù)的存儲空間的初始化后,向基于FPGA的初始化模塊返回執(zhí)行結果。基于FPGA的初始化模塊在接收到執(zhí)行結果后,可以基于該執(zhí)行結果判斷對應的存儲空間是否正常初始化,當該對應的存儲空間未正常初始化時,基于FPGA的初始化模塊可以向對應的目標磁盤重新發(fā)送初始幀或發(fā)送基于該執(zhí)行結果重新構造的初始幀,以使該對應的存儲空間基于接收到的初始幀重新初始化;當該對應的存儲空間正常初始化時,基于FPGA的初始化模塊可以基于預設的偏移量修改對應的初始幀的磁盤地址,并將修改后的初始幀發(fā)送至對應的目標磁盤,以使對應的目標磁盤的下一個存儲空間可以基于該修改后的初始幀完成初始化。其中,上述預設的偏移量可以由用戶通過上述配置客戶端來設置,也可以為上述配置客戶端下發(fā)至上述基于FPGA的初始化模塊的默認值。當然,當基于FPGA的初始化模塊基于接收到的執(zhí)行結果判斷若干個存儲空間正常初始化時,可以同時修改該若干個對應的初始幀的磁盤地址,并將修改后的初始幀分別發(fā)送至對應的目標磁盤。需要說明的是,基于FPGA的初始化模塊接收到上述執(zhí)行結果后,可以基于上述執(zhí)行結果生成初始化進度信息,并將該初始化進度信息經上述CPU發(fā)送至上述配置客戶端,以使用戶可以基于上述配置客戶端查看當前的RAID初始化進度。在本發(fā)明中,當上述若干目標磁盤均成功完成初始化時,基于FPGA的初始化模塊可以生成完成指令,并將該完成指令發(fā)送至上述CPU,上述CPU在接收到該完成指令后,可以將該完成指令轉發(fā)至上述配置客戶端,以完成RAID的初始化。在本發(fā)明中,存儲設備上的CPU可以接收配置客戶端發(fā)送的RAID創(chuàng)建命令,并基于該創(chuàng)建命令中的若干目標磁盤的標識信息確定若干目標磁盤,在確定上述若干目標磁盤后,CPU可以基于該若干目標磁盤的硬件信息為該若干目標磁盤分別構造對應的初始化命令,然后,CPU可以將上述初始化命令下發(fā)至基于FPGA的初始化模塊,基于FPGA的初始化模塊在接收到上述初始化命令后,可以生成對應的初始幀,并將對應的初始幀分別發(fā)送至上述若干目標磁盤,以使上述若干目標磁盤可以基于對應的初始幀完成初始化。在本發(fā)明中,基于FPGA的初始化模塊可以直接與磁盤交互,從而可以降低大部分操作系統(tǒng)內的IO操作,減輕操作系統(tǒng)的負擔,同時,由于基于FPGA的初始化模塊承載了大部分的IO操作以及磁盤響應的處理,節(jié)省了傳輸到操作系統(tǒng)的時間,因此,本發(fā)明同時可以提高軟件RAID的初始化速度。與前述RAID初始化的方法的實施例相對應,本發(fā)明還提供了RAID初始化的裝置的實施例。本發(fā)明RAID初始化的裝置的實施例可以應用在存儲服務器上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在設備的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖2所示,為本發(fā)明RAID初始化的裝置所在設備的一種硬件結構圖,除了圖2所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的設備通常還可以包括其他硬件,如負責處理報文的轉發(fā)芯片等等。請參考圖3,是本發(fā)明RAID初始化的裝置的一個實施例框圖。該裝置可以包括:CPU模塊310以及基于FPGA的初始化模塊320。所述CPU模塊310,用于接收配置客戶端發(fā)送的RAID創(chuàng)建命令;所述RAID創(chuàng)建命令攜帶用于創(chuàng)建RAID的若干目標磁盤的標識信息;所述CPU模塊310進一步基于所述若干目標磁盤的標識信息確定所述若干目標磁盤,并基于所述若干目標磁盤的硬件信息為所述若干目標磁盤分別構造對應的初始化命令;其中,所述若干目標磁盤的硬件信息包括所述若干目標磁盤的物理地址以及磁盤容量;所述CPU模塊310進一步將所述初始化命令下發(fā)至所述基于FPGA的初始化模塊;所述基于FPGA的初始化模塊320,用于接收所述CPU下發(fā)的所述初始化命令,并基于所述初始化命令構造對應的初始幀;所述基于FPGA的初始化模塊320進一步將所述初始幀分別發(fā)送至所述若干目標磁盤,以使所述若干目標磁盤基于所述初始幀完成初始化。在一個可選的實施方式中,所述CPU模塊310可以進一步用于:分別判斷所述若干目標磁盤是否支持WRITESAME命令;在完成判斷后,針對所述若干目標磁盤中支持WRITESAME命令的磁盤使用WRITESAME命令構造對應的初始化命令;以及針對所述若干目標磁盤中不支持WRITESAME命令的磁盤使用WRITE命令構造對應的初始化命令。在另一個可選的實施方式中,所述目標磁盤包括若干塊存儲空間,并基于所述若干塊存儲空間完成初始化;所述基于FPGA的初始化模塊320可以進一步用于:接收所述目標磁盤返回的針對當前存儲空間的執(zhí)行結果;基于所述執(zhí)行結果判斷所述存儲空間是否正常初始化;當所述存儲空間未正常初始化時,向所述目標磁盤重新發(fā)送所述初始幀或發(fā)送重新構造的初始幀;當所述存儲空間正常初始化時,基于預設的偏移量修改對應的初始幀的磁盤地址,并將修改后的初始幀發(fā)送至對應的目標磁盤。在一個可選的實施方式中,所述基于FPGA的初始化模塊320可以進一步用于:在所述若干目標磁盤成功完成初始化后,生成并向所述CPU發(fā)送完成指令,以使所述CPU將所述完成指令轉發(fā)至所述配置客戶端,完成所述RAID的初始化。在本發(fā)明中,存儲設備上的CPU可以接收配置客戶端發(fā)送的RAID創(chuàng)建命令,并基于該創(chuàng)建命令中的若干目標磁盤的標識信息確定若干目標磁盤,在確定上述若干目標磁盤后,CPU可以基于該若干目標磁盤的硬件信息為該若干目標磁盤分別構造對應的初始化命令,然后,CPU可以將上述初始化命令下發(fā)至基于FPGA的初始化模塊,基于FPGA的初始化模塊在接收到上述初始化命令后,可以生成對應的初始幀,并將對應的初始幀分別發(fā)送至上述若干目標磁盤,以使上述若干目標磁盤可以基于對應的初始幀完成初始化。在本發(fā)明中,基于FPGA的初始化模塊可以直接與磁盤交互,從而可以降低大部分操作系統(tǒng)內的IO操作,減輕操作系統(tǒng)的負擔,同時,由于基于FPGA的初始化模塊承載了大部分的IO操作以及磁盤響應的處理,節(jié)省了傳輸到操作系統(tǒng)的時間,因此,本發(fā)明同時可以提高軟件RAID的初始化速度。上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本發(fā)明方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。當前第1頁1 2 3 
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1