JP6247792B2 - ストレージ装置及びその制御方法 - Google Patents

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

Info

Publication number
JP6247792B2
JP6247792B2 JP2017508934A JP2017508934A JP6247792B2 JP 6247792 B2 JP6247792 B2 JP 6247792B2 JP 2017508934 A JP2017508934 A JP 2017508934A JP 2017508934 A JP2017508934 A JP 2017508934A JP 6247792 B2 JP6247792 B2 JP 6247792B2
Authority
JP
Japan
Prior art keywords
command
logical
logical unit
unit
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.)
Expired - Fee Related
Application number
JP2017508934A
Other languages
English (en)
Other versions
JPWO2016157421A1 (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
Publication of JPWO2016157421A1 publication Critical patent/JPWO2016157421A1/ja
Application granted granted Critical
Publication of JP6247792B2 publication Critical patent/JP6247792B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、ストレージ装置及びその制御方法に関し、特に、I/O(Input/Output)コマンドの処理方式としてLDEV(Logical Device)オーナ権を適用した処理方式が採用され、論理ユニット(LU:Logical Unit)の管理方式としてコングロメリットLUN(Conglomerate LUN)方式が採用されたストレージ装置に適用して好適なものである。
近年、IT(Information Technology)技術の進歩に伴い、ストレージ装置に要求される応答性能も日々高くなってきている。このような要求に答えるため、近年では、上位装置からのI/Oコマンドを処理するプロセッサを複数搭載したストレージ装置が数多く登場している。
従来、このようなストレージ装置におけるI/Oコマンドの処理方式として、コマンドデバイスを用いた処理方式がある(例えば、特許文献1参照)。
この処理方式が適用された情報処理システムでは、上位装置がデータをリード/ライトする論理ユニットとは別にコマンドデバイスと呼ばれる論理ユニットがストレージ装置内に設けられ、上位装置はストレージ装置に対するコマンドをデータとしてそのコマンドデバイスに書き込む。
そしてストレージ装置側では、コマンドデバイスに書き込まれたコマンドを、複数のプロセッサのうち、そのときそのコマンドを実行可能なプロセッサがコマンドデバイスから読み出して実行する。
特開2002−209149号公報
ところで、近年、I/Oコマンドの処理方式として、後述するLDEV(Logical Device)オーナ権を適用した処理方式が提案されており、また論理ユニットの管理方式として、後述するコングロメリットLUN方式などが提案されている。
このようなLDEVオーナ権を適用したI/Oコマンドの処理方式及びコングロメリットLUN方式を共に採用したストレージ装置では、後述のようにストレージ装置内でI/Oコマンドの不要な転送が発生し、I/Oコマンドに対する応答性能が低下するという課題がある。
本発明は以上の点を考慮してなされたもので、I/Oコマンドに対する応答性能の低下を有効に防止し得るストレージ装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明の一実施形態においては、複数の記憶デバイスを有し、各前記記憶デバイスがそれぞれ提供する記憶領域を1つのプールとして管理し、前記プールの一部を切り出した論理デバイスを論理ユニットと対応付けて、当該論理ユニットを上位装置に記憶領域として提供するストレージ装置において、前記上位装置との間でコマンド及びデータを送受するチャネル制御部と、それぞれ前記上位装置からのコマンドを処理する複数のコマンド処理部とを設け、前記論理デバイスごとに、当該論理デバイスのオーナ権を有する前記コマンド処理部が予めそれぞれ設定され、前記論理デバイスと対応付けられた前記論理ユニットを対象とする前記上位装置からの前記コマンドを、当該論理ユニットの前記オーナ権を有する前記コマンド処理部が実行し、複数の前記論理ユニットが1つのグループとして管理されると共に、当該グループ内の1つの前記論理ユニットが当該グループを代表する論理ユニットとして定義され、前記グループを代表する前記論理ユニットを対象とする前記コマンドのフォーマットと、当該論理ユニット以外の当該グループ内の前記論理ユニットを対象とする前記コマンドのフォーマットとが異なり、前記チャネル制御部は、前記上位装置から与えられた前記コマンドのフォーマットを解析し、解析結果に基づいて、当該コマンドが対象とする前記論理ユニットが、前記グループ内の当該論理ユニットを代表する前記論理ユニット以外の前記論理ユニットである場合には、当該コマンドの対象となる前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部に当該コマンドを転送するようにした。
また本発明の一実施形態においては、複数の記憶デバイスを有し、各前記記憶デバイスがそれぞれ提供する記憶領域を1つのプールとして管理し、前記プールの一部を切り出した論理デバイスを論理ユニットと対応付けて、当該論理ユニットを上位装置に記憶領域として提供するストレージ装置の制御方法であって、前記ストレージ装置は、前記上位装置との間でコマンド及びデータを送受するチャネル制御部と、それぞれ前記上位装置からのコマンドを処理する複数のコマンド処理部とを有し、前記論理デバイスごとに、当該論理デバイスのオーナ権を有する前記コマンド処理部が予めそれぞれ設定され、前記論理デバイスと対応付けられた前記論理ユニットを対象とする前記上位装置からの前記コマンドを、当該論理ユニットの前記オーナ権を有する前記コマンド処理部が実行し、複数の前記論理ユニットが1つのグループとして管理されると共に、当該グループ内の1つの前記論理ユニットが当該グループを代表する論理ユニットとして定義され、前記グループを代表する前記論理ユニットを対象とする前記コマンドのフォーマットと、当該論理ユニット以外の当該グループ内の前記論理ユニットを対象とする前記コマンドのフォーマットとが異なり、前記チャネル制御部が、前記上位装置から与えられた前記コマンドのフォーマットを解析する第1のステップと、前記チャネル制御部が、解析結果に基づいて、当該コマンドが対象とする前記論理ユニットが、前記グループ内の当該論理ユニットを代表する前記論理ユニット以外の前記論理ユニットである場合には、当該コマンドの対象となる前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部に当該コマンドを転送する第2のステップとを設けるようにした。
本発明の一実施形態によれば、I/Oコマンドに対する応答性能の低下を有効に防止し得るストレージ装置及びその制御方法を実現できる。
本実施の形態による情報処理システムの全体構成を示すブロック図である。 第1及び第2のストレージ装置の論理構成及びLDEVオーナ権の説明に供する概念図である。 ホストターゲット用MPPK検索テーブルの構成を示す概念図である。 ストレージ装置間I/OコマンドMPPK検索テーブルの構成を示す概念図である。 LDEVオーナ権に関する処理の流れの説明に供する概念図である。 LDEVオーナ権に関する処理の流れの説明に供する概念図である。 LDEVオーナ権に関する処理の流れの説明に供する概念図である。 ロジカル・ユニット・コングロメリットの説明に供する概念図である。 ロジカル・ユニット・コングロメリットの説明に供する概念図である。 (A)はALU−SLU関連テーブルの構成を示す概念図であり、(B)はALU−LDEV関連テーブルの構成を示す概念図である。 I/O対象としてALU等を指定したI/OコマンドのLUNフォーマットを示す概念図である。 I/O対象としてSLUを指定したI/OコマンドのLUNフォーマットを示す概念図である。 ローカルルータにより実行されるI/Oコマンド転送処理の処理手順を示すフローチャートである。 SLUに対するI/Oコマンドが競合する場合のI/O処理の説明に供する概念図である。 優先度管理テーブルの構成を示す概念図である。 ALUごとのキューの説明に供する概念図である。 SLUに対するI/Oコマンドが競合する場合の処理方法の説明に供する概念図である。
以下図面について、本実施の形態を詳述する。
(1)本実施の形態による情報処理システムの構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、ホスト計算機2と、第1及び第2のストレージ装置3A,3Bとを備えて構成されている。
ホスト計算機2は、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト計算機2は、ネットワーク4を介して第1のストレージ装置3Aと接続されており、当該第1のストレージ装置3Aに対してリードコマンドやライトコマンドなどのI/Oコマンドを送信することにより、所望するデータを第1のストレージ装置3Aにリード/ライトする。
第1及び第2のストレージ装置3A,3Bは、1又は複数のチャネル制御部10、1又は複数のディスク制御部11、接続部12、キャッシュメモリ13、及び、複数のマイクロプロセッサパッケージ14と、各ディスク制御部11にそれぞれ接続された1又は複数の記憶デバイス15とを備えて構成される。
チャネル制御部10は、ホスト計算機2や自ストレージ装置以外の他のストレージ装置(第2又は第1のストレージ装置3B,3A)との通信時におけるインタフェースとして機能するハードウェアであり、1又は複数のポート10Aと、マイクロプロセッサ20、ポート制御部21、ローカルルータ22及びバッファメモリ23とを備える。
各ポート10Aには、それぞれIP(Internet Protocol)アドレスやWWN(World Wide Name)などの固有のアドレスが割り当てられる。第1及び第2のストレージ装置3A,3Bに対するアクセスは、アクセス元に許可された特定のポート10Aのアドレスを指定して行われる。
マイクロプロセッサ20は、チャネル制御部10全体としての動作制御を司る機能を有するハードウェアであり、制御プログラム24を実行することによりチャネル制御部10全体としての各種処理が行われる。またポート制御部21は、ホスト計算機2との通信時におけるプロトコル制御を行うインタフェースである。
ローカルルータ22は、マイクロプロセッサ20が制御プログラム24を実行することにより具現化される仮想的なルータであり、受信したI/Oコマンドを適切なマイクロプロセッサパッケージ14に転送するI/Oコマンド転送機能を有する。なお「適切なマイクロプロセッサパッケージ」の詳細については、後述する。さらにバッファメモリ23は、チャネル制御部10及びホスト計算機2間におけるデータ転送時のデータバッファとして利用される。このバッファメモリ23には、後述する各種の制御情報25も格納される。
ディスク制御部11は、記憶デバイス15に対するインタフェースとして機能するハードウェアである。ディスク制御部11は、チャネル制御部10を介して与えられるホスト計算機2からのI/Oコマンドに基づいて対応する記憶デバイス15にアクセスし、当該記憶デバイス15内のそのI/Oコマンドにおいて指定された記憶領域にデータをリード/ライトする。
接続部12は、例えば超高速クロスバススイッチなどから構成され、すべてのチャネル制御部10、ディスク制御部11、キャッシュメモリ13及びマイクロプロセッサパッケージ14が接続される。これらチャネル制御部10、ディスク制御部11、キャッシュメモリ13及びマイクロプロセッサパッケージ14間におけるデータや各種コマンドの授受は、この接続部12を介して行われる。
キャッシュメモリ13は、それぞれ1又は複数の半導体記憶素子(例えばDRAM(Dynamic Random Access Memory))から構成される。キャッシュメモリ13には、ホスト計算機2からのI/Oコマンドに基づいてチャネル制御部10及びディスク制御部11間でやり取りされるデータ(つまり記憶デバイス15にリード/ライトされるデータ)が一時的に格納される。
マイクロプロセッサパッケージ14は、メモリコントローラハブ30及びローカルメモリ31と、複数のマイクロプロセッサ32とを備えて構成される。メモリコントローラハブ30は、複数のマイクロプロセッサ32をローカルメモリ31に接続するハブである。またローカルメモリ31は、例えば、制御プログラム(マイクロプログラム)33を保持するために利用される。
マイクロプロセッサ32は、その第1又は第2のストレージ装置3A,3B全体の動作制御を司る機能を有するハードウェアである。マイクロプロセッサ32は、メモリコントローラハブ30を介してローカルメモリ31から制御プログラム(マイクロプログラム)33を読み出し、当該制御プログラム33に従って、チャネル制御部10及び接続部12を介して与えられる上位装置(第1のストレージ装置3Aの場合にはホスト計算機2、第2のストレージ装置3Bの場合には第1のストレージ装置3A)からのI/Oコマンドを処理する。なおI/Oコマンドの処理は、複数のマイクロプロセッサ32のうち、そのときそのI/Oコマンドを処理可能な余裕のあるマイクロプロセッサ32が実行する。
記憶デバイス15は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスクや、SATA(Serial AT Attachment)ディスク又は光ディスク等の安価なディスクなどから構成される。
図2に示すように、1又は複数の記憶デバイス15がそれぞれ提供する記憶領域がプール40と呼ばれる1つの記憶領域として管理され、プール40上の一部領域が切り出されて論理デバイス(以下、LDEV(Logical Device)と呼ぶ)41として管理される。そして、これらのLDEV41がそれぞれそのLDEV41と同じ容量を有する論理ユニット42と対応付けられ、これらの論理ユニット42がホスト計算機2に記憶領域として提供される。なお、同一のホスト計算機2に割り当てられた複数の論理ユニット42がホストグループ43として管理される。
各論理ユニット42には、それぞれ固有の識別子(LUN)が付与される。そして各論理ユニット42に対するデータのリード/ライトは、このLUNと、論理ユニット42内の所定大きさのブロック(以下、これを論理ブロックと呼ぶ)にそれぞれ付与されたその論理ブロックに固有の番号(LBA:Logical Block Address)とを組み合わせたものをアドレスとして、当該アドレスをI/Oコマンドで指定することにより行われる。なお論理ユニット42へのデータのリード/ライトは、実際には、その論理ユニット42と対応付けられたLDEV41内のI/Oコマンドにおいて指定されたアドレスと対応付けられた記憶領域に対して行われる。
かかる構成に加えて、本実施の形態の第1及び第2のストレージ装置3A,3Bには、ホスト計算機2により第1のストレージ装置3A内のある論理ユニット42にライトされたデータを、当該論理ユニット42とペア設定された第2のストレージ装置3B内の論理ユニット42にレプリケート(複製)するレプリケーション機能が搭載されている。
このため本情報処理システム1の場合、第1のストレージ装置3Aの特定のチャネル制御部10と、第2のストレージ装置3Bの特定のチャネル制御部10とがケーブル又はネットワーク等の通信路5を介して接続されている。
そして第1のストレージ装置3Aは、ホスト計算機2により論理ユニット42にデータがライトされた場合であって、その論理ユニット42が第2のストレージ装置3B内のいずれかの論理ユニット42とペア設定されているときには、かかるライトと同期して又は非同期に、そのデータをI/Oコマンドと共に通信路5を介して第2のストレージ装置3Bに転送する。
また、このデータ及びI/Oコマンドを受信した第2のストレージ装置3Bは、このI/Oコマンドに基づいて、そのときデータがライトされた第1のストレージ装置3A内の論理ユニット42とペア設定された自ストレージ装置内の論理ユニット42にこのデータをライトする。
(2)LDEVオーナ権
(2−1)LDEVオーナ権の概要
次に、LDEVオーナ権について説明する。本実施の形態の場合、第1及び第2のストレージ装置3A,3Bでは、LDEV41ごとに、そのLDEV41に対するI/Oコマンドを処理する権限を有するマイクロプロセッサパッケージ14が予め設定される。本明細書においては、この権限をそのLDEVに対するLDEVオーナ権と呼ぶものとする。このLDEVオーナ権は、LDEV41の作成時に、外部からの指示に従って、外部からの指示がない場合には自動的にいずれかのマイクロプロセッサパッケージ14に設定される。
LDEVオーナ権は、第1又は第2のストレージ装置3A,3Bを停止することなく他のマイクロプロセッサパッケージ14に移動することができる。従って、LDEV41へのI/Oアクセスの状況や、マイクロプロセッサパッケージ14内の各プロセッサ32の稼働率等のモニタリング情報を見ながら適宜LDEVオーナ権を移動させることにより、マイクロプロセッサパッケージ14間での負荷分散を行うことができる。
またマイクロプロセッサパッケージ14が障害等で閉塞した場合、そのマイクロプロセッサパッケージ14が有していたすべてのLDEVオーナ権が他のマイクロプロセッサパッケージ14に移動されて、対応するLDEV41に対するI/O処理がLDEVオーナ権の移動先のマイクロプロセッサパッケージ14により継続して処理される。
(2−2)LDEVオーナ権に関するローカルルータの機能
第1及び第2のストレージ装置3A,3Bのチャネル制御部に搭載されたローカルルータ22(図1)は、受信したI/Oコマンドを上述のように適切なマイクロプロセッサパッケージ14に転送するI/Oコマンド転送機能を有する。
このI/Oコマンド転送機能は、ホスト計算機2からのI/Oコマンドを適切なマイクロプロセッサパッケージ14に転送する第1のI/Oコマンド転送機能(以下、これをホストI/Oコマンド転送機能と呼ぶ)と、第1及び第2のストレージ装置3A,3B間でデータのレプリケーションが行われている場合に、レプリケーション元の第1のストレージ装置3AからのI/Oコマンドをレプリケーション先の第2のストレージ装置3Bにおいて適切なマイクロプロセッサパッケージ14に転送する第2のI/Oコマンド転送機能(以下、これをストレージ装置間I/Oコマンド転送機能と呼ぶ)とに分けることができる。
そしてローカルルータ22は、上述のホストI/Oコマンド転送機能を実現するための手段として、チャネル制御部10(図1)の各ポート10A(図1)にそれぞれ対応させて、図3に示すようなホストターゲット用マイクロプロセッサパッケージ検索テーブル(以下、これをホストターゲット用MPPK検索テーブルと呼ぶ)50を作成して管理している。
このホストターゲット用MPPK検索テーブル50は、チャネル制御部10のバッファメモリ23(図1)に格納された上述の制御情報25(図1)の一部を構成するもので、SCSI規格に従って上位装置が指定するソースID(SID)と、そのソースIDで管理されるグループを構成する各論理ユニット42と、これらの論理ユニット42とそれぞれ対応付けられた各LDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14との対応関係を管理するために用いられる。
実際上、ホストターゲット用MPPK検索テーブル50は、図3に示すように、SID欄50A、LUN欄50B及び先頭プロセッサ番号欄50Cを備えて構成される。そしてSID欄50Aには、ソースIDが格納され、LUN欄50Bには、対応するグループを構成する各論理ユニット42のLUNがそれぞれ格納される。また先頭プロセッサ番号欄50Cには、対応する論理ユニット42と対応付けられたLDEV41のLDVEオーナ権を有するマイクロプロセッサパッケージ14内のマイクロプロセッサ32(図1)のうち、その識別番号(以下、これをプロセッサ番号と呼ぶ)が最も小さいマイクロプロセッサ(以下、これを先頭マイクロプロセッサと呼ぶ)32のプロセッサ番号が格納される。
そしてローカルルータ22は、ホスト計算機2からのI/Oコマンドを受信した場合には、そのI/OコマンドからソースIDと、当該論理ユニット42のLUNとを取得し、取得したこれらソースID及びLUNの組合せをキーとしてホストターゲット用MPPK検索テーブル50上でその論理ユニット42のLDEVオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32のプロセッサ番号を検索する。またローカルルータ22は、かかる検索により検出した先頭プロセッサ番号に対応するマイクロプロセッサパッケージ14をさらに検索して、そのマイクロプロセッサパッケージ14にそのI/Oコマンドを転送する。
一方、ローカルルータ22は、上述のストレージ装置間I/Oコマンド転送機能を実現するための手段として、図4に示すようなストレージ装置間I/Oコマンド用マイクロプロセッサパッケージ検索テーブル(以下、これをストレージ装置間I/OコマンドMPPK検索テーブルと呼ぶ)51を作成して管理している。
このストレージ装置間I/OコマンドMPPK検索テーブル51は、チャネル制御部10(図1)のバッファメモリ23(図1)に格納された上述の制御情報25(図1)の一部を構成するもので、自ストレージ装置内の各LDEV41(図2)のLDEVオーナ権を管理するために用いられる。
実際上、ストレージ装置間I/OコマンドMPPK検索テーブル51は、図4に示すように、LDEV番号欄51A及び先頭プロセッサ番号欄51Bを備えて構成される。そしてLDEV番号欄51Aには、自ストレージ装置内に定義された各LDEV41のLDEV番号がそれぞれ格納され、また先頭プロセッサ番号欄51Bには、対応するLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32のプロセッサ番号が格納される。
ここで、ストレージ装置間のレプリケーションにおいて正側のストレージ装置及び副側のストレージ装置間で転送されるI/Oコマンドは、ベンダユニークなフォーマットでやり取りされることがある。この場合、ホスト計算機2からのI/Oコマンドでは、I/O対象とする論理ユニット42がLUNで指定されており、このI/Oコマンドを受信したストレージ装置において、LUNをLDEV番号に変換することでアクセス先のLDEVを特定するが、ストレージ装置間でのI/Oコマンドのやり取りではI/O対象とする論理ユニットと対応付けられたLDEVのLDEV番号をそのまま正側のストレージ装置から副側のストレージ装置に送信する。
本実施の形態においても、第1及び第2のストレージ装置3A,3B間で転送されるI/Oコマンドでは、図11について後述するSCSIコマンドのLUNフォーマットのうちのバイト0,ビット5〜バイト1,ビット0に、I/O対象とする論理ユニットのLUNに代えて、当該論理ユニットが対応付けられたLDEV41のLDEV番号を格納したベンダユニークなLUNフォーマットが適用される。
そして、第1のストレージ装置3AからのI/Oコマンドを受信した第2のストレージ装置3Bは、受信したI/Oコマンドから対象とするLDEV41のLDEV番号を取得し、取得したLDEV番号をキーとして、そのLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32のプロセッサ番号をストレージ装置間I/OコマンドMPPK検索テーブル51上で検索する。また第2のストレージ装置3Bは、この検索により検出した先頭プロセッサ番号と対応付けられているマイクロプロセッサパッケージ14を検索し、そのマイクロプロセッサパッケージ14にそのI/Oコマンドを転送する。
(2−3)LDEVオーナ権に関する処理の流れ
図5は、かかるLDEVオーナ権に関連して、I/Oコマンドを受信した第1又は第2のストレージ装置3A,3Bにおいて実行される一連のI/O処理の流れを示す。
第1又は第2のストレージ装置3A,3Bのチャネル制御部10は、上位装置(第1のストレージ装置3Aの場合にはホスト計算機2、第2のストレージ装置3Bの場合には第1のストレージ装置3A)からI/Oコマンドが与えられると(SP1)、まず、受信したI/Oコマンドをローカルルータ22により解析し、I/O対象の論理ユニット42を特定する。
そしてローカルルータ22は、特定した論理ユニット42と対応付けられたLDEV41(図2)のLDEVオーナ権を有するマイクロプロセッサパッケージ14を、上述のようにホストターゲット用MPPK検索テーブル50又はストレージ装置間I/OコマンドMPPK検索テーブル51を用いて特定し、特定したマイクロプロセッサパッケージ14にそのI/Oコマンドを転送する(SP2)。
かくして、このI/Oコマンドの転送を受けたマイクロプロセッサパッケージ14によりそのI/Oコマンドが処理される(SP3)。
一方、図6は、マイクロプロセッサパッケージ14にI/Oコマンドが転送された直後に、当該I/OコマンドにおいてI/O対象とする論理ユニット42と対応付けられたLDEV41のLDEVオーナ権が他のマイクロプロセッサパッケージ14に移動された場合における処理の流れを示す。
このケースでは、上位装置からのI/Oコマンドを受信したチャネル制御部10がそのI/OコマンドをI/O対象のマイクロプロセッサパッケージ14に転送するまでの処理(SP10,SP11)の流れは図5の場合と同様である。
ただし、このケースの場合には、そのI/Oコマンドの転送を受けたマイクロプロセッサパッケージ14がI/O対象のLDEV41のLDEVオーナ権を既に有していないため、そのI/Oコマンドを当該LDEVオーナ権の移動先のマイクロプロセッサパッケージ14に転送する(SP12)。
かくして、このI/Oコマンドの転送を受けたマイクロプロセッサパッケージ14によりそのI/Oコマンドが処理される(SP13)。
他方、図7は、第1及び第2のストレージ装置3A,3B間でデータのレプリケーションを実行している場合における処理の流れを示す。
このケースでは、ホスト計算機2からのI/Oコマンドを受信した第1のストレージ装置3Aのチャネル制御部10がそのI/OコマンドをI/O対象のマイクロプロセッサパッケージ14に転送するまでの処理(SP20,SP21)の流れは図5の場合と同様である。
ただし、このケースの場合、ホスト計算機2からのI/Oコマンドが転送されたマイクロプロセッサパッケージ14は、I/Oコマンドに従って論理ユニット42にデータをライトした後に(SP22)、そのI/Oコマンド及びそのデータをチャネル制御部10及び通信路5(図1)を介して第2のストレージ装置3Bに転送する(SP23,SP24)。
そして、このI/Oコマンド及びデータを受信した第2のストレージ装置3B側では、図5について上述した場合と同様にして、そのI/OコマンドにおいてI/O対象として指定された論理ユニット42と対応付けられたLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14に当該I/Oコマンドが転送されて処理される(SP25,SP26)。
(3)ロジカル・ユニット・コングロメリット(Logical Unit Conglomerate)
(3−1)コングロメリットLUN(Conglomerate LUN)方式の概要
次に、コングロメリットLUN方式について説明する。コングロメリットLUN方式は、SPC(SCSI Primary Commands)の4r36hにおいて提案されている論理ユニット42の管理方式である。
コングロメリットLUN方式では、図8に示すように、複数の論理ユニット42をロジカル・ユニット・コングロメリットと呼ばれるグループにグループ化し、そのロジカル・ユニット・コングロメリット60内において1つの論理ユニット42をそのロジカル・ユニット・コングロメリット60の代表の論理ユニット42(以下、これをALU(Administrative Logical Unit)42Aと呼ぶ)として定義すると共に、当該グループ内の他の論理ユニット42をそのALU42Aの配下の論理ユニット42(以下、これをSLU(Subsidiary Logical Unit)42Sと呼ぶ)として、そのロジカル・ユニット・コングロメリット60内のALU42Aに関連付ける。
この場合、ALU42Aには通常の論理ユニット42と同様にパス定義を行うことで、コングロメリットLUN方式において、上位装置は、ALU42AをSCSIデバイスとして認識し、その配下にあるSLU42Sと同一のロジカル・ユニット・コングロメリット60に属するALU42Aを対象とした図12について後述するLUNフォーマットのI/Oコマンドにより行う。
またロジカル・ユニット・コングロメリット60を構成する各論理ユニット42(ALU42A及びSLU42S)に対しては、それぞれ独立にLDEVオーナ権を設定することができる。従って、例えば図9に示すように、同一のロジカル・ユニット・コングロメリット60を構成する論理ユニット42のうちの一部に対してあるマイクロプロセッサパッケージ14のLDEVオーナ権を設定し、残りの論理ユニット42に対して他のマイクロプロセッサパッケージ14のLDEVオーナ権を設定することができる。
ALU42A及びSLU42Sの対応関係は、図10(A)に示すALU−SLU関連テーブル62を用いて管理する。このALU−SLU関連テーブル62は、システム内に設定可能なSLU数と同数のALUインデックス欄62Aを備える。そして各ALUインデックス欄62Aは、それぞれいずれかのSLU42Sが対応付けられたLDEV41のLDEV番号と関連付けられる。
また各ALUインデックス欄62Aには、それぞれシステム内に設定可能なALU42Aの数と同じビット数を有するビットマップが格納される。そして、これらのビットマップでは、そのALUインデックス欄62Aに対応するSLU42Sが属するロジカル・ユニット・コングロメリット60のALU42Aに対応するビットが「1」に設定され、他のビットが「0」に設定される。なお、以下においては、ビットマップの左端のビットの番号を「0」として、当該ビットからそのビットマップの「1」に設定されたビットまでのビットの数をそのビットマップに対応するALU42Aのインデックス番号と呼ぶものとする。
ALU42Aのインデックス番号は、便宜的にALU42Aに付与されるものであり、そのALU42Aが対応付けられるLDEV41のLDEV番号とは異なる。このためALU42Aのインデックス番号と、そのALU42Aが対応付けられたLDEV41のLDEV番号との対応関係は、図10(B)に示すALU−LDEV関連テーブル63を用いて管理する。
このALU−LDEV関連テーブル63は、システム内に設定可能なALU数と同数のLDEV番号欄63Aを備える。そして各LDEV番号欄63Aは、それぞれいずれかのALU42Aのインデックス番号と関連付けられる。また各LDEV番号欄63Aには、それぞれ対応するインデックス番号のALU42Aと対応付けられたLDEV41のLDEV番号が格納される。
従って、例えば図10(A)及び(B)の例の場合、例えば、「2」というLDEV番号のLDEV41と対応付けられたSLU42Sが属するロジカル・ユニット・コングロメリット60のALU42Aのインデックス番号は「1」であり、そのALU42Aと対応付けられたLDEV41のLDEV番号が「0000」であることが示されている。
なお本実施の形態の場合、これらALU−SLU関連テーブル62及びALU−LDEV関連テーブル63は、マイクロプロセッサパッケージ14のローカルメモリ31(図1)に格納されて保持され、マイクロプロセッサ32がI/Oコマンドを処理する際に利用される。
(3−2)本情報処理システムの特徴
ここで、上述のように各LDEV41にLDEVオーナ権が設定された第1及び第2のストレージ装置3A,3Bにおける論理ユニット42の管理方式としてこのようなコングロメリットLUN方式を適用する場合について考える。
この場合、上述のようにホスト計算機2は、ロジカル・ユニット・コングロメリット60を構成する論理ユニット42のうちのALU42AのみをSCSIデバイスとして認識できるため、ホスト計算機2は、ロジカル・ユニット・コングロメリット60を構成するALU42A及びSLU42Sのいずれにアクセスする場合においても、常にALU42AをI/O対象としてI/Oコマンドで指定することになる。
一方、このI/Oコマンドを受信した第1のストレージ装置3A側では、そのI/Oコマンドにおいて指定されたI/O対象がロジカル・ユニット・コングロメリット60のALU42Aやロジカル・ユニット・コングロメリット60を構成しない通常の論理ユニット42であるときには、そのI/OコマンドがそのALU42Aや、その通常の論理ユニット42のLDEVオーナ権を有するマイクロプロセッサパッケージ14に転送される。
そして、このI/Oコマンドを受信したマイクロプロセッサパッケージ14は、受信したI/Oコマンドを解析し、自己がLDEVオーナ権を有するLDEV41と対応付けられたALU42Aや通常の論理ユニット42をI/O対象としている場合には、そのI/Oコマンドを処理し、他のマイクロプロセッサパッケージ14がLDEVオーナ権を有するLDEV41と対応付けられた論理ユニット42をI/O対象としている場合には、そのI/Oコマンドを当該他のマイクロプロセッサパッケージ14に転送し、当該他のマイクロプロセッサパッケージ14においてそのI/Oコマンドを処理することになる。
ところが、このようなI/Oコマンドの処理方法によると、ロジカル・ユニット・コングロメリット60のALU42Aと対応付けられたLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14と、そのロジカル・ユニット・コングロメリット60に属するSLU42Sと対応付けられたLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14とが異なる場合(図9参照)に、そのSLU42Sを対象とするI/Oコマンドが、常にそのALU42AのLDEVオーナ権を有するマイクロプロセッサパッケージ14からそのSLU42SのLDEVオーナ権を有するマイクロプロセッサパッケージ14に転送されることになるため、I/Oコマンドに対する応答性能が低下する問題がある。
また、かかる状況のもとでは、第1のストレージ装置3A内部におけるデータの転送量を増大させるため、そのI/Oコマンドについての処理だけでなく、他のI/Oコマンドについての処理や、別のオペレーションにも悪影響を与え得る問題がある。
そこで本情報処理システム1では、第1及び第2のストレージ装置3A,3Bのチャネル制御部10が上位装置からのI/Oコマンドを受信した場合に、ローカルルータ22(図1)においてそのI/Oコマンドを解析し、I/O対象の論理ユニット42がロジカル・ユニット・コングロメリット60のSLU42Sである場合には、そのI/OコマンドをそのSLU42Sと対応付けられたLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14に直接転送するI/Oコマンド転送機能が第1及び第2のストレージ装置3A,3Bに実装されていることを特徴の1つとしている。
そのための手段として、本情報処理システム1の場合、上位装置から第1又は第2のストレージ装置3A,3Bに送信されるI/Oコマンドにおいて、ALU42AをI/O対象とする場合と、SLU42SをI/O対象とする場合とでI/O対象の論理ユニット42を指定するフィールドのフォーマット(以下、これをLUNフォーマットと呼ぶ)が異なっており、これにより第1のストレージ装置3Aや第2のストレージ装置3Bのローカルルータ22(図1)がI/OコマンドのLUNフォーマットに基づいて、そのI/OコマンドのI/O対象がALU42A及びSLU42Sのいずれであるかを容易に判別し得るようになされている。
実際上、本情報処理システム1の場合、I/O対象としてALU42A(及びロジカル・ユニット・コングロメリット60を構成しない通常の論理ユニット42)を指定するI/OコマンドにおけるLUNフォーマットとしては、図11に示すようなLUNフォーマットが用いられる。
このLUNフォーマットは、SCSI規格において仕様として定義されたフォーマットであり、バイト0,ビット7−6には、「ADDR METHOD」として固定値である「00b」が格納される。またバイト0,ビット5〜バイト1,ビット0には、I/O対象とする論理ユニットのLUNが格納され、バイト2−バイト7には「リザーブ(Reserved)」として「0」が格納される。
一方、本情報処理システム1の場合、I/O対象としてSLU42Sを指定するI/OコマンドにおけるLUNフォーマットとしては、図12に示すようなLUNフォーマットが用いられる。
このLUNフォーマットもSCSI規格で定義されたフォーマットであり、バイト0−1において、同一ロジカル・ユニット・コングロメリット60に属するALU42AのLUNが図12のバイト0−1と同様のフォーマットで指定される。
またこのLUNフォーマットにおいてバイト2,ビット7〜バイト7,ビット0はSLU42Sを指定するための領域であり、バイト2,ビット7−6に「ADDR METHOD」として固定値である「11b」が、バイト2,ビット5−4に「LENGTH」として固定値である「10b」が、バイト2,ビット3−0に「EXTENDED ADDRESS METHOD」として固定値である「2h」がそれぞれ格納される。
さらにバイト3−6は、I/O対象のSLU42Sを特定するための識別情報として、そのSLU42Sと対応付けられたLDEV41のLDEV番号が格納される。このフィールドのSLU42SのLDEV番号を指定することにより、ローカルルータ22(図1)においてLUNフォーマットを解析したときに、従以来のストレージ装置間I/OコマンドMPPK検索テーブル51を使用することができ、I/Oコマンドの転送先のマイクロプロセッサパッケージ14を容易に特定することができる。またバイト7には「リザーブ(Reserved)」として「0」が格納される。
(3−3)I/Oコマンド転送機能に関するローカルルータの処理
図13は、上述した本実施の形態によるI/Oコマンド転送機能に関する第1及び第2のストレージ装置3A,3Bのローカルルータ22(図1)の具体的な処理内容を示す。ローカルルータ22は、上位装置からのI/Oコマンドを受信すると、この図13に示す処理手順従って、受信したI/Oコマンドを適切なマイクロプロセッサパッケージ14に転送する。
実際上、ローカルルータ22は、I/Oコマンドを受信するとこの図13に示すI/Oコマンド転送処理を開始し、まず、受信したI/Oコマンドのコマンドディスクリプタブロック(CDB:Command Descriptor Block)を解析し(SP30)、解析結果に基づいて、そのI/OコマンドがSCSIコマンドであるか否かを判断する(SP31)。
ここで、上述のように本実施の形態による情報処理システム1においては、第1及び第2のストレージ装置3A,3B間におけるI/Oコマンドのフォーマットはベンダユニークなフォーマットであり、従って、この判断で否定結果を得ることは、そのI/Oコマンドが第1のストレージ装置3Aから第2のストレージ装置3Bに送信されたI/Oコマンドであり、当該I/Oコマンドを受信したのが第2のストレージ装置3Bであることを意味する。
かくして、このときローカルルータ22は、ステップSP30の解析により得られたLDEV番号をキーとして、当該LDEV番号のLDEV41のLDEVオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32(図1)のプロセッサ番号をストレージ装置間I/OコマンドMPPK検索テーブル51(図4)上で検索する(SP34)。
そしてローカルルータ22は、この検索により検出したマイクロプロセッサパッケージ14にそのI/Oコマンドを転送し(SP36)、この後、このI/Oコマンド転送処理を終了する。
一方、ステップSP31の判断で肯定結果を得ることは、そのI/Oコマンドが(A)第1のストレージ装置3A内のALU42A、(B)当該ALU42Aと同じロジカル・ユニット・コングロメリット60に属し第1のストレージ装置3A内に存在するSLU42S、及び、(C)ロジカル・ユニット・コングロメリット60を構成しない通常の論理ユニット42のいずれかを対象とするI/OLコマンドであることを意味する。
かくして、このときローカルルータ22は、そのI/OコマンドのLUNフォーマットのバイト2−7を参照して、そのI/OコマンドがSLU42SをI/O対象とするI/Oコマンドであるか否か(LUNフォーマットが図11のLUNフォーマットではなく、図12のLUNフォーマットであるか否か)を判断する(SP32)。
そしてローカルルータ22は、この判断で否定結果を得るとそのI/OコマンドのLUNフォーマットのバイト3−6からI/O対象のSLUが対応付けられたLDEV41のLDEV番号を取得する(SP33)。
またローカルルータ22は、取得したLDEV番号をキーとして、当該LDEV番号のLDEV41と対応付けられた論理ユニット42のLDEVオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32のプロセッサ番号をストレージ装置間I/OコマンドMPPK検索テーブル51上で検索する(SP34)。
そしてローカルルータ22は、この検索により検出したマイクロプロセッサパッケージ14にそのI/Oコマンドを転送し(SP36)、この後、このI/Oコマンド転送処理を終了する。
これに対して、ローカルルータ22は、ステップSP32の判断で否定結果を得ると、そのI/OコマンドのLUNフォーマットのバイト0−1からLUNを取得し、取得したLUNが付与されたALU42Aと対応付けられたLDEV41のオーナ権を有するマイクロプロセッサパッケージ14の先頭マイクロプロセッサ32のプロセッサ番号をホストターゲット用MPPK検索テーブル50(図3)上で検索する(SP35)。
そしてローカルルータ22は、この検索により検出したマイクロプロセッサパッケージ14にそのI/Oコマンドを転送し(SP36)、この後、このI/Oコマンド転送処理を終了する。
(4)複数のホスト計算機が1つのSLUを共有する場合の排他処理
図14に示すように、1つのSLU42Sに対して複数のALU42Aが関連付けられており(つまりそのSLU42Sが複数のロジカル・ユニット・コングロメリット60に属しており)、各ALU42Aがそれぞれ異なるホスト計算機2に割り当てられている場合、これらのホスト計算機2がそのSLU42Sを共有している状況となり、そのSLU42Sに対して複数の経路でI/Oコマンドが発行されることになる。このような状況のもとでは、そのSLU42Sに対する複数のホスト計算機2からのI/Oコマンドが競合する事態が発生し得る。
そこで本実施の形態においては、1つのSLU42Sに複数のALU42Aが関連付けられた場合に、これらのALU42Aに当該ALU42A間での優先度を設定でき、当該SLU42SをI/O対象とするI/Oコマンドが複数のホスト計算機2から同時に与えられた場合(I/O処理が競合した場合)に、マイクロプロセッサパッケージ14のマイクロプロセッサ32(図1)が、そのI/Oコマンドが経由したALU42Aに設定された優先度に応じた順番でこれらのI/Oコマンドを処理するようになされている。
このような処理を実現するための手段として、各マイクロプロセッサパッケージ14のローカルメモリ31(図1)には、図15に示すような優先度管理テーブル70が格納されている。優先度管理テーブル70は、対応するSLU42Sについて予め設定されたALU42Aの優先度を管理するために利用されるテーブルであり、SLU42Sごとに用意される。
この優先度管理テーブル70は、LUN欄70A及び優先度欄70Bを備えており、LUN欄70Aには、その第1又は第2のストレージ装置3A,3B内に存在する各ALU42Aに対してそれぞれ付与されたLUNがそれぞれ格納され、優先度欄70Bには、対応するSLU42Sについて、当該SLU42Sが関連付けられた各ALU42Aに対してそれぞれ設定されたそのALU42Aの優先度を表す値が格納される。なお図15の例では、優先度の値が小さいものほど優先度が高いものとする。
かくしてマイクロプロセッサパッケージ14のマイクロプロセッサ32は、チャネル制御部10から転送されるSLU42Sに対するI/Oコマンドが競合した場合には、そのSLU42Sに対応する優先度管理テーブル70を参照して、I/OコマンドのLUNフォーマット(図12)のバイト0−2にLUNが格納されたALU42Aの優先度がより高いI/Oコマンドをより優先的に処理する。
この機能は、同一のSLU42Sを共有する複数のホスト計算機2に対して優先度を設定することと同等であり、従って、このような機能を第1のストレージ装置3Aに搭載することによって、より重要な処理を行うホスト計算機2からのI/Oコマンドをより優先的に処理させることができる。
なお、上記構成に加えて、例えばSLU42Sごとに、図16に示すようなそのSLU42Sに対応付けられたALU42Aごとのキュー71を各マイクロプロセッサパッケージ14のローカルメモリ31(図1)上に用意し、マイクロプロセッサパッケージ14において、チャネル制御部10から転送されてきたI/OコマンドをそのLUNフォーマット(図12)のバイト0−2に格納されたLUNに対応するALU42Aのキュー71に格納し、これらのキュー71に格納されたI/Oコマンドを、対応するALU42Aの優先度に応じた個数ずつ順番にかつ繰り返し処理するようにしても良い。なお、「優先度に応じた個数」とは、より優先度が高いALU42Aに対応するキュー71に格納されたI/Oコマンドほどより多く処理することを意味する。
例えば、図15のようにLUNが「0」〜「3」であるALU42Aが4つ存在し、LUNが「2」、「3」及び「1」のALU42Aにこの順番でより高い優先度が設定されている場合、まず、優先度が最も高い「ALU2」というALU42Aに対応するキュー71に格納されたI/Oコマンドを例えば3個処理した後、次に優先度が高い「ALU3」というALU42Aに対応するキュー71に格納されたI/Oコマンドを2個処理し、さらに最も優先度が低い「ALU1」というALU42Aに対応するキュー71に格納されたI/Oコマンドを1個処理し、この後、上述の処理を繰り返すようにすれば良い。
このようにしても、上述と同様に、より重要な処理を行うホスト計算機2からのI/Oコマンドをより優先的に処理させることができる。
さらに以上の方式は、例えば図17に示すように、単一のALU42Aが複数のポート10Aにパス定義されている環境においても適用することができる。この場合、優先度管理テーブル70や、キュー71は、SLU42S単位ではなく、ALU42A単位で用意され、ポート10Aごとの当該ポート10A間での優先度を設定することになる。
(5)本実施の形態の効果
以上のように本実施の形態による情報処理システム1では、上位装置からのI/Oコマンドが対象とする論理ユニット42がSLU42Sである場合には、その論理ユニット42と対応付けられたLDEV41のオーナ権を有するマイクロプロセッサパッケージ14にそのコマンドを直接転送するため、第1及び第2のストレージ装置3A,3B内においてマイクロプロセッサパッケージ14間でのI/Oコマンドの転送が発生するのを防止することができる。かくするにつき、かかる第1及び第2のストレージ装置3A,3B内におけるマイクロプロセッサパッケージ14間でのI/Oコマンドの転送に起因してI/Oコマンドに対する応答性能が低下するのを有効に防止することができる。
(6)他の実施の形態
なお上述の実施の形態においては、本発明を図1のように構成された情報処理システム1に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の形態の情報処理システムに広く適用することができる。
また上述の実施の形態においては、上位装置からのI/Oコマンドを処理するコマンド処理部としてのマイクロプロセッサパッケージ14を図1のように構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。この場合、かかるコマンド処理部が有するマイクロプロセッサ32(図1)の数は1つであっても良い。
本発明は、I/Oコマンドの処理方式としてLDEVオーナ権を適用した処理方式が採用され、論理ユニットの管理方式としてコングロメリットLUN方式が採用されたストレージ装置のほか、同様のI/Oコマンド処理方式及び論理ユニット管理方式が共に採用されたストレージ装置に広く適用することができる。
1……情報処理システム、2……ホスト計算機、3A,3B……ストレージ装置、10……チャネル制御部、10A……ポート、14……マイクロプロセッサパッケージ、15……記憶デバイス、20,32……マイクロプロセッサ、22……ローカルルータ、25……制御情報、41……LDEV、42……論理ユニット、42A……ALU、42B……SLU、50……ホストターゲット用MPPK検索テーブル、51……ストレージ装置間I/OコマンドMPPK検索テーブル、60……ロジカル・ユニット・コングロメリット、62……ALU−SLU関連テーブル、63……ALU−LDEV関連テーブル、70……優先度テーブル、71……キュー。

Claims (10)

  1. 複数の記憶デバイスを有し、各前記記憶デバイスがそれぞれ提供する記憶領域を1つのプールとして管理し、前記プールの一部を切り出した論理デバイスを論理ユニットと対応付けて、当該論理ユニットを上位装置に記憶領域として提供するストレージ装置において、
    前記上位装置との間でコマンド及びデータを送受するチャネル制御部と、
    それぞれ前記上位装置からのコマンドを処理する複数のコマンド処理部と
    を備え、
    前記論理デバイスごとに、当該論理デバイスのオーナ権を有する前記コマンド処理部が予めそれぞれ設定され、前記論理デバイスと対応付けられた前記論理ユニットを対象とする前記上位装置からの前記コマンドを、当該論理ユニットの前記オーナ権を有する前記コマンド処理部が実行し、
    複数の前記論理ユニットが1つのグループとして管理されると共に、当該グループ内の1つの前記論理ユニットが当該グループを代表する論理ユニットとして定義され、
    前記グループを代表する前記論理ユニットを対象とする前記コマンドのフォーマットと、当該論理ユニット以外の当該グループ内の前記論理ユニットを対象とする前記コマンドのフォーマットとが異なり、
    前記チャネル制御部は、
    前記上位装置から与えられた前記コマンドのフォーマットを解析し、
    解析結果に基づいて、当該コマンドが対象とする前記論理ユニットが、前記グループ内の当該論理ユニットを代表する前記論理ユニット以外の前記論理ユニットである場合には、当該コマンドの対象となる前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部に当該コマンドを転送する
    ことを特徴とするストレージ装置。
  2. 前記グループを代表する前記論理ユニットを対象とする前記コマンドでは、対象とする前記論理ユニットが当該論理ユニットの識別子により指定され、
    前記グループ内の当該グループを代表する前記論理ユニット以外の前記論理ユニットを対象とする前記コマンドでは、対象とする前記論理ユニットが属する前記グループを代表する前記論理ユニットの識別子と、対象とする前記論理ユニットと対応付けられた前記論理デバイスの識別子とが指定され、
    前記チャネル制御部は、
    前記論理ユニットと、当該論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部との対応関係が格納された第1のテーブルと、
    前記論理デバイスと、当該論理デバイスの前記オーナ権を有する前記コマンド処理部との対応関係が格納された第2のテーブルとを管理し、
    前記上位装置から与えられた前記コマンドのフォーマットが前記グループを代表する前記論理ユニットを対象とするフォーマットである場合には、当該コマンドで指定された前記識別子を有する前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部を前記第1のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送し、
    当該コマンドのフォーマットが前記グループを代表する前記論理ユニット以外の前記論理ユニットを対象とするフォーマットである場合には、当該コマンドで指定された前記識別子を有する前記論理デバイスの前記オーナ権を有する前記コマンド処理を前記第2のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送する
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記上位装置を構成する他のストレージ装置から、対象とする前記論理ユニットと対応付けられた前記論理デバイスの識別子が指定された前記コマンドが与えられ、
    前記チャネル制御部は、
    前記上位装置から与えられた前記コマンドのフォーマットが前記他のストレージ装置からの前記コマンドのフォーマットである場合には、当該コマンドで指定された前記論理デバイスの前記オーナ権を有する前記コマンド処理部を前記第2のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送する
    ことを特徴とする請求項2に記載のストレージ装置。
  4. 前記グループを代表する前記論理ユニットに当該論理ユニット間での優先度が予めそれぞれ設定され、
    前記コマンド処理部は、
    複数の前記グループに属し、いずれの前記グループをも代表しない同一の前記論理ユニットを対象とする複数の前記コマンドが前記チャネル制御部から転送され、当該複数のコマンドが競合するときには、当該論理ユニットが属する各前記グループをそれぞれ代表する前記論理ユニットに設定された前記優先度に従った順番で前記コマンドを処理する
    ことを特徴とする請求項2に記載のストレージ装置。
  5. 前記コマンド処理部は、
    前記グループを代表する前記論理ユニット以外の前記論理ユニットごとに、当該論理ユニットが属する各前記グループをそれぞれ代表する前記論理ユニットにそれぞれ対応させたキューを有し、前記チャネル制御部から転送される前記コマンドを当該コマンドで指定された前記論理ユニットの識別子に応じた前記キューに格納し、
    各前記キューに格納された前記コマンドを、各前記キューにそれぞれ対応付けられた前記グループを代表する前記論理ユニットに設定された前記優先度に応じた個数ずつ順番にかつ繰り返し処理する
    ことを特徴とする請求項4に記載のストレージ装置。
  6. 複数の記憶デバイスを有し、各前記記憶デバイスがそれぞれ提供する記憶領域を1つのプールとして管理し、前記プールの一部を切り出した論理デバイスを論理ユニットと対応付けて、当該論理ユニットを上位装置に記憶領域として提供するストレージ装置の制御方法であって、
    前記ストレージ装置は、
    前記上位装置との間でコマンド及びデータを送受するチャネル制御部と、
    それぞれ前記上位装置からのコマンドを処理する複数のコマンド処理部と
    を有し、
    前記論理デバイスごとに、当該論理デバイスのオーナ権を有する前記コマンド処理部が予めそれぞれ設定され、前記論理デバイスと対応付けられた前記論理ユニットを対象とする前記上位装置からの前記コマンドを、当該論理ユニットの前記オーナ権を有する前記コマンド処理部が実行し、
    複数の前記論理ユニットが1つのグループとして管理されると共に、当該グループ内の1つの前記論理ユニットが当該グループを代表する論理ユニットとして定義され、
    前記グループを代表する前記論理ユニットを対象とする前記コマンドのフォーマットと、当該論理ユニット以外の当該グループ内の前記論理ユニットを対象とする前記コマンドのフォーマットとが異なり、
    前記チャネル制御部が、前記上位装置から与えられた前記コマンドのフォーマットを解析する第1のステップと、
    前記チャネル制御部が、解析結果に基づいて、当該コマンドが対象とする前記論理ユニットが、前記グループ内の当該論理ユニットを代表する前記論理ユニット以外の前記論理ユニットである場合には、当該コマンドの対象となる前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部に当該コマンドを転送する第2のステップと
    を備えることを特徴とするストレージ装置の制御方法。
  7. 前記グループを代表する前記論理ユニットを対象とする前記コマンドでは、対象とする前記論理ユニットが当該論理ユニットの識別子により指定され、
    前記グループ内の当該グループを代表する前記論理ユニット以外の前記論理ユニットを対象とする前記コマンドでは、対象とする前記論理ユニットが属する前記グループを代表する前記論理ユニットの識別子と、対象とする前記論理ユニットと対応付けられた前記論理デバイスの識別子とが指定され、
    前記チャネル制御部は、
    前記論理ユニットと、当該論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部との対応関係が格納された第1のテーブルと、
    前記論理デバイスと、当該論理デバイスの前記オーナ権を有する前記コマンド処理部との対応関係が格納された第2のテーブルとを管理し、
    前記第2のステップにおいて、前記チャネル制御部は、
    前記上位装置から与えられた前記コマンドのフォーマットが前記グループを代表する前記論理ユニットを対象とするフォーマットである場合には、当該コマンドで指定された前記識別子を有する前記論理ユニットと対応付けられた前記論理デバイスの前記オーナ権を有する前記コマンド処理部を前記第1のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送する一方、
    当該コマンドのフォーマットが前記グループを代表する前記論理ユニット以外の前記論理ユニットを対象とするフォーマットである場合には、当該コマンドで指定された前記識別子を有する前記論理デバイスの前記オーナ権を有する前記コマンド処理を前記第2のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送する
    ことを特徴とする請求項6に記載のストレージ装置の制御方法。
  8. 前記上位装置を構成する他のストレージ装置から、対象とする前記論理ユニットと対応付けられた前記論理デバイスの識別子が指定された前記コマンドが与えられ、
    前記第2のステップにおいて、前記チャネル制御部は、
    前記上位装置から与えられた前記コマンドのフォーマットが前記他のストレージ装置からの前記コマンドのフォーマットである場合には、当該コマンドで指定された前記論理デバイスの前記オーナ権を有する前記コマンド処理部を前記第2のテーブル上で検索し、当該検索により検出した前記コマンド処理部に当該コマンドを転送する
    ことを特徴とする請求項7に記載のストレージ装置の制御方法。
  9. 前記グループを代表する前記論理ユニットに当該論理ユニット間での優先度が予めそれぞれ設定され、
    前記コマンド処理部が、複数の前記グループに属し、いずれの前記グループをも代表しない同一の前記論理ユニットを対象とする複数の前記コマンドが前記チャネル制御部から転送され、当該複数のコマンドが競合するときには、当該論理ユニットが属する各前記グループをそれぞれ代表する前記論理ユニットに設定された前記優先度に従った順番で前記コマンドを処理する第3のステップを備える
    ことを特徴とする請求項7に記載のストレージ装置の制御方法。
  10. 前記コマンド処理部は、
    前記グループを代表する前記論理ユニット以外の前記論理ユニットごとに、当該論理ユニットが属する各前記グループをそれぞれ代表する前記論理ユニットにそれぞれ対応させたキューを有し、前記チャネル制御部から転送される前記コマンドを当該コマンドで指定された前記論理ユニットの識別子に応じた前記キューに格納し、
    前記第3のステップにおいて、前記コマンド処理部は、
    各前記キューに格納された前記コマンドを、各前記キューにそれぞれ対応付けられた前記グループを代表する前記論理ユニットに設定された前記優先度に応じた個数ずつ順番にかつ繰り返し処理する
    ことを特徴とする請求項9に記載のストレージ装置の制御方法。
JP2017508934A 2015-03-31 2015-03-31 ストレージ装置及びその制御方法 Expired - Fee Related JP6247792B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/060167 WO2016157421A1 (ja) 2015-03-31 2015-03-31 ストレージ装置及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2016157421A1 JPWO2016157421A1 (ja) 2017-09-14
JP6247792B2 true JP6247792B2 (ja) 2017-12-13

Family

ID=57004846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017508934A Expired - Fee Related JP6247792B2 (ja) 2015-03-31 2015-03-31 ストレージ装置及びその制御方法

Country Status (3)

Country Link
US (1) US20180121091A1 (ja)
JP (1) JP6247792B2 (ja)
WO (1) WO2016157421A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023094302A (ja) * 2021-12-23 2023-07-05 株式会社日立製作所 情報処理システム及び構成管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3614682B2 (ja) * 1998-09-10 2005-01-26 富士通株式会社 ネットワークの被監視装置及び監視装置
WO2005006175A1 (ja) * 2003-07-10 2005-01-20 Fujitsu Limited 複数の論理ユニットをグループ化する方法、受信した要求の処理方法、複数の論理ユニットをグループ化する装置及び、受信した要求の処理装置
JP4463042B2 (ja) * 2003-12-26 2010-05-12 株式会社日立製作所 ボリュームの動的割り付け機能を有する記憶装置システム
JP4377313B2 (ja) * 2004-10-22 2009-12-02 株式会社日立製作所 ネットワークシステムにおけるエラーリカバリレベルの最適化
JP4449889B2 (ja) * 2005-11-17 2010-04-14 株式会社日立製作所 外部記憶装置

Also Published As

Publication number Publication date
US20180121091A1 (en) 2018-05-03
JPWO2016157421A1 (ja) 2017-09-14
WO2016157421A1 (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
JP4917174B2 (ja) 制御装置と通信するように構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作用の入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP4671353B2 (ja) ストレージ装置及びその制御方法
US8032689B2 (en) Techniques for data storage device virtualization
US8578178B2 (en) Storage system and its management method
KR20200017363A (ko) 호스트 스토리지 서비스들을 제공하기 위한 NVMe 프로토콜에 근거하는 하나 이상의 호스트들과 솔리드 스테이트 드라이브(SSD)들 간의 관리되는 스위칭
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
JP6068676B2 (ja) 計算機システム及び計算機システムの制御方法
JP2011512591A5 (ja)
JP2007256993A (ja) 物理リンクの割当てを制御するコンピュータシステム及び方法
JP6703600B2 (ja) 計算機システム及びサーバ
JP4521865B2 (ja) ストレージシステム、計算機システムまたは記憶領域の属性設定方法
JP2006209237A (ja) 記憶システム及びその制御方法並びに仮想化装置
US9766824B2 (en) Storage device and computer system
US8527732B2 (en) Storage system and method of controlling storage system
WO2014141363A1 (ja) ストレージシステムおよびストレージシステムの制御方法
WO2017072868A1 (ja) ストレージ装置
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
JP6247792B2 (ja) ストレージ装置及びその制御方法
JP2008027291A (ja) ストレージ装置及びデータ保護方法
WO2015068208A1 (ja) システムおよびその制御方法
US11016698B2 (en) Storage system that copies write data to another storage system
US20060277326A1 (en) Data transfer system and method
JP2013029911A (ja) 制御装置、制御方法およびストレージ装置
US20200050388A1 (en) Information system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171025

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171117

R150 Certificate of patent or registration of utility model

Ref document number: 6247792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees