磁碟空間管理方法及裝置的製作方法
2023-06-02 04:31:06
專利名稱:磁碟空間管理方法及裝置的製作方法
技術領域:
本發明涉及網際網路技術領域,特別涉及ー種磁碟空間管理方法及裝置。
背景技術:
SAN(Storage Area Network,存儲域網絡)是一種典型的網絡存儲結構,它是一種高速網絡或子網絡,提供計算機與存儲設備之間的數據傳輸,其中存儲設備是指一張或多張用以存儲計算機數據的磁碟設備。ー個SAN網絡由負責網絡連接的通信結構、負責組織連接的管理層、存儲部件以及計算機系統構成,從而保證數據傳輸的安全性和力度。iSCSI (Internet Small Computer System Interface,小型計算機系統接 ロ)是一種基於TCP/IP的協議,用於建立和管理存儲設備、主機和客戶機等之間的相互連接,並創建SAN。iSCSI的主要功能是在TCP/IP網絡上的主機系統(啟動器)和存儲設備(目標器)之間進行大量數據的封裝和可靠傳輸過程。具體地,主機系統使用iSCSI啟動器發現 並連接存儲設備(目標器),然後,目標器上的邏輯單元就被掛載到主機系統,從而主機系統可像操作本地磁碟一祥使用該邏輯単元。當發現掛載的邏輯單元的容量不夠使用需要擴大時,目標器端使用本地磁碟進行擴容,更改對應邏輯單元的容量大小,然後通過異步消息的方式通知啟動器去重新獲取邏輯單元的容量,當啟動器收到消息後就觸發報告邏輯單元的流程,重新獲取邏輯單元的容量,這樣,主機系統就獲得ー個容量増大後的磁碟。現有技術的問題是,只能使用本地磁碟來創建邏輯單元,當本地磁碟不夠使用時只能通過增加硬體的方式來擴充磁碟,但是由於可以用於擴充的硬體資源是有限的,因此無法實現容量儘可能多的無限擴大。
發明內容
本發明的目的g在至少解決上述技術缺陷之一。為達到上述目的,本發明一方面提出ー種磁碟空間管理方法,包括以下步驟存儲設備建立並保存邏輯塊地址分配表,其中所述邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且所述邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑;所述存儲設備接收對某個邏輯単元的擴容指令,並根據所述擴容指令檢測所述本地磁碟是否存在剰餘空間;如果所述本地磁碟不存在剰餘空間,則在所述邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元;以及如果所述其他存儲設備存在未使用的邏輯單元,則將所述未使用的邏輯單元分配給所述邏輯單元並更新所述邏輯塊地址分配表。根據本發明實施例的磁碟空間管理方法,通過記錄和管理本地磁碟和其他存儲設備上的邏輯塊地址分配情況,在邏輯單元需要擴容時可以跨多個存儲設備,不受本地硬體資源的限制,從而可以實現容量儘可能多的無限擴大。本發明另一方面還提出ー種磁碟空間管理裝置,包括記錄模塊,用於建立並保存邏輯塊地址分配表,其中所述邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且所述邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑;檢測模塊,用於在接收到對某個邏輯単元的擴容指令時,檢測所述本地磁碟是否存在剰餘空間,以及在所述本地磁碟不存在剰餘空間時,在所述邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元;以及分配模塊,用於在所述其他存儲設備存在未使用的邏輯單元吋,將所述未使用的邏輯單元分配給所述邏輯單元並更新所述邏輯塊地址分配表。根據本發明實施例的磁碟空間管理裝置,通過記錄和管理本地磁碟和其他存儲設備上的邏輯塊地址分配情況,在邏輯單元需要擴容時可以跨多個存儲設備,不受本地硬體資源的限制,從而可以實現容量儘可能多的無限擴大。本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中圖I為本發明一個實施例的磁碟空間管理方法的流程圖;圖2為本發明一個實施例的邏輯塊地址分配表的示意圖;圖3為本發明另ー個實施例的磁碟空間管理方法的流程圖;圖4為本發明又一個實施例的磁碟空間管理方法的流程圖;圖5為本發明一個實施例的磁碟空間管理裝置的結構框圖;圖6為本發明另ー個實施例的磁碟空間管理裝置的結構框圖;以及圖7為本發明又一個實施例的磁碟空間管理裝置的結構框圖。
具體實施例方式下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能解釋為對本發明的限制。在本發明的描述中,需要說明的是,除非另有明確的規定和限定,術語「相連」、「連接」應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對於本領域的普通技術人員而言,可以具體情況理解上述術語在本發明中的具體含義。圖I為本發明一個實施例的磁碟空間管理方法的流程圖。如圖I所示,該磁碟空間管理方法包括下述步驟。步驟S101,存儲設備建立並保存邏輯塊地址分配表,其中邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑。圖2為本發明一個實施例的邏輯塊地址分配表的示意圖。如圖2所示,邏輯單元的邏輯塊地址包括位於本地的邏輯塊地址(例如0 m)和位於其他存儲設備上的邏輯塊地址(例如(m+Ι) η)。
步驟S102,存儲設備接收對某個邏輯單元的擴容指令,並根據擴容指令判斷本地磁碟是否存在剩餘空間。步驟S103,如果本地磁碟不存在剩餘空間,則在邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元。應理解,如果本地磁碟還存在剩餘空間,則利用本地磁碟的剩餘空間進行擴容即可,無需使用其他存儲設備。步驟S104,如果其他存儲設備存在未使用的邏輯單元,則將未使用的邏輯單元分配給需擴容的邏輯單元並更新邏輯塊地址分配表。 具體地,如果其他存儲設備上存在多個未分配的邏輯單元,則將容量大小與需擴容的容量大小最接近的邏輯單元分配給需擴容的邏輯單元。例如,需要擴容的容量大小為500MB,查找後發現存在多個邏輯單元分別為600MB、800MB和400MB,則將容量大小為600MB的邏輯單元分配給需擴容的邏輯單元並更新邏輯塊地址分配表,將新增加的邏輯塊地址和路徑記錄下來。根據本發明實施例的磁碟空間管理方法,通過記錄和管理本地磁碟和其他存儲設備上的邏輯塊地址分配情況,在邏輯單元需要擴容時可以跨多個存儲設備,不受本地硬體資源的限制,從而可以實現容量儘可能多的無限擴大。圖3為本發明另一個實施例的磁碟空間管理方法的流程圖。如圖3所示,該磁碟空間管理方法包括下述步驟。步驟S201,存儲設備建立並保存邏輯塊地址分配表,其中邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑。步驟S202,存儲設備接收對某個邏輯單元的擴容指令,並根據擴容指令檢測本地磁碟是否存在剩餘空間。步驟S203,如果本地磁碟不存在剩餘空間,則在邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元。步驟S204,如果其他存儲設備存在未使用的邏輯單元,則將未使用的邏輯單元分配給需擴容的邏輯單元並更新邏輯塊地址分配表。步驟S205,當邏輯單元的容量發生變化時,存儲設備向啟動器端發送異步消息。步驟S206,啟動器端接收到異步消息後觸發邏輯單元報告流程,重新獲取邏輯單元的容量。根據本發明實施例的磁碟空間管理方法,在存儲設備完成邏輯塊地址分配表的更新後,通過異步消息將邏輯單元容量的變化通知給主機系統的啟動器,以便主機系統可以獲取最新的邏輯單元容量,從而可以對擴容後的邏輯單元進行正常的讀寫操作。圖4為本發明又一個實施例的磁碟空間管理方法的流程圖。如圖4所示,該磁碟空間管理方法包括下述步驟。步驟S301,存儲設備建立並保存邏輯塊地址分配表,其中邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑。步驟S302,存儲設備接收對某個邏輯單元的擴容指令,並根據擴容指令檢測本地磁碟是否存在剩餘空間。步驟S303,如果本地磁碟不存在剩餘空間,則在邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元。步驟S304,如果其他存儲設備存在未使用的邏輯單元,則將未使用的邏輯單元分配給需擴容的邏輯單元並更新邏輯 塊地址分配表。步驟S305,當邏輯單元的容量發生變化時,存儲設備向啟動器端發送異步消息。步驟S306,啟動器端接收到異步消息後觸發邏輯單元報告流程,重新獲取邏輯單元的容量。步驟S307,存儲設備接收啟動器端對邏輯單元的讀寫操作指令。步驟S308,存儲設備根據讀寫操作指令對應的邏輯塊地址位置和邏輯塊地址分配表判斷所要操作的邏輯單元屬於本地磁碟還是其他存儲設備。步驟S309,如果所要操作的邏輯單元屬於本地磁碟,則直接對邏輯單元進行讀寫操作。步驟S310,如果所要操作的邏輯單元屬於其他存儲設備,則對邏輯單元進行地址映射以獲得邏輯單元在其他存儲設備上的邏輯塊地址,並根據邏輯單元在其他存儲設備上的邏輯塊地址直接對分布在其他存儲設備上的邏輯單元進行讀寫操作。例如,假設接收到讀寫操作指令的邏輯單元的邏輯塊地址是b,數據長度是L,此邏輯單元的本地邏輯塊地址值為0 m(即0 m位於本地磁碟)。如果b+L的值超過m時,則首先進行本地邏輯塊地址的讀寫操作,即邏輯塊地址值為b、數據長度為(m-b+1)的讀寫操作,然後是對邏輯塊地址值為(m+1)、數據長度為[L-(m-b+l)]的讀寫操作,也就是根據邏輯塊地址分配表,查找出對應的分布在其他存儲設備上的邏輯單元的邏輯塊地址,此地址就被映射為邏輯塊地址值為O、數據長度為[L-(m-b+1)],然後本地存儲設備就可以直接對分布在其他存儲設備上的邏輯單元(邏輯塊地址值為O、數據長度為[L-(m-b+l)])進行讀寫操作了,本地存儲設備對其他存儲設備上的邏輯單元的讀寫操作依然採用現有的iSCSI協議處理。根據本發明實施例的磁碟空間管理方法,通過地址映射實現對分布在其他存儲設備上的邏輯單元的讀寫操作,從而獲取正確的讀寫結果。 本發明另一方面還提出一種磁碟空間管理裝置。圖5為本發明一個實施例的磁碟空間管理裝置的結構框圖。在圖5所示,該磁碟空間管理裝置I包括記錄模塊110、檢測模塊120和分配模塊130。記錄模塊110用於建立並保存邏輯塊地址分配表,其中邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑。檢測模塊120用於在接收到對某個邏輯單元的擴容指令時,檢測本地磁碟是否存在剩餘空間,以及在本地磁碟不存在剩餘空間時,在邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元。分配模塊130用於在檢測模塊120查找到其他存儲設備存在未使用的邏輯單元時,將未使用的邏輯單元分配給需擴容的邏輯單元並更新邏輯塊地址分配表。具體地,如果檢測模塊120檢測到其他存儲設備存在多個未使用的邏輯單元,分配模塊130將大於需擴容的容量大小且與擴容的容量大小最接近的邏輯單元分配給需擴容的邏輯單元。根據本發明實施例的磁碟空間管理裝置,通過記錄和管理本地磁碟和其他存儲設備上的邏輯塊地址分配情況,在邏輯單元需要擴容時可以跨多個存儲設備,不受本地硬體資源的限制,從而可以實現容量儘可能多的無限擴大。圖6為本發明另一個實施例的磁碟空間管理裝置的結構框圖。如圖6所示,在圖5所示的實施例的基礎上,該磁碟空間管理裝置I還包括通信模塊140。通信模塊140用於當邏輯單元的容量發生變化時,向啟動器端2發送異步消息,以使啟動器端2觸發邏輯單元報告流程,重新獲取邏輯單元的容量。
根據本發明實施例的磁碟空間管理裝置,在存儲設備完成邏輯塊地址分配表的更新後,通過異步消息將邏輯單元容量的變化通知給主機系統的啟動器,以便主機系統可以獲取最新的邏輯單元容量,從而可以對擴容後的邏輯單元進行正常的讀寫操作。圖7為本發明又一個實施例的磁碟空間管理裝置的結構框圖。如圖7所示,在圖6所示的實施例的基礎上,該磁碟空間管理裝置I還包括接收模塊150、判斷模塊160和執行模塊170。接收模塊150用於接收啟動器端2對邏輯單元的讀寫操作指令。判斷模塊160用於根據讀寫操作指令對應的邏輯塊地址位置和邏輯塊地址分配表判斷所要操作的邏輯單元屬於本地磁碟還是其他存儲設備。執行模塊170用於在邏輯單元屬於本地磁碟時,直接對邏輯單元進行讀寫操作,以及在邏輯單元屬於其他存儲設備時,對邏輯單元進行地址映射以獲得邏輯單元在其他存儲設備上的邏輯塊地址,並根據邏輯單元在其他存儲設備上的邏輯塊地址直接對分布在其他存儲設備上的邏輯單元進行讀寫操作。根據本發明實施例的磁碟空間管理裝置,通過地址映射實現對分布在其他存儲設備上的邏輯單元的讀寫操作,從而獲取正確的讀寫結果。儘管已經示出和描述了本發明的實施例,對於本領域的普通技術人員而言,可以理解在不脫離本發明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發明的範圍由所附權利要求及其等同限定。
權利要求
1.ー種磁碟空間管理方法,其特徵在於,包括以下步驟 Si:存儲設備建立並保存邏輯塊地址分配表,其中所述邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且所述邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑; S2 :所述存儲設備接收對某個邏輯単元的擴容指令,並根據所述擴容指令檢測所述本地磁碟是否存在剩餘空間; S3如果所述本地磁碟不存在剰餘空間,則在所述邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元;以及 S4 :如果所述其他存儲設備存在未使用的邏輯單元,則將所述未使用的邏輯單元分配給所述邏輯單元並更新所述邏輯塊地址分配表。
2.如權利要求I所述的磁碟空間管理方法,其特徵在於,所述步驟S4具體包括 如果所述其他存儲設備存在多個未使用的邏輯單元,則將大於需擴容的容量大小且與所述擴容的容量大小最接近的邏輯單元分配給所述邏輯單元。
3.如權利要求I所述的磁碟空間管理方法,其特徵在於,還包括 當邏輯單元的容量發生變化時,所述存儲設備向啟動器端發送異步消息; 所述啟動器端接收到所述異步消息後觸發邏輯単元報告流程,重新獲取所述邏輯単元的容量。
4.如權利要求I至3中任一所述的磁碟空間管理方法,其特徵在於,還包括 所述存儲設備接收所述啟動器端對所述邏輯單元的讀寫操作指令; 所述存儲設備根據所述讀寫操作指令對應的邏輯塊地址位置和所述邏輯塊地址分配表判斷所要操作的邏輯單元屬於本地磁碟還是其他存儲設備; 如果所述邏輯單元屬於本地磁碟,則直接對所述邏輯單元進行讀寫操作; 如果所述邏輯單元屬於其他存儲設備,則對所述邏輯單元進行地址映射以獲得所述邏輯單元在其他存儲設備上的邏輯塊地址,井根據所述邏輯單元在其他存儲設備上的邏輯塊地址直接對分布在其他存儲設備上的邏輯單元進行讀寫操作。
5.ー種磁碟空間管理裝置,其特徵在於,包括 記錄模塊,用於建立並保存邏輯塊地址分配表,其中所述邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且所述邏輯塊地址的相關信息包括邏輯塊地址值、邏輯塊數據長度和邏輯塊路徑; 檢測模塊,用於在接收到對某個邏輯単元的擴容指令時,檢測所述本地磁碟是否存在剰餘空間,以及在所述本地磁碟不存在剰餘空間時,在所述邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元;以及 分配模塊,用於在所述其他存儲設備存在未使用的邏輯單元吋,將所述未使用的邏輯単元分配給所述邏輯單元並更新所述邏輯塊地址分配表。
6.如權利要求5所述的磁碟空間管理裝置,其特徵在於,所述分配模塊具體用於在所述檢測模塊檢測到所述其他存儲設備存在多個未使用的邏輯單元吋,將大於需擴容的容量大小且與所述擴容的容量大小最接近的邏輯單元分配給所述邏輯單元。
7.如權利要求5所述的磁碟空間管理裝置,其特徵在於,還包括 通信模塊,用於當邏輯單元的容量發生變化吋,向啟動器端發送異步消息,以使所述啟動器端觸發邏輯単元報告流程,重新獲取所述邏輯単元的容量。
8.如權利要求5所述的磁碟空間管理裝置,其特徵在於,還包括 接收模塊,用於接收啟動器端對所述邏輯單元的讀寫操作指令; 判斷模塊,用於根據所述讀寫操作指令對應的邏輯塊地址位置和所述邏輯塊地址分配表判斷所要操作的邏輯單元屬於本地磁碟還是其他存儲設備;以及 執行模塊,用於在所述邏輯単元屬於本地磁碟時,直接對所述邏輯單元進行讀寫操作,以及在所述邏輯単元屬於其他存儲設備時,對所述邏輯單元進行地址映射以獲得所述邏輯単元在其他存儲設備上的邏輯塊地址,井根據所述邏輯單元在其他存儲設備上的邏輯塊地址直接對分布在其他存儲設備上的邏輯單元進行讀寫操作。
全文摘要
本發明提出一種磁碟空間管理方法及裝置,其中方法包括以下步驟存儲設備建立並保存邏輯塊地址分配表,其中邏輯塊地址分配表中記錄本地磁碟和其他存儲設備上的每個邏輯單元的邏輯塊地址的相關信息,且邏輯塊地址的相關信息包括邏輯塊地址值、數據長度和路徑;存儲設備接收對某個邏輯單元的擴容指令,判斷本地磁碟是否存在剩餘空間;如果不存在,則在邏輯塊地址分配表中查找其他存儲設備是否存在未使用的邏輯單元;如果存在,則將未使用的邏輯單元分配給邏輯單元。本發明通過記錄和管理本地磁碟和其他存儲設備上的邏輯塊地址分配情況,在邏輯單元需要擴容時可以跨多個存儲設備,不受本地硬體資源的限制,從而可以實現容量儘可能多的無限擴大。
文檔編號G06F12/06GK102708063SQ201210125800
公開日2012年10月3日 申請日期2012年4月25日 優先權日2012年4月25日
發明者周亮, 楊萬裡 申請人:北京天地雲箱科技有限公司