JP4990828B2 - ストレージ装置及びこれの制御方法 - Google Patents

ストレージ装置及びこれの制御方法 Download PDF

Info

Publication number
JP4990828B2
JP4990828B2 JP2008078057A JP2008078057A JP4990828B2 JP 4990828 B2 JP4990828 B2 JP 4990828B2 JP 2008078057 A JP2008078057 A JP 2008078057A JP 2008078057 A JP2008078057 A JP 2008078057A JP 4990828 B2 JP4990828 B2 JP 4990828B2
Authority
JP
Japan
Prior art keywords
logical unit
data
common
management
block
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.)
Expired - Fee Related
Application number
JP2008078057A
Other languages
English (en)
Other versions
JP2009230661A (ja
Inventor
郁子 小林
信二 木村
山本  彰
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 JP2008078057A priority Critical patent/JP4990828B2/ja
Priority to US12/155,610 priority patent/US20090248979A1/en
Priority to EP08253961A priority patent/EP2105830A3/en
Priority to CN2009100054369A priority patent/CN101546252B/zh
Publication of JP2009230661A publication Critical patent/JP2009230661A/ja
Application granted granted Critical
Publication of JP4990828B2 publication Critical patent/JP4990828B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0638Organizing or formatting or addressing of data
    • 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/0608Saving storage space on 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]

Description

本発明は、ストレージ装置に関し、特に、ネットワークを介して複数のホスト装置(計算機)に接続されるストレージ装置及びこれの制御方法に関する。
近年、計算機におけるデータ管理を容易にするため、複数の計算機がそれぞれ扱うデータを、当該各計算機のローカルストレージではなく、ネットワークを介した共有のストレージ装置に集約して管理する計算機システムが提案されている。このような計算機としては、例えば、ディスクレス計算機システムや仮想計算機システムが知られている。
ディスクレス計算機システムは、計算機自体にディスクドライブを内蔵しない(又は内蔵していてもこれを使用しない)計算機システムである。ディスクレス計算機システムにおいては、SANに接続されたストレージ装置内の論理ユニットにOSイメージ(起動イメージ)が格納され、計算機は、SAN経由で当該論理ユニットをマウントすることにより、当該論理ユニットからの起動を可能にしている。各計算機が使用するOSやアプリケーションプログラム等で使用されるデータは、各計算機に割り当てられた記憶領域に格納されるため、システム管理者は、ストレージ装置におけるデータを一元的に管理することができる。
また、仮想計算機システムは、いわゆる仮想化機構を利用して、サーバコンピュータに複数の計算機環境を統合する計算機システムである。サーバコンピュータに統合された仮想計算機は、ストレージ装置内の論理ユニットに作成された仮想ディスクにOSやアプリケーションプログラム等データを格納するため、同様に、システム管理者は、ストレージ装置におけるデータを一元的に管理することができる。
一般に、このような計算機システムにおいては、各計算機は、共有の起動イメージを使用しているにもかかわらず、各計算機に割り当てた記憶領域を必要とする。このため、下記特許文献1は、各計算機に固有のデータを格納する論理ユニットと、複数の計算機によって共有されるソフトウェアを格納した論理ユニットとを作成し、各計算機のソフトウェアの利用状況に基づいて、これらの論理ユニットを結合して仮想的に一つの記憶領域を構築し、各計算機に提供するストレージ装置を開示する。これにより、複数の計算機が使用するソフトウェアは共有の論理ユニットに格納されるため、ストレージ装置全体で当該ソフトウェアが占める領域分の格納容量を減らすことができる。
特開2005-301708号公報
しかしながら、上述したような従来の計算機システムにおいては、各計算機のOSやアプリケーションプログラム等が更新されると、当該更新された部分は、各計算機に割り当てられた個別の記憶領域に格納されていた。このため、OS等の更新が頻繁に繰り返されると、各計算機は、共有の論理ユニットを参照せずに、当該記憶領域を使用するようになっていた。従って、使用の継続に伴って、ストレージ装置内に各計算機に割り当てられた個別の記憶領域が肥大化し、記憶容量の削減効果が低下してしまい、結果として、ストレージ装置の記憶容量コストが増大するという課題があった。
そこで、本発明は、各ホスト装置(計算機)が使用するストレージ装置内の論理ユニットを効率的に使用し、記憶容量コストの増大を抑制できるストレージ装置及びこれの制御方法を提案することを目的とする。
上記課題を解決するため、ある観点に従う本発明は、ネットワークに接続可能に構成された複数のホスト装置と、当該ネットワークに接続可能に構成されたストレージ装置と、当該ネットワークに接続可能に構成されたマスタ管理装置と、を備えるコンピュータシステムである。
当該ストレージ装置は、当該複数のホスト装置のそれぞれがターゲットにする外部論理ユニットと、当該外部論理ユニットに割り当てられた内部論理ユニットと、を備える。ここで、当該内部論理ユニットは、当該複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納するための共通論理ユニットと、当該複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納するための個別論理ユニットとからなる。
そして、当該ストレージ装置は、当該複数のホスト装置の少なくともいずれか1つからのライト要求に基づき、当該ライト要求に従うライトデータと当該共通論理ユニットに格納されたデータとが一致するか否かを所定の管理ブロック単位で比較し、当該比較の結果、一致するデータブロックを当該共通論理ユニットに格納し、一致していないデータブロックを当該個別論理ブロックに格納する。
また、別の観点に従う本発明は、ネットワークを介して複数のホスト装置に接続されたストレージ装置の制御方法である。
当該制御方法は、当該ストレージ装置が、複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納する内部論理ユニットを共通論理ユニットとして作成するステップと、当該ストレージ装置が、当該複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納する内部論理ユニットを個別論理ユニットとして作成するステップと、当該ストレージ装置が、当該共通論理ユニット及び当該個別論理ユニットを当該複数のホスト装置のそれぞれがターゲットにする外部論理ユニットに割り当てるステップと、当該ストレージ装置が、当該複数のホスト装置の少なくともいずれか1つからのライト要求を受信するステップと、当該ストレージ装置が、当該ライト要求に従うライトデータと当該共通論理ユニットに格納されたデータとが一致するか否かを所定の管理ブロック単位で比較するステップと、当該ストレージ装置が、当該比較するステップにより、一致するデータブロックを当該共通論理ユニットに格納し、一致していないデータブロックを当該個別論理ブロックに格納するステップと、を含む。
本発明によれば、各ホスト装置が使用するストレージ装置内の論理ユニットは効率的に使用され、重複するデータの格納を排除することができ、記憶容量コストの増大を抑制できるようになる。
本発明の他の技術的特徴及び利点は、添付した図面を参照して説明される以下の実施形態のより明らかにされる。
次に、本発明の実施の形態について、図面を参照しつつ説明する。
(1)システム構成
(1−1)コンピュータシステムの構成
図1は、本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。同図に示すように、コンピュータシステム1は、ネットワーク2を介して相互に接続された、複数のホスト装置100と、マスタ管理装置200と、ストレージ装置300とから構成される。
ネットワーク2は、ストレージアクセスのためのLANやSANであり、典型的には、スイッチやハブ(図示せず)を含んで構成される。ネットワーク2では、ファイバチャネルプロトコル(FCP)やインターネットプロトコル(IP)が利用される。本実施形態では、ネットワーク2は、イーサネット(登録商標)によって構築されたIP−LANであるものとし、その上位プロトコルとしてiSCSIが利用されるものとする。
ホスト装置3は、所望の処理を遂行するコンピュータであり、典型的には、クライアントコンピュータ(図示せず)からの処理を遂行するサーバコンピュータである。ホスト装置3は、各種のプログラムを実行して、ハードウェア資源との協働作用により、クライアントコンピュータからの要求に応じた処理を実現する。例えば、ホスト装置3は、業務アプリケーションプログラムを実行することにより、ストレージ装置5にI/Oアクセスし、所望の業務システムを実現する。
ストレージ装置4は、ホスト装置3にデータストレージサービスを提供するためのシステムである。ストレージ装置4は、物理デバイスとしての複数のドライブユニット41と、ホスト装置3からのI/O要求に応答し、ドライブユニット41上に形成された論理ユニットに対するI/Oアクセスを制御するコントローラユニット42とを備える。
マスタ管理装置5は、ネットワーク2を介してホスト装置3及びストレージ装置4にアクセスし、管理するためのコンピュータである。マスタ管理装置5は、例えば、複数のホスト装置3によって利用される共通ファイルを格納する論理ユニット(共通論理ユニット)をストレージ装置4のドライブユニット41上に作成する。
(1−2)ホスト装置の構成
図2は、本発明の一実施形態に係るホスト装置3の内部構成を概略的に示す図である。同図に示すように、ホスト装置3は、典型的には、プロセッサ31と、メインメモリ32と、通信インタフェース33と、入出力装置34と、補助記憶装置(ローカルストレージ)35等のハードウェア資源を備え、また、補助記憶装置35に格納されたデバイスドライバやオペレーティングシステム(OS)、アプリケーションプログラム等のソフトウェア資源を備える(図示せず)。これによって、ホスト装置3は、プロセッサの制御の下、補助記憶装置35からメインメモリ32にロードされた各種のプログラムを実行して、各種のハードウェア資源との協働作用により、クライアントコンピュータからの要求に応じた処理を実現する。本実施形態では、ホスト装置3には、上述したようにOSやアプリケーションプログラムに加え、更新要求受付プログラム321が実装され、メインメモリ32上に実行可能オブジェクトとして展開されている。
(1−3)ストレージ装置の構成
図3は、本発明の一実施形態に係るストレージ装置4の内部構成を概略的に示す図である。上述したように、ストレージ装置4は、物理デバイスとしての複数のドライブユニット41と、ホスト装置3からのI/O要求に応答し、ドライブユニット41上に形成された論理ユニットに対するI/Oアクセスを制御するコントローラユニット42とを備える。図示していないが、ストレージ装置4は、コントローラユニット42の冗長構成(例えば二重化構成)が採用されてもよく、これに伴い、ドライブユニット41内のハードディスクドライブに対するパスも冗長化されていてもよい。
ドライブユニット41は、例えば複数のハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)等の記憶媒体を含んで構成される物理デバイス(PDEV)の集合体である。ドライブユニット41は、アレイ装置と呼ばれることもある。ドライブユニット41には、コントローラユニット42のRAID制御の下、いくつかの物理デバイスを仮想的に1つのデバイスにまとめた仮想デバイス(VDEV)が形成され、そこに1つ以上の論理デバイス(LDEV)が形成される。
論理デバイスは、ホスト装置3が認識しうる論理的な記憶装置であり、本実施形態では、論理ユニット(LU)が割り当てられる。即ち、各論理デバイスは、コントローラユニット52のポート各ポート5231に割り当てられ、これにより、ホスト装置3は、物理デバイス上に形成された論理デバイスを論理ユニットとして認識する。
各論理ユニットには、論理ユニット番号(LUN)が付与される。また、論理ユニットは、I/Oアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス(LBA)が割り当てられる。ホスト装置3は、論理ユニット番号及び論理ブロックアドレスからなる論理アドレスを含むコマンドをストレージ装置4に与えることにより、特定の論理ユニットにおける特定のブロックに対してアクセスすることができる。
上述のようにiSCSIを利用した本実施形態では、ホスト装置3及びストレージ装置4はそれぞれ、iSCSIネームが割り当てられたiSCSIノードとしてのイニシエータ及びターゲットとして機能し、従って、ホスト装置3及びストレージ装置4は、IPアドレス及びTCPポート番号の組み合わせで特定されるネットワークポータルを介して、iSCSI PDUを送受する。従って、ホスト装置3は、iSCSIネーム、IPアドレス、及びTCPポート番号を指定することにより、ネットワーク2上のストレージ装置5を認識し、その論理ユニット内のブロックに対してアクセスする。
また、ホスト装置3が認識する論理デバイス(即ち、論理ユニット)上には仮想的な1つ又はそれ以上の論理ボリュームが設定される。論理ボリュームは、論理デバイス上の仮想的なパーティションである。論理デバイス(又は論理ユニット)と論理ボリュームとは、ストレージ装置4が適用されるシステム環境等により区別されうるが、ここでは両者を同義に扱うことができる。
コントローラユニット42は、プロセッサ421と、メモリ422と、ホストインタフェース423と、キャッシュメモリ424と、ドライブインタフェース425と、管理インタフェース426とを備え、これらはデータコントローラ427を介して相互にバス接続されている。
プロセッサ421は、メモリ422に保持された各種の制御プログラムを実行することにより、コントローラユニット42を統括的に制御する。メモリ422には、同図に示すように、ディスクアクセスプログラム4221、論理ユニット管理プログラム4222、ブロックチェックプログラムといった制御プログラムに加え、各種のテーブルを含むシステム構成情報が保持される。本実施形態では、ターゲット管理テーブル600、外部論理ユニット(外部LU)管理テーブル700、共通論理ユニット(共通LU)管理テーブル800、外部論理ユニット(外部LU)ブロックマッピングテーブル900、イメージ管理テーブル1000、内部論理ユニット(内部LU)ブロック管理テーブル1100、及び共通論理ユニット(強雨通LU)管理テーブル1200が用意されている。これらのプログラムやテーブルは、例えば、電源ONにより起動されるイニシャルシーケンスに従って、ハードデバイスドライブの所定の記憶領域から読み出され、メモリ422上にロードされる。
ホストインタフェース423は、複数のポート4231を備え、ネットワーク2を介して当該ポート4231に接続されたホスト装置3との間で通信を行うネットワークインタフェースである。ホストインタフェース423は、プロセッサ421の負荷軽減のため、TCP/IPプロトコルに加え、iSCSIプロトコルを実装していてもよい。ホストインタフェース423は、ホストバスアダプタと呼ばれることもある。
キャッシュメモリ424は、ホスト装置3に対して高い応答性能を提供するため、ホストインタフェース423とデバイスインタフェース425との間でやり取りされるアプリケーションデータを一時的に記憶(キャッシュ)するメモリである。キャッシュメモリ424は、典型的には、DRAM等の揮発性メモリで構成されるが、フラッシュメモリ等の不揮発性メモリでその全部又は一部が構成されてもよい。
デバイスインタフェース425は、複数のポートを備え、ディスクチャネルを介して当該ポートに接続されたドライブユニット41に対するI/Oアクセスの制御を行うインタフェースである。即ち、デバイスインタフェース425は、キャッシュメモリ424にキャッシュされたデータを取り出して、ドライブユニット41上の対応するブロックに格納し(デステージング)、また、ドライブユニット41上のブロックからデータを読み出して、キャッシュメモリ424に書き込む(ステージング)。例えば、ホスト装置3から読み出し要求を受け付けた場合であって、キャッシュメモリ424に当該要求されたデータが存在しない場合には、必要に応じてデステージングを行ってキャッシュ領域を確保した後、キャッシュメモリ424に当該要求されたデータをステージングする。
管理インタフェース426、管理用ポートを備え、ネットワーク2を介して当該管理用ポートに接続されたマスタ管理装置との間で通信を行うためのネットワークインタフェースである。本実施形態では、TCP/IPベースの通信であるので、イーサネット(登録商標)ボードを用いることができる。
データコントローラ427は、上述したプロセッサ421、メモリ422、ホストインタフェース423、キャッシュメモリ424、及びデバイスインタフェース425を相互に接続し、これらの間のデータのフローを制御するチップセットである。
(1−4)マスタ管理装置の構成
図4は、本発明の一実施形態に係るマスタ管理装置の内部構成を概略的に示す図である。上述したように、マスタ管理装置4もまたコンピュータであるので、ホスト装置と基本的なその内部構成は同じである。マスタ管理装置には、ストレージ装置3の管理のため、マスタ作成プログラム521、イメージ作成プログラム522、及び更新管理プログラム523が実装されている。通信インタフェース33は、ネットワーク2を介してホスト装置3やストレージ装置4に接続するための通信インタフェースである。
(1−5)論理ユニットの概念的構成
図5は、本発明の一実施形態に係るストレージ装置4内の論理ユニットの構成を概念的に説明するための図である。
上述したように、iSCSI上、イニシエータであるホスト装置3は、ターゲット情報を用いて、ターゲットであるストレージ装置4に接続する。ターゲット情報は、iSCSIノードを識別するiSCSIネーム(ターゲットID)並びにネットワークポータルを識別するIPアドレス及びTCPポート番号である。ターゲット情報として、イニシエータ名が使用されても良い。1つのターゲットには、1つ以上の論理ユニットが割り当てられる。
本実施形態では、ストレージ装置4は、ターゲット情報で識別される仮想的な論理ユニットを形成する。つまり、ホスト装置3は、ターゲット情報により、ストレージ装置4内の仮想的な論理ユニットを認識する。ここでは、このような仮想的な論理ユニットを外部論理ユニット(外部LU)と呼ぶことにする。また、ストレージ装置4における物理デバイスとしてのドライブユニット41上に実際の記憶領域が割り当てられた論理ユニットを内部論理ユニット(内部LU)と呼ぶことにする。
内部論理ユニットには、各ホスト装置3に共通なブロックデータを格納するための共通論理ユニット(共通LU)と、各ホスト装置に固有なブロックデータを格納するための個別論理ユニット(個別LU)とがある。
これらの論理ユニットは、以下で詳述される各種の管理テーブルで管理され、参照される。
(2)各種管理テーブルの構成
(2−1)ターゲット管理テーブルの構成
図6は、本発明の一実施形態に係るストレージ装置4のターゲット管理テーブル600の一例を示す図である。ターゲット管理テーブル600は、ホスト装置3が認識するターゲットと仮想的な外部論理ユニットとを関係付けるテーブルである。
同図に示すように、ターゲット管理テーブル600は、ターゲット情報欄601、外部論理ユニット番号欄602、及びセッション情報欄603を含む。
ターゲット情報欄601は、ターゲットを一意に識別するためのターゲット情報を保持する。ターゲット情報は、例えば、iSCSIネームが用いられる。外部論理ユニット番号欄602は、外部論理ユニットを一意に識別するための番号(外部論理ユニット番号)を保持する。セッション情報欄603は、ターゲットに対してセッションを確立させたホスト装置3を一意に識別するための情報を保持する。
(2−2)外部論理ユニット管理テーブルの構成
図7は、本発明の一実施形態に係るストレージ装置4の外部論理ユニット管理テーブル700の一例を示す図である。外部論理ユニット管理テーブル700は、外部論理ユニットと内部論理ユニットとを対応付けるとともに、外部論理ユニットについての各種の情報を管理するテーブルである。
同図に示すように、外部論理ユニット管理テーブル700は、外部論理ユニット番号欄701、ホスト種別欄702、グループ欄703、内部論理ユニット番号欄704、及びアクセス制御情報欄705を含む。
外部論理ユニット番号欄701は、外部論理ユニット番号を保持する。従って、外部論理ユニット管理テーブル700は、当該外部論理ユニット番号によって、上記のターゲット管理テーブル600と関係付けられる。
ホスト種別欄702は、外部論理ユニットを使用する上位装置の種別を保持する。本例では、ホスト種別には、マスタ管理装置5を示す「マスタ」と、マスタ管理装置5以外の装置(つまり、ホスト装置3)を示す「個別」がある。
グループ欄703は、同一の起動イメージを使用するホスト装置3群を識別するグループ名を保持する。同一のグループ名が与えられたホスト装置3は、同一の共通論理ユニットを参照することになる。
内部論理ユニット番号欄704は、ストレージ装置4内の論理ユニットを一意に識別するための番号(内部論理ユニット番号)を保持する。ホスト種別が「マスタ」であれば、ここに保持される番号は、共通論理ユニットとして使用される内部論理ユニットの内部論理ユニット番号であり、ホスト種別が「個別」であれば、個別論理ユニットとして使用される内部論理ユニットの内部論理ユニット番号である。
アクセス制御情報欄705は、外部論理ユニットに対してライト要求があった場合に、当該ライト要求に従うデータブロックと共通論理ユニットのデータブロックとが一致するか否かを制御するための情報を保持する。初期状態では、「無効」がセットされる。本例では、アクセス制御情報には、「有効」及び「無効」がある。アクセス制御情報欄705が「有効」を示す場合、データの比較が行われる。
(2−3)共通論理ユニット管理テーブルの構成
図8は、本発明の一実施形態に係るストレージ装置4の共通論理ユニット管理テーブル800の一例を示す図である。共通論理ユニット管理テーブル800は、共通論理ユニットを使用するホスト装置3のグループ及び共通論理ユニットの世代を管理するテーブルである。
同図に示すように、共通論理ユニット管理テーブル800は、グループ欄801、世代欄802、及び内部論理ユニット番号欄803を含む。
グループ801欄は、同一の起動イメージを使用するホスト装置3群を識別するグループ名を保持し、従って、外部論理ユニット管理テーブル700のそれと同一である。
世代802欄は、マスタ更新が行われる都度、作成される共通論理ユニットの世代を保持する。従って、複数回、マスタ更新が行われると、それに応じて、複数世代の共通論理ユニットが作成されることになる。マスタ更新は、後述するように、マスタ管理装置5によって行われる。
内部論理ユニット番号欄803は、共通論理ユニットとして使用する内部論理ユニットの内部論理ユニット番号を保持する。
(2−4)外部論理ユニットブロックマッピングテーブルの構成
図9は、本発明の一実施形態に係るストレージ装置4の外部論理ユニットブロックマッピングテーブル900の一例を示す図である。外部論理ユニットブロックマッピングテーブル900は、外部論理ユニットに割り当てられた共通論理ユニット又は個別論理ユニットにおけるデータ格納位置を示すテーブルであり、1つの外部論理ユニットに対して、1つの外部論理ユニットブロックマッピングテーブル900が作成される。
同図に示すように、外部論理ユニットブロックマッピングテーブル900は、配列番号欄901、参照論理ユニット番号欄902、及び参照ブロック配列番号欄903を含む。
配列番号欄901は、外部論理ユニットの総ブロック数を保持する。例えば、ある外部論理ユニットについてのホスト種別が「マスタ」、ブロック管理単位が「8」である場合、配列番号「0」は論理ブロックアドレス「0」〜「7」のブロック、配列番号「1」は、論理ブロックアドレス「8」〜「15」までのブロックを示す。また、外部論理ユニットについてのホスト種別が「個別」、ブロック管理単位が「8」、後述する管理開始LBAが「1」である場合、配列番号「0」は論理ブロックアドレス「0」のブロック、配列番号「1」は論理ブロックアドレス「1」〜「8」までのブロック、配列番号「2」は、論理ブロックアドレス「9」〜「16」までのブロックを示す。
参照論理ユニット番号欄902は、配列番号欄901で示されるブロックにデータを格納している内部論理ユニットの番号を保持する。
参照ブロック配列番号欄903は、配列番号901で示されるブロックにデータを格納している内部論理ユニットの内部ブロックの配列番号である。例えば、参照ブロック配列番号「0」は、内部論理ユニットの内部ブロック「0」のブロック群を示し、参照ブロック配列番号「1」は、内部論理ユニットのブロック「1」のブロック群を示す。
(2−5)イメージ管理テーブルの構成
図10は、本発明の一実施形態に係るストレージ装置4のイメージ管理テーブル1000の一例を示す図である。イメージ管理テーブル1000は、ホスト装置3が使用するOSのファイルシステムに依存する情報を管理するテーブルである。
同図に示すように、イメージ管理テーブル1000は、グループ欄1001、ブロック管理ブロック単位欄1002、及び開始管理論理ブロックアドレス(LBA)欄1003を含む。
グループ欄1001は、同一の起動イメージを使用するホスト装置3群を識別するグループ名を保持し、従って、共通論理ユニット管理テーブル800のそれと同一である。
管理ブロック単位欄1002は、データを格納する際の最小領域サイズを示す。つまり、データは、管理ブロック単位にまとめられて格納される。例えば「8」は、8ブロック(512×8バイト)が管理ブロック単位であることを示す。データの格納に際しては、管理ブロック単位の倍数のサイズが使用される。
管理開始LBA欄1003は、ドライブユニット41に形成された論理ユニット(内部論理ユニット)のうち、データ領域の先頭論理アドレスを保持する。これは、一般に、ディスクの先頭の数ブロックには当該ディスクのフォーマット情報が格納されるため、当該数ブロック分をオフセットするための情報である。
(2−6)内部論理ユニットブロック管理テーブルの構成
図11は、本発明の一実施形態に係るストレージ装置4の内部論理ユニットブロック管理テーブル1100の一例を示す図である。内部論理ユニットブロック管理テーブル1100は、内部論理ユニットのブロック使用状態を管理するテーブルである。
同図に示すように、内部論理ユニットブロック管理テーブル1100は、内部論理ユニット番号1101欄及び最終ブロック番号欄1102を含む。
内部論理ユニット番号1101欄は、内部論理ユニットを一意に示す番号を保持する。最終ブロック番号欄1102は、内部論理ユニットにおける管理ブロック単位で管理されるブロック(内部ブロック)のうち、データが最後に書き込まれた内部ブロックの配列番号を示す。
(2−7)共通論理ユニットデータ管理テーブルの構成
図12は、本発明の一実施形態に係るストレージ装置4の共通論理ユニットデータ管理テーブル1200の一例を示す図である。共通論理ユニットデータ管理テーブル1200は、共通論理ユニットに格納されたデータを管理するテーブルであり、データの同一性及び参照数を管理する。共通論理ユニットデータ管理テーブル1200は、1つの共通論理ユニットに対して、1つの共通論理ユニットデータ管理テーブル1200が作成される。
同図に示すように、共通論理ユニットデータ管理テーブル1200は、配列番号欄1201、固有値欄1202、及び参照数欄1203を含む。
配列番号欄1201は、外部論理ユニットブロックマッピングテーブル900における参照ブロック配列番号欄903に対応し、内部論理ユニットの内部ブロックの番号を保持する。
固有値欄1202は、格納されたデータブロックに基づいて算出される値であり、例えば、ハッシュ値が用いられる。つまり、書き込みデータと固有値欄1202に示される値とを比較することにより、データの同一性を判断することができる。
参照数欄1203は、配列番号で示される内部ブロックを参照する外部論理ユニットの数を保持する。
(3)各種処理の説明
(3−1)マスタ作成処理
次に、図13乃至図15を参照し、本実施形態の本発明の一実施形態に係るコンピュータシステムにおけるマスタ作成処理を説明する。図13は、本発明の一実施形態に係るマスタ管理装置5におけるマスタ作成処理を説明するためのフローチャートであり、図14は、本発明の一実施形態に係るストレージ装置4における共通論理ユニット作成処理を説明するためのフローチャートである。また、図15は、本発明の一実施形態に係るストレージ装置4におけるマスタライト処理を説明するためのフローチャートである。
マスタ作成処理とは、各ホスト装置3が共通に使用するファイル(共通ファイル)を抽出し、これに基づいて共通論理ユニットを作成するための処理である。
システム管理者の操作の下、まず、ホスト装置3用の起動イメージを格納した光ディスク(CDやDVD)等の記録媒体がマスタ管理装置5の入出力装置54に装填され、マスタ管理装置5に電源が投入されると、マスタ管理装置5は、当該起動イメージをマウントし、当該起動イメージを読み出すことによって、起動される。なお、記録媒体上の起動イメージが補助記憶装置55にインストールされた後、そこからマスタ管理装置5が起動されても良い。続いて、マスタ作成プログラム521が、マスタ管理装置5上で実行される。
マスタ管理装置5によって実行されるマスタ作成プログラム521は、OSが有するディスク管理機能を用いて所定のディスク管理画面を提示して、設定しようとするストレージ装置4における記憶領域(共通論理ユニット)の使用サイズ、グループ、及びホスト種別を受け付ける(STEP1301)。これを受けて、マスタ作成プログラム521は、OSのファイルシステムの仕様に従って、管理ブロック単位及び管理開始LBAを算出し、さらに、当該記憶領域の使用サイズ及び当該管理ブロック単位に基づいて、共通論理ユニットのサイズを算出する(STEP1302)。ここで、共通論理ユニットの総ブロック数が管理ブロック単位の倍数になるように、記憶領域の使用サイズが設定されることが好ましい。
次に、マスタ作成プログラム521は、外部論理ユニット作成要求コマンドを作成し、ストレージ装置4の管理インタフェース426を介して、これをストレージ装置4の論理ユニット管理プログラム4222に送信する(STEP1303)。外部論理ユニット作成要求コマンドは、そのパラメータとして、例えば、ホスト種別、グループ、管理ブロック単位、管理開始LBA、及び共通論理ユニットのサイズを含む。ここでは、外部論理ユニット作成要求コマンドのパラメータはそれぞれ、「ホスト種別:マスタ」、「グループ:A」、「管理ブロック単位:8」、「管理開始LBA:1」、「共通論理ユニットのサイズ:X」であるものとする。
ストレージ装置4上で実行される論理ユニット管理プログラム4222は、「ホスト種別:マスタ」が指定された外部論理ユニット作成要求コマンドを受信すると、以下に示す外部論理ユニット作成処理を実行する。
即ち、論理ユニット管理プログラム4222は、まず、外部論理ユニットを割り当てるべきターゲットについてのターゲット情報を作成し、これをターゲット管理テーブル600のターゲット情報欄601に登録する(STEP1401)。次に、論理ユニット管理プログラム4222は、当該ターゲットに対して外部論理ユニット番号を割り当て、これをターゲット管理テーブル600の外部論理ユニット番号欄600に登録するとともに、外部論理ユニット管理テーブル700の外部論理ユニット番号欄701に登録する(STEP1402)。
続いて、論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドで指定される「共通論理ユニットのサイズ:X」に基づいて内部論理ユニットのサイズを算出した後、内部論理ユニットを作成し、その内部論理ユニット番号を外部論理ユニット管理テーブル700の内部論理ユニット番号欄704に登録する(STEP1403)。また、論理ユニット管理プログラム4222は、当該内部論理ユニット番号を内部論理ユニットブロック管理テーブル900の内部論理ユニット番号欄901に登録するとともに、最終ブロック番号902欄に「0」を設定し、初期化する(STEP1404)。また、論理ユニット管理プログラム4222は、当該外部論理ユニット作成要求コマンドに従い、外部論理ユニット管理テーブル700のホスト種別欄702に「マスタ」を、グループ欄703に「A」をそれぞれ登録する。
論理ユニット管理プログラム4222は、次に、共通論理ユニット管理テーブル800に新たなエントリを追加し、グループ欄801に「A」を登録する(STEP1405)。続いて、論理ユニット管理プログラム4222は、共通論理ユニット管理テーブル800内に同じグループに属する共通論理ユニットが登録されているか否かを判断し(STEP1406)、登録されていないと判断する場合には(STEP1406のNo)、当該エントリの世代欄802に「0」を登録する(STEP1407)。一方、論理ユニット管理プログラム4222は、共通論理ユニット管理テーブル800内に同じグループに属する共通論理ユニットが登録されていると判断する場合には(STEP1406のYes)、当該エントリの世代欄802に示される値を1つ増やす(STEP1408)。
続いて、論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドで指定された「共通論理ユニットのサイズ:X」及び「管理ブロック単位:8」に基づいて、総ブロック数(総配列数)を算出し、当該共通論理ユニットについて、当該総配列数に応じた共通論理ユニットデータ管理テーブル1200を作成し、初期化のため各配列番号に対応する参照数欄1203に「0」を登録する(STEP1409)。
さらに、論理ユニット管理プログラム4222は、共通論理ユニット管理テーブル800の世代欄802の値が「0」である各グループについて、イメージ管理テーブル1100に新たなエントリを作成し、そのグループ、その管理ブロック単位、及びその管理開始LBAをそれぞれ該当するエントリのグループ欄1101、ブロック管理単位欄1102、及び先頭LBA欄1103に登録する(STEP1409)。
次に、論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドで指定された「共通論理ユニットのサイズ:X」及び「管理ブロック単位:8」に基づいて算出された総ブロック数(総配列数)に応じて、当該外部論理ユニットについての外部論理ユニットブロックマッピングテーブル900を作成し、初期化のため、各配列番号に対応する参照ブロック配列番号欄1003に、まだ参照されていないことを示す値、例えば「−1」をセットする(STEP1411)。
そして、論理ユニット管理プログラム4222は、管理インタフェース426を介して、作成したターゲット情報及び外部論理ユニット番号をマスタ管理装置5に送信する(STEP1412)。
図13に戻り、マスタ管理装置5上のマスタ作成プログラム521は、ストレージ装置4から送信されるターゲット情報及び外部論理ユニット番号を受信すると(STEP1304)、ストレージ接続機能を用いて、ストレージ装置4のホストインタフェース423に接続要求コマンドを送信し、先に作成した外部論理ユニットを接続し、これをマウントする(STEP1305)。接続要求コマンドは、当該外部論理ユニットをターゲットとするターゲット情報を含む。
次に、マスタ作成プログラム521は、全ての共通ファイルを選択した後、当該選択された共通ファイルを構成するデータを当該マウントした外部論理ユニットに転送する(STEP1306)。データの書き込みは、典型的には、外部論理ユニットの先頭位置(LBA=0)から行われる。
即ち、マスタ作成プログラム521は、ファイルシステムのファイルアドレス管理情報を参照し、共通ファイルを構成するデータが格納されている補助記憶装置53の記憶領域の論理ブロックアドレスを算出し、当該記憶領域にブロック単位でアクセスしてデータを順次に読み出し、マウントした外部論理ユニットに当該読み出したデータを書き込むためのマスタライト要求コマンドをストレージ装置4に送信する。マスタライト要求コマンドは、論理ブロックアドレス、ブロック数、及びデータ(書き込みデータ)を含む。ストレージ装置4が受信したマスタライト要求コマンドは、ディスクアクセスプログラム4221に渡され、図15に示されるマスタライト処理に従って、ドライブユニット41上の共通論理ユニットに書き込まれる。
データの転送に先立ち、上述したように、接続要求コマンドに基づいて、ターゲットであるストレージ装置4内に仮想的に作成された外部論理ユニットがマスタ管理装置5にマウントされる。これにより、ディスクアクセスプログラム4221は、ターゲット管理テーブル600を参照し、当該ターゲットについての外部論理ユニット番号欄602から外部論理ユニット番号を取得し、続いて、外部論理ユニット管理テーブル700を参照して、当該取得した外部論理ユニット番号についての内部論理ユニット番号欄704から内部論理ユニット番号を、また、グループ欄703からグループをそれぞれ取得し、さらに、イメージ管理テーブル1000を参照して、当該グループについての管理ブロック単位欄1002から管理ブロック単位を取得する(STEP1501)。
次に、ディスクアクセスプログラム4221は、外部論理ユニットブロックマッピングテーブル900を参照し、取得した管理ブロック単位並びにマスタライト要求コマンドで指定された論理ブロックアドレス(LBA)及びブロック数に基づいて、配列番号を算出する。続いて、ディスクアクセスプログラム4221は、外部論理ユニットブロックマッピングテーブル900の参照論理ユニット番号欄902に取得した内部論理ユニット番号を、また、参照ブロック配列番号欄903に配列番号と同じ値を登録する(STEP1502)。そして、ディスクアクセスプログラム4221は、参照論理ユニット番号欄902で示される内部論理ユニット番号の参照ブロック配列番号欄903で示されるブロックに書き込みデータを格納する(STEP1503)。
データの書き込みが完了すると、ディスクアクセスプログラム4221は、書き込んだデータのブロック数に応じて、内部論理ユニットブロック管理テーブル1100の対応する最終ブロック番号を更新する(STEP1504)。
例えば、ターゲットである外部論理ユニットに対する管理ブロック単位が「8」であり、マスタライト要求コマンドにおいて「LBA:0x0」及び「ブロック数:16」が指定されている場合、配列番号は「0」及び「1」となる。従って、書き込みデータは、内部論理ユニットの参照ブロック配列番号「0」で示される位置に8ブロック分格納され、次に、参照ブロック配列番号「1」で示される位置に8ブロック分格納される。この場合、内部ブロック2つ分のデータを格納したため、内部論理ブロック管理テーブル1100の最終ブロック番号欄1102には「2」が登録される。
最後に、ディスクアクセスプログラム4221は、格納したデータに基づいて、データブロックごとにその固有値(ハッシュ値)を算出し、これを共通論理ユニットデータ管理テーブル1200の配列番号に対応する固有値欄1202に登録する(STEP1505)。
(3−2)起動イメージ作成処理
次に、図16乃至図18を参照し、本実施形態の本発明の一実施形態に係るコンピュータシステムにおける起動イメージ作成処理を説明する。図16は、本発明の一実施形態に係るマスタ管理装置5における起動イメージ作成処理を説明するためのフローチャートであり、図17は、本発明の一実施形態に係るストレージ装置4における個別論理ユニット作成処理を説明するためのフローチャートである。また、図18は、本発明の一実施形態に係るストレージ装置4における起動イメージ作成時の個別ライト処理を説明するためのフローチャートである。
起動イメージ作成処理は、ホスト装置3が使用する起動イメージを作成するための処理である。ホスト装置3の起動イメージには、マスタ作成処理において使用した起動イメージが使用されるため、OS及びアプリケーションプログラムのファイルは共通となる。システム管理者は、起動イメージを作成する個別論理ユニットのサイズを任意に設定することができる。ただし、ここでは、個別論理ユニットのブロック数は管理ブロック単位の倍数であるとし、共通論理ユニットのサイズよりも大きい値を設定するものとする。
システム管理者がマスタ管理装置5を操作して、イメージ作成プログラム522の実行を指示すると、イメージ作成プログラム522は、OSが有するディスク管理機能を呼び出して、所定のディスク管理画面を介して、設定しようとするストレージ装置4における個別論理ユニットの使用サイズ、グループ、及びホスト種別を受け付ける(STEP1601)。これを受けて、イメージ作成プログラム522は、OSのファイルシステムの仕様に従って、管理ブロック単位及び管理開始LBAを算出する(STEP1602)。続いて、イメージ作成プログラム522は、外部論理ユニット作成要求コマンドを作成し、ストレージ装置4の管理インタフェース426を介して、これをストレージ装置4の論理ユニット管理プログラム4222に送信する(STEP1603)。本例では、外部論理ユニット作成要求は、そのパラメータとして、「ホスト種別:個別」、「グループ:A」、及び「個別論理ユニットのサイズ:Y」を含むものとする。
ストレージ装置4上で実行される論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドを受信すると、以下に示す外部論理ユニット作成処理を行って、個別論理ユニットを作成する。
即ち、論理ユニット管理プログラム4222は、外部論理ユニットを割り当てるべきターゲットについてのターゲット情報を作成し、これをターゲット管理テーブル600のターゲット情報欄601に登録する(STEP1701)。次に、論理ユニット管理プログラム4222は、当該ターゲットに対して外部論理ユニット番号を割り当て、これをターゲット管理テーブル600の外部論理ユニット番号欄600に登録するとともに、外部論理ユニット管理テーブル700の外部論理ユニット番号欄701に登録する(STEP1702)。
論理ユニット管理プログラム4222は、次に、外部論理ユニット作成要求コマンドで指定される「個別論理ユニットのサイズ」に基づいて内部論理ユニットのサイズを算出し、内部論理ユニットを作成し、その内部論理ユニット番号を外部論理ユニット管理テーブル700の内部論理ユニット番号欄704に登録する(STEP1703)。これに併せて、論理ユニット管理プログラム4222は、当該内部論理ユニット番号を内部論理ユニットブロック管理テーブル900の内部論理ユニット番号欄901に登録するとともに、初期化のため最終ブロック番号902欄に「0」を設定する(STEP1704)。また、論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドに従い、外部論理ユニット管理テーブル700のホスト種別欄702に「個別」を、グループ欄703に「A」を登録する。
続いて、論理ユニット管理プログラム4222は、外部論理ユニット作成要求コマンドで指定された「個別論理ユニットのサイズ:Y」及び「管理ブロック単位:8」に基づいて、総ブロック数(総配列数)を算出し、外部論理ユニットブロックマッピングテーブル900を作成し、各配列番号に対応する参照ブロック配列番号欄1003に、まだ参照されていないことを示す値、例えば「−1」をセットして、外部論理ユニットブロックマッピングテーブル900を初期化する(STEP1705)。
そして、論理ユニット管理プログラム4222は、ターゲット情報及び外部論理ユニット番号をマスタ管理装置5に送信する(STEP1706)。
図16に戻り、イメージ作成プログラム522は、ストレージ装置4から送信されるターゲット情報及び外部論理ユニット番号を受信すると(STEP1604)、ストレージ装置4の管理インタフェース426を介して、論理ユニット管理プログラム4222にアクセス制御情報有効要求コマンドを送信する(STEP1605)。アクセス制御情報有効要求コマンドは、そのパラメータに、外部論理ユニット番号を含む。
論理ユニット管理プログラム4222は、アクセス制御情報有効要求コマンドを受信すると(図17のSTEP1707)、外部論理ユニット管理テーブル700における当該外部論理ユニット番号についてのアクセス制御情報欄705の値を「有効」にセットする(STEP1708)。
図16に戻り、イメージ作成プログラム522は、ストレージ接続機能を用いて、ストレージ装置4のホストインタフェース423に接続要求コマンドを送信し、外部論理ユニットに接続し、これをマウントする(STEP1606)。イメージ作成プログラム522は、マウントした外部論理ユニットを、次のデータ転送に先立ち、フォーマットしても良い。
次に、イメージ作成プログラム522は、個別ファイルを選択した後、当該選択された個別ファイルを構成するデータを当該マウントした外部論理ユニットに転送する(STEP1306)。データの書き込みは、典型的には、外部論理ユニットの先頭位置(LBA=0)から行われる。
即ち、イメージ作成プログラム522は、ファイルシステムのファイルアドレス管理情報を参照し、個別ファイルを構成するデータが格納されている補助記憶装置53の記憶領域の論理ブロックアドレスを算出し、当該記憶領域にブロック単位でアクセスしてデータを順次に読み出し、マウントした外部論理ユニットに当該読み出したデータを書き込むための個別ライト要求コマンドをストレージ装置4に送信する。個別ライト要求コマンドは、論理ブロックアドレス、ブロック数、及び書き込みデータを含む。ストレージ装置4が受信した個別ライト要求コマンドは、ディスクアクセスプログラム4221に渡され、図18に示される個別ライト処理に従って、ドライブユニット41上の所定の記憶領域に書き込まれる。個別ライト処理が完了すると、イメージ作成プログラム522は、ストレージ装置4の管理インタフェース426を介して、論理ユニット管理プログラム4222にアクセス制御情報無効要求コマンドを送信する(STEP1608)。
データの転送に先立ち、上述したように、接続要求コマンドに基づいて、ターゲットであるストレージ装置4内に仮想的に作成された外部論理ユニット(個別論理ユニット)がマスタ管理装置5にマウントされる。これにより、ディスクアクセスプログラム4221は、ターゲット管理テーブル600を参照し、当該ターゲットについての外部論理ユニット番号欄602から外部論理ユニット番号を取得し、続いて、外部論理ユニット管理テーブル700を参照して、当該取得した外部論理ユニット番号についての内部論理ユニット番号欄704から内部論理ユニット番号を、また、グループ欄703からグループをそれぞれ取得し、さらに、イメージ管理テーブル1000を参照して、当該グループについての管理ブロック単位欄1002から管理ブロック単位を取得する。さらに、ホスト種別が「個別」であるため、ディスクアクセスプログラム4221は、外部論理ユニット管理テーブル700を参照して、アクセス制御情報欄705からアクセス情報を取得するとともに、グループ欄703及びホスト種別欄702を参照して、同一グループでマスタである内部論理ユニット(つまり共通論理ユニット)についての内部論理ユニット番号欄704から内部論理ユニット番号を取得する(STEP1801)。
ディスクアクセスプログラム4221は、次に、外部論理ユニットブロックマッピングテーブル900を参照し、取得した管理ブロック単位並びに個別ライト要求で指定された論理ブロックアドレス及びブロック数に基づいて、配列番号を算出する。続いて、ディスクアクセスプログラム4221は、外部論理ユニットブロックマッピングテーブル900の参照論理ユニット番号欄902に取得した内部論理ユニット番号を、また、参照ブロック配列番号欄903に配列番号と同じ値を設定する(STEP1802)。
続いて、ディスクアクセスプログラム4221は、この時点ではアクセス制御情報が「有効」であるので(図17のSTEP1708参照)、書き込まれたデータブロック全てについてマッチング処理を行う第1の個別ライト処理を実行する(STEP1803)。第1の個別ライト処理は、図19を参照して説明される。
第1の個別ライト処理が終了すると、上述したように、イメージ作成プログラム522は、ストレージ装置4の管理インタフェース426を介し、論理ユニット管理プログラム4222にアクセス制御情報無効要求コマンドを送信する。アクセス制御情報無効要求コマンドを受信した論理ユニット管理プログラム4222は、外部論理ユニット管理テーブル700における当該外部論理ユニットについてのアクセス制御情報欄705の値を「無効」に変更する(STEP1804)。
(3−3)ホスト装置3によるファイルのリード/ライト処理
ホスト装置は、上述した起動イメージ作成処理において得られたターゲット情報を用いて、ネットワーク2を介して接続されたストレージ装置4から起動される。
即ち、ホスト装置3に電源が投入されると、ホスト装置3のブートプログラムは、ストレージ接続機能を用いて、ターゲットである外部論理ユニットをマウントするため、接続要求コマンドを送信する。接続要求コマンドは、ターゲットを識別するためのターゲット情報を含む。接続要求コマンドを受信したディスクアクセスプログラム4221は、上述したように、ターゲット管理テーブル600を参照し、当該ターゲット情報から外部論理番号を取得する。続いて、ディスクアクセスプログラム4221は、取得した外部論理番号を用いて、外部論理ユニット管理テーブル700、イメージ管理テーブル1000、及び外部論理ユニットブロックマッピングテーブル900をそれぞれ参照して、該当するエントリから管理ブロック単位、管理開始LBA、アクセス制御情報、個別論理ユニットとしての外部論理ユニットに対する内部論理ユニット番号、共通論理ユニットとしての外部論理ユニットに対する内部論理ユニット番号を取得する。そして、ディスクアクセスプログラム4221は、当該接続要求コマンドを一意に識別するためのセッション情報を生成し、ターゲット管理テーブル600における当該外部論理ユニットについてのセッション情報欄603に登録し、当該生成したセッション情報をホスト装置3のブートプログラムに送信する。これにより、ホスト装置3とストレージ装置4との間にセッションが確立され、外部論理ユニットがマウントされることになる。
ブートプログラムは、続いて、マウントした外部論理ユニット内のファイルにアクセスし、OSを起動する。また、ホスト装置3は、OS上でアプリケーションプログラムを起動する。これにより、ホスト装置3上のアプリケーションプログラムは、ストレージ装置4の外部論理ユニットにI/Oアクセスすることが可能になる。即ち、アプリケーションプログラムは、所定のファイルに対するI/O要求を行うと、ライト要求コマンド又はリード要求コマンドがストレージ装置4のホストインターフェース423に送信され、これを受けて、ディスクアクセスプログラム4221は、当該コマンドに基づいて、ドライブユニット41にアクセスし、応答する。ライト要求コマンドは、セッション情報、論理ブロックアドレス、ブロック数、及び書き込みデータを含む。ライト要求コマンドを受信したディスクアクセスプログラム4221は、ターゲット管理テーブル600を参照して、セッション情報に一致するターゲットの外部論理ユニット番号を取得する。次に、ディスクアクセスプログラム4221は、当該取得した外部論理ユニット番号を用いて、外部論理ユニット管理テーブル700からアクセス制御情報を取得する。この場合、ホスト種別が「個別」であり、アクセス制御情報が「無効」であれば、共通論理ユニットに対するライト処理の場合にのみデータブロックの比較を行なう第2の個別ライト処理が行われる。
(3−4)第1の個別ライト処理
図19は、本発明の一実施形態に係るストレージ装置における第1の個別ライト処理を説明するためのフローチャートである。第1の個別ライト処理は、ターゲットである外部論理ユニットのアクセス制御情報が「有効」である場合に行われる処理である。
同図に示すように、ディスクアクセスプログラム4221は、ライト要求コマンドを受信すると、管理ブロック単位、管理開始LBA、書き込み先論理ブロックアドレス、及びブロック数に基づいて、外部論理ユニットブロックマッピングテーブル900からデータが書き込まれるべきブロックの配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得するとともに、共通論理ユニット管理テーブル800から同一のグループに属する共通論理ユニットの内部論理ユニット番号を取得する(STEP1901)。
ディスクアクセスプログラム4221は、次に、管理ブロック単位で、書き込みデータのハッシュ値を算出し、当該算出したハッシュ値と共通論理ユニットデータ管理テーブル1200の固有値と比較し、さらに、ハッシュ値と固有値とが一致する場合に、内部論理ユニットからデータを読み出して、バイト単位で、書き込みデータと読み出しデータとを比較する(STEP1902)。
比較の結果、ディスクアクセスプログラム4221は、データが同一であると判断する場合(STEP1903のYes)、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル900に参照論理ユニット番号及び参照ブロック配列番号を再設定する(STEP1904)。そして、ディスクアクセスプログラム4221は、新旧の共通論理ユニットデータ管理テーブル1200の参照数を更新する(STEP1905)。
これに対して、ディスクアクセスプログラム4221は、共通論理ユニットに同一のデータがないと判断する場合(STEP1903のNo)、個別論理ユニットに書き込みデータを格納する。即ち、ディスクアクセスプログラム4221は、内部論理ユニットブロック管理テーブル1100を参照して、最終ブロック番号を取得し、当該最終ブロック番号で示されるブロックに書き込みデータを格納する(STEP1906)。そして、ディスクアクセスプログラム4221は、外部論理ユニットブロックマッピングテーブル900に参照論理ユニット番号及び参照ブロック配列番号を再設定するとともに(STEP1907)、内部論理ユニットブロック管理テーブル1100の最終ブロック番号を更新する(STEP1908)。
そして、ディスクアクセスプログラム4221は、全てのデータブロックについてマッチングチェックを行ったか否かを判断し(STEP1909)、まだマッチングを行っていないデータブロックがあれば(STEP1909のNo)、STEP1902の処理に戻る。
(3−5)第2の個別ライト処理
図20は、本発明の一実施形態に係るストレージ装置における第2の個別ライト処理を説明するためのフローチャートである。第2の個別ライト処理は、ターゲットである外部論理ユニットのアクセス制御情報が「無効」である場合に行われる処理である。
同図に示すように、ディスクアクセスプログラム4221は、ライト要求コマンドを受信すると、管理ブロック単位、管理開始LBA、書き込み先論理ブロックアドレス、及びブロック数に基づいて、外部論理ユニットブロックマッピングテーブル900からデータが書き込まれるべきブロックの配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得する(STEP2001)。
ディスクアクセスプログラム4221は、次に、外部論理ユニットブロックマッピングテーブル900を参照し、参照ブロック配列番号が初期値(例えば「−1」)のままであるか否かを判断する(STEP2002)。ディスクアクセスプログラム4221は、参照ブロック配列番号が初期値のままであると判断する場合には(STEP2002のNo)、STEP2008〜STEP2010の処理を行う。STEP2008〜STEP2011の処理は、図19に示したSTEP1906〜STEP1909の処理と同じであるので、説明を省略する。
これに対して、ディスクアクセスプログラム4221は、参照ブロック配列番号が初期値以外であると判断する場合には(STEP2002のYes)、続いて、参照論理ユニット番号が共通論理ユニットを示すものであるか否かを判断する(STEP2003)。ディスクアクセスプログラム4221は、参照論理ユニット番号が共通論理ユニットを示すものでない(つまり個別論理ユニットである)と判断する場合には(STEP2003のNo)、同様に、STEP2008〜STEP2010の処理を行う。
ディスクアクセスプログラム4221は、参照論理ユニット番号が共通論理ユニットを示すものであると判断する場合(STEP2003のYes)、上述した第1の個別ライト処理と同じように、管理ブロック単位ごとに、データの同一性をチェックし、共通論理ユニット又は個別論理ユニットにデータを書き込む(STEP2004〜STEP2010)。STEP2004〜STEP2011の処理は、図19に示したSTEP1902〜STEP1909の処理と同じであるので、説明を省略する。
(3−6)リード処理
図21は、本発明の一実施形態に係るストレージ装置におけるリード処理を説明するためのフローチャートである。
ホスト装置3から送信されるリード要求コマンドは、セッション情報、論理ブロックアドレス、及びブロック数を含む。ディスクアクセスプログラム4221は、リード要求コマンドを受信すると、セッション情報で指定されるターゲットの外部論理ユニット番号を取得する。続いて、ディスクアクセスプログラム4221は、当該取得した外部論理ユニット番号について、同様に、外部論理ユニットブロックマッピングテーブル900からデータを読み出すべきブロックを示す配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得する(STEP2101)。ここで、参照論理ユニット番号は、共通論理ユニット又は個別論理ユニットの内部論理ユニット番号である。
ディスクアクセスプログラム4221は、次に、外部論理ユニットブロックマッピングテーブル900を参照し、当該取得した配列番号についての参照論理ユニット番号及び参照ブロック配列番号を取得し、データを読み出すべき内部論理ユニットのブロック位置及びブロック数を特定する(STEP2102)。続いて、ディスクアクセスプログラム4221は、特定した内部論理ユニットのブロック位置より、管理ブロック単位で、データを読み出す(STEP2103)。
後述するマスタ更新処理が行われると、世代の異なる複数の共通論理ユニットが存在することになる。このため、ディスクアクセスプログラム4221は、同一のグループに属する共通論理ユニットに複数世代が存在するか否かを判断し(STEP2103)、存在すると判断する場合には(STEP2103のYes)、さらに、リード要求されているデータが世代の古い共通論理ユニットを参照しているか否かを判断し(STEP2104)、そうであるならば(STEP2104のYes)、以下に示すデータ移動処理を行う(STEP2105)。
(3−7)データ移動処理
図22は、本発明の一実施形態に係るストレージ装置4におけるデータ移動処理を説明するためのフローチャートである。
即ち、ディスクアクセスプログラム4221は、管理ブロック単位で、読み出しデータのハッシュ値を算出し、当該算出したハッシュ値と、当該共通論理ユニットの共通論理ユニットデータ管理テーブル1200の固有値と比較し、さらに、ハッシュ値と固有値とが一致する場合に、内部論理ユニットからデータを読み出して、バイト単位で、書き込みデータと読み出しデータとを比較する(STEP2201)。
比較の結果、ディスクアクセスプログラム4221は、データが同一であると判断する場合には(STEP2202のYes)、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル900に参照論理ユニット番号及び参照ブロック配列番号を再設定する(STEP2203)。続いて、ディスクアクセスプログラム4221は、新旧それぞれの共通論理ユニットデータ管理テーブル1200の参照数を更新する(STEP2204〜STEP2205)。
これに対して、ディスクアクセスプログラム4221は、データが同一でないと判断する場合、つまり、新しい世代の共通論理ユニットに同一のデータがない場合(STEP2202のNo)、読み出したデータを最新の共通論理ユニットにコピーする(STEP2206)。この場合、ディスクアクセスプログラム4221は、最終ブロック番号の位置から順にデータが格納され、コピー完了後、データを格納したブロック数に応じて、内部論理ユニットブロック管理テーブル11001の最終ブロック番号を更新する。
次に、ディスクアクセスプログラム4221は、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル900の参照論理ユニット番号及び参照ブロック配列番号を再設定する(STEP2207)。そして、ディスクアクセスプログラム4221は、新旧それぞれの共通論理ユニットデータ管理テーブル1200の参照数を更新する(STEP2208〜STEP2209)。
そして、ディスクアクセスプログラム4221は、全てのデータブロックについてマッチングを行ったか否かを判断し(STEP2210)、まだマッチングを行っていないデータブロックがあれば(STEP2210のNo)、STEP2202の処理に戻る。
(3−8)マスタ更新処理
図23は、本発明の一実施形態に係るストレージ装置におけるマスタ更新処理を説明するためのフローチャートである。
マスタ更新処理とは、各ホスト装置3が共通で使用するOSやアプリケーションプログラム等のファイル(共通ファイル)を更新する処理である。各ホスト装置が、単に、このような共通ファイルの更新処理を行なっただけでは、データが個別論理ユニットに移され、共通論理ユニットのデータが参照されないことになる。そこで、本実施形態では、共通ファイルが更新されても、これらの共通ファイルが参照されるように制御される。
まず、システム管理者は、マスタ管理装置5を操作して、共通ファイルの更新を行なう。その後、マスタ作成プログラム521の実行により、上述したような起動イメージ作成処理が行われる。これにより、共通論理ユニット管理テーブル800には、同じグループに属する世代の異なる共通論理ユニットについてのエントリが新たに追加される。
次に、更新管理プログラム523は、ストレージ装置4の管理インタフェース426を介して、論理ユニット管理プログラム4222にアクセス制御情報有効要求コマンドを送信する(STEP2301)。アクセス制御情報有効要求コマンドは、ホスト装置3がターゲットにする外部論理ユニットの外部論理ユニット番号を含む。これを受けて、ストレージ装置4の論理ユニット管理プログラム4222は、外部論理ユニット管理テーブル700における当該外部論理ユニット番号に対応するアクセス制御情報欄705の値を「有効」に変更する。
更新管理プログラム523は、次に、ホスト装置3の更新要求受付プログラム321に更新実行要求コマンドを送信する(STEP2302)。更新実行要求コマンドは、更新対象のファイル名、当該ファイルを構成するデータを含む。これにより、更新要求受付プログラム321は、ファイルの更新(追加や置換等)を行う。ホスト装置3において更新処理が行われると、ホスト装置3は、ライト要求コマンドを送信する。
ホスト装置3からライト要求コマンドを受信したストレージ装置4のディスクアクセスプログラム4221は、当該外部論理ユニットについてのアクセス制御情報が「有効」に変更されているため、書き込みデータの全てについて、すでに格納されているデータと一致しているか否かの比較を行なう第1の個別ライト処理を行う。
更新処理を完了したホスト装置3は、更新終了コマンドをマスタ管理装置5に送信し、更新管理プログラム523は、これを受信する(STEP2303)。
更新管理プログラム523は、ストレージ装置4の管理インタフェース426を介して、論理ユニット管理プログラム4222にアクセス制御情報無効要求コマンドを送信する(STEP2304)。アクセス制御情報無効要求コマンドは、ホスト装置3がターゲットにする外部論理ユニットの外部論理ユニット番号を含む。これを受けて、論理ユニット管理プログラム4222は、外部論理ユニット管理テーブル700における当該外部論理ユニットに対応するアクセス制御情報欄705の値を「無効」に変更する。
従って、この後、ホスト装置3が当該外部論理ユニットのファイルに対してライト要求を行うと、ディスクアクセスプログラム4221は、第2の個別ライト処理を行うことになる。上述したように、第2の個別ライト処理においては、共通論理ユニットに対する書き込みデータについてのみ、比較処理が行われることになる。
なお、ホスト装置3によるライト要求に従う書き込みデータと共通論理ユニットに格納されたデータとの比較処理は、ディスクアクセスを伴う場合がある。そのため、比較処理の頻度が高い第1の個別ライト処理は、ホスト装置3において更新処理が行われている間のみ実行されることが好ましい。第2の個別ライト処理は、共通論理ユニットを参照するブロックにデータを書き込む際に比較を行う。
また、比較処理の負荷を軽減するため、ストレージ装置4のディスクアクセスプログラム4221は、例えば、ホスト装置3に割り当てられたスワップ領域に関する情報を、ホスト装置3から予め取得する。これにより、ディスクアクセスプログラム4221は、スワップ領域に対する書き込みデータについて比較処理を行わずに、書き込みデータを個別論理ユニットに移動できるため、比較処理回数を削減できることになる。
(3−9)共通論理ユニット削除処理
共通論理ユニット削除処理は、ストレージ装置4内で参照されなくなった古い世代の共通論理ユニットを削除する処理である。
システム管理者は、マスタ管理装置5を操作して、共通論理ユニット削除指示を与えると、更新管理プログラム523は、ストレージ装置4の管理インタフェース426を介して、論理ユニット管理プログラム4222に共通論理ユニット削除要求コマンドを送信する。共通論理ユニット削除要求コマンドは、パラメータとして、削除すべき共通論理ユニットが属するグループを含む。本例では、「グループ:A」に対する共通論理ユニット削除要求コマンドであるとする。
共通論理ユニット削除要求コマンドを受信した論理ユニット管理プログラム4222は、外部論理ユニット管理テーブル700を参照し、「グループ:A」に属する共通論理ユニット(つまりマスタ)の内部論理ユニット番号を取得し、当該共通論理ユニットの共通論理ユニットデータ管理テーブル1200を特定する。続いて、論理ユニット管理プログラム4222は、当該特定した共通論理ユニットデータ管理テーブル1200の参照数欄1203を参照し、参照数が全て0であるか否かを判断する。論理ユニット管理プログラム4222は、参照数が全て0であると判断する場合には、当該共通論理ユニットについての内部論理ユニットを削除するとともに、内部論理ユニットブロック管理テーブル1100、共通論理ユニットデータ管理テーブル800、及び外部論理ユニットブロックマッピングテーブル900を削除する。また、論理ユニット管理プログラム4222は、外部論理ユニット管理テーブル700及び共通論理ユニット管理テーブル410-2における当該共通論理ユニットについてのエントリを削除する。
第1及び第2の個別ライト処理並びにリード処理におけるデータ移動処理によって世代の古い共通論理ユニットから新しい論理ユニットへ参照ブロック配列番号が更新される。従って、定期的に共通論理ユニット削除処理が実行されることで、参照されなくなった古い世代の共通論理ユニットが削除されることになる。
(4)本実施形態の利点及び他の実施形態
以上のように、本実施形態によれば、各ホスト装置3の共通ファイルを共通論理ユニットに格納し、これを共有するので、ホスト装置が使用するデータの重複を排除することができるとともに、ホスト装置3が更新した固有のデータを個別論理ユニットに格納して保持することができる。
例えば、ホスト装置がクライアントコンピュータの場合、通常、OS及びアプリケーションプログラムに関するファイル/データの記憶領域に数GB程度必要とされる。従来は、OS及びアプリケーションプログラムの更新が重ねられていくと、典型的には、旧バージョンのファイルのバックアップが保存されていくため、このような記憶領域は増加していくことになるが、本実施形態では、このような記憶領域の重複を排除し、効果的にディスクスペースを活用することができるようになる。
上記実施形態は、本発明を説明するための例示であり、本発明を上記実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替えまたは並行動作するように構成しても良い。
また、本発明は、仮想化機構を実装したサーバコンピュータの仮想コンピュータシステムにも適用することができる。
仮想化機構が使用される場合、サーバコンピュータのローカルディスク(補助記憶装置)に仮想ディスクを作成し、当該作成した仮想ディスクにマスタである起動イメージをインストールすることで、仮想的なマスタ管理装置5をサーバコンピュータ上に起動する。この後、システム管理者は、仮想的なマスタ管理装置5を操作して、上述したようなマスタ作成処理を行う。
また、イメージ作成プログラム522は、仮想サーバ用OSをインストールする。イメージ作成プログラム522は、外部論理ユニット作成要求コマンドを仮想サーバに送信し、仮想ホスト装置の起動イメージを格納する外部論理ユニットをストレージ装置4に作成する。イメージ作成プログラム522は、ストレージ接続機能を用いて接続要求コマンドをストレージ装置4のホストインタフェース423に送信し、ターゲットである外部論理ユニットをマウントする。
続いて、イメージ作成プログラム522は、外部論理ユニットをフォーマットして、仮想サーバ用OSの起動イメージを格納するファイルを作成する。イメージ作成プログラム522は、このファイルに起動イメージをコピーする。
仮想サーバは、1つの外部論理ユニットに複数の仮想ディスクを作成し、仮想ディスクに起動イメージをインストールする。仮想ディスクの起動イメージは各ホスト装置3に対して共通であるため、データは個別論理ユニットに格納されず、共通論理ユニットに格納される。
仮想コンピュータシステムの場合、仮想サーバが外部論理ユニットをマウントし、仮想ホスト装置は仮想ディスクへのリード/ライト処理のみを行う。仮想ホスト装置のライト要求は、仮想サーバを介して、ストレージ装置4のディスクアクセスプログラム4221に通知され、個別ライト処理を行なうことができる。リード処理も同様である。
また、本発明は、本実施形態のシステムに従来のような重複排除を考慮しないシステムを混在させたコンピュータシステムを構成することもできる。
即ち、重複排除を行ないホスト装置は、共通論理ユニットを使用せず個別論理ユニットのみを使用するように構成される。これは、例えば、共通論理ユニットを使用するグループを「なし」として、ホスト装置の起動イメージが作成される。従って、外部論理ユニット管理テーブル700のグループ欄703に「なし」が設定される。ストレージ装置4は、「グループ:なし」の場合、共通論理ユニットに対する参照処理を行わないように制御する。
本発明は、ネットワークを介してホスト装置に接続されるストレージ装置に広く適用することができる。
本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。 本発明の一実施形態に係るホスト装置の内部構成を概略的に示す図である。 本発明の一実施形態に係るストレージ装置の内部構成を概略的に示す図である。 本発明の一実施形態に係るマスタ管理装置の内部構成を概略的に示す図である。 本発明の一実施形態に係るストレージ装置内の論理ユニットの構成を概念的に説明するための図である。 本発明の一実施形態に係るストレージ装置のターゲット管理テーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置の外部論理ユニット管理テーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置の共通論理ユニット管理テーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置の外部論理ユニットブロックマッピングテーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置のイメージ管理テーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置の内部論理ユニットブロック管理テーブルの一例を示す図である。 本発明の一実施形態に係るストレージ装置の共通論理ユニットデータ管理テーブルの一例を示す図である。 本発明の一実施形態に係るマスタ管理装置におけるマスタ作成処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における共通論理ユニット作成処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置におけるマスタライト処理を説明するためのフローチャートである。 本発明の一実施形態に係るマスタ管理装置における起動イメージ作成処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における個別論理ユニット作成処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における起動イメージ作成時の個別ライト処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における第1の個別ライト処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における第2の個別ライト処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置におけるリード処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置におけるデータ移動処理を説明するためのフローチャートである。 本発明の一実施形態に係るストレージ装置における第2の個別ライト処理を説明するためのフローチャートである。
符号の説明
1…コンピュータシステム
2…ネットワーク
3…ホスト装置
4…ストレージ装置
41…ドライブユニット
42…コントローラユニット
5…マスタ管理装置

Claims (11)

  1. ネットワークに接続可能に構成された複数のホスト装置と、
    前記ネットワークに接続可能に構成されたストレージ装置と、
    前記ネットワークに接続可能に構成されたマスタ管理装置と、
    を備えるコンピュータシステムであって、
    前記ストレージ装置は、
    前記複数のホスト装置にアクセスされる仮想的な外部論理ユニットと、
    前記外部論理ユニット上に物理的な記憶領域を割り当てる内部論理ユニットと、を備え、
    前記内部論理ユニットは、前記複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納するための共通論理ユニットと、前記複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納するための個別論理ユニットとからなり、
    前記ストレージ装置は、
    前記マスタ管理装置を介して設定された記憶領域の使用サイズと、OSのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記共通論理ユニットのサイズを算出し、
    前記マスタ管理装置を介して設定された記憶領域の使用サイズと、OSのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記個別論理ユニットのサイズを算出し、
    前記複数のホスト装置の少なくともいずれか1つからのライト要求に基づき、当該ライト要求に含まれるライトデータと前記共通論理ユニットに格納されたデータとが一致するか否かを前記管理ブロックの単位で比較し、
    該データが一致する場合に、当該データが格納されている前記共通論理ユニットのデータブロックを前記ライトデータの格納先として設定し、
    該データが一致していない場合に、前記ライトデータを前記個別論理ユニットに格納する、ことを特徴とするコンピュータシステム。
  2. 前記ストレージ装置は、
    前記ライトデータのデータブロックのうち、当該データブロックのすべてについて前記比較を実行する場合を有効とし、前記共通論理ユニットに対するライト処理の場合にのみ前記比較を実行する場合を無効とするアクセス制御情報を保持し、
    前記外部論理ユニットに対するライト要求を受けて、当該外部論理ユニットについてのアクセス制御情報が有効であるか無効であるかを判断し、当該外部論理ユニットについてのアクセス制御情報が有効であると判断する場合に、前記ライトデータのデータブロックと前記共通論理ユニットのデータブロックとを比較することを特徴とする請求項1に記載のコンピュータシステム。
  3. 前記ストレージ装置は、
    前記外部論理ユニットについてのアクセス制御情報が無効であると判断する場合に、前記外部論理ユニットに割り当てられた前記内部論理ユニットが共通論理ユニットであるか否かを判断し、前記内部論理ユニットが共通論理ユニットであると判断する場合に、前記比較を行うことを特徴とする請求項2に記載のコンピュータシステム。
  4. 前記ストレージ装置は、前記内部論理ユニットが共通論理ユニットでないと判断する場合に、前記ライト要求に従うライトデータを前記個別論理ユニットに格納することを特徴とする請求項3に記載のコンピュータシステム。
  5. 前記マスタ管理装置は、前記共通ファイルを更新する場合に、前記ストレージ装置に新たな共通論理ユニットを作成するように制御することを特徴とする請求項1に記載のコンピュータシステム。
  6. 前記ストレージ装置は、前記更新に応じて新たに作成される共通論理ユニットについての世代を管理することを特徴とする請求項5に記載のコンピュータシステム。
  7. 前記ストレージ装置は、
    前記複数のホスト装置の少なくともいずれか1つからのリード要求に基づき、当該リード要求が参照すべき共通論理ユニットに複数の世代があり、かつ、古い世代の前記共通論理ユニットが参照されている場合に、前記リード要求に従う古い世代の前記共通論理ユニットのリードデータと、最新世代の前記共通論理ユニットのデータとが一致するか否かを所定の管理ブロック単位で比較することを特徴とする請求項6に記載のコンピュータシステム。
  8. 前記ストレージ装置は、
    前記リードデータと前記共通論理ユニットのデータとの比較の結果、一致すると判断する場合に、最新世代の共通論理ユニットが参照されるように制御し、一致しないと判断する場合に、最新世代の共通論理ユニットに前記リードデータと同一のデータがない場合に、古い世代の共通論理ユニットのデータを最新世代の共通論理ユニットに移動することを特徴とする請求項7に記載のコンピュータシステム。
  9. 前記ストレージ装置は、
    前記共通論理ユニットの参照数を保持し、
    前記参照数に基づいて前記共通論理ユニットが参照されていないと判断される場合に、
    当該共通論理ユニットを削除することを特徴とする請求項1記載のコンピュータシステム。
  10. ネットワークを介して複数のホスト装置及びマスタ管理装置に接続されたストレージ装置の制御方法であって、前記制御方法は、
    前記ストレージ装置が、複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納する内部論理ユニットを共通論理ユニットとし、前記マスタ管理装置を介して設定された記憶領域の使用サイズと、OSのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記共通論理ユニットのサイズを算出するステップと、
    前記ストレージ装置が、前記複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納する内部論理ユニットを個別論理ユニットとし、前記マスタ管理装置を介して設定された記憶領域の使用サイズと、OSのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記個別論理ユニットのサイズを算出して作成するステップと、
    前記ストレージ装置が、前記共通論理ユニット及び前記個別論理ユニット上の物理的な記憶領域を前記複数のホスト装置にアクセスされる仮想的な外部論理ユニットに割り当てるステップと、
    前記ストレージ装置が、前記複数のホスト装置の少なくともいずれか1つからのライト要求を受信するステップと、
    前記ストレージ装置が、前記ライト要求に含まれるライトデータと前記共通論理ユニットに格納されたデータとが一致するか否かを前記管理ブロック単位で比較するステップと、
    前記ストレージ装置が、該データが一致する場合に、当該データが格納されている前記共通論理ユニットのデータブロックを前記ライトデータの格納先として設定するステップと、
    前記ストレージ装置が、該データが一致していない場合に、前記ライトデータを前記個別論理ユニットに格納するステップと、
    を含むことを特徴とする制御方法。
  11. 前記制御方法は、
    前記ネットワークに接続されたマスタ管理装置が、共通論理ユニット作成要求コマンドをストレージに送信し、
    前記ストレージ装置が、前記共通論理ユニット作成要求に基づいて、共通論理ユニットを作成し、当該作成した共通論理ユニットを外部論理ユニットに割り当てることを特徴とする請求項10に記載の制御方法。
JP2008078057A 2008-03-25 2008-03-25 ストレージ装置及びこれの制御方法 Expired - Fee Related JP4990828B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008078057A JP4990828B2 (ja) 2008-03-25 2008-03-25 ストレージ装置及びこれの制御方法
US12/155,610 US20090248979A1 (en) 2008-03-25 2008-06-06 Storage apparatus and control method for same
EP08253961A EP2105830A3 (en) 2008-03-25 2008-12-10 Storage apparatus and control method for same
CN2009100054369A CN101546252B (zh) 2008-03-25 2009-01-20 存储装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008078057A JP4990828B2 (ja) 2008-03-25 2008-03-25 ストレージ装置及びこれの制御方法

Publications (2)

Publication Number Publication Date
JP2009230661A JP2009230661A (ja) 2009-10-08
JP4990828B2 true JP4990828B2 (ja) 2012-08-01

Family

ID=40800731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008078057A Expired - Fee Related JP4990828B2 (ja) 2008-03-25 2008-03-25 ストレージ装置及びこれの制御方法

Country Status (4)

Country Link
US (1) US20090248979A1 (ja)
EP (1) EP2105830A3 (ja)
JP (1) JP4990828B2 (ja)
CN (1) CN101546252B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914340B2 (en) * 2008-02-06 2014-12-16 International Business Machines Corporation Apparatus, system, and method for relocating storage pool hot spots
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
US9195603B2 (en) * 2010-06-08 2015-11-24 Hewlett-Packard Development Company, L.P. Storage caching
US8392376B2 (en) * 2010-09-03 2013-03-05 Symantec Corporation System and method for scalable reference management in a deduplication based storage system
JP5485866B2 (ja) 2010-12-28 2014-05-07 株式会社日立ソリューションズ 情報管理方法、及び情報提供用計算機
US8346810B2 (en) * 2011-05-13 2013-01-01 Simplivity Corporation Reference count propagation
CN104679567A (zh) * 2015-03-17 2015-06-03 浪潮集团有限公司 一种持续保存fru信息的设计方法
US10120818B2 (en) 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command
US9710417B2 (en) * 2015-10-01 2017-07-18 International Business Machines Corporation Peripheral device access using synchronous input/output
US10063376B2 (en) 2015-10-01 2018-08-28 International Business Machines Corporation Access control and security for synchronous input/output links
US10628069B2 (en) 2016-06-03 2020-04-21 Hitachi Ltd. Management apparatus for managing and reduplication of volumes of a storage system with respect to OS type
CN107943743A (zh) * 2017-11-17 2018-04-20 江苏微锐超算科技有限公司 计算设备的信息存储、读取方法及共享虚拟介质承载芯片
GB2570143B (en) * 2018-01-12 2020-04-08 Garrison Tech Ltd Secure sharing of storage resources
JP6722216B2 (ja) * 2018-03-09 2020-07-15 株式会社日立製作所 データ量削減機能を有する計算機システム、及び、記憶制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US6366988B1 (en) * 1997-07-18 2002-04-02 Storactive, Inc. Systems and methods for electronic data storage management
JP3837953B2 (ja) * 1999-03-12 2006-10-25 株式会社日立製作所 計算機システム
US6618736B1 (en) * 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
US6968350B2 (en) * 2001-04-07 2005-11-22 Microsoft Corporation Method for establishing a virtual hard drive for an emulated computer system running on a host computer system
JP2003104138A (ja) * 2001-10-01 2003-04-09 Honda Motor Co Ltd データ書き換えのための車両制御装置の監視システム
JP4013632B2 (ja) * 2002-05-02 2007-11-28 日本電信電話株式会社 Xmlフォーマットデータ重複排除方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体
US20040015522A1 (en) * 2002-06-13 2004-01-22 International Business Machines Corporation Apparatus, system and method of providing a stackable private write file system
US20050152192A1 (en) * 2003-12-22 2005-07-14 Manfred Boldy Reducing occupancy of digital storage devices
JP2005301708A (ja) * 2004-04-13 2005-10-27 Hitachi Ltd 記憶装置システムにおけるソフトウェア管理方法及び記憶装置システム
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US8434117B2 (en) * 2005-02-14 2013-04-30 Microsoft Corporation Tunerless media presentation unit and methods of use
US8370819B2 (en) * 2005-03-25 2013-02-05 Microsoft Corporation Mechanism to store information describing a virtual machine in a virtual disk image
US20070208918A1 (en) * 2006-03-01 2007-09-06 Kenneth Harbin Method and apparatus for providing virtual machine backup
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
JP2008078057A (ja) 2006-09-25 2008-04-03 Satoshi Hasegawa シールド線

Also Published As

Publication number Publication date
EP2105830A2 (en) 2009-09-30
JP2009230661A (ja) 2009-10-08
EP2105830A3 (en) 2010-11-03
CN101546252B (zh) 2012-05-23
US20090248979A1 (en) 2009-10-01
CN101546252A (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
JP4990828B2 (ja) ストレージ装置及びこれの制御方法
US8347060B2 (en) Storage system, storage extent release method and storage apparatus
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US20100100678A1 (en) Volume management system
JP5309259B2 (ja) ストレージ装置及びその制御方法
JP2007141216A (ja) 複数のプロトコルアクセス可能なosdストレージサブシステムのためのシステム、方法および装置
JP2009043030A (ja) ストレージシステム
JP4884041B2 (ja) 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
EP2411918A2 (en) Virtualized data storage system architecture
US20090193207A1 (en) Computer system, remote copy method and first computer
JP2002082775A (ja) 計算機システム
JP2006331158A (ja) ストレージシステム
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
US11644978B2 (en) Read and write load sharing in a storage array via partitioned ownership of data blocks
US11409454B1 (en) Container ownership protocol for independent node flushing
US20110191520A1 (en) Storage subsystem and its data processing method
US9766824B2 (en) Storage device and computer system
US8799573B2 (en) Storage system and its logical unit management method
JP6171084B2 (ja) ストレージシステム
US20070113041A1 (en) Data processing system, storage apparatus and management console
JP2009271666A (ja) ストレージシステム
US10089125B2 (en) Virtual machines accessing file data, object data, and block data
JP5597266B2 (ja) ストレージシステム
US11782842B1 (en) Techniques for reclaiming dirty cache pages

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees