專利名稱:基于對象的存儲控制器及其使用的調度方法
技術領域:
本發明屬于計算機存儲技術領域,具體涉及一種基于對象的存儲控制器及其使用的調度方法。
背景技術:
由于網絡技術的發展及現代信息數據量的激增,人們對網絡存儲系統提出了更高要求,但現有網絡存儲系統廣泛使用的兩種接口,即塊級接口(如存儲區域網SAN)與文件級接口(如附網存儲NAS),都存在缺陷,雖然SAN具有高吞吐率的優點,但由于建立在塊接口上,隨著節點數增加,其元數據管理將變得越來越困難,因此SAN的擴展性有限;采用文件級接口使得NAS具有良好的擴展性,但NAS的數據通路與傳統的文件服務器沒有本質差別,故NAS的效率不高。卡內基梅隆大學等多所大學及研究機構在比較了NAS和SAN優缺點的基礎上,結合兩者的優點,提出了一種新的接口——基于對象(Object-Based)的接口,以此構建的存儲系統在性能、可擴展性、安全性、跨平臺能力等方面均比傳統的NAS與SAN優越,但這些系統局限于文件系統的單一應用,且存儲容量的擴展能力有限,沒有充分利用設備的處理能力。
中國發明專利CN03125247.8提出的外置式多通道網絡磁盤陣列控制裝置也克服了NAS與SAN的一些缺點,通過在控制裝置中增加數據通路改變了舊有模式。但其主機通道可接入的控制裝置數量有限,限制了系統的擴展性。
目前基于對象存儲的接口,僅支持簡單的對象讀寫等操作,在很多情況下(如數據庫查詢等),用戶需要將數據從網絡上的存儲設備讀取到本地進行處理,而最終僅用到處理后的少量數據,這嚴重浪費了網絡帶寬。按照數據就近處理的原則,應該在附網存儲設備中加入智能處理能力——操作,即將數據用操作過濾后再傳輸。卡內基梅隆大學的主動盤技術(Active Disk),允許存儲設備執行特定的代碼,但只局限于某種應用,且不能靈活應用于各種環境。
發明內容
本發明提供一種基于對象的存儲控制器及其使用的調度方法,針對現有技術的不足,充分利用設備的處理能力,減少網絡數據傳輸操作層次和縮短I/O路徑,為用戶提供一個靈活的充分利用存儲設備處理能力的機制。
本發明的基于對象的存儲控制器OBSC(Object-Based StorageController),包括運行控制部件、存儲設備接口部件和網絡接口部件,各部件之間通過總線物理連接,其中運行控制部件,包括通過PCI-X總線連接的中央處理器CPU、內存RAM和只讀存儲器EPROM,提供處理能力和運行環境以實現對象的智能處理和支持存儲設備的功能擴展,對存儲設備接口部件中存儲設備接口和網絡接口部件中的網絡通道接口加以控制;存儲設備接口部件,包括一個或多個存儲設備接口,用于本裝置與存儲設備的連接,執行面向塊設備級的協議;網絡接口部件,包括一個或多個基于對象的網絡通道接口,按特定的協議接收基于對象語義的用戶請求和用戶數據。
所述的基于對象的存儲控制器,根據性能、成本,所述存儲設備接口部件中的存儲設備接口可以為執行面向塊設備級協議的接口SCSI、FC、IDE或SATA;所述網絡接口部件中的網絡通道接口可以采用相同或不同的形式,且不局限于任何網絡形態,各網絡通道接口可以接入同一網絡或不同網絡中。
所述基于對象的存儲控制器所使用的調度方法,包括如下步驟(1)由EPROM中的啟動代碼將系統基本操作調入內存RAM;(2)依用戶請求特征進行判斷,請求觸發進程進行步驟(3),策略觸發進程轉步驟(4);(3)請求觸發進程,從網絡接口接收用戶請求包,對其進行身份驗證,將通過驗證的請求包送入隊列排隊;如果隊列為空,則等待網絡接口部件接收新的用戶請求,否則按優先級依次對隊列中的請求包進行處理數據請求轉(3-1)、請求注冊操作轉(3-2)、請求注冊策略轉(3-3)、請求注銷操作轉(3-4)、請求注銷策略轉(3-5);(3-1).數據請求,根據請求包中指明的操作ID觸發相應的操作執行,過程如下A.讀取用戶發來的請求包,其中包含有操作ID號和對象ID號;B.根據對象ID號通過存儲設備接口部件將對象讀入內存RAM中;C.根據操作ID號進行判斷,如果是系統操作,則以內存RAM中的系統操作作為輸入,調度系統操作運行;否則根據操作ID在操作索引表里找到自定義操作的內存映像地址,地址如為空,則根據操作ID通過存儲接口部件把自定義操作讀入內存RAM,調度自定義操作運行,對對象進行操作;D.結果通過網絡接口部件返回給用戶,操作運行結束;(3-2).注冊操作,將操作加入內存的操作庫中,為操作分配ID號,ID號通過網絡接口部件返回給用戶;(3-3).注冊策略,把策略加入內存的策略庫中,為策略分配策略ID號,填寫策略ID與操作ID對照表,將ID號通過網絡接口部件返回給用戶;(3-4).注銷操作,根據請求包中的操作ID將操作從操作庫中刪除;
(3-5).注銷策略,根據請求包中指明的策略ID號把策略從策略庫中刪除,同時把策略ID與操作ID對照表中的相應表項刪除;(4)策略觸發進程,在滿足一定條件的下調用相應的操作執行,過程如下(4-1).通過存儲接口部件讀取根對象,從根對象獲取系統狀態信息;根據歷史訪問記錄讀取最近一次訪問對象的屬性;(4-2).從策略庫中讀取一個策略;(4-3).將策略庫中的策略與獲取的系統狀態、對象屬性信息進行匹配,如果策略規定的條件滿足,則通過策略ID找到對應的操作ID;(4-4).根據操作ID號進行判斷,如果是系統操作,則調度系統操作運行,否則根據操作ID號通過存儲接口部件把自定義操作加載到內存RAM中并調度自定義操作運行;(4-5).讀取策略庫中下一個策略,回到步驟(4),如果策略庫中所有策略都被讀取過了,則完成一個輪回,延遲一段時間后回到步驟(4),重新開始新的一輪比較。
使用本發明中基于對象的存儲控制器可以組建大容量存儲系統,這種系統改變了傳統的數據管理方式和數據處理方式,它將傳統文件系統和數據庫系統中繁瑣的底層數據管理移至OBSC中管理,原來由客戶端應用程序承擔的數據處理也部分移至OBSC中處理。本發明具有以下優點1.具有自治能力,可以自主管理對象的空間分配。
2.提供對象操作,可以將數據過濾后再傳輸,減少網絡帶寬需求。
3.OBSC提供的對象操作的調度方法,容易在存儲系統內實現自管理功能,如自動恢復、自動負載均衡、自動熱點遷移等。
圖1為本發明的結構示意圖;圖2為本發明配備磁盤驅動器的實施例組成示意圖;圖3為本發明所采用的對象操作的調度方法流程圖。
具體實施例方式
下面結合附圖和實施例對本發明進一步詳細說明。
圖1為本發明的結構示意圖。本發明基于對象的存儲控制器100包含運行控制部件140、存儲設備接口部件112以及OBS網絡接口部件122,各部件模塊之間通過總線130物理連接。
運行控制部件140具體包括通過總線130連接的中央處理器CPU 142、內存RAM 141和只讀存儲器EPROM 143,提供處理能力、操作運行環境與調度能力;運行控制部件對存儲設備接口和網絡通道接口加以控制。
存儲設備接口部件112由一個或多個存儲設備接口111.1~111.n構成,用于連接存儲設備110.1~110.n。存儲設備主要是各類的磁盤驅動器,但不限定于何種形式的存儲設備。根據性能、成本存儲設備接口可采用執行面向塊設備級的協議的接口如SCSI、FC、IDE及SATA等。
OBS網絡接口部件122由一個或多個網絡通道接口121.1~121.k組成,網絡通道接口可以采用相同或不同的形式,且不局限于任何網絡形態,各網絡通道接口可以接入同一網絡或不同網絡中,按特定的協議通過網絡通道120.1~120.k直接接受用戶基于對象的數據請求。
圖2為本發明配備磁盤驅動器的實施例組成示意圖。存儲設備接口模塊中111.1和111.2由兩塊LSI公司的LSI53C1010 SCSI-PCI適配卡構成,適配卡控制的SCSI通道110.1、110.2、110.3和110.4上掛接多個SCSI硬盤驅動器,形成磁盤串。本實施例里每串掛接2個SCSI硬盤,型號為磁盤型號ST173404LC,其SCSI ID號分別設置為1和2。OBS網絡接口部件122中的網絡接口采用一塊千兆以太網卡SK9822。運行控制部件140包括CPU142(PIII866)、內存RAM141(128MByte)和只讀存儲器EPROM143(4MByte)。EPROM中固化存放本控制器的控制程序。CPU提供了所需處理能力為操作的運行提供支持,RAM提供控制程序運行空間以及對象讀寫所需緩存(Buffer)空間。上述4部分模塊通過總線130相連。
本發明運行控制部件的核心是對象操作的調度方法,首先對OBSC中的對象操作作一些描述。
OBSC為實現可擴展的操作,允許外界自定義對象操作。傳統操作(讀寫對象數據,讀寫對象屬性等)作為系統操作出現,并在OBSC運行時常駐內存。外界可通過注冊的方式,將自定義的對象操作上載到OBSC的操作庫中,該對象操作不再使用時通過注銷的方式從OBSC中刪除。
OBSC把操作作為一種特殊的對象(即操作對象)進行存儲,以操作ID(IDentification)號識別,外界用戶通過操作ID號使用操作。系統操作是最基本的操作,其操作ID號以標準的形式定義,為外界所熟知;而自定義操作僅對注冊該操作的用戶有效。用戶注冊操作后,OBSC把操作作為一種對象存儲到對象庫中,為操作分配操作ID號,并把操作ID號返回給用戶,其后用戶通過返回的操作ID號使用操作。
操作的調度執行有兩種觸發時機一種是請求觸發執行,另外一種是策略觸發執行。請求觸發執行指的是OBSC收到外界(客戶端和元數據服務器)發來的請求包而引起操作的執行。請求包中指明了對象ID及對其實施操作的操作ID,OBSC根據請求包的指示自動調用操作對指定的對象進行操作。策略觸發執行即條件觸發執行,策略規定了一組條件(類似于C語言的判斷語句集合),并與一個或多個操作關聯,當條件滿足時OBSC自動調用策略對應的操作執行。欲使操作在OBSC中以策略觸發方式自動運行,外界用戶可單獨為操作注冊一個策略;也可在注冊操作的同時為操作聯系一個策略。當新加入一個策略時,OBSC把它加入到策略庫中,為該策略指定一個策略ID,并將策略與其對應的操作聯系起來,加入策略ID與操作ID對照表。策略觸發執行可實現操作的自動執行,是實現自管理的基礎,例如,可將自動熱點數據遷移、自動備份、自動對象預取等操作用策略觸發的機制自動運行,從而實現各種擴展功能。如對于熱點遷移,規定策略為“If(任一對象的訪問次數大于某閥值)then進行熱點遷移”,于是策略觸發模塊在搜集“對象的訪問次數”這一對象屬性時,如果發現該判斷語句成立,則立即調用“熱點遷移操作”投入運行,將該對象進行熱點遷移。
下面結合圖3描述操作對象調度的具體過程。
在OBSC加電啟動后,系統從EPROM中的啟動代碼開始執行,對系統進行初始化,由啟動代碼把系統操作調入內存RAM,并啟動請求觸發進程和策略觸發進程。
請求觸發進程從網絡接口接收用戶請求包,并對其進行身份驗證,將通過驗證的請求包送入隊列排隊。然后按優先級依次對隊列中的請求包進行處理。如果隊列為空,則等待網絡接口部件接收新的用戶請求。處理請求包時,根據請求包的不同類型進行相應處理1.如果請求包是數據請求包,則根據請求包中指明的操作ID觸發相應的操作執行(請求觸發執行),過程如下A.讀取用戶發來的請求包,其中包含有操作的ID號和對象ID號;B.根據對象ID號通過存儲設備接口部件將對象讀入內存RAM中;C.根據操作ID號判斷操作是否是系統操作,如果是,則以內存RAM中的對象作為輸入,調度系統操作運行;D.如果是自定義操作,則根據操作ID在操作索引表里找到操作的內存映像地址。地址如為空,表明操作沒有加載,此時根據操作ID通過存儲接口部件把操作讀入內存RAM,調度自定義操作運行,對對象進行操作;E.將結果通過網絡接口部件返回給用戶,操作運行結束。
2.如果請求包請求注冊操作,則將操作加入操作庫中,并為操作分配ID號,把ID號通過網絡接口部件返回給用戶。
3.如果請求包請求注冊策略,則把策略加入策略庫中,并為策略分配策略ID號,將ID號通過網絡接口部件返回給用戶。
4.如果請求包請求注銷操作,則根據請求包中的操作ID將操作從操作庫中刪除。
5.如果請求包請求注銷策略,則根據請求包中指明的策略ID號把策略從策略庫中刪除,同時把策略ID與操作ID對照表中的相應表項刪除。
策略觸發進程則在滿足一定條件的情況下調用相應的操作執行(策略觸發執行),過程如下1.通過存儲接口部件讀取根對象,從根對象獲取系統狀態信息;根據歷史訪問記錄讀取最近一次訪問對象的屬性;2.從策略庫中讀取一個策略;3.將策略庫中的策略與獲取的系統狀態、對象屬性信息進行匹配,如果策略規定的條件滿足,則通過策略ID找到對應的操作ID;4.根據操作ID號判斷是否是系統操作,如果是,則調度系統操作運行,否則根據操作ID號通過存儲接口部件把自定義操作加載到內存RAM中并調度自定義操作運行;5.讀取策略庫中下一個策略,回到1,如果策略庫中所有策略都被讀取過了,則完成一個輪回,延遲一段時間后回到1,重新開始新的一輪比較。
權利要求
1.一種基于對象的存儲控制器,包括運行控制部件、存儲設備接口部件和網絡接口部件,各部件之間通過總線物理連接,其中運行控制部件,包括通過PCI-X總線連接的中央處理器CPU、內存RAM和只讀存儲器EPROM,提供處理能力和運行環境以實現對象的智能處理和支持存儲設備的功能擴展,對存儲設備接口部件中存儲設備接口和網絡接口部件中的網絡通道接口加以控制;存儲設備接口部件,包括一個或多個存儲設備接口,用于本裝置與存儲設備的連接,執行面向塊設備級的協議;網絡接口部件,包括一個或多個基于對象的網絡通道接口,按特定的協議接收基于對象語義的用戶請求和用戶數據。
2.如權利要求1所述的基于對象的存儲控制器,其特征在于所述存儲設備接口部件中的存儲設備接口為執行面向塊設備級協議的接口SCSI、FC、IDE或SATA;所述網絡接口部件中的網絡通道接口采用相同或不同的形式,且不局限于任何網絡形態,各網絡通道接口可以接入同一網絡或不同網絡中。
3.權利要求1或2所述的基于對象的存儲控制器所使用的調度方法,包括如下步驟(1)由EPROM中的啟動代碼將系統基本操作調入內存RAM;(2)依用戶請求特征進行判斷,請求觸發進程進行步驟(3),策略觸發進程轉步驟(4);(3)請求觸發進程,從網絡接口接收用戶請求包,對其進行身份驗證,將通過驗證的請求包送入隊列排隊;如果隊列為空,則等待網絡接口部件接收新的用戶請求,否則按優先級依次對隊列中的請求包進行處理數據請求轉(3-1)、請求注冊操作轉(3-2)、請求注冊策略轉(3-3)、請求注銷操作轉(3-4)、請求注銷策略轉(3-5);(3-1).數據請求,根據請求包中指明的操作ID觸發相應的操作執行,過程如下A.讀取用戶發來的請求包,其中包含有操作ID號和對象ID號;B.根據對象ID號通過存儲設備接口部件將對象讀入內存RAM中;C.根據操作ID號進行判斷,如果是系統操作,則以內存RAM中的系統操作作為輸入,調度系統操作運行;否則根據操作ID在操作索引表里找到自定義操作的內存映像地址,地址如為空,則根據操作ID通過存儲接口部件把自定義操作讀入內存RAM,調度自定義操作運行,對對象進行操作;D.結果通過網絡接口部件返回給用戶,操作運行結束;(3-2).注冊操作,將操作加入內存的操作庫中,為操作分配ID號,ID號通過網絡接口部件返回給用戶;(3-3).注冊策略,把策略加入內存的策略庫中,為策略分配策略ID號,填寫策略ID與操作ID對照表,將ID號通過網絡接口部件返回給用戶;(3-4).注銷操作,根據請求包中的操作ID將操作從操作庫中刪除;(3-5).注銷策略,根據請求包中指明的策略ID號把策略從策略庫中刪除,同時把策略ID與操作ID對照表中的相應表項刪除;(4)策略觸發進程,在滿足一定條件的下調用相應的操作執行,過程如下(4-1).通過存儲接口部件讀取根對象,從根對象獲取系統狀態信息;根據歷史訪問記錄讀取最近一次訪問對象的屬性;(4-2).從策略庫中讀取一個策略;(4-3).將策略庫中的策略與獲取的系統狀態、對象屬性信息進行匹配,如果策略規定的條件滿足,則通過策略ID找到對應的操作ID;(4-4).根據操作ID號進行判斷,如果是系統操作,則調度系統操作運行,否則根據操作ID號通過存儲接口部件把自定義操作加載到內存RAM中并調度自定義操作運行;(4-5).讀取策略庫中下一個策略,回到步驟(4),如果策略庫中所有策略都被讀取過了,則完成一個輪回,延遲一段時間后回到步驟(4),重新開始新的一輪比較。
全文摘要
基于對象的存儲控制器及其使用的調度方法,屬于計算機存儲技術領域,針對現有網絡存儲技術在網絡連接、存取速度和控制的不足,充分利用控制設備處理能力,達到減少數據傳輸操作層次和縮短I/O路徑的目的。本發明包括存儲設備接口、網絡存儲對象接口和運行控制部件,存儲設備接口執行面向塊設備級的協議,用戶通過網絡接口訪問存儲對象,并可對對象進行指定的操作。本發明的調度方法可在滿足條件下自動運行,或根據用戶請求觸發運行。本發明改變傳統數據管理和處理方式,文件系統和數據庫系統底層數據管理由OBSC取代,客戶端應用程序承擔的數據處理也部分移至OBSC處理,可容易地在存儲系統內實現自動恢復、負載均衡、熱點遷移等自管理功能。
文檔編號G06F3/06GK1710530SQ200510019140
公開日2005年12月21日 申請日期2005年7月21日 優先權日2005年7月21日
發明者馮丹, 王芳, 覃靈軍, 周可, 童薇, 劉景寧, 田磊, 譚支鶴 申請人:華中科技大學