共享貯存系統、以及控制向貯存裝置的訪問的方法
【技術領域】
[0001]本發明的實施方式涉及共享貯存系統、以及控制向貯存裝置的訪問的方法。
【背景技術】
[0002]近年來,共享貯存(storage)系統的開發正在盛行。共享貯存系統作為多個貯存裝置被多個主服務器共享的貯存系統而公知。這樣的共享貯存系統一般具備管理服務器。管理服務器對共享貯存系統整體進行管理。
[0003]在共享存系統中,采用邏輯單元。邏輯單元也被稱為邏輯卷(Logical Volume)或者邏輯盤,具有邏輯性存儲區域。邏輯性存儲區域內的任意存儲位置由虛擬地址指定。邏輯性存儲區域與多個貯存裝置的至少一個物理性的存儲區域的至少一部分建立對應。管理服務器為了按共享貯存系統內的每個邏輯單元來管理虛擬地址與貯存裝置的實地址的對應,按該邏輯單元的每一個來保持地址管理信息(例如,地址管理表)。
[0004]這里,設共享貯存系統內的主服務器訪問自身配備的(自身被提供的)邏輯單元內的目標存儲位置。該情況下,主服務器向管理服務器查詢與目標存儲位置的虛擬地址建立了對應的貯存裝置內的存儲位置的地址(即實地址)以及該貯存裝置(更詳細而言為該貯存裝置的識別符)。即,主服務器在訪問邏輯單元內的目標存儲位置時,為了知曉與該目標存儲位置建立了對應的貯存裝置的存儲位置而訪問管理服務器。這樣的向管理服務器的訪問在共享貯存系統內的其他的各個主服務器想要訪問邏輯單元內的目標存儲位置的情況下也會發生。
[0005]現有技術文獻
[0006]專利文獻
[0007]專利文獻1:日本特開2010 - 233190號公報
【發明內容】
[0008]發明要解決的課題
[0009]如上述那樣,共享貯存系統內的多個主服務器在訪問對該多個主服務器分別提供的邏輯單元內的目標存儲位置時,有必要訪問管理服務器。在這樣的共享貯存系統中,從多個主服務器向管理服務器的訪問的集中成為共享貯存系統整體的性能提高的瓶頸。即,即便共享貯存系統的例如主服務器的數量、或者貯存裝置的數量(或存儲容量)增加,由于向管理服務器的訪問進一步集中,所以難以獲得與這樣的增加相稱的系統性能。
[0010]鑒于此,為了消除向管理服務器的訪問的集中,可考慮以下那樣的構成。所述構成是共享貯存系統內的多個主服務器分別具有該管理服務器中保持的地址管理信息的拷貝的構成。根據這樣的構成,多個服務器的每一個能夠基于自身所具有的地址管理信息的拷貝來取得與目標存儲位置的虛擬地址建立了對應的實地址。即,多個服務器的每一個能夠不需要向管理服務器的查詢地訪問目標存儲位置。
[0011]但是,在上述的構成中,例如在地址管理信息根據第一主服務器的數據更新而被更新的情況下,難以在第一主服務器與其他主服務器之間使地址管理信息一致。
[0012]本發明想要解決的課題在于,提供一種盡管應用多個主服務器分別具有管理服務器中保持的地址管理信息的拷貝的構成,但能夠不需要進行在主服務器間使地址管理信息一致的處理的共享貯存系統、以及控制向貯存裝置的訪問的方法。
[0013]用于解決課題的方法
[0014]根據實施方式,共享貯存系統具備多個主服務器、多個貯存裝置、管理服務器、和交換機。多個貯存裝置被所述多個主服務器共享。所述管理服務器向所述多個主服務器提供被分配所述多個貯存裝置的至少一部分的存儲區域的多個邏輯單元。所述交換機將所述多個主服務器、所述多個貯存裝置以及所述管理服務器連接。所述管理服務器對所述多個邏輯單元的每一個使用第一地址管理信息來管理所述多個邏輯單元各自的虛擬地址、該虛擬地址被分配的貯存裝置的實地址、與表示該貯存裝置的貯存識別符的對應,且使用第一修訂數據來管理所述第一地址管理信息的修訂。所述多個主服務器的每一個保持與由所述管理服務器提供的邏輯單元對應的所述第一地址管理信息以及所述第一修訂數據各自的拷貝即第二地址管理信息以及第二修訂數據。所述多個主服務器的每一個在訪問第一邏輯單元的第一虛擬地址的情況下,從與所述第一邏輯單元對應的所述第二地址管理信息取得與所述第一虛擬地址建立了對應的第一實地址以及第一貯存識別符。所述多個主服務器的每一個還使用表示所述第一邏輯單元的第一邏輯單元識別符、所述第一實地址、以及與所述第一邏輯單元對應的所述第二修訂數據,對由所述第一貯存識別符表示的貯存裝置請求訪問。所述多個貯存裝置的每一個至少保持包括與被分配了所述多個貯存裝置各自的存儲區域的邏輯單元建立了對應的第三修訂數據的更新管理信息。所述第三修訂數據表示根據對應的所述第一地址管理信息的更新而由所述管理服務器通知的所述對應的第一地址管理信息的修訂。在使用所述第一邏輯單元識別符、所述第一實地址、以及所述第二修訂數據從所述多個主服務器之一的第一主服務器請求了訪問的情況下,所述多個貯存裝置的每一個至少以所述第二修訂數據與所述第一邏輯單元識別符所表示的所述第一邏輯單元所對應的所述第三修訂數據一致為條件,來基于所述第一實地址執行被請求的訪問。
【附圖說明】
[0015]圖1是表示一個實施方式涉及的共享貯存系統的典型的構成的框圖。
[0016]圖2是表示邏輯單元的邏輯性存儲區域與兩個貯存裝置的物理性存儲區域的對應的例子的概念圖。
[0017]圖3是表示圖1所示的管理信息的數據結構的例子的圖。
[0018]圖4是表示該實施方式中的讀訪問處理的典型的步驟的流程圖。
[0019]圖5是表示圖1所示的地址管理表的數據結構的例子的圖。
[0020]圖6是表示該實施方式中應用的指令的典型的格式的圖。
[0021]圖7是表示該實施方式中的寫訪問處理的典型的步驟的流程圖。
[0022]圖8是表示圖7所示的寫訪問處理中包含的地址管理表更新處理的典型的步驟的流程圖。
[0023]圖9是用于對地址管理表更新處理進行說明的圖。
[0024]圖10是表示該實施方式中的管理服務器停機時的訪問處理的典型的步驟的流程圖。
[0025]圖11是用于對管理服務器停機時的訪問處理進行說明的圖。
【具體實施方式】
[0026]以下,參照附圖對各種實施方式進行說明。
[0027]圖1是表示一個實施方式涉及的共享貯存系統的典型的構成的框圖。圖1所示的共享貯存系統具備多個貯存裝置(例如,兩個貯存裝置11a以及11b)、多個主服務器(例如,三個主服務器12a、12b以及12c)、和管理服務器13。這樣,在本實施方式中,共享貯存系統具備兩個貯存裝置11a以及lib。但是,共享貯存系統也可以具備超過兩個的貯存裝置。另外,在本實施方式中,共享貯存系統具備三個主服務器12a、12b以及12c。但是,共享貯存系統也可以具備兩個貯存裝置或者超過三個的貯存裝置。
[0028]主服務器12a、12b以及12c分別具備主機總線適配器(HBA) 120a、120b以及120c。HBA120a、120b以及120c也被稱為主控制器,將主服務器12a、12b以及12c與其他的網絡設備或者貯存裝置連接。
[0029]貯存裝置11a以及11b、主服務器12a、12b以及12c (更詳細而言為主服務器12a、12b以及12c的HBA120a、120b以及120c)、和管理服務器13經由如交換集線器(網絡交換機)那樣的交換機14而連接。通過該連接,可構建包括貯存裝置11a以及11b、主服務器12a、12b以及12c、和管理服務器13的網絡(共享貯存系統),貯存裝置11a以及11c被主服務器12a、12b以及12c共享。
[0030]在本實施方式中,服務器12a、12b、12c以及13是分別獨立的計算機。但是,主服務器12a、12b以及12c的至少兩個也可以在一個計算機上動作。另外,主服務器12a、12b以及12c的至少一個與管理服務器13也可以在一個計算機上動作。
[0031]貯存裝置11a以及lib的存儲區域(S卩,物理性存儲區域)的一部分被分配給例如邏輯單元LU0至LU3(圖2)的存儲區域(即,邏輯性存儲區域)的一部分。圖2是表示邏輯單元LU0至LU3的存儲區域與貯存裝置11a以及lib的存儲區域的對應的例子的概念圖。在本實施方式中,貯存裝置11a以及lib分別采用硬盤驅動器(HDD)陣列構成。若更詳細敘述,則貯存裝置11a是由具備多個硬盤驅動器(HDD)的RAID (Redundant Arrays ofInexpensive Disks 或者 Redundant Arrays of Independent Disks)構成的貝士存裝置。同樣,貯存裝置lib也是具備多個HDD的RAID構成的貯存裝置。此外,貯存裝置11a以及lib的至少一個也可以采用HDD以外的存儲裝置的陣列(例如閃存陣列)來構成,另外,貯存裝置11a以及lib并不一定需要具有陣列構成。
[0032]在圖2的例子中,邏輯單元LU0至LU3各自的存儲區域的一部分與貯存裝置11a的存儲區域的一部分建立對應。另外,邏輯單元LU0至LU3各自的存儲區域的其他的一部分與貯存裝置lib的存儲區域的一部分建立對應。但是,也可以是邏輯單元LUO、LU1、LU2或者LU3的存儲區域整體僅與貯存裝置11a或者lib的任意一方的存儲區域的至少一部分建立對應。
[0033]這里,設能夠利用(識別)邏輯單元LUi (i為0、1、2或者3)的主服務器12j (j為a,b或者c)訪問邏輯單元LUi內的目標存儲位置(以下稱為第一存儲位置)。該情況下,主服務器12j有必要知曉(識別)與第一存儲位置建立了對應的貯存裝置llk(k為a或者b)內的存儲位置(以下稱為第二存儲位置)、和該貯存裝置Ilk。
[0034]第一存儲位置的地址被稱為虛擬地址,第二存儲位置的地址被稱為實地址。在本實施方式中,為了進行管理,邏輯單元LUi的存儲區域以及貯存裝置Ilk的存儲區域被分割成稱為區塊(更詳細而言為虛擬區塊以及實區塊)的一定尺寸(第一尺寸)的小區域。即,邏輯單元LUi以及貯存裝置Ilk分別具備多個虛擬區塊以及多個實區塊。因此,在本實施方式中,分別使用虛擬區塊地址(VBA)以及實區塊地址(RBA)作為虛擬地址以及實地址。其中,虛擬區塊地址以及實區塊地址分別也被稱為邏輯區塊地址以及物理區塊地址。
[0035]再次參照圖1。管理服務器13構建邏輯單元,且將構建成的邏輯單元提供給主服務器12a、12b以及12c的至少一個。在本實施方式中,管理服務器13構件邏輯單元LU0至LU3。另外,管理服務器13將邏輯單元LU0提供給主服務器12a以及12c,將邏輯單元LU1提供給主服務器12a以及12b。管理服務器13還將邏輯單元LU2提供給主服務器12c,將邏輯單元LU3提供給主服務器12b。S卩,主服務器12a配備邏輯單元LU0以及LU1。主服務器12b配備邏輯單元LU1以及LU3,主服務器12c配備邏輯單元LU0以及LU2。
[0036]管理服務器13保持為了管理邏輯單元LU0至LU3而使用的管理信息130。若更詳細敘述,則管理信息130被儲存在管理服務器13所具有的本地存儲裝置。在本實施方式中,該本地存儲裝置是非易失性的存儲裝置、例如閃存那樣的非易失性存儲器或者如HDD那樣的盤存儲裝置。
[0037]管理信息130包括與邏輯單元LU0至LU3分別對應的地址管理表(以下稱為AM表)134 —LU0 至 134 —LU3。AM 表(第一地址管理信息)134 — LUi (i = 0、1、2、3)具有對與邏輯單元LUi的每個虛擬區塊地址對應的地址管理數據進行保持的條目(entry)。該條目(地址管理數據)如在后面詳細敘述那樣,包括邏輯單元編號(LUN)字段、虛擬區塊地址字段、貯存識別符(ID)字段以及實區塊地址字段的組。
[0038]管理信息130還包括修訂數據(revis1n data)(第一修訂數據)135 —LU0至135—LU3。修訂數據135 — LU0至135 — LU3表示與邏輯單元LU0至LU3分別對應的AM表134 — LU0至134 — LU3的修訂。在本實施方式中,修訂數據135 — LU0至135 — LU3包括表示AM表134 —LU0至134 —LU3的修訂的修訂編號(RN