JP2007047863A - 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法 - Google Patents

記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
JP2007047863A
JP2007047863A JP2005228483A JP2005228483A JP2007047863A JP 2007047863 A JP2007047863 A JP 2007047863A JP 2005228483 A JP2005228483 A JP 2005228483A JP 2005228483 A JP2005228483 A JP 2005228483A JP 2007047863 A JP2007047863 A JP 2007047863A
Authority
JP
Japan
Prior art keywords
control
storage
lock
host
group
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
JP2005228483A
Other languages
English (en)
Inventor
Akihiro Mori
昭洋 森
Mamoru Sato
守 佐藤
Kiyohisa Miyamoto
清久 宮本
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 JP2005228483A priority Critical patent/JP2007047863A/ja
Priority to US11/246,228 priority patent/US7401196B2/en
Publication of JP2007047863A publication Critical patent/JP2007047863A/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
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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]
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 制御ブロックを記憶する記憶資源を無駄に消費してしまうことのないようにする。
【解決手段】 ストレージシステム200のロック構築部811が、ストレージシステム200に実際に接続されるホスト101の数であるホスト数と、複数の記憶装置グループ301のうちアクセス排他制御を行う必要のある記憶装置グループの数であるグループ数とを、ホスト101又はSVP31から受ける。また、ロック構築部811は、受けたホスト数やグループ数に基づいて、どの記憶装置グループに対応する制御ブロックを用意するかや、どの制御ブロックにどれだけの数の制御サブブロックを用意するかを、制御する。
ストレージシステム。
【選択図】 図3

Description

本発明は、記憶制御技術に関し、特に、アクセス排他の制御に関する。
例えば、データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成されたストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、多数の記憶装置をアレイ状に配設して構成されたRAID(Redundant Array of Independent Inexpensive Disks)のようなディスクアレイシステムである。
このようなストレージシステムには、例えば、特開平5−128002号公報に開示されている磁気ディスクサブシステムがある。このサブシステムは、キャッシュメモリ28と、制御テーブル30と、複数の磁気ディスク装置24〜27とを有する。キャッシュメモリ28は、ホストコンピュータ22、23が処理する業務毎に複数の領域28A、28Bに分割される。制御テーブル30が、複数の領域28A、28Bにそれぞれ対応した複数の制御テーブル30A、30Bに分割される。ホストコンピュータ22、23は、各領域28A、28B毎に、磁気ディスク装置24〜27を指定する。
特開平5−128002号公報(例えば要約)
例えば、大規模なコンピュータシステムでは、複数のホストコンピュータ(以下、単に「ホスト」と呼称)から成るホストコンピュータ群と、複数のストレージシステムから成るストレージシステム群とが備えられる。各ストレージシステムは、複数の物理的な記憶装置(例えばハードディスクドライブ)の記憶資源により提供される複数の論理的な記憶装置(以下、単に「LDEV」と呼称)を備える。各LDEVの記憶領域は、多数の記憶領域単位(以下、「レコード」と呼ぶ)から構成される。
このコンピュータシステムでは、複数のホストが同一のLDEVにアクセスすることがあり得る。この場合、例えば、或るホストが、或るレコードからデータを読み出す前に、そのデータが、別のホストによって更新されてしまうことが生じ得る。これでは、各レコードのコヒーレンシーを保つことができない。
各レコードのコヒーレンシーを保つための方法として、ストレージシステムの記憶資源(例えばメモリ)上に、各レコードに対するアクセス排他を制御するための制御サブブロックを複数個有する制御ブロックを設け、その制御ブロックを利用して、各レコードのアクセス排他を制御する方法が考えられる。具体的には、例えば、或るレコードに対するアクセス要求を或るホストから受けた場合、そのレコードに割り付けた制御ブロックを使用状態にし、その後、そのレコードに対するアクセス要求を別のホストから受けても、その制御ブロックが未使用状態になるまで、別のホストのアクセスを許可しないようにする方法が考えられる。
しかし、通常、レコードの数は膨大である。また、例えば、ストレージシステム内には、どのホストにもアクセスされないレコードもあるだろうし、必ずしもアクセス排他制御の必要性が生じないレコードもあるであろう。故に、アクセス排他制御の方法が何ら工夫されないと、制御ブロックを記憶する記憶資源を無駄に消費してしまうことになる。
従って、本発明の目的は、制御ブロックを記憶する記憶資源を無駄に消費してしまうことのないようにすることにある。
本発明の更なる目的は、後の記載から明らかになるであろう。
本発明に従うストレージシステムは、複数の記憶領域単位毎により構成された記憶領域を有する複数の記憶装置グループ(例えば後述のCU)と、前記複数のホストコンピュータからの各記憶領域単位(例えば後述のレコード)に対するアクセスの排他制御のために使用される制御ブロック群(例えば後述の論理ロック構造体群)と、前記制御ブロックを記憶することができる記憶資源(例えば後述の共有メモリ)と、前記制御ブロック群を用いて前記排他制御を行うコントローラとを備える。前記複数の記憶装置グループの各々は、一以上の記憶装置(例えば後述のLDEV)により構成されている。前記制御ブロック群は、一以上の制御ブロック(例えば後述の論理ロック構造体)で構成される。各制御ブロックは、前記複数の記憶装置グループのうちの一つに対応し、一つの記憶領域単位に対するアクセス排他制御を行うための制御サブブロック(例えば後述のロックテーブル)を複数個有する。前記コントローラは、同一の記憶領域単位に実際にアクセスし得るホストコンピュータの数であるホスト数、及び/又は、前記複数の記憶装置グループのうち前記排他制御を行う必要のある記憶装置グループの数であるグループ数を把握し、前記把握されたホスト数及び/又はグループ数に基づいて、前記制御ブロック群を構築する。具体的には、例えば、前記コントローラは、前記把握されたホスト数及び/又はグループ数に基づいて、どの記憶装置グループに対応する制御ブロックを用意するかや、どの制御ブロックにどれだけの数の制御サブブロックを用意するかを制御することができる。
上記の把握は、例えば、把握手段により行うことができる。また、構築は、構築手段により行うことができる。前記コントローラは、把握手段と構築手段とにより構成することができる。上記の把握及び構築は、例えば、所定のコンピュータプログラムを或る記憶領域から読込んで実行したプロセッサにより行われても良い(以下の各手段が行う動作についても同様)。
本発明の第一の態様では、前記コントローラは、前記複数のホストコンピュータのうちの少なくとも一つのホストコンピュータ、又は、前記ストレージシステムに接続された別のコンピュータマシンから前記ホスト数及び/又はグループ数の入力を受け付ける制御インターフェースを有することができる。前期コントローラは、該制御インターフェースにより前記ホスト数及び/又は前記グループ数の入力を受け付けることにより、前記ホスト数及び/又はグループ数を把握することができる。
本発明の第二の態様では、前記第一の態様において、前記制御サブブロックのサイズは、その制御サブロックを用いてアクセスの排他制御がされる前記ホスト数が多いほど、大きくなる。前記コントローラは、前記把握されたホスト数と、前記記憶資源における、前記制御ブロック群を記憶するための領域のサイズとに基づいて、該領域に記憶することができる制御サブブロックの数を計算することができる(例えば計算手段)。また、コントローラは、算出された数を、前記ホストコンピュータ及び/又は前記別のコンピュータマシンに通知することができる(例えば通知手段)。
本発明の第三の態様では、前記第一の態様において、前記制御サブブロックのサイズは、その制御サブロックを用いてアクセスの排他制御がされる前記ホスト数が多いほど、大きくなる。前記コントローラは、前記把握されたホスト数と、前記記憶資源における、前記制御ブロック群を記憶するための領域のサイズとに基づいて、該領域に記憶することができる制御サブブロックの第一の数を計算することができる(例えば第一の計算手段)。また、前記コントローラは、前記算出された第一の数と、前記把握されたグループ数とに基づいて、前記排他制御を行う必要のある各記憶装置グループに対応した制御ブロックを構成する制御サブブロックの第二の数を計算することができる(例えば第二の計算手段)。また、前記コントローラは、前記算出された第二の数を、前記ホストコンピュータ及び/又は前記別のコンピュータマシンに通知することができる(例えば通知手段)。
本発明の第四の態様では、前記コントローラは、前記排他制御を行う必要のある記憶装置グループがどれであるかを把握することができる(例えば別の把握手段)。また、前記コントローラは、前記制御ブロック群の構築において、前記把握された各記憶装置グループに対応した制御ブロックを構成する制御サブブロックの数を均等にすることができる。
本発明の第五の態様では、前記コントローラは、前記排他制御を行う必要のある記憶装置グループがどれで、どの記憶装置グループにどれだけの数の制御サブブロックを割り当てるべきかを把握することができる(例えばまた別の把握手段)。前記コントローラは、前記制御ブロック群の構築において、前記把握された各記憶装置グループに対応した制御ブロックを、前記把握された数の制御サブブロックで構成することができる。
本発明の第六の態様では、前記第一の態様において、前記コントローラは、或る記憶装置グループにおける或る記憶領域単位に対するアクセス要求を受けた場合、その記憶装置グループに対応する制御ブロックから、未使用状態の制御サブブロックを探して、探し出された制御サブブロックを使用状態にし、当該アクセス要求の処理が済んだ場合に、該制御サブブロックを未使用状態に戻すことができる(例えばアクセス手段)。前記コントローラは、各制御ブロックにおける未使用状態の制御サブブロックの数であるブロック使用状況を把握し(例えば使用状況把握手段)、把握されたブロック使用状況を前記ホストコンピュータ又は前記別のコンピュータマシンに通知することができる(例えば通知手段)。
ストレージシステムは、制御ブロック群の構成が終了した場合、構築された制御ブロック群の構成と、所定の終了報告とを、前記ホストコンピュータに通知することができる。前記ホストコンピュータは、制御ブロック群の構成と終了報告とを受けた場合、起動処理を実行し、稼動することができる。
本発明によれば、制御ブロックを記憶する記憶資源を無駄に消費してしまうことのないようにすることができる。
図1は、本発明の一実施形態に係るストレージシステムを備えたコンピュータシステムのハードウェア構成の概略を示す。なお、以下の説明では、同種の構成要素について、区別して説明する場合には、親番号(例えば101)と子符号(例えば、A、B、C又はD)との組み合わせで区別し、格別区別しない場合には、親番号のみで表すことがある。
本実施形態に係るコンピュータシステムは、例えば、基幹業務用のトランザクションシステムとすることができる。例えば、通信ネットワーク100に、複数(例えば4台)のホストコンピュータ(以下、単に「ホスト」と言う)101A〜101Dと、一以上(例えば一台)のストレージシステム200とが接続されている。
複数のホスト101A〜101Dのうちのいずれも、メインフレーム系のコンピュータであっても良いし、オープンシステム系のコンピュータであっても良い。各ホスト101は、例えば、パーソナルコンピュータ、サーバマシン或いはワークステーションとすることができる。各ホスト101は、例えば101Aを代表的に示す通り、データやコンピュータプログラム等の電子的な情報を記憶することができる記憶資源34(例えばメモリ及び主記憶装置)や、ホストの動作を制御するCPU32や、通信ネットワーク100に接続される通信ポート21等のハードウェア資源を備えることができる。
ストレージシステム200は、例えば、複数のCHA(チャネルアダプタ)7と、複数のDKA(ディスクアダプタ)35と、キャッシュメモリ41と、共有メモリ39と、接続部33と、複数の物理的な記憶装置(例えばハードディスクドライブ)45と、SVP(サービスプロセッサ)31とを備える。
CHA7は、記憶装置45に対するデータ入出力(書込み及び読み出しといったアクセス)のための処理を行うインターフェース制御基板である。CHA7は、例えば、通信ネットワーク100に接続される通信ポート17や、CPU13や、メモリ15や、接続部33に接続される通信ポート19等のハードウェア資源を備える。
DKA35は、記憶装置45との間のデータ授受を行うものである。DKA35は、CPUやメモリ等を備えた一種のインターフェース制御基板として構成されている。DKA35のハードウェア構成は、CHA7と同じにすることができる。
キャッシュメモリ41は、例えば揮発性又は不揮発性のメモリであり、ホスト101A〜101Dから受信されたデータや、記憶装置45から読出されたデータを一時的に記憶することができる。
共有メモリ39は、例えば不揮発性のメモリであり、ホスト101との間でやり取りされるデータに関する制御情報(例えば、キャッシュメモリ41上に確保されたどのキャッシュ領域にどのデータが格納されるべきかを示す情報)等が格納される。なお、図示の例では、キャッシュメモリ41と共有メモリ39とは、物理的に分離しているが、一つのメモリであっても良い。その場合、そのメモリ上のメモリ空間が、論理的に、キャッシュメモリ用の空間と共有メモリ用の空間とに分けられても良い。
接続部33は、CHA7、DKA35、キャッシュメモリ41及び共有メモリ120を相互に接続させる第一のサブ接続部(例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ)と、SVP31をCHA7、DKA35、キャッシュメモリ41及び共有メモリ120と通信可能に接続するための第二のサブ接続部(例えばLAN(Local Area Network))とを備える。
SVP31は、CHA7、DKA35、キャッシュメモリ41又は共有メモリ39にアクセスすることができる装置である。具体的には、例えば、SVP31は、保守用の端末であり、管理者が操作する入力装置(例えばキーボードやマウス)や、管理者による操作に従う処理を実行する制御装置(例えばCPU等が搭載されたマザーボード)や、共有メモリ39等に設定されている情報が表示される表示装置(例えばディスプレイ画面)を備えることができる。SVP31は、ストレージシステム200に搭載されていても良いし、LAN等の通信ネットワークを介して遠隔に備えられてもよい。また、SVP31の機能が、少なくとも一つのホスト101に搭載され、そのホスト101が、SVP31として、ストレージシステム200をコントロールしても良い。
このようなコンピュータシステムでは、以下のような流れで、記憶装置45に対するデータの入出力を行うことができる。
例えば、データの読出し要求がホスト101Aから発行された場合、CHA7が、その読出し要求を受信し、受信した読出し要求をDKA35に送信することができる。DKA35は、読出し要求を受信し、その要求に従って、記憶装置35からデータを読み出し、読み出したデータをキャッシュメモリ41に書き込むことができる。CHA7は、キャッシュメモリ41に書き込まれたデータを読み出し、読み出したデータを、ホスト101Aに送信することができる。
また、例えば、データの書込み要求がホスト101Aから発行された場合、CHA7が、その書込み要求及びデータを受信し、受信した書込み要求をDKA35に送信し、且つ、受信したデータをキャッシュメモリ41に書き込むことができる。DKA35は、書込み要求を受信し、その要求に従って、キャッシュメモリ41からデータを読み出し、読み出したデータを記憶装置45に書き込むことができる。
以上が、本実施形態に係るコンピュータシステムについての概要である。以下、図2以降を参照して、本実施形態の主要な部分について説明する。
図2は、本実施形態に係るコンピュータシステムの機能ブロックを示し、特に、ストレージシステム200の起動中における或る時点でのコンピュータシステムの様子を示す。
各ホスト101には、ロック管理部801が備えられ、ストレージシステム200には、ロック構築部811及びアクセス制御部812が備えられる。ロック管理部801及びロック構築部811は、ホスト101とストレージシステム200の間で、後述する論理ロック構造体に関する情報を送受する機能を持った制御プログラムとすることができる。アクセス制御部812は、論理ロック構造体におけるロックテーブルに基づいてアクセス制御を行うためのコンピュータプログラムである。ロック管理部801は、例えば、ホスト101の記憶資源34からCPU32に読込まれて実行される。ロック構築部811及びアクセス制御部812は、例えば、CHA7において、メモリ15からCPU13に読込まれて実行される。
ストレージシステム200には、複数(例えば最大256個)のLDEV311を含んだ一以上の論理コントロールユニット(以下、単に「CU」と称呼)301が備えられる。LDEV311は、物理的な記憶装置45上に設けられる論理的な記憶装置である。各CU301は、各ホスト101に、一つのLDEVグループとして認識され得る。この実施形態では、例えば、CU301Aは、多数のオンライン用のLDEV311Aを有し、CU301Bは、少数のオンライン用のLDEV311Bを有し、CU301Cは、CU301Aの各LDEV311Aのコピー先となる多数のオフライン用のLDEV311Cを有する。CU301A〜301Cのうち、CU301A及び301Bは、二つ以上のホスト101A〜101Dに認識されるが、CU301Cは、どのホスト101A〜101Dにも認識されないものとする(故に、LDEV311A及び311Bは実線で示し、LDEV311Cは点線で示す)。
ロック構築部811は、例えば、ストレージシステム200の起動中(例えば、CHA7の起動中)における或る時点において、論理ロック構造体群400を構築することができる。具体的には、ロック構築部811は、所定の初期設定(例えば、デフォルトの設定)に従がって、複数のCU301A〜301Cにそれぞれ対応した複数の論理ロック構造体401A〜401Cを、各CHA7がアクセス可能な記憶資源(例えば共有メモリ39)上に構築することができる。論理ロック構造体401とは、その構造体401に対応するCU内のレコードのアクセス排他を制御するためのものである。この時点に構築される各論理ロック構造体401は、予め決められた個数(例えば16000個)のロックテーブル600で構成される。ロックテーブル600は、そのロックテーブル600を有する論理ロック構造体401に対応するCU301内のレコードのアクセス排他(以下、これを「論理ロック」と言う場合もある)を制御するためのものである。ロックテーブル600は、所定のレコードに予め割り付けられているわけではなく、動的に割り付け及び解放される。具体的には、例えば、ロックテーブル600は、ストレージシステム200の稼動中において、ホスト101からのロック要求に応答して割り付けられ、アクセスが済んだ場合(データの書込み又は読出しが完了した場合)に解放される。アクセス制御部812は、各ホスト101からの或るレコードに対する論理ロックを、そのレコードを有するCU301に対応した論理ロック構造体401を使用して制御することができる(論理ロック制御の具体的な流れの一例は、後に図5A及び図5Bを参照して詳細に説明する)。
さて、この実施形態では、ストレージシステム200の起動中の或る時点において、ストレージシステム200に接続されるホスト101の数や、CU301が使用されるか否かに関わらず、各CU301毎に、一律に、所定個数のロックテーブル600を有した論理ロック構造体401が構築される。このまま、論理ロック構造体群400の後述するような再構築処理が行われることなく、各ホスト101及びストレージシステム200が稼動し、所定の業務が行われるようにすることもできる。
しかし、そうすると、以下の問題点が生じると考えられる。
ストレージシステム200に、二台以上のホスト101に認識されるLDEV(例えばオンライン用のLDEV)311A、311Bと、二台以上のホスト101には認識されないLDEV(例えばオフライン用のLDEV)311Cが混在する場合がある。後者のLDEV311C内のデータは、二台以上のホスト101から更新されるようなことが無い。それにも関わらず、全てのCU301に論理ロック構造体401を準備すると、使われない論理ロック構造体401によって、ストレージシステム200内の記憶資源が無駄に消費されてしまう。
また、例えば、或るトランザクションシステムにおいて、接続可能なホストの最大数が定められているとする。この場合、その最大数のホストからのアクセスを排他制御することができるように各ロックテーブル600が構築されることとなる。しかし、実際に接続されているホスト101の数が、上記最大数よりも少ない場合には、無駄にサイズの大きいロックテーブル600が構築されてしまうこととなる。これは、例えば、ロックテーブル600の個数の増大が要求される場合には、より顕著な問題点となる。
以上のような理由から、ホスト101やストレージシステム200が稼動する前に、以下に説明するような、論理ロック構造体群の再構築処理が行うことが好ましい。
図3は、論理ロック構造体群の再構築処理の説明図である。
或るホスト101Aのロック制御部801が、後述するホスト設定コマンド及びホスト設定パラメータを、ロック構築部811に送信する。
ロック構築部811は、ホスト設定コマンド及びホスト設定パラメータを受信し、そのホスト設定コマンド及びホスト設定パラメータに従がって、論理ロック構造体群を再構築する。その結果、例えば、図示の論理ロック構造体501A、501Bを有する論理ロック構造体群500となる。具体的には、例えば、CU301C内のLDEV311Cは、二台以上のホスト101からアクセスされることがない、換言すれば、アクセス排他制御を行う必要が無いので、CU301Cに対応する論理ロック構造体は削除される。また、CU301Bに存在するLDEV311Bの数(別の言い方をすれば、レコードの数)よりも、CU301Aに存在するLDEV311Aの数の方が多いので、CU301Bに対応する論理ロック構造体501Bを構成するロックテーブル700の数(例えば8000個)よりも、CU301Aに対応する論理ロックテーブル501Aを構成するロックテーブル700の数(例えば64000個)の方が多くされる。また、各ロックテーブル700のサイズは、再構築処理の前に構築されたロックテーブル600よりも小さくされる。例えば、図4Aに例示するように、再構築処理前のロックテーブル600は、ホストの最大数が32であるとして構築されたものであるが、再構築処理後のロックテーブル700は、図4Bに例示するように、実際に接続されているホストの台数4に基づいて構築されたものである。故に、例えば、再構築処理前の論理ロック構造体401のサイズと、再構築処理後の論理ロック構造体501のサイズが同じ場合には、図4A及び図4Bに示すように、再構築処理後の論理ロック構造体501の方が、より多くのロックテーブル700を備えることができる。
ロック構築部811は、再構築後の論理ロック構造体群500に基づいて、各CU301毎に用意される割当ロックテーブル数651及び未使用ロックテーブル数653を更新することができる(図3では、CU301Bについては、ブロックの中に参照番号を付してある)。ただし、CU301Cには、それに対応する論理ロック構造体が用意されないので、割当ロックテーブル数651、未使用ロックテーブル数653及び後述の最小未使用数655は用意されない。割当ロックテーブル数651、未使用ロックテーブル数653及び最小未使用数655は、ストレージシステム200の記憶資源(例えば共有メモリ39)に記憶されるデータである。割当ロックテーブル数651は、対応するCU301に対応した論理ロック構造体501を構成するロックテーブルの数を表す。未使用ロックテーブル数653は、その論理ロック構造体501のうち、未使用状態のロックテーブルの数を表す(従って、どのロックテーブル700も使用されていない場合(例えば初期の場合)には、割当ロックテーブル数651と同じ数となる)。最小未使用数655は、ストレージシステム200の稼動中において、未使用ロックテーブル数653の最小値を表す情報である。
ホスト101Aのロック制御部801は、ホスト設定コマンド及びホスト設定パラメータに従がって論理ロック構造体群が再構築されたと認識できた場合、再構築後の論理ロック構造体群500に関する構成(例えば、どのCU301に対応する論理ロック構造体には幾つのロックテーブルが存在するか等)を、IPL(イニシャル・プログラム・ローダ)ファイル650に書き込むことができる。IPLファイル650は、各ホスト101の起動の際に、各ホスト101のCPU32に読込まれるファイルである。各ホスト101は、このIPLファイル650に書かれている情報に基づいて起動し、それにより、論理ロック構造体群500に関する構成を認識することができる。IPLファイル650は、例えば、種々の方法で各ホスト101に提供することができる。この実施形態では、例えば、ホスト101Aのロック制御部801が、図示しないシステム用のLDEVに、更新後のIPLファイル650を書き、他のホスト101B〜101Dが、そのシステム用のLDEVからIPLファイル650を読込むことができる。
ホスト101及びストレージシステム200の起動が終了し、稼動するようになった場合、以下のようなアクセス排他制御を行うことができる。以下、具体的に説明する。
図5Aは、ロックテーブル700の構成例を示す。
ロックテーブル700は、例えば、全体ステータスと、ロックテーブルIDと、ロックサブステータス703と、キュー702とを有する。全体ステータスは、このロックテーブル700が使用状態か未使用状態かを表すステータスである。ロックテーブルIDは、全体ステータスが使用状態となった場合に付与されるIDであり、例えば、このロックテーブル700がどのレコードに割り付けられたのかを表す。ロックサブステータス703は、一つのホスト701に対応しており、そのホスト701に関するステータス(例えば、未使用、使用中、或いは解放待ち)を表す。接続されるホストの数が少ないほど、ロックサブステータス703の数が少なくなり、故に、ロックテーブル700のサイズが小さくなる。キュー702は、ホスト101からのロック要求を蓄積するためのものである。
図5Bは、アクセス排他制御の流れの一例を示す。
例えば、図5B−1に示すように、ホスト101が、CU301A内の或るLDEV311Aにおける或るレコード312に対するロック要求を、ストレージシステム200に発行したとする。ここでは、レコード312には、未だどのロックテーブル700も割り付けられていない。
この場合、アクセス制御部812(例えば図3参照)は、全体ステータスが未使用状態を表すロックテーブル700Eを、CU301Aに対応する論理ロック構造体701Aから探し、探し出されたロックテーブル700Eに、レコード312に割り付けられたことを意味するロックテーブルIDを付与し、且つ、そのテーブル700Eの全体ステータスを、図5B−2に例示するように、使用状態に変える。これにより、未使用状態のロックテーブル700Eは、レコード312に割り付けられた使用状態のロックテーブル700Uとなる。
この状態になったら、ホスト101Aは、レコード312にアクセスすることができる。この状態において、例えば、アクセス制御部812は、図5B−3に示すように、他のホスト101Bから、同一のレコード312に対するロック要求を受けても、ホスト101Bに対してアクセスを許可せず、解放待ちとする。
その後、図5B−4に示すように、アクセス制御部812は、ホスト101Aのレコード312に対するアクセスが済んだ場合には(例えば、ホスト101Aからアンロック要求を受信した場合には)、ホスト101に対してはロックテーブル700Uを解放し、解放待ちとなっていたホスト101Bに対して論理ロック完了を通知し、アクセスを受け付ける。
その後、図5B−5に示すように、アクセス制御部812は、ホスト101Bのレコード312に対するアクセスも済み、且つ、他のどのホスト101のサブステータス703も未使用になっていれば、当該ロックテーブル700Uを解放することにより、未使用状態のロックテーブル700Eに変える。
以上のような流れで、アクセス排他制御が行われる。なお、このアクセス排他制御において、論理ロック構造体701に未使用状態のロックテーブル700Eが全く存在しない場合には、その論理ロック構造体701に対応するCU301内のレコードに対する論理ロックは、未使用状態のロックテーブル700Eができるまで待ちとなる。そのため、そのレコードに対するアクセスも待ちとなる。
従って、例えば、CU301Aに対するアクセス頻度の方が、CU301Bに対するアクセス頻度よりも多い場合には、図3に示したように、論理ロック構造体701Aを構成するロックテーブル700の数を、論理ロック構造体701Bを構成するロックテーブル700の数よりも多くした方が良い。図2に示したように、初期設定に従って論理ロック構造体群400が構築された場合、図3に示したように、論理ロック構造体群を再構築した方が良い。
以下、図6を参照して、論理ロック構造体群の再構築処理の流れの一例を説明する。なお、再構築処理は、SVP31にもロック制御部801を搭載し、そのロック制御部801とストレージシステム200内のロック構築部811との間で行われても良い。しかし、ここでは、ホスト101内のロック制御部801とストレージシステム200内のロック構築部811との間で再構築処理が行われるものとする。
ホスト101とストレージシステム200の間で、論理ロック構造体群に係る情報を送受するのに用いるコマンドとして、例えば、矢印820に示すホスト設定コマンドと、矢印830に示すホスト読み出しコマンドとの2種がある。この実施形態では、ロック制御部801が、ホスト設定コマンド820、ホスト読み出しコマンド830の順で、ストレージシステム200に対してコマンドを発行することにより、再構築処理が行われる。
具体的に言うと、例えば、ストレージシステム200の起動中に、ロック構築部811が、所定の初期設定に従がって、論理ロック構造体群400を構築する(ステップS100)。
ロック制御部801は、任意のタイミングで(例えば、ホスト101のユーザから所定の要求を受けたタイミングで)、図7Aに例示されるような構成のホスト設定コマンド820を、ストレージシステム200に送信する。ホスト設定コマンド820には、例えば、オペレーション(OP)部フィールド1822、CU数フィールド1823及びホスト数フィールド1824がある。OP部フィールド1822には、ストレージシステム200に何をしてもらいたいかを表す情報が記述される。当該情報としては、例えば、初期設定に従って構築された論理ロック構造体群400を要求することを意味する初期割り当て準備、再構築処理の際には全ての論理ロック構造体のロックテーブル数を所定値にすることを意味する固定割り当て準備、再構築処理の際には各論理ロック構造体のロックテーブル数をユーザ任意の値にすることを意味する可変割り当て準備、割当てを実行することの要求を意味する割り当て実行、及び、各論理ロック構造体の最小未使用数を要求する最小値準備がある。CU数フィールド1823には、ストレージシステム200内に配設されるCU301の数を表す情報が記述される。ホスト数フィールド1824には、ストレージシステム200に接続されるホスト101の数を表す情報が記述される。
ロック構築部811は、ホスト設定コマンド820を受信したならば、ホスト数フィールド1824に記述されているホスト数に基づいて、ストレージシステム200の記憶資源(例えば共有メモリ39)に確保することができるロックテーブル総数n1(論理ロック構造体群に含まれるロックテーブルの数)を計算したり、CU数フィールド1823に記述されているCU数に基づいて、一つの論理ロック構造体のロックテーブル数n2を計算したりすることができる(S150)。ロック構築部811は、算出されたn1、n2と、コマンド受領報告821とを、ホスト101に返送することができる(n1、n2の算出方法の例については後述する)。
ロック制御部801は、n1、n2及びコマンド受領報告821を受信したならば、n1、n2をホスト101のディスプレイ画面に表示することができる。ホスト101のオペレータは、表示されたn1、n2に基づいて、図7Bに例示の構成を有するホスト設定パラメータ822に入力する値を決め、決めた値を入力することができる。ロック制御部801は、入力された値を記述したホスト設定パラメータ822を、ストレージシステム200に送信する。ホスト設定パラメータ822は、例えば、所定個数(例えば516個)のCU割当数フィールドを有している。各CU割当数フィールドは、所定のCUに対応している(例えば、先頭のCU割当数フィールドは、CU301Aに対応している)。CU割当数フィールドには、論理ロック構造体を生成するか否かを表す情報か、或いは、論理ロック構造体を構成するロックテーブルの数を表す情報が記述される。このホスト設定パラメータ822は、先に送信されたホスト設定コマンド820のOP部フィールド1822に書かれた情報に依存した情報である。換言すれば、OP部フィールド1822にどんな情報が記述されたかによって、ロック構築部811による解釈が異なる。具体的には、例えば、OP部フィールド1822に書かれた情報が「固定割り当て準備」である場合に、10000という値を示す情報が、CU割当数フィールドに記述されていた場合、ロック構築部811は、予め決められた個数(例えば16000個)又は後述の算出されたn2のロックテーブルを有する論理ロック構造体を生成することを要求されていると解釈することができる。一方、例えば、OP部フィールド1822に書かれた情報が「可変割り当て準備」である場合に、10000という値を示す情報が、CU割当数フィールドに記述されていた場合、ロック構築部811は、10000個のロックテーブルを有する論理ロック構造体を生成することを要求されていると解釈することができる。
ロック構築部811は、ホスト設定パラメータ822を受信した場合(それに加えて、割り当て実行が記述された別のホスト設定コマンド820を受信した場合)、先に受信したホスト設定コマンド820と、受信したホスト設定パラメータ822とに基づいて、論理ロック構造体群の再構築処理を行うことができる(S200)。具体的には、例えば、ロック構築部811は、ホスト設定コマンド820及びホスト設定パラメータ822の内容に基づいて、指定されたCUに、所定の又は指定されたロックテーブル数を有する論理ロック構造体501を構築することができる。また、ロック構築部811は、指定されたCU毎に、割当ロックテーブル数651及び未使用ロックテーブル数653等を準備し、割当ロックテーブル数651に、そのCU301の論理ロック構造体501を構成するロックテーブル700の数を記述し、且つ、未使用ロックテーブル数653にも、その数を記述することができる。
ロック制御部801は、ホスト読み出しコマンド830をストレージシステム200に発行する。ロック構築部811は、ホスト読み出しコマンド830を受信したならば、コマンド受領報告831をホスト101に送信する。
次に、ロック構築部811は、図7Cに例示する構成のコマンド読み出しデータ832を、ホスト101に送信する。コマンド読み出しデータ832は、再構築処理後の論理ロック構造体群500に関する構成を表すデータである。コマンド読み出しデータ832には、例えば、フラグフィールド1832、CU数フィールド1833、ホスト数フィールド1834及びエクステントフィールド1835がある。フラグフィールド1832には、割り当て準備が完了したか或いは未完であるかを表すフラグ(例えば1又は0)が設定される。CU数フィールド1833には、ストレージシステム200に備えられたCU301の数を表す情報が記述される。ホスト数フィールド1834には、ストレージシステム200に接続されているホスト101の数を表す情報が記述される。エクステントフィールド1835は、所定個数のCU割当数フィールドで構成される。各CU割当数フィールドは、所定のCUに対応している。或るCUに対応するCU割当数フィールドには、そのCUに対応する論理ロック構造体501を構成するロックテーブル700の数を表す情報が記述される。
ロック制御部801は、コマンド読み出しデータ832を受信する。ロック制御部801は、そのデータ832において、フラグフィールド1832に、割り当て準備完了を表すフラグが設定されていたならば、相互認識比較処理(換言すれば、ホスト101とストレージシステム200との間での認識確認)を行うことができる(S300)。具体的には、例えば、ロック制御部801は、先に送信したホスト設定コマンド820及びホスト設定パラメータ822の内容と、コマンド読み出しデータ832の内容とを比較し、互いに一致するか否かを判断することができる。換言すれば、ロック制御部801は、自分が要求した、論理ロック構造体群500に関する構成と、その要求に応じて構築された論理ロック構造体群500に関する構成とが一致しているか否かを判断することができる。一致していなければ、図6に示す処理を、最初から(例えばホスト設定コマンド820の発行から)やり直すことができる。一致していれば、ロック制御部801は、コマンド読み出しデータ832の内容、換言すれば、再構築された後の論理ロック構造体群500に関する構成をIPLファイル650に書く。ホスト101のCPU32は、そのIPLファイル650を読み込んで、処理する。それにより、ホスト101の起動が完了する。
この後、ホスト101もストレージシステム200も稼動中となって、図5Bを参照して説明したように、再構築処理後の論理ロック構造体群500に基づいて、アクセス排他の制御が行われるようになる。
以下、図6に示した処理流れにおける種々の段階での処理を、より詳細に説明する。
例えば、ホスト設定コマンド822のOP部フィールド1822に書かれた情報が、固定割り当て準備である場合、ホスト設定パラメータ822において、各CU割当数フィールドに記述されている情報は、そのフィールドに対応するCU301が必要とするロックテーブル数を示すのではなく、単に、当該CUが論理ロック構造体を必要とするか否かを示す情報となる。
ロック構築部811は、ホスト設定コマンド820のCU数フィールド1823に記述されているCU数と、ホスト設定パラメータ822に表されている、論理ロック構造体を必要とするCUの数とが一致するか否かを判断する。ロック構築部811は、一致していないと判断した場合、ホスト101に対し、コマンド完了報告823と共に、不当な条件を検出したことを表す情報とを送信することができる。一致したと判断した場合には、ロック構築部811は、ホスト設定コマンド820及びホスト設定パラメータ822の処理を継続することができる。
また、ロック構築部811は、S100の構築処理では、所定台数(例えば32台)のホスト101を制御可能なロックテーブル600を構築した。しかし、この固定割り当て準備の場合では、ロック構築部811は、ホスト数フィールド1824を参照し、例えばホスト数として8が記述されていたならば、8台のホストを制御可能なロックテーブル700として仮定し、確保可能なロックテーブル数を算出することができる。
制御可能なホスト数が32から8に減少したことで、ロック構築部811は、各ロックテーブル600から、必要としない24台のホスト分に関する情報(例えば、24台分のホストのロックサブステータス)を省くことが可能となり、故に、個々のロックテーブルのサイズが小さくすることができる。
具体的には、例えば、論理ロック構造体群に使用可能な記憶容量をt、1個のロックテーブルにおける、ホスト数に依存しない情報量をf、1台のホストに対し必要な情報量をhとした場合、初期設定の構築処理(S100)で確保することができたロックテーブル総数n0は、n0=TRUNC(t/(f+32h))で求めることができる。そして、この固定割り当て準備の場合では、n1=TRUNC(t/(f+8h))の個数を確保することができる。n0とn1の関係は、n0<n1となる。ホスト数に依存しない情報量fが非常に小さい場合、接続ホスト数が、初期設定の1/N倍となれば、ロックテーブル数は略N倍の個数を確保出来るようになる。
また、ロック構築部811は、新たなロックテーブル数n1と、CU数フィールド1823に記述されている値c(例えば、c≦512)とを用いて、各CU301の論理ロック構造体を構成するロックテーブル数n2を算出することができる(例えば、n2=1024×TRUNC(n1/c/1024))。
ロック制御部801は、オペレータから、複数のCU301のうちのどのCUに対応する論理ロック構造体が必要となるかの指定(例えばCU番号の指定)を受け付ける。また、ロック制御部801は、n1やn2の通知を受けた場合、指定されたCUに対応するCU割当フィールドに所定値を記入したホスト設定パラメータ822を生成し、そのホスト設定パラメータ822を、ストレージシステム200に送信することができる。
ロック構築部811は、所定のタイミングで(例えば、n1及びn2の通知の際)、コマンド読み出しデータ832を準備することができる。この固定割り当て準備の場合では、例えば、CU数フィールド1833には、ホスト設定コマンド820に従って設定されたCUの数が記述され、ホスト数フィールド1834には、ホスト設定コマンド820で記述されていたホスト数が記述される。
ロック制御部801は、受信したコマンド読み出しデータ832において、割り当て準備完了を表すフラグが設定されていた場合、OP部フィールド1822に割り当て実行を記述した別のホスト設定コマンド820を発行することができる。その際、ロック制御部801は、CU数フィールド1823及びホスト数フィールド1824に、それぞれ所定値(例えば、0(0x0000)、0(0x00))を設定することができる。
ロック構築部811は、割り当て準備が記述されたホスト設定コマンドをロック制御部801から受信した場合、割り当て(すなわち、固定割り当て準備に従う再構築処理)を実行することができる。ロック構築部811は、コマンド読み出しデータ832に、割り当て結果を設定し、そのコマンド読み出しデータ832を、送信することができる。そのデータ832に、割り当て準備完了を表すフラグが設定されていた場合、論理ロック構造体の配設が完了となる。
以上が、ホスト設定コマンド822のOP部フィールド1822に書かれた情報が、固定割り当て準備である場合についての説明である。
なお、ホスト設定コマンド822のOP部フィールド1822に書かれた情報が、可変割り当て準備の場合には、固定割り当て準備の場合と、例えば以下の点で異なる。
各CU301が論理ロック構造体を必要とするか否かは、ホスト設定パラメータ822において、そのCU301に対応する論理ロック構造体を構成するロックテーブル数で表すことができる。すなわち、例えば、ロック制御部801は、論理ロック構造体が必要なCU(例えばCU番号)の指定と、指定されたCUについて、必要とするロックテーブル数の指定とを受け付けることができる。それらが指定された場合、ロック制御部801は、論理ロック構造体が不要なCUについては、そのCUに対応したCU割当数フィールドに、0(0x00)と設定し、それが必要なCUについては、そのCUに対応したCU割当数フィールドに、指定されたロックテーブル数を設定することができる。
また、例えば、割り当て実行において、ストレージシステム200に構築される論理ロック構造体のロックテーブル数は、ホスト設定パラメータ822に設定された数とすることができる。すなわち、ホスト設定パラメータ822において、各CUのアクセス頻度等に応じて、ロックテーブル数を調節することができる。
また、ロック構築部811は、例えば、ストレージシステム200で確保可能なロックテーブル総数(論理ロック構造体群のロックテーブル数)n1から、指定された或るCU割当数(例えばCU0の割当数)が確保可能か否かを判定することができる。確保可能であると判定された場合には、コマンド読み出しデータ832に、CU0のCU割当数を設定し、n1から本値を減算し、減算後の値を所定記憶域(例えば所定のワーク領域)に記憶させることができる。次に、ロック構築部811は、指定されたCU1の割当数が確保可能かを判定することができる。確保可能であると判定された場合には、ロック構築部811は、読み出しコマンドデータ822に、CU1の割当数を設定し、上記減算後の値から本値を更に減算し、これを記憶させることができる。ロック構築部811は、このような処理を繰り返すことができる。その際、指定された個数のロックテーブルの確保ができないと判定された場合には、ロック構築部811は、確保できないCUの割当数としてゼロ(例えば0(0x00))を設定し、フラグフィールド1832に割り当て準備完了を設定して、コマンド読み出しデータ832を確定することができる。
以上が、ホスト設定コマンド822のOP部フィールド1822に書かれた情報が、可変割り当て準備である場合についての説明である。
ホスト設定コマンド822のOP部フィールド1822に書かれた情報が、初期割り当て準備である場合、ロック構築部811は、再構築処理された論理ロック構造体群500を、初期設定に基づいて構築されるべき論理ロック構造体群400に戻すことができる。
また、ホスト101及びストレージシステム200の稼動中では、上記の通り、アクセス排他制御が行われる。その際、ロックテーブル700は、動的に、未使用状態にされたり、使用状態にされたりする。この場合、例えば、アクセス制御部812が、或るCU301におけるロックテーブルを使用状態にしたり解放したりする都度に、そのCU301に対応した未使用ロックテーブル数653が表す数値を、減らしたり増やしたりすることができる。
また、例えば、アクセス制御部812は、未使用ロックテーブル数653が減少したタイミングで、最小未使用数(初期値は、例えば、初期の未使用ロックテーブル数653の値と同じ)655の値と、更新後の未使用ロックテーブル数653の値とを比較することができる。この場合、更新後の未使用ロックテーブル数653の値がより小さい場合、アクセス制御部812は、最小未使用数655に、更新後の未使用ロックテーブル数653の値を書き込むことができる。これにより、最小未使用数655には、未使用ロックテーブル数653の最小値を記録することができる。なお、この最小未使用数655は、例えば、ホスト101又はSVP31からストレージシステム200に、OP部フィールド1822に最小値準備が書かれたホスト設定コマンド820が送信された場合に、ストレージシステム200から、各CU301毎の最小未使用数655がホスト101又はSVP31に返送される。
また、ストレージシステム200では、未使用ロックテーブル数653の監視が行われる。以下、図8を参照して、未使用ロックテーブル数653の監視処理について説明する。
例えば、SVP31(及び/又はホスト101)に、モニタ制御部951が備えられる。モニタ制御部951は、例えば、SVP31内のCPUに読み込まれて実行されるコンピュータプログラムである。
また、ストレージシステム200には、各CU301の論理ロック構造体501における未使用ロックテーブル数の監視を行うことができるモニタ実行部961が備えられる。モニタ実行部961は、例えば、CHA7のCPU13に読み込まれて実行されるコンピュータプログラムである。
例えば、ストレージシステム200及びホスト101が稼動した場合、SVP31のオペレータ(例えば保守員)からの指示により、SVP31内で、モニタ制御部951が起動する。モニタ制御部951は、例えば、起動が完了した場合に、モニタ起動指示970、具体的は、例えば、OP部フィールド1822にモニタ準備が書かれたホスト設定コマンド970を、ストレージシステム200に送信することができる。
ストレージシステム200のモニタ実行部961が、該指示970を受信したならば、SVP31に、受領報告971を送信する。ロック実行部961は、各CU301毎の未使用ロックテーブル数653を読み出し、読み出された未使用ロックテーブル数653を、矢印972で示すように、SVP31に送信する。その後、以下の(A)及び(B)の処理が繰り返される。
(A)モニタ制御部951は、未使用ロックテーブル数653を受信した場合、時計952から、時刻に係る情報を取得し、その時刻と、未使用ロックテーブル数653とを、セットにして、モニタ情報記憶域953に書き込むことができる。モニタ制御部951は、その後、ストレージシステム200に受領報告973を送信することができる。
(B)モニタ実行部961は、受領報告973を受信した場合、クロックカウンタ962を読み出し、読み出されたカウント値を所定記憶域に記憶させて、一旦、終了することができる。その後、ストレージシステム200では、モニタ実行部961が周期的に起動される。モニタ実行部961は、起動されると、クロックカウンタ962のカウント値を読み出し、記憶していたカウンタ値との差分が、一定時刻、例えば10分を超過する差分に相当するか否かを判定する。カウンタ値の差分が、一定時刻に満たない場合、モニタ実行部961は、再度休眠するが、そうではない場合、各CU301毎の未使用ロックテーブル653を読み出し、読み出された未使用ロックテーブル数653を、SVP31に送信する。
SVP31は、モニタ情報記憶域953に記録された複数のセット(時刻と各CU毎の未使用ロックテーブル数653とのセット)の一覧を、保守員に対して表示することができる。保守員は、その表示された情報から、現行の論理ロック構造体の状態を認識し、論理ロック構造体群の構成をどのように改良したら良いか(具体的には、ホスト101の起動の際(IPL時)に送信するホスト設定コマンド820及びパラメータ822の内容をどのようにしたら良いか)を判断することができる。
また、モニタ情報記憶域953には、SVP31に返送された各CU毎の最小未使用数655が記憶され、上記セットの一覧と共に、或いは、別々に、保守員に対して表示されても良い。保守員は、その表示された各CU毎の最小未使用数655から、論理ロック構造体群の構成をどのように改良したら良いかを判断しても良い。
また、SVP31は、各CU毎の割当ロックテーブル数651を取得し、CU番号と割当ロックテーブル数651が表す数値(つまり、そのCU番号のCUに対応する論理ロック構造体を構成するロックテーブルの数)とを一覧で表示しても良い。保守員は、その表示された一覧と、上記複数のセットの一覧と、各CU毎の最小未使用数655とに基づいて、論理ロック構造体群の構成をどのように改良したら良いかを判断することができる。
以上が、本実施形態についての説明である。
上述した実施形態によれば、ホスト101又はSVP31に、論理ロック構造体群の構成を変えることの要求を発行する制御プログラムとしてロック制御部801が搭載され、ストレージシステム200に、その要求を解析しその要求に従って論理ロック構造体群の構成を変更する制御プログラムとしてロック構築部811が搭載される。ロック制御部801は、ホスト101又はSVP31のオペレータから、ホスト設定コマンド820の各フィールド1822、1823及び1824や、ホスト設定パラメータ822に記述する種々の情報の入力を受け付ける。ロック制御部801は、入力された情報が記述されたホスト設定コマンド820やホスト設定パラメータ822を、ストレージシステム200に送信する。ロック構築部811は、ホスト設定コマンド820及びホスト設定パラメータ822を受信し、そのコマンド820及びパラメータ822の内容に従がって、どのCUに、どれだけの数のロックテーブルで構成される論理ロック構造体を構築するかを制御することができる。これにより、全く使用されることのない論理ロック構造体が存在することをなくせるので、有限の記憶資源を有効に利用することができる。
また、上述した実施形態によれば、ストレージシステム200の稼動中における各CU毎の未使用ロックテーブル数653の時間的遷移が、SVP31で取得される。また、各CU毎の未使用ロックテーブル数653の最小値655や、現時点の論理ロック構造体群の構成も、SVP31で取得される。SVP31のディスプレイ画面には、それら取得された種々の情報が表示される。保守員は、表示された種々の情報に基づいて、論理ロック構造体群の構成をどのように改良したら良いかを判断することができる。
また、上述した実施形態によれば、CUに存在する全てのレコードに予めロックテーブルが割り付けられているのではなく、CUに存在するレコードの数よりも少ない数のロックテーブルで論理ロック構造体が構成され、各ロックテーブルは、動的に、レコードに対して割り付けられたり、解放されたりする。このため、論理ロック構造体のサイズを抑えることができる。
また、上述した実施形態によれば、固定割り当て準備の場合、例えば、ストレージシステム200に備えられるCUの数よりも少ない数のCUが、論理ロック構造体を必要とするCUとして指定された場合、初期割り当て準備と比べて、たとえホスト数が同じであったとしても、一つの論理ロック構造体を構成するロックテーブル数を多くすることができる。また、可変割り当て準備の場合、例えばCUのサイズやCUに対するアクセス頻度等に基づいて、各論理ロック構造体のロックテーブル数を調節することができる。
以上、本発明の好適な一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、ロック制御部801は、ホスト101及びストレージシステム200の稼動中であっても、再構築処理の指示(例えば、ホスト設定コマンド820やホスト設定パラメータ822に記述する情報の入力)を、ホスト101又はSVP31のオペレータから受け付けることができる。その場合、ロック制御部801は、ホスト101及びストレージシステム200が既に稼動中のため、今回入力された情報に基づく再構築処理は次回のホスト101及びストレージシステム200の起動時に行われること、或いは、すぐに再構築処理を行って欲しい場合にはホスト101及びストレージシステム200を再起動することを、ホスト101又はSVP31のディスプレイ画面に表示することにより、オペレータに通知することができる。
また、例えば、ストレージシステム200には、直前回に構築した論理ロック構造体群の構成(例えば、どのCUにどんな論理ロック構造体が構築されたか)が記憶されても良い。この場合、ロック構築部811は、ストレージシステム200の起動の際、その直前回の構成に基づいて、論理ロック構造体群を構築しても良い。
また、例えば、CU毎に、アクセスし得るホストの数が異なっていても良い。この場合、論理ロック構造体のロックテーブルのサイズは、CU別に異なっていても良い。
本発明の一実施形態に係るストレージシステムを備えたコンピュータシステムのハードウェア構成の概略を示す。 図2は、本実施形態に係るコンピュータシステムの機能ブロックを示し、特に、ストレージシステム200の起動中における或る時点でのコンピュータシステムの様子を示す。 図3は、論理ロック構造体群の再構築処理の説明図である。 図4Aは、再構築処理前の或る論理ロック構造体401及びロックテーブル600の構成例を示す。図4Bは、再構築処理後の或る論理ロック構造体501及びロックテーブル700の構成例を示す。 図5Aは、ロックテーブル700の構成例を示す。図5Bは、アクセス排他制御の流れの一例を示す。 図6は、論理ロック構造体群の再構築処理の流れの一例を示す。 図7Aは、ホスト設定コマンド820の構成例を示す。図7Bは、ホスト設定パラメータ822の構成例を示す。図7Cは、コマンド読出しデータ832の構成例を示す。 図8は、未使用ロックテーブル数653の監視処理の一例の説明図である。
符号の説明
101A〜101D…ホストコンピュータ 7…CHA 31…SVP 35…DKA 200…ストレージシステム 301A〜301C…CU 400、500…論理ロック構造体群 401A〜401C、501A〜501B…論理ロック構造体 600、700…ロックテーブル 650…IPLファイル 801…ロック制御部 811…ロック構築部

Claims (8)

  1. 複数のホストコンピュータに接続されたストレージシステムにおいて、
    複数の記憶領域単位毎により構成された記憶領域を有する複数の記憶装置グループと、
    前記複数のホストコンピュータからの各記憶領域単位に対するアクセスの排他制御のために使用される制御ブロック群と、
    前記制御ブロックを記憶することができる記憶資源と、
    前記制御ブロック群を用いて前記排他制御を行うコントローラと
    を備え、
    前記複数の記憶装置グループの各々は、一以上の記憶装置により構成され、
    前記制御ブロック群は、一以上の制御ブロックで構成され、
    各制御ブロックは、前記複数の記憶装置グループのうちの一つに対応し、一つの記憶領域単位に対するアクセス排他制御を行うための制御サブブロックを複数個有し、
    前記コントローラは、
    同一の記憶領域単位に実際にアクセスし得るホストコンピュータの数であるホスト数、及び/又は、前記複数の記憶装置グループのうち前記排他制御を行う必要のある記憶装置グループの数であるグループ数を把握し、
    前記把握されたホスト数及び/又はグループ数に基づいて、前記制御ブロック群を構築する、
    ストレージシステム。
  2. 前記コントローラは、前記複数のホストコンピュータのうちの少なくとも一つのホストコンピュータ、又は、前記ストレージシステムに接続された別のコンピュータマシンから前記ホスト数及び/又はグループ数の入力を受け付ける制御インターフェースを有し、該制御インターフェースにより前記ホスト数及び/又は前記グループ数の入力を受け付けることにより、前記ホスト数及び/又はグループ数を把握する、
    請求項1記載のストレージシステム。
  3. 前記制御サブブロックのサイズは、その制御サブロックを用いてアクセスの排他制御がされる前記ホスト数が多いほど、大きくなり、
    前記コントローラは、
    前記把握されたホスト数と、前記記憶資源における、前記制御ブロック群を記憶するための領域のサイズとに基づいて、該領域に記憶することができる制御サブブロックの数を計算し、
    算出された数を、前記ホストコンピュータ及び/又は前記別のコンピュータマシンに通知する、
    請求項2記載のストレージシステム。
  4. 前記制御サブブロックのサイズは、その制御サブロックを用いてアクセスの排他制御がされる前記ホスト数が多いほど、大きくなり、
    前記コントローラは、
    前記把握されたホスト数と、前記記憶資源における、前記制御ブロック群を記憶するための領域のサイズとに基づいて、該領域に記憶することができる制御サブブロックの第一の数を計算し、
    前記算出された第一の数と、前記把握されたグループ数とに基づいて、前記排他制御を行う必要のある各記憶装置グループに対応した制御ブロックを構成する制御サブブロックの第二の数を計算し、
    前記算出された第二の数を、前記ホストコンピュータ及び/又は前記別のコンピュータマシンに通知する、
    請求項2記載のストレージシステム。
  5. 前記コントローラは、
    前記排他制御を行う必要のある記憶装置グループがどれであるかを把握し、
    前記制御ブロック群の構築において、前記把握された各記憶装置グループに対応した制御ブロックを構成する制御サブブロックの数を均等にする、
    請求項1記載のストレージシステム。
  6. 前記コントローラは、
    前記排他制御を行う必要のある記憶装置グループがどれで、どの記憶装置グループにどれだけの数の制御サブブロックを割り当てるべきかを把握し、
    前記制御ブロック群の構築において、前記把握された各記憶装置グループに対応した制御ブロックを、前記把握された数の制御サブブロックで構成する、
    請求項1記載のストレージシステム。
  7. 前記コントローラは、
    或る記憶装置グループにおける或る記憶領域単位に対するアクセス要求を受けた場合、その記憶装置グループに対応する制御ブロックから、未使用状態の制御サブブロックを探して、探し出された制御サブブロックを使用状態にし、当該アクセス要求の処理が済んだ場合に、該制御サブブロックを未使用状態に戻し、
    各制御ブロックにおける未使用状態の制御サブブロックの数であるブロック使用状況を把握し、
    把握されたブロック使用状況を前記ホストコンピュータ又は前記別のコンピュータマシンに通知する、
    請求項2記載のストレージシステム。
  8. 複数のホストコンピュータとストレージシステムとを備えるシステムにおいて実現される記憶制御方法において、
    前記ストレージシステムが、
    複数の記憶領域単位毎により構成された記憶領域を有する複数の記憶装置グループと、
    前記複数のホストコンピュータからの各記憶領域単位に対するアクセスの排他制御のために使用される制御ブロック群と、
    前記制御ブロックを記憶することができる記憶資源と
    を有し、
    前記複数の記憶装置グループの各々は、一以上の記憶装置により構成されており、
    前記制御ブロック群は、一以上の制御ブロックで構成されており、
    各制御ブロックは、前記複数の記憶装置グループのうちの一つに対応し、一つの記憶領域単位に対するアクセス排他制御を行うための制御サブブロックを複数個有し、
    前記記憶制御方法は、
    同一の記憶領域単位に実際にアクセスし得るホストコンピュータの数であるホスト数、及び/又は、前記複数の記憶装置グループのうち前記排他制御を行う必要のある記憶装置グループの数であるグループ数を把握し、
    前記把握されたホスト数及び/又はグループ数に基づいて、前記制御ブロック群を構築する、
    記憶制御方法。
JP2005228483A 2005-08-05 2005-08-05 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法 Pending JP2007047863A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005228483A JP2007047863A (ja) 2005-08-05 2005-08-05 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法
US11/246,228 US7401196B2 (en) 2005-08-05 2005-10-11 Storage system and storage control method for access exclusion control of each storage area unit comprising storage area of storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005228483A JP2007047863A (ja) 2005-08-05 2005-08-05 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法

Publications (1)

Publication Number Publication Date
JP2007047863A true JP2007047863A (ja) 2007-02-22

Family

ID=37718871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005228483A Pending JP2007047863A (ja) 2005-08-05 2005-08-05 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法

Country Status (2)

Country Link
US (1) US7401196B2 (ja)
JP (1) JP2007047863A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339259A1 (en) * 2012-08-07 2015-11-26 Nokia Corporation Access control for wireless memory
US10577467B2 (en) 2012-12-20 2020-03-03 3M Innovative Properties Company Fluoropolymer composition including an oligomer having an ultraviolet absorbing group

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US7849271B2 (en) * 2007-06-11 2010-12-07 Hitachi, Ltd. System and method for intrusion protection of network storage
US20100057741A1 (en) * 2008-08-29 2010-03-04 International Business Management Productions Software resource access utilizing multiple lock tables
US9767136B2 (en) 2010-03-31 2017-09-19 Salesforce.Com, Inc. System, method and computer program product for maintaining data stored in a data structure
US8904106B2 (en) 2011-06-22 2014-12-02 International Business Machines Corporation Parallel block allocation for declustered logical disks
US9348859B2 (en) 2013-03-25 2016-05-24 International Business Machines Corporation Providing record-level sharing (RLS) to local data sets
US9244858B1 (en) * 2014-08-25 2016-01-26 Sandisk Technologies Inc. System and method of separating read intensive addresses from non-read intensive addresses
KR102606490B1 (ko) 2016-06-30 2023-11-30 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
KR102614083B1 (ko) 2016-08-31 2023-12-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128002A (ja) 1991-11-01 1993-05-25 Fujitsu Ltd キヤツシユメモリ分割制御方式
US6681239B1 (en) * 1996-12-23 2004-01-20 International Business Machines Corporation Computer system having shared address space among multiple virtual address spaces
US5940841A (en) * 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system with extended file attributes
US6493804B1 (en) * 1997-10-01 2002-12-10 Regents Of The University Of Minnesota Global file system and data storage device locks
US6421711B1 (en) * 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6751617B1 (en) * 1999-07-12 2004-06-15 Xymphonic Systems As Method, system, and data structures for implementing nested databases

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150339259A1 (en) * 2012-08-07 2015-11-26 Nokia Corporation Access control for wireless memory
US9798695B2 (en) * 2012-08-07 2017-10-24 Nokia Technologies Oy Access control for wireless memory
US10577467B2 (en) 2012-12-20 2020-03-03 3M Innovative Properties Company Fluoropolymer composition including an oligomer having an ultraviolet absorbing group

Also Published As

Publication number Publication date
US20070033359A1 (en) 2007-02-08
US7401196B2 (en) 2008-07-15

Similar Documents

Publication Publication Date Title
JP2007047863A (ja) 記憶装置の記憶領域を構成する各記憶領域単位毎にアクセス排他制御を行うストレージシステム及び記憶制御方法
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
JP4921054B2 (ja) 負荷分散制御システム及び負荷分散制御方法
JP4341897B2 (ja) 記憶装置システム及びデータ複製方法
US7120742B2 (en) Storage system having a plurality of interfaces
US7305462B2 (en) Data storage system and control method thereof
JP4375435B2 (ja) 予知型データ移行を行う階層ストレージシステム
JP5159421B2 (ja) ストレージシステム及び管理装置を用いたストレージシステムの管理方法
JP4884198B2 (ja) ストレージネットワークの性能管理方法、並びに、その方法を用いた計算機システム及び管理計算機
JP2008059315A (ja) 負荷分散方法及び計算機システム
WO2014167716A1 (ja) 計算機システムの管理システム及び管理方法
WO2014178104A1 (ja) 計算機システム及び非同期リモートレプリケーションの分析を支援する方法
JP4497953B2 (ja) 情報処理システム、および情報処理方法
JP2009238114A (ja) ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム
JP5243991B2 (ja) ストレージシステム、容量管理方法、および管理計算機
JP2005228278A (ja) 記憶領域の管理方法、管理装置及び管理プログラム
JP2005165852A (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2007128293A (ja) 計算機システム及び管理計算機
JP2005321959A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US7366867B2 (en) Computer system and storage area allocation method
US20130332932A1 (en) Command control method
JP6272556B2 (ja) 共有リソース更新装置及び共有リソース更新方法
US5712974A (en) Method and apparatus for controlling the configuration definitions in a data processing system with a plurality of processors
JP5246872B2 (ja) ストレージシステムおよびストレージ管理方法
JP2004264970A (ja) プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法