JP2012008737A - ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法 - Google Patents

ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法 Download PDF

Info

Publication number
JP2012008737A
JP2012008737A JP2010143111A JP2010143111A JP2012008737A JP 2012008737 A JP2012008737 A JP 2012008737A JP 2010143111 A JP2010143111 A JP 2010143111A JP 2010143111 A JP2010143111 A JP 2010143111A JP 2012008737 A JP2012008737 A JP 2012008737A
Authority
JP
Japan
Prior art keywords
user
initiator
storage
terminal computer
terminal
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
JP2010143111A
Other languages
English (en)
Inventor
Kotaro Endo
浩太郎 遠藤
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2010143111A priority Critical patent/JP2012008737A/ja
Publication of JP2012008737A publication Critical patent/JP2012008737A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ユーザが並行して複数の端末から同一の作業環境を利用するのを防止する。
【解決手段】実施形態によれば、ストレージのターゲット・ポートは、ユーザによる端末(端末コンピュータ)の使用開始時に、ユーザIDと使用開始時点に対応した時刻情報及び乱数の少なくとも一方に基づいて生成された付加IDと含むイニシエータIDを用いて端末がストレージに接続した場合、接続に用いたイニシエータIDを特定する。ストレージのユーザID取り出し手段はイニシエータIDに対応するセッションを介して端末から要求が送られた場合、当該イニシエータIDからユーザIDを取り出す。ストレージのリザベーション手段は、取り出されたユーザIDに対応する論理ユニットが、取り出されたユーザIDに対応するイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされている場合、リザベーション・コンフリクトを要求元に返す。
【選択図】 図2

Description

本発明の実施形態は、ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法に関する。
コンピュータとストレージとを接続するインタフェースとしてSCSI(Small Computer System Interface)規格がよく知られている。SCSIによる接続の形態には、いわゆるSCSIケーブルによるデイジチェイン接続の他に、ファイバチャネルを用いて構築されるSAN(Storage Area Network)接続や、iSCSI(インターネットSCSI)におけるTCP/IP(Transmission Control Protocol/Internet Protocol)上でのネットワーク接続がある。いずれの接続の形態においても、コンピュータとストレージとの間の接続は、イニシエータ(要求元)を識別するイニシエータID(イニシエータ識別子)と、ターゲット(要求先)を識別するターゲットID(ターゲット識別子)の組で特定される。
読み出しや書き込みなどの入出力(I/O)操作では、コンピュータとストレージとが接続されている状態でコンピュータからストレージへ要求が配送されて、ストレージ内で当該要求の示すI/O操作が処理される。この処理の結果、コンピュータとストレージとが接続されている状態でストレージからコンピュータへ応答が配送される。この接続状態を、セッションと呼び、コンピュータとストレージとを接続することを、コンピュータとストレージとの間にセッションを設定すると表現することもある。
ストレージ内で処理されるI/O操作はタスクと呼ばれ、処理の対象となる論理ユニット(LU:Logical Unit)を指定する論理ユニット番号(LUN:Logical Unit Number)と要求元のイニシエータIDが各タスクに情報として含まれる。タスクはストレージが要求を受信したときに生成され、ストレージ内でタスクが処理され応答を送信し終わったときに消滅する。
SCSI規格での排他の仕組みとしてSCSIリザベーションがある。この排他機能によれば、リザーブ中の特定のイニシエータ以外のイニシエータからのI/O操作はリザベーション・コンフリクトのエラーとなって応答される。SCSIリザベーションの登録や解除は、専用のSCSIコマンドによって行われる。この専用のSCSIコマンドは、通常のI/O操作の場合と同様に、コンピュータとストレージとが接続されている状態でコンピュータからストレージへ配送されて、ストレージ内で処理される。この処理の結果、上記の接続状態でストレージからコンピュータへ、専用のSCSIコマンドに対する応答が配送される。ストレージ内での処理は通常のI/O操作の場合と同様にタスクと呼ばれる。
別の排他の仕組みとしてLUマッピングあるいはLUマスキングとよばれる仮想化技術がある。この仮想化機能によれば、イニシエータ毎にLUNとLUの対応を個別に設定、あるいはイニシエータ毎にLUの存否を設定できる。LUNとLUの対応の設定変更が行われるとイニシエータから認識可能なストレージ内のLUのマッピングが変化する。このため、通常はイニシエータがストレージに接続していない状態で上述の設定変更を行う必要がある。またセキュリティ上の理由から、設定変更はストレージ管理インタフェースを通して行うようになっているのが通常である。
近年、ストレージを中心に構成したコンピュータシステム、いわゆるストレージ・セントリックなコンピュータシステムが注目されている。ストレージ・セントリックなコンピューティング環境では、ユーザの作業環境はデータセンタなどに置かれたストレージに格納される。ここで作業環境とは、情報を記録したデータファイルや、作業を行うためのプログラム等のことをいう。具体的には、メール環境、Webブラウザ、オフィスソフトウェア、オペレーティングシステム、セキュリティソフトウェアなどが含まれる。ユーザが占有する作業環境はストレージ内の専用のLU(論理ユニット)に格納され、他のユーザの作業環境とは明確に区別される。
ユーザは端末コンピュータをネットワーク経由でストレージと接続し、自分の作業環境を利用する。端末コンピュータをいわゆるディスクレス・コンピュータとし、オペレーティングシステムまでを含んだ全ての作業環境をストレージに格納するネットワークブート・システムが典型的な例として挙げられる。
特開2007−272792号公報 特開2001−075853号公報
通常のパーソナル・コンピューティング環境では、ユーザの作業環境はユーザ自身が占有するパーソナルコンピュータ(PC)に格納されるのが一般的である。つまり、ユーザとコンピュータが1:1の関係で対応する。このようなパーソナル・コンピューティング環境においてユーザは、任意の場所で自分の作業環境を利用するためにはPCを持ち歩く必要がある。
一方ストレージ・セントリックなコンピューティング環境では、ユーザは自身が占有する端末コンピュータを持つ必要はない。どの端末コンピュータを使用したとしても、ユーザは自分の作業環境を同じように継続して利用することができる。また1つの端末コンピュータはどのユーザも使用することもできる。つまり、ユーザとコンピュータがN:Mの関係、つまり多対多の関係で対応する。
これには2つの利点がある。第一に、ユーザは自分のPCを持ち歩く必要はなく、インフラとして各拠点に用意された端末コンピュータを使えば良い。第二に、使用中でない端末コンピュータを任意に選んで使用できるため、全体として端末コンピュータの稼働率を高めることができる。
しかし、ストレージ・セントリックなコンピューティング環境では、ユーザとコンピュータが多対多の関係で対応するため、ユーザが誤って並行して複数の端末コンピュータから同一の作業環境を利用しようとしたときの排他性を考慮する必要がある。例えば、ディスクレス・コンピュータをネットワークブートする端末コンピュータの場合、同一のLUに格納されている汎用のオペレーティング・システムを複数の端末コンピュータで並行して使用すると、当該汎用のオペレーティングシステムが誤動作し、データが破壊される恐れがある。なぜなら汎用のオペレーティング・システムはコンピュータに内蔵のディスクにインストールされて占有して利用される場合しか想定していないからである。
本発明が解決しようとする課題は、ユーザが誤って並行して複数の端末コンピュータから同一の作業環境を利用しようとしたときでも、どちらか一方の端末コンピュータのみがその作業環境にアクセスできる、ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法を提供することにある。
実施形態によれば、複数のユーザのそれぞれの作業環境を格納した複数の論理ユニットを備え、前記複数のユーザがいずれも利用可能な複数の端末コンピュータからSCSIプロトコルを適用するネットワークを経由してアクセス可能なストレージは、ターゲット・ポートと、論理ユニット管理情報記憶手段と、ユーザID取り出し手段と、論理ユニット特定手段と、リザベーション手段とを具備する。ターゲット・ポートは、ユーザによる前記複数の端末コンピュータのうちの任意の端末コンピュータの使用開始時に前記任意の端末コンピュータが取得した、当該ユーザを識別するユーザIDと前記使用開始時点に対応した時刻情報及び乱数の少なくとも一方に基づいて生成された付加IDと含むイニシエータIDを用いて、前記任意の端末コンピュータが前記ストレージに接続した場合に、前記接続に用いたイニシエータIDを特定し、当該イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから送られる要求を待つ。論理ユニット管理情報記憶手段は、前記複数の端末コンピュータを利用可能な各ユーザのユーザIDと、当該ユーザIDで識別されるユーザが利用可能な論理ユニットを識別する論理ユニットIDとの対応を示す論理ユニット管理情報を記憶する。ユーザID取り出し手段は、前記イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから要求が送られた場合、当該イニシエータIDから前記ユーザIDを取り出す。論理ユニット特定手段は、前記取り出されたユーザID及び前記論理ユニット管理情報に基づいて、前記取り出されたユーザIDに対応する論理ユニットを特定する。リザベーション手段は、前記特定された論理ユニットが、前記取り出されたユーザIDに対応するイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされている場合、前記別のイニシエータのイニシエータIDが、前記取り出されたユーザIDに一致するユーザIDを含んでいても、前記要求に対する応答としてエラーを示すリザベーション・コンフリクトを要求元に返す。
第1の実施形態に係るストレージシステムの構成を示すブロック図。 図1に示される端末コンピュータの構成とストレージの構成とを示すブロック図。 第1の実施形態における端末コンピュータの動作を説明するためのフローチャート。 第1の実施形態において、ストレージが端末コンピュータによって接続された際の当該ストレージの動作を説明するためのフローチャート。 第1の実施形態で適用されるイニシエータIDのデータフォーマットの例を示す図。 第1の実施形態で適用されるLU管理テーブルの例を示す図。 第1の実施形態で適用されるLUマッピングの例を示す図。 第2の実施形態で適用されるイニシエータIDのデータフォーマットの例を示す図。 第3の実施形態で適用されるLU管理テーブルの例を示す図。
以下、実施の形態につき図面を参照して説明する。
[第1の実施形態]
図1は第1の実施形態に係るストレージシステムの構成を示すブロック図である。図1において、端末コンピュータ10-1,10-2,…10-Mは、例えば、ハードディスクドライブのようなディスク装置を持たないディスクレスのコンピュータ(ディスクレス・コンピュータ)である。端末コンピュータ10-1〜10-Mの各々は、ユーザ40-1〜40-Nによって使用可能である。
ストレージ20は、ユーザ40-1〜40-Nの作業環境をそれぞれ当該ユーザ40-1〜40-Nに固有のLU(論理ユニット)に格納する記憶装置である。ストレージ20は、SCSIリザベーションの機能を有している。ストレージ20には、端末コンピュータ10-1〜10-Mがそれぞれ接続可能である。つまり、ストレージ20と、端末コンピュータ10-1〜10-Mとの間には、それぞれセッションを設定することが可能である。
ストレージ・ネットワーク30は、端末コンピュータ10-i(i=1,2,…M)とストレージ20とをSCSIプロトコルで接続するネットワークである。つまり端末コンピュータ10-1〜10-Mは、ストレージ・ネットワーク30を介してストレージ20と接続可能である。第1の実施形態において、ストレージ・ネットワーク30は、SCSIプロトコルとしてiSCSI(インターネットSCSI)を適用するSAN(Storage Area Network)、例えばIP(Internet Protocol)−SANである。しかし、ストレージ・ネットワーク30は、SCSIプロトコルを適用するネットワークであるならば、例えばTCP/IPネットワークであってもよい。また、端末コンピュータ10-iとストレージ20とをSCSIプロトコルで接続するのに、SCSIケーブルによるデイジチェイン接続を適用することも可能である。
図2は、図1に示される端末コンピュータ10-1〜10-Mの各々の構成、つまり端末コンピュータ10-i(i=1,2,…M)の構成と、ストレージ20の構成とを示すブロック図である。
端末コンピュータ10-iは、イニシエータID生成部11及びイニシエータ・ポート12とを備えている。端末コンピュータ10-iは更に、キーボード等の入力部及びディスプレイ等の出力部(いずれも図示せず)を備えている。キーボードは、ハードウェアキーボード或いはソフトウェアキーボードいずれでも構わない。また、入力部がカードリーダを含んでいても構わない。
イニシエータID生成部11は、ユーザ40-j(j=1,2,…N)が端末コンピュータ10-iの使用を開始する際に、ユーザID及び付加IDに基づいてイニシエータIDを生成する。第1の実施形態において、イニシエータIDは、ユーザIDに付加IDを連結したものを指す。ユーザIDは、ユーザ40-jを一意に特定するIDである。第1の実施形態において、ユーザIDと当該ユーザIDで特定されるユーザ40-jの作業環境とは1:1に対応する。付加IDは、予め定められた規則に従って生成されるIDである。第1の実施形態において、付加IDは、時刻情報と予め定められた関数Fとに基づいて生成される。
イニシエータID生成部11は、ユーザID取得部111と付加ID生成部112とを備えている。
ユーザID取得部111は、端末コンピュータ10-iを使用するユーザ40-jのユーザIDを入力部を介して取得する。
付加ID生成部112は、ユーザ40-j(j=1,2,…N)が端末コンピュータ10-iの使用を開始する際に、予め定められた規則に従って、付加IDを生成する。より詳細には、付加ID生成部112は、時刻情報Txを利用して、予め定められた方法により、例えば時刻情報Txを引数として予め定められた関数F()に適用することにより、F(Tx)を付加IDとして生成する。
イニシエータ・ポート12は、SCSIプロトコルで端末コンピュータ10-iをストレージ20と接続し、つまり端末コンピュータ10-iとストレージ20との間にセッションを設定し、この状態で、端末コンピュータ10-iからストレージ20へのI/O要求等を処理する。
一方、ストレージ20は、ターゲット・ポート21、LUマッピング機構22、リザベーション機構23及び記憶部24を備えている。
ターゲット・ポート21は、端末コンピュータ10-iとSCSIプロトコルで接続し、この状態で、当該端末コンピュータ10-iからのI/O要求等を受け付ける。ターゲット・ポート21はまた、接続元のイニシエータIDを特定する。
LUマッピング機構22は、端末コンピュータ10-iから要求されたタスク(I/O操作)の処理対象となるLUを、ターゲット・ポート21によって特定されたイニシエータID中のユーザIDと、後述するLUDB222とに基づいて特定する。つまりLUマッピング機構22は、LU特定手段として機能する。
LUマッピング機構22は、イニシエータID分解部221及びLUデータベース(LUDB)222を備えている。
イニシエータID分解部221は、ターゲット・ポート21によって特定されイニシエータIDをユーザIDと付加IDとに分解することにより、当該イニシエータIDからユーザIDを取り出す。つまりイニシエータID分解部221はユーザID取り出し手段として機能する。
UDB222は、ユーザID毎に、当該ユーザIDと当該ユーザIDで特定されるユーザの作業環境が格納されたLUとの対応を示す情報をLU管理テーブル223として格納する。LUマッピング機構22は、イニシエータID分解部221によって取り出されたユーザIDに基づいてLU管理テーブル223を参照することにより、端末コンピュータ10-iから要求されたタスクの処理に必要な、当該ユーザIDで示されるユーザの作業環境を格納しているLUを特定する。
リザベーション機構23は、周知のSCSIリザベーションの処理を実行する。記憶部24は、ユーザ40-1〜40-Nそれぞれの作業環境を格納する、当該ユーザ40-1〜40-Nに固有のLU(論理ユニット)を提供する。この作業環境は、背景技術の欄で述べたように、メール環境、Webブラウザ、オフィスソフトウェア、オペレーティングシステム(例えば汎用のオペレーティングシステム)、セキュリティソフトウェアなどを含むものとする。
次に、図1に示されるストレージシステムにおける動作の概要について、ユーザ40-1が端末コンピュータ10-1を使用する場合を例に、端末コンピュータ10-1の動作とストレージ20の動作とに分けて説明する。
まず、端末コンピュータ10-1の動作について、図3のフローチャートを参照して説明する。
今、ユーザ40-1が空いている端末コンピュータ10-1の使用を開始したものとする。すると端末コンピュータ10-1のユーザID取得部111は、例えば端末コンピュータ10-1のディスプレイを介してユーザ40-1にユーザIDの入力を促す。これに応じてユーザ40-1は、自身のユーザIDを入力する操作を行う。これによりユーザID取得部111は、入力されたユーザIDを取得する(ステップS1)。なお、例えば、ユーザによってカードリーダに挿入或いはかざされた、ICカードのようなカードに記録されたユーザIDを、当該カードリーダを介して取得してもよい。
端末コンピュータ10-1の付加ID生成部112は、ユーザ40-1によって当該端末コンピュータ10-1の使用が開始された際の時刻情報、例えばユーザID取得部111によってユーザIDが取得された時点xの時刻情報Txを、端末コンピュータ10-1が有するシステム時計から取得する(ステップS2)。
付加ID生成部112は、時刻情報Txを引数として予め定められた関数F()に適用することにより、F(Tx)を付加IDとして生成する(ステップS3)。ここで関数F()は、引数が異なるときにはその値も異なる性質を持つ1対1の関数、即ちx≠yならばF(x)≠F(y)が成立する関数、或いは、引数が異なるときにその値が同一になる確率が極めて小さい関数である。後者の例としては、セキュアハッシュ関数が挙げられる。
なお、付加ID(=F(Tx))が時刻情報Txであっても構わない。また、付加IDは、ユーザIDが取得された時点(つまり、端末コンピュータ10-1の使用が開始された時点)xが反映されたものであればよい。そこでユーザID取得部111が、時点xの時刻情報Txを取得する代わりに、時点xの乱数Rxを生成し、当該乱数Rxを引数として関数F()に適用することにより、F(Rx)を付加IDとして生成してもよい。ここで付加ID(=F(Rx))が乱数Rxであっても構わない。
また、ユーザID取得部111が、時点xの時刻情報Txを取得すると共に、時点xの乱数Rxを生成し、当該時刻情報Txと乱数Rxとを引数として関数F()に適用することにより、F(Tx,Rx)を付加IDとして生成してもよい。この時刻情報Txと乱数Rxとを引数として用いるF()が、時刻情報Txと乱数Rxとの連結を表す関数であってもよい。この場合、付加ID(=F(Tx,Rx))を“Tx+Rx”と表すこともできる。
端末コンピュータ10-1のイニシエータID生成部11は、ユーザID取得部111によって取得されたユーザIDと付加ID生成部112によって生成された付加IDとを連結することにより、イニシエータIDを生成する(ステップS4)。なお、ユーザID取得部111及び付加ID生成部112が、イニシエータID生成部11の外部に備えられていてもよい。
イニシエータ・ポート12は、イニシエータID生成部11によって生成されたイニシエータIDを用いてストレージ20(より詳細には、ストレージ20のターゲット・ポート)21に接続する(ステップS5)。この接続の後、イニシエータ・ポート12は、ユーザID取得部111によって取得されたユーザIDのユーザ40-1が利用可能な当該ユーザ40-1に固有のLUをリザーブ(予約)するためのリザーブ要求を、ストレージ20に送出する(ステップS6)。リザーブ要求は、SCSIコマンドの1つである。
イニシエータ・ポート12によって送出されたリザーブ要求に対して、ストレージ20からリザベーション・コンフリクトが応答された場合、つまりリザーブ要求に失敗した場合は(ステップS7のNo)、イニシエータ・ポート12は、次のように判断する。つまりイニシエータ・ポート12は、ユーザ40-1に固有のLUが、イニシエータID生成部11によって生成されたイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされており、当該生成されたイニシエータIDの示すイニシエータからは利用できないと判断する。この場合、イニシエータ・ポート12は端末コンピュータ10-1を強制終了させる(ステップS8)。このように、リザベーション・コンフリクトのエラーの応答は、取得されたユーザIDのユーザ40-1に固有のLUが、当該ユーザ40-1によって別の端末コンピュータから既に使用中であり、端末コンピュータ10-1からは利用できないことを示す。
これに対し、リザーブ要求が成功した場合(ステップS7のYes)には、イニシエータ・ポート12は、ユーザ40-1に固有のLUをリザーブできたことから、当該LUを端末コンピュータ10-1から利用可能であると判断する。この場合、イニシエータ・ポート12はストレージ20に対して、SCSIコマンドの1つであるI/O要求を送出することにより、ユーザ40-1に固有のLUによって提供される作業環境にアクセスする(ステップS9)。つまり端末コンピュータ10-1は稼動して、ストレージ20内のユーザ40-1に固有のLUにアクセスする。
その後、ユーザ40-1が稼動状態にある端末コンピュータ10-1の利用を終了して、当該端末コンピュータ10-1をシャットダウンさせるための操作を行ったものとする。すると、イニシエータ・ポート12はシャットダウン処理の最後に、ユーザ40-1に固有のLUの解放するためのリリース要求を、ストレージ20に送出する(ステップS10)。リリース要求は、SCSIコマンドの1つである。リリース要求がストレージ20で受け付けられて、ユーザ40-1に固有のLUが解放されると、端末コンピュータ10-1は停止して、空いている状態となる。
次に、ストレージ20が端末コンピュータ10-1によって接続された際の当該ストレージ20の動作について、図4のフローチャートを参照して説明する。
まず、ストレージ20の管理者は、ユーザID毎に、当該ユーザIDと当該ユーザIDで特定されるユーザの作業環境が格納されたLUとの対応を示すLU管理テーブル223を、LUDB222内に予め設定しておく。
ここで、ストレージ20のターゲット・ポート21が、端末コンピュータ10-1側での上記ステップS4の実行により、当該端末コンピュータ10-1からイニシエータIDを用いて接続されたものとする。するとターゲット・ポート21は、この接続のイニシエータIDを特定する(ステップS11)。
ターゲット・ポート21は、端末コンピュータ10-1との接続状態において、この接続のイニシエータIDに対応するセッションを介して当該端末コンピュータ10-1から送られる要求(SCSIコマンド)を待つ(ステップS12)。この要求は、リザーブ要求、I/O要求及びリリース要求を含む複数の要求のいずれかである。
ターゲット・ポート21は端末コンピュータ10-1からの要求を受信すると(ステップS12のYes)、受信した要求に対応するタスクを生成する(ステップS13)。生成されたタスクには、受信した要求の要求元のイニシエータIDが含まれている。
イニシエータID分解部221は、タスクのイニシエータID、つまりステップS11で特定されたイニシエータIDからユーザIDを取り出す(ステップS14)。
LUマッピング機構22は、イニシエータID分解部221によって取り出されたユーザIDに基づいてLUDB222内のLU管理テーブル223を参照することにより、当該ユーザIDに対応するLU、即ち上記生成されたタスクの処理に必要な、当該ユーザIDで示されるユーザの作業環境を格納しているLUを特定する(ステップS15)。
リザベーション機構23は、上記生成されたタスクの処理に必要な特定されたLUが、当該タスクのイニシエータIDの示すイニシエータ(以下、該当イニシエータと称する)とは別のイニシエータによってリザーブされている特定状態にあるかを判定する(ステップS16)。このステップS16での判定の仕組みは従来から知られており、その詳細については、後述する。
もし、上記特定状態にある場合(ステップS16のYes)、リザベーション機構23は、ターゲット・ポート21を介して端末コンピュータ10-1にリザベーション・コンフリクトを応答(エラー応答)する(ステップS17)。このように、リザベーション機構23は、ステップS16での判定結果に基づき、別のイニシエータによってリザーブされている上記特定されたLUへの該当イニシエータからの要求を排他する。つまりリザベーション機構23は、端末コンピュータ10-1からのイニシエータIDを用いてのストレージ20内の上記特定されたLUへの接続を排他する。
これに対し、上記特定状態にない場合(ステップS16のNo)、リザベーション機構23はその旨をターゲット・ポート21に通知する。するとターゲット・ポート21は、上記生成されたタスク(つまり要求された処理)を、上記特定されたLUに格納されている作業環境で実行し(ステップS18)、しかる後に端末コンピュータ10-1に完了応答を返して当該タスクを終了する(ステップS19)。
このように第1の実施形態によれば、ユーザ40-1が端末コンピュータ10-1とは別の端末コンピュータを使用して、既に当該別の端末コンピュータからストレージ20に接続している状態で、つまりストレージ20内の当該ユーザ40-1に固有のLUをリザーブしている状態で、誤って端末コンピュータ10-1から当該LUにアクセスして、同一の作業環境を利用しようとした場合、端末コンピュータ10-1からのアクセスはエラーとなる。つまり、ストレージ20から端末コンピュータ10-1にリザベーション・コンフリクトによるエラーが応答される。これにより、たとえユーザ40-1が誤って並行して複数の端末コンピュータから同一の作業環境を利用しようとしたときでも、複数の端末コンピュータのいずれか1つのみが、その作業環境にアクセスできる。この結果、同一のLUに格納されている汎用のオペレーティング・システムが複数の端末コンピュータで並行して使用されるのを防止でき、当該汎用のオペレーティングシステムが誤動作して、データが破壊されるのを防止できる。
次に、上述のユーザ40-1が端末コンピュータ10-1を使用する場合の動作の詳細を、具体例を挙げて説明する。
まず、図1のストレージシステムが、例えば日本の全国に拠点が点在する会社のストレージシステムであり、ストレージ20は、この会社のデータセンタに置かれているものとする。この場合、ユーザ40-1〜40-Nは、上記の会社の社員である。
ユーザ(社員)40-1〜40-Nのそれぞれの作業環境は、ストレージ20が提供する、当該ユーザ40-1〜40-NのユーザIDに固有のLUに格納されている。このユーザ40-1〜40-NのユーザIDに固有のLUに格納される作業環境は、パーソナル・コンピューティング環境では、当該ユーザ40-1〜40-N占有のパーソナルコンピュータ(PC)に格納されていた作業環境を全て含むものとする。
ユーザ(社員)40-j(j=1,2,…N)は、全国の拠点にある任意の端末コンピュータ10-iをデータセンタにあるストレージ20に接続し、自分占有の作業環境を利用する。つまりユーザ40-jは、端末コンピュータ10-iが自分占有のPCであるように使用することができる。ユーザ40-jは、出張や移動で別の拠点へ行った場合にも、別の端末コンピュータから端末コンピュータ10-iと同様に自分占有の作業環境を利用することができる。
各拠点には、全社員の勤務形態に合わせて最適な数の端末コンピュータを配置することにより、会社全体の端末コンピュータの数Mを最適に抑えることができる。また端末コンピュータ10-1〜10-Mをディスクレス・コンピュータとすることにより情報漏洩のリスクを低減させることができる。
ところが、このようなストレージ・セントリックなコンピューティング環境では、ユーザ(社員)とコンピュータが多対多の関係(図1のストレージシステムでは、N:Mの関係)で対応する。このため、発明が解決しようとする課題の欄で述べたように、ユーザが誤って並行して複数の端末コンピュータから同一の作業環境を利用しようとしたときの排他性を考慮する必要がある。
第1の実施形態では、この排他性を、詳細を後述するように、同一ユーザIDのユーザが並行して複数の端末コンピュータを利用しても、イニシエータIDが異なること、つまり付加IDが異なることをもって実現している。
第1の実施形態では、SCSIプロトコルとしてiSCSIプロトコルが適用されるものとする。iSCSI規格では、イニシエータIDはiSCSI名に6バイトのISID(Initiator Session Identifier:イニシエータ・セッションID)を付加したものであると定められている。一方、時刻情報Tsは例えば5バイトであるものとする。
そこで第1の実施形態では、ユーザIDは、イニシエータIDのiSCSI名フィールドにセットされる。つまり、イニシエータIDのiSCSI名としてユーザIDが用いられる。また、付加IDには、予め定められた1バイトのヘッダ(例えば、0x80)に5バイトの時刻情報Txを連結した情報が用いられ、この付加ID(6バイト)が、イニシエータIDのISIDフィールドにセットされる。つまりイニシエータIDのISIDとして付加IDが用いられる。このイニシエータIDのデータフォーマットの例を図5に示す。
ストレージ20はiSCSIストレージである。ストレージ20のLUマッピング機構22は、イニシエータIDのうちiSCSI名にのみ着目してマッピングを行う。ストレージ20の管理者は、iSCSI名をユーザIDに読み替えて、当該ユーザIDのユーザ(社員)の作業環境を含むLUをマップするように事前に設定しておく。説明を簡素化するため、ユーザの作業環境は1つのLUに含まれているものとし、全てLUNが0(LUN=0)のLUにマップされるものとする。このLUN=0のLUは仮想LUである。
LUDB222に格納されるLU管理テーブル223は、iSCSI名、LUN及びLUIDの対応関係を表す情報を登録したテーブルとして実現される。LUIDは、対応するiSCSI名、つまりユーザIDのユーザに固有のLUを識別するIDである。このLUIDで特定されるLUは、LUN=0のLU(仮想LU)と異なり、実LUである。
LU管理テーブル223の例を図6に示す。図6のLU管理テーブル223の例では、iSCSI名としてとのユーザIDが“endo”のユーザ(社員)の作業環境はLUIDが2のLUに格納されている。このLUIDが2のLUは、端末コンピュータ10-iからアクセスされたときに、LUN=0の仮想LUにマップされる。
図6のLU管理テーブル223で示されるLUマッピングの例を図7に示す。このLUマッピングでは、イニシエータからは、対応するイニシエータIDに含まれているユーザIDに無関係に、LUN=0の仮想LUがアクセス先となる。実際にアクセスされるのは、iSCSI名としてとのユーザIDに対応付けられたLUIDによって示される実LUである。
ここで、ユーザIDが“endo”の社員がユーザ40-1であり、当該ユーザ40-1が空いている端末コンピュータ10-1の使用を開始した場合の動作について、図4のフローチャートを再び参照して説明する。
端末コンピュータ10-1のユーザID取得部111は、ユーザ40-1にユーザIDの入力を促し、当該ユーザ40-1のユーザIDとして“endo”(ユーザID=endo)を取得する(ステップS1)。
端末コンピュータ10-1の付加ID生成部112は、ユーザID=“endo”が取得された時点xの時刻情報Txを取得する(ステップS2)。付加ID生成部112は、時刻情報Txを引数として関数F()に適用することにより、付加IDとして、F(Tx)=0x80(1バイト)+Tx(5バイト)を生成する(ステップS3)。
端末コンピュータ10-1のイニシエータID生成部11は、ユーザID=“endo”と付加ID=0x80+Txとを連結することにより、イニシエータID=“endo”+0x80+Txを生成する(ステップS4)。ここでは、ユーザID=“endo”は、イニシエータIDのiSCSI名に対応し、付加ID=0x80+TxはイニシエータIDのISIDに対応する。
イニシエータ・ポート12は、生成されたイニシエータID=“endo”+0x80+Txを用いてストレージ20に接続を要求することにより、当該ストレージ20に接続する(ステップS5)。この接続の後、イニシエータ・ポート12は、LUN=0のLU(より詳細には、LUN=0の仮想LUにマッピングされた、上記接続に用いられたイニシエータIDのiSCSI名としてのユーザIDに対応する実LU)をリザーブするためのリザーブ要求を、ストレージ20に送出する(ステップS6)。
このリザーブ要求に対して、ストレージ20からリザベーション・コンフリクトが端末コンピュータ10-1に応答された場合(ステップS7のNo)、イニシエータ・ポート12は、LUN=0のLU(にマッピングされた実LU)が当該端末コンピュータ10-1以外の端末コンピュータを介して、当該端末コンピュータ10-1を利用しているユーザと同一のユーザによってリザーブされていると判断し、その旨のエラーメッセージを端末コンピュータ10-1のディスプレイに表示する。そしてイニシエータ・ポート12は、端末コンピュータ10-1を強制終了させる(ステップS8)。
これに対し、リザーブ要求が成功した場合(ステップS7のYes)、イニシエータ・ポート12は、LUN=0のLUは当該リザーブ要求に応じてリザーブされ、当該LUN=0のLU(仮想LU)にアクセス可能であると判断する。そこで、イニシエータ・ポート12はストレージ20に対してI/O要求を送出することにより、LUN=0の仮想LUにアクセスする(ステップS9)。ここでは、後述するように、イニシエータID中のユーザID=“endo”に固有の実LUがLUN=0の仮想LUにマッピングされている。このため、LUN=0の仮想LUにアクセスすることにより、ユーザID=“endo”に固有の実LU(LUID=2の実LU)にアクセスすることができる。
その後、ユーザ40-1が稼動状態にある端末コンピュータ10-1の利用を終了して、当該端末コンピュータ10-1をシャットダウンさせるための操作を行ったものとする。すると、イニシエータ・ポート12はシャットダウン処理の最後に、LUN=0の仮想LU(にマッピングされたユーザID=“endo”に固有の実LU)を解放するためのリリース要求を、ストレージ20に送出する(ステップS10)。リリース要求がストレージ20で受け付けられて、LUN=0の仮想LUが解放され、これにより当該仮想LUにマッピングされているユーザ40-1のユーザID=“endo”に固有の実LUが解放されると、端末コンピュータ10-1は停止して、空いている状態となる。
次に、端末コンピュータ10-1によって接続された際のストレージ20の動作について、図5のフローチャートを再び参照して説明する。
まず、ストレージ20の管理者は、図6に示すLU管理テーブル223を、LUDB222内に予め設定しておく。
ここで、ストレージ20のターゲット・ポート21が、ユーザID=“endo”のユーザ40-1が使用する端末コンピュータ10-1からの接続要求を受け付け、これにより端末コンピュータ10-1がストレージ20に接続されたものとする。するとターゲット・ポート21は、この接続のイニシエータID=“endo”+0x80+Txを特定する(ステップS11)。
ターゲット・ポート21は、端末コンピュータ10-1との接続状態において、当該端末コンピュータ10-1からの要求を待つ(ステップS12)。
ターゲット・ポート21は端末コンピュータ10-1からの要求を受信すると(ステップS12のYes)、受信した要求に対応するタスクを生成する(ステップS13)。
イニシエータID分解部221は、タスクのイニシエータID=“endo”+0x80+TxからiSCSI名として用いられているユーザID=“endo”を取り出す(ステップS14)。
LUマッピング機構22は、取り出されたユーザID=“endo”に基づいて、図6に示すLU管理テーブル223を参照することにより、ユーザID=“endo”に対応付けられている実LU、つまりLUID=2の実LUを特定する(ステップS15)。なお、端末コンピュータ10-1からLUN=0以外のLUN(ここでは0より大きいLUN)で指定されるLUへのアクセスが要求された場合には、ストレージ20から当該端末コンピュータ10-1に、周知の“LOGICAL UNIT NOT SUPPORTED“のエラーが応答される。
リザベーション機構23は、上記特定されたLU(実LU)が、該当イニシエータとは別のイニシエータによってリザーブされている特定状態にあるかを、後述する仕組みによって判定する(ステップS16)。
もし、上記特定状態にある場合(ステップS16のYes)、リザベーション機構23は、ターゲット・ポート21を介して端末コンピュータ10-1にリザベーション・コンフリクトを応答する(ステップS17)。
これに対し、上記特定状態にない場合(ステップS16のNo)、ターゲット・ポート21は、上記生成されたタスクを、上記特定されたLUに格納されている作業環境で実行し(ステップS18)、しかる後に端末コンピュータ10-1に完了応答を返して当該タスクを終了する(ステップS19)。
ここで、特定されたLUが、該当イニシエータとは別のイニシエータによってリザーブされている特定状態にあるかを判定する仕組みについて説明する。この仕組みは、別のイニシエータによってリザーブされている上記特定されたLUへの該当イニシエータからの要求を検出して排他する仕組みであるといえる。以下の説明では、端末コンピュータ10-1及び10-2が同一拠点に配置されているものとする。
まず、ユーザID=“endo”のユーザ40-1が、端末コンピュータ10-1とは異なる端末コンピュータ、例えば端末コンピュータ10-2を使用したままの状態で、つまり当該端末コンピュータ10-2を停止させずに、端末コンピュータ10-1を起動したものとする。この場合、上記特定状態が発生する。
ストレージ20のリザベーション機構23は、SCSI規格に準拠した周知のSCSIリザベーションの機能を有している。第1の実施形態においてリザベーション機構23は、このSCSIリザベーションの機能により、iSCSIのリザベーションの処理を実行する。即ちリザベーション機構23は、イニシエータからの要求に対して、当該イニシエータのイニシエータIDに基づいて排他を行う。このため、イニシエータIDのiSCSI名フィールドの内容が同じでも、ISIDフィールドの内容が異なっていれば、要求元は別のイニシエータであるとして排他が行われる。
ユーザID=“endo”のユーザ40-1が端末コンピュータ10-2の使用を開始した時点xaにおいて、当該端末コンピュータ10-2のイニシエータID生成部11によって生成されるイニシエータIDがイニシエータIDaであり、イニシエータIDa=“endo”+ヘッダ+Txaであるものとする。ヘッダは例えば0x80であり、Txaは、ユーザ40-1が端末コンピュータ10-2の使用を開始した時点xaの時刻情報である。
端末コンピュータ10-2のイニシエータ・ポート12は、上記イニシエータIDaを用いてストレージ20に接続し、しかる後にリザーブ要求に成功したものとする。この場合、LUID=2のLUがイニシエータIDa=“endo”+ヘッダ+Txaのイニシエータによってリザーブされる。この状態では、ユーザ40-1は、LUID=2のLUに格納されている自身の使用環境に、端末コンピュータ10-2からアクセスできる。
その後、ユーザ40-1が端末コンピュータ10-2を使用したまま、例えば時点xbで端末コンピュータ10-1の使用を開始したものとする。また、この時点xbにおいて、端末コンピュータ10-1のイニシエータID生成部11によって生成されるイニシエータIDがイニシエータIDbであり、イニシエータIDb=“endo”+ヘッダ+Txbであるものとする。ヘッダは0x80であり、Txbは、ユーザ40-1が端末コンピュータ10-1の使用を開始した時点xbの時刻情報である。
端末コンピュータ10-1のイニシエータ・ポート12は、上記イニシエータIDbを用いてストレージ20に接続した後、当該ストレージ20にリザーブ要求を送出する。
ストレージ20のLUマッピング機構22は、リザーブ要求元のイニシエータIDbに含まれているiSCSI名としてのユーザID=“endo”に基づいて、当該ユーザID=“endo”に固有のLU、つまりLUID=2のLUを特定する。このLUID=2のLUは、イニシエータIDa=“endo”+ヘッダ+Txaのイニシエータによってリザーブされている。
ストレージ20のリザベーション機構23は、上記特定されたLUID=2のLUが、当該LUID=2のLUのリザーブを要求しているイニシエータとは別のイニシエータによって既にリザーブされているかを判定する(ステップS15)。この判定は、上記特定されたLUID=2のLUのリザーブを要求しているイニシエータのイニシエータIDb=“endo”+ヘッダ+Txbが、当該LUID=2のLUをリザーブしているイニシエータのイニシエータIDa=“endo”+ヘッダ+Txaと異なっているかを調べることによって行われる。
ここでイニシエータIDb中のTxb及びイニシエータIDa中のTxaは、それぞれ、異なる時点xb及びxaの時刻情報である。したがってイニシエータIDb及びイニシエータIDaは、iSCSI名としてのユーザID=“endo”が同一であるにも拘わらずに、異なっている。そこでリザベーション機構23は、端末コンピュータ10-1からのリザーブ要求に対して、リザベーション・コンフリクトを応答する(ステップ17)。このように第1の実施形態では、ユーザ40-1が端末コンピュータ10-2を使用したままの状態で、別の端末コンピュータ10-1をストレージ20に接続した場合、後から接続された端末コンピュータ10-1からのリザーブ要求に対して、当該ストレージ20からリザベーション・コンフリクトが応答される。その結果、ユーザ40-1が端末コンピュータ10-2を使用したままの状態で、別の端末コンピュータ10-1を使用することを防止できる。これにより、例えば、ユーザID=“endo”のユーザ40-1に対応するLUID=2のLUに格納されている汎用のオペレーティング・システムが、端末コンピュータ10-1及び10-2で並行して使用されるのを防止できる。
なお、第1の実施形態では、説明の簡素化のために、ユーザの作業環境は1つのLU(実LU)に格納され、LUN=0にマップされることを想定している。しかし、ユーザの作業環境が複数のLUにまたがって格納されても、或いは0以外のLUNにマップされても構わない。
[第2の実施形態]
次に第2の実施形態に係るストレージシステムについて説明する。この第2の実施形態に係るストレージシステムの構成は、第1の実施形態と同様であるため、以下の説明では図1及び図2を援用する。
第2の実施形態が第1の実施形態と相違する点は、時点xの時刻情報Tx(5バイト)に代えて、時点xの乱数Rx(5バイト)を適用することにある。第2の実施形態で適用されるイニシエータIDのデータフォーマットの例を図8に示す。
以下、第2の実施形態において、第1の実施形態と同様に、ユーザID=“endo”のユーザ40-1が端末コンピュータ10-2を使用したままの状態で、端末コンピュータ10-1の使用を開始した場合の動作について、図3及び図4のフローチャートを参照して説明する。但し、図4のフローチャートのステップS2において、時刻情報Txを乱数Rxに置き換えられたい。
ユーザID=“endo”のユーザ40-1が端末コンピュータ10-2の使用を開始した時点xaにおいて、当該端末コンピュータ10-2のイニシエータID生成部11は、イニシエータIDa=“endo”+ヘッダ+Rxaを生成する(ステップS4)。Rxaは、ユーザ40-1が端末コンピュータ10-2の使用を開始した時点xaに生成される乱数である。
端末コンピュータ10-2のイニシエータ・ポート12は、上記イニシエータIDaを用いてストレージ20に接続し(ステップS5)、しかる後にリザーブ要求に成功したものとする(ステップS7のYes)。この場合、LUID=2のLUがイニシエータIDa=“endo”+ヘッダ+Rxaのイニシエータによってリザーブされる。この状態では、ユーザ40-1は、端末コンピュータ10-2からLUID=2のLUに格納されている自身の使用環境にアクセスできる。
その後、ユーザ40-1が端末コンピュータ10-2を使用したまま、時点xbで端末コンピュータ10-1の使用を開始したものとする。この場合、端末コンピュータ10-1のイニシエータID生成部11は、イニシエータIDb=“endo”+ヘッダ+Rxbを生成する(ステップS4)。Rxbは、ユーザ40-1が端末コンピュータ10-1の使用を開始した時点xbに生成される乱数である。
端末コンピュータ10-1のイニシエータ・ポート12は、上記イニシエータIDbを用いてストレージ20に接続した後(ステップS5)、当該ストレージ20にリザーブ要求を送出する(ステップS6)。
ストレージ20のLUマッピング機構22は、リザーブ要求元のイニシエータIDbに含まれているiSCSI名としてのユーザID=“endo”に基づいて、当該ユーザID=“endo”に固有のLU、つまりLUID=2のLUを特定する(ステップS15)。このLUID=2のLUは、イニシエータIDa=“endo”+ヘッダ+Rxaのイニシエータによってリザーブされている。
ストレージ20のリザベーション機構23は、上記特定されたLUID=2のLUのリザーブを要求しているイニシエータのイニシエータIDb=“endo”+ヘッダ+Rxbが、当該LUID=2のLUをリザーブしているイニシエータのイニシエータIDa=“endo”+ヘッダ+Rxaと異なっているかを判定する(ステップS16)。
ここでイニシエータIDb中のRxb及びイニシエータIDa中のRxaは、それぞれ、異なる時点xb及びxaに生成された乱数である。乱数Rxaと乱数Rxbとが一致する確率は相当小さいため(1兆分の1以下)、イニシエータIDaとイニシエータIDbとは異なっているものとして考えて実用上問題ない。そのため、上述の例では、後からストレージ20に接続された端末コンピュータ10-1からのリザーブ要求に対して、当該ストレージ20からリザベーション・コンフリクトが応答される(ステップS17)。
上記第1及び第2の実施形態の特徴を以下に整理して示す。
第1及び第2の実施形態において、端末コンピュータ10-iとストレージ20との間の接続にはiSCSI接続が用いられ、ストレージ20のリザベーション機構23及びLUマッピング機構22を利用して、LUへのアクセスに対する排他を実現している。これらはSCSI規格及び業界標準の技術として知られている。LUマッピング機構22の機能は業界標準の技術とは異なる。
第1及び第2の実施形態の第1の特徴は、イニシエータIDのデータ構造にある。つまり第1及び第2の実施形態の第1の特徴は、イニシエータIDのiSCSI名としてユーザIDを用いる一方、イニシエータIDのISIDとして、端末コンピュータ10-iの使用開始時点xにおける時刻情報Tx及び乱数Rxの一方を含む付加IDを用いている点にある。これにより同一ユーザが、複数の端末コンピュータ10-iからストレージ20に並行して接続したとしても、当該ユーザに固有のLUへのアクセスに対する排他を実現することができる。
また第1及び第2の実施形態の第2の特徴は、端末コンピュータ10-i側及びストレージ20側の設定において、当該端末コンピュータ10-iを識別するためのコンピュータIDを用いていない点にある。この第2の特徴について詳述する。
まず、イニシエータIDとして、ストレージ20に接続する端末コンピュータ10-iを識別するためのコンピュータIDを用いることができるものとする。この場合、同一ユーザ40-jが、複数の端末コンピュータ10-iからストレージ20に並行して接続したとしても、ストレージ20のリザベーション機構23及びLUマッピング機構22を利用して、当該ユーザ40-jに固有のLUへのアクセスに対する排他を実現できる。
イニシエータIDとして端末コンピュータ10-iのコンピュータIDを用いる場合、LUマッピングの対応は、コンピュータIDと、ユーザ40-jのユーザIDに固有のLUを示すLUIDとの対応となる。しかしストレージ・セントリックなコンピューティング環境では、ユーザ40-jは、端末コンピュータ10-1〜10-Mのうちの任意の端末コンピュータ10-iを使用することができる。このため、ストレージ20のLUマッピング機構22は、ユーザ40-jが使用する端末コンピュータ10-iを決定する都度、ユーザ40-jのユーザIDとコンピュータIDの対応を決定して、LUマッピングの対応もそれに合わせて設定し直さなければならない。
このように、イニシエータIDとして端末コンピュータ10-iのコンピュータIDを用いる場合、端末コンピュータ10-i及びストレージ20の少なくともストレージ20は、ユーザ40-jと端末コンピュータ10-iとの対応の変化を正しく把握して、LUマッピングに反映させる必要がある。しかし、ユーザ40-jと端末コンピュータ10-iとの対応の変化を正しく把握することは、ユーザ40-jと端末コンピュータ10-iとの対応が多様に変化する環境では難しい場合も多い。
しかも、第1及び第2の実施形態のように、端末コンピュータ10-iがディスクレス・コンピュータの場合、当該端末コンピュータ10-iからストレージ20にアクセスしてオペレーティングシステムを起動する以前には、当該端末コンピュータ10-iのコンピュータIDを取得できないおそれもある。したがって、イニシエータIDとして、コンピュータIDを適用することは難しい。
これに対して第1及び第2の実施形態で適用されるイニシエータIDは、ユーザ40-jが使用する端末コンピュータ10-iのコンピュータIDを含まないため、端末コンピュータ10-i及びストレージ20はユーザ40-jと端末コンピュータ10-iとの対応の変化を把握する必要はない。例えばストレージ20のLUマッピング機構22は、イニシエータIDのiSCSI名としてのユーザIDを取り出して、当該ユーザIDに基づいてLU管理テーブル224を参照するだけでよい。また、端末コンピュータ10-iは同一LUへのアクセスの排他のために、当該端末コンピュータ10-iのコンピュータIDを取得する必要がなく、排他のための実装が容易となる。
[第3の実施形態]
次に第3の実施形態に係るストレージシステムについて説明する。この第3の実施形態に係るストレージシステムの構成も、第1の実施形態と同様であるため、以下の説明では図1及び図2を援用する。
第3の実施形態が、第1及び第2の実施形態と相違する点は、次の通りである。まず、第1及び第2の実施形態では、ユーザ間の排他が、図6に示されるデータ構造のLU管理テーブル223を利用したLUマッピングに基づいて行われる。これに対し第3の実施形態では、ユーザ間の排他は、必ずしもLUマッピングで行われない。
図9は、第3の実施形態で適用されるLU管理テーブル224の例を示す。第3の実施形態では、このLU管理テーブル224がストレージ20のLUDB222に格納される。必要ならば、図2において、LU管理テーブル223をLU管理テーブル224に置き換えられたい。
図9に示すLU管理テーブル224の例では、ユーザIDが“endo”のユーザ(以下、ユーザ“endo”と称する)と、ユーザIDが“tanaka”のユーザ(以下、ユーザ“tanaka”と称する)は同一の作業環境を共有しており、当該作業環境はLUIDが2のLU(実LU)に格納されている。この場合、ストレージ20のリザベーション機構23は、ユーザ“endo”及びユーザ“tanaka”がそれぞれ使用を開始する端末コンピュータが異なる場合でも、その端末コンピュータを、ユーザ“endo”及びユーザ“tanaka”が並行して使えないように排他を行う必要がある。
以下、第3の実施形態において、ユーザ“endo”が端末コンピュータ10-1を既に使用している状態で、ユーザ“tanaka”が端末コンピュータ10-2を起動した場合の動作を説明する。ここで、ユーザ“endo”がユーザ40-1で、ユーザ“tanaka”がユーザ40-2であるものとする。
ユーザ“endo”(ユーザ40-1)が端末コンピュータ10-1の使用を開始した時点xaにおいて、当該端末コンピュータ10-1のイニシエータID生成部11は、イニシエータIDa=“endo”+付加IDxを生成する。付加IDxは、時点xaの時刻情報Txa及び時点xaに生成される乱数Rxaの少なくとも一方を含む。
端末コンピュータ10-1のイニシエータ・ポート12は、上記イニシエータIDaを用いてストレージ20に接続し、しかる後にリザーブ要求に成功したものとする。この場合、LUID=2のLUがイニシエータIDa=“endo”+付加IDaのイニシエータによってリザーブされる。
その後、ユーザ“endo”が端末コンピュータ10-1を使用している状態で、ユーザ“tanaka”(ユーザ40-2)が、時点xbで端末コンピュータ10-2の使用を開始したものとする。この場合、端末コンピュータ10-2のイニシエータID生成部11は、イニシエータIDb=“endo”+付加IDbを生成する。付加IDbは、時点xbの時刻情報Txb及び時点xbに生成される乱数Rxbの少なくとも一方を含む。
端末コンピュータ10-2のイニシエータ・ポート12は、上記イニシエータIDbを用いてストレージ20に接続した後、当該ストレージ20にリザーブ要求を送出する。
ストレージ20のLUマッピング機構22は、リザーブ要求元のイニシエータIDbに含まれているiSCSI名としてのユーザID=“tanaka”に基づいてLU管理テーブル224を参照することにより、当該ユーザID=“tanaka”に対応するLU、つまりLUID=2のLUを特定する。このLUID=2のLUは、イニシエータIDa=“endo”+付加IDaのイニシエータによってリザーブされている。
ストレージ20のリザベーション機構23は、上記特定されたLUID=2のLUのリザーブを要求しているイニシエータのイニシエータIDb=“tanaka”+付加IDbが、当該LUID=2のLUをリザーブしているイニシエータのイニシエータIDa=“endo”+付加IDaと異なっているかを判定する。
ここでユーザID=“tanaka”とユーザID=“endo”とは異なることから、イニシエータIDbとイニシエータIDaとは異なる。そのため、後からストレージ20に接続された端末コンピュータ10-1からのリザーブ要求に対して、当該ストレージ20からリザベーション・コンフリクトが応答される。その結果、ユーザ“tanaka”は、ユーザ“endo”が端末コンピュータ10-1を停止させるまで、端末コンピュータ10-2を使用することができない。これにより、ユーザ“tanaka”及び“endo”が共有するLUID=2のLUへのアクセスの、当該ユーザ“tanaka”及び“endo”の間の排他を実現できる。
第3の実施形態では、ユーザ“tanaka”及び“endo”が作業環境を共有しているにも拘わらず、別々のユーザIDを用いている。この利点は2つある。第1の利点は、セキュリティとして別々のパスワードを設定できることにある。第2の利点は、付加IDが偶然一致する可能性を回避する点にある。第1及び第2の実施形態では、同一のユーザが、2つの端末コンピュータ、例えば端末コンピュータ10-1及び10-2を誤って同時に使用開始することは考えられないが、例えば2人のユーザ“tanaka”及び“endo”が、それぞれ、例えば端末コンピュータ10-1及び10を同時に使用開始することは十分あり得る。
第3の実施形態によれば、ユーザ間の排他をLUマッピングで必ずしも行わない構成にも、上述の構造のイニシエータIDに基づくユーザ間の排他を実現することができる。しかも、ユーザ間の排他のために、ユーザが使用する端末コンピュータ10-iのコンピュータIDを取得する必要がなく、排他のための実装が容易となる。
[第4の実施形態]
次に第4の実施形態に係るストレージシステムについて説明する。この第4の実施形態に係るストレージシステムの構成も、第1の実施形態と同様であるため、以下の説明では図1及び図2を援用する。
第4の実施形態の特徴は、ユーザIDに対応付けられるLUIDは予め定められておらず、ユーザ40-jが使用する端末コンピュータ10-iがストレージ20に接続して、リザーブ要求を送出した際に、当該ユーザ40-jのユーザIDに対応付けるLUIDが決定される動的マッピングを適用した点にある。この場合、ストレージ20のLUマッピング機構22は、例えば記憶部24に予め用意されているLUの集合の中から、LU管理テーブル223にLUIDが未登録のLU、つまり空き状態にあるLUを探す。LUマッピング機構22は、この探し求めたLUのLUIDを、ユーザ40-jのユーザIDに対応付けて、LU管理テーブル223に登録する。
リザベーション機構23は、ユーザ40-jが使用する端末コンピュータ10-iからストレージ20に対してリリース要求が送出された場合、当該ユーザ40-jのユーザIDに対応付けられたLUIDの示すLUを解放する。この場合、LUマッピング機構22は、解放されたLUのLUIDと当該ユーザ40-jのユーザIDとの対応を示す情報をLU管理テーブル223から削除する。
ここで、ユーザ40-jの操作に従い、比較的短い時間の経過後に、端末コンピュータ10-iまたは別の端末コンピュータがびストレージ20に接続して、リザーブ要求を再び送出する場合を考慮して、上記LUの解除から一定時間を待ってから、上述の情報削除が行われるようにしてもよい。また、この情報削除が、端末コンピュータとストレージ20との接続状態が解除された際に、一定時間を待って行われてもよい。
また第4の実施形態では、ユーザ40-jのユーザIDに対応付けてLUIDがLU管理テーブル223に登録されている場合、リザベーション機構23は、第1または第2の実施形態と同様に、当該LUIDのLUが別のイニシエータによってリザーブされているかを判定する。これにより、第4の実施形態においても、同一ユーザが、複数の端末コンピュータ10-iからストレージ20に並行して接続したとしても、当該ユーザに動的に割り当てられたLUへのアクセスに対する排他を実現することができる。
また第4の実施形態によれば、記憶部24に予め用意されているLUを効率的にユーザに割り当てることができる。第4の実施形態は、ストレージ20内のLUに端末コンピュータ10-iからリードアクセスのみが行われるようなストレージシステム、或いは端末コンピュータ10-iとストレージ20との接続状態を解除する都度、当該接続状態において端末コンピュータ10-iからLUに書かれたデータファイル等が初期化されるようなストレージシステムに適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10-1〜10-M,10-i…端末コンピュータ、11…イニシエータID生成部、12…イニシエータ・ポート、20…ストレージ、21…ターゲット・ポート、22…LUマッピング機構(論理ユニットマッピング機構、論理ユニット特定手段)、23…リザベーション機構、24…記憶部、111…ユーザID取得部、112…付加ID生成部、221…イニシエータID分解部(ユーザID取り出し手段)、222…LUDB(LUデータベース)、223,224…LU管理テーブル。

Claims (8)

  1. 複数のユーザのそれぞれの作業環境を格納した複数の論理ユニットを備え、前記複数のユーザがいずれも利用可能な複数の端末コンピュータからSCSIプロトコルを適用するネットワークを経由してアクセス可能なストレージにおいて、
    ユーザによる前記複数の端末コンピュータのうちの任意の端末コンピュータの使用開始時に前記任意の端末コンピュータが取得した、当該ユーザを識別するユーザIDと前記使用開始時点に対応した時刻情報及び乱数の少なくとも一方に基づいて生成された付加IDと含むイニシエータIDを用いて、前記任意の端末コンピュータが前記ストレージに接続した場合に、前記接続に用いたイニシエータIDを特定し、当該イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから送られる要求を待つターゲット・ポートと、
    前記複数の端末コンピュータを利用可能な各ユーザのユーザIDと、当該ユーザIDで識別されるユーザが利用可能な論理ユニットを識別する論理ユニットIDとの対応を示す論理ユニット管理情報を記憶した論理ユニット管理情報記憶手段と、
    前記イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから要求が送られた場合、当該イニシエータIDから前記ユーザIDを取り出すユーザID取り出し手段と、
    前記取り出されたユーザID及び前記論理ユニット管理情報に基づいて、前記取り出されたユーザIDに対応する論理ユニットを特定する論理ユニット特定手段と、
    前記特定された論理ユニットが、前記取り出されたユーザIDに対応するイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされている場合、前記別のイニシエータのイニシエータIDが、前記取り出されたユーザIDに一致するユーザIDを含んでいても、前記要求に対する応答としてエラーを示すリザベーション・コンフリクトを要求元に返すリザベーション手段と
    を具備するストレージ。
  2. 前記SCSIプロトコルがiSCSIプロトコルであり、
    前記イニシエータIDに含まれている前記ユーザIDは、iSCSI規格で定められたイニシエータIDのiSCSI名フィールドに設定され、前記付加IDは前記iSCSI規格で定められたイニシエータIDのイニシエータ・セッションIDフィールドに設定されている
    請求項1記載のストレージ。
  3. 前記付加IDは前記時刻情報を含む請求項1または2記載のストレージ。
  4. 前記付加IDは前記乱数を含む請求項1または2記載のストレージ。
  5. 前記付加IDは前記時刻情報及び前記乱数を含む請求項1または2記載のストレージ。
  6. 複数のユーザのそれぞれの作業環境を格納した複数の論理ユニットを備えた、SCSIリザベーション機能を有するストレージに対し、SCSIプロトコルを適用するネットワークを経由してアクセス可能な端末コンピュータにおいて、
    前記ストレージに対して前記ネットワークを経由してアクセス可能な、前記端末コンピュータ及び前記端末コンピュータとは別の端末コンピュータのうちの、前記端末コンピュータのユーザによる使用開始時に、当該ユーザの操作に基づき当該ユーザを識別するユーザIDを取得するユーザID取得手段と、
    前記使用開始時点の時刻情報及び乱数の少なくとも一方を取得して、当該取得された少なくとも一方に基づいて、前記取得されたユーザIDに付加されるべき付加IDを生成し、前記取得されたユーザIDに前記生成された付加IDが付加されたイニシエータIDを生成するイニシエータID生成手段と、
    前記生成されたイニシエータIDを用いて前記ストレージに接続し、この接続状態で当該イニシエータIDに対応するセッションを介して前記ストレージに要求を送出するイニシエータ・ポートであって、当該イニシエータIDに含まれているユーザIDに対応する論理ユニットが、当該イニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされているために、当該イニシエータID及び前記別のイニシエータのイニシエータIDが、同一ユーザIDを含んでいても、前記要求に対する応答として前記ストレージからエラーを示すリザベーション・コンフリクトが返された場合、前記端末コンピュータを強制終了させるイニシエータ・ポートと
    を具備する端末コンピュータ。
  7. 複数のユーザの各々が利用可能な複数の端末コンピュータと、
    前記複数のユーザのそれぞれの作業環境を格納した複数の論理ユニットを備え、前記複数の端末コンピュータからSCSIプロトコルを適用するネットワークを経由してアクセス可能なストレージとを具備し、
    前記複数の端末コンピュータの各々は、
    ユーザによる前記端末コンピュータの使用開始時に、当該ユーザの操作に基づき当該ユーザを識別するユーザIDを取得するユーザID取得手段と、
    前記使用開始時点の時刻情報及び乱数の少なくとも一方を取得して、当該取得された少なくとも一方に基づいて、前記取得されたユーザIDに付加されるべき付加IDを生成し、前記取得されたユーザIDに前記生成された付加IDが付加されたイニシエータIDを生成するイニシエータID生成手段と、
    前記生成されたイニシエータIDを用いて前記ストレージに接続し、この接続状態で当該イニシエータIDに対応するセッションを介して要求を送出するイニシエータ・ポートとを具備し、
    前記ストレージは、
    前記端末コンピュータの前記イニシエータ・ポートが、前記生成されたイニシエータIDを用いて前記ストレージに接続した場合に、前記接続に用いたイニシエータIDを特定し、当該イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから送られる要求を待つターゲット・ポートと、
    前記複数のユーザのユーザIDと、当該ユーザIDで識別されるユーザが利用可能な論理ユニットを識別する論理ユニットIDとの対応を示す論理ユニット管理情報を記憶した論理ユニット管理情報記憶手段と、
    前記イニシエータIDに対応するセッションを介して前記任意の端末コンピュータから要求が送られた場合、当該イニシエータIDから前記ユーザIDを取り出すユーザID取り出し手段と、
    前記取り出されたユーザID及び前記論理ユニット管理情報に基づいて、前記取り出されたユーザIDに対応する論理ユニットを特定する論理ユニット特定手段と、
    前記特定された論理ユニットが、前記取り出されたユーザIDに対応するイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされている場合、前記別のイニシエータのイニシエータIDが、前記取り出されたユーザIDに一致するユーザIDを含んでいても、前記要求に対する応答としてエラーを示すリザベーション・コンフリクトを要求元に返すリザベーション手段とを具備し、
    前記要求元の前記イニシエータ・ポートは、前記要求に対する応答として前記リザベーション・コンフリクトが返された場合、対応する前記端末コンピュータを強制終了させる
    ストレージシステム。
  8. 複数のユーザの各々が利用可能な複数の端末コンピュータと、前記複数のユーザのそれぞれの作業環境を格納した複数の論理ユニットを備え、前記複数の端末コンピュータからSCSIプロトコルを適用するネットワークを経由してアクセス可能なストレージとを具備するストレージシステムに適用される、同一ユーザの操作により前記複数の端末コンピュータのうちの第1の端末コンピュータ及び第2の端末コンピュータが前記ストレージに接続されている状態における排他的接続方法であって、
    ユーザによる前記第1の端末コンピュータの使用開始時に、前記第1の端末コンピュータが、当該ユーザの操作に基づき当該ユーザを識別するユーザIDを取得するステップと、
    前記第1の端末コンピュータが、前記使用開始時点の時刻情報及び乱数の少なくとも一方を取得するステップと、
    前記取得された少なくとも一方に基づいて、前記第1の端末コンピュータが、前記取得されたユーザIDに付加されるべき付加IDを生成するステップと、
    前記取得されたユーザIDに前記生成された付加IDが付加されたイニシエータIDを、前記第1の端末コンピュータが生成するステップと、
    前記生成されたイニシエータIDを用いて前記第1の端末コンピュータが前記ストレージに接続するステップと、
    前記生成されたイニシエータIDを用いて前記第1の端末コンピュータが前記ストレージに接続されている状態で、当該イニシエータIDに対応するセッションを介して前記第1の端末コンピュータが前記ストレージに要求を送出するステップと、
    前記イニシエータIDに対応するセッションを介して前記第1の端末コンピュータから送出された要求を受信した前記ストレージが、当該イニシエータIDから前記ユーザIDを取り出すステップと、
    前記ストレージに備えられている、前記複数のユーザのユーザIDと、当該ユーザIDで識別されるユーザが利用可能な論理ユニットを識別する論理ユニットIDとの対応を示す論理ユニット管理情報を記憶した論理ユニット管理情報記憶手段と、前記取り出されたユーザIDとに基づいて、前記取り出されたユーザIDに対応する論理ユニットを、前記ストレージが特定するステップと、
    前記特定された論理ユニットが、前記取り出されたユーザIDに対応するイニシエータIDの示すイニシエータとは別のイニシエータによってリザーブされているかを、前記ストレージが判定するステップと、
    前記特定された論理ユニットが、前記別のイニシエータによってリザーブされている場合、前記第1の端末コンピュータの使用を開始したユーザが、既に前記第2の端末コンピュータの使用を開始しているために、前記取り出されたユーザIDに一致するユーザIDが前記別のイニシエータのイニシエータIDに含まれていても、前記要求に対する応答としてエラーを示すリザベーション・コンフリクトを前記ストレージから前記第1の端末コンピュータに返すステップと、
    前記リザベーション・コンフリクトを受けて前記第1の端末コンピュータが強制終了するステップと
    を具備する排他的接続方法。
JP2010143111A 2010-06-23 2010-06-23 ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法 Pending JP2012008737A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010143111A JP2012008737A (ja) 2010-06-23 2010-06-23 ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010143111A JP2012008737A (ja) 2010-06-23 2010-06-23 ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法

Publications (1)

Publication Number Publication Date
JP2012008737A true JP2012008737A (ja) 2012-01-12

Family

ID=45539217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010143111A Pending JP2012008737A (ja) 2010-06-23 2010-06-23 ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法

Country Status (1)

Country Link
JP (1) JP2012008737A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210439A (ja) * 1993-12-03 1995-08-11 Hitachi Ltd 記憶装置
JPH1198162A (ja) * 1997-09-18 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> 連続データアクセス方法
JP2002123474A (ja) * 2000-10-12 2002-04-26 Tadayoshi Kadani インターネットとインターネットメールを使用した情報処理システム
JP2007272792A (ja) * 2006-03-31 2007-10-18 Toshiba Corp ストレージシステム、当該ストレージシステムに用いられるストレージ及びアクセス制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210439A (ja) * 1993-12-03 1995-08-11 Hitachi Ltd 記憶装置
JPH1198162A (ja) * 1997-09-18 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> 連続データアクセス方法
JP2002123474A (ja) * 2000-10-12 2002-04-26 Tadayoshi Kadani インターネットとインターネットメールを使用した情報処理システム
JP2007272792A (ja) * 2006-03-31 2007-10-18 Toshiba Corp ストレージシステム、当該ストレージシステムに用いられるストレージ及びアクセス制御方法

Similar Documents

Publication Publication Date Title
US9348631B2 (en) File mapping and converting for dynamic disk personalization for multiple platforms
CN108287669B (zh) 数据存储方法、装置及存储介质
CN107924289B (zh) 计算机系统和访问控制方法
US20200364075A1 (en) Blockchain network transaction processing method, apparatus, device, and storage medium
US9584481B2 (en) Host providing system and communication control method
US20080077752A1 (en) Storage system and audit log management method
CN104954451B (zh) 一种虚拟化环境下usb设备的访问控制方法
JP4512179B2 (ja) ストレージ装置及びそのアクセス管理方法
US20130290619A1 (en) Apparatus and Method for Sequential Operation on a Random Access Device
US8499056B2 (en) Remote USB system for supporting multiple virtual machines of multiple host and method thereof
WO2015114745A1 (ja) 計算機及び計算機のi/o制御方法
JP2003271429A (ja) 記憶装置資源管理方法、記憶資源管理プログラム、該プログラムを記録した記録媒体、及び記憶資源管理装置
JP4285058B2 (ja) ネットワーク管理プログラム、管理計算機及び管理方法
US20100146240A1 (en) Method, Application System and Storage Device for Managing Application Configuration Information
WO2017084348A1 (zh) Ip硬盘的管理方法和装置
JP5381713B2 (ja) 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
US8706997B2 (en) Storage device, access control program recording medium, and control method of storage device
US7386622B2 (en) Network converter and information processing system
JP4504329B2 (ja) ストレージシステム、当該ストレージシステムに用いられるストレージ及びアクセス制御方法
JP2019204343A (ja) 計算機システム及びリソースアクセス制御方法
US20110170674A1 (en) Apparatus, a mediating method, a program thereof and a system
US10698758B2 (en) Data transfer device, data transfer method, and non-transitory computer readable medium
JP2012008737A (ja) ストレージ、同ストレージを備えたストレージシステム及び同ストレージシステムにおける排他的接続方法
CN108628862A (zh) 数据库寻址方法、装置和系统
JP5750169B2 (ja) 計算機システム、プログラム連携方法、及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121211