(57)【要約】【課題】ストレージシステムにおいて記憶装置システムにおけるターゲットデバイスリソースの有効活用を図ること。【解決手段】計算機１０はクライアントコンピュータ３０からスナップショットファイルに対するアクセス要求を受け取ると、使用すべきターゲットデバイスを特定する。計算機１０は、記憶装置システム２０に対して、特定されたターゲットデバイスＴＤに対するアクセスが要求されているスナップショットファイルを格納する論理デバイスＬＤＥＶのアタッチを要求する。計算機１０は、記憶装置システム２０からアタッチ完了の通知を受け取ると、特定されたターゲットデバイスをスナップショットファイルが格納されているディレクトリにマウントする。【選択図】図１
2006302253.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、計算機によってアクセスされると共に複数の論理的な記憶領域を有する記憶装置システムとを備えるストレージシステムであって、
前記計算機は、
前記複数の記憶領域に対応し、前記計算機によって認識される記憶領域である複数の計算機側記憶領域のうち、一の計算機側記憶領域に対するアクセスの要求を受信する受信部と、
前記計算機から前記記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、アクセスが要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、
前記ターゲットデバイスを前記アクセスが要求された計算機側記憶領域にマウントするマウント手段と、
前記アクセスが要求された計算機側記憶領域に対応する前記記憶領域に対するアクセス要求を前記記憶装置システムに対して送信する送信部とを備え、
前記記憶装置システムは、
前記複数の論理的な記憶領域を形成する１または複数の物理記憶装置と、
前記複数の記憶領域のうち一つの記憶領域が割り当てられ得る前記複数のターゲットデバイスと、
前記計算機から送信された前記アクセス要求を受信する受信部と、
前記アクセス要求に応じて、前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てる割当切換手段とを備える、
ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムにおいて、
前記計算機は更に、
前記計算機側記憶領域と前記ターゲットデバイスとを対応付ける計算機側対応付情報を有しており、
前記ターゲットデバイス特定手段は前記計算機側対応付情報を用いて前記要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定し、
前記記憶装置システムは更に、
前記記憶領域と前記ターゲットデバイスとを対応付ける記憶装置システム側対応付情報を有しており、
前記割当切換手段は前記記憶装置システム側対応付情報を用いて前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てる
ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムにおいて、
前記アクセス要求は、前記アクセスが要求されている計算機側記憶領域に対応する前記記憶領域を識別する記憶領域識別情報を含み、
前記割当切換手段は前記記憶装置システム側対応付情報および前記記憶領域識別情報を用いて前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てるストレージシステム。
【請求項４】
請求項１に記載のストレージシステムにおいて、
前記アクセスが要求されている計算機側記憶領域に対応する記憶領域は、アクセスの要求に応じて仮想的に形成される仮想記憶領域であり、
前記計算機は更に、
前記計算機側記憶領域と前記ターゲットデバイスとを対応付ける計算機側対応付情報を有しており、
前記ターゲットデバイス特定手段は前記計算機側対応付情報を用いて前記要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定し、
前記記憶装置システムは更に、
前記仮想記憶領域と前記ターゲットデバイスとを対応付ける記憶装置システム側対応付情報を有しており、
前記割当切換手段は前記記憶装置システム側対応付情報を用いて、前記特定されたターゲットデバイスに対して、前記アクセスが要求されている計算機側記憶領域に対応する記憶領域を割り当てて前記仮想記憶領域を形成する
ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムにおいて、
前記アクセス要求は、前記アクセスが要求されている計算機側記憶領域に対応する前記記憶領域を識別する記憶領域識別情報を含み、
前記割当切換手段は前記記憶装置システム側対応付情報および前記記憶領域識別情報を用いて前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てるストレージシステム。
【請求項６】
請求項１に記載のストレージシステムにおいて、
前記アクセスが要求されている計算機側記憶領域に対応する記憶領域は、主情報とその主情報に対する差分情報とによって仮想的に形成される仮想記憶領域であり、
前記計算機は更に、
前記計算機側記憶領域と前記ターゲットデバイスとを対応付ける計算機側対応付情報を有しており、
前記ターゲットデバイス特定手段は前記計算機側対応付情報を用いて前記要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定し、
前記記憶装置システムは更に、
前記仮想記憶領域と前記ターゲットデバイスとを対応付ける記憶装置システム側対応付情報を有しており、
前記割当切換手段は前記記憶装置システム側対応付情報を用いて前記特定されたターゲットデバイスに対して前記アクセスが要求されている計算機側記憶領域に対応する記憶領域を割り当てる
ストレージシステム。
【請求項７】
請求項６に記載のストレージシステムにおいて、
前記アクセス要求は、前記特定されたターゲットデバイスを識別するターゲットデバイス識別情報と、前記主情報を識別する主情報識別情報と、前記アクセスが要求されている仮想記憶領域を形成するために必要な前記差分情報を識別する差分情報識別情報を含み、
前記割当切換手段は前記記憶装置システム側対応付情報、前記主情報識別情報および差分情報識別情報を用いて前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てるむストレージシステム。
むストレージシステム。
【請求項８】
請求項１に記載のストレージシステムにおいて、
前記計算機は更に、
前記要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされているか否かを判定するマウント判定手段と、
前記要求された計算機側記憶領域に対応付けるべき前記ターゲットデバイスが前記他の計算機側記憶領域にマウントされていると判定された場合には、前記ターゲットデバイスをアンマウントするアンマウント手段とを備えるストレージシステム。
【請求項９】
請求項８に記載のストレージシステムにおいて、
前記記憶装置システムにおける割当切換手段はさらに、
前記特定されたターゲットデバイスが他の記憶領域に対して割り当てられているか否かを判定する割当判定手段と、
前記特定されたターゲットデバイスが前記他の記憶領域に対して割り当てられていると判定された場合には、前記他の記憶領域に対する前記特定されたターゲットデバイスの割当てを解除する割当解除手段と、
前記特定されたターゲットデバイスを前記要求された計算機側記憶領域に対応する記憶領域に割り当てる割当手段とを備えるストレージシステム。
【請求項１０】
請求項１に記載のストレージシステムにおいて、
前記記憶装置システムは、前記複数の記憶領域の内、一の記憶領域に格納されている主情報を任意の時期に他の記憶領域に保存するポイントインタイムコピー手段を備えており、
前記計算機は前記記憶装置システムに対して、前記任意の時期における主情報の取得を要求するポイントインタイムコピー要求手段を備えるストレージシステム。
【請求項１１】
請求項１０に記載のストレージシステムにおいて、
前記ポイントインタイムコピー手段は、前記一の記憶領域に格納されている任意の時期における主情報を他の記憶領域に複製することによって前記任意の時期における主情報の保存を実現するストレージシステム。
【請求項１２】
請求項１０に記載のストレージシステムにおいて、
前記ポイントインタイムコピー手段は、前記一の記憶領域に格納されている主情報に対する変更履歴を他の記憶領域に記録することによって前記任意の時期における主情報の保存を実現するストレージシステム。
【請求項１３】
計算機と、主情報を格納する論理的な記憶領域と任意の時期における前記主情報を提供するための情報を格納する論理的な記憶領域を有する記憶装置システムとを備えるストレージシステムであって、
前記計算機は、
前記任意の時期における主情報に対するアクセスの要求を受信する受信部と、
前記計算機からアクセスの対象として認識される複数のターゲットデバイスの中から、要求された前記任意の時期における主情報を提供するための情報を格納する前記記憶領域に対応する計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、
前記要求された任意の時期における主情報を提供するための情報を格納する記憶領域に対するアクセス要求を前記記憶装置システムに対して送信する送信部とを備え、
前記記憶装置システムは、
前記複数の論理的な記憶領域を形成する１または複数の物理記憶装置と、
前記複数の記憶領域のうち一つの記憶領域が割り当てられ得る前記複数のターゲットデバイスと、
前記計算機から送信された前記アクセス要求を受信する受信部と、
前記アクセス要求に応じて、前記特定されたターゲットデバイスに対して前記アクセスが要求されている任意の時期における主情報を提供するための情報を格納する記憶領域を割り当てる割当切換手段とを備える、
ストレージシステム。
【請求項１４】
請求項１３に記載のストレージシステムにおいて、
前記任意の時期における主情報を提供するための情報は前記任意の時期における主情報を複製した情報であり、
前記割当切換手段は、前記特定されたターゲットデバイスに対して前記任意の時期における主情報を複製した情報を格納する記憶領域を割り当てることによって、前記任意の時期における主情報を前記計算機に対して提供するストレージシステム。
【請求項１５】
請求項１４に記載のストレージシステムにおいて、
前記主情報は複数存在し、
前記主情報を格納する論理的な記憶領域はアクセスの要求を受けて形成される仮想記憶領域であり、
前記記憶装置システムは更に、前記主情報に対して割り当てられているターゲットデバイスを有し、
前記割当切換手段は更に、前記主情報に割り当てられているターゲットデバイスに対して、前記複数の主情報のうち前記アクセスが要求された主情報の実データを格納する記憶領域を割り当てることによって、前記アクセスが要求された主情報を前記計算機に対して提供するストレージシステム。
【請求項１６】
請求項１３に記載のストレージシステムにおいて、
前記任意の時期における主情報を提供するための情報は前記任意の時期の直前の主情報に対する変更履歴の情報であり、
前記割当切換手段はさらに、前記任意の時期における前記変更履歴と前記主情報とを用いて仮想的な記憶領域を形成する仮想記憶領域形成手段を備え、
前記割当切換手段は、前記特定されたターゲットデバイスに対して前記形成された仮想的な記憶領域を割り当てることによって、前記任意の時期における主情報を前記計算機に対して提供するストレージシステム。
【請求項１７】
請求項１６に記載のストレージシステムにおいて、
前記変更履歴の情報には、前記主情報の変更箇所についての変更前の情報である変更前情報と、変更前情報が生成された任意の時期を識別するための時期識別情報とが含まれており、
前記仮想記憶領域形成手段は、前記要求された任意の時期に該当する前記時期識別情報に関連付けられている前記変更前情報を用いて前記仮想記憶領域を形成するストレージシステム。
【請求項１８】
請求項１６に記載のストレージシステムにおいて、
前記主情報は複数存在し、
前記主情報を格納する論理的な記憶領域はアクセスの要求を受けて形成される仮想記憶領域であり、
前記記憶装置システムは更に、前記主情報に対して割り当てられているターゲットデバイスを有し、
前記割当切換手段は更に、前記主情報に割り当てられているターゲットデバイスに対して、前記複数の主情報のうち前記アクセスが要求された主情報の実データを格納する記憶領域を割り当てることによって、前記アクセスが要求された主情報を前記計算機に対して提供するストレージシステム。
【請求項１９】
計算機と、計算機によってアクセスされると共に複数の論理的な記憶領域を有する記憶装置システムとを備えるストレージシステムであって、
前記計算機は、
前記複数の記憶領域にそれぞれ対応し、前記計算機によって識別される複数の計算機側記憶領域を提供する計算機側記憶領域提供手段と、
前記複数の計算機側記憶領域のうち、一の計算機側記憶領域に対するアクセスの要求を受信する受信部と、
前記計算機から前記記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、
前記要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされているか否かを判定するマウント判定手段と、
前記要求された計算機側記憶領域に対応付けるべき前記ターゲットデバイスが前記他の計算機側記憶領域にマウントされていると判定された場合には、前記ターゲットデバイスをアンマウントするアンマウント手段と、
前記記憶装置システムからの割当完了通知を受けた後、前記ターゲットデバイスを前記要求された計算機側記憶領域にマウントするマウント手段と、
前記要求された計算機側記憶領域に対応する前記記憶領域に対する、特定された前記ターゲットデバイスを介したアクセス要求を前記記憶装置に対して送信する送信部とを備え、
前記記憶装置システムは、
前記複数の論理的な記憶領域を形成する１または複数の物理記憶装置と、
前記複数の記憶領域のうち一つの記憶領域が割り当てられ得る前記複数のターゲットデバイスと、
前記計算機から送信された前記アクセス要求を受信する受信部と、
前記アクセス要求に応じて、前記特定されたターゲットデバイスが他の記憶領域に対して割り当てられているか否かを判定する割当判定手段と、
前記特定されたターゲットデバイスが前記他の記憶領域に対して割り当てられていると判定された場合には、前記他の記憶領域に対する前記特定されたターゲットデバイスの割当てを解除する割当解除手段と、
前記特定されたターゲットデバイスを前記要求された計算機側記憶領域に対応する記憶領域に割り当てる割当手段と、
前記割当てが正常に完了した場合に、前記割当完了通知を前記計算機に通知する割当完了通知手段とを備えるストレージシステム。
【請求項２０】
請求項１９に記載のストレージシステムにおいて、
前記特定されたターゲットデバイスが割り当てられる前記記憶領域は、アクセスが要求された前記計算機側記憶領域に対応する実データが排他的に割り当てられることによって形成される仮想的な記憶領域であるストレージシステム。
【請求項２１】
請求項１９に記載のストレージシステムにおいて、
前記論理的な記憶領域は、主情報を格納する論理的な記憶領域と任意の時期における前記主情報を提供するための情報を格納する論理的な記憶領域とを含み、前記特定されたターゲットデバイスは、前記任意の時期における前記主情報を提供するための情報を格納する論理的な記憶領域に割り当てられるストレージシステム。
【請求項２２】
複数の論理的な記憶領域を形成する１または複数の記憶装置を備える記憶装置システムに対してアクセスする計算機であって、
前記複数の記憶領域にそれぞれ対応し、前記計算機によって識別される複数の計算機側記憶領域を提供する計算機側記憶領域提供手段と、
前記複数の計算機側記憶領域のうち、一の計算機側記憶領域に対するアクセスの要求を受信する受信部と、
前記計算機から前記記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、
前記要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされているか否かを判定するマウント判定手段と、
前記要求された計算機側記憶領域に対応付けるべき前記ターゲットデバイスが前記他の計算機側記憶領域にマウントされていると判定された場合には、前記ターゲットデバイスをアンマウントするアンマウント手段と、
前記記憶装置システムからの割当完了通知を受けた後、前記ターゲットデバイスを前記要求された計算機側記憶領域にマウントするマウント手段と、
前記要求された計算機側記憶領域に対応する前記記憶領域に対する、特定された前記ターゲットデバイスを介したアクセス要求を前記記憶装置に対して送信する送信部とを備える計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機および複数の論理記憶領域を備える記憶装置システムを備えるストレージシステムに関する。
【背景技術】
【０００２】
一般的に、ストレージシステムにおいて、計算機（ファイルシステム）は、ターゲットデバイスを介して記憶装置システムにおける所望のファイル（記憶領域）にアクセスすることができる。ターゲットデバイスは、計算機からアクセスの対象として認識可能な記憶装置システム上の論理装置であり、ソフトウェアによって仮想的に、あるいはハードウェアによって物理的に提供される。ターゲットデバイスは、記憶領域と一意に対応付けられており、計算機は、ポートＩＤ（例えば、ＷＷＮ（World Wide Name）といったポートを一意に識別するための識別子）およびＬＵＮ（Logical Unit Number）を用いてターゲットデバイスを特定することで所望の記憶領域にアクセスすることができる。
【０００３】
【特許文献１】特開２００３−２４２０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、記憶装置システムが提供可能なターゲットデバイス数が有限である場合には、記憶装置システムに格納可能なデータ容量がターゲットデバイス数によって制限されてしまう。また、記憶装置システムが提供可能なターゲットデバイス数が事実上有限でない場合であっても、ファイル数の増加と共にターゲットデバイス数が増加し、記憶装置システムにおけるターゲットデバイスリソースが消費されるという問題がある。
【０００５】
これらの問題は、所定の時点における記憶装置システムの記憶状態を再現可能とするポイントインタイムコピー、いわゆるスナップショットを実行する際に顕著となる。すなわち、記憶装置システムは、クライアントコンピュータから逐次、送られてくるデータを格納するためのシステムであり、スナップショットファイル数が増加することによってターゲットデバイスリソースが減少すると、クライアントコンピュータから書き込まれるデータを格納すべき新たな記憶領域に割り当てられるべきターゲットデバイス数が減少してしまう。また、ターゲットデバイス数が有限の場合には、記憶装置システムにはデータを格納するために十分な空き領域が存在する場合であっても、所定のタイミングで増加するスナップショットファイルを格納することによって、記憶装置システムが本来、記憶すべき情報を格納することができず、スナップショットファイルを格納するために、記憶装置システムが提供すべき機能が阻害されるおそれがある。
【０００６】
本発明は上記課題の少なくとも一部を解決するためになされたものであり、ストレージシステムにおいて記憶装置システムにおけるターゲットデバイスリソースの有効活用を図ることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明の第１の態様は、計算機と、計算機によってアクセスされると共に複数の論理的な記憶領域を有する記憶装置システムとを備えるストレージシステムを提供する。本発明の第１の態様に係るストレージシステムにおいて、
前記計算機は、
前記複数の記憶領域に対応し、前記計算機によって認識される記憶領域である複数の計算機側記憶領域のうち、一の計算機側記憶領域に対するアクセスの要求を受信する受信部と、前記計算機から前記記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、アクセスが要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、前記ターゲットデバイスを前記アクセスが要求された計算機側記憶領域にマウントするマウント手段と、前記アクセスが要求された計算機側記憶領域に対応する前記記憶領域に対するアクセス要求を前記記憶装置システムに対して送信する送信部とを備え、
前記記憶装置システムは、
前記複数の論理的な記憶領域を形成する１または複数の物理記憶装置と、前記複数の記憶領域のうち一つの記憶領域が割り当てられ得る前記複数のターゲットデバイスと、前記計算機から送信された前記アクセス要求を受信する受信部と、前記アクセス要求に応じて、前記特定されたターゲットデバイスに対して前記アクセスが要求されている記憶領域を割り当てる割当切換手段とを備える。
【０００８】
本発明の第１の態様に係るストレージシステムによれば、計算機は、記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、要求された計算機側記憶領域にマウントすべきターゲットデバイスを特定し、要求された計算機側記憶領域に対応する記憶領域に対する、特定されたターゲットデバイスを介したアクセスの要求であるアクセス要求を記憶装置に対して送信し、記憶装置システムは、計算機から送信されたアクセス要求に応じて、特定されたターゲットデバイスに対してアクセスが要求されている計算機側記憶領域に対応する記憶領域を割り当てるので、ストレージシステムにおいて記憶装置システムにおけるターゲットデバイスリソースの有効活用を図ることができる。
【０００９】
本発明の第２の態様は、計算機と、主情報を格納する論理的な記憶領域と任意の時期における前記主情報を提供するための情報を格納する論理的な記憶領域を有する記憶装置システムとを備えるストレージシステムを提供する。本発明の第２の態様に係るストレージシステムにおいて、
前記計算機は、
前記任意の時期における主情報に対するアクセスの要求を受信する受信部と、前記計算機からアクセスの対象として認識される複数のターゲットデバイスの中から、要求された前記任意の時期における主情報を提供するための情報を格納する前記記憶領域に対応する計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、前記要求された任意の時期における主情報を提供するための情報を格納する記憶領域に対するアクセス要求を前記記憶装置システムに対して送信する送信部とを備え、
前記記憶装置システムは、
前記複数の論理的な記憶領域を形成する１または複数の物理記憶装置と、前記複数の記憶領域のうち一つの記憶領域が割り当てられ得る前記複数のターゲットデバイスと、前記計算機から送信された前記アクセス要求を受信する受信部と、前記アクセス要求に応じて、前記特定されたターゲットデバイスに対して前記アクセスが要求されている任意の時期における主情報を提供するための情報を格納する記憶領域を割り当てる割当切換手段とを備える。
【００１０】
本発明の第２の態様に係るストレージシステムによれば、計算機は、アクセスの対象として認識する複数のターゲットデバイスの中から、要求された任意の時期における主情報を提供するための情報を格納する計算機側記憶領域にマウントすべきターゲットデバイスを特定し、特定されたターゲットデバイスを介した要求された任意の時期における主情報を提供するための情報を格納する記憶領域に対するアクセスの要求であるアクセス要求を記憶装置に対して送信し、記憶装置システムは、計算機から送信されたアクセス要求に応じて、特定されたターゲットデバイスに対してアクセスが要求されている任意の時期における主情報を提供するための情報を格納する記憶領域を割り当てるので、ストレージシステムにおいて記憶装置システムにおけるターゲットデバイスリソースの有効活用を図ることができる。
【００１１】
本発明の第３の態様は、複数の論理的な記憶領域を形成する１または複数の記憶装置を備える記憶装置システムに対してアクセスする計算機を提供する。本発明の第３の態様に係る計算機は、複数の論理的な記憶領域を形成する１または複数の記憶装置を備える記憶装置システムに対してアクセスする計算機であって、前記複数の記憶領域にそれぞれ対応し、前記計算機によって識別される複数の計算機側記憶領域を提供する計算機側記憶領域提供手段と、前記複数の計算機側記憶領域のうち、一の計算機側記憶領域に対するアクセスの要求を受信する受信部と、前記計算機から前記記憶装置システムにおけるアクセスの対象として認識される複数のターゲットデバイスの中から、要求された前記計算機側記憶領域にマウントすべきターゲットデバイスを特定するターゲットデバイス特定手段と、前記要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされているか否かを判定するマウント判定手段と、前記要求された計算機側記憶領域に対応付けるべき前記ターゲットデバイスが前記他の計算機側記憶領域にマウントされていると判定された場合には、前記ターゲットデバイスをアンマウントするアンマウント手段と、前記記憶装置システムからの割当完了通知を受けた後、前記ターゲットデバイスを前記要求された計算機側記憶領域にマウントするマウント手段と、前記要求された計算機側記憶領域に対応する前記記憶領域に対する、特定された前記ターゲットデバイスを介したアクセス要求を前記記憶装置に対して送信する送信部とを備える。
【００１２】
本発明の第３の態様に係る計算機によれば、複数のターゲットデバイスの中から、要求された計算機側記憶領域にマウントすべきターゲットデバイスを特定し、要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされているか否かを判定し、要求された計算機側記憶領域に対応付けるべきターゲットデバイスが他の計算機側記憶領域にマウントされている場合には、ターゲットデバイスをアンマウントし、記憶装置システムからの割当完了通知を受けた後、ターゲットデバイスを要求された計算機側記憶領域にマウントし、要求された計算機側記憶領域に対応する記憶装置システムの記憶領域に対する、特定されたターゲットデバイスを介したアクセス要求を記憶装置に対して送信するので、ストレージシステムにおいて記憶装置システムにおけるターゲットデバイスリソースの有効活用を図ることができる。
【００１３】
本発明に係るストレージシステムおよび計算機は、この他にストレージシステムの制御方法、計算機の制御方法、ストレージシステムの制御プログラム、計算機の制御プログラム、およびこれら制御プログラムを記録したコンピュータが読み取り可能な記録媒体としても実現され得る。
【発明を実施するための最良の形態】
【００１４】
以下、本発明に係るストレージシステムについて図面を参照しつつ、いくつかの実施例に基づいて説明する。
【００１５】
第１の実施例：
・システムの構成：
図１を参照して第１の実施例に係るストレージシステムの概略構成について説明する。図１は第１の実施例に係るストレージシステムの概略構成を示す説明図である。
【００１６】
第１の実施例に係るストレージシステム１００は、計算機１０と、計算機１０によってアクセスされる記憶装置システム２０とを備えている。ストレージシステム１００には、クライアントコンピュータ３０、３１、管理装置５０、業務ホスト５１がネットワーク４０を介してあるいは直接接続されている。第１の実施例に係るストレージシステム１００では、計算機１０と記憶装置システム２０とは同一の筐体に格納されており、外部の計算機からはファイルサーバとして識別される。また、計算機１０と記憶装置システム２０とが同一の筐体に格納されているので、計算機１０と記憶装置システム２０との間では共通の制御コマンドを用いてファイルの書き込み・読み出し、ファイルの生成が実行される。
【００１７】
第１の実施例における計算機１０は、ネットワーク４０を介してクライアントコンピュータ３０、３１と接続されている。ネットワーク４０は、イーサネット（登録商標）によって構築されているローカルエリアネットワーク（ＬＡＮ）であり、通信プロトコルとしてＴＣＰ／ＩＰプロトコルを用いてデータの伝送が実行される。クライアントコンピュータ３０、３１は、ストレージシステム１００を利用する外部計算機であり、ストレージシステム１００内の計算機１０を介して、記憶装置システム２０に対するファイル書き込み・読み出し、生成を要求する。
【００１８】
計算機１０は、内部に、中央処理装置（ＣＰＵ）１１、メモリ１２、ＬＡＮインターフェース１３を備えている。ＣＰＵ１１、メモリ１２、ＬＡＮインターフェース１３は相互にバスを介して接続されている。ＣＰＵ１１は、メモリ１２に格納されている各種プログラム、モジュールを実行する演算処理装置である。メモリ１２は、いわゆる内部記憶装置であり、各種モジュール等を記憶する不揮発性メモリおよび演算処理結果を一時的に格納する揮発性メモリの双方を含む。ＬＡＮインターフェース１３は、ネットワーク４０に接続されており、ＴＣＰ／ＩＰプロトコルによってクライアントコンピュータ３０、３１との間でコマンド、データの授受を実行する。
【００１９】
記憶装置システム２０は、中央処理装置（ＣＰＵ）２１、メモリ２２、ＦＣインターフェース２３、２６、複数のディスク装置２４、ディスクインターフェース２５、ＬＡＮインターフェース２７を備えている。ＣＰＵ２１は、メモリ２２に格納されている各種プログラム、モジュールを実行することによって、記憶装置システム２０における各種制御処理を実行する。メモリ２２は、いわゆる内部記憶装置であり、各種モジュール等を記憶する不揮発性メモリおよび演算処理結果を一時的に格納する揮発性メモリの双方を含む。
【００２０】
ＦＣインターフェース２３は、例えば、光ファイバケーブル、銅線に接続されており、計算機１０と記憶装置システム２０との間ではファイバチャネルプロトコルを通じてコマンド、データの授受が実行されている。
【００２１】
ディスク装置２４は、複数の磁気ハードディスクドライブによってＲＡＩＤ構成されるディスクアレイ装置であり、複数のハードディスクドライブによって１または複数の記憶領域、すなわち、論理デバイス（ＬＤＥＶ）を提供し、あるいは、１つのハードディスクドライブによって１または複数の論理デバイスを提供する。各論理デバイス（論理ユニットとも呼ぶ）に対するアクセスは、論理ユニット番号（ＬＵＮ）と論理ブロックアドレス（ＬＢＡ）を用いて実行される。
【００２２】
ＣＰＵ２１は、ディスクインターフェース２５を介してディスク装置２４に接続されている。ディスクインターフェース２５は、ＣＰＵ２１から送信された論理アドレスを論理ブロックアドレスへと変換して、ＣＰＵ２１による各論理デバイスへのアクセスを実現する。
【００２３】
ＦＣインターフェース２６には、光ファイバケーブルを介して、業務ホストコンピュータ５１が接続されており、あるいは、ＳＡＮ（Storage Area Network）４１を介して業務ホストコンピュータ５１が接続されている。業務ホストコンピュータ５１は、データベース管理システム（ＤＢＭＳ）などの業務プログラムを実行し、処理結果を記憶装置システム２０に対して書き込み、あるいは、記憶装置システム２０に格納されている情報資源を活用する。ＳＡＮではファイバチャネル、ｉＳＣＳＩといった通信プロトコルが用いられる。
【００２４】
クライアントコンピュータ３０、３１は、例えば、記憶装置システム２０に対して各種データを入力または出力するための端末装置であり、１台、あるいは、３台以上備えられてもよい。なお、クライアントコンピュータ３０、３１は、ネットワーク４０を介して業務ホスト５１と接続し、業務ホスト５１が備えるアプリケーションプログラムを介して記憶装置システム２０に接続しても良い。
【００２５】
管理装置５０は、ストレージシステム１００に対する管理、例えば、記憶装置システム２０におけるボリュームの作成、ホストへの割り当て、ゾーニング、ＬＵＮマスキングの設定を実行する管理計算機である。管理装置５０は、ストレージシステム１００のＬＡＮインターフェース２８を介して記憶装置システム２０のＬＡＮインターフェース２７に接続されており、ＴＣＰ／ＩＰプロトコルによって記憶装置システム２０との間でコマンド、データの授受を実行する。
【００２６】
図２〜図６を参照して計算機１０のメモリ１２に格納されている各種プログラム、モジュールについて説明する。図２は第１の実施例に係るストレージシステムに含まれる計算機１０のメモリ１２に格納されている各種プログラム、モジュールを概念的に示す説明図である。図３はスナップショット管理情報を格納するテーブルの一例を示す説明図である。図４はディレクトリデバイス情報を格納するテーブルの一例を示す説明図である。図５はデバイスマウント情報を格納するテーブルの一例を示す説明図である。図６はデバイスマウント情報を格納するテーブルの一例を示す説明図である。
【００２７】
本実施例では、以下、ストレージシステム１０においてスナップショットファイルが論理デバイスに格納される例を用いて説明する。メモリ１２には、計算機１０の基幹処理を実現するオペレーティングシステムＯＳ、オペレーティングシステムＯＳ上で稼働する記憶装置システム管理プログラムＦＰ、スナップショット管理情報テーブルＣＴ１、デバイスマウント情報テーブルＣＴ２、ディレクトリデバイス情報テーブルＣＴ３、使用可能デバイス情報テーブルＣＴ４が格納されている。
【００２８】
記憶装置システム管理プログラムＦＰは、記憶装置システム２０に対するアクセスを管理するためのプログラムであり、いくつかの実行モジュールを含んでいる。要求受信モジュールＭｃ１は、クライアントコンピュータ３０、３１からの計算機１０によって識別される計算機側論理デバイス（ディレクトリ）に対するアクセスの要求を受信する。要求受信モジュールＭｃ１が、所定の計算機側論理デバイスに対するアクセスの要求を受信すると、ターゲットデバイス特定モジュールＭｃ２は、アクセスが要求されている計算機側論理デバイスにマウントすべきターゲットデバイスを特定する。ここで、ターゲットデバイスとは、計算機１０が記憶装置システム２０にアクセスする際に、アクセス対象のデバイスとして認識可能な論理的なデバイスであり、ポートＩＤおよびＬＵＮによって定義される。すなわち、計算機１０は、記憶装置システム２０におけるポート的な役割を果たすターゲットデバイスを介して、計算機側論理デバイスに対応する所望の論理デバイスにアクセスすることができる。一般的に、ターゲットデバイスと計算機側論理デバイスとは一意の関係にありパスが固定されているが、本実施例では、１つのターゲットデバイスに対して１または複数の計算機側論理デバイスが動的に割当てられるので論理デバイスに対するパスが変動する。なお、ターゲットデバイスは、記憶装置システム２０に備えられている複数の物理的なポートであっても良く、あるいは、記憶装置システム２０が備えるポート提供モジュールによって論理的に提供される仮想的なポートであっても良い。
【００２９】
マウント判定モジュールＭｃ３は、ターゲットデバイス特定モジュールＭｃ２によって特定されたターゲットデバイスが、既に他の計算機論理デバイスにマウントされているか否かを判定する。すなわち、上述のように、本実施例では、ターゲットデバイスに対して複数の計算機側論理デバイスが割り当てられ得るので、かかる判定が必要となる。マウントモジュールＭｃ４は、アクセスの要求がなされている計算機側要求論理デバイスに対して特定されたターゲットデバイスをマウントする。この結果、計算機１０はターゲットデバイスを介して計算機側要求論理デバイスに対応する記憶装置システム２０の論理デバイスにアクセス可能となる。なお、本実施例では、他の論理デバイスへの誤ったアクセスを防止するために、記憶装置システム２０側から特定されたターゲットデバイスに対する要求論理デバイスのアタッチが完了した旨の通知を受けた後に、マウントモジュールＭｃ４が計算機側要求論理デバイスに対して特定されたターゲットデバイスをマウントする。
【００３０】
アンマウントモジュールＭｃ５は、計算機側論理デバイスに対するターゲットデバイスのマウントを解除する。この結果、計算機１０はターゲットデバイスを介した計算機側要求論理デバイスに対応する記憶装置システム２０の論理デバイスに対するアクセスが不可能となる。なお、実体としてのターゲットデバイスおよび論理デバイスを備えるのは記憶装置システム２０であり、計算機１０においては、オペレーティングシステム（ファイルシステム）上においてソフトウェア的に実現される計算機側論理デバイス（ディレクトリ）に対する計算機側のターゲットデバイスのマウント、アンマウント処理が実行される。記憶装置システム２０側では、後述するように、計算機１０における計算機側要求論理デバイスに対する特定されたターゲットデバイスのマウント・アンマウントに対応する、ターゲットデバイスと論理デバイスとのアタッチ（割当て）またはデタッチ（割当て解除）が実行される。以下の説明では、計算機１０のオペレーティングシステム上にて認識されるターゲットデバイス（ターゲットデバイスの情報）をターゲットデバイスＤｅｖとし、記憶装置システム２０における実際のターゲットデバイスをターゲットデバイスＴＤとする。また、計算側記憶領域をディレクトリと呼び、記憶装置システム２０の記憶領域を論理デバイスＬＤＥＶと呼ぶ。さらに、論理デバイスＬＤＥＶは論理ユニットＬＵとも呼ばれる。
【００３１】
アクセス要求送信モジュールＭｃ６は、計算機側要求論理デバイスに対応する記憶装置システム２０の論理デバイスに対するアクセスを要求するコマンドを記憶装置システム２０に送信する。コマンドには、ターゲットデバイスにアタッチすべき論理デバイスを識別するための情報が含まれる。
【００３２】
ポイントインタイムコピー要求モジュールＭｃ７は、記憶装置システム２０に対して、ポイントインタイムコピー、いわゆるスナップショットファイルの取得を要求するモジュールである。スナップショットは、所定の時点における所定のボリューム（ディレクトリ）のコピー、あるいは、元ボリュームに対する差分データを取得して、所定の時点におけるボリュームを再現するための技術である。一般的に、前者は所定の時点における所定のボリュームを他のボリュームにコピーすることによって実行されるミラーリングタイプのスナップショットであり、後者はオリジナルのボリュームに対する変更部分について変更前の情報を別のボリュームに待避させることによって実行されるコピーオンライトタイプのスナップショットである。いずれの場合にも、クライアントコンピュータ３０、３１からは、所定の時点（世代）における所定のボリュームを呼び出すことができる。
【００３３】
ディレクトリ提供モジュールＭｃ８は、記憶装置システム２０が備える記憶領域（論理デバイス）に対応する計算機側記憶領域（ディレクトリ）を提供する。すなわち、記憶装置システム２０側に存在する論理デバイスを、ディレクトリを介して計算機１０側において識別、操作可能にする。このモジュール機能は、例えば、ファイルシステムによって提供される。
【００３４】
図３を参照してスナップショット管理情報テーブルＣＴ１について説明する。スナップショットシステムは、スナップショットされる主ボリューム（正ボリューム）とスナップショットを格納するボリューム（副ボリューム）とのペアによって構成されている。したがって、スナップショット管理情報テーブルＣＴ１には、スナップショットの正側の情報、副側の情報が含まれている。正側の情報には正側のディレクトリ情報が格納され、副側の情報には、スナップショットの世代を示すＩＤ、格納されているディレクトリの情報、スナップショットが取得されたか否か、すなわちスナップショットファイルが格納されているか否かを示す情報が含まれている。図３の例では、正側ディレクトリ（/mnt/home）と各副側ディレクトリ（/mnt/ss/home_sN）とがペアを構成しており、ＩＤ＝１〜３の副ディレクトリにはスナップショットファイルが格納されている。
【００３５】
図４を参照してディレクトリデバイス情報テーブルＣＴ２について説明する。ディレクトリデバイス情報テーブルＣＴ２には、ターゲットデバイスＤｅｖをマウントすべきディレクトリの情報、ディレクトリがマウントされているターゲットデバイスＤｅｖの情報、ディレクトリに対応する論理デバイスＬＤＥＶの情報が含まれている。なお、後述するように、仮想ボリュームが用いられるコピーオンライトタイプのスナップショットが適用される場合には、複数の副ディレクトリに対して同一の論理デバイスＬＤＥＶが割り当てられる。この場合、論理デバイスＬＤＥＶがマウントされているか否かはマウントデバイス情報がＮＵＬＬ（アンマウントまたは未マウント）であるか否かによって判断することができる。図４の例では、ターゲットデバイスＤｅｖ１が副側ディレクトリ（/mnt/ss/home_s1）にマウントされており、副側ディレクトリ（/mnt/ss/home_s1）に対応する論理デバイスＬＤＥＶはＬＤＥＶ１である。また、副側ディレクトリ（/mnt/ss/home_s2）にはターゲットデバイスＤｅｖがマウントされておらず、副側ディレクトリ（/mnt/ss/home_s2）に対応する論理デバイスはＬＤＥＶ２である。
【００３６】
図５を参照してデバイスマウント情報テーブルＣＴ３について説明する。デバイスマウント情報テーブルＣＴ３は、ターゲットデバイスＤｅｖに現在、マウントされているディレクトリを示す。図５の例では、ターゲットデバイスＤｅｖ１に対して副ディレクトリ（/mnt/ss/home_s1）がマウントされている。
【００３７】
図６を参照して使用可能デバイス情報テーブルＣＴ４について説明する。使用可能デバイス情報テーブルＣＴ４は、使用可能なターゲットデバイスＤｅｖを示すテーブルである。図６の例では、ターゲットデバイスＤｅｖ０には正ディレクトリ（/mnt/home）がマウントされており、ターゲットデバイスＤｅｖ１には副ディレクトリ（/mnt/ss/home_s1）がマウントされている。
【００３８】
図７〜図１２を参照して記憶装置システム２０のメモリ２２に格納されている各種プログラム、モジュールについて説明する。図７は第１の実施例に係るストレージシステムに含まれる記憶装置システム２０のメモリ２２に格納されている各種プログラム、モジュールを概念的に示す説明図である。図８はデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。図９は仮想ボリューム使用時におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。図１０はスナップショット管理情報を格納するテーブルの一例を示す説明図である。図１１はスナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。図１２はスナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。
【００３９】
メモリ２２には、計算機１０から受信したコマンドを解釈して要求されている処理を実行するためのコマンド処理プログラムＣＰ、デバイスアタッチ情報テーブルＳＴ１、仮想ボリューム使用時デバイスアタッチ情報テーブルＳＴ２、スナップショット管理情報ＳＴ３、スナップショット詳細管理情報ＳＴ３１、ＳＴ３２、アドレスマッピング情報テーブルＳＴ４、ファイル管理情報テーブルＳＴ５が格納されている。
【００４０】
コマンド処理プログラムＣＰは、記憶装置システム２０におけるスナップショットの取得、要求された論理デバイス（スナップショットファイル）へのアクセス（リード／ライト）の実行を実現するためのプログラムであり、いくつかの実行モジュールを含んでいる。アクセス要求受信モジュールＭｓ１は、計算機１０からのアクセス要求を受信する。アクセス要求受信モジュールＭｓ１が、アクセス要求を受信すると、割当切換モジュールＭｓ３は、アクセスが要求されている論理デバイスＬＤＥＶを特定されたターゲットデバイスＴＤに割当てる。割当切換モジュールＭｓ３は、論理デバイスＬＤＥＶを特定されたターゲットデバイスＴＤに適切に割当てるためにさらに３つのサブモジュール、割当判定モジュールＭｓ４、割当解除モジュールＭｓ５および割当モジュールＭｓ６を有している。
【００４１】
割当判定モジュールＭｓ４は、論理デバイスＬＤＥＶの割当てが要求されている、特定されたターゲットデバイスＴＤに対して、既に他の論理デバイスＬＤＥＶが割当て（アタッチ）されているか否かを判定する。すなわち、上述のように、本実施例では、ターゲットデバイスＴＤに対して複数の論理デバイスＬＤＥＶが割り当てられ得るので、かかる判定が必要となる。
【００４２】
割当解除モジュールＭｓ５は、特定されたターゲットデバイスＴＤに対する論理デバイスＬＤＥＶの割当てを解除する。この結果、特定されたターゲットデバイスＴＤに対してアクセスが要求されている論理デバイスＬＤＥＶを割り当てることができる。割当モジュールＭｓ６は、特定されたターゲットデバイスＴＤに対してスアクセスの要求がなされている要求論理デバイスＬＤＥＶを割り当てる。ターゲットデバイスＴＤに対する論理デバイスＬＤＥＶの割当て、割当解除は、論理デバイスＬＤＥＶに対するパスを切り換えることによって実現される。
【００４３】
ポイントインタイムコピーモジュールＭｓ３７は、記憶装置システム２０において、いわゆるスナップショットファイルの取得を実行するモジュールである。スナップショットの取得に当たっては、正ボリュームに対する副ボリュームの作成、正ボリュームデータの副ボリュームへのコピーあるいは正ボリュームにおける更新対象データの副ボリュームへの待避、スナップショット管理情報の更新が実行される。
【００４４】
図８を参照してデバイスアタッチ情報テーブルＳＴ１について説明する。デバイスアタッチ情報テーブルＳＴ１には、ターゲットデバイスＴＤに割当て（アタッチ）されている論理デバイスＬＤＥＶが記述されている。図８の例では、ターゲットデバイスＴＤ０には論理デバイスＬＤＥＶ０が、ターゲットデバイスＴＤ１には論理デバイスＬＤＥＶ１がアタッチされており、ターゲットデバイスＴＤ２には論理デバイスＬＤＥＶはアタッチされていない。
【００４５】
図９を参照して仮想ボリューム使用時におけるデバイスアタッチ情報テーブルＳＴ２について説明する。仮想ボリュームは、コピーオンライトタイプのスナップショットが適用される際に用いられる。すなわち、コピーオンライトタイプのスナップショットでは、正ボリュームにおいて更新（修正）の対象となるデータの更新前のデータ（差分データ）が更新時期の情報と共に複数の論理デバイスによって形成されているストレージプールに格納される。所定の時点のスナップショットファイルに対するアクセスが要求されると、計算機１０は、所定の時点以降の差分データ群を用いて仮想ボリュームを形成し、対応する論理デバイスＬＤＥＶへアタッチする。計算機１０は、現在の正ボリュームに格納されているデータと差分データ群とを用いて、所定の時点のスナップショットファイルを作成する。
【００４６】
仮想ボリューム使用時におけるデバイスアタッチ情報テーブルＳＴ２は、仮想ボリューム（スナップショットファイル）をアタッチするための論理デバイス、スナップショットファイルの正ボリュームがアタッチされている論理デバイスＬＤＥＶの情報、スナップショットＩＤを格納している。図９の例では、スナップショットは取得されておらず、後にスナップショットが取得され、論理デバイスＬＤＥＶ１をスナップショットＩＤ１〜３で共有する場合には、ＬＤＥＶ１のスナップショットＩＤの欄には１〜３のいずれかの値が格納される。
【００４７】
図１０を参照してスナップショット管理情報テーブルＳＴ３について説明する。記憶装置システム２０が備えるスナップショット管理情報テーブルＳＴ３には、各論理デバイスＬＤＥＶがいずれかの他の論理デバイスＬＤＥＶとペア状態にあるか否かを示す状態、ペア状態にある論理デバイスＬＤＥＶが正、副論理デバイスのいずれであるかを示すペア属性、対象となるペアの論理デバイスＬＤＥＶの情報を差し示すポインタを格納する対象ペア情報が含まれている。図１０の例では、論理デバイスＬＤＥＶ０とＬＤＥＶ１とがペア状態にあり、論理デバイスＬＤＥＶ０はコピー元の正論理デバイスであり、論理デバイスＬＤＥＶ１はコピー先（スナップショットファイル格納先）の副論理デバイスである。論理デバイスＬＤＥＶ２にはスナップショットファイルは格納されておらず、状態はsimplex（ペアを作っていない状態）、ペア属性はＮＵＬＬとされている。
【００４８】
図１１および図１２を参照してスナップショット管理情報テーブルＳＴ３の対象ペア情報に含まれるポインタによって指し示される正側のスナップショット詳細管理情報テーブルＳＴ３１および副側のスナップショット詳細管理情報テーブルＳＴ３２について説明する。正側のスナップショット詳細管理情報テーブルＳＴ３１には、正側論理デバイスとペアの関係にある副側論理デバイスのスナップショットＩＤ、論理デバイス番号、スナップショットを取得済みであるか否かを示す取得状況が含まれる。図１１の例では、スナップショットＩＤ＝０の論理デバイスＬＤＥＶ１がペアの論理デバイスＬＤＥＶとして登録されている。副側のスナップショット詳細管理情報テーブルＳＴ３２には、副側論理デバイスとペアの関係にある正側論理デバイスの情報が含まれる。図１２の例では、副側論理デバイスＬＤＥＶ１には正側論理デバイスＬＤＥＶ０がペアの論理デバイスＬＤＥＶとして登録されている。
【００４９】
なお、仮想ボリューム使用時には、スナップショット管理情報テーブルＳＴ３の論理デバイス番号、正側のスナップショット管理情報テーブルＳＴ３１の正側論理デバイス番号および副側論理デバイス番号、並びに副側のスナップショット管理情報テーブルＳＴ３２の正側論理デバイス番号および副側論理デバイス番号はそれぞれ仮想ボリューム番号を示す。
【００５０】
アドレスマッピング情報テーブルＳＴ４は、アクセスの対象となるボリュームが仮想ボリュームである場合に、仮想ボリュームのアドレスと仮想ボリュームを構成するプール領域の実アドレスとをリンクするための情報であるアドレスマッピング情報を格納する。すなわち、アドレスマッピング情報は、ボリューム番号によって特定することができないプール領域における各データの実格納位置を仮想ボリュームにおける各データのアドレスによって管理するために用いられる情報である。なお、アクセス対象となるボリュームが実ボリュームである場合には、ボリューム番号とによってデータの格納位置を特定することができる。
【００５１】
ファイル管理情報テーブルＳＴ５は、ファイルが格納されているディレクトリを管理するためのファイル管理情報を格納している。なお、詳細については、後述する。
【００５２】
図１３および図１４を参照してミラーリングタイプのスナップショットファイルに対するアクセス時に実行されるアクセス処理について説明する。図１３は計算機１０のファイルシステムによって認識されるスナップショットファイル情報ＳＳおよびターゲットデバイス情報Ｄｅｖ、記憶装置システム２０におけるターゲットデバイスＴＤと論理デバイスＬＤＥＶ（スナップショットファイルの実情報）との対応関係を模式的に示す説明図である。図１４はミラーリングタイプのスナップショットファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。
【００５３】
図１３では、クライアントコンピュータ３０（３１）によって認識される正ボリュームファイルはファイルＰ、スナップショットファイルはスナップショットファイルＳ〜Ｓｎで表され、実際の正ボリュームファイルはファイルＰｒ、実際のスナップショットファイルはスナップショットファイルＳｒ１〜Ｓｒｎで表されている。正ボリュームファイルＰおよびスナップショットファイルＳ１〜Ｓｎは、ディレクトリＳＳによって特定され、実スナップショットファイルＳｒ１〜Ｓｒｎは、論理デバイスＬＤＥＶによって特定される。図１３の例では、正ボリュームファイルＰにはターゲットデバイスＤｅｖ０がマウントされている。ターゲットデバイスＤｅｖ１には、正ボリュームファイルの副ボリュームファイルであるスナップショットファイルＳ１〜Ｓ３がそれぞれ排他的にマウントされ得る。図１３ではスナップショットファイルＳ１に対してアクセス要求がなされているので、ターゲットデバイスＤｅｖ１にはスナップショットファイルＳ１のディレクトリがマウントされる。計算機１０が認識する各ターゲットデバイスＤｅｖは、それぞれ記憶装置システム２０におけるターゲットデバイスＴＤと一意に対応付けられている。記憶装置システム２０には複数のターゲットデバイスＴＤが備えられており、１つのターゲットデバイスＴＤに対して複数の論理デバイスＬＤＥＶ（実スナップショットファイル）がアタッチされる。例えば、ターゲットデバイスＴＤ０には、正ボリュームファイルＰｒがアタッチされ、ターゲットデバイスＴＤ１には、複数の実スナップショットファイルＳｒ１〜Ｓｒ３が排他的にアタッチされる。図１３の例では、ターゲットデバイスＴＤ１は実スナップショットファイルＳｒ１を格納する論理デバイスＬＤＥＶ１にアタッチされている。すなわち、計算機１０におけるディレクトリＳＳに対するターゲットデバイスＤｅｖのマウントに対応するように、記憶装置システム２０においてターゲットデバイスＴＤに対して論理デバイスＬＤＥＶがアタッチされる。
【００５４】
クライアントコンピュータ３０、３１から正ボリュームファイルＰに対する所定の世代のスナップショットファイルＳｎに対するアクセスが要求されると、図１４に示すフローチャートが実行される。ＣＰＵ１１は、メモリ１２に格納されているスナップショット管理情報テーブルＣＴ１を用いて、要求されたスナップショットファイルＳｎが格納されているディレクトリＳＳを検索する（ステップＳＣ１００）。具体的には、クライアントコンピュータ３０、３１から送信されてきたスナップショットファイルのＩＤ（識別子）を用いてアクセスが要求されているディレクトリＳＳが検索される。例えば、クライアントコンピュータ３０から/mnt/homeについてのＩＤ＝１のスナップショットへのアクセス要求を受信した場合には、ディレクトリ（/mnt/ss/home_s1）に対するアクセスが要求されていることとなる。
【００５５】
ＣＰＵ１１は検索されたディレクトリにアクセスするために用いるターゲットデバイスＤｅｖを使用可能デバイス情報テーブルＣＴ４を用いて検索する（ステップＳＣ１１０）。すなわち、使用可能なターゲットデバイスＤｅｖを検索（特定）する。図６に示す使用可能デバイス情報テーブルＣＴ４の例では、ディレクトリ（/mnt/ss/home_s1）に対して、ターゲットデバイスＤｅｖ１が使用可能である。以下、具体例においては、要求ディレクトリを（/mnt/ss/home_s1）、検索されたターゲットデバイスＤｅｖをＤｅｖ１とする。
【００５６】
ＣＰＵ１１はディレクトリデバイス情報テーブルＣＴ２を用いて検索されたターゲットデバイスＤｅｖが要求されたディレクトリにマウントされているか否かを判定する（ステップＳＣ１２０）。具体的には、図４に示す例の場合、ディレクトリデバイス情報テーブルＣＴ２において、要求ディレクトリ（/mnt/ss/home_s1）に対するマウントデバイス情報がＤｅｖ１であるか否かを判定する。ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが要求ディレクトリにマウントされていると判定した場合には（ステップＳＣ１２０：Ｙｅｓ）、既に、ターゲットデバイスＤｅｖが要求ディレクトリにマウントされており、記憶装置システム２０においても対応するターゲットデバイスＴＤに対して要求されたスナップショットファイルＳｒがアタッチ済みであるから本処理ルーチンを終了する。すなわち、クライアントコンピュータ３０、３１は、スナップショットファイルＳ１にアクセス可能な状態にある。
【００５７】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが要求ディレクトリにマウントされていないと判定した場合には（ステップＳＣ１２０：Ｎｏ）、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされているか否かを判定する（ステップＳＣ１３０）。具体的には、ＣＰＵ１１は、ディレクトリデバイス情報テーブルＣＴ２において、要求ディレクトリに対するマウントデバイス情報がＮＵＬＬであると共に、他のディレクトリに対するマウントデバイス情報に検索されたターゲットデバイスＤｅｖが登録されているか否かを判定する。例えば、要求ディレクトリが（/mnt/ss/home_s2）であり、特定されたターゲットデバイスがＤｅｖ１の場合、図４の例では、ターゲットデバイスＤｅｖ１はディレクトリ（/mnt/ss/home_s1）にマウントされており、要求ディレクトリ（/mnt/ss/home_s2）のマウントデバイス情報はＮＵＬＬであるから、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされている。
【００５８】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされていると判定した場合には（ステップＳＣ１３０：Ｙｅｓ）、検索されたターゲットデバイス情報Ｄｅｖを他のディレクトリからアンマウントする（ステップＳＣ１４０）。具体的には、ＣＰＵ１１は、ディレクトリデバイス情報ＣＴ２に記憶されている検索されたターゲットデバイスＤｅｖ１がマウントされている他のディレクトリ（/mnt/ss/home_s1）のマウントデバイス情報、およびデバイスマウント情報テーブルＣＴ３におけるターゲットデバイスＤｅｖ１のディレクトリ情報を無効化、すなわち、ＮＵＬＬ化する。
【００５９】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされていないと判定した場合には（ステップＳＣ１３０：Ｎｏ）、ステップＳＣ１４０をスキップして、ステップＳＣ１５０に移行する。
【００６０】
ステップＳＣ１５０において、ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖにアタッチすべき論理デバイスＬＤＥＶを特定するための特定情報を含むアクセス要求を記憶装置システム２０に対して送信する。特定情報には、ディレクトリデバイス情報テーブルＣＴ２において検索された、検索されたターゲットデバイスＤｅｖに対応する論理デバイスの情報が用いられる。具体例では、論理デバイスＬＤＥＶ１を特定する情報が送られる。
【００６１】
記憶装置システム２０のＣＰＵ２１は、計算機１０からアクセス要求を受け取ると、検索されたターゲットデバイスＤｅｖに一意に対応するターゲットデバイスＴＤにアタッチされている他の論理デバイスＬＤＥＶをデタッチする（ＳＳ１００）。具体的には、ＣＰＵ２１は、デバイスアタッチ情報テーブルＳＴ１における、検索されたターゲットデバイスＴＤのアタッチ中ＬＤＥＶをＮＵＬＬ化する。
【００６２】
ＣＰＵ２１は、論理デバイスＬＤＥＶがデタッチされたターゲットデバイスＴＤに対して、計算機１０から受信した特定情報によって特定される論理デバイスをアタッチする（ステップＳＳ１１０）。具体的には、ＣＰＵ２１は、デバイスアタッチ情報テーブルＳＴ１における、対象となるターゲットデバイスＴＤのアタッチ中ＬＤＥＶにＬＤＥＶ１を登録する。
【００６３】
ＣＰＵ２１は、計算機１０に対してデタッチ／アタッチ完了報告を送信して（ＳＳ１２０）本処理ルーチンを終了する。
【００６４】
計算機１０のＣＰＵ１１は、記憶装置システム２０からデタッチ／アタッチ完了報告を受信すると、検索されたターゲットデバイス情報Ｄｅｖに要求されたディレクトリをマウントして（ステップＳＣ１６０）、本処理ルーチンを終了する。具体的には、ＣＰＵ１１は、ディレクトリデバイス情報テーブルＣＴ２におけるディレクトリ情報のマウントデバイス情報に検索されたターゲットデバイス情報Ｄｅｖを登録し、デバイスマウント情報テーブルＣＴ３における検索されたターゲットデバイス情報Ｄｅｖのディレクトリ情報に要求ディレクトリを登録する。例えば、要求ディレクトリが（/mnt/ss/home_s2）の場合には、ディレクトリデバイス情報テーブルＣＴ２における要求ディレクトリ（/mnt/ss/home_s2）のマウントデバイス情報に検索されたターゲットデバイス情報Ｄｅｖ１を登録し、デバイスディレクトリ情報テーブルＣＴ３における検索されたターゲットデバイス情報Ｄｅｖのディレクトリ情報に要求ディレクトリ（/mnt/ss/home_s2）を登録する。
【００６５】
次に図１５を参照してミラーリングタイプのスナップショットファイルを取得するための処理について説明する。図１５はミラーリングタイプのスナップショットファイルを取得する際に実行される処理ルーチンを示すフローチャートである。なお、図１４を用いて説明した、スナップショットファイルに対するアクセス処理におけるステップと同様の処理については簡単な説明にとどめる。
【００６６】
クライアントコンピュータ３０、３１からスナップショットファイルの取得が要求される、計算機１０のＣＰＵ１１は要求されたスナップショットを格納すべき要求ディレクトリを検索して（ステップＳＣ２００）、要求ディレクトリに対応付けられているターゲットデバイス情報Ｄｅｖを検索する（ステップＳＣ２１０）。具体的には、ＣＰＵ１１はスナップショット管理情報テーブルＣＴ１を用いて、取得状況が未取得を示すディレクトリを検索し、例えば、スナップショットＩＤの若い順に要求ディレクトリを特定する。ＣＰＵ１１は、要求ディレクトリに対応するターゲットデバイスＤｅｖを使用可能デバイス情報テーブルＣＴ４から検索し、ディレクトリデバイス情報テーブルＣＴ２を用いて対応する論理デバイスＬＤＥＶを特定する。
【００６７】
ＣＰＵ１１は、特定した論理デバイスの情報と共にスナップショットファイルの取得要求を記憶装置システム２０に対して送信する（ステップＳＣ２２０）。
【００６８】
記憶装置システム２０のＣＰＵ２１は、検索されたターゲットデバイスＤｅｖに一意に対応するターゲットデバイスＴＤを他の論理デバイスＬＤＥＶからデタッチし（ステップＳＳ２００）、他の論理デバイスＬＤＥＶがデタッチされたターゲットデバイスＴＤに対して特定された論理デバイスＬＤＥＶをアタッチする（ステップＳＳ２１０）。具体的な手順は、図１４のＳＳ１００およびＳＳ１１０の説明において説明済みである。
【００６９】
ＣＰＵ２１は、特定された論理デバイスＬＤＥＶに正ボリュームの副ボリュームを作成し、スナップショットファイルを取得する（ステップＳＳ２２０）。具体的には、特定された論理デバイスＬＤＥＶに対して正ボリュームのコピーが生成される。
【００７０】
ＣＰＵ２１は、スナップショット管理情報テーブルＳＴ３を更新して（ステップＳＳ２３０）、計算機１０に対して正常完了報告を送って（ステップＳＳ２４０）、本処理ルーチンを終了する。スナップショット管理情報テーブルＳＴ３の更新手順について具体的に説明する。ＣＰＵ２１は、スナップショット管理情報テーブルＳＴ３において、新たにスナップショットファイルが格納された論理デバイスＬＤＥＶの状態を「Ｐａｉｒ」に、ペア属性を「副」に更新する。ＣＰＵ２１は正側スナップショット管理情報テーブルＳＴ３１において、新たなスナップショットＩＤの論理デバイス番号に新たにスナップショットファイルが格納された論理デバイスＬＤＥＶの番号を登録し、新たなスナップショットＩＤの取得状況を取得済みに更新する。ＣＰＵ２１は副側スナップショット管理情報テーブルＳＴ３２において、新たにスナップショットファイルが格納された論理デバイスＬＤＥＶの正側論理デバイスに論理デバイスＬＤＥＶ０を登録する。
【００７１】
計算機１０は、記憶装置システム２０から正常完了報告を受け取ると、本処理ルーチンを終了する。
【００７２】
以上説明した第１の実施例に係るストレージシステム１００によれば、計算機１０において、クライアントコンピュータ３０、３１からアクセス要求が入力された場合に、要求されたスナップショットファイルが格納されているディレクトリＳＳに対してターゲットデバイスＤｅｖ（ＴＤ）をマウントするので、ターゲットデバイスＤｅｖのリソースを有効に活用することができる。すなわち、第１の実施例に係るストレージシステム１００によれば、１つのターゲットデバイスＤｅｖに対して複数のディレクトリＳＳをマウントすることができるので、従来と異なり各ディレクトリ毎にターゲットデバイスのリソースを維持する必要がない。この結果、ストレージシステム１００全体においてスナップショットファイルに対して割り当てるべきターゲットデバイスＤｅｖのリソース量を低減することが可能となる。したがって、所定のタイミングで数多くのスナップショットファイルが生成されるスナップショットシステムにおいて顕著なターゲットデバイスＤｅｖ（ＴＤ）のリソース不足を低減または解消することができる。
【００７３】
さらに、クライアントコンピュータ３０、３１に対しては、計算機１０によってスナップショット処理が実行されているように見せかけることが可能であると共に、実際のスナップショット処理の実行は、記憶装置システム２０側において実行されるため、計算機１０によって提供される他のファイル処理機能を有効に活用することができる。
【００７４】
なお、計算機１０は、新たなスナップショットファイルを格納すべきディレクトリを予め特定することなく、記憶装置システム２０に対してスナップショットファイルの取得を要求しても良い。かかる場合には、スナップショットファイルの取得後に、記憶装置システム２０からスナップショットファイルが作成された論理デバイスＬＤＥＶの情報を受け取り、各種テーブルを更新すれば良い。あるいは、計算機１０および記憶装置システム２０において、新たなスナップショットファイルを作成する場合には、空いている若い論理デバイスＬＤＥＶおよびディレクトリに順次、スナップショットファイルを格納する規則を定めておけば、計算機１０が実行するステップＳＣ２００およびステップＳＣ２１０は実行されなくても良い。
【００７５】
第２の実施例：
図１６〜図１８を参照してコピーオンライトタイプタイプのスナップショットファイル処理について説明する。図１６は計算機１０のファイルシステムによって認識されるスナップショットファイル情報ＳＳおよびターゲットデバイス情報Ｄｅｖ、記憶装置システム２０におけるターゲットデバイスＴＤと論理デバイスＬＤＥＶ、論理デバイスＬＤＥＶとストレージプールに格納されているスナップショットデータ群との対応関係を模式的に示す説明図である。図１７はコピーオンライトタイプのスナップショットファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。図１８はコピーオンライトタイプのスナップショットファイルを取得する際に実行される処理ルーチンを示すフローチャートである。なお、スナップショットタイプがコピーオンライトタイプである点を除いて、図１３〜図１５を用いて説明したミラーリングタイプのスナップショット処理と同様であるから、同様の点については詳細な説明を省略し、相違点を中心に説明する。
【００７６】
図１６では、クライアントコンピュータ３０（３１）によって認識される、計算機１０における正ボリュームファイルはファイルＰ、スナップショットファイルはスナップショットファイルＳ〜Ｓｎで表される。記憶装置システム２０における、実際の正ボリュームファイルはファイルＰｒ、所定の時点における更新データ（差分データ）はＳｄ１〜Ｓｄ３、スナップショットファイルに対するアクセス時に論理デバイスＬＤＥＶ上に形成される仮想ボリュームはＶＳ１〜ＶＳｎで表されている。正ボリュームファイルＰおよびスナップショットファイルＳ１〜Ｓｎは、ディレクトリＳＳによって特定され、実スナップショットファイルＳｄ１〜Ｓｄｎは、論理デバイスＬＤＥＶによって特定される。図１６の例では、正ボリュームファイルＰにはターゲットデバイスＤｅｖ０がマウントされている。ターゲットデバイスＤｅｖ１には、正ボリュームファイルの副ボリュームファイルであるスナップショットファイルＳ１〜Ｓ３がそれぞれ排他的にマウントされ得る。図１６の例では、スナップショットファイルＳ１に対してアクセス要求がなされているので、ターゲットデバイスＤｅｖ１にはスナップショットファイルＳ１のディレクトリのみがマウントされる。計算機１０が認識する各ターゲットデバイスＤｅｖは、それぞれ記憶装置システム２０におけるターゲットデバイスＴＤと一意に対応付けられている。計算機１０は、正ボリュームのファイルＰと差分データとを用いて、所定の時点におけるスナップショットファイルを生成し、クライアントコンピュータ３０、３１に対して提供する。
【００７７】
記憶装置システム２０には複数のターゲットデバイスＴＤが備えられており、１つのターゲットデバイスＴＤに対して一意の論理デバイスＬＤＥＶ（仮想ボリュームＶＳ）がアタッチされている。所定の時点における更新データ（差分データ）Ｓｄ１〜Ｓｄ３は、論理デバイスＬＤＥＶによって形成されているストレージプールＳｐに格納されている。所定の世代のスナップショットファイルに対するアクセス要求を受信すると、記憶装置システム２０は、例えば、図１６の例では、差分データＳｒ１を論理デバイスＬＤＥＶ１にアタッチして、論理デバイスＬＤＥＶ１上に仮想ボリュームＶＳ１を形成する。論理デバイスＬＤＥＶには、複数の差分データＳｒ１〜Ｓｒ３が排他的にアタッチされる。すなわち、計算機１０におけるディレクトリＳＳに対するターゲットデバイスＤｅｖのマウントに対応するように、記憶装置システム２０において論理デバイスＬＤＥＶに対して差分データＳｒがアタッチされる。
【００７８】
クライアントコンピュータ３０、３１から正ボリュームファイルＰに対する所定の世代のスナップショットファイルＳｎに対するアクセスが要求されると、図１７に示すフローチャートが実行される。ＣＰＵ１１は、メモリ１２に格納されているスナップショット管理情報テーブルＣＴ１を用いて、要求されたスナップショットファイルＳｎが格納されているディレクトリＳＳを検索する（ステップＳＣ３００）。
【００７９】
ＣＰＵ１１は検索されたディレクトリにアクセスするために用いるターゲットデバイスＤｅｖを使用可能デバイス情報テーブルＣＴ４を用いて検索する（ステップＳＣ３１０）。ＣＰＵ１１はディレクトリデバイス情報テーブルＣＴ２を用いて検索されたターゲットデバイスＤｅｖが要求されたディレクトリにマウントされているか否かを判定する（ステップＳＣ３２０）。なお、仮想ボリュームが用いられる場合、図４に示すディレクトリデバイス情報テーブルＣＴ２において、複数のディレクトリＳＳに対して同一の論理デバイスＬＤＥＶが割り当てられる。
【００８０】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが要求ディレクトリにマウントされていると判定した場合には（ステップＳＣ３２０：Ｙｅｓ）、本処理ルーチンを終了する。クライアントコンピュータ３０、３１は、スナップショットファイルＳ１にアクセス可能な状態にある。
【００８１】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが要求ディレクトリにマウントされていないと判定した場合には（ステップＳＣ３２０：Ｎｏ）、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされているか否かを判定する（ステップＳＣ１３０）。ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされていると判定した場合には（ステップＳＣ３３０：Ｙｅｓ）、検索されたターゲットデバイス情報Ｄｅｖを他のディレクトリからアンマウントする（ステップＳＣ３４０）。
【００８２】
ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖが他のディレクトリにマウントされていないと判定した場合には（ステップＳＣ３３０：Ｎｏ）、ステップＳＣ１４０をスキップして、ステップＳＣ３５０に移行する。
【００８３】
ステップＳＣ３５０において、ＣＰＵ１１は、検索されたターゲットデバイスＤｅｖにアタッチすべき差分データを特定するための特定情報を含むアクセス要求を記憶装置システム２０に対して送信する。特定情報には、ターゲットデバイスＤｅｖの情報、正側ボリュームの情報、スナップショットＩＤが用いられる。
【００８４】
記憶装置システム２０のＣＰＵ２１は、計算機１０からアクセス要求を受け取ると、検索されたターゲットデバイスＤｅｖに一意に対応するターゲットデバイスＴＤの情報を対応する論理デバイスＬＤＥＶの情報に変換する（ステップＳＳ３００）。すなわち、ターゲットデバイスＴＤに一意に対応する論理デバイスＬＤＥＶを特定する。
【００８５】
ＣＰＵ２１は、検索されたターゲットデバイスＴＤに対応する対象論理デバイスにアタッチされている他のスナップショットデータＳｄをデタッチする（ステップＳＳ３１０）。具体的には、ＣＰＵ２１は、デバイスアタッチ情報テーブルＳＴ２における、対象論理デバイスの正側論理デバイス情報およびスナップショットＩＤをＮＵＬＬ化する。
【００８６】
ＣＰＵ２１は、他のスナップショットデータＳｄがデタッチされた論理デバイスＬＤＥＶに対して、計算機１０から受信した特定情報によって特定されるスナップショットデータをアタッチする（ステップＳＳ３２０）。具体的には、ＣＰＵ２１は、デバイスアタッチ情報テーブルＳＴ２における、対象となる論理デバイスＬＤＥＶに樹脂にした正側論理デバイスの情報を、スナップショットＩＤに受信したスナップショットＩＤを登録する。例えば、正側論理デバイスがＬＤＥＶ０、スナップショットＩＤが１の場合には、デバイスアタッチ情報テーブルＳＴ２における、対象となる論理デバイスＬＤＥＶの正側論理デバイスには「ＬＤＥＶ０」が、スナップショットＩＤには「１」が登録される。
【００８７】
ＣＰＵ２１は、計算機１０に対してデタッチ／アタッチ完了報告を送信して（ＳＳ３３０）本処理ルーチンを終了する。
【００８８】
計算機１０のＣＰＵ１１は、記憶装置システム２０からデタッチ／アタッチ完了報告を受信すると、検索されたターゲットデバイス情報Ｄｅｖに要求されたディレクトリをマウントして（ステップＳＣ３６０）、本処理ルーチンを終了する。
【００８９】
次に図１８を参照してミラーリングタイプのスナップショットファイルを取得するための処理について説明する。
【００９０】
クライアントコンピュータ３０、３１からスナップショットファイルの取得が要求される、計算機１０のＣＰＵ１１は要求されたスナップショットを格納すべき要求ディレクトリを検索して（ステップＳＣ４００）、要求ディレクトリに対応付けられているターゲットデバイス情報Ｄｅｖを検索する（ステップＳＣ４１０）。具体的な手順は第１の実施例において説明済みである。
【００９１】
ＣＰＵ１１は、特定した論理デバイスの情報と共にスナップショットファイルの取得要求を記憶装置システム２０に対して送信する（ステップＳＣ４２０）。
【００９２】
記憶装置システム２０のＣＰＵ２１は、計算機１０からアクセス要求を受け取ると、検索されたターゲットデバイスＤｅｖに一意に対応するターゲットデバイスＴＤの情報を対応する論理デバイスＬＤＥＶの情報に変換する（ステップＳＳ４００）。ＣＰＵ２１は、検索されたターゲットデバイスＴＤに対応する対象論理デバイスにアタッチされている他のスナップショットデータＳｄをデタッチする（ステップＳＳ４１０）。
【００９３】
ＣＰＵ２１は、差分データＳｒを格納するための副ボリュームをストレージプールＳｐに作成し、スナップショットファイルを取得する（ステップＳＳ４２０）。具体的には、正ボリュームにおいて更新（変更）された部分に対応する更新前の１または複数のデータのコピーが作成された副ボリュームに格納される。各データにはスナップショットの世代を識別する情報が関連付けられており、かかる識別情報を用いることによって所定の世代に関する差分データＳｒを識別することができる。
【００９４】
ＣＰＵ２１は、スナップショット管理情報テーブルＳＴ３を更新する（ステップＳＳ４３０）する。スナップショット管理情報テーブルＳＴ３の更新手順について具体的に説明する。なお、仮想ボリュームが用いられる場合には、スナップショット管理情報テーブルＳＴ３、スナップショット詳細管理情報テーブルＳＴ３１、ＳＴ３２における論理デバイスの番号は、仮想ボリュームの番号を意味する。
【００９５】
ＣＰＵ２１は、スナップショット管理情報テーブルＳＴ３において、スナップショットデータがアタッチされることによって仮想ボリュームを提供する論理デバイスＬＤＥＶの状態を「Ｐａｉｒ」に、ペア属性を「副」に更新する。ＣＰＵ２１は正側スナップショット管理情報テーブルＳＴ３１において、新たなスナップショットＩＤの論理デバイス番号に仮想ボリュームを提供する論理デバイスＬＤＥＶの番号を登録し、新たなスナップショットＩＤの取得状況を取得済みに更新する。ＣＰＵ２１は副側スナップショット管理情報テーブルＳＴ３２において、仮想ボリュームを提供する論理デバイスＬＤＥＶの正側論理デバイスに論理デバイスＬＤＥＶ０を登録する。
【００９６】
ＣＰＵ２１は、他のスナップショットデータＳｄがデタッチされた論理デバイスＬＤＥＶに対して、計算機１０から受信した特定情報によって特定されるスナップショットデータをアタッチする（ステップＳＳ４４０）、ＣＰＵ２１は、計算機１０に対して正常完了報告を送って（ステップＳＳ４５０）、本処理ルーチンを終了する。
【００９７】
計算機１０は、記憶装置システム２０から正常完了報告を受け取ると、本処理ルーチンを終了する。
【００９８】
以上説明したように、第２の実施例に係るストレージシステム１００によれば、仮想ボリュームを用いる場合にも、計算機１０において、クライアントコンピュータ３０、３１から要求されたスナップショットファイルが格納されているディレクトリＳＳに対してターゲットデバイスＤｅｖをマウントするので、ターゲットデバイスＤｅｖのリソースを有効に活用することができる。また、記憶装置システム２０において、仮想ボリュームを提供する論理デバイスＬＤＥＶに対して複数の差分データＳｒを排他的に割り当てることができるので、従来と異なり各差分データ毎にターゲットデバイスのリソースを維持する必要がない。この結果、ストレージシステム１００全体においてスナップショットファイルに対して割り当てるべきターゲットデバイスＤｅｖ、ＴＤのリソース量を低減することが可能となる。
【００９９】
なお、計算機１０は、アクセス対象となるボリュームが実ボリュームであるか仮想ボリュームであるかの情報を有することにより、あるいは、記憶装置システム２０に問い合わせることによって、アクセス対象となるボリュームが実ボリュームであるか、仮想ボリュームであるかを識別することができる。
【０１００】
・第２の実施例の変形例：
図１９〜図２１を参照して第２の実施例に係るストレージシステム１００の変形例について説明する。図１９は計算機のファイルシステムによって認識されるスナップショットファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイス、論理デバイスとストレージプールに格納されている正側ボリュームファイルのデータ群およびスナップショットデータ群との対応関係を模式的に示す説明図である。図２０は変形例におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。図２１は変形例におけるスナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。
【０１０１】
本変形例では、スナップショットファイルＳ１〜ＳｎのみならずスナップショットファイルＳ１〜Ｓｎの正ボリュームファイルＰ０も仮想ボリュームによって形成されている。なお、説明を簡易にするため、図１９には、正ボリュームファイルＰ０に対するスナップショットファイルＳ１〜Ｓｎのみを図示しているが、正ボリュームファイルＰ１、Ｐ２にも同様にしてスナップショットファイルＳ１〜Ｓｎが存在することはいうまでもない。
【０１０２】
図１９では、クライアントコンピュータ３０（３１）によって認識される、計算機１０における正ボリュームファイルはファイルＰ０〜Ｐ２、スナップショットファイルはスナップショットファイルＳ１〜Ｓｎで表される。記憶装置システム２０においては、正ボリュームファイルに対応する仮想ボリュームはＶＰｒ、スナップショットファイルに対するアクセス時に論理デバイスＬＤＥＶ上に形成される仮想ボリュームはＶＳ１〜ＶＳｎで表されている。また、ストレージプールＳｐにおける正ボリュームファイルの実データはファイルＰｄ０〜Ｐｄ２、所定の時点におけるスナップショットの更新データ（差分データ）はＳｄ１〜Ｓｄ３で表されている。正ボリュームファイルＰ０〜２およびスナップショットファイルＳ１〜Ｓｎは、ディレクトリＳＳによって特定され、正ボリュームファイルの実データはファイルＰｄ０〜Ｐｄ２、実スナップショットファイルＳｄ１〜Ｓｄｎは、論理デバイスＬＤＥＶによって特定される。
【０１０３】
図１９の例では、ターゲットデバイスＤｅｖ０には、正ボリュームファイルＰ０〜２がそれぞれ排他的にマウントされ、ターゲットデバイスＤｅｖ１には、正ボリュームファイルの副ボリュームファイルであるスナップショットファイルＳ１〜Ｓ３がそれぞれ排他的にマウントされ得る。また、図１９の例では、正ボリュームファイルＰ０のスナップショットを例に取っているので、ターゲットデバイスＤｅｖ０には正ボリュームファイルＰ０のディレクトリのみがマウントされ、さらに、スナップショットファイルＳ１に対してアクセス要求がなされているので、ターゲットデバイスＤｅｖ１にはスナップショットファイルＳ１のディレクトリのみがマウントされる。
【０１０４】
記憶装置システム２０には複数のターゲットデバイスＴＤが備えられており、１つのターゲットデバイスＴＤに対して一意の仮想ボリュームＶＰｒ、ＶＳ（論理デバイスＬＤＥＶ）がアタッチされている。各正ボリュームファイルの実データＰｄ０〜Ｐｄ２は、論理デバイスＬＤＥＶによって形成されているストレージプールＳｐに格納されている。いずれかの正ボリュームファイルに対するアクセス要求を受信すると、記憶装置システム２０は、例えば、図１９の例では、正ボリュームファイルの実データＰｄ０を論理デバイスＬＤＥＶ０にアタッチして、論理デバイスＬＤＥＶ０上に仮想ボリュームＶＰｒを形成する。論理デバイスＬＤＥＶには、複数の実データＰｄ０〜Ｐｄ２が排他的にアタッチされる。すなわち、計算機１０におけるディレクトリＳＳに対するターゲットデバイスＤｅｖのマウントに対応するように、記憶装置システム２０において論理デバイスＬＤＥＶに対して実データＰｄ０〜２がアタッチされる。なお、記憶装置システム２０における論理デバイスＬＤＥＶに対する実データＰｄ０〜２のアタッチは、割当切換モジュールＭｓ３によって実行される。
【０１０５】
正ボリュームファイルが仮想ボリュームの場合に用いられるデバイスアタッチ情報テーブルＳＴ４について図２０を参照して説明する。デバイスアタッチ情報テーブルＳＴ４は、仮想ボリューム（正ボリュームファイル）をアタッチするための論理デバイス、正ボリュームファイルＩＤ、スナップショットＩＤを格納している。図２０の例では、論理デバイスＬＤＥＶ０には、ストレージプールＳｐにおける実データＰｄ０〜Ｐｄ２のうち論理デバイスＬＤＥＶ０にアタッチされている実データの識別情報（ＩＤ）が格納される。なお、論理デバイスＬＤＥＶ０に対して実データのいずれもがアタッチされていない場合には、正ボリュームファイルＩＤはＮＵＬＬとされる。スナップショットは、図２０の例では取得されておらず、後にスナップショットが取得される。
【０１０６】
正ボリュームファイルが仮想ボリュームの場合に用いられる正側のスナップショット詳細管理情報テーブルＳＴ４について図２１を参照して説明する。正側のスナップショット詳細管理情報テーブルＳＴ４には、正側論理デバイス番号、正側論理デバイスとペアの関係にある副側論理デバイスのスナップショットＩＤ、副側論理デバイス番号、スナップショットを取得済みであるか否かを示す取得状況が含まれる。図２１の例において、上段は、正ボリュームファイルに仮想ボリュームが割り当てられておらず、正側論理デバイス番号はＮＵＬＬとされ、また、スナップショットも取得されていない例を示している。一方、下段は、正ボリュームファイルに仮想ボリュームが割り当てられており、正側論理デバイス番号にＬＤＥＶ１０が登録されている。また、スナップショットも１つ取得されており、スナップショットＩＤ＝１の論理デバイスＬＤＥＶ１がペアの論理デバイスＬＤＥＶとして登録されている。なお、スナップショット詳細管理情報テーブルＳＴ４の正側論理デバイス番号および副側論理デバイス番号はそれぞれ仮想ボリューム番号を示す。
【０１０７】
・第３の実施例：
上記第１および第２の実施例では、計算機１０と記憶装置システム２０とが同一の筐体に格納されているストレージシステム１００を用いて、スナップショットファイルを格納する場合について説明したが、図２２に示すように、計算機１０と記憶装置システム２０とが別体に構成されているストレージシステムに対しても同様に適用することができる。図２２はその他の実施例に係るストレージシステム１００Ａの概略構成を示す説明図である。
【０１０８】
図２２に係るストレージシステム１００Ａは、計算機１０Ａと、計算機１０Ａによってアクセスされる記憶装置システム２０Ａとを備えている。ストレージシステム１００Ａには、クライアントコンピュータ３０、３１、管理装置５０がネットワーク４０を介してあるいは直接接続されている。計算機１０Ａのファイルシステムにおいて用いられているコマンドと記憶装置システム２０Ａにおいて用いられているコマンドの間には、一般的に互換性がないので、特殊なコマンドを定義して、計算機１０Ａから記憶装置システム２０Ａに対して指示を送る必要がある。
【０１０９】
図２２に係る計算機１０Ａは、ネットワーク４０を介してクライアントコンピュータ３０、３１と接続されている。計算機１０は、内部に、中央処理装置（ＣＰＵ）１１Ａ、メモリ１２Ａ、ＬＡＮインターフェース１３Ａ、ストレージインターフェース１４Ａ、ＦＣインターフェース１５Ａを備えている。ＣＰＵ１１Ａ、メモリ１２Ａ、各インターフェース１３、１４、１５は相互にバスを介して接続されている。
【０１１０】
記憶装置システム２０は、中央処理装置（ＣＰＵ）２１Ａ、メモリ２２Ａ、ＦＣインターフェース２３Ａ、複数のディスク装置２４Ａ、ディスクインターフェース２５Ａ、ストレージインターフェース２６Ａ、ＬＡＮインターフェース２７Ａを備えている。
【０１１１】
ＦＣインターフェース１５Ａ、２３Ａは、例えば、光ファイバケーブル、銅線に接続されており、計算機１０と記憶装置システム２０との間ではファイバチャネルプロトコルを通じてコマンド、データの授受が実行されている。管理装置５０は、ＬＡＮインターフェース２７Ａを介して記憶装置システム２０Ａに接続されており、コマンド、データの授受を実行する。
【０１１２】
ディスク装置２４Ａは、複数の磁気ハードディスクドライブによってＲＡＩＤ構成されるディスクアレイ装置であり、複数のハードディスクドライブによって１または複数の記憶領域、すなわち、論理デバイス（ＬＤＥＶ）を提供し、あるいは、１つのハードディスクドライブによって１または複数の論理デバイスを提供する。
【０１１３】
ＣＰＵ２１Ａは、ディスクインターフェース２５Ａを介してディスク装置２４Ａに接続されている。ディスクインターフェース２５Ａは、ＣＰＵ２１Ａから送信された論理アドレスを論理ブロックアドレスへと変換して、ＣＰＵ２１Ａによる各論理デバイスへのアクセスを実現する。
【０１１４】
ストレージインターフェース１３Ａ、２６Ａは、ターゲットデバイスＴＤに対する論理デバイスＬＤＥＶのデタッチ／アタッチを指示する特殊コマンドを計算機１０Ａと記憶装置システム２０Ａとの間でやりとりするためのインターフェースである。特殊コマンドは、予め定めた論理デバイスＬＤＥＶ（コマンドデバイス）に対する標準のリード／ライトコマンドであり、例えば、ターゲットデバイスＴＤに対する論理デバイスＬＤＥＶのデタッチ／アタッチを指示するコマンド、スナップショットの取得を指示するコマンドが付加されている。計算機１０Ａは、ストレージインターフェース１３Ａを介して、記憶装置システム２０のストレージインターフェース２６Ａに対して特殊コマンドを送信する。ストレージインターフェース２６Ａは、受信したコマンドが、コマンドデバイスに対するリード／ライトコマンドである場合には、付加されているターゲットデバイスＴＤに対する論理デバイスＬＤＥＶのデタッチ／アタッチコマンドを解釈して、ＣＰＵ２１Ａに対して、ターゲットデバイスＴＤに対する論理デバイスＬＤＥＶのデタッチ／アタッチ処理の実行、スナップショット取得処理の実行を指示する。
【０１１５】
・第４および第５の実施例：
上記第１および第２の実施例に係るストレージシステム１００では、スナップショットファイルを格納する例について説明したが、一般的なファイルを格納する場合についても同様にして、ターゲットデバイスＤｅｖ、ＴＤのリソース量を低減し、ストレージシステム１００の有効活用を図ることができる。かかる場合には、計算機１０側のスナップショット管理情報テーブルＣＴ１および記憶装置システム２０側のスナップショット管理情報テーブルＳＴ３およびスナップショット詳細管理情報テーブルＳＴ３１、３２は不要となる。
【０１１６】
ストレージシステム１００、１００Ａを一般的なファイルシステムに用いる場合について図２３〜図２９を参照して説明する。図２３は第４の実施例における、計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイスとの対応関係を模式的に示す説明図である。図２４は第４の実施例において用いられるファイル管理情報テーブルを詳細に示す説明図である。図２５は第４の実施例において記憶装置システムにおけるファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。図２６は第５の実施例に係る計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるファイルトデータ群との対応関係を模式的に示す説明図である。図２７は第５の実施例におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。図２８は第５の実施例において記憶装置システムにおける仮想ボリュームファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。図２９は計算機１０が備えるクライアント識別テーブルの一例を示す説明図である。
【０１１７】
なお、以下の説明では、図１に示す構成を例にとって図１に示す符号を用いて説明するが、図２２に示す構成に対しても同様に適用され得ることは言うまでもない。一般的なファイルシステムに適用する場合には、複数のクライアントコンピュータによって１つのターゲットデバイスＤｅｖが共有されるため、クライアントコンピュータに応じて、ターゲットデバイスを適切なディレクトリにマウントすることが要求される。かかる要求に対する解決手法として、例えば、
（ａ）同一のターゲットデバイスの下に、クライアントコンピュータ毎のディレクトリを作成する。
（ｂ）クライアントコンピュータのＩＰアドレス情報を利用する。
が考えられる。
【０１１８】
前者の場合には、第１の実施例または第２の実施例において説明した手順によって、クライアントコンピュータに応じて、ターゲットデバイスを適切なディレクトリにマウントすることができる。すなわち、第１の実施例における各スナップショットファイルＳ１〜Ｓｎを各クライアントコンピュータ専用のディレクトリ（ファイル）とすることによって、計算機はターゲットデバイスを適切なディレクトリにマウントし、記憶装置システム２０は論理デバイスＬＤＥＶを適切なターゲットデバイスＴＤにアタッチすることができる。第１の実施例におけるストレージシステム１００では、スナップショットファイルへのアクセス要求が発生する毎に、ディレクトリに対するターゲットデバイスのマウント、記ターゲットデバイスＴＤに対する論理デバイスＬＤＥＶのアタッチが実行されているので、スナップショットファイルへのアクセス要求を、クライアントコンピュータからファイルへのアクセス要求として処理すれば良い。なお、計算機１０および記憶装置システム２０は、スナップショットに関するテーブルを除いて同様のテーブルを有している。
【０１１９】
以下（ａ）の第１の解決手法について図２３〜図２５を参照して第４の実施例として説明する。図２３では、クライアントコンピュータ３０（３１）によって認識されるファイルはファイルＦ１〜Ｆｎで表され、記憶装置システム２０に格納されている実際のファイルデータは実ファイルＬ１〜Ｌｎで表されている。各ファイルＦは、ディレクトリＦＧによって特定され、実ファイルＬ１〜Ｌｎは、論理デバイスＬＤＥＶによって特定される。例えば、ターゲットデバイスＤｅｖ１には、ファイルＦ１〜Ｆ３がそれぞれ排他的にマウントされ得る。図２３の例では、ファイルＦ１に対してアクセス要求がなされているので、ターゲットデバイスＤｅｖ１には実ファイルＬ１のディレクトリがマウントされる。
【０１２０】
計算機１０が認識する各ターゲットデバイスＤｅｖは、それぞれ記憶装置システム２０におけるターゲットデバイスＴＤと一意に対応付けられている。記憶装置システム２０には複数のターゲットデバイスＴＤが備えられており、１つのターゲットデバイスＴＤに対して複数の論理デバイスＬＤＥＶ（実ファイル）がアタッチされる。例えば、ターゲットデバイスＴＤ１には、複数の実ファイルＬ１〜Ｌ３が排他的にアタッチされる。図２３の例では、ターゲットデバイスＴＤ１は実ファイルＬ１を格納する論理デバイスＬＤＥＶにアタッチされている。すなわち、計算機１０におけるディレクトリＦＧに対するターゲットデバイスＤｅｖのマウントに対応するように、記憶装置システム２０においてターゲットデバイスＴＤに対して論理デバイスＬＤＥＶがアタッチされる。
【０１２１】
図２４を参照してファイル管理情報テーブルＳＴ５について説明する。ファイル管理情報テーブルＳＴ５には、クライアントコンピュータ３０によって特定される計算機側のディレクトリＦＧ（ファイル名）と記憶装置システム２０側における実ファイルが格納されているディレクトリ情報（/mnt/ss/home_fN）とが対応付けられて格納されている。
【０１２２】
図２５を参照して（ａ）の第１の解決手法における実ファイルに対するアクセス処理について説明する。計算機１０のＣＰＵ１１は、クライアントコンピュータ３０から、ファイルＦに対するアクセス要求を受信すると、図１４において説明済みのアタッチ処理を記憶装置システム２０と共に実行する（ステップＳＣ５００、ＳＳ５００）。アクセス要求には、アクセスが要求されている計算機側のファイルＦに対応する実ファイルＬを識別するための識別情報を含んでいる。例えば、図２２の例では、計算機１０のＣＰＵ１１は要求ディレクトリＦ１にアクセスするためのターゲットデバイスＤｅｖとしてＤｅｖ１を検索し、検索したターゲットデバイスＤｅｖ１にアタッチすべきディレクトリＬ１を特定するディレクトリ情報を記憶装置システム２０に対して送信する。ディレクトリ情報を受信した記憶装置システム２０のＣＰＵ２１は、計算機側ターゲットデバイスＤｅｖ１に一意に対応付けられているターゲットデバイスＴＤ１に対して要求されている実ファイルデータを格納する論理デバイスＬＤＥＶ（Ｌ１）をアタッチする。計算機１０のＣＰＵ１１は、記憶装置システム２０からアタッチ完了報告を受け取ると、ターゲットデバイスＤｅｖ１をディレクトリＦ１にマウントする。
【０１２３】
計算機１０のＣＰＵ１１は、アクセス要求としてリード／ライト要求を記憶装置システム２０に対して送信する（ＳＣ５１０）。リード／ライト要求を受け取った記憶装置システム２０は、リード要求であるか否かを判定し（ステップＳＣ５１０）、ライト要求である場合には（ステップＳＣ５１０：Ｎｏ）、要求されたライト処理を実行して（ステップＳＳ５２０）、本処理ルーチンを終了する。
【０１２４】
記憶装置システム２０は、リード要求であると判定した場合には（ステップＳＣ５１０：Ｙｅｓ）、要求されたリード処理を実行し（ステップＳＳ５３０）、読み出したデータを計算機１０に送信して（ステップＳＳ５４０）、本処理ルーチンを終了する。
【０１２５】
計算機１０は記憶装置システム２０から読み出されたデータを受信し（ステップＳＣ５２０）、クライアントコンピュータ３０に送信して、本処理ルーチンを終了する。
【０１２６】
次に（ａ）の第２の解決手法について図２６〜図２８を参照して第５の実施例として説明する。図２６では、クライアントコンピュータ３０（３１）によって認識される、計算機１０におけるファイルはファイルＦ１〜Ｆｎで表され、記憶装置システム２０における、ファイルＦに対するアクセス時に論理デバイスＬＤＥＶ上に形成される仮想ボリュームはＶＳ１〜ＶＳｎで表され、ストレージプールＳｐにおけるファイルの実データはＰｏ１〜Ｐｏ３で表されている。ファイルＦ１〜Ｆｎは、ディレクトリＦＧによって特定され、ファイルの実データＰｏ１〜Ｐｏ３は、論理デバイスＬＤＥＶによって特定される。例えば、ターゲットデバイスＤｅｖ１には、ファイルＦ１〜Ｆ３がそれぞれ排他的にマウントされ得る。図２６の例では、ファイルＦ１に対してアクセス要求がなされているので、ターゲットデバイスＤｅｖ１にはファイルＦ１のディレクトリのみがマウントされる。計算機１０が認識する各ターゲットデバイスＤｅｖは、それぞれ記憶装置システム２０におけるターゲットデバイスＴＤと一意に対応付けられている。
【０１２７】
記憶装置システム２０には複数のターゲットデバイスＴＤが備えられており、１つのターゲットデバイスＴＤに対して一意の論理デバイスＬＤＥＶ（仮想ボリュームＶＳ）がアタッチされている。ファイルの実データＰｏ１〜Ｐｏ３は、論理デバイスＬＤＥＶによって形成されているストレージプールＳｐに格納されている。所定のファイルに対するアクセス要求を受信すると、記憶装置システム２０は、例えば、実データＰｏ１を論理デバイスＬＤＥＶ１にアタッチして、論理デバイスＬＤＥＶ１上に仮想ボリュームＶＳ１を形成する。論理デバイスＬＤＥＶには、複数の実データＰｏ１〜Ｐｏ３が排他的にアタッチされる。すなわち、計算機１０におけるディレクトリＦＧに対するターゲットデバイスＤｅｖのマウントに対応するように、記憶装置システム２０において論理デバイスＬＤＥＶに対して実データＰｏがアタッチされる。なお、実データＰｏの格納領域は、当初より対応するファイルＦのボリューム容量分に相当する領域がストレージプールに確保されているわけではなく、ファイルＦの更新に応じて記憶領域が増大される。記憶装置システム２０は、実データＰｏが更新されると更新により追加された記憶領域のアドレスを管理アドレスに加える。
【０１２８】
図２７を参照して、本実施例において用いられるデバイスアタッチ情報テーブルＳＴ２’について説明する。仮想ボリューム使用時におけるデバイスアタッチ情報テーブルＳＴ２’は、仮想ボリュームをアタッチするための論理デバイス、仮想ボリュームを形成するためにアタッチすべき実データＰｏの情報を格納している。論理デバイスＬＤＥＶ０に対しては、実データＰｏ１〜Ｐｏ３のいずれかがアタッチ、または、アタッチなし（ＮＵＬＬ）とされ、論理デバイスＬＤＥＶ１に対しては、実データＰｏ４〜Ｐｏ６のいずれかがアタッチ、または、アタッチなし（ＮＵＬＬ）とされる。
【０１２９】
図２８を参照して（ａ）の第２の解決手法における実ファイルに対するアクセス処理について説明する。計算機１０のＣＰＵ１１は、クライアントコンピュータ３０から、任意のファイルＦに対するアクセス要求を受信すると、記憶装置システム２０に対して任意のファイルＦに対応する仮想ボリュームＶＳ＊に対するリード／ライト要求を送信する（ＳＣ６００）。以下、説明を容易にするため、ファイルＦ１に対してアクセス要求が発生している場合を例にとって説明する。記憶装置システム２０のＣＰＵ２１は、アクセスの要求されたファイルＦ１に対応する仮想ボリュームＶＳ１に対してファイルＦ１の実データＰｏ１がアタッチされているか否かを判定する（ステップＳＳ６００）。ＣＰＵ２１は仮想ボリュームＶＳ１（論理デバイスＬＤＥＶ０）に対して実データＰｏ１がアタッチされていると判定した場合には（ステップＳＳ６００：Ｙｅｓ）、アクセス要求がリード要求であるか否かを判定する（ステップＳＳ６１０）。ＣＰＵ２１は、リード要求でない、すなわち、ライト要求であると判定した場合には（ステップＳＳ６１０：Ｎｏ）、仮想ボリュームＶＳ１に対するライト処理を実行して本処理ルーチンを終了する。
【０１３０】
ＣＰＵ２１は、リード要求であると判定した場合には（ステップＳＳ６１０：Ｙｅｓ）、仮想ボリュームＶＳ１に対するリード処理を実行する（ステップＳＳ６２５）。なお、本実施例においては、フォーマットにより仮想ボリュームＶＳにはデータ値「０」が記録されるため、読み出されるデータの値は、仮想ボリュームＶＳに格納されているデータの値、またはフォーマット後に書き込みが実行されていない場合には「０」となる。
【０１３１】
ＣＰＵ２１は、ステップＳＳ６００において、仮想ボリュームＶＳ１（論理デバイスＬＤＥＶ０）に対して実データＰｏ１がアタッチされていないと判定した場合には（ステップＳＳ６００：Ｎｏ）、アクセス要求がリード要求であるか否かを判定する（ステップＳＳ６３０）。ＣＰＵ２１は、リード要求であると判定した場合には（ステップＳＳ６３０：Ｙｅｓ）、ＡＬＬ０を読み出しデータとして取得する（ステップＳＳ６４０）。すなわち、対象となる実データＰｏ１が仮想ボリュームＶＳ１にアタッチされておらず読み出すべきデータが存在しないので、リードライトコントローラ（ディスクコントローラ）から値「０」が返される。
【０１３２】
ＣＰＵ２１は、リード要求でない、すなわち、ライト要求であると判定した場合には（ステップＳＳ６３０：Ｎｏ）、対応する実データＰｏ１を仮想ボリュームＶＳ１にアタッチする（ステップＳＳ６４５）。あるいは、リード要求の場合と同様にして、書き込みべき仮想ボリュームＶＳとして実データＰｏ１がアタッチされた仮想ボリュームＶＳ１が存在しないので、ＡＬＬ０を取得しても良い。すなわち、本実施例においてＡＬＬ０は、要求処理の実行結果が不成功であったことを示す。
【０１３３】
ＣＰＵ２１は、読み出したデータまたは取得したデータを計算機１０に対して送信し（ステップＳＳ６５０）、本処理を終了する。計算機１０は、記憶装置システム２０から読み出されたデータ値または値「０」を受信して（ステップＳＣ６１０）本処理ルーチンを終了する。
【０１３４】
後者（ｂ）の場合には、例えば、図２９に示すテーブルを備えることによって、クライアントコンピュータ毎に、ターゲットデバイスを適切なディレクトリにマウントすることができる。
【０１３５】
図２９に示すように、各クライアントコンピュータを識別するためのＩＰアドレスと、各クライアントコンピュータが使用可能なターゲットデバイスとが対応付けられている。計算機１０は、クライアントコンピュータからアクセス要求を受信すると、クライアントコンピュータのＩＰアドレスを取得し、アクセスさせるべきターゲットデバイスを決定する。決定したターゲットデバイスが他のクライアントコンピュータによって使用されている場合には、計算機１０は、クライアントコンピュータに対して所定期間アクセス不可である旨を通知し、所定期間経過後に記憶装置システム２０に対して割り込みアクセスの要求を送信する。
【０１３６】
あるいは、計算機１０は、直ちに記憶装置システム２０に対して割り込みアクセスの要求を送信して、クライアントコンピュータに対して所望のファイルに対するアクセスを提供する。
【０１３７】
以上説明した場合においても、ストレージシステムにおけるターゲットデバイスリソースの有効活用を図ることができる。
【０１３８】
・その他の実施例：
（１）図３０〜図３１を参照して、記憶装置システム２０に対してデバイスの容量および状態を問い合わせる問い合わせ処理（Inquiry処理）について説明する。図３０は他の実施例における、計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイスとの対応関係を模式的に示す説明図である。図３１は問い合わせ処理において実行される処理ルーチンを示すフローチャートである。
【０１３９】
図３０の例では、計算機１０のターゲットデバイスＤｅｖ１にはファイルＦ１がマウントされており、記憶装置システム２０のターゲットデバイスＴＤ１には論理デバイス（Ｌ１）がアタッチされている。既述の通り記憶装置システム２０のターゲットデバイスＴＤ１はターゲットデバイスＤｅｖ１と一意の関係にある、この状態において、計算機１０は、クライアントコンピュータ３０から問い合わせ要求を受け取ると、イニシエータポートであるターゲットデバイス層（Ｄｅｖ層）に対して「問い合わせ要求」を送る。図３０の例では、ターゲットデバイスＤｅｖ１、２および５は定義されているがターゲットデバイスＤｅｖ３、４は未定義である。したがって、未定義のターゲットデバイスＤｅｖ３、４についての情報は存在しない。
【０１４０】
計算機１０は定義されているターゲットデバイスＤｅｖ１、２および５を介してターゲットポート（記憶装置システム２０のターゲットデバイスＴＤ）に対して問い合わせを送信する（ステップＳＣ７００）。問い合わせを受けた記憶装置システム２０は、計算機１０側のターゲットデバイスＤｅｖ１、２および５に対応する記憶装置システム２０側のターゲットデバイスＴＤ１、２および５について、容量および状態を取得する（ステップＳＳ７００）。
【０１４１】
図３０の例では、ターゲットデバイスＴＤ１には論理デバイスＬ１がアタッチされており、残りのターゲットデバイスＴＤ２、５には論理デバイスがアタッチされていない。したがって、記憶装置システム２０は、ターゲットデバイスＴＤ１については、状態：アタッチ中、容量：論理デバイスＬ１の容量を応答とし、ターゲットデバイスＴＤ２、５については、状態：未アタッチ、容量：０を応答して計算機１０に送信して（ステップＳＳ７１０）、本処理ルーチンを終了する。
【０１４２】
計算機１０は応答を受信し（ステップＳＣ７１０）、受け取った応答をクライアント計算機３０に返して本処理ルーチンを終了する。
【０１４３】
以上の問い合わせ処理によれば、クライアント計算機３０、３１から記憶装置システム２０が備えるターゲットデバイスＴＤの状態、論理デバイスの容量に関する情報を取得することができる。なお、クライアント計算機３０、３１は、上述のようにストレージシステム１００に対して直接問い合わせ要求を送信する他、ネットワーク４０を介して業務ホスト５１と接続し、業務ホスト５１が備えるアプリケーションプログラムを介してストレージシステム１００に対して問い合わせ要求を送信しても良い。
【０１４４】
（２）上記各実施例では、記憶装置システムに対して計算機が１つ備えられている場合について説明したが、計算機は複数備えられていても良い。かかる場合には、計算機間におけるターゲットデバイスの重複利用を防止する必要がある。例えば、計算機に対してターゲットデバイスの使用状況を示し、計算機はかかる使用状況の情報に基づいて記憶装置システムに対してアクセス要求を送信する。あるいは、各計算機毎に論理デバイスを固定しておくことで、すなわち、各計算機毎に利用可能なターゲットデバイスを決めておくことで、ターゲットデバイスの重複利用を防止することができる。
【０１４５】
（３）上記第１および第２の実施例において、スナップショットファイルに対するアクセス処理のフローチャートとスナップショット取得処理のフローチャートとは組み合わされても良い。この場合には、スナップショット取得後に直ちにスナップショットファイルに対してアクセスすることができる。すなわち、ターゲットデバイスＤｅｖは、新たに取得されたスナップショットファイルが格納されているディレクトリにマウント済みであるため、直ちに、スナップショットファイルに対するアクセス（リード／ライト）が可能となる。
【０１４６】
以上、実施例に基づき本発明に係るストレージシステム、計算機、ストレージシステムの制御方法を説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることはもちろんである。
【図面の簡単な説明】
【０１４７】
【図１】第１の実施例に係るストレージシステムの概略構成を示す説明図である。
【図２】第１の実施例に係るストレージシステムに含まれる計算機のメモリに格納されている各種プログラム、モジュールを概念的に示す説明図である。
【図３】スナップショット管理情報を格納するテーブルの一例を示す説明図である。
【図４】ディレクトリデバイス情報を格納するテーブルの一例を示す説明図である。
【図５】デバイスマウント情報を格納するテーブルの一例を示す説明図である。
【図６】デバイスマウント情報を格納するテーブルの一例を示す説明図である。
【図７】第１の実施例に係るストレージシステムに含まれる記憶装置システムのメモリに格納されている各種プログラム、モジュールを概念的に示す説明図である。
【図８】デバイスアタッチ情報を格納するテーブルの一例を示す説明図である。
【図９】仮想ボリューム使用時におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。
【図１０】スナップショット管理情報を格納するテーブルの一例を示す説明図である。
【図１１】スナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。
【図１２】スナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。
【図１３】計算機のファイルシステムによって認識されるスナップショットファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイスとの対応関係を模式的に示す説明図である。
【図１４】ミラーリングタイプのスナップショットファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。
【図１５】ミラーリングタイプのスナップショットファイルを取得する際に実行される処理ルーチンを示すフローチャートである。
【図１６】計算機のファイルシステムによって認識されるスナップショットファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイス、論理デバイスとストレージプールに格納されているスナップショットデータ群との対応関係を模式的に示す説明図である。
【図１７】コピーオンライトタイプのスナップショットファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。
【図１８】コピーオンライトタイプのスナップショットファイルを取得する際に実行される処理ルーチンを示すフローチャートである。
【図１９】計算機のファイルシステムによって認識されるスナップショットファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイス、論理デバイスとストレージプールに格納されている正側ボリュームファイルのデータ群およびスナップショットデータ群との対応関係を模式的に示す説明図である。
【図２０】変形例におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。
【図２１】変形例におけるスナップショット詳細管理情報を格納するテーブルの一例を示す説明図である。
【図２２】その他の実施例に係るストレージシステム１００Ａの概略構成を示す説明図である。
【図２３】第４の実施例における、計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイスとの対応関係を模式的に示す説明図である。
【図２４】第４の実施例において用いられるファイル管理情報テーブルを詳細に示す説明図である。
【図２５】第４の実施例において記憶装置システムにおけるファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。
【図２６】第５の実施例に係る計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるファイルトデータ群との対応関係を模式的に示す説明図である。
【図２７】第５の実施例におけるデバイスアタッチ情報を格納するテーブルの一例を示す説明図である。
【図２８】第５の実施例において記憶装置システムにおける仮想ボリュームファイルに対するアクセス処理において実行される処理ルーチンを示すフローチャートである。
【図２９】計算機が備えるクライアント識別テーブルの一例を示す説明図である。
【図３０】他の実施例における、計算機のファイルシステムによって認識されるファイル情報およびターゲットデバイス情報、記憶装置システムにおけるターゲットデバイスと論理デバイスとの対応関係を模式的に示す説明図である。
【図３１】問い合わせ処理において実行される処理ルーチンを示すフローチャートである。
【符号の説明】
【０１４８】
１０、１０Ａ…計算機
１１、１１Ａ…中央処理装置（ＣＰＵ）
１２、１２Ａ…メモリ
１３、１３Ａ、２７、２７Ａ…ＬＡＮインターフェース
１４Ａ、２６Ａ…ストレージインターフェース
２０、２０Ａ…記憶装置システム
２１、２１Ａ…ＣＰＵ
２２、２２Ａ…メモリ
２３、２５Ａ…ディスクインターフェース
２４、２４Ａ…ディスク装置
２３Ａ、２５、２６…ＦＣインターフェース
２７、２８…ＬＡＮインターフェース
３０、３１…クライアントコンピュータ
４０…ローカルエリアネットワーク
４１…ストレージエリアネットワーク（ＳＡＮ）
５０…管理装置
５１…業務ホスト計算機
１００、１００Ａ…ストレージシステム
ＯＳ…オペレーティングシステム
ＣＴ１…スナップショット管理情報テーブル
ＣＴ２…ディレクトリデバイス情報テーブル
ＣＴ３…デバイスマウント情報テーブル
ＣＴ４…使用可能デバイス情報
ＦＰ…記憶装置管理プログラム
Ｍｃ１…要求受信モジュール
Ｍｃ２…ターゲットデバイス特定モジュール
Ｍｃ３…マウント判定モジュール
Ｍｃ４…マウントモジュール
Ｍｃ５…アンマウントモジュール
Ｍｃ６…アクセス要求送信モジュール
Ｍｃ７…ポイントインタイムコピー要求モジュール
ＳＴ１…デバイスアタッチ情報テーブル
ＳＴ２…仮想ボリューム使用時デバイスアタッチ情報テーブル
ＳＴ３…スナップショット管理情報テーブル
ＳＴ３１、ＳＴ３２…スナップショット詳細管理情報テーブル
ＣＰ…コマンド処理プログラム
Ｍｓ１…アクセス要求受信モジュール
Ｍｓ２…ポイントインタイムコピーモジュール
Ｍｓ３…割当切換モジュール
Ｍｓ４…割当判定モジュール
Ｍｓ５…割当解除モジュール
Ｍｓ６…割当モジュール
【図１】
2006302253.tif 000003
【図２】
2006302253.tif 000004
【図３】
2006302253.tif 000005
【図４】
2006302253.tif 000006
【図５】
2006302253.tif 000007
【図６】
2006302253.tif 000008
【図７】
2006302253.tif 000009
【図８】
2006302253.tif 000010
【図９】
2006302253.tif 000011
【図１０】
2006302253.tif 000012
【図１１】
2006302253.tif 000013
【図１２】
2006302253.tif 000014
【図１３】
2006302253.tif 000015
【図１４】
2006302253.tif 000016
【図１５】
2006302253.tif 000017
【図１６】
2006302253.tif 000018
【図１７】
2006302253.tif 000019
【図１８】
2006302253.tif 000020
【図１９】
2006302253.tif 000021
【図２０】
2006302253.tif 000022
【図２１】
2006302253.tif 000023
【図２２】
2006302253.tif 000024
【図２３】
2006302253.tif 000025
【図２４】
2006302253.tif 000026
【図２５】
2006302253.tif 000027
【図２６】
2006302253.tif 000028
【図２７】
2006302253.tif 000029
【図２８】
2006302253.tif 000030
【図２９】
2006302253.tif 000031
【図３０】
2006302253.tif 000032
【図３１】
2006302253.tif 000033