JP2007328611A - ストレージ仮想化システム及び方法 - Google Patents

ストレージ仮想化システム及び方法 Download PDF

Info

Publication number
JP2007328611A
JP2007328611A JP2006160008A JP2006160008A JP2007328611A JP 2007328611 A JP2007328611 A JP 2007328611A JP 2006160008 A JP2006160008 A JP 2006160008A JP 2006160008 A JP2006160008 A JP 2006160008A JP 2007328611 A JP2007328611 A JP 2007328611A
Authority
JP
Japan
Prior art keywords
storage
configuration information
device configuration
information
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006160008A
Other languages
English (en)
Inventor
Keiji Tamura
圭史 田村
Hisao Honma
久雄 本間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006160008A priority Critical patent/JP2007328611A/ja
Priority to US11/492,097 priority patent/US7636818B2/en
Priority to EP07251190A priority patent/EP1868075A3/en
Publication of JP2007328611A publication Critical patent/JP2007328611A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

【課題】複数のストレージ仮想化装置に同じ論理的なデバイス構成を構築することを人間にとって負担少なく行えるようにする。
【解決手段】ホスト装置10とストレージサブシステム40に接続される複数のストレージ仮想化装置600の共有記憶領域42が、ストレージ仮想化装置内での論理的なデバイス構成を表すデバイス構成情報101を記憶する。論理的なデバイス構成は、ストレージサブシステム内の外部記憶デバイスと、一以上の外部記憶デバイスにより提供される記憶資源を仮想化した記憶空間である仮想デバイスと、ストレージ仮想化装置内の内部記憶デバイスを構成する一以上の論理的な記憶デバイスとの関連である。新たに接続されたストレージ仮想化装置が、共有記憶領域からデバイス構成情報を読み出し、該読み出したデバイス構成情報を、該ストレージ仮想化装置が備える構成情報記憶域に書き込む。
【選択図】図1

Description

本発明は、ストレージの仮想化のための技術に関する。
外部のストレージサブシステムに存在する記憶デバイスを仮想的に自身の記憶デバイスとして上位装置に提供することのできる装置(以下、ストレージ仮想化装置)が知られている。この種の装置として、例えば、特開2005−107645号に開示の装置がある。
なお、この技術によれば、ストレージ仮想化装置(第1の記憶制御装置)とストレージサブシステム(第二の記憶制御装置)との間に、ストレージサブシステム内の記憶デバイスに繋がる複数のパス(交替パス)があり、ストレージ仮想化装置は、複数の交替パスのうちのいずれかの交替パスに障害が発生しても、他の交替パスを経由して、ストレージサブシステム内の記憶デバイスにアクセスすることができるようになっている。パスの切り替えのための技術としては、例えば、特開2006−40026号に開示の技術が知られている。
特開2005−107645号公報 特開2006−40026号公報
ストレージ仮想化装置が一つしかないと、そのストレージ仮想化装置が故障した場合には、ストレージサブシステム内の記憶デバイスを上位装置に提供することができなくなる。その可能性を低減するための方法として、ストレージ仮想化装置を冗長化する方法、例えば、ストレージ仮想化装置に接続されているストレージサブシステムに、少なくとも一つのストレージ仮想化装置を更に接続する方法が考えられる。
その方法を採用する場合には、上位装置とストレージサブシステムとの間に介在する全てのストレージ仮想化装置において、ストレージサブシステム内の記憶デバイスにアクセスできるようにするための論理的なデバイス構成を同じにする必要があると考えられる。なぜなら、上位装置が、どのストレージ仮想化装置を経由しても、ストレージサブシステム内の同一の記憶デバイスにアクセスできるようにするためである。(なお、論理的なデバイス構成としては、例えば、論理的な記憶デバイス(LDEV)の番号(LDEV#)と、仮想的な記憶デバイス(VDEV)の番号(VDEV#)との組み合わせや、そのVDEV#にマッピングされる、ストレージサブシステム内のLUNなどを含んだ構成とすることができる。)。
しかし、その論理的なデバイス構成を、人間(例えば、ストレージ仮想化システムの管理者)が、追加されたストレージ仮想化装置に構築するのでは、その人間にとって負担である。また、追加されたストレージ仮想化装置に、既存のストレージ仮想化装置内の論理的なデバイス構成と同じデバイス構成を正確に構築することができるとは限らない。人間による入力ミスがあり得るからである。
なお、ストレージ仮想化装置を別のストレージ仮想化装置に交換する場合があり得るが、そのような場合にも、上記のような問題点は生じ得る。なぜなら、交換前のストレージ仮想化装置に構築されていた論理的なデバイス構成を交換後のストレージ仮想化装置に構築する必要が生じるためである。
従って、本発明の目的は、複数のストレージ仮想化装置に同じ論理的なデバイス構成を構築することを人間にとって負担少なく行えるようにすることにある。
本発明の更なる目的は、後の記載から明らかになるであろう。
本発明に従うストレージ仮想化システムは、上位装置とストレージサブシステムに接続される複数のストレージ仮想化装置と、前記複数のストレージ仮想化装置の共有記憶領域と
を備える。前記共有記憶領域が、ストレージ仮想化装置内での論理的なデバイス構成を表すデバイス構成情報を記憶する。前記論理的なデバイス構成は、前記ストレージサブシステムが備える記憶デバイスである外部記憶デバイスと、一又は複数の前記外部記憶デバイスにより提供される記憶資源を仮想化した記憶空間である仮想デバイスと、ストレージ仮想化装置内の記憶デバイスである内部記憶デバイスを構成する一以上の論理的な記憶デバイスとの関連である。前記複数のストレージ仮想化装置の各々が、前記デバイス構成情報を記憶する構成情報記憶域と、内部記憶デバイスを指定した第一のアクセスコマンドを前記上位装置から受信し、前記構成情報記憶域に記憶されたデバイス構成情報に基づいて、該指定された内部記憶デバイスに関連付けられている外部記憶デバイスにアクセスするための第二のアクセスコマンドを生成して前記ストレージサブシステムに送信するコントローラとを備える。前記複数のストレージ仮想化装置のうちの前記上位装置及び前記ストレージサブシステムに新たに接続されたストレージ仮想化装置である新接続ストレージ仮想化装置において、前記コントローラが、前記共有記憶領域から前記デバイス構成情報を読み出し、該読み出したデバイス構成情報を前記構成情報記憶域に書き込む。
前記共有記憶領域は、前記複数のストレージ仮想化装置内に存在しても良いし、前記ストレージサブシステムに存在しても良いし、前記複数のストレージ仮想化装置と前記ストレージサブシステム以外の場所に存在しても良い。
第一の実施態様では、前記複数のストレージ仮想化装置には、第一のストレージ仮想化装置と、前記第一のストレージ仮想化装置よりも後に前記上位装置及び前記ストレージサブシステムに接続される第二のストレージ仮想化装置とが含まれる。前記第一のストレージ仮想化装置が、第一の構成情報記憶域と第一のコントローラとを備えることができる。前記第一の構成情報記憶域に、前記第一のストレージ仮想化装置内での論理的なデバイス構成を表す前記デバイス構成情報が記憶されていて、前記第一のコントローラが、前記第一の構成情報記憶域から前記デバイス構成情報を読み出して前記共有記憶領域に書き込むことができる。前記第二のストレージ仮想化装置が、第二の構成情報記憶域と第二のコントローラとを備えることができる。前記第二のコントローラが、前記共有記憶領域から前記デバイス構成情報を読み出し、該デバイス構成情報を前記第二の構成情報記憶域に書き込むことができる。
第二の実施態様では、前記共有記憶領域が、前記デバイス構成情報にマッピングされている外部記憶デバイスのシステム領域である。前記システム領域は、例えば、前記複数のストレージ仮想化装置の各々がアクセス可能な記憶領域であるが、前記上位装置からの前記第一のアクセスコマンドを基に発行される前記第二のアクセスコマンドによってはアクセスされない記憶領域である。
第三の実施態様では、前記共有記憶領域が、前記デバイス構成情報にマッピングされている外部記憶デバイスとは別の外部記憶デバイスにある。
第四の実施態様では、前記第一の実施態様において、前記第一のコントローラが、前記デバイス構成情報にマッピングされている外部記憶デバイスにシステム領域が無い場合に、前記共有記憶領域を、前記デバイス構成情報にマッピングされている外部記憶デバイスとは別の外部記憶デバイスにし、そうではない場合に、前記共有記憶領域を、前記デバイス構成情報にマッピングされている外部記憶デバイスのシステム領域にすることができる。
第五の実施態様では、前記複数のストレージ仮想化装置のうちのいずれかが、前記論理的な記憶デバイスとは別の論理的な記憶デバイスを備えることができる。この場合、前記共有記憶領域は、前記別の論理的な記憶デバイスにある。
第六の実施態様では、前記第一の実施態様において、前記第一のコントローラが、前記共有記憶領域として使用可能な外部記憶デバイスが前記ストレージサブシステムに無い場合に、前記共有記憶領域を、前記別の論理的な記憶デバイスとし、そうではない場合に、前記共有記憶領域を、外部記憶デバイスにすることができる。
第七の実施態様では、前記デバイス構成情報には、前記論理的なデバイス構成を表す情報の他に、該デバイス構成情報であることを意味するコード配列が含まれている。前記コード配列は、前記デバイス構成情報の所定の場所に存在する。前記新接続ストレージ仮想化装置の前記コントローラは、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行し、該リードコマンドに従って読み出されたデータが前記コード配列である場合に、前記デバイス構成情報の残りを読み出すためのリードコマンドを前記共有記憶領域に発行することができる。
第八の実施態様では、前記第七の実施態様において、前記ストレージサブシステムが、各ストレージ仮想化装置のターゲットとなる通信ポートと、外部記憶デバイスを含んだ複数のデバイスと、前記複数のデバイスにそれぞれ対応する複数の論理ユニット番号(LUN)とを有する。前記ストレージサブシステムでは、各通信ポートに、前記複数のLUNのうちの一以上のLUNが属している。前記共有記憶領域は、前記外部記憶デバイスである。前記新接続ストレージ仮想化装置の前記コントローラは、前記ストレージサブシステムが接続されているネットワークに接続されることによって前記ターゲットの通信ポートを認識し、該ターゲットの通信ポートに、第一の照会コマンドを発行し、該第一の照会コマンドに応答して、該ターゲットの通信ポートに属する一以上のLUNの報告を受け、該一以上のLUNの各々に対し、第二の照会コマンドを発行し、該第二の照会コマンドに応答して、指定したLUNに関わる属性を表す属性データを受信し、該属性データが前記外部記憶デバイスを意味するデータであれば、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行することができる。
第九の実施態様では、前記複数のストレージ仮想化装置のいずれかのストレージ仮想化装置におけるコントローラが、デバイス構成情報の変更希望を意味する情報である変更希望情報を、前記共有記憶領域に書くことができる。前記複数のストレージ仮想化装置の他のストレージ仮想化装置における他のコントローラが、前記デバイス構成情報にマッピングされている外部記憶デバイスを使用している場合には、変更を拒否することを意味する変更拒否情報を、前記共有記憶領域に書き込み、そうではない場合には、変更を許可することを意味する変更許可情報を、前記共有記憶領域に書き込むことができる。前記コントローラが、前記変更拒否情報が前記共有記憶領域に書き込まれている場合には、前記デバイス構成情報の変更を行わず、前記変更拒否情報が書かれておらず前記変更許可情報が前記共有記憶領域に書き込まれている場合には、前記デバイス構成情報の変更を行うことができる。
第十の実施態様では、前記第九の実施態様において、前記デバイス構成情報には、前記複数のストレージ仮想化装置の各々の優先度が含まれている。前記コントローラが、前記デバイス構成情報に含まれている、該ストレージ仮想化装置の優先度が所定値以下の場合には、前記変更希望情報を前記共有記憶領域に書き込まないようにすることができる。
第十一の実施態様では、前記第九の実施態様において、前記デバイス構成情報に、マッピングされているストレージ仮想化装置の数(=k、k≧2の整数)が記録されている。前記コントローラは、k−1個の前記変更許可情報が前記共有記憶領域に書き込まれている場合に、前記デバイス構成情報の変更を行うことができる。
第十二の実施態様では、前記新接続ストレージ仮想化装置において、前記コントローラは、特定の照会コマンドを前記上位装置から受けた場合には、前記構成情報記憶域に記憶させた前記デバイス構成情報にマッピングされている外部記憶デバイスに関してユニークな情報を含んだ照会回答情報を返信することができる。
第十三の実施態様では、前記第十二の実施態様において、前記デバイス構成情報に、該デバイス構成情報にユニークなコード配列であるユニークIDが含まれている。前記コントローラは、前記デバイス構成情報から前記ユニークIDを抽出し、該ユニークIDを含んだ前記照会回答情報を返信することができる。
第十四の実施態様では、前記第十二の実施態様において、前記コントローラは、前記デバイス構成情報にマッピングされている外部記憶デバイスに対して特定の照会コマンドを発行することによって受信した照会回答情報から、該外部記憶デバイスにユニークの情報を抽出し、特定の照会コマンドを前記上位装置から受けた場合には、前記抽出したユニークの情報を含んだ照会回答情報を返信することができる。
第十五の実施態様では、前記第十二の実施態様において、前記上位装置が、各内部記憶デバイスに対して特定の照会コマンドを送信する照会部と、各特定の照会コマンドに応答して受信した各照会回答情報に、同じユニークな情報が含まれていた場合に、各照会回答情報を受けた各パスが、同一の記憶デバイスに繋がる交替パスであることを認識する交替パス認識部と、前記認識した複数の交替パスのうちの使用する交替パスを切り替えるパス切替部とを備えることができる。
第十六の実施態様では、前記第十五の実施態様において、前記パス切替部は、以下の(A)乃至(D)のいずれかの場合、
(A)同じ交替パスを所定回数連続して使用した場合、
(B)使用している交替パスの負荷が所定値を超えたことを意味する通知を、該交替パスが経由するストレージ仮想化装置から受けた場合、
(C)使用している交替パスにおいて、該交替パスが経由するストレージ仮想化装置から応答が無い場合、
(D)前記複数のストレージ仮想化装置と前記上位装置との間の前記複数の交替パスを管理するサーバから、使用する交替パスの切り替えの指示を受けた場合、
交替パスの切り替えを行うことができる。
第十七の実施態様では、前記共有記憶領域が、外部記憶デバイスにある。前記デバイス構成情報には、前記論理的なデバイス構成を表す情報の他に、該デバイス構成情報であることを意味するコード配列が含まれている。前記コード配列は、前記デバイス構成情報の所定の場所に存在する。前記複数のストレージ仮想化装置には、第一のストレージ仮想化装置と、前記第一のストレージ仮想化装置よりも後に前記上位装置及び前記ストレージサブシステムに接続される第二のストレージ仮想化装置とが含まれる。前記第一のストレージ仮想化装置が、第一の構成情報記憶域と第一のコントローラとを備える。前記第一の構成情報記憶域に、前記第一のストレージ仮想化装置内での論理的なデバイス構成を表す前記デバイス構成情報が記憶されており、前記第一のコントローラが、前記第一の構成情報記憶域から前記デバイス構成情報を読み出して前記共有記憶領域に書き込むことができる。前記第二のストレージ仮想化装置が、第二の構成情報記憶域と第二のコントローラとを備える。前記第二のコントローラが、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行し、該リードコマンドに従って読み出されたデータが前記コード配列である場合に、前記デバイス構成情報の残りを読み出すためのリードコマンドを前記共有記憶領域に発行し、それによって読み出された情報と前記コード配列とを含む前記デバイス構成情報を、前記第二の構成情報記憶域に書き込むことができる。前記第二のコントローラは、特定の照会コマンドを前記上位装置から受けた場合には、前記第二の構成情報記憶域に記憶させた前記デバイス構成情報にマッピングされている外部記憶デバイスに関してユニークな情報を含んだ照会回答情報を返信することができる。前記上位装置が、各内部記憶デバイスに対して特定の照会コマンドを送信する照会部と、各特定の照会コマンドに応答して受信した各照会回答情報に、同じユニークな情報が含まれていた場合に、各照会回答情報を受けた各パスが、同一の記憶デバイスに繋がる交替パスであることを認識する交替パス認識部とを備えることができる。
ストレージ仮想化装置、ストレージサブシステム及び上位装置が行う処理は、所定の各部によって実行することができる。各部は各手段と言い換えることができる。各部或いは各手段は、ハードウェア(例えば回路)、コンピュータプログラム、或いはそれらの組み合わせ(例えば、コンピュータプログラムを読み込んで実行する一又は複数のCPU)によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROMやDVD(Digital Versatile Disk)等の記録媒体を介してインストールすることもできるし、インターネットやLAN等の通信ネットワークを介してダウンロードすることもできる。
本発明によれば、複数のストレージ仮想化装置に同じ論理的なデバイス構成を構築することを人間にとって負担少なく行えるようにすることができる。
本発明の一実施形態の概要を説明する。
第一のストレージ仮想化装置が、第一の記憶域(例えば、後述する共有メモリ)を備える。その第一の記憶域に、第一のストレージ仮想化装置内の論理的なデバイス構成を表す情報(以下、デバイス構成情報)が格納される。第一のストレージ仮想化装置とストレージサブシステムとの少なくとも一方に、第一のストレージ仮想化装置と第二のストレージ仮想化装置がアクセス可能な共有記憶域(例えば論理ボリューム)が準備される。第一のストレージ仮想化装置が、デバイス構成情報を共有記憶域に書く。ストレージサブシステムに接続された第二のストレージ仮想化装置が、その共有記憶域から、デバイス構成情報を読出し、そのデバイス構成情報を、自身が備える第二の記憶域に書く。これは、第一のストレージ仮想化装置内の論理的な記憶デバイスが、第二のストレージ仮想化装置に構築されたことを意味する。すなわち、この方法によれば、第一のストレージ仮想化装置内の論理的なデバイス構成を第二のストレージ仮想化装置に構築することを、人間に実質的に負担をかけることなく行うことができる。
また、この実施形態では、上位装置(例えば、後述のホスト装置)と、ストレージサブシステム内の記憶デバイス(例えば、後述の外部VOL)との間には、第一のストレージ仮想化装置を経由する第一のパスに代えて又は加えて、第二のストレージ仮想化装置を経由する第二のパスを張ることができる。第二のストレージ仮想化装置は、第二のパスを経由して上位装置から所定の問合せを受けた場合には、第一のパスを経由して所定の問合せを受けた場合に回答される情報中の同じ情報要素を含めた情報を準備し、その準備した情報を、上位装置に送信する。これにより、第二のパスに対応する記憶デバイスが、第一のパスに対応する記憶デバイスと同じであることを、上位装置に認識させることができる。
以下、図面を参照して、本発明の一実施形態について詳細に説明する。なお、以下の説明では、ストレージ仮想化装置内の要素(例えばメモリ)を、「内部要素」と言い、ストレージ仮想化装置の外に存在するストレージサブシステム内の要素を、「外部要素」と言う場合がある。また、同種の要素については、同一の親番号を用いて説明し、同種の要素を区別して説明する場合には、親番号と子符合を用いて説明する。
図1は、本発明の一実施形態に係る計算機システムの構成例を示すブロック図である。
第一の通信ネットワーク105に、ホスト装置10とストレージ仮想化装置600が接続される。第二の通信ネットワーク104に、ストレージ仮想化装置600とストレージサブシステム40が接続される。第一の通信ネットワーク105も第二の通信ネットワーク104も、それぞれ、種々のネットワーク、例えば、一又は複数のスイッチ2を含んだSAN(Storage Area Network)とすることができる。
ホスト装置10は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。ホスト装置10は、例えば、キーボードスイッチやポインティングデバイス、マイクロフォン等の情報入力装置(図示せず)と、例えば、モニタディスプレイやスピーカー等の情報出力装置(図示せず)とを備えている。さらに、ホスト装置10は、例えば、所定の処理を実行するアプリケーションプログラム11と、通信ネットワーク105を介してストレージ仮想化装置600にアクセスするためのホストバスアダプタ12とが設けられている。アプリケーションプログラム11としては、例えば、後述するパス切替ソフトウェアや、交替パスを認識することができるパス認識ソフトウェアなどがある。
ストレージ仮想化装置600は、例えば、アレイ状に配列された多数のディスク400を備えるRAID(Redundant Array of Independent (or Inexpensive) Disks)システムとすることができる。但し、これに限らず、ストレージ仮想化装置600を、通信ネットワークを構成するスイッチ、例えば、高機能化されたインテリジェント型のファイバチャネルスイッチとして構成することもできる。ストレージ仮想化装置600は、後述のように、ストレージサブシステム40の有する記憶資源を自己の論理ボリューム(Logical Unit)としてホスト装置10に提供するものであるから、自己が直接支配するローカルな記憶デバイスを有していなくても良い。
ストレージ仮想化装置600は、コントローラ部20と、ディスクユニット30とに大別することができる。コントローラ部20は、例えば、チャネルアダプタ(以下、CHA)21と、ディスクアダプタ(以下、DKA)22と、SVP(Service Processor)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
CHA21は、通信ポート207を介して外部の装置(例えば、ホスト装置10やストレージサブシステム40)との間のデータ通信を行うものである。CHA21は、例えば、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。CHA21には、そのCHA21を識別するためのネットワークアドレス(例えばWWN(World Wide Name))が割り当てられている。CHA21には、ホスト装置10に接続されたCHA21Aと、ストレージサブシステム40に接続されたCHA21Bとがある。CHA21Aと21Bは、一体になっていてもよい。
DKA22は、ディスクユニット30に備えられたディスク(以下、内部ディスク)400に接続するための通信ポート220を有し、その通信ポート220を介して、内部ディスク400と通信することができる。DKA22は、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。DKA22は、CHA21Aからキャッシュメモリ24に書かれたデータを内部ディスク400に書込んだり、内部ディスク400から読み出したデータをキャッシュメモリ24に書込んだりすることができる。また、DKA22は、内部ディスク400との間でデータ入出力を行う場合、論理的なアドレスを物理的なアドレスに変換することができる。
キャッシュメモリ24は、例えば揮発性又は不揮発性のメモリであり、ホスト装置10から受信したデータや、内部ディスク400から読出されたデータを一時的に記憶することができる。
共有メモリ25は、例えば不揮発性のメモリであり、ストレージ仮想化装置600での制御に関する情報(以下、制御情報)が格納される。制御情報としては、例えば、デバイス構成情報101がある。デバイス構成情報101は、ストレージ仮想化装置600における論理的なデバイス構成を表す情報を含んでいる。デバイス構成情報101により、ストレージサブシステム40に存在する記憶資源(例えば、論理ボリューム42)を、ストレージ仮想化装置600に存在する記憶資源(例えば、論理ボリューム32)であるかのように、ホスト装置10に提供することができる。デバイス構成情報101については、後に詳述する。
接続部26は、CHA21、DKA22、キャッシュメモリ24及び共有メモリ25を相互に接続させる。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
ディスユニット30には、アレイ状に配列された複数の内部ディスク400が含まれている。内部ディスク400としては、例えば、ハードディスク、フレキシブルディスク、光ディスクなどのディスク型記憶装置とすることができる。内部ディスク400に代えて、他種の記憶装置、例えば、磁気テープ、半導体メモリ(例えばフラッシュメモリ)を用いることもできる。内部ディスク400の記憶領域上には、論理ボリューム(以下、内部VOL)31が設けられる。内部VOL31は、物理的な内部ディスク400が有する記憶資源を用いて設定された論理ボリュームであるのに対し、前述した論理ボリューム(以下、内部VOL)132は、内部ディスク400を用いて設定された論理ボリュームではない。つまり、内部VOL31にアクセスが発生した場合には、内部ディスク400にアクセスが行われるが、内部VOL132にアクセスが発生した場合には、外部の論理ボリューム(以下、外部VOL)42にアクセスが行われる。
SVP23は、ストレージ仮想化装置600の保守又は管理を行うための情報処理端末(例えばノート型のパーソナルコンピュータ)である。SVP23は、例えば、内部LAN410を介して、CHA21内のプロセッサ(例えばCPU)や、DKA22内のプロセッサに接続されている。SVP23は、ストレージ仮想化装置600内の障害発生を監視してディスプレイ画面に表示したり、内部ディスク400の閉塞処理等を指示したりするようになっている。また、SVP23は、デバイス構成情報101の少なくとも一部を入力することもできる。また、SVP23は、遠隔の情報処理端末から操作することもできる。
ストレージサブシステム40は、ストレージ仮想化装置600のような構成であっても良いし、ストレージ仮想化装置600よりも簡易な構成であっても良い。ストレージサブシステム40は、例えば、通信ポート41を持ったCHA217と、1又は複数のディスク(以下、外部ディスク)817とを備えている。外部ディスク500の記憶領域上には、外部VOL42が備えられている。外部VOL42は、ストレージ仮想化装置600の内部VOL132として扱われるようになっている。
以上が、本実施形態に係る計算機システムの構成例である。なお、上記の説明は一例であって、他の構成が採用されてもよい。例えば、共有メモリ25とキャッシュメモリ24は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。また、例えば、コントローラ部20は、CPU、メモリ及び通信ポートを備えた回路基盤であっても良い。この場合、CPUが、複数のCHAやDKAによって行われる処理を実行することができる。
さて、この実施形態では、ストレージ仮想化装置600を冗長化することができる。以下、その点を含め、本実施形態について詳細に説明する。
図2Aは、ストレージ仮想化装置600とストレージサブシステム40との論理的な接続構造を示す模式図である。
例えば、ホスト10と、一台のストレージ仮想化装置600Aと、4台のストレージサブシステム40A、40B、40C及び40Dとが備えられているとする。ストレージ仮想化装置600Aでは、論理的なデバイス構成として、例えば、VDEV971と、内部LDEV32と、内部LUN(Logical Unit Number)とからなる3層の記憶階層のうちのVDEV971に外部VOL42が関連付けられているという構成を有している。
このような状況の下で、図2Aに示すように、ストレージ仮想化装置600Bが、増設された場合、後に詳述する処理が行われることにより、ストレージ仮想化装置600Aに存在する論理的なデバイス構成を、図2Bに示すように、増設されたストレージ仮想化装置600Bに構築することができる。
以下、まず、論理的なデバイス構成の一例を詳細に説明し、その後で、その論理的なデバイス構成を復元するために行われる処理を説明する。
VDEV971は、論理的な記憶階層の最下位に位置する仮想的なデバイス(Virtual Device)である。VDEV971は、ストレージサブシステム40A〜40Dの記憶資源を仮想化した記憶空間であり、RAID構成を適用することができる。例えば、一つのVDEV971には、仮想的な論理ボリューム(仮想VOL)である記憶領域を一又は複数個形成することができる。
内部LDEV32は、VDEV971の記憶空間に基づく論理的な記憶デバイスであり、VDEV971中の仮想VOLに関連付けることができる。内部LUNには、一又は複数のLDEV32を関連付けることができる。一つの内部LUNにより、その内部LUNに関連付けられた一又は複数のLDEV32が一つの内部VOLとしてホスト装置10に提供することができる。
このように、本実施形態では、内部VOL132と外部VOL42との間に位置する中間記憶階層(VDEV971)に外部VOL42を接続することにより、外部VOL42を内部VOL132の1つとして利用できるようにしている。
図3は、論理的なデバイス構成の一例を示す。図4Aは、図3に例示したデバイス構成の場合のデバイス構成情報101の一例を示す。なお、以下の説明では、個々の要素の識別コードとして番号を用い、番号をコード"#"で表すことにする。
デバイス構成情報101には、第一変換テーブル701と第二変換テーブル703とが含まれている。
第一変換テーブル701は、内部LUNを指定するデータをVDEV971用データに変換するための、LUN−LDEV−VDEV変換テーブルである。このテーブル701は、例えば、内部LUNと、その内部LUNに対応する内部LDEV#及び最大スロット数と、内部LDEV#に対応するVDEV#及び最大スロット数等を対応付けることにより構成される。また、図示しないが、このテーブル701には、どの内部LDEVにおけるどのLBAが、キャッシュメモリ24のどのスロットのどのサブブロックに対応するか等も登録されていても良い。なお、スロットとは、キャッシュメモリ24の一領域である。
第二変換テーブル703には、例えば、VDEV#と、ストライプサイズと、RAIDレベルと、ストレージサブシステム40を識別するための番号(SS#)と、イニシエータポート(ストレージ仮想化装置のポート)の番号と、外部WWN及び外部LUN(つまりストレージサブシステム40におけるWWN及びLUN)とを対応付けることにより構成されている。この例では、VDEV#1に、SS#(1,4,6,7)で特定される四つのストレージサブシステム40A〜40Dを利用してRAID1が構成される。換言すれば、VDEV#1に四つの仮想的な論理ボリューム(以下、仮想VOL)#1、#4、#6及び#7を関連付け、四つの仮想VOLにより、RAID1を構成することができる。なお、第二変換テーブル703としては、図4Aに例示するテーブルに限らず、例えば、図4Bに例示するように、ストライプサイズ、RAIDレベル及び他社SS#の無い簡易な構成のテーブル703´を採用することもできる。
SS#1に割り当てられている三つのパス(イニシエータポート#、外部WWN及び外部LUNから構成されるパス)は、図5に例示するように、ストレージサブシステム40Aにおいて、同一の外部LDEV142に割り当てられている(つまり交替パス構造が構築されている)。これにより、ストレージ仮想化装置600Aは、それら三つのパスのいずれか二つに障害が発生しても残りの一つのパスを経由して外部LDEV142にアクセスすることができるようになっている。
ホスト装置10に提供される内部LUN0に、一つの内部LDEV#3が関連付けられているとする。この場合、その内部LDEV#3が、内部VOL132としてホスト装置10に提供される。
VDEV971には、VDEV971へのインタフェースとしてVDEV#があり、そのVDEV#に、内部LDEV#及び一又は複数の仮想VOL102を関連付けることができる。具体的には、例えば、VDEV#1に、内部LDEV#1と、4つの仮想VOL#1、#4、#6及び#7が関連付けられている。仮想VOLの番号は、例えば、第二変換テーブル703における他社SS#に対応している。仮想VOL102は、VDEV971の一記憶領域である。各仮想VOL#1、#4、#6及び#7には、それぞれ、外部LUNパス(イニシエータポート#、外部WWN及び外部LUN)が関連付けられている。
以上の構成により、ストレージ仮想化装置600Aが、ホスト装置10から、内部アドレス(内部LUN0及び論理ブロックアドレス(LBA))を指定したアクセスコマンド(ライトコマンド或いはリードコマンド)を受信した場合、4つの外部VOLにそれぞれアクセスが発生する。
具体的には、例えば、図4Aに例示するように、CHA21Aは、通信ポート207を介して、内部LUN0及びLBAを指定したアクセスコマンドをホスト装置10から受信する。CHA21A又は21Bは、内部LUN0及びLBAを、第一変換テーブル701に基づいて、VDEV971用のアドレス(VDEV#+SLOT#+SUBBLOCK#)に変換する。
次に、CHA21A又は21Bは、第二変換テーブル703を参照して、VDEV971用のアドレスを、外部アドレス(WWN+LUN+LBA)に変換する。CHA21Bは、変換後の外部アドレスを指定したアクセスコマンドを、ストレージサブシステム40A〜40Dに送信する。これにより、各ストレージサブシステム40A〜40Dにおいて、指定された外部アドレスに対応した外部LDEV142に対するアクセスが行われる。
以下、アクセスがライトの場合について説明する。
図6Aは、記憶階層を中心に示すデータ書込みの流れ図であり、図6Bは、キャッシュメモリ24の使われ方を中心に示すデータ書込みの流れ図である。
ホスト装置10は、例えば、内部アドレス(内部LUN及びLBA)を指定したライトコマンド(Write)を発行する(ステップS121)。CHA21A又は21Bは、そのライトコマンドを受信すると、指定された内部アドレスを、VDEV用のアドレスを経て外部アドレスに変換し、CHA21Bが、外部アドレスを指定したライトコマンドをストレージサブシステム40に送信する(S122)。
ホスト装置10は、ライトコマンドに従うデータをCHA21Aに送信する(S123)。CHA21Aに受信されたデータは、内部LDEV32からVDEV971を介して(S124)、外部LUNに対して転送される(S125)。S124では、第一変換テーブル701を用いて変換されたアドレスが表す場所(キャッシュメモリ24上の領域)に、データが格納される。
ストレージサブシステム40は、転送先の外部LUNに属する外部LDEV142(外部ディスク500)にデータが書かれた場合に、書込み完了報告(Good)を、CHA21Bに送信する(S126)。CHA21Bは、書込み完了報告を受けたならば、S121でライトコマンドを受けたCHA21Aに、書込み完了報告を送信し、CHA21Aは、その書込み完了報告を、ホスト装置10に送信する(S127)。
以上の流れによれば、外部LDEV142にデータが書かれた場合に、ホスト装置10に書込み完了報告が送信される。これにより、ホスト装置10とストレージサブシステム40との間に複数のストレージ仮想化装置600が存在し、外部LDEV142へのアクセスの際に経由されるストレージ仮想化装置600が違っても、データの整合性を保証することができる。具体的には、例えば、ストレージ仮想化装置600Aを経由して外部LDEV142の或る領域にデータを書くためのライトコマンドが発行された直後に、別のストレージ仮想化装置600Bを経由してその領域からデータを読み出すためのリードコマンドが発行された場合に、確実に、そのリードコマンドに従って読み出されるデータを、その直前に発効されたライトコマンドに従って書かれたデータとすることができる。
なお、このようなデータ保証がなされれば、書込み完了を報告するタイミングは、上記の例に限られない。例えば、CHA21Aもストレージサブシステム40も、キャッシュメモリにデータが格納された時に、書込み完了を報告しても良い。その場合、例えば、CHA21Aもストレージサブシステム40も、キャッシュメモリにデータを格納し、外部LDEV142にデータが格納される前に、そのデータが格納される場所に対するリードコマンドを受信した場合には、キャッシュメモリ上のデータを返すことができる。
図7Aは、記憶階層を中心に示すデータ読出しの流れ図であり、図7Bは、キャッシュメモリ24の使われ方を中心に示すデータ読出しの流れ図である。
ホスト装置10は、内部アドレスを指定したリードコマンドを送信する(S131)。CHA21Aが、そのリードコマンドを受信すると、CHA21A又は21Bは、内部アドレスを、VDEV用のアドレスを経て外部アドレスに変換し、CHA21Bが、外部アドレスを指定したリードコマンドをストレージサブシステム40に送信する(S132)。ストレージサブシステム40は、CHA21Bからリードコマンドを受信し、そのリードコマンドに従うデータを外部LDEV142から読み出して、CHA21Bに送信し(S133)、正常に読み出しが完了した旨を報告する(S135)。CHA21Bは、ストレージサブシステム40から受信したデータを、キャッシュメモリ24の所定の場所(VDEV用のアドレスが表す場所)に格納する(S134)。CHA21Aは、キャッシュメモリ24に格納されたデータを読み出し、そのデータをホスト装置10に送信し(S136)、読み出し完了報告を行う(S137)。
ストレージ仮想化装置600とストレージサブシステム40との間では、上述したような流れでアクセスが行われる。このようなアクセスを、ストレージ仮想化装置600を冗長化した場合にも行えるようにするために、本実施形態では、以下に詳述する、デバイス構成情報の入出力処理(以下、構成情報IO処理)が行われる。
以下、ストレージサブシステム40が一つであり、第一のストレージ仮想化装置600Aに代えて又は加えて、第二のストレージ仮想化装置600Bが備えられる場合を例に採り、構成情報IO処理の幾つかの例について詳述する。その際、CHAに搭載されているプロセッサを、「CHP」と記載し、DKAに搭載されているプロセッサを、「DKP」と記載する。
図8は、構成情報IO処理の第一の例を示す。
第一のストレージ仮想化装置600Aにおいて、CHA21A上のCHP731Aは、共有メモリ25Aから、デバイス構成情報101を読出し、特定の記憶域910Aに書く。この記憶域910Aは、第一のストレージ仮想化装置600Aにおける物理的な記憶資源上のどの領域であっても良い。例えば、記憶域910Aは、共有メモリ25A或いはキャッシュメモリ上に用意することができる。
CHA21B上のCHP731Bが、記憶域910Aからデバイス構成情報101を読出し、そのデバイス構成情報101を書込み対象データとしたライトコマンドを、ストレージサブシステム40に送信する。デバイス構成情報101の書込み先を表す外部アドレス中の外部LUNは、そのデバイス構成情報101で管理されている一又は複数の外部VOL42のうちのいずれかの外部VOL42であり、外部アドレス中のLBAは、それのシステム領域903とされる。
なお、システム領域903とは、ストレージ仮想化装置600、ホスト装置10、或いはストレージサブシステム40の制御に関わる情報(以下、システム情報、例えば、ホスト装置10、CHA或いはDKAのオペレーティングシステム)であって、ホスト装置10のアプリケーション11がアクセスすることのない情報が格納される領域である。例えば、システム領域903は、ストレージ仮想化装置600、ホスト装置10、或いはストレージサブシステム40の起動の際に、その起動する装置によってアクセスされ、システム情報は、その装置によって読み出される。それに対し、外部VOL42には、システム領域903以外の領域としてユーザ領域901が存在する。ユーザ領域901とは、ホスト装置10のアプリケーション11がアクセスするデータが格納される領域である。なお、このようにシステム領域がある場合には、VDEV971は、外部VOL42のユーザ領域を基に用意されても良い。
ストレージサブシステム40において、CHA217上のCHP218が、CHA21Bからライトコマンドを受信し、そのライトコマンドを、DKA219に転送し、デバイス構成情報を、ストレージサブシステム40内の図示しないキャッシュメモリに書く。DKA219上のDKP220は、キャッシュメモリからデバイス構成情報を読出し、ライトコマンドに従う外部アドレスが表す場所、すなわち、外部VOL42のシステム領域903に、読み出したデバイス構成情報を書く。
第二のストレージ仮想化装置600Bが第二の通信ネットワーク104に接続された場合、第二のストレージ仮想化装置600B(イニシエータ)が、第二の通信ネットワーク104に接続されているストレージサブシステム40(ターゲット)のポートを認識する。CHA21C上のCHP731Cが、認識したポートに対して、デバイス構成情報101が格納されている場所を表す外部アドレスを含んだリードコマンドを送信する。これにより、外部VOL42のシステム領域903から、CHA21Cに、デバイス構成情報101が読み出される。CHP731Cは、読み出されたデバイス構成情報を、特定の記憶域910Bに書く。この記憶域910Bは、第二のストレージ仮想化装置600Bにおける物理的な記憶資源上のどの領域であっても良い。例えば、記憶域910Bは、共有メモリ25B或いはキャッシュメモリ上に用意することができる。
CHA21D上のCHP731Dが、記憶域910Bからデバイス構成情報101を読出し、そのデバイス構成情報101を、共有メモリ25Bに書く。これにより、第一のストレージ仮想化装置600Aにおける論理的なデバイス構成が、第二のストレージ仮想化装置600Bに構築されたことになる。
図9は、デバイス構成情報101の構成例を示す。
デバイス構成情報101は、例えば、1つのVDEV#について1つ用意される情報である。デバイス構成情報101には、例えば、(A)アイキャッチャ、(B)フォーマットレビジョン番号、(C)マッピングされているストレージ仮想化装置の数(=k、k≧1の整数)、(D)ユニーク管理番号、(E)仮想化装置情報、(F)オーナー情報、(G)仮想VOL情報、(H)内部LDEV情報及び(I)ホスト/仮想化装置情報が含まれている。
アイキャッチャとは、デバイス構成情報101として認識するためのコード配列である。デバイス構成情報101のうちのこのアイキャッシャの部分だけを読出し解析することで、読み出された部分が、デバイス構成情報101の一部なのかそうでないのかを識別することができる。
フォーマットレビジョン番号とは、デバイス構成情報101のフォーマットを表す番号である。これは、例えば、デバイス構成情報のフォーマットがバージョンチェンジした場合などに有効である。フォーマットレビジョン番号を解析することにより、その後に続く構成を特定することができる。具体的には、どういった情報要素が、デバイス構成情報の先頭から何バイトオフセットした位置に何バイト分書かれているかということを特定することができる。これを特定できた場合、例えば、所望の情報要素を読み出す場合には、ストレージ仮想化装置600は、その情報要素に対応するアドレスを指定したリードコマンドを発行すれば良い。
マッピングされているストレージ仮想化装置の数とは、このデバイス構成情報101で管理されている外部VOL42にマッピングされているストレージ仮想化装置の数を意味する。ストレージ仮想化装置600は、デバイス構成情報101を、複数のストレージ仮想化装置600がアクセス可能な共有記憶域(例えば、前述した外部VOL42)にデバイス構成情報101を設定する場合や、その共有記憶域からデバイス構成情報101を読み出して自身の所定の記憶域(例えば共有メモリ25)に設定する場合に、その共有記憶域上のデバイス構成情報101におけるkを、更新する(例えば1加算する)ことができる。このkを参照することにより、各ストレージ仮想化装置600は、同一の外部VOLに何台のストレージ仮想化装置600がマッピングされているのかを判別することができる。
ユニーク管理番号とは、このデバイス構成情報101を一意に識別するための番号である。ユニーク管理番号は、例えば、ストレージサブシステム40に送信したinquiryコマンドに対する応答として受信した情報(以下、inquiry情報)から抽出される情報要素(例えば、ストレージサブシステム40のベンダ名、型名、製造番号)により構成することができる。ユニーク管理番号は、このデバイス構成情報に固有の番号となる。一方、前述したアイキャッチャは、情報の種別としてデバイス構成情報であることを知らしめる番号であれば良いので、複数のデバイス構成情報で同じコード配列であっても良い。
仮想化装置情報とは、マッピングされているストレージ仮想化装置に関する情報であり、具体的には、例えば、ストレージ仮想化装置の型名及び製造番号で構成される情報である。なお、仮想化装置情報は、k個存在する。
オーナー情報は、主に外部VOLを管理しているストレージ仮想化装置(オーナー)に関する情報である。例えば、ストレージサブシステム40は、オーナー以外によるデバイス構成情報の変更を受付けないことができる。なお、オーナー情報に代えて、マッピングされているストレージ仮想化装置の優先順位であっても良い。
仮想VOL情報は、VDEV#に関連付けられている仮想VOLに関する情報である。具体的には、例えば、仮想VOL情報には、(1)RAIDレベル、(2)ストライプ情報、(3)外部VOLの組み合わせ情報(どの外部VOLとどの外部VOLがセットになっているかを表す情報)、及び(4)外部LUNパス(ストレージ仮想化装置のイニシエータポート#から外部LUNとの間のパス)のうちの少なくとも(1)及び/又は(2)と、(3)とが含まれる。この仮想VOL情報が、例えば、上記第二変換テーブル703に相当する。
内部LDEV情報とは、一又は複数の仮想VOL102に対応付けられている一又は複数の内部LDEV32に関する情報である。具体的には、例えば、内部LDEV情報には、内部LDEVのサイズ、内部LDEVの数、内部LDEV連結情報(幾つの内部LDEVを一つの論理的な記憶デバイスとするか)、内部LDEV属性(例えば、LDEV#、エミュレーションタイプなど)が含まれる。上記仮想VOL情報とこの内部LDEV情報とのセットにより、内部LDEVと外部VOLとの対応付けがなされている。なお、この実施形態では、個々の内部LDEVのサイズは同じであり、幾つの内部LDEVが内部LUNに対応付けられるかによって、その内部LUNにより提供される内部VOLのサイズを決定することができる。個々の内部LDEVのサイズは、他の内部LDEVのサイズと違っても良い。
ホスト/仮想化装置情報とは、ホストとストレージ仮想化装置との両方に関する情報である。ホスト/仮想化装置情報には、例えば、パス定義情報(例えば、ストレージ仮想化装置のWWN、内部LUN、及び内部LDEV#のセット)、セキュリティ情報(例えば、内部LUN及び/又は内部LDEVに設定されたアクセス制限情報)が含まれている。アクセス制限情報としては、例えば、どのホスト装置がアクセス可能かや、リードとライトのうちのいずれのアクセスが可能か等がある。なお、パス定義情報があれば、そのパス定義情報と、仮想VOL情報や内部LDEV情報とを組み合わせることにより、第二のストレージ仮想化装置600Bでも、内部LUN−内部LDEV#−VDEV#−外部WWN−外部LUNの組み合わせを同じにすることができる。もし、パス定義情報が無い場合には、内部LUNは、第二のストレージ仮想化装置600Bの任意の内部LUNとされても良い。この場合であっても、第一のストレージ仮想化装置600Aと同じ論理的なデバイス構成を構築することができるし、後述する工夫により、ホスト装置10に交替パスを認識させることも可能である。
以上のデバイス構成情報101は、例えば、SVP23を操作する管理者によって構築することができる。或いは、デバイス構成情報101の少なくとも一部は、CHA21BがCHA217に対して発行したコマンドの応答に基づいて、CHA21Bが構築することができる。具体的には、例えば、CHA21Bは、上記(A)として、所定のコード配列を登録することができる。また、CHA21Bは、上記(B)として、登録するデバイス構成情報101のフォーマットに対応した番号を登録することができる。また、CHA21Bは、(C)として、初期値1を登録し、上記(E)として、自分に関する情報を登録することができる。また、CHA21Bは、inquiryコマンドをストレージサブシステム40に送信し、その応答として得られたinquiry情報中の種々の情報要素を用いて、上記(D)を生成して登録し、且つ、それらの情報要素と、ストレージ仮想化装置600Aで管理されている、内部LUNと内部LDEVに関する情報を基に、上記(G)及び(H)を構成することができる。(具体的には、例えば、上記(G)及び(H)の作成には、特開2005−107645号公報(US Application No. 10/769,805 US Publication No. US2005/0071559A1)の図5に記載の処理を援用してもよい。)また、CHA21Bは、上記(F)として、自分を表す情報を登録することができる。また、CHB21Bは、内部LUNと内部LDEVに関する情報を基に、上記(I)を表す情報を登録することができる。
第一のストレージ仮想化装置600Aのデバイス構成情報101は、図8を参照して説明した構成情報IO処理によって、第二のストレージ仮想化装置600Bに設定されるが、以下、その構成情報IO処理の流れを、詳細に説明する。
図10は、構成情報IO処理の詳細な流れの一例を示す。
第二のストレージ仮想化装置600Bが増設された場合(S201)、第二のストレージ仮想化装置600BのCHA21C(イニシエータ)が、ストレージサブシステム40のターゲットポートを認識する(S202)。CHA21Cは、認識したターゲットポートを指定したレポートLUNコマンドを送信する(S203)。
ターゲットポートを有するCHA217は、指定されたターゲットポートに属しているLUNを、共有メモリ221に格納されているストレージ管理テーブル223を参照することにより特定し、特定された全ての外部LUNを、CHA21Cに報告する(S204)。ストレージ管理テーブル223は、例えば、ターゲットポートのWWNと、それに属する外部LUNと、その外部LUNに対応するデバイス種別と、その外部LUNに属する外部LDEV#とが登録されているテーブルである。
CHA21Cは、報告された各外部LUNを指定した各inquiryコマンドを送信する(S205)。
CHA217は、inquiryコマンドを受信した場合、そのコマンドで指定されたLUNに関連する属性データ(例えば、LUNに対応する論理ユニットのデバイス種別)を、ストレージ管理テーブル223を参照することにより特定し、特定された属性データを送信する。
CHA21Cは、受信した属性データが、所定属性であるか否かを判別する(S207)。ここで、所定属性とは、例えば、デバイス構成情報101が格納され得る外部VOL42を有する記憶装置種類であり、より具体的には、例えば、ディスクである。
CHA21Cは、受信した属性データが所定属性であれば(S207でYES)、所定の場所を表すアドレスを含んだリードコマンドを送信する(S208)。ここで、所定の場所とは、例えば、デバイス構成情報101のアイキャッチャが存在し得る領域(例えば、外部VOL42の先頭LBA)である。
CHA217は、CHA21Cからリードコマンドを受信した場合、そのリードコマンドのアドレスからデータを読み出すことをDKA219に指示することにより、そのアドレスに存在するデータを取得し、取得したデータを送信する(S209)。
CHA21Cは、データを受信した場合、そのデータが、特定のコード配列になっているか否か、つまり、そのデータがアイキャッチャであるか否かを判断する(S210)。
CHA21Cは、受信したデータがアイキャッチャであれば(S210でYES)、デバイス構成情報101を構成する残りのデータを読むためのリードコマンドを送信する(S211)。
CHA217は、そのリードコマンドを受信した場合、そのリードコマンドに従う場所からデータを読み出すことをDKA219に指示することにより、その場所に存在するデータを取得し、取得したデータ(すなわち、デバイス構成情報101のアイキャッチャ以外の部分)を送信する(S212)。
CHA21Cは、上記受信したアイキャッチャと、受信した、デバイス構成情報101のアイキャッチャ以外の部分とで構成されるデバイス構成情報101を、共有メモリ25Bに格納する(S213)。
S207でNO、S210でNO、又はS213の後、S205で報告された全ての外部LUNについての属性データを受信していれば(S214でYES)、終了となり、そうでなければ、他の外部LUNの属性データについて、S207が行われる。
以上が、構成情報IO処理の第一の例についての説明である。なお、以上の処理流れにおいて、CHA21Cは、アイキャッチャに加えてフォーマットレビジョン番号を読出し、アイキャッチャからデバイス構成情報101であることを識別した場合には、フォーマットレビジョン番号から、そのデバイス構成情報101の構成を識別しても良い。そして、CHA21Cは、マッピングされているストレージ仮想化装置の数kを更新するライトコマンドを発生することにより、そのkの値を1増やした後に、デバイス構成情報101の残りのデータを読み出しても良い。
次に、構成情報IO処理の第二の例について説明する。
図11は、構成情報IO処理の第二の例を示す。以下、第一の例との相違点を主に説明し、第一の例との共通点については説明を省略或いは簡略する(これは、後述の第三及び第四の例についても同様である)。
この第二の例では、デバイス構成情報101で管理されている外部VOL42とは別の新規外部VOL42´に、デバイス構成情報101が格納される。具体的には、例えば、第一のストレージ仮想化装置600Aが、共有メモリ25Aからデバイス構成情報101を読み出して記憶域910Aに書き(S301)、その記憶域910Aからデバイス構成情報101を読み出して新規外部VOL42´に書く(S302)。新規外部VOL42´は、ストレージサブシステム40から選択された未使用のVOLとすることができる。未使用のVOLの選択は、例えば、第一のストレージ仮想化装置600Aが行うことができる。
第二のストレージ仮想化装置600Bは、所定属性の外部LUNに対してリードコマンドを発行することにより、新規外部VOL42´からデバイス構成情報101を読み出して記憶域910Bに書き(S303)、そのデバイス構成情報101を共有メモリ25Bに書くことができる(S304)。この結果、第一のストレージ仮想化装置600Aに存在する仮想的な内部VOL132(外部VOL42に対応するVOL)が、第二のストレージ仮想化装置600Bにも生成される(S305)。
以上が、構成情報IO処理の第二の例についての説明である。第二の例は、例えば、第一の例において、デバイス構成情報101で管理されている外部VOLが、使用中、システム領域が無い、或いは、デバイス構成情報101を格納することができる程の空きサイズが無い、のいずれかの場合に有効であると考えられる。
次に、構成情報IO処理の第三の例について説明する。
図12は、構成情報IO処理の第三の例を示す。
この第三の例では、内部VOL31(内部ディスク400上に設けられる論理的な記憶デバイス)に、デバイス構成情報101が格納される(S401)。第一のストレージ仮想化装置600と、第二のストレージ仮想化装置600Bは、ケーブル981により接続される。
第二のストレージ仮想化装置600Bは、内部VOL31の内部LUNを指定したリードコマンドを、ケーブル981を介して、第一のストレージ仮想化装置600Aに送信する(S402)。第一のストレージ仮想化装置600Aは、指定された内部LUNに対応する内部VOL31内のデバイス構成情報101を、第二のストレージ仮想化装置600Bに送信する(S403)。第二のストレージ仮想化装置600Bは、受信したデバイス構成情報101を記憶域910Bに書き、そのデバイス構成情報を共有メモリ25Bに書く(S404)。この結果、第一のストレージ仮想化装置600Aに存在する仮想的な内部VOL132(外部VOL42に対応するVOL)が、第二のストレージ仮想化装置600Bにも生成される(S405)。
以上が、構成情報IO処理の第三の例についての説明である。第三の例は、例えば、第一及び第二の例において、デバイス構成情報101を格納するための外部VOLが無い場合に、有効であると考えられる。
次に、構成情報IO処理の第四の例について説明する。
図13は、構成情報IO処理の第四の例を示す。
この第四の例では、記憶域910Aが、VDEV971に存在する仮想VOL102とは別種の仮想VOLである。仮想VOL910Aは、共有メモリ25A或いはキャッシュメモリ上に設けられた記憶空間である。
仮想VOL910Aに、デバイス構成情報101が格納される(S501)。第二のストレージ仮想化装置600Bは、仮想VOL910Aの内部LUNを指定したリードコマンドを、ケーブル981を介して、第一のストレージ仮想化装置600Aに送信する(S502)。第一のストレージ仮想化装置600Aは、指定された内部LUNに対応する仮想VOL910A内のデバイス構成情報101を、第二のストレージ仮想化装置600Bに送信する(S503)。第二のストレージ仮想化装置600Bは、受信したデバイス構成情報101を記憶域910Bに書き、そのデバイス構成情報101を共有メモリ25Bに書く(S504)。この結果、第一のストレージ仮想化装置600Aに存在する仮想的な内部VOL132(外部VOL42に対応するVOL)が、第二のストレージ仮想化装置600Bにも生成される(S505)。
以上が、構成情報IO処理の第四の例についての説明である。第四の例は、例えば、第一〜第三の例において、デバイス構成情報101を格納するための外部VOL及び内部VOLが無い場合に、有効であると考えられる。なお、第三及び第四の例では、第一のストレージ仮想化装置600と、第二のストレージ仮想化装置600Bは、第一或いは第二の通信ネットワークを介して通信しても良い。
以上の第一〜第四の例のうちのいずれの例に対応する構成情報IO処理を行うかは、例えば、管理者が、予め決めておいても良いし、第一のストレージ管理装置600A、例えば、CHA21Bが、ストレージサブシステム40の状況や自身の状況に応じて選択してもよい。
図14は、構成情報IO処理の選択ための処理の流れの一例を示す。
CHA21Bは、デバイス構成情報101で管理されている外部VOLにシステム領域があるか否かを判断する(S601)。システム領域があると判断した場合には(S601でYES)、CHA21Bは、図8に示した構成情報IO処理(第一の例に従う構成情報IO処理)を行う。なお、この判断は、例えば、外部VOLの外部LUNに対するinquiry情報中の情報要素を解析することにより行うことができる。なお、その情報要素としては、例えば、システム領域の有無を表す情報とすることができる。
CHA21Bは、S601でNOの場合、未使用の外部VOLがあるか否かを判断する(S602)。未使用の外部VOLがあると判断した場合には(S602でYES)、CHA21Bは、図11に示した構成情報IO処理(第二の例に従う構成情報IO処理)を行う。なお、この判断は、例えば、外部VOLの外部LUNに対するinquiry情報中の情報要素を解析することにより行うことができる。なお、その情報要素としては、例えば、使用中か未使用かを表すステータスとすることができる。
CHA21Bは、S602でNOの場合、未使用の内部VOL31があるか否かを判断する(S603)。未使用の内部VOL31があると判断した場合には(S603でYES)、CHA21Bは、図12に示した構成情報IO処理(第三の例に従う構成情報IO処理)を行う。なお、この判断は、例えば、前述したストレージ管理テーブル223に登録されている、各内部VOL31のステータス(例えば、使用中、未使用)を参照することにより、行うことができる。
CHA21Bは、S603でNOの場合、図13に示した構成情報IO処理(第四の例に従う構成情報IO処理)を行う。
第一〜第四の例において、第一の例が最も効果的であり、次いで、第二の例が効果的であると考えられる。第一の例が第二の例よりも効果的であると考えられるのは、第二の例のように、余計に外部VOLを必要としないからである。第二の例が第三及び第四の例よりも効果的であると考えられるのは、ストレージ仮想化装置同士を接続するケーブルが不要となるし、第一のストレージ仮想化装置600Aが除去されても、ストレージサブシステム40が存在すれば、他のストレージ仮想化装置がデバイス構成情報を取得することができるからである。
以上の説明によれば、第一のストレージ仮想化装置600A内の論理的なデバイス構成を第二のストレージ仮想化装置600Bに構築することを、人間に実質的に負担をかけることなく行うことができる。
また、以上の説明によれば、複数のストレージ仮想化装置600で同じ外部VOLをマッピングして作成した場合、全ストレージ仮想化装置600で、ストレージサブシステム40から作成する仮想VOLを、同じサイズ、ストライプ構成及びRAIDレベルなどにより作成することができる。この結果、作成される仮想VOLはデータとして整合性がとれるようになる。
ところで、デバイス構成情報101は、例えば、以下の手順で、変更することができる。
図18Aは、デバイス構成情報を変更するストレージ仮想化装置600により行われる処理の流れの一例を示す。
例えば、CHA21Bが、デバイス構成情報の変更を希望することを意味する情報(以下、変更希望情報)を書くためのライトコマンドを、ストレージサブシステム40に送信する。それにより、そのライトコマンドで指定したアドレスが表す場所に、変更希望情報が書かれる。
CHA21Bは、ストレージサブシステム40の特定の共有記憶領域に、k−1個の変更許可が記録されているか否かを定期的に監視する(S802)。k−1個とは、マッピングされているストレージ仮想化装置の数kから自分の分を減じたことを意味する。
CHA21Bは、k−1個の変更許可が共有記憶領域に書かれていれば(S802でYES)、デバイス構成情報を変更する(S803)。具体的には、例えば、CHA21Bは、変更前のデバイス構成情報を削除し、変更後のデバイス構成情報を、外部VOLに書く。
一方、CHA21Bは、k−1個の変更許可が得られなければ(S802でNO)、例えば、一つでも変更拒否が共有記憶領域に書かれていれば、デバイス構成情報を変更することなく終了する。
なお、この図18Aに示す処理において、CHA21Bは、オーナー情報を参照し、このストレージ仮想化装置600がオーナーではない場合には、S801を行うことなく終了しても良い。その際、CHA21Bは、オーナーではないためにデバイス構成情報を変更できないことを表すメッセージを、表示しても良い。
図18Bは、デバイス構成情報を変更するストレージ仮想化装置600以外のストレージ仮想化装置600により行われる処理の流れの一例を示す。
例えば、CHA21Bが、ストレージサブシステム40の特定の共有記憶領域を定期的に参照し、変更希望情報が書かれていれば(S811でYES)、変更許可とするか否かを判断する(S812)。例えば、変更希望のデバイス構成情報で管理されている外部VOL42を使用中であれば、CHA21Bは、変更拒否を、上記共有記憶領域に登録し(S813)、そうでなければ、変更許可をその共有記憶領域に登録する(S814)。外部VOL42の使用中としては、例えば、その外部VOL42にアクセスコマンドを発行して応答待ちである、外部VOL42と他の外部VOL42との間でデータコピーを行うためのVOLペアの一方となっている、などがある。
なお、変更許可か変更拒否かが登録される共有記憶領域は、ストレージサブシステム40に設けられても良いし、ストレージ仮想化装置600にもうけられても良い。
さて、第二のストレージ仮想化装置600Bに、第一のストレージ仮想化装置600Aの論理的なデバイス構成が構築された場合、図15に例示するように、ホスト装置10と外部LUNとの間で、第一のストレージ仮想化装置600Aを経由するパスの他に、第二のストレージ仮想化装置600Bを経由するパスが形成されることになる。すなわち、交替パスができることになる。
しかし、何の工夫もされないと、ホスト装置10は、交替パスを認識することができない。なぜなら、第一及び第二のストレージ仮想化装置600A及び600Bのそれぞれの内部LUN(図15の例では、両方とも内部LUN"1")を指定してinquiryコマンドを送信した場合、指定したそれぞれの内部LUNが、同一の外部LUNに通じるパスの内部LUNであっても、応答として受けるinquiry情報に含まれているWWN(ターゲットポートのWWN)が、異なっているためである。
この実施形態では、第二のストレージ仮想化装置600Bが、指定された内部LUNのinquiry情報の内容を制御することにより、外部LUNに対する交替パスを認識させることができる。それを実現するための方法としては、例えば、以下の二つの方法が考えられる。以下、それぞれの方法について説明する。
図16Aは、ホスト装置10に外部LUNに対する交替パスを認識させるための第一の方法に従う処理の流れの一例を示す。
第二のストレージ仮想化装置600Bにおいて、ホスト装置10からコマンドを受け付けるCHA21Dは、ホスト装置10から、内部LUNを指定したinquiryコマンドを受信した場合(S701)、ボリューム構成情報101からユニーク管理番号を抽出し、そのユニーク管理番号を含んだinquiry情報を送信する(S702)。なお、CHA21Dは、指定された内部LUNが、共有メモリ25Bに記憶されたデバイス構成情報101に含まれている内部LUNか否かを判別し、肯定的な判別結果が得られた場合に、S702を行っても良い。
ホスト装置10(例えば、図示しないパス管理ソフトウェア)は、第一のストレージ仮想化装置600Aから受けたinquiry情報に含まれていたユニーク管理番号を所定の記憶域に記憶させておく。ホスト装置10は、今回第二のストレージ仮想化装置600Bから受けたinquiry情報中のユニーク管理番号と、上記所定の記憶域に記憶されているユニーク管理番号とを比較照合し、一致が得られた場合に、S701で指定したLUNを経由するパスは、交替パスであることを認識することができる。
図16Bは、ホスト装置10に外部LUNに対する交替パスを認識させるための第二の方法に従う処理の流れの一例を示す。
第二のストレージ仮想化装置600Bにおいて、CHA21Dは、ホスト装置10から、内部LUNを指定したinquiryコマンドを受信した場合(S711)、その内部LUNに対応する外部LUNにユニークな情報を含んだinquiry情報を送信する(S712)。なお、CHA21Dは、指定された内部LUNが、共有メモリ25Bに記憶されたデバイス構成情報101に含まれている内部LUNか否かを判別し、肯定的な判別結果が得られた場合に、S712を行っても良い。また、上記ユニークな情報としては、例えば、外部LUNのinquiry情報から抽出されたユニークな情報要素とすることができる。
ホスト装置10(例えば、図示しないパス管理ソフトウェア)は、第一のストレージ仮想化装置600Aから受けたinquiry情報に含まれていたユニーク情報を所定の記憶域に記憶させておく。ホスト装置10は、今回第二のストレージ仮想化装置600Bから受けたinquiry情報中のユニーク情報と、上記所定の記憶域に記憶されているユニーク情報とを比較照合し、一致が得られた場合に、S711で指定したLUNを経由するパスは、交替パスであることを認識することができる。
上記の第一及び第二の方法のいずれの方法においても、ストレージ仮想化装置600A、600Bの識別子は不要である。ホスト装置10は、ストレージ仮想化装置600A、600B内の内部LUNを認識するが、その内部LUNが、どのストレージ仮想化装置に存在するかを認識しない。
ホスト装置10は、交替パスを認識した場合、同一の外部LUNのアクセスの際に経由すする交替パスを、適宜に切り替えることができる。
図17Aは、第一のパス切替処理の一例を示す。
ホスト装置10に、CPUによって実行されるコンピュータプログラムの一つであるパス切替ソフトウェアが搭載されている。パス切替ソフトウェアは、パスの連続使用回数をカウントする機能を有しており、所定回数連続して、同じパスを経由して、同一の外部LUNに対応した内部LUNにアクセスした場合には(S901でYES)、違う交替パスを経由して、同一の外部LUNに対応した違う内部LUNにアクセスする(S902)。そうではない場合には(S901でNO)、パス切替ソフトウェアは、同一のパスを経由してアクセスを行う(S903)。
図17Bは、第二のパス切替処理の一例を示す。
パス切替ソフトウェアは、使用するパスの経由地点であるストレージ仮想化装置600から負荷が高いことの通知を受けた場合、又は、そのストレージ仮想化装置600からの応答が無い場合には(S911でYES)、そのパスとは異なる交替パスを経由するアクセスを行う(S912)。そうではない場合には(S911でNO)、パス切替ソフトウェアは、そのパスを経由してアクセスを行う(S913)。
なお、この例では、各ストレージ仮想化装置600は、各パスの負荷(例えば、各ターゲットポートの負荷)を監視し、その負荷が所定値よりも高くなった場合に、負荷が高いことをホスト装置10に通知することができる。或いは、各ストレージ仮想化装置600は、パスの負荷が所定値を超えた場合には、ホスト装置10に応答を返さなくなってもよい。
図17Cは、第三のパス切替処理の一例を示す。
本実施形態に従う計算機システムにおいて、例えば、第一の通信ネットワーク105に、ホスト装置10と各ストレージ仮想化装置600との間のパスの負荷(例えば、単位時間当たりに流れるデータ量)を監視する管理サーバが備えられても良い。管理サーバは、例えば、各ストレージ仮想化装置600から、各ターゲットポートの負荷を収集することにより、各パスの負荷を把握することができる。管理サーバは、所定の負荷を超えたパスがある場合には、そのパスと同一の外部LUNに接続される他の交替パスを使用することのパス切替指示を、ホスト装置10に送信することができる。
パス切替ソフトウェアは、管理サーバからパス切替指示を受けた場合には(S921でYES)、使用するパスを切り替え(S922)、そうでなければ、パスを切り替えずにアクセスを行う(S923)。
以上、パス切替方法の例を説明したが、その例に限らず、他の方法が採用されても良い。パス切替の方法としては、例えば、特開2006−40026号公報(US Application No. 10/975,447 US Publication No. US2006/0026346A1)に開示されている方法を援用してもよい。また、上記のパス切替は、ストレージ仮想化装置600とストレージサブシステムの外部LUNとの間に形成された交替パスの切り替えにも適用することができる。
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、上述した実施形態では、ストレージ仮想化装置600とストレージサブシステム40との間の通信は、iSCSIプロトコルに従って行われても良い。その場合、例えば、ストレージ仮想化装置600及びストレージサブシステム40のCHAに代えて、iSCSIネーム(iSCSIプロトコルにおけるユニークなID)が割当てられた通信ポートを有するチャネルアダプタが備えられても良い。また、その場合、例えば、上述した実施形態において、ストレージ仮想化装置600とストレージサブシステム40との間では、WWNの代わりにiSCSIネームがやり取りされても良い。また、ホスト装置10と通信するCHA21Aは、NASとして機能するCHAであっても良い。また、上記実施形態に係る計算機システムは、メインフレームシステムにも適用することができる。また、予め、共有記憶領域(例えば前述した外部VOL42或いは新規外部VOL42´)に、デバイス構成情報101を格納しておき、第二のストレージ仮想化装置600Bだけでなく、第一のストレージ仮想化装置600Aも、その共有記憶領域からデバイス構成情報101を読み出して共有メモリ25Aに設定しても良い。
図1は、本発明の一実施形態に係る計算機システムの構成例を示すブロック図である。 図2Aは、ストレージ仮想化装置600とストレージサブシステム40との論理的な接続構造を示す模式図である。図2Bは、増設されたストレージ仮想化装置600Bに、ストレージ仮想化装置600Aの論理的なデバイス構成が構築されたことを示す。 図3は、論理的なデバイス構成の一例を示す。 図4Aは、図3に例示したデバイス構成の場合のデバイス構成情報101の一例を示す。図4Bは、第二変換テーブルの変形例を示す。 図5は、ストレージサブシステム40Aに形成されている交替パスの一例を示す。 図6Aは、記憶階層を中心に示すデータ書込みの流れ図である。図6Bは、キャッシュメモリ24の使われ方を中心に示すデータ書込みの流れ図である。 図7Aは、記憶階層を中心に示すデータ読出しの流れ図である。図7Bは、キャッシュメモリ24の使われ方を中心に示すデータ読出しの流れ図である。 図8は、構成情報IO処理の第一の例を示す。 図9は、デバイス構成情報101の構成例を示す。 図10は、構成情報IO処理の詳細な流れの一例を示す。 図11は、構成情報IO処理の第二の例を示す。 図12は、構成情報IO処理の第三の例を示す。 図13は、構成情報IO処理の第四の例を示す。 図14は、構成情報IO処理の選択ための処理の流れの一例を示す。 図15を、ホスト装置10に交替パスを認識させるための工夫の概要の説明図。 図16Aは、ホスト装置10に外部LUNに対する交替パスを認識させるための第一の方法に従う処理の流れの一例を示す。図16Bは、ホスト装置10に外部LUNに対する交替パスを認識させるための第二の方法に従う処理の流れの一例を示す。 図17Aは、第一のパス切替処理の一例を示す。図17Bは、第二のパス切替処理の一例を示す。図17Cは、第三のパス切替処理の一例を示す。 図18Aは、デバイス構成情報を変更するストレージ仮想化装置600により行われる処理の流れの一例を示す。図18Bは、デバイス構成情報を変更するストレージ仮想化装置600以外のストレージ仮想化装置600により行われる処理の流れの一例を示す。
符号の説明
2…スイッチ 10…ホスト装置 20…コントローラ部 21…チャネルアダプタ(CHA) 22…ディスクアダプタ(DKA) 23…SVP(Service Processor) 24…キャッシュメモリ 25…共有メモリ 30…ディスクユニット 31、132…内部VOL 40…ストレージサブシステム 42…外部VOL 101…デバイス構成情報 32…内部LDEV 600…ストレージ仮想化装置 971…VDEV(仮想デバイス)

Claims (20)

  1. 上位装置とストレージサブシステムに接続される複数のストレージ仮想化装置と、
    前記複数のストレージ仮想化装置の共有記憶領域と
    を備え、
    前記共有記憶領域が、ストレージ仮想化装置内での論理的なデバイス構成を表すデバイス構成情報を記憶し、
    前記論理的なデバイス構成は、前記ストレージサブシステムが備える記憶デバイスである外部記憶デバイスと、一又は複数の前記外部記憶デバイスにより提供される記憶資源を仮想化した記憶空間である仮想デバイスと、ストレージ仮想化装置内の記憶デバイスである内部記憶デバイスを構成する一以上の論理的な記憶デバイスとの関連であり、
    前記複数のストレージ仮想化装置の各々が、
    前記デバイス構成情報を記憶する構成情報記憶域と、
    内部記憶デバイスを指定した第一のアクセスコマンドを前記上位装置から受信し、前記構成情報記憶域に記憶されたデバイス構成情報に基づいて、該指定された内部記憶デバイスに関連付けられている外部記憶デバイスにアクセスするための第二のアクセスコマンドを生成して前記ストレージサブシステムに送信するコントローラと
    を備え、
    前記複数のストレージ仮想化装置のうちの前記上位装置及び前記ストレージサブシステムに新たに接続されたストレージ仮想化装置である新接続ストレージ仮想化装置において、前記コントローラが、前記共有記憶領域から前記デバイス構成情報を読み出し、該読み出したデバイス構成情報を前記構成情報記憶域に書き込む、
    ストレージ仮想化システム。
  2. 前記複数のストレージ仮想化装置には、第一のストレージ仮想化装置と、前記第一のストレージ仮想化装置よりも後に前記上位装置及び前記ストレージサブシステムに接続される第二のストレージ仮想化装置とが含まれ、
    前記第一のストレージ仮想化装置が、第一の構成情報記憶域と第一のコントローラとを備え、前記第一の構成情報記憶域に、前記第一のストレージ仮想化装置内での論理的なデバイス構成を表す前記デバイス構成情報が記憶されており、前記第一のコントローラが、前記第一の構成情報記憶域から前記デバイス構成情報を読み出して前記共有記憶領域に書き込み、
    前記第二のストレージ仮想化装置が、第二の構成情報記憶域と第二のコントローラとを備え、前記第二のコントローラが、前記共有記憶領域から前記デバイス構成情報を読み出し、該デバイス構成情報を前記第二の構成情報記憶域に書き込む、
    請求項1記載のストレージ仮想化システム。
  3. 前記共有記憶領域が、前記デバイス構成情報にマッピングされている外部記憶デバイスのシステム領域であり、
    前記システム領域は、前記複数のストレージ仮想化装置の各々がアクセス可能な記憶領域であるが、前記上位装置からの前記第一のアクセスコマンドを基に発行される前記第二のアクセスコマンドによってはアクセスされない記憶領域である、
    請求項1記載のストレージ仮想化システム。
  4. 前記共有記憶領域が、前記デバイス構成情報にマッピングされている外部記憶デバイスとは別の外部記憶デバイスにある、
    請求項1記載のストレージ仮想化システム。
  5. 前記第一のコントローラが、前記デバイス構成情報にマッピングされている外部記憶デバイスにシステム領域が無い場合に、前記共有記憶領域を、前記デバイス構成情報にマッピングされている外部記憶デバイスとは別の外部記憶デバイスにし、そうではない場合に、前記共有記憶領域を、前記デバイス構成情報にマッピングされている外部記憶デバイスのシステム領域にし、
    前記システム領域は、前記複数のストレージ仮想化装置の各々がアクセス可能な記憶領域であるが、前記上位装置からの前記第一のアクセスコマンドを基に発行される前記第二のアクセスコマンドによってはアクセスされない記憶領域である、
    請求項2記載のストレージ仮想化システム。
  6. 前記複数のストレージ仮想化装置のうちのいずれかが、前記論理的な記憶デバイスとは別の論理的な記憶デバイスを備え、
    前記共有記憶領域は、前記別の論理的な記憶デバイスにある、
    請求項1記載のストレージ仮想化システム。
  7. 前記第一のコントローラが、前記共有記憶領域として使用可能な外部記憶デバイスが前記ストレージサブシステムに無い場合に、前記共有記憶領域を、前記別の論理的な記憶デバイスとし、そうではない場合に、前記共有記憶領域を、外部記憶デバイスにする、
    請求項2記載のストレージ仮想化システム。
  8. 前記デバイス構成情報には、前記論理的なデバイス構成を表す情報の他に、該デバイス構成情報であることを意味するコード配列が含まれており、
    前記コード配列は、前記デバイス構成情報の所定の場所に存在し、
    前記新接続ストレージ仮想化装置の前記コントローラは、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行し、該リードコマンドに従って読み出されたデータが前記コード配列である場合に、前記デバイス構成情報の残りを読み出すためのリードコマンドを前記共有記憶領域に発行する、
    請求項1記載のストレージ仮想化システム。
  9. 前記ストレージサブシステムが、各ストレージ仮想化装置のターゲットとなる通信ポートと、外部記憶デバイスを含んだ複数のデバイスと、前記複数のデバイスにそれぞれ対応する複数の論理ユニット番号(LUN)とを有し、
    前記ストレージサブシステムでは、各通信ポートに、前記複数のLUNのうちの一以上のLUNが属しており、
    前記共有記憶領域は、前記外部記憶デバイスであり、
    前記新接続ストレージ仮想化装置の前記コントローラは、前記ストレージサブシステムが接続されているネットワークに接続されることによって前記ターゲットの通信ポートを認識し、該ターゲットの通信ポートに、第一の照会コマンドを発行し、該第一の照会コマンドに応答して、該ターゲットの通信ポートに属する一以上のLUNの報告を受け、該一以上のLUNの各々に対し、第二の照会コマンドを発行し、該第二の照会コマンドに応答して、指定したLUNに関わる属性を表す属性データを受信し、該属性データが前記外部記憶デバイスを意味するデータであれば、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行する、
    請求項8記載のストレージ仮想化システム。
  10. 前記複数のストレージ仮想化装置のいずれかのストレージ仮想化装置におけるコントローラが、デバイス構成情報の変更希望を意味する情報である変更希望情報を、前記共有記憶領域に書き、
    前記複数のストレージ仮想化装置の他のストレージ仮想化装置における他のコントローラが、前記デバイス構成情報にマッピングされている外部記憶デバイスを使用している場合には、変更を拒否することを意味する変更拒否情報を、前記共有記憶領域に書き込み、そうではない場合には、変更を許可することを意味する変更許可情報を、前記共有記憶領域に書き込み、
    前記コントローラが、前記変更拒否情報が前記共有記憶領域に書き込まれている場合には、前記デバイス構成情報の変更を行わず、前記変更拒否情報が書かれておらず前記変更許可情報が前記共有記憶領域に書き込まれている場合には、前記デバイス構成情報の変更を行う、
    請求項1記載のストレージ仮想化システム。
  11. 前記デバイス構成情報には、前記複数のストレージ仮想化装置の各々の優先度が含まれており、
    前記コントローラが、前記デバイス構成情報に含まれている、該ストレージ仮想化装置の優先度が所定値以下の場合には、前記変更希望情報を前記共有記憶領域に書き込まない、
    請求項10記載のストレージ仮想化システム。
  12. 前記デバイス構成情報に、マッピングされているストレージ仮想化装置の数(=k、k≧2の整数)が記録されており、
    前記コントローラは、k−1個の前記変更許可情報が前記共有記憶領域に書き込まれている場合に、前記デバイス構成情報の変更を行う、
    請求項10記載のストレージ仮想化システム。
  13. 前記新接続ストレージ仮想化装置において、前記コントローラは、特定の照会コマンドを前記上位装置から受けた場合には、前記構成情報記憶域に記憶させた前記デバイス構成情報にマッピングされている外部記憶デバイスに関してユニークな情報を含んだ照会回答情報を返信する、
    請求項1記載のストレージ仮想化システム。
  14. 前記デバイス構成情報に、該デバイス構成情報にユニークなコード配列であるユニークIDが含まれており、
    前記コントローラは、前記デバイス構成情報から前記ユニークIDを抽出し、該ユニークIDを含んだ前記照会回答情報を返信する、
    請求項13記載のストレージ仮想化システム。
  15. 前記コントローラは、前記デバイス構成情報にマッピングされている外部記憶デバイスに対して特定の照会コマンドを発行することによって受信した照会回答情報から、該外部記憶デバイスにユニークの情報を抽出し、特定の照会コマンドを前記上位装置から受けた場合には、前記抽出したユニークの情報を含んだ照会回答情報を返信する、
    請求項13記載のストレージ仮想化システム。
  16. 前記上位装置が、
    各内部記憶デバイスに対して特定の照会コマンドを送信する照会部と、
    各特定の照会コマンドに応答して受信した各照会回答情報に、同じユニークな情報が含まれていた場合に、各照会回答情報を受けた各パスが、同一の記憶デバイスに繋がる交替パスであることを認識する交替パス認識部と、
    前記認識した複数の交替パスのうちの使用する交替パスを切り替えるパス切替部と
    を備える、
    請求項13記載のストレージ仮想化システム。
  17. 前記パス切替部は、以下の(A)乃至(D)のいずれかの場合、
    (A)同じ交替パスを所定回数連続して使用した場合、
    (B)使用している交替パスの負荷が所定値を超えたことを意味する通知を、該交替パスが経由するストレージ仮想化装置から受けた場合、
    (C)使用している交替パスにおいて、該交替パスが経由するストレージ仮想化装置から応答が無い場合、
    (D)前記複数のストレージ仮想化装置と前記上位装置との間の前記複数の交替パスを管理するサーバから、使用する交替パスの切り替えの指示を受けた場合、
    交替パスの切り替えを行う、
    請求項16記載のストレージ仮想化システム。
  18. 前記共有記憶領域が、外部記憶デバイスにあり、
    前記デバイス構成情報には、前記論理的なデバイス構成を表す情報の他に、該デバイス構成情報であることを意味するコード配列が含まれており、
    前記コード配列は、前記デバイス構成情報の所定の場所に存在し、
    前記複数のストレージ仮想化装置には、第一のストレージ仮想化装置と、前記第一のストレージ仮想化装置よりも後に前記上位装置及び前記ストレージサブシステムに接続される第二のストレージ仮想化装置とが含まれ、
    前記第一のストレージ仮想化装置が、第一の構成情報記憶域と第一のコントローラとを備え、前記第一の構成情報記憶域に、前記第一のストレージ仮想化装置内での論理的なデバイス構成を表す前記デバイス構成情報が記憶されており、前記第一のコントローラが、前記第一の構成情報記憶域から前記デバイス構成情報を読み出して前記共有記憶領域に書き込み、
    前記第二のストレージ仮想化装置が、第二の構成情報記憶域と第二のコントローラとを備え、前記第二のコントローラが、前記コード配列が存在する場所を指定したリードコマンドを前記共有記憶領域に発行し、該リードコマンドに従って読み出されたデータが前記コード配列である場合に、前記デバイス構成情報の残りを読み出すためのリードコマンドを前記共有記憶領域に発行し、それによって読み出された情報と前記コード配列とを含む前記デバイス構成情報を、前記第二の構成情報記憶域に書き込み、特定の照会コマンドを前記上位装置から受けた場合には、前記第二の構成情報記憶域に記憶させた前記デバイス構成情報にマッピングされている外部記憶デバイスに関してユニークな情報を含んだ照会回答情報を返信し、
    前記上位装置が、各内部記憶デバイスに対して特定の照会コマンドを送信する照会部と、各特定の照会コマンドに応答して受信した各照会回答情報に、同じユニークな情報が含まれていた場合に、各照会回答情報を受けた各パスが、同一の記憶デバイスに繋がる交替パスであることを認識する交替パス認識部とを備える、
    請求項1記載のストレージ仮想化しシステム。
  19. 上位装置とストレージサブシステムに接続される複数のストレージ仮想化装置の共有記憶領域が、ストレージ仮想化装置内での論理的なデバイス構成を表すデバイス構成情報を記憶し、
    前記論理的なデバイス構成は、前記ストレージサブシステムが備える記憶デバイスである外部記憶デバイスと、一又は複数の前記外部記憶デバイスにより提供される記憶資源を仮想化した記憶空間である仮想デバイスと、ストレージ仮想化装置内の記憶デバイスである内部記憶デバイスを構成する一以上の論理的な記憶デバイスとの関連であり、
    前記複数のストレージ仮想化装置のうちの前記上位装置及び前記ストレージサブシステムに新たに接続されたストレージ仮想化装置が、前記共有記憶領域から前記デバイス構成情報を読み出し、該読み出したデバイス構成情報を、該ストレージ仮想化装置が備える構成情報記憶域に書き込む、
    ストレージ仮想化方法。
  20. 上位装置とストレージサブシステムに接続されるストレージ仮想化装置において、
    記憶域と、
    他のストレージ仮想化装置との共有記憶領域から、論理的なデバイス構成を表す情報であるデバイス構成情報を読出し前記記憶域に書き込むコントローラと
    を備え、
    前記論理的なデバイス構成は、前記ストレージサブシステムが備える記憶デバイスである外部記憶デバイスと、一又は複数の前記外部記憶デバイスにより提供される記憶資源を仮想化した記憶空間である仮想デバイスと、ストレージ仮想化装置内の記憶デバイスである内部記憶デバイスを構成する一以上の論理的な記憶デバイスとの関連であり、
    前記コントローラは、内部記憶デバイスを指定した第一のアクセスコマンドを前記上位装置から受信し、前記構成情報記憶域に書きこんだデバイス構成情報に基づいて、該指定された内部記憶デバイスに関連付けられている外部記憶デバイスにアクセスするための第二のアクセスコマンドを生成して前記ストレージサブシステムに送信する、
    ストレージ仮想化装置。
JP2006160008A 2006-06-08 2006-06-08 ストレージ仮想化システム及び方法 Pending JP2007328611A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006160008A JP2007328611A (ja) 2006-06-08 2006-06-08 ストレージ仮想化システム及び方法
US11/492,097 US7636818B2 (en) 2006-06-08 2006-07-25 Storage virtualization system and method
EP07251190A EP1868075A3 (en) 2006-06-08 2007-03-21 Storage virtualization system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006160008A JP2007328611A (ja) 2006-06-08 2006-06-08 ストレージ仮想化システム及び方法

Publications (1)

Publication Number Publication Date
JP2007328611A true JP2007328611A (ja) 2007-12-20

Family

ID=38508829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006160008A Pending JP2007328611A (ja) 2006-06-08 2006-06-08 ストレージ仮想化システム及び方法

Country Status (3)

Country Link
US (1) US7636818B2 (ja)
EP (1) EP1868075A3 (ja)
JP (1) JP2007328611A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151772A (ja) * 2007-12-20 2009-07-09 Internatl Business Mach Corp <Ibm> ストレージ・インフラにおけるストレージ仮想化を管理するための方法、システム、およびコンピュータ・プログラム
JP2010079626A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd 計算機システムの負荷分散方法及びシステム
JP2013514588A (ja) * 2009-12-17 2013-04-25 マイクロソフト コーポレーション 仮想記憶ターゲットオフロード技術
JP2015506506A (ja) * 2011-12-23 2015-03-02 シーラス・データ・ソリューションズ・インコーポレーテッド データ管理サービスを提供するシステム、および方法
JP2018530845A (ja) * 2015-08-06 2018-10-18 ドライブスケール・インク コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
US11436113B2 (en) 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
US11487466B2 (en) 2020-07-16 2022-11-01 Fujitsu Limited Information processing apparatus reading data using host physcal address and guest physical address and computer-readable recording medium recording control program reading data using host physical address and guest physical address

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245379A (ja) * 2008-03-31 2009-10-22 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法
CN101763313B (zh) * 2009-12-17 2011-09-07 成都市华为赛门铁克科技有限公司 一种服务器及其访问卷的方法
CN102244653B (zh) 2010-05-14 2014-07-23 杭州华三通信技术有限公司 一种存储虚拟化的动态维护方法和系统
US8489827B2 (en) 2010-10-28 2013-07-16 Hewlett-Packard Development Company, L.P. Method and system for storage-system management
WO2012147127A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Computer system and control method of the computer system
JP5938968B2 (ja) * 2012-03-19 2016-06-22 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US20160006829A1 (en) * 2013-10-02 2016-01-07 Hitachi, Ltd. Data management system and data management method
JP6255895B2 (ja) * 2013-10-24 2018-01-10 富士通株式会社 ストレージ制御装置、およびプログラム
DE112014006605B4 (de) * 2014-04-21 2023-02-16 Hitachi, Ltd. Speichersystem
CN105843548B (zh) * 2015-01-14 2020-07-24 联想(北京)有限公司 一种扩展存储设备的连接方法及装置
US10346248B2 (en) 2016-06-23 2019-07-09 Red Hat Israel, Ltd. Failure resistant volume creation in a shared storage environment
US20180059990A1 (en) 2016-08-25 2018-03-01 Microsoft Technology Licensing, Llc Storage Virtualization For Files
US11507534B2 (en) 2017-05-11 2022-11-22 Microsoft Technology Licensing, Llc Metadata storage for placeholders in a storage virtualization system
US11334387B2 (en) * 2019-05-28 2022-05-17 Micron Technology, Inc. Throttle memory as a service based on connectivity bandwidth
US11061819B2 (en) 2019-05-28 2021-07-13 Micron Technology, Inc. Distributed computing based on memory as a service
US11438414B2 (en) 2019-05-28 2022-09-06 Micron Technology, Inc. Inter operating system memory services over communication network connections
US11100007B2 (en) 2019-05-28 2021-08-24 Micron Technology, Inc. Memory management unit (MMU) for accessing borrowed memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003688B1 (en) * 2001-11-15 2006-02-21 Xiotech Corporation System and method for a reserved memory area shared by all redundant storage controllers
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP4386694B2 (ja) * 2003-09-16 2009-12-16 株式会社日立製作所 記憶システム及び記憶制御装置
JP4307202B2 (ja) 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
JP2005115506A (ja) * 2003-10-06 2005-04-28 Hitachi Ltd ストレージシステム
JP2006024024A (ja) * 2004-07-08 2006-01-26 Toshiba Corp 論理ディスク管理方法及び装置
JP4643198B2 (ja) 2004-07-28 2011-03-02 株式会社日立製作所 負荷分散コンピュータシステム、経路設定プログラム及びその方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151772A (ja) * 2007-12-20 2009-07-09 Internatl Business Mach Corp <Ibm> ストレージ・インフラにおけるストレージ仮想化を管理するための方法、システム、およびコンピュータ・プログラム
JP2010079626A (ja) * 2008-09-26 2010-04-08 Hitachi Ltd 計算機システムの負荷分散方法及びシステム
JP2013514588A (ja) * 2009-12-17 2013-04-25 マイクロソフト コーポレーション 仮想記憶ターゲットオフロード技術
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US10248334B2 (en) 2009-12-17 2019-04-02 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP2015506506A (ja) * 2011-12-23 2015-03-02 シーラス・データ・ソリューションズ・インコーポレーテッド データ管理サービスを提供するシステム、および方法
JP2018530845A (ja) * 2015-08-06 2018-10-18 ドライブスケール・インク コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
JP2022050512A (ja) * 2015-08-06 2022-03-30 ツイッター インコーポレイテッド コンバージドネットワークにおいて記憶データトラフィックを均衡化する方法及びシステム
US11436113B2 (en) 2018-06-28 2022-09-06 Twitter, Inc. Method and system for maintaining storage device failure tolerance in a composable infrastructure
US11487466B2 (en) 2020-07-16 2022-11-01 Fujitsu Limited Information processing apparatus reading data using host physcal address and guest physical address and computer-readable recording medium recording control program reading data using host physical address and guest physical address

Also Published As

Publication number Publication date
US20070288700A1 (en) 2007-12-13
US7636818B2 (en) 2009-12-22
EP1868075A2 (en) 2007-12-19
EP1868075A3 (en) 2010-01-20

Similar Documents

Publication Publication Date Title
JP2007328611A (ja) ストレージ仮想化システム及び方法
JP4963892B2 (ja) 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
US8484425B2 (en) Storage system and operation method of storage system including first and second virtualization devices
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
JP4990505B2 (ja) 記憶制御装置及びストレージシステム
US7660946B2 (en) Storage control system and storage control method
US8250317B2 (en) Storage system managing information in accordance with changes in the storage system configuration
US8291163B2 (en) Storage apparatus and configuration setting method
JP2005250938A (ja) 記憶制御システム及び方法
JP2007141216A (ja) 複数のプロトコルアクセス可能なosdストレージサブシステムのためのシステム、方法および装置
JP2010231807A (ja) 記憶装置システム
JP2008021116A (ja) San/nas統合管理計算機及び方法
JP2007213466A (ja) 仮想ストレージシステム及びその制御方法
US20060190550A1 (en) Storage system and controlling method thereof, and device and recording medium in storage system
JP4783086B2 (ja) ストレージシステム、ストレージアクセス制限方法、及びコンピュータプログラム
JP4874515B2 (ja) 記憶装置システム
JP4640770B2 (ja) 外部の装置に接続される制御装置
JP2009129261A (ja) ストレージシステム及びストレージシステムの外部ボリューム接続経路探索方法
JP2015215708A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP2006134049A (ja) ホスト装置が接続される制御装置の接続部とその制御装置が備える記憶デバイスとの間の論理パスを生成する装置及び方法
JP2007141264A (ja) 記憶装置システム
US20120265955A1 (en) Storage control apparatus for copying data between logical volumes, storage system comprising this storage control apparatus, and storage control method