説明

ストレージ制御プログラム、ストレージシステムおよびストレージ制御方法

【課題】RAID装置がサポートする全てのRAIDレベルをVDSによって拡張してサポートできる。
【解決手段】ストレージ制御プログラムは、複数の記憶媒体21を備えるストレージ装置2から当該ストレージ装置2のサポート可能なRAIDレベルを取得するRAIDレベル取得部11と、RAIDレベル取得部11によって取得されたRAIDレベル毎に、ストレージ装置2にアクセスするホスト装置1側が有するストレージ仮想化機能の機能種別をマッピングするマッピング部12と、マッピング部12によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶部13とをコンピュータに実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ制御プログラム、ストレージシステムおよびストレージ制御方法に関する。
【背景技術】
【0002】
OS(Operation System)にストレージ装置を仮想化する機能が設けられている。例えば、Windows(登録商標)サーバでは、VDS(Virtual Disk Service)が採用されている。また、ストレージ装置にも仮想化機能が設けられている。例えば、RAID装置が知られている。
【0003】
Windowsサーバで採用されているVDSにRAID装置を対応させるソフトウェアがある。このソフトウェアをVDSHP(VDS Hardware Provider)という。WindowsサーバにVDSHPを搭載することで、WindowsOSでサポートされているストレージ管理ソフトは、VDSHPを用いて、LUN(Logical Unit Number)やアフィニティ等のRAID装置の構成を設定することができる。
【0004】
VDSでは、LUNの種類を示す定義値としてVDS_LUN_TYPEが定められている。この定義値は、RAIDレベルと1対1に対応していない。VDSHPでは、VDS_LUN_TYPEの定義値と、RAID装置がサポートするRAIDレベルとを対応付けてマッピング情報に記憶しておく。そして、RAID装置を制御するRAID装置制御部が、マッピング情報を参照することで、RAID装置にLUNを設定する。
【0005】
例えば、VDS_LUN_TYPEの例としてストライプLUNをサーバからRAID装置に設定する場合を、図17を参照して説明する。図17は、従来のストライプLUNを作成する場合を説明する図である。まず、サーバ100では、ストレージ管理ソフト101が、ストライプ指定のLUN作成要求を取得する(a1)。すると、ストレージ管理ソフト101は、VDSHP102に対し、VDS_LUN_TYPEの定義値の1つであるVDS_LT_STRIPEをパラメータとするLUN作成要求を行う(a2)。そして、VDSHP102は、RAID装置制御部103を起動する。次に、RAID装置制御部103は、マッピング情報記憶部104に記憶されたマッピング情報105を参照し(a3)、VDS_LT_STRIPEに対応付けられたRAIDレベルを取り出す。ここでは、VDS_LT_STRIPEに対応付けられたRAIDレベルは、RAID1+0であるものとする。
【0006】
続いて、RAID装置制御部103は、取り出したRAIDレベル、すなわちRAID1+0をパラメータとするLUN作成コマンドをRAID装置200に対し発行する(a4)。その後、RAID装置200では、RAID構成情報変更部201がRAID構成情報記憶部202に記憶されたRAID構成情報203の変更を行い、RAID1+0上にLUNを設定することになる。
【0007】
なお、サーバにVDSが組み込まれていない場合に、当該サーバにRAID装置の論理ボリュームと外部記憶装置の論理ボリュームとの対応関係を示すマッピング情報を記憶しておき、外部記憶装置をRAID装置と一元管理する技術がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−65709号公報
【特許文献2】特開2003−296154号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、VDSでは、RAIDレベルの一部についてサポートされない場合がある。例えば、1つの例として、VDSで定義されているVDS_LUN_TYPEの定義値に、RAID装置がサポートする全てのRAIDレベルを対応付けることができないので、対応付けができないRAIDレベルについて、VDSではサポートされない。すなわち、マッピング情報には、VDS_LUN_TYPEの定義値「VDS_LT_SPAN」が、RAID6に対応付けられ、「VDS_LT_PARITY」が、RAID5に対応付けられる。また、「VDS_LT_MIRROR」が、RAID1に対応付けられ、「VDS_LT_STRIPE」が、RAID1+0に対応付けられる。ところが、RAID0やRAID5+0は、VDS_LUN_TYPEの定義値に対応付けられないため、RAID0またはRAID5+0について、VDSではサポートされない。
【0010】
また、別の例として、前述したとおり、マッピング情報では、VDS_LUN_TYPEの定義値とRAIDレベルとの対応関係が固定であるので、動的に変更することができない。このため、RAID装置にRAIDレベルが追加された場合に、RAIDレベルの追加に応じてマッピング情報を変更できない。すなわち、追加されたRAIDレベルについて、VDSではサポートされない。
【0011】
開示の技術は、上記に鑑みてなされたものであって、RAID装置がサポート可能なRAIDレベルをVDSにて拡張してサポートできるストレージ制御プログラム等を提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示するストレージ制御プログラムは、一つの態様において、複数の記憶媒体を備えるストレージ装置から当該ストレージ装置のサポート可能なRAID(Redundant Arrays of Inexpensive Disks)レベルを取得するRAIDレベル取得手順と、前記RAIDレベル取得手順によって取得されたRAIDレベル毎に、前記ストレージ装置にアクセスするホスト装置側が有するストレージ仮想化機能の機能種別をマッピングするマッピング手順と、前記マッピング手順によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶手順とをコンピュータに実行させる。
【発明の効果】
【0013】
本願の開示するストレージ制御プログラムの一つの態様によれば、ストレージ装置がサポート可能なRAIDレベルをホスト装置側が有するストレージ仮想化機能によって拡張してサポートできるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、実施例1に係るストレージシステムの構成を示す機能ブロック図である。
【図2】図2は、実施例2に係るストレージシステムの構成を示す機能ブロック図である。
【図3】図3は、生成規則テーブルのデータ構造の一例を示す図である。
【図4】図4は、マッピング情報のデータ構造の一例を示す図である。
【図5】図5は、マッピング情報生成の具体例を説明する説明図である。
【図6】図6は、マッピング情報生成の別の具体例を説明する説明図である。
【図7】図7は、実施例2に係るマッピング情報生成処理の手順を示すフローチャートである。
【図8】図8は、a番目のRAIDレベルのマッピング生成処理の手順を示すフローチャートである。
【図9】図9は、実施例3に係るストレージシステムの構成を示す機能ブロック図である。
【図10】図10は、マッピング情報変更の具体例を説明する図である。
【図11】図11は、実施例3に係るマッピング情報変更処理の手順を示すフローチャートである。
【図12】図12は、実施例4に係るストレージシステムの構成を示す機能ブロック図である。
【図13】図13は、実施例4に係るLUN作成処理の手順を示すフローチャートである。
【図14】図14は、実施例5に係るストレージシステムの構成を示す機能ブロック図である。
【図15】図15は、実施例5に係るLUN情報更新処理の手順を示すフローチャートである。
【図16】図16は、ストレージ制御プログラムを実行するコンピュータを示す図である。
【図17】図17は、従来のストライプLUNを作成する場合を説明する図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示するストレージ制御プログラム、ストレージシステムおよびストレージ制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例1】
【0016】
図1は、本実施例1に係るストレージシステムの構成を示す機能ブロック図である。図1に示すように、ストレージシステム9は、ホスト装置1及びストレージ装置2を備える。ホスト装置1は、RAIDレベル取得部11、マッピング部12及びマッピング情報記憶部13を備える。
【0017】
RAIDレベル取得部11は、複数の記憶媒体21を備えるストレージ装置2から当該ストレージ装置2のサポート可能なRAID(Redundant Arrays of Inexpensive Disks)レベルを取得する。
【0018】
マッピング部12は、RAIDレベル取得部11によって取得されたRAIDレベル毎に、ストレージ装置2にアクセスするホスト装置1側が有するストレージ仮想化機能の機能種別をマッピングする。
【0019】
マッピング情報記憶部13は、マッピング部12によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶する。
【0020】
このようにして、ストレージシステム9は、ストレージ装置2のサポート可能なRAIDレベル毎に、ホスト装置1側が有するストレージ仮想化機能の機能種別をマッピングし、RAIDレベルと機能種別との対応関係をマッピング情報として記憶することとした。このため、ストレージシステム9は、RAIDレベルの仮想化の実行にマッピング情報として記憶した機能種別を用いることによりストレージ装置2のサポート可能な全てのRAIDレベルをホスト装置1側が有するストレージ仮想化機能によってサポートできる。
【0021】
ところで、実施例1に係るストレージシステム9のホスト装置1には、例えば、Windowsサーバがある。ホスト装置1をWindowsサーバとした場合、ストレージ装置2にアクセスするWindowsサーバが有するストレージ仮想化機能には、VDS(Virtual Disk Service)がある。そこで、実施例2以降では、ホスト装置1としてWindowsサーバ(以降、「サーバ」と略記する。)を採用し、ストレージ仮想化機能としてVDSを採用したストレージシステムについて説明する。
【実施例2】
【0022】
[実施例2に係るストレージシステムの構成]
図2は、実施例2に係るストレージシステム9の構成を示す機能ブロック図である。図2に示すように、ストレージシステム9は、サーバ3及びRAID装置4を有する。サーバ3は、VDSHP(VDS Hardware Provider)設定ツール30、VDSHP40及び記憶部50を有する。VDSHP40は、VDSにRAID装置4を対応させるソフトウェアであり、サポートRAIDレベル獲得部41及びマッピング情報変更部42を有する。VDSHP設定ツール30は、RAID装置4をVDSHPの制御対象として設定するソフトウェアであり、マッピング情報生成制御部31を有する。記憶部50は、生成規則テーブル51及びマッピング情報52を有する。なお、記憶部50は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、又は、ハードディスク、光ディスクなどの記憶装置である。
【0023】
RAID装置4は、サポートRAIDレベル通知部61及びRAID情報記憶部62を有する。RAID情報記憶部62は、RAID装置4のRAID構成を記憶するRAID構成情報63を有する。なお、RAID情報記憶部62は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、又は、ハードディスク、光ディスクなどの記憶装置である。
【0024】
マッピング情報生成制御部31は、RAID装置4がサポートするRAIDレベル毎に、VDSで定義されているLUNタイプをマッピングする。具体的には、マッピング情報生成制御部31は、サポートRAIDレベル獲得部41にRAID装置4がサポートするRAIDレベルの獲得を要求し、要求したRAIDレベルをサポートRAIDレベル獲得部41から取得する。そして、マッピング情報生成制御部31は、RAIDレベル毎のLUNタイプとのマッピングの生成規則を記憶した生成規則テーブル51を参照し、サポートRAIDレベル獲得部41から取得したRAIDレベルにLUNタイプをマッピングする。
【0025】
ここで、生成規則テーブル51について図3を参照しながら説明する。図3は、生成規則テーブルのデータ構造の一例を示す図である。図3に示すように、生成規則テーブル51は、VDS_LUN_TYPE(以降、「LUNタイプ」という。)51aの定義値毎にRAIDレベル51b毎の優先度51cを対応付けて記憶する。すなわち、生成規則テーブル51は、各RAIDレベル51bについて、LUNタイプ51aの定義値とマッピングさせる場合の優先度51cを割り当てて記憶する。この各RAIDレベル51bについてのLUNタイプ51aに対応した優先度51cは、適宜設定を変更可能としても良い。
【0026】
LUNタイプ51aには、VDS_LT_MIRROR(ミラー型)、VDS_LT_STRIPE(ストライプ型)、VDS_LT_PARITY(ストライプ型)及びVDS_LT_SPAN(スパン型)の4種類の定義値がある。RAIDレベル51bには、図3に示す左から右へ向かってRAID0、RAID1、RAID5、・・・、RAID6+6の17種類のRAIDのレベルがある。
【0027】
例えば、符号r1に示すように、RAIDレベル51bがRAID0の場合、LUNタイプ51aの定義値VDS_LT_STRIPEに対応付けられる優先度51cの値は「1」であり、この定義値以外の定義値に対応付けられる優先度51cの値は「4」である。また、符号r2に示すように、RAIDレベル51bがRAID5+0の場合、LUNタイプ51aの定義値VDS_LT_PARITYに対応付けられる優先度51cの値は「1」である。そして、VDS_LT_STRIPE、VDS_LT_SPAN、VDS_LT_MIRRORの順に優先度51cの値がそれぞれ「2」、「3」、「4」となる。
【0028】
図2に戻って、さらに具体的に、マッピング情報生成制御部31は、RAIDレベル51bにLUNタイプ51aをマッピングした都度、マッピングしたLUNタイプ51aに対応するカウンタに1加算するようにする。このカウンタは、記憶部50内にLUNタイプ51a毎に備え、LUNタイプ51a毎に既にマッピングされたRAIDレベルの個数を記憶する。そして、マッピング情報生成制御部31は、サポートRAIDレベル獲得部41から取得した1又は2以上のRAIDレベルを所定の順序で選択する。そして、マッピング情報生成制御部31は、選択したRAIDレベルについて、優先度51cの小さい順にLUNタイプ51aを選択する。そして、マッピング情報生成制御部31は、選択したLUNタイプ51aに対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より所定数(例えば「2」)以上大きいか否かを判定する。
【0029】
そして、マッピング情報生成制御部31は、LUNタイプ51aに対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より所定数以上大きくない場合には、このLUNタイプ51aにマッピングが集中しないと判断する。そして、マッピング情報生成制御部31は、LUNタイプ51aをRAIDレベルにマッピングする。一方、マッピング情報生成制御部31は、LUNタイプ51aに対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より所定数以上大きい場合には、このLUNタイプ51aにマッピングが集中すると判断する。そして、マッピング情報生成制御部31は、次に優先度51cの小さいLUNタイプ51aを選択し、上記のマッピングの生成規則にしたがって、マッピング生成処理を行う。そして、マッピング情報生成制御部31は、サポートRAIDレベル獲得部41から取得した全てのRAIDレベルについてLUNタイプ51aとマッピングしたマッピング情報の登録要求をマッピング情報変更部42に通知する。
【0030】
マッピング情報変更部42は、VDSHP設定ツール30より要求された内容にしたがって、マッピング情報52の変更を行なう。さらに、マッピング情報変更部42は、マッピング情報登録部43を有する。
【0031】
マッピング情報登録部43は、マッピング情報生成制御部31からマッピング情報の登録要求を取得すると、マッピング情報生成制御部31のマッピング生成処理によって生成されたRAIDレベルとLUNタイプとのマッピングをマッピング情報52に登録する。ここで、マッピング情報52について図4を参照しながら説明する。図4は、マッピング情報のデータ構造の一例を示す図である。図4に示すように、マッピング情報52は、プライマリのRAIDレベル52c及びセカンダリのRAIDレベル52dをLUNタイプ52bに対応付けて記憶する。すなわち、マッピング情報52は、1個のLUNタイプ52bに対し、2個のRAIDレベルを対応付けられるのである。図4の例では、LUNタイプ52bがVDS_LT_STRIPEの場合、このVDS_LT_STRIPEに対し、RAID1+0及びRAID0を対応付けられる。
【0032】
また、マッピング情報52は、RAID装置に割り当てられたIPアドレス52aをヘッダとして記憶する。すなわち、マッピング情報52は、RAID装置毎に有するのである。なお、マッピング情報52は、1個のLUNタイプ52bに2個のRAIDレベル52dを対応付けるものとして説明したが、これに限定されず、1個のLUNタイプ52bに2個以上のRAIDレベル52dを対応付けるものとしても良い。
【0033】
サポートRAIDレベル獲得部41は、RAID装置4のサポート可能なRAIDレベルを獲得する。具体的には、サポートRAIDレベル獲得部41は、マッピング情報生成制御部31からRAID装置4がサポートするRAIDレベルの獲得要求を取得する。そして、サポートRAIDレベル獲得部41は、RAID装置4に対してRAIDレベル獲得コマンドを発行し、RAID装置4がサポートしているRAIDレベルを獲得する。そして、サポートRAIDレベル獲得部41は、獲得したRAIDレベルをマッピング情報生成制御部31に通知する。
【0034】
サポートRAIDレベル通知部61は、RAID装置4がサポート可能なRIDレベルをVDSHP40に通知する。具体的には、サポートRAIDレベル通知部61は、サポートRAIDレベル獲得部41から発行されたRAIDレベル獲得コマンドを受信すると、RAID構成情報63を参照してRAID装置4がサポートしているRAIDレベルを取得する。そして、サポートRAIDレベル通知部61は、取得したRAIDレベルをサポートRAIDレベル獲得部41に通知する。
【0035】
ユーザ端末5は、サーバ3と接続され、サーバ3に対して各種要求を通知する。例えば、ユーザ端末5は、RAID装置4のIPアドレスをパラメータとした、RAID装置4のマッピング情報の登録要求をVDSHP設定ツール30に通知する。また、ユーザ端末5は、通知した要求に対する結果を取得し、取得した結果を表示する。
【0036】
[マッピング情報生成の具体例]
次に、マッピング情報生成制御部31によるマッピング情報生成の具体例について図5を参照しながら説明する。図5は、マッピング情報生成の具体例について説明する説明図である。ここでは、RAID装置4のサポート可能なRAIDレベルを0、1、5、6、1+0、5+0とし、生成規則テーブル51を用いて説明するものとする。また、記憶部50内にLUNタイプ51a毎に備えたカウンタには、予め「0」が記憶されているものとする。そして、LUNタイプ51aを示すVDS_LT_MIRROR、VDS_LT_STRIPE、VDS_LT_PARITY、VDS_LT_SPANの順に、各カウンタの値を(0、0、0、0)で表すものとする。なお、これ以降、VDS_LT_MIRROR、VDS_LT_STRIPE、VDS_LT_STRIPE、VDS_LT_SPANを、それぞれ「MIRROR」、「STRIPE」、「PARITY」、「SPAN」と略記するものとする。
【0037】
まず、マッピング情報生成制御部31は、RAIDレベル「0」を選択する。そして、マッピング情報生成制御部31は、選択したRAIDレベル「0」について、優先度51cの小さい順にLUNタイプ51aを選択する。ここでは、優先度51cの値が最も小さい優先度1に対応する「STRIPE」を選択する。マッピング情報生成制御部31は、LUNタイプ51aの各カウンタの値が「0」であるので、選択した「STRIPE」に対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より2以上大きくないと判定する。そして、マッピング情報生成制御部31は、「STRIPE」をRAIDレベル「0」にマッピングし、「STRIPE」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(0、1、0、0)となる。
【0038】
次に、マッピング情報生成制御部31は、RAIDレベル「1」を選択する。そして、マッピング情報生成制御部31は、選択したRAIDレベル「1」について、優先度51cの小さい順にLUNタイプ51aを選択する。ここでは、優先度51cの値が最も小さい優先度1に対応する「MIRROR」を選択する。マッピング情報生成制御部31は、各カウンタの値が(0、1、0、0)であるので、選択した「MIRROR」に対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より2以上大きくないと判定する。そして、マッピング情報生成制御部31は、「MIRROR」をRAIDレベル「1」にマッピングし、「MIRROR」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、1、0、0)となる。
【0039】
以下同様に、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「5」に優先度1に対応する「PARITY」をマッピングし、「PARITY」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、1、1、0)となる。
【0040】
また、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「6」に優先度1に対応する「SPAN」をマッピングし、「SPAN」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、1、1、1)となる。
【0041】
さらに、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「1+0」に優先度1に対応する「STRIPE」をマッピングし、「STRIPE」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、2、1、1)となる。
【0042】
そして、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「5+0」に優先度1に対応する「PARITY」をマッピングし、「PARITY」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、2、2、1)となる。このようにして、マッピング情報生成制御部31は、RAIDレベル毎に、それぞれ優先度1のLUNタイプをマッピングする。
【0043】
[マッピング情報生成の別の具体例]
次に、マッピング情報生成制御部31によるマッピング情報生成の別の具体例について図6を参照しながら説明する。図6は、マッピング情報生成の別の具体例について説明する説明図である。ここでは、RAID装置4のサポート可能なRAIDレベルを0、1、5、0+1、0+5、1+0、1+5、5+0、5+1、5+5とし、生成規則テーブル51を用いて説明するものとする。
【0044】
なお、優先度1に対応するLUNタイプ51aとマッピングされるRAIDレベル「0」、「1」、「5」、「0+1」については、図5に示すマッピング情報生成の説明と同様であるので、その説明を省略する。また、LUNタイプ51a毎に備えられたカウンタには、RAIDレベル「0+1」のマッピング後の値が記憶され、「MIRROR」、「STRIPE」、「PARITY」、「SPAN」の順に、(1、2、1、0)で表されるものとする。
【0045】
RAIDレベル「0+1」のマッピング後、マッピング情報生成制御部31は、RAIDレベル「0+5」を選択する。そして、マッピング情報生成制御部31は、選択したRAIDレベル「0+5」について、優先度51cの小さい順にLUNタイプ51aを選択する。ここでは、マッピング情報生成制御部31は、優先度51cの値が最小となる優先度1に対応する「STRIPE」を選択する。そして、マッピング情報生成制御部31は、選択した「STRIPE」に対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より2以上大きいと判定する。すなわち、各カウンタの値が(1、2、1、0)であり、選択した「STRIPE」対応のカウンタ値が「2」、「SPAN」対応のカウンタ値が「0」であるので、「STRIPE」対応のカウンタ値が「SPAN」対応のカウンタ値より2以上大きいと判定する。この結果、マッピング情報生成制御部31は、「STRIPE」にマッピングが集中すると判断し、優先度2に対応する「PARITY」を選択する。そして、マッピング情報生成制御部31は、選択した「PARITY」に対応するカウンタの値が他のいずれかのLUNタイプ51aに対応するカウンタの値より2以上大きくないと判定する。すなわち、選択した「PARITY」対応のカウンタ値が「1」、他のLUNタイプ51a対応のカウンタ値が「1」、「2」、「0」であるので、「STRIPE」対応のカウンタ値が他のLUNタイプ51a対応のカウンタ値より2以上大きくないと判定する。そして、マッピング情報生成制御部31は、優先度2に対応する「PARITY」をRAIDレベル「0+5」にマッピングし、「PARITY」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(1、2、2、0)となる。
【0046】
以下同様に、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「1+0」に優先度2に対応する「MIRROR」をマッピングし、「MIRROR」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(2、2、2、0)となる。
【0047】
さらに、マッピング情報生成制御部31は、各カウンタの値に基づいて、RAIDレベル「1+5」に優先度3に対応する「SPAN」をマッピングし、「SPAN」に対応するカウンタに1を加算する。この結果、各カウンタの値は、(2、2、2、1)となる。
【0048】
そして、引き続き、マッピング情報生成制御部31は、RAIDレベル「5+0」、「5+1」、「5+5」の順に、各カウンタの値に基づいて、それぞれ対応するLUNタイプ51aをマッピングすることとなる。
【0049】
[実施例2に係るマッピング情報生成処理の手順]
次に、実施例2に係るマッピング情報生成処理の手順を、図7を参照して説明する。図7は、実施例2に係るマッピング情報生成処理の手順を示すフローチャートである。なお、ユーザは、RAID装置4をRAID装置Aとしたマッピング情報の登録要求をユーザ端末5から実行したものとする。
【0050】
まず、マッピング情報生成制御部31は、ユーザ端末5からRAID装置Aのマッピング情報の登録要求を取得する。すると、マッピング情報生成制御部31は、サポートRAIDレベル獲得部41に対し、RAID装置AがサポートするRAIDレベルの獲得を要求する(ステップS11)。そして、マッピング情報生成制御部31は、要求結果であるRAIDレベルをサポートRAIDレベル獲得部41から取得する(ステップS12)。
【0051】
次に、マッピング情報生成制御部31は、生成規則テーブル51に記憶されたRAIDレベル52bについて、マッピングを行なう順番を示すインデックスaを0に設定するとともに、LUNタイプ51a毎のカウンタ値を0に設定する(ステップS13)。例えば、インデックスaの値は、生成規則テーブル51に記憶されたRAIDレベル52bの一番左のRAID0を0とし、右に向かって1ずつインクリメントされた値となる。すなわち、インデックスaは、RAID0を0番とし、RAID1を1番とし、RAID6+6を16番とする。
【0052】
次に、マッピング情報生成制御部31は、RAID装置Aが生成規則テーブル51上のa番目のRAIDレベル52bをサポートしているか否かを判定する(ステップS14)。具体的には、マッピング情報生成制御部31は、サポートRAIDレベル獲得部41から取得したRAIDレベルの中にa番目のRAIDレベル52bと合致するRAIDレベルがあるか否かを判定する。
【0053】
そして、RAID装置Aがa番目のRAIDレベル52bをサポートしている場合には(ステップS14Yes)、マッピング情報生成制御部31は、a番目のRAIDレベル52bのマッピング生成処理を行う(ステップS15)。なお、マッピング生成処理の詳細については、後述する。
【0054】
一方、RAID装置Aがa番目のRAIDレベル52bをサポートしていない場合には(ステップS14No)、マッピング情報生成制御部31は、ステップS16に移行する。続いて、マッピング情報生成制御部31は、a番目のRAIDレベル52bが最後のRAIDレベルか否かを判定する(ステップS16)。
【0055】
そして、a番目のRAIDレベル52bが最後のRAIDレベルでない場合には(ステップS16No)、マッピング情報生成制御部31は、インデックスaの値を1加算する(ステップS17)。そして、マッピング情報生成制御部31は、次のRAIDレベルに処理を移すべく、ステップS14に移行する。
【0056】
a番目のRAIDレベル52bが最後のRAIDレベルである場合には(ステップS16Yes)、マッピング情報生成制御部31は、マッピング情報の登録要求をマッピング情報登録部43に通知する。そして、マッピング情報登録部43は、マッピング情報生成制御部31のマッピング生成処理によって生成されたRAIDレベルとLUNタイプとのマッピングをマッピング情報52に登録する(ステップS18)。
【0057】
次に、図7に示すマッピング生成処理(S15)の手順について、図8を用いて説明する。図8は、a番目のRAIDレベルのマッピング生成処理の手順を示すフローチャートである。
【0058】
まず、マッピング情報生成制御部31は、LUNタイプ51a毎のカウンタ値を参照する(ステップS21)。次に、マッピング情報生成制御部31は、生成規則テーブル51のa番目のRAIDレベル51bにおける各LUNタイプ51aの優先度51cを生成規則テーブル51から取得する(ステップS22)。
【0059】
そして、マッピング情報生成制御部31は、優先度1のLUNタイプ51aに対応するカウンタ値が優先度2〜4のいずれかのLUNタイプ51aに対応するカウンタ値より2以上大きいか否かを判定する(ステップS23)。優先度1に対応するカウンタ値が優先度2〜4のいずれかに対応するカウンタ値より2以上大きくない場合(ステップS23No)、マッピング情報生成制御部31は、優先度1のLUNタイプ51aにマッピングが集中しないと判断する。そして、マッピング情報生成制御部31は、優先度1のLUNタイプ51aをa番目のRAIDレベル51bにマッピングするために選択し(ステップS24)、ステップS30に移行する。
【0060】
一方、優先度1に対応するカウンタ値が2以上大きい場合(ステップS23Yes)、マッピング情報生成制御部31は、優先度1のLUNタイプ51aにマッピングが集中すると判断する。そして、マッピング情報生成制御部31は、優先度2のLUNタイプ51aに対応するカウンタ値が優先度3〜4のいずれかのLUNタイプ51aに対応するカウンタ値より2以上大きいか否かを判定する(ステップS25)。
【0061】
優先度2に対応するカウンタ値が優先度3〜4のいずれかに対応するカウンタ値より2以上大きくない場合(ステップS25No)、マッピング情報生成制御部31は、優先度2のLUNタイプ51aにマッピングが集中しないと判断する。そして、マッピング情報生成制御部31は、優先度2のLUNタイプ51aをa番目のRAIDレベル51bにマッピングするために選択し(ステップS26)、ステップS30に移行する。
【0062】
一方、優先度2に対応するカウンタ値が2以上大きい場合(ステップS25Yes)、マッピング情報生成制御部31は、優先度2のLUNタイプ51aにマッピングが集中すると判断する。そして、マッピング情報生成制御部31は、優先度3のLUNタイプ51aに対応するカウンタ値が優先度4のLUNタイプ51aに対応するカウンタ値より2以上大きいか否かを判定する(ステップS27)。
【0063】
優先度3に対応するカウンタ値が優先度4に対応するカウンタ値より2以上大きくない場合(ステップS27No)、マッピング情報生成制御部31は、優先度3のLUNタイプ51aにマッピングが集中しないと判断する。そして、マッピング情報生成制御部31は、優先度3のLUNタイプ51aをa番目のRAIDレベル51bにマッピングするために選択し(ステップS28)、ステップS30に移行する。
【0064】
一方、優先度3に対応するカウンタ値が2以上大きい場合(ステップS27Yes)、マッピング情報生成制御部31は、優先度3のLUNタイプ51aにマッピングが集中すると判断する。そして、マッピング情報生成制御部31は、優先度4のLUNタイプ51aをa番目のRAIDレベル51bにマッピングするために選択する(ステップS29)。
【0065】
続いて、マッピング情報生成制御部31は、選択したLUNタイプ51aに対応するカウンタ値を1加算する(ステップS30)。そして、マッピング情報生成制御部31は、選択したLUNタイプ51aをa番目のRAIDレベルにマッピングし(ステップS31)、a番目のRAIDレベルのマッピング生成処理を終了する。
【0066】
[実施例2の効果]
上記実施例2によれば、マッピング情報生成制御部31は、1つのLUNタイプに複数のRAIDレベルをマッピングするようにした。かかる構成によれば、マッピング情報生成制御部31は、仮にRAID装置4のサポートするRAIDレベルの総数がLUNタイプの総数より多い場合であっても、全てのRAIDレベルをLUNタイプに多対1でマッピングすることができる。この結果、マッピング情報生成制御部31は、RAID装置4のサポートする全てのRAIDレベルをVDSで使用することが可能となる。
【0067】
また、上記実施例2によれば、生成規則テーブル51は、RAIDレベル毎にVDSで定義されているLUNタイプとのマッピング生成規則を予め記憶するようにした。そして、マッピング情報生成制御部31は、RAID装置4のマッピング情報の生成要求を取得すると、生成規則テーブル51を参照して、RAID装置4のサポート可能なRAIDレベルにLUNタイプをマッピングする。そして、マッピング情報登録部43は、マッピング情報生成制御部31によってマッピングされたRAIDレベルとLUNタイプとの対応関係を、マッピング情報として記憶する。
【0068】
かかる構成によれば、マッピング情報生成制御部31は、生成規則テーブル51に記憶されたマッピング生成規則を用いることによりRAID装置4のサポート可能なRAIDレベルにLUNタイプをマッピングする。すなわち、マッピング情報生成制御部31は、RAID装置4毎にサポート可能なRAIDレベルが異なっても、RAID装置4毎にサポート可能なRAIDレベルに応じたLUNタイプをマッピングできるので、RAID装置4毎のマッピング情報を提供できる。また、ストレージシステム9は、RAID装置4のRAIDレベルの仮想化の実行にマッピング情報として記憶したLUNタイプを用いることによりRAID装置4のサポート可能な全てのRAIDレベルをVDSによってサポートできる。
【0069】
また、上記実施例2によれば、生成規則テーブル51に記憶されるマッピング生成規則として、各RAIDレベルに対してLUNタイプに優先度を割り付けるようにした。そして、マッピング情報生成制御部31は、RAIDレベルについて、マッピング生成規則に割り付けられた優先度の値の小さい順にLUNタイプを選択する。そして、マッピング情報生成制御部31は、選択したLUNタイプに既にマッピングされたRAIDレベルの数が他のいずれかのLUNタイプに既にマッピングされたRAIDレベルの数より2以上大きいか否かを判定する。そして、マッピング情報生成制御部31は、選択したLUNタイプに既にマッピングされたRAIDレベルの数が他のいずれかのLUNタイプに既にマッピングされたRAIDレベルの数より2以上大きい場合には、次に優先度の値の小さいLUNタイプを選択する。
【0070】
かかる構成によれば、マッピング情報生成制御部31は、選択したLUNタイプにマッピングが集中しているか否かを早期に発見することができる。そして、マッピング情報生成制御部31は、選択したLUNタイプにマッピングが集中している場合には、選択したLUNタイプと異なるLUNタイプを選択することで、マッピングが集中しているLUNタイプへのマッピングを抑制できる。この結果、マッピング情報生成制御部31は、LUNタイプへのマッピングを効率よく行なうことができる。
【実施例3】
【0071】
ところで、実施例に係るストレージシステム9では、RAID装置4のサポートするRAIDレベルをLUNタイプに多対1でマッピングし、マッピング情報52に登録する場合を説明した。ストレージシステム9は、これに限定されるものではなく、登録されたマッピング情報52を変更しても良い。
【0072】
そこで、実施例3では、ストレージシステム9が、登録されたマッピング情報52を変更する場合を説明する。
【0073】
[実施例3に係るストレージシステムの構成]
図9は、実施例3に係るストレージシステムの構成を示す機能ブロック図である。なお、図2に示すストレージシステム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例3とが異なるところは、VDSHP設定ツール30にマッピング情報変更制御部31Aを追加した点にある。さらに実施例2と実施例3とが異なるところは、マッピング情報変更部42にマッピング情報読出部43A及びマッピング情報更新部43Bを追加した点にある。
【0074】
マッピング情報変更制御部31Aは、ユーザ端末5からの変更要求に基づいて、マッピング情報変更部42を通じてマッピング情報52を更新する。具体的には、マッピング情報変更制御部31Aは、サポートRAIDレベル獲得部41にRAID装置4がサポートするRAIDレベルの獲得を要求し、要求したRAIDレベルをサポートRAIDレベル獲得部41から取得する。そして、マッピング情報変更制御部31Aは、マッピング情報読出部43Aにマッピング情報52の読み出しを要求し、要求したマッピング情報52をマッピング情報読出部43Aから取得する。そして、マッピング情報変更制御部31Aは、取得したマッピング情報52及びRAID装置4がサポートするRAIDレベルをユーザ端末5に表示する。そして、マッピング情報変更制御部31Aは、マッピング情報更新部43Bに、ユーザ端末5によって変更されたRAIDレベルとLUNタイプとのマッピングの変更を要求する。
【0075】
マッピング情報読出部43Aは、VDSHP設定ツール30からマッピング情報52の読み出し要求を取得すると、記憶部50に記憶されたマッピング情報52を読み出す。そして、マッピング情報読出部43Aは、読み出したマッピング情報52をマッピング情報変更制御部31Aに出力する。
【0076】
マッピング情報更新部43Bは、VDSHP設定ツール30からマッピングの変更要求を取得すると、変更されたRAIDレベルとLUNタイプとのマッピングにマッピング情報52を更新する。
【0077】
[マッピング情報変更の具体例]
次に、マッピング情報変更の具体例について図10を参照しながら説明する。図10は、マッピング情報変更の具体例を説明する説明図である。なお、図10(A)は、変更前のマッピング情報を表し、図10(B)は、変更後のマッピング情報を表す。
【0078】
図10(A)に示すように、マッピング情報52には、「MIRROR」に対応するプライマリのRAIDレベル52cにRAID1が対応付けられている。また、「STRIPE」に対応するプライマリのRAIDレベル52cにRAID1+0が対応付けられ、セカンダリのRAIDレベル52dにRAID0が対応付けられている。また、「PARITY」に対応するプライマリのRAIDレベル52cにRAID5が対応付けられている。さらに、「SPAN」に対応するプライマリのRAIDレベル52cにRAID6が対応付けられている。
【0079】
ここで、ユーザ端末5によってRAID1+0を「MIRROR」に対応するセカンダリのRAIDレベル52dへ変更され、RAID5+0を「PARITY」に対応するセカンダリのRAIDレベル52dに追加されるものとする。すると、マッピング情報変更制御部31Aは、ユーザ端末5によって変更されたRAIDレベルとLUNタイプとのマッピングの変更をマッピング情報更新部43Bに要求する。そして、マッピング情報更新部43Bは、変更されたRAIDレベルとLUNタイプとのマッピングにマッピング情報52を更新する。この結果、図10(B)に示すように、マッピング情報52には、「MIRROR」に対応するセカンダリ52dのRAIDレベルにRAID1+0が対応付けられる。また、「STRIPE」に対応するプライマリのRAIDレベル52cに、変更前にはセカンダリのRAIDレベル52dにあったRAID0が対応付けられる。さらに、「PARITY」に対応するセカンダリのRAIDレベル52dにRAID5+0が対応付けられることとなる。
【0080】
[実施例3に係るマッピング情報変更処理の手順]
次に、実施例3に係るマッピング情報変更処理の手順を、図11を参照して説明する。図11は、実施例3に係るマッピング情報変更処理の手順を示すフローチャートである。なお、ユーザは、RAID装置4をRAID装置Aとしたマッピング情報の変更要求をユーザ端末5から実行したものとする。
【0081】
まず、マッピング情報変更制御部31Aは、ユーザ端末5からRAID装置Aのマッピング情報の変更要求を取得する(ステップS41)。すると、マッピング情報変更制御部31Aは、サポートRAIDレベル獲得部41に対し、RAID装置AがサポートするRAIDレベルの獲得を要求し、要求結果であるRAIDレベルをサポートRAIDレベル獲得部41から取得する(ステップS42)。
【0082】
次に、マッピング情報変更制御部31Aは、マッピング情報読出部43AにRAID装置Aのマッピング情報52の読み出しを要求し、要求したRAID装置Aのマッピング情報52をマッピング情報読出部43Aから取得する(ステップS43)。そして、マッピング情報変更制御部31Aは、RAID装置Aのマッピング情報52及びRAID装置AがサポートするRAIDレベルをユーザ端末5に表示する(ステップS44)。
【0083】
その後、マッピング情報変更制御部31Aは、ユーザの操作にしたがって、ユーザ端末5によって変更されたRAID装置AのRAIDレベルとLUNタイプとのマッピングの変更をマッピング情報更新部43Bに要求する。そして、マッピング情報更新部43Bが、ユーザの操作内容にしたがい、RAID装置AのRAIDレベルとLUNタイプとのマッピングにマッピング情報52を更新する(ステップS45)。
【0084】
[実施例3の効果]
上記実施例3によれば、マッピング情報変更制御部31Aは、RAID装置4のマッピング情報の変更要求を取得すると、変更要求に基づいてRAID装置4のマッピング情報を変更するようにした。かかる構成によれば、マッピング情報変更制御部31Aは、RAID装置4のマッピング情報の新規作成後も当該マッピング情報を変更することができることとなる。この結果、マッピング情報変更制御部31Aは、ユーザの要望に沿って、RAID装置4のマッピング情報を自由に変更することが可能となる。また、仮にRAID装置4に新たなRAIDレベルが追加された場合であっても、マッピング情報変更制御部31Aは、RAIDレベルの追加に応じて、マッピング情報を変更することができ、追加したRAIDレベルをVDSによってサポートできる。
【実施例4】
【0085】
ところで、実施例2に係るストレージシステム9では、RAID装置4がサポートするRAIDレベルをLUNタイプに多対1でマッピングし、マッピング情報52に登録する場合を説明した。また、実施例3に係るストレージシステム9では、RAID装置4のマッピング情報52を変更する場合を説明した。そこで、実施例4では、ストレージシステム9が、登録または変更されたマッピング情報52を参照し、RAID装置4にLUNを作成する場合を説明する。
【0086】
[実施例4に係るストレージシステムの構成]
図12は、実施例4に係るストレージシステムの構成を示す機能ブロック図である。なお、図9に示すストレージシステム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例3と実施例4とが異なるところは、サーバ3にストレージ管理ソフト70を追加し、サーバ3に備える記憶部50にLUN情報73を追加した点にある。また、VDSHP40にRAID装置制御部71を追加した点にある。さらに、実施例3と実施例4とが異なるところは、RAID装置4にRAID構成情報変更部74を追加した点にある。
【0087】
ストレージ管理ソフト70は、VDSHP40を用いて、LUNやアフィニティ等のRAID装置4の構成を設定するソフトウェアである。具体的には、ストレージ管理ソフト70は、ユーザ端末5から指定されたRAID装置4のLUNタイプをパラメータとするLUN作成要求をVDSHP40のRAID装置制御部71に通知する。
【0088】
RAID装置制御部71は、RAID装置4を制御し、LUN作成部72を備える。LUN作成部72は、マッピング情報52を参照し、マッピング情報52のLUNタイプにマッピングされているRAIDレベル上にLUNを作成する。具体的には、LUN作成部72は、RAID装置4のLUNタイプをパラメータとするLUN作成要求をストレージ管理ソフト70から取得する。そして、LUN作成部72は、RAID装置4のマッピング情報52を記憶部50から取得する。そして、LUN作成部72は、マッピング情報52を参照し、パラメータとして指定されたLUNタイプのRAIDレベルをプライマリのRAIDレベルから順に選択する。そして、LUN作成部72は、選択したRAIDレベル上にLUNを作成することが可能か否かの評価を行ない、評価結果を判定する。そして、LUN作成部72は、選択したRAIDレベル上にLUNを作成することが可能であると判定した場合には、RAIDレベルを確定し、確定したRAIDレベルをパラメータとするLUN作成コマンドをRAID装置4に発行する。一方、LUN作成部72は、選択したRAIDレベル上にLUNを作成することが可能でないと判定した場合には、次のRAIDレベルを選択し、LUN作成可否の評価を行なう。
【0089】
また、LUN作成部72は、確定したRAIDレベル上のLUNに関する情報をLUN情報73に記憶する。例えば、LUN情報73は、RAIDレベル上のLUNとLUNタイプとを少なくとも対応付けて記憶する。また、LUN情報73は、VDSのアプリケーションインタフェースで用いられるLUNサイズやアフィニティ設定情報等もLUNと対応付けて記憶するようにしても良い。
【0090】
RAID構成情報変更部74は、LUN作成部72から発行された、RAIDレベルをパラメータとするLUN作成コマンドを受信すると、RAIDレベル上にLUNを作成し、LUNの作成に伴い変更となったRAID構成情報63を更新する。
【0091】
[実施例4に係るLUN作成処理の手順]
次に、実施例4に係るLUN作成処理の手順を、図13を参照して説明する。図13は、実施例4に係るLUN作成処理の手順を示すフローチャートである。なお、ユーザは、RAID装置4をRAID装置AとしたLUN作成要求をユーザ端末5から実行したものとする。また、説明の便宜上、RAID装置Aのマッピング情報52には、例えば、LUNタイプ52b「STRIPE」に対応するプライマリのRAIDレベル52cにRAID1+0、セカンダリのRAIDレベル52dにRAID0が対応付けられている。
【0092】
まず、ストレージ管理ソフト70は、ユーザ端末5からRAID装置AのLUNタイプをパラメータとするLUN作成要求を取得する(ステップS51)。ここでは、ストレージ管理ソフト70は、ユーザ端末5からRAID装置AのLUNタイプの1つである「STRIPE」をパラメータとするLUN作成要求を取得するものとする。
【0093】
すると、ストレージ管理ソフト70は、LUNタイプをパラメータとするLUN作成APIを起動する(ステップS52)。すなわち、ストレージ管理ソフト70は、LUNタイプをパラメータとするLUN作成要求をLUN作成部72に通知する。ここでは、ストレージ管理ソフト70は、「STRIPE」をパラメータとするLUN作成要求をLUN作成部72に通知する。
【0094】
続いて、LUN作成部72は、RAID装置4のマッピング情報52を記憶部50から取得する(ステップS53)。そして、LUN作成部72は、パラメータとして指定されたLUNタイプのプライマリのRAIDレベルを選択する(ステップS54)。ここでは、LUN作成部72は、パラメータとして指定された「STRIPE」のプライマリのRAIDレベルであるRAID1+0を選択する。
【0095】
さらに、LUN作成部72は、選択したRAIDレベル上にLUNを作成することが可能か否かの評価を行なう(ステップS55)。そして、LUN作成部72は、評価結果に基づいて、選択したRAIDレベル上にLUNを作成することが可能か否かを判定する(ステップS56)。選択したRAIDレベル上にLUNを作成することが可能でないと判定された場合には(ステップS56No)、LUN作成部72は、次のRAIDレベルを選択し(ステップS57)、ステップS55に移行する。ここでは、選択したRAID1+0上にLUNを作成することが可能でない場合には、LUN作成部72は、「STRIPE」のセカンダリのRAIDレベルであるRAID0を選択する。
【0096】
一方、選択したRAIDレベル上にLUNを作成することが可能であると判定された場合には(ステップS56Yes)、LUN作成部72は、選択したRAIDレベルを確定する。そして、LUN作成部72は、確定したRAIDレベルをパラメータとするLUN作成コマンドをRAID装置4に発行する(ステップS58)。ここでは、選択したRAID1+0上にLUNを作成することが可能である場合には、LUN作成部72は、RAID1+0をパラメータとするLUN作成コマンドをRAID装置Aに発行する。この結果、RAID装置Aでは、RAID構成情報変更部74によってRAID1+0上にLUNが作成されることとなる。
【0097】
[実施例4の効果]
上記実施例4によれば、LUN作成部72は、RAID装置4のLUNタイプを指定したLUN作成要求を取得すると、マッピング情報52に基づいて、該指定したLUNタイプに対応付けられたRAIDレベル上にLUNを作成するようにした。かかる構成によれば、1個のLUNタイプに複数のRAIDレベルが対応付けられたマッピング情報52であっても、LUN作成部72は、指定したLUNタイプに適合したRAIDレベルを早期に選択することで、選択したRAIDレベル上に効率よくLUNを作成できる。
【実施例5】
【0098】
ところで、実施例3に係るストレージシステム9では、RAID装置4がサポートするRAIDレベルをLUNタイプにマッピングしたマッピング情報52を変更する場合を説明した。また、実施例4に係るストレージシステム9では、マッピング情報52を参照し、RAID装置4のRAIDレベル上にLUNを作成し、作成したLUNに関する情報をLUN情報73に記憶する場合を説明した。しかしながら、マッピング情報52を変更することにより、RAIDレベルに対応付けられたLUNタイプが変更する場合があるので、既にRAIDレベル上に作成されたLUNと同一のLUNであっても、LUNタイプが動的に切り替わる可能性がある。そこで、実施例5では、マッピング情報52が変更された場合に、ストレージシステム9が、LUN情報73を更新する場合を説明する。
【0099】
[実施例5に係るストレージシステムの構成]
図14は、実施例5に係るストレージシステムの構成を示す機能ブロック図である。なお、図12に示すストレージシステム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例4と実施例5とが異なるところは、RAID装置制御部71にLUN情報更新部72Aを追加した点にある。さらに、実施例4と実施例5とが異なるところは、マッピング情報登録部43をマッピング情報登録部43Cに変更し、マッピング情報更新部43Bをマッピング情報更新部43Dに変更した点にある。
【0100】
マッピング情報登録部43Cは、VDSHP設定ツール30からマッピング情報の登録要求を取得すると、マッピング情報生成制御部31のマッピング生成処理によって生成されたRAIDレベルとLUNタイプとのマッピングをマッピング情報52に登録する。また、マッピング情報登録部43Cは、マッピング情報52に登録すると、LUN情報更新部72Aにマッピング情報52の変更を通知する。
【0101】
マッピング情報更新部43Dは、VDSHP設定ツール30からマッピングの変更要求を取得すると、変更されたRAIDレベルとLUNタイプとのマッピングにマッピング情報52を更新する。また、マッピング情報更新部43Dは、マッピング情報52を更新すると、LUN情報更新部72Aにマッピング情報52の変更を通知する。
【0102】
LUN情報更新部72Aは、マッピング情報52の変更をトリガとして、変更されたRAID装置4のマッピング情報52を参照し、LUN情報73を更新する。具体的には、LUN情報更新部72Aは、マッピング情報変更部42からRAID装置4のマッピング情報52の変更通知を取得する。そして、LUN情報更新部72Aは、RAID装置4からRAID構成情報63を取得する。さらに、LUN情報更新部72Aは、RAID装置4のマッピング情報52を取得する。そして、LUN情報更新部72Aは、RAID構成情報63及びマッピング情報52に基づいて、マッピング情報52の変更されたRAIDレベルに対応付けられたLUNタイプに沿うようにLUN情報73を更新する。
【0103】
例えば、マッピング情報52のRAID0+5のLUNタイプを「STRIPE」から「PARITY」に変更したものとする。また、RAID装置4に記憶されたRAID構成情報63のRAID0+5のLUNが#0であるとし、LUN情報73のLUN#0のLUNタイプが「STRIPE」であるものとする。このとき、LUN情報更新部72Aは、RAID構成情報63からRAID0+5に対応するLUN#0を取得する。そして、LUN情報更新部72Aは、LUN情報73に記憶された、LUN#0に対応するLUNタイプ「STRIPE」を「PARITY」に更新する。
【0104】
[実施例5に係るLUN情報更新処理の手順]
次に、実施例5に係るLUN情報更新処理の手順を、図15を参照して説明する。図15は、実施例5に係るLUN情報更新処理の手順を示すフローチャートである。なお、マッピング情報更新部43DによってRAID装置Aのマッピング情報52が変更されたものとする。
【0105】
まず、LUN情報更新部72Aは、マッピング情報更新部43DからRAID装置Aのマッピング情報52の変更通知を取得する(ステップS61)。すると、LUN情報更新部72Aは、RAID装置Aと通信を行い、RAID装置AからRAID構成情報63を取得する(ステップS62)。次に、LUN情報更新部72Aは、記憶部50からRAID装置Aのマッピング情報52を取得する(ステップS63)。
【0106】
続いて、LUN情報更新部72Aは、RAID構成情報63及びマッピング情報52に基づいて、マッピング情報52の変更されたRAIDレベルに対応付けられたLUNタイプに沿うようにLUN情報73を更新する(ステップS64)。
【0107】
[実施例5の効果]
上記実施例5によれば、LUN情報73は、RAID装置4のRAIDレベル上に作成されたLUNとLUNタイプとを対応付けて記憶する。そして、LUN情報更新部72Aは、マッピング情報変更部42からRAID装置4のマッピング情報52の変更通知を取得すると、該変更されたマッピング情報52のRAIDレベルに対応付けられたLUNタイプに沿うようにLUN情報73を更新する。かかる構成によれば、LUN情報更新部72Aは、変更されたマッピング情報52のRAIDレベルに対応付けられたLUNタイプとLUN情報73のLUNに対応付けられたLUNタイプとの不整合を回避でき、効率よくLUN情報73を更新できる。
【0108】
[その他]
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、マッピング情報変更部42に備えられた各種機能部を1つの部として統合しても良い。また、VDSHP設定ツール30に備えられた各種機能部を1つの部として統合しても良い。さらに、RAID装置制御部71に備えられた各種機能部を1つの部として統合しても良い。一方、マッピング情報変更部42に備えられた各種機能部をそれぞれ分散しても良い。また、VDSHP設定ツール30に備えられた各種機能部をそれぞれ分散しても良い。さらに、RAID装置制御部71に備えられた各種機能部をそれぞれ分散しても良い。また、記憶部50をサーバ3の外部装置としてネットワーク経由で接続するようにしても良い。
【0109】
[プログラム]
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図16を用いて、図14に示したストレージシステム9と同様の機能を有するストレージ制御プログラムを実行するコンピュータの一例を説明する。
【0110】
図16は、ストレージ制御プログラムを実行するコンピュータを示す図である。図16に示すように、コンピュータ1000は、RAM(Random Access Memory)1010と、キャッシュ1020と、HDD1030と、ROM(Read Only Memory)1040と、CPU(Central Processing Unit)1050、バス1060とを有する。RAM1010、キャッシュ1020、HDD1030、ROM1040、CPU1050は、バス1060によって接続されている。
【0111】
ROM1040には、図14に示したストレージシステム9と同様の機能を発揮するストレージ制御プログラムが予め記憶されている。具体的には、ストレージ制御プログラムには、マッピング情報生成処理プログラム1041、マッピング情報変更処理プログラム1042、LUN作成処理プログラム1043及びLUN情報更新処理プログラム1044が含まれる。
【0112】
そして、CPU1050は、このストレージ制御プログラムをROM1040から読み出して実行する。これにより、図16に示すように、ストレージ制御プログラムは、ストレージ制御プロセスになる。具体的には、ストレージ制御プロセスには、マッピング情報生成処理プロセス1051、マッピング情報変更処理プロセス1052、LUN作成処理プロセス1053及びLUN情報更新処理プロセス1054が含まれる。なお、ストレージ制御プロセスは、図14に示したVDSHP設定ツール30、VDSHP40、ストレージ管理ソフト70、RAID構成情報変更部74及びサポートRAIDレベル通知部61に対応する。
【0113】
また、HDD1030には、図16に示すようにマッピング関連情報1031が設けられる。マッピング関連情報1031は、例えば、図14に示した記憶部50に記憶される各種データ(生成規則テーブル51、マッピング情報52、LUN情報73)及びRAID情報記憶部62に記憶されるRAID構成情報63に対応する。
【0114】
なお、上述した各プログラム1041〜1044については、必ずしもROM1040に記憶させなくても良い。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラム1041を記憶させても良い。又は、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」にプログラム1041を記憶させても良い。又は、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される「他のコンピュータ(又はサーバ)」にプログラム1041を記憶させても良い。そして、コンピュータ1000は、上述したフレキシブルディスクなどから各プログラムを読み出して実行するようにしても良い。
【0115】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【0116】
(付記1)複数の記憶媒体を備えるストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得手順と、
前記RAIDレベル取得手順によって取得されたRAIDレベル毎に、前記ストレージ装置にアクセスするホスト装置側が有するストレージ仮想化機能の機能種別をマッピングするマッピング手順と、
前記マッピング手順によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶手順と
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【0117】
(付記2)前記マッピング手順は、
1つの機能種別に複数のRAIDレベルをマッピングすることを特徴とする付記1に記載のストレージ制御プログラム。
【0118】
(付記3)前記マッピング手順は、
前記ストレージ装置のマッピング情報の生成要求を取得すると、RAIDレベル毎の機能種別とのマッピング生成規則を記憶した生成規則記憶部を参照して、当該ストレージ装置のサポート可能なRAIDレベルに前記機能種別をマッピングすることを特徴とする付記1または付記2に記載のストレージ制御プログラム。
【0119】
(付記4)前記マッピング生成規則として、各RAIDレベルに対して機能種別に優先度を割り付け、
前記マッピング手順は、
RAIDレベルについて、前記マッピング生成規則に割り付けられた優先度の低い順に機能種別を選択し、該選択した機能種別に既にマッピングされたRAIDレベルの数が他のいずれかの機能種別に既にマッピングされたRAIDレベルの数より所定数以上大きいか否かを判定し、該選択した機能種別に既にマッピングされたRAIDレベルの数が他のいずれかの機能種別に既にマッピングされたRAIDレベルの数より所定数以上大きい場合には、次に優先度の低い機能種別を選択することを特徴とする付記3に記載のストレージ制御プログラム。
【0120】
(付記5)前記マッピング手順は、
前記ストレージ装置のマッピング情報の変更要求を取得すると、変更要求に基づいてマッピング情報を変更することを特徴とする付記1から付記4のいずれか1つに記載のストレージ制御プログラム。
【0121】
(付記6)機能種別を指定して前記ストレージ装置の仮想媒体の作成要求を取得すると、前記マッピング情報に基づいて、該指定した機能種別に対応付けられたRAIDレベルに仮想媒体を作成する仮想媒体作成手順を含むことを特徴とする付記1から付記5のいずれか1つに記載のストレージ制御プログラム。
【0122】
(付記7)前記マッピング手順によってマッピング情報が変更されると、RAIDレベルに作成された仮想媒体の識別子と機能種別とを対応付けた仮想媒体情報を記憶する仮想媒体情報記憶部を、該変更されたマッピング情報のRAIDレベルに対応付けられた機能種別に沿うように更新する仮想媒体情報更新手順を含むことを特徴とする付記5に記載のストレージ制御プログラム。
【0123】
(付記8)複数の記憶媒体を備えるストレージ装置と、前記ストレージ装置にアクセスするホスト装置とを有するストレージシステムであって、
前記ホスト装置は、
前記ストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得部と、
前記RAIDレベル取得部によって取得されたRAIDレベル毎に、前記ストレージ装置のストレージ仮想化機能の機能種別をマッピングするマッピング部と、
前記マッピング部によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶部と
を有することを特徴とするストレージシステム。
【0124】
(付記9)複数の記憶媒体を備えるストレージ装置をホスト装置が制御するストレージ制御方法であって、
前記ストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得ステップと、
前記RAIDレベル取得ステップによって取得されたRAIDレベル毎に、前記ホスト装置側が有するストレージ仮想化機能の機能種別をマッピングするマッピングステップと、
前記マッピングステップによってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶ステップと
を含むことを特徴とするストレージ制御方法。
【符号の説明】
【0125】
1 ホスト装置
2 ストレージ装置
3 サーバ
4 RAID装置
5 ユーザ端末
12 マッピング部
13 マッピング情報記憶部
21 記憶媒体
30 VDSHP設定ツール
31 マッピング情報生成制御部
31A マッピング情報変更制御部
40 VDSHP
41 サポートRAIDレベル獲得部
42 マッピング情報変更部
43 マッピング情報登録部
43A マッピング情報読出部
43B マッピング情報更新部
50 記憶部
51 生成規則テーブル
52 マッピング情報
61 サポートRAIDレベル通知部
62 RAID情報記憶部
63 RAID構成情報
70 ストレージ管理ソフト
71 RAID装置制御部
72 LUN作成部
72A LUN情報更新部
73 LUN情報
74 RAID構成情報変更部

【特許請求の範囲】
【請求項1】
複数の記憶媒体を備えるストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得手順と、
前記RAIDレベル取得手順によって取得されたRAIDレベル毎に、前記ストレージ装置にアクセスするホスト装置側が有するストレージ仮想化機能の機能種別をマッピングするマッピング手順と、
前記マッピング手順によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶手順と
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【請求項2】
前記マッピング手順は、
1つの機能種別に複数のRAIDレベルをマッピングすることを特徴とする請求項1に記載のストレージ制御プログラム。
【請求項3】
前記マッピング手順は、
前記ストレージ装置のマッピング情報の生成要求を取得すると、RAIDレベル毎の機能種別とのマッピング生成規則を記憶した生成規則記憶部を参照して、当該ストレージ装置のサポート可能なRAIDレベルに機能種別をマッピングすることを特徴とする請求項1または請求項2に記載のストレージ制御プログラム。
【請求項4】
前記マッピング生成規則として、各RAIDレベルに対して機能種別に優先度を割り付け、
前記マッピング手順は、
RAIDレベルについて、前記マッピング生成規則に割り付けられた優先度の低い順に機能種別を選択し、該選択した機能種別に既にマッピングされたRAIDレベルの数が他のいずれかの機能種別に既にマッピングされたRAIDレベルの数より所定数以上大きいか否かを判定し、該選択した機能種別に既にマッピングされたRAIDレベルの数が他のいずれかの機能種別に既にマッピングされたRAIDレベルの数より所定数以上大きい場合には、次に優先度の低い機能種別を選択することを特徴とする請求項3に記載のストレージ制御プログラム。
【請求項5】
複数の記憶媒体を備えるストレージ装置と、前記ストレージ装置にアクセスするホスト装置とを有するストレージシステムであって、
前記ホスト装置は、
前記ストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得部と、
前記RAIDレベル取得部によって取得されたRAIDレベル毎に、前記ストレージ装置のストレージ仮想化機能の機能種別をマッピングするマッピング部と、
前記マッピング部によってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶部と
を有することを特徴とするストレージシステム。
【請求項6】
複数の記憶媒体を備えるストレージ装置をホスト装置が制御するストレージ制御方法であって、
前記ストレージ装置から当該ストレージ装置のサポート可能なRAIDレベルを取得するRAIDレベル取得ステップと、
前記RAIDレベル取得ステップによって取得されたRAIDレベル毎に、前記ホスト装置側が有するストレージ仮想化機能の機能種別をマッピングするマッピングステップと、
前記マッピングステップによってマッピングされたRAIDレベルと機能種別との対応関係を、マッピング情報として記憶するマッピング情報記憶ステップと
を含むことを特徴とするストレージ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate