JP2009258825A - ストレージシステム、仮想化装置、及び計算機システム - Google Patents

ストレージシステム、仮想化装置、及び計算機システム Download PDF

Info

Publication number
JP2009258825A
JP2009258825A JP2008104463A JP2008104463A JP2009258825A JP 2009258825 A JP2009258825 A JP 2009258825A JP 2008104463 A JP2008104463 A JP 2008104463A JP 2008104463 A JP2008104463 A JP 2008104463A JP 2009258825 A JP2009258825 A JP 2009258825A
Authority
JP
Japan
Prior art keywords
address
storage system
storage
extracted
assigned
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
JP2008104463A
Other languages
English (en)
Inventor
Tetsuya Kamimura
上村  哲也
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 JP2008104463A priority Critical patent/JP2009258825A/ja
Publication of JP2009258825A publication Critical patent/JP2009258825A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】仮想化の対象となるデバイスの動作に関わらず、動作を続けるストレージ仮想化方法を提供する。
【解決手段】ネットワークに接続されるインターフェースと、インターフェースに接続されるプロセッサと、プロセッサに接続されるメモリと、を備え、要求されたアクセス処理を実行するストレージシステムにおいて、ストレージシステムへのアクセス処理の要求に用いられるアドレスは、第1アドレス及び第2アドレスによって構成され、プロセッサは、アクセス処理を要求するパケットを受信すると、受信したパケットから、第1アドレス及び前記第2アドレスを抽出し、抽出された第1アドレスが、ストレージシステムに割り当てられた第1アドレスと一致するか否かを判定し、抽出された第1アドレスが、ストレージシステムに割り当てられた第1アドレスと一致すると判定された場合、抽出された第2アドレスを用いて、要求されたアクセス処理を実行する。
【選択図】図11

Description

本発明は、ストレージシステムに関し、特に、アドレス空間が分割して割り当てられるストレージシステムに関する。
一つのハードディスクドライブ(HDD)より多くの容量をもつストレージを実現するため、複数のストレージを管理する管理コストを低減させる等の理由によって、複数のストレージを仮想的に一つのストレージとしてアクセス可能にするストレージ仮想化の技術が広く用いられている。
ストレージは、物理デバイス、論理デバイス、論理ボリューム、及びファイルシステムのように階層的な構造を有する。ストレージを利用する上位システムは、物理デバイス上に、少なくとも一つの論理デバイスを構成する。また、論理デバイス上に、少なくとも一つの論理ボリュームを構成する。また、論理ボリューム上にファイルシステムを構成し、ファイルシステムにデータを入出力する。
また、各階層でストレージを仮想化することができる。複数の物理デバイスを仮想化して一つの論理デバイスを構成する技術として、非特許文献1には、RAIDを構成する技術が記載されている。例えば、RAIDの方式のうちの一つであるRAID5は、N+1台の物理デバイスを用いて、N台の物理デバイスからパリティデータを生成する。生成されたパリティデータは、1台の物理デバイスに格納され、残りのN台の物理デバイスを用いてN台分の容量をもつ論理デバイスを構成する。このように、ストレージを仮想化することによって、上位システムは、RAIDによって仮想化したストレージをN倍の容量をもつ論理デバイスとして認識し、一つの物理デバイスに構成した論理デバイスと同様にアクセスすることができる。
論理デバイスの仮想化技術として、特許文献1には、仮想ボリュームの記憶領域割り当て方法が記載されている。また、特許文献2には、クラスタストレージのデバイス連結方法が記載されている。また、特許文献3には、ディスクアレイベースのI/Oルーティング及びマルチレイヤの外部記憶装置の接続方法が記載されている。これらの方法によって、複数の論理デバイスの記憶領域の一部又は全部を用いて、一つの論理デバイス又は論理ボリュームを仮想的に実現することができる。上位システムは、これらの論理デバイス又は論理ボリュームを通常の論理デバイス又は論理ボリュームと同様にアクセスすることができる。
前述したストレージ仮想化方法は、一つの物理デバイス上に構成された論理デバイスと同様に利用することができる仮想的な論理デバイスを構成することを目的にしている。このため、仮想的な論理デバイスの容量は、連続したアドレス空間に割り当てられている。したがって、仮想的な論理デバイスを構成するために用いられる複数の物理デバイス及び複数の論理デバイスを含む全てのデバイスが正常に動作している必要があり、これらの物理デバイス又は論理デバイスの少なくとも一つにアクセスできない場合には障害が発生したとして対処する必要がある。
特開2004−164370号公報 特開2005−165702号公報 特開2006−24215号公報 D. A. Patterson, G. A. Gibson, R. H. Katz、"A Case for Redundant Arrays of Inexpensive Disks (RAID),"、Proceedings of the International Conference on Management of Data (SIGMOD)、June 1988.
従来のストレージ仮想化方法では、仮想化に用いられる全てのストレージが正常に動作していることが前提であるため、家庭内のように全ての機器の電源が入っていることが保証されない環境では、従来のストレージ仮想化方法を用いることができない課題がある。また、従来のストレージ仮想化方法は、ブロック単位でアクセス可能なデバイスである複数のブロックデバイスから仮想的なブロックデバイスを構成するため、ブロックデバイスしか認識できない機器がオブジェクト単位でアクセス可能なデバイスであるオブジェクトデバイスへのアクセスを可能にするように、複数のオブジェクトデバイスから仮想的なブロックデバイスを構成するストレージ仮想化ができない課題がある。
本発明の第1の目的は、仮想化の対象となるデバイスの動作に関わらず、動作を続けるストレージ仮想化方法を提供することである。また、本発明の第2の目的は、オブジェクトデバイスをブロックデバイスとしてアクセス可能にするストレージ仮想化方法を提供することである。
本発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、要求されたアクセス処理を実行するストレージシステムにおいて、前記ストレージシステムへのアクセス処理の要求に用いられるアドレスは、第1アドレス及び第2アドレスによって構成され、前記プロセッサは、前記ストレージシステムにアクセス処理を要求するパケットを受信すると、前記受信したパケットから、前記第1アドレス及び前記第2アドレスを抽出し、前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致するか否かを判定し、前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致すると判定された場合、前記抽出された第2アドレスを用いて、前記要求されたアクセス処理を実行する。
本発明の一実施形態によれば、ストレージ仮想化の対象となるデバイスの動作に関わらず、ストレージを仮想化することができる。
以下、本発明の実施の形態について、図面を参照して説明する。
図1は、本発明の実施の形態の計算機システムのブロック図である。
図1に示すように、計算機システムは、クライアント101、ストレージ装置102、及び仮想化装置103を備える。
クライアント101は、パケットを用いて、ストレージ装置102に入出力データの処理を要求する計算機である。例えば、クライアント101は、パケットにアクセス先の論理ブロックアドレスを設定してアクセス先を指定し、処理を要求することができる。なお、クライアント101の構成は、図3を用いて後述する。
ストレージ装置102は、クライアント101から要求された処理を実行する装置である。ストレージ装置102は、NAS(Network Attached Storage)によって構成されてもよい。なお、ストレージ装置102の構成は、図5を用いて後述する。
仮想化装置103は、クライアント101から受信したパケットを、ストレージ装置102に転送する。なお、仮想化装置103の構成は、図4を用いて後述する。
クライアント101から受信したパケットをストレージ装置102に転送する場合、仮想化装置103は、例えば、クライアント101から受信したパケットに設定されているアクセス先のアドレスから、ストレージ装置102を識別する識別子(例えば、後述するストレージ識別子301)を抽出し、抽出されたストレージ識別子301が割り当てられているストレージ装置102にパケットを転送してもよい。
また、仮想化装置103は、ブロードキャスト及びマルチキャスト等を用いて、クライアント101から受信したパケットをストレージ装置102に転送してもよい。この場合、ストレージ装置102は、仮想化装置103から転送されたパケットに設定されているアクセス先のアドレスから、ストレージ識別子301を抽出し、抽出されたストレージ識別子301が自身に割り当てられている場合には、要求された処理を実行する。また、抽出されたストレージ識別子301が自身に割り当てられたストレージ識別子301でない場合には、要求された処理を実行せずに終了する。
クライアント101と仮想化装置103とは、例えば、TCP/IPプロトコルを用いて通信可能なイーサネット(登録商標、以下同じ)、及びeSATA等のいずれかによって接続されてもよい。また、仮想化装置103とストレージ装置102とは、例えば、イーサネット、ファイバチャネルネットワーク、ATA(AT Attachment)、及びSATA(Serial ATA)等のいずれかによって接続されてもよい。
図1に示す計算機システムの構成では、仮想化装置103が複数のストレージ装置102を一つのアドレス空間に割り当てることによってストレージ装置102の仮想化を実現する。よって、クライアント101は、複数のストレージ装置102を一つのストレージ装置102としてアクセスすることが可能になる。
図3は、本発明の実施の形態のクライアント101のブロック図である。
クライアント101は、プロセッサ(CPU)1301、メモリ1302、ハードディスク1303、入力装置1304、出力装置1305、及び通信インターフェース1306を備える。
CPU1301は、メモリ1302に格納されているプログラムを実行し、クライアント101全体を制御するプロセッサである。
メモリ1302は、CPU1301によって実行されるプログラムを格納する。メモリ1302は、例えば、Random Access Memory(RAM)のような半導体メモリで構成するとよい。また、ハードディスク1303に格納されたプログラム及びデータが必要に応じて読み出され、メモリ1302に格納される。
ハードディスク1303は、プログラム及びデータ等を格納する。
入力装置1304は、ユーザによる情報の入力を受け付ける。入力装置1304は、例えば、キーボード及び/又はマウス等を含む。
出力装置1305は、ユーザへの情報を掲示する。出力装置1305は、例えば、液晶表示装置のようなディスプレイ装置又はプリンタ等を含む。
通信インターフェース1306は、ネットワーク(例えば、LAN又はインターネット等)を介して、データを送受信する。
図4は、本発明の実施の形態の仮想化装置103のブロック構成図である。
仮想化装置103は、ポート1401、プロセッサ(CPU)1402、メモリ1403、及びハードディスク1404を備える。
ポート1401は、クライアント101又はストレージ装置102と接続するインターフェースである。
CPU1402は、メモリ1403に格納されているプログラムを実行し、仮想化装置103全体を制御するプロセッサである。
メモリ1403は、CPU1402によって実行されるプログラムを格納する。メモリ1403は、例えば、Random Access Memory(RAM)のような半導体メモリで構成するとよい。また、ハードディスク1404に格納されたプログラム及びデータが必要に応じて読み出され、メモリ1403に格納される。なお、メモリ1403には、ポート1401と各ポート1401に接続されるストレージ装置102との対応関係の情報が格納される。格納された対応関係の情報に基づいて、クライアント101からの要求がストレージ装置102に転送される。
ハードディスク1404は、プログラム及びデータ等を記憶する。
図5は、本発明の実施の形態のストレージ装置102のブロック構成図である。
ストレージ装置102は、ポート1501、コントローラ1502、及びディスク装置1503を備える。
ポート1501は、クライアント101又はストレージ装置102と接続するインターフェースである。
コントローラ1502は、プロセッサ(CPU)1504及びメモリ1505を備える。CPU1504は、メモリ1505に格納されているプログラムを実行し、ストレージ装置102全体を制御するプロセッサである。メモリ1505は、CPU1504によって実行されるプログラムを格納する。
ディスク装置1503は、ユーザデータを保存する。ディスク装置1503は、例えば、ハードディスク(HDD)で構成するとよい。ユーザデータは、クライアント101によって書き込まれたデータである。
なお、ディスク装置1503の記憶領域は、複数のボリュームに分割又は結合されてもよい。各ボリュームは、クライアント101上のアプリケーションプログラムが一つの論理的なディスク装置として認識する記憶領域である。ディスク装置1503に含まれる任意の容量の物理的な記憶領域が、各ボリュームに割り当てられる。
本実施の形態のストレージ装置102は、ブロックデバイス及びオブジェクトデバイスのいずれのデバイスによって構成されてもよい。
なお、ブロックデバイスとは、データをアドレスによって指定された所定の大きさのブロック単位でアクセス可能なデバイス(例えば、ストレージ装置102)である。また、オブジェクトデバイスとは、データをオブジェクト(ファイル)単位でアクセス可能なデバイス(例えば、ストレージ装置102)である。
以下、ストレージ装置102をブロックデバイスによって構成する場合について説明する。
図6は、本発明の実施の形態のストレージ装置102がブロックデバイスの場合のアドレス構造の説明図である。
図6に示すように、アドレス構造300は、ブロックデバイスにアクセスする場合に指定される論理ブロックアドレスのアドレス構造であり、各ストレージ装置102に共通のアドレス空間を示す。
アドレス構造300は、ストレージ識別子301及びストレージ内アドレス302を含む。ストレージ識別子301は、ストレージ装置102の識別子を示すアドレスであり、ストレージ内アドレス302は、ストレージ装置102内の物理的な位置を示すアドレスである。図6に示すように、アドレス構造300の上位ビットの所定のビット数がストレージ識別子301として割り当てられる。ストレージ識別子301を所定の上位ビットに割り当てる理由は、TCP/IPプロトコルを用いてパケットを送信する場合、上位ビットから順にデータが送信されるためである。パケットの受信側では、送信されたデータの上位ビットから順に読み出すことによって、効率よく処理を実行することが可能になる。
アドレス構造300は、所定のビット数の部分がストレージ識別子301として割り当てられ、残りの部分がストレージ内アドレス302として割り当てられる。例えば、アドレス構造300が、SCSI及びATAで用いられている48ビットの論理ブロックアドレスのアドレス構造である場合、ストレージ識別子301に上位8ビットを割り当て、ストレージ内アドレス302に40ビットを割り当てると、一台当たり512TBの容量を持つストレージ装置102を256台用いて仮想化することができる。
ストレージ識別子301は、例えば、最初の1台に「0」を割り当て、ストレージが増える度にカウントアップすることによってストレージ識別子301が割り当てられてもよい。また、ファイバチャネル等で設定されているWWN(World Wide Name)の小さい順にストレージ識別子301が割り当てられてもよい。
図8は、本発明の実施の形態のストレージ装置102がブロックデバイスのアドレス割り当ての説明図である。
図8に示すように、アドレス空間500は、複数のストレージ装置102を一つのブロックデバイスに仮想化した場合の全体のアドレス空間であり、各ストレージ装置102のアドレス範囲を含む。
アドレス空間500は、ストレージ装置102に割り当て済みのアドレス範囲501及びストレージ装置102に割り当てられていないアドレス範囲502を含む。また、割り当て済みのアドレス範囲501は、ストレージ装置102の容量の範囲内を示すアドレス範囲511及びストレージ装置102の容量の範囲外を示すアドレス範囲512を含む。なお、ストレージ装置102の容量の範囲内とは、ストレージ装置102によって取り扱うことができる範囲である。
なお、図6に示すストレージ識別子301のアドレスによって、各ストレージ装置102に割り当てられたアドレス範囲501が特定される。また、図6に示すストレージ内アドレス302によって、ブロックデータが格納されているアドレス範囲511が特定される。特定されたアドレス範囲511のアドレスは、ストレージ装置102の記憶領域に割り当てられた論理ブロックアドレスに対応する。したがって、特定されたアドレス範囲511のアドレスを用いて、ブロックデータにアクセスすることができる。
次に、ストレージ装置102をオブジェクトデバイスによって構成する場合について説明する。
図7は、本発明の実施の形態のストレージ装置102がオブジェクトデバイスの場合のアドレス構造の説明図である。
図7に示すように、アドレス構造400は、オブジェクトデバイスにアクセスする場合に指定される論理ブロックアドレスのアドレス構造であり、各ストレージ装置102に共通のアドレス空間を示す。
アドレス構造400は、ストレージ識別子301、オブジェクト識別子401、及びオブジェクトオフセット402を含む。オブジェクト識別子401は、オブジェクトの識別子を示すアドレスであり、オブジェクトオフセット402は、オブジェクト内の相対的な位置を示すアドレスである。
アドレス構造400は、所定のビット数の部分がストレージ識別子301として割り当てられ、次の所定のビット数の部分がオブジェクト識別子401として割り当てられ、残りの部分がオブジェクトオフセット402として割り当てられる。例えば、アドレス構造400が、48ビットの論理ブロックアドレスのアドレス構造である場合、ストレージ識別子301に最上位の8ビットを割り当て、ストレージ識別子301の下位の12ビットをオブジェクト識別子401に、オブジェクトオフセット402に最下位の28ビットを割り当てると、256台のストレージ装置102を仮想化することができ、各ストレージ装置102にはそれぞれ128GBのオブジェクト(ファイル)を4096個格納することができる。
図9は、本発明の実施の形態のストレージ装置102がオブジェクトデバイスの場合のアドレス割り当ての説明図である。
図9に示すように、アドレス空間600は、複数のストレージ装置102を一つのオブジェクトデバイスに仮想化した場合の全体のアドレス空間であり、各ストレージ装置102のアドレス範囲が割り当てられる。
アドレス空間600は、ストレージ装置102に割り当て済みのアドレス範囲501、ストレージ装置102に割り当てられていないアドレス範囲502、メタ情報に割り当てられたアドレス範囲503を含む。
なお、アドレス範囲503は、ストレージ装置102のファイル構造のデータである。
クライアント101がストレージ装置102にアクセスするためには、ストレージ装置102のファイル構造を理解する必要がある。このため、クライアント101は、メタ情報に割り当てられたアドレス範囲503にアクセスし、ストレージ装置102のファイル構造を通知してもらう必要がある。
ストレージ装置102は、クライアント101がメタ情報のアドレス範囲503にアクセスした場合、ストレージ装置102のファイル構造のデータ(例えば、オブジェクト識別子401及びオブジェクトオフセット402等の情報)を、クライアント101が理解可能なファイルシステムの形式に変換し、変換されたファイル構造のデータをクライアント101に通知する。そして、クライアント101は、通知されたファイル構造のデータを用いてストレージ装置102にアクセスすることができる。
また、アドレス範囲501は、ストレージ装置102の容量の範囲内を示すアドレス範囲511及びストレージ装置102の容量の範囲外を示すアドレス範囲512を含む。
また、アドレス範囲511は、オブジェクトに割り当て済みのアドレス範囲601及びストレージ装置102によって取り扱うことができる範囲のうち、オブジェクトが割り当てられていないアドレス範囲602を含む。
また、アドレス範囲601は、オブジェクトの容量の範囲内を示すアドレス範囲611及びオブジェクトの容量の範囲外を示すアドレス範囲612を含む。なお、容量の範囲内とは、オブジェクトのデータサイズの範囲内である。
なお、図7に示すストレージ識別子301のアドレスによって、各ストレージ装置102に割り当てられたアドレス範囲501が特定される。また、図7に示すオブジェクト識別子401によって、アドレス範囲601のオブジェクトの先頭アドレスを特定することができる。また、図7に示すオブジェクトオフセット402によって、オブジェクトの先頭アドレスからの相対的なアドレスを特定することができる。
図11は、本発明の実施の形態の計算機システムにおけるアクセス処理のフローチャートである。
まず、仮想化装置103は、クライアント101からパケットによって、入出力データの処理の要求を受信する(801)。
次に、仮想化装置103は、ステップ801で受信したパケットに設定されている論理ブロックアドレスから、ストレージ識別子301を抽出する(802)。ストレージ識別子301を抽出する場合、ストレージ識別子301に割り当てられたアドレス部分以外にマスクをかけることによって、抽出することができる。例えば、ストレージ識別子301を示すビット数のアドレス部分が「1」であり、ストレージ識別子301を示すビット数の部分以外が「0」であるアドレスマスクと、受信した要求に設定されているアドレスとをAND演算することによって、ストレージ識別子301のアドレスを抽出することができる。
次に、仮想化装置103は、ステップ802で抽出されたストレージ識別子301と一致するストレージ装置102が存在するか否かを判定する(810)。
ストレージ識別子301と一致するストレージ装置102が存在する場合、処理はステップ820に進む。一方、ストレージ識別子301と一致するストレージ装置102が存在しない場合、処理は終了する。
次に、仮想化装置103は、ステップ801で受信したパケットのアクセス先が、ステップ810で存在すると判定されたストレージ装置102に割り当てられた容量の範囲内であるか否かを判定する(820)。
具体的には、クライアント101がブロックデバイスにアクセスする場合、まず、ストレージ装置102は、ステップ801で受信した要求に設定されているアドレスから、ストレージ内アドレス302に割り当てられたアドレス部分以外にマスクをかけることによって、ストレージ内アドレス302を抽出する。抽出されたストレージ内アドレス302が、ストレージ装置102に割り当てられた容量の範囲内であるアドレス範囲511に含まれるか否かを判定する。アドレス範囲511にストレージ内アドレス302が含まれる場合、クライアント101から受信した要求のアクセス先が、ストレージ装置102に割り当てられた容量の範囲内であると判定する。
また、クライアント101がオブジェクトデバイスにアクセスする場合、まず、ストレージ装置102は、ステップ801で受信したパケットに設定されているアドレスから、オブジェクト識別子401に割り当てられたアドレス部分以外にマスクをかけることによって、オブジェクト識別子401を抽出する。抽出されたオブジェクト識別子401が、アドレス範囲602に含まれるか否かを判定する。
アドレス範囲602にオブジェクト識別子401が含まれる場合、ストレージ装置102は、ステップ801で受信したパケットに設定されているアドレスから、オブジェクトオフセット402に割り当てられたアドレス部分以外にマスクをかけることによって、オブジェクトオフセット402を抽出する。抽出されたオブジェクトオフセット402が、ストレージ装置102に割り当てられたアドレス範囲611に含まれるか否かを判定する。
アドレス範囲611にオブジェクトオフセット402が含まれる場合、クライアント101から受信した要求のアクセス先が、ストレージ装置102に割り当てられた容量の範囲内であると判定する。
ストレージ装置102に割り当てられた容量の範囲内である場合、処理はステップ821に進む。一方、ストレージ装置102に割り当てられた容量の範囲外である場合、処理はステップ830に進む。
ステップ821では、仮想化装置103は、ステップ810で存在すると判定したストレージ装置102に、ステップ801で受信したパケットを転送する(821)。なお、パケットをストレージ装置102に転送する場合、仮想化装置103は、論理ブロックアドレスのストレージ識別子301の部分をマスクして(ストレージ識別子301のビットを全て「0」に設定して)、ストレージ装置102に転送してもよい。このようにすると、マスクされた論理ブロックアドレスが、ストレージ装置102によって取り扱うことができる範囲に含まれるため、ストレージ装置102が要求を受け付けることができる。
次に、ストレージ装置102は、ステップ821で仮想化装置103から転送された要求の処理を実行する(822)。例えば、読み出し要求である場合、受信したパケットに設定されているアドレスに対応する記憶領域からデータを読み出す。また、書き込み要求である場合、受信したパケットに設定されているアドレスに対応する記憶領域にデータを書き込む。
次に、ストレージ装置102は、クライアント101に送信する応答を作成する(823)。例えば、読み出し要求に対する応答を作成する場合、ステップ821で読み出されたデータに基づいて応答が作成される。また、書き込み要求に対する応答を作成する場合、書き込みが完了したことを示す応答が作成される。
次に、ストレージ装置102は、ステップ823又はステップ832で作成した応答に、ストレージ装置102自身のストレージ識別子301を付与して、仮想化装置103に応答を送信する(824)。
次に、仮想化装置103は、ステップ824でストレージ装置102から送信された応答をクライアント101に転送する(825)。そして、処理は終了する。
ステップ830では、仮想化装置103は、要求された処理が読み出し要求であるか否かを判定する。
要求が読み出し要求である場合、処理はステップ831に進む。一方、処理が書き込み要求である場合、処理はステップ832に進む。
ステップ831では、仮想化装置103は、予め設定されているデータパターンを生成する。例えば、全て「0」のデータを生成してもよい。また、全て「1」のデータを生成してもよい。また、ランダムなデータを生成してもよい。また、ユーザによって設定されるデータを生成してもよい。そして、処理はステップ823に進む。
ステップ832では、仮想化装置103は、予め設定されている応答を作成する。例えば、書き込みエラーを示すエラーメッセージを作成してもよい。また、容量の範囲外を示すエラーメッセージを作成してもよい。また、書き込みが完了したことを示すメッセージを作成してもよい。そして、処理はステップ824に進む。
なお、ステップ820では、仮想化装置103が、ストレージ装置102に割り当てられた容量の範囲内であるか否かを判定しているが、ストレージ装置102がストレージ装置102自身に割り当てられた容量の範囲内であるか否かを判定してもよい。この場合、ステップ821で、仮想化装置103がストレージ装置102に要求を転送する代わりに、ステップ810で、仮想化装置103は、ストレージ識別子301と一致するストレージ装置102が存在する場合、クライアント101から受信した要求をストレージ装置102に転送する。
また、仮想化装置103は、ステップ801の処理を実行した後にストレージ装置102に要求を転送してもよい。要求を転送する場合、仮想化装置103は、ブロードキャスト又はマルチキャストによって各ストレージ装置102に送信することができる。なお、この場合、ステップ802からステップ823及びステップ830からステップ832の処理は、ストレージ装置102が実行する。
図12は、本発明の実施の形態のクライアント101からのアクセス要求がストレージ装置102の容量の範囲外である場合の処理の設定画面の説明図である。
図12に示す設定画面は、ストレージ装置102の容量の範囲外にアクセスする場合の処理の選択項目901、ファイル選択処理ボタン902、及びキャンセルボタン903を含む。
図12に示す例では、読み出し要求が容量の範囲外の場合の処理の選択項目901として、全て「0」のデータを返す、全て「1」のデータを返す、ランダムなデータを返す、及びユーザが設定するデータを返す、を含む。また、書き込み要求が容量の範囲外の場合の処理の選択項目901として、「書き込みエラー」を返す、「容量の範囲エラー」を返す、及び「書き込み完了」を返す、を含む。
システムの管理者が、読み出し要求が容量の範囲外である場合の処理と、書き込み要求が容量の範囲外である場合の処理とを選択項目901から選択し、ファイル選択処理ボタン902を操作する(例えば、マウスでクリックする)ことによって、設定が完了する。また、キャンセルボタン903を操作する(例えば、マウスでクリックする)ことによって、設定を取り消すことができる。
以上、本実施の形態について説明したが、後述する図2に示すように、仮想化装置103の役割をストレージ102が分担することによって、システムを構成してもよい。
図2は、本発明の実施の形態の計算機システムの変形例のブロック図である。
図2に示すクライアント101及びストレージ装置102は、図1に示すクライアント101及びストレージ装置102と同様であるため説明を省略する。なお、クライアント101とストレージ装置102とは、例えば、イーサネット、ファイバチャネルネットワーク、ATA、及びSATA等のいずれかによって接続されてもよい。
図2に示すクライアント101は、ブロードキャスト及びマルチキャスト等を用いて、ストレージ装置102にアクセスの要求を送信する。
ストレージ装置102は、クライアント101から受信した要求に従って、処理を実行する。例えば、ストレージ装置102は、まず、受信したパケットに設定されているアドレスから、ストレージ識別子301を判定する。そして、判定されたストレージ識別子301が自身に割り当てられているストレージ識別子301と同一である場合には、要求された処理を実行する。また、抽出されたストレージ識別子301が自身に割り当てられたストレージ識別子301でない場合には、要求された処理を実行せずに終了する。
図2に示す計算機システムの構成では、図1に示す仮想化装置103の役割を複数のストレージ装置102が分担することによって、ストレージ装置102の仮想化を実現することができる。
次に、図2に示す計算機システムの変形例において実行されるアクセス処理について説明する。
図10は、本発明の実施の形態の計算機システムの変形例におけるアクセス処理のフローチャートである。
メモリ1505に格納されている各種プログラムをCPU1504が実行することによって、図10に示すアクセス処理が実行される。
まず、ストレージ装置102は、クライアント101からパケットによって、入出力データの処理の要求を受信する(701)。
次に、ストレージ装置102は、ステップ701で受信したパケットに設定されている論理ブロックアドレスから、ストレージ識別子301を抽出する(702)。なお、ステップ702の処理は、図11のステップ802の処理と同様にストレージ識別子301を抽出する。
次に、ストレージ装置102は、ステップ702で抽出されたストレージ識別子301とストレージ装置102に割り当てられたストレージ識別子301とが一致するか否かを判定する(710)。
ストレージ装置102自身に割り当てられたストレージ識別子301と一致する場合、処理はステップ720に進む。一方、ストレージ装置102に割り当てられたストレージ識別子301と一致しない場合、要求された処理をこのストレージ装置102が実行する必要がないため、処理は終了する。
次に、ストレージ装置102は、ステップ701で受信したパケットのアクセス先が、ストレージ装置102の容量の範囲内であるか否か、すなわち、ストレージ装置102によって取り扱うことができる範囲であるか否かを判定する(720)。
なお、ステップ720の処理は、図11のステップ820の処理と同様に、ストレージ装置102に割り当てられた容量の範囲内であるか否かを判定する。
ストレージ装置102自身に割り当てられた容量の範囲内である場合、処理はステップ721に進む。一方、ストレージ装置102自身に割り当てられた容量の範囲外である場合、処理はステップ730に進む。
ステップ721では、ストレージ装置102は、クライアント101から要求された処理を実行する。例えば、読み出し要求である場合、受信したパケットに設定されているアドレスに対応する記憶領域からデータを読み出す。また、書き込み要求である場合、受信したパケットに設定されているアドレスに対応する記憶領域にデータを書き込む。
次に、ストレージ装置102は、クライアント101に送信する応答を作成する(722)。例えば、読み出し要求に対する応答を作成する場合、ステップ721で読み出されたデータに基づいて応答が作成される。また、書き込み要求に対する応答を作成する場合、書き込みが完了したことを示す応答が作成される。
次に、ストレージ装置102は、ステップ722又はステップ732で作成した応答をクライアント101に送信する(723)。そして処理は終了する。
ステップ730では、ストレージ装置102は、要求された処理が読み出し要求であるか否かを判定する。
要求が読み出し要求である場合、処理はステップ731に進む。一方、要求が書き込み要求である場合、処理はステップ732に進む。
ステップ731では、ストレージ装置102は、予め設定されているデータパターンを生成する。例えば、全て「0」のデータを生成してもよい。また、全て「1」のデータを生成してもよい。また、ランダムなデータを生成してもよい。また、ユーザによって設定されるデータを生成してもよい。そして、処理はステップ722に進む。なお、生成されるデータパターンは、後述する図12に示す設定画面によって設定される。
ステップ732では、ストレージ装置102は、予め設定されている応答を作成する。例えば、書き込みエラーを示すエラーメッセージを作成してもよい。また、容量の範囲外を示すエラーメッセージを作成してもよい。また、書き込みが完了したことを示すメッセージを作成してもよい。そして、処理はステップ723に進む。なお、作成される応答は、ステップ731と同様に、後述する図12に示す設定画面によって設定される。
本発明の実施の形態では、ストレージのアドレス空間を分割し、複数のストレージを同一のアドレス空間に割り当ててストレージを仮想化することによって、ストレージ仮想化の対象のデバイスの動作の有無に関わらず、ストレージを仮想化することができる。
本発明の実施の形態の計算機システムのブロック図である。 本発明の実施の形態の別の計算機システムのブロック図である。 本発明の実施の形態のクライアントのブロック図である。 本発明の実施の形態の仮想化装置のブロック図である。 本発明の実施の形態のストレージ装置のブロック図である。 本発明の実施の形態のストレージ装置がブロックデバイスの場合のアドレス構造の説明図である。 本発明の実施の形態のストレージ装置がオブジェクトデバイスの場合のアドレス構造の説明図である。 本発明の実施の形態のストレージ装置がブロックデバイスの場合のアドレス割り当ての説明図である。 本発明の実施の形態のストレージ装置がオブジェクトデバイスの場合のアドレス割り当ての説明図である。 本発明の実施の形態の計算機システムの変形例におけるアクセス処理のフローチャートである。 本発明の実施の形態の計算機システムにおけるアクセス処理のフローチャートである。 本発明の実施の形態のクライアントからのアクセス要求がストレージ装置の容量の範囲外である場合の処理の設定画面の説明図である。
符号の説明
101 クライアント
102 ストレージ装置
103 仮想化装置
300 アドレス構造
301 ストレージ識別子
302 ストレージ内アドレス
400 アドレス構造
401 オブジェクト識別子
402 オブジェクトオフセット
501 ストレージ装置に割り当て済みのアドレス範囲
502 ストレージ装置に未割り当てのアドレス範囲
511 ストレージ装置の容量のアドレス範囲
512 ストレージ装置の容量範囲外のアドレス範囲
601 オブジェクトに割り当て済みのアドレス範囲
602 オブジェクトに未割り当てのアドレス範囲
611 オブジェクトの容量のアドレス範囲
612 オブジェクトの容量外のアドレス範囲

Claims (18)

  1. ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、要求されたアクセス処理を実行するストレージシステムにおいて、
    前記ストレージシステムへのアクセス処理の要求に用いられるアドレスは、第1アドレス及び第2アドレスによって構成され、
    前記プロセッサは、
    前記ストレージシステムにアクセス処理を要求するパケットを受信すると、前記受信したパケットから、前記第1アドレス及び前記第2アドレスを抽出し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致するか否かを判定し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致すると判定された場合、前記抽出された第2アドレスを用いて、前記要求されたアクセス処理を実行することを特徴とするストレージシステム。
  2. 前記第1アドレスは、前記ストレージシステムを識別するためのアドレスであり、
    前記第2アドレスは、前記アクセスが要求されたデータの前記ストレージシステム内の位置を特定するためのアドレスであることを特徴とする請求項1に記載のストレージシステム。
  3. 前記第1アドレスは、前記ストレージシステムを識別するためのアドレスであり、
    前記第2アドレスは、第3アドレス及び第4アドレスによって構成され、
    前記第3アドレスは、前記アクセスが要求されたオブジェクトを識別するためのアドレスであり、
    前記第4アドレスは、前記アクセスが要求されたデータの前記オブジェクト内の位置を特定するためのアドレスであり、
    前記プロセッサは、
    前記受信したパケットから、前記第3アドレス及び前記第4アドレスを抽出し、
    前記抽出された第3アドレス及び第4アドレスを用いて、前記要求されたアクセス処理を実行することを特徴とする請求項1に記載のストレージシステム。
  4. 前記第1アドレスは、前記アドレスのうち上位から所定のビットに設定されることを特徴とする請求項1に記載のストレージシステム。
  5. 前記プロセッサは、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致すると判定された場合、前記要求されたアクセス処理が前記ストレージシステムによって取り扱うことができる範囲であるか否か、及び、前記要求されたアクセス処理が読み出しであるか否かを判定し、
    前記要求されたアクセス処理が前記ストレージシステムに取り扱われる範囲を超えており、かつ、前記要求されたアクセス処理が読み出しであると判定された場合、予め定められた応答データを送信することを特徴とする請求項1に記載のストレージシステム。
  6. 前記応答データは、複数の応答データから選択可能であることを特徴とする請求項5に記載のストレージシステム。
  7. 前記プロセッサは、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられた第1アドレスと一致すると判定された場合、前記要求されたアクセスが前記ストレージシステムによって取り扱うことができる範囲であるか否か、及び、前記要求されたアクセス処理が読み出しであるか否かを判定し、
    前記要求されたアクセスが前記ストレージシステムに取り扱われる範囲を超えており、かつ、前記要求されたアクセス処理が読み出しでないと判定された場合、予め定められた応答データを送信することを特徴とする請求項1に記載のストレージシステム。
  8. 前記応答データは、複数の応答データから選択可能であることを特徴とする請求項7に記載のストレージシステム。
  9. 前記アドレスの一部は、前記ストレージシステムによって提供されるファイル構造を表すメタデータに割り当てられており、
    前記プロセッサは、前記クライアントが前記メタデータに割り当てられたアドレスの範囲にアクセス処理を要求した場合、前記ストレージシステムによって提供されるファイル構造を表すデータを、前記クライアントが理解可能なファイル構造のデータに変換し、前記変換されたデータを前記クライアントに送信することを特徴とする請求項1に記載のストレージシステム。
  10. ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、アクセス処理を要求するパケットをストレージシステムに転送する仮想化装置において、
    前記ストレージシステムへのアクセス処理の要求に用いられるアドレスは、第1アドレス及び第2アドレスによって構成され、
    前記プロセッサは、
    前記ストレージシステムにアクセス処理を要求するパケットを受信すると、前記受信したパケットから前記第1アドレスを抽出し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられているか否かを判定し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられていると判定された場合、前記第2アドレスを用いて前記要求されたアクセス処理を実行させるために、前記受信したパケットを前記抽出された第1アドレスが割り当てられたストレージシステムに転送することを特徴とする仮想化装置。
  11. 前記第1アドレスは、前記ストレージシステムを識別するためのアドレスであり、
    前記第2アドレスは、前記アクセスが要求されたデータの前記ストレージシステム内の位置を特定するためのアドレスであることを特徴とする請求項10に記載の仮想化装置。
  12. 前記第1アドレスは、前記アドレスのうち上位から所定のビットに設定されることを特徴とする請求項10に記載の仮想化装置。
  13. 前記プロセッサは、
    前記抽出された第1アドレスが前記ストレージシステムに割り当てられていると判定された場合、前記要求されたアクセスが前記ストレージシステムによって取り扱うことができる範囲であるか否か、及び、前記要求されたアクセス処理が読み出しであるか否かを判定し、
    前記要求されたアクセス処理が前記ストレージシステムに取り扱われる範囲を超えており、かつ、前記要求されたアクセス処理が読み出しであると判定された場合、予め定められた応答データを送信することを特徴とする請求項10に記載の仮想化装置。
  14. 前記応答データは、複数の応答データから選択可能であることを特徴とする請求項13に記載の仮想化装置。
  15. 前記プロセッサは、
    前記抽出された第1アドレスが前記ストレージシステムに割り当てられていると判定された場合、前記要求されたアクセスが前記ストレージシステムによって取り扱うことができる範囲であるか否か、及び、前記要求されたアクセス処理が読み出しであるか否かを判定し、
    前記要求されたアクセス処理が前記ストレージシステムに取り扱われる範囲を超えており、かつ、前記要求されたアクセス処理が読み出しでないと判定された場合、予め定められた応答データを送信することを特徴とする請求項10に記載の仮想化装置。
  16. 前記応答データは、複数の応答データから選択可能であることを特徴とする請求項15に記載の仮想化装置。
  17. 前記アドレスの一部は、前記ストレージシステムによって提供されるファイル構造を表すメタデータに割り当てられており、
    前記第2プロセッサは、前記クライアントが前記メタデータに割り当てられたアドレスの範囲にアクセス処理を要求した場合、前記ストレージシステムによって提供されるファイル構造を表すデータを、前記クライアントが理解可能なファイル構造のデータに変換し、前記変換されたデータを前記クライアントに送信することを特徴とする請求項10に記載の仮想化装置。
  18. ネットワークに接続される仮想化装置と、前記仮想化装置に接続されるストレージシステムと、を備える計算機システムにおいて、
    前記仮想化装置は、前記ネットワークに接続される第1インターフェースと、前記第1インターフェースに接続される第1プロセッサと、前記第1プロセッサに接続される第1メモリと、を備え、
    前記ストレージシステムは、前記ネットワークに接続される第2インターフェースと、前記第2インターフェースに接続される第2プロセッサと、前記第2プロセッサに接続される第2メモリと、を備え、
    前記ストレージシステムへのアクセス処理の要求に用いられるアドレスは、第1アドレス及び第2アドレスによって構成され、
    前記第1プロセッサは、
    前記ストレージシステムにアクセス処理を要求するパケットを受信すると、前記受信したパケットから前記第1アドレスを抽出し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられているか否かを判定し、
    前記抽出された第1アドレスが、前記ストレージシステムに割り当てられていると判定された場合、前記受信したパケットを前記抽出された第1アドレスが割り当てられたストレージシステムに転送し、
    前記第2プロセッサは、
    前記受信したパケットから前記第2アドレスを抽出し、
    前記抽出された第2アドレスを用いて、前記要求されたアクセス処理を実行することを特徴とする計算機システム。
JP2008104463A 2008-04-14 2008-04-14 ストレージシステム、仮想化装置、及び計算機システム Pending JP2009258825A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008104463A JP2009258825A (ja) 2008-04-14 2008-04-14 ストレージシステム、仮想化装置、及び計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008104463A JP2009258825A (ja) 2008-04-14 2008-04-14 ストレージシステム、仮想化装置、及び計算機システム

Publications (1)

Publication Number Publication Date
JP2009258825A true JP2009258825A (ja) 2009-11-05

Family

ID=41386188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008104463A Pending JP2009258825A (ja) 2008-04-14 2008-04-14 ストレージシステム、仮想化装置、及び計算機システム

Country Status (1)

Country Link
JP (1) JP2009258825A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149455A (ja) * 1997-11-19 1999-06-02 Hitachi Ltd メモリディスク共有方法及びその実施装置
JP2001184246A (ja) * 1999-10-07 2001-07-06 Wild File Inc オペレーティングシステムとの関連でデータを回復および再生する方法、ソフトウェア、および装置
JP2002507847A (ja) * 1998-03-14 2002-03-12 ソニー エレクトロニクス インク オーディオビジュアル制御コマンド
JP2005011316A (ja) * 2003-05-28 2005-01-13 Hitachi Ltd 記憶領域割当方法、システム及び仮想化装置
JP2005527007A (ja) * 2001-08-06 2005-09-08 レフトハンド ネットワークス インコーポレイテッド コンピュータネットワーク内のブロックデータ保存
JP2008040571A (ja) * 2006-08-02 2008-02-21 Hitachi Ltd 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11149455A (ja) * 1997-11-19 1999-06-02 Hitachi Ltd メモリディスク共有方法及びその実施装置
JP2002507847A (ja) * 1998-03-14 2002-03-12 ソニー エレクトロニクス インク オーディオビジュアル制御コマンド
JP2001184246A (ja) * 1999-10-07 2001-07-06 Wild File Inc オペレーティングシステムとの関連でデータを回復および再生する方法、ソフトウェア、および装置
JP2005527007A (ja) * 2001-08-06 2005-09-08 レフトハンド ネットワークス インコーポレイテッド コンピュータネットワーク内のブロックデータ保存
JP2005011316A (ja) * 2003-05-28 2005-01-13 Hitachi Ltd 記憶領域割当方法、システム及び仮想化装置
JP2008040571A (ja) * 2006-08-02 2008-02-21 Hitachi Ltd 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置

Similar Documents

Publication Publication Date Title
US8402239B2 (en) Volume management for network-type storage devices
JP4235220B2 (ja) 計算機システムおよびデータ移行方法
US10503413B1 (en) Methods and apparatus for SAN having local server storage including SSD block-based storage
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
JP4671353B2 (ja) ストレージ装置及びその制御方法
US9652265B1 (en) Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
US7912814B2 (en) Data migration in storage system
JP4800059B2 (ja) 仮想ストレージシステム及びその制御方法
US8032689B2 (en) Techniques for data storage device virtualization
WO2012085968A1 (en) Storage apparatus and storage management method
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
EP4139802B1 (en) Methods for managing input-ouput operations in zone translation layer architecture and devices thereof
JP2007141216A (ja) 複数のプロトコルアクセス可能なosdストレージサブシステムのためのシステム、方法および装置
WO2011117925A1 (ja) ストレージ装置及びその制御方法
JP2013531283A (ja) ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム
JP4285058B2 (ja) ネットワーク管理プログラム、管理計算機及び管理方法
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
US10031872B1 (en) Storage in multi-queue storage devices using queue multiplexing and access control
US10872036B1 (en) Methods for facilitating efficient storage operations using host-managed solid-state disks and devices thereof
US20090276594A1 (en) Storage system
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
JP2009282922A (ja) 管理サーバ、プール増設方法および計算機システム
JP6013609B2 (ja) ストレージ装置及びデータ入出力方法
WO2016139749A1 (ja) 計算機システム、及び、記憶制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20110201

Free format text: JAPANESE INTERMEDIATE CODE: A621

A521 Written amendment

Effective date: 20120309

Free format text: JAPANESE INTERMEDIATE CODE: A523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120507

A131 Notification of reasons for refusal

Effective date: 20120522

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121106