JPWO2013118243A1 - 計算機システムおよびデータ入出力方法 - Google Patents

計算機システムおよびデータ入出力方法 Download PDF

Info

Publication number
JPWO2013118243A1
JPWO2013118243A1 JP2013557267A JP2013557267A JPWO2013118243A1 JP WO2013118243 A1 JPWO2013118243 A1 JP WO2013118243A1 JP 2013557267 A JP2013557267 A JP 2013557267A JP 2013557267 A JP2013557267 A JP 2013557267A JP WO2013118243 A1 JPWO2013118243 A1 JP WO2013118243A1
Authority
JP
Japan
Prior art keywords
core
path
responsible
request
port
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.)
Granted
Application number
JP2013557267A
Other languages
English (en)
Other versions
JP5764678B2 (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 JPWO2013118243A1 publication Critical patent/JPWO2013118243A1/ja
Application granted granted Critical
Publication of JP5764678B2 publication Critical patent/JP5764678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0658Controller construction arrangements
    • 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 Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ストレージ装置は、サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有する。ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっている。LU担当コアは、動的に変更することがある。サーバは、LU担当コアの識別情報を定期的にストレージ装置から取得する。サーバは、I/O要求を送信する場合に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、選択したパスを介して送信対象のI/O要求を送信する。

Description

本発明は、サーバからストレージ装置内のLU(Logical Unit)に対するI/O(Input/Output)に関する。
一般に、計算機システムは、LUを有するストレージ装置と、ストレージ装置に接続されたサーバとを有する。サーバは、ストレージ装置のLUにデータを入出力するためのI/O要求を送信する。ストレージ装置は、I/O要求を受信し、そのI/O要求で指定されているLUに対し、そのI/O要求に従うデータを入出力する。LUは、論理的な記憶デバイスであり、論理ボリュームと呼ばれることもある。LUは、仮想LUであっても実LUであっても良い。仮想LUは、例えば、Thin Provisioningに従うLUであっても良いし、ストレージ仮想化技術に従うLU(ストレージ装置の外部のストレージ装置の記憶資源が仮想化されたLU)であっても良い。実LUは、物理的な記憶デバイス(以下、PDEV)に基づくLUである。例えば、複数のPDEVで構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループを基に1又は複数の実LUが形成される。
複数のプロセッサを有し、どのLUに対するI/Oをどのプロセッサが担当するかが決められるストレージ装置がある。このようなストレージ装置に関して、プロセッサの負荷に応じて、LUを担当するプロセッサを変更する技術が知られている(例えば、特許文献1参照)。
また、サーバからLUへの複数のパスが用意され、複数のパスから選択するパスを制御することにより、ネットワークの負荷や、ストレージ装置におけるポートの負荷を分散する技術も知られている。
特開2008−269424号公報
複数のパスから選択されるパスは、例えば、ラウンドロビン方式で切り替わる。このため、LUを担当するプロセッサ(又は、プロセッサコア)が決定されているストレージ装置において、サーバで選択されたパスを介してI/O要求を受け付けたプロセッサ(又はプロセッサコア)と、そのI/O要求で指定されたLUを担当するプロセッサ(又はプロセッサコア)とが異なるケースが生じることがある。このケースでは、いわゆるクロスコールが発生する。ここで言う「クロスコール」は、プロセッサ間(又はプロセッサコア間)でI/O要求が授受されること、すなわち、I/O要求を受け付けたプロセッサ(又はプロセッサコア)から、そのI/O要求で指定されているLUを担当するプロセッサ(又はプロセッサコア)に、I/O要求が転送されることである。クロスコールが発生することにより、I/O要求を授受する双方のプロセッサ(又はプロセッサコア)の性能が低下してしまう虞がある。
ストレージ装置は、サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLUとを有する。ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっている。LU担当コアは、動的に変更することがある。サーバは、LU担当コアの識別情報を定期的にストレージ装置から取得する。サーバは、I/O要求を送信する場合に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、選択したパスを介して送信対象のI/O要求を送信する。
図1は、実施形態に係るストレージ装置が有するコントローラの概要を示す図である。 図2は、LUへのI/O処理の一例を説明する図である。 図3は、コアクロスコールの一例を説明する図である。 図4は、CPUクロスコールの一例を説明する図である。 図5は、クロスコールの一例の発生を説明する図である。 図6は、実施形態に係る計算機システムの概要を説明する第1の図である。 図7は、実施形態に係る計算機システムの概要を説明する第2の図である。 図8は、実施形態に係る計算機システムの概要を説明する第3の図である。 図9は、実施形態に係る計算機システムの概要を説明する第4の図である。 図10は、実施形態に係る計算機システムの概要を説明する第5の図である。 図11は、実施形態に係る計算機システムの概要を説明する第6の図である。 図12は、実施形態に係る計算機システムの構成図である。 図13は、実施形態に係るサーバ1のパステーブルの一例を示す図である。 図14は、実施形態に係るサーバ2のパステーブルの一例を示す図である。 図15は、実施形態に係るサーバ3のパステーブルの一例を示す図である。 図16は、実施形態に係るサーバ1のオーナパステーブルの一例を示す図である。 図17は、実施形態に係るサーバ2のオーナパステーブルの一例を示す図である。 図18は、実施形態に係るサーバ3のオーナパステーブルの一例を示す図である。 図19は、実施形態に係るオーナテーブルの一例を示す図である。 図20は、実施形態に係るクロスコールテーブルの一例を示す図である。 図21は、実施形態に係るパス選択処理のフローチャートである。 図22は、実施形態に係るオーナパステーブル更新処理のフローチャートである。
実施形態を、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶことができる。
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」「番号」という表現を用いるが、これらについてはお互いに置換が可能である。
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ(典型的にはCPU(Central Processing Unit))によって実行されることで定められた処理をメモリ及び通信ポートを用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、サーバ、ストレージ装置等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
まず、クロスコールを説明する。
図1は、ストレージ装置のコントローラの概要を説明する図である。
ストレージ装置は、1以上のコントローラ210を備える。コントローラ210は、複数(例えば2個)のCPUコア(以下、コア)212X、212Yを有するCPU212を備えている。また、コントローラ210は、サーバ等の装置との通信を仲介するための複数(例えば、8個)の通信ポート(以下、ポート)211を有する。コントローラ210においては、ポートA〜Dを用いての通信処理は、コア212X(Core−Xともいう)が担当し、ポートE〜Hを用いての通信処理は、コア212Y(Core−Yともいう)が担当するようになっている。
図2は、LUに対するI/Oの一例を説明する図である。
図2には、LU220の一例として、LU6が示されている。LU6に対するI/O処理を担当するコアは、0系のコントローラ210AのCore−X(コア212AX)である。また、ポート211毎に、担当するコアが決まっている。
ポートAが、LU6に対するI/O要求を受信すると(図2(1))、ポートAを担当するコア212AXが、そのI/O要求を受ける(図2(2))。ここで、LU6を担当するコア212AXが、I/O要求を受けたので、クロスコールは生じない。すなわち、コア212AXは、そのI/O要求に従いLU6に対するI/Oを実行し、そのI/O要求を別のコアに転送する必要が無い(図2(3))。
図3は、コアクロスコールの一例を説明する図である。
コアクロスコールとは、コア間のクロスコールである。図3においては、LU6を担当するコアは、0系のコントローラ210AのCore−X(コア212AX)である。
ここで、ポートEが、LU6を指定したI/O要求を受信すると(図3(1))、ポートEを担当するコア212AYがそのI/O要求を受ける(図3(2))。ここで、LU6を担当するコアは、I/O要求を受けたコア212AYではなく、他のコア212AXである。このため、1つのCPU212においてコアクロスコールが発生する。すなわち、コア212AYからコア212AXへI/O要求が渡される(図3(3))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図中(4))。このように、コアクロスコールが発生すると、I/O要求を授受するための負荷が双方のコア212AX及び212AYにかかる。なお、コアクロスコールは、後述のCPUクロスコールよりは、CPUに対する負荷が低い。
図4は、CPUクロスコールの一例を説明する図である。
CPUクロスコールとは、CPU間のクロスコールである。同一のコントローラにおいてCPUクロスコールが発生することもあれば、コントローラ間でCPUクロスコールが発生することもある。以下の説明において、「クロスコール」という記載は、コアクロスコールとCPUクロスコールのいずれも意味する。
図4では、ストレージ装置には、0系コントローラ210Aと、1系コントローラ210Bの2つが存在し、LU6を担当するコアは、0系コントローラ210AのCore−X(コア212AX)であり、LU7を担当するコアは、1系コントローラ210BのCore−Y(コア212BY)である。
0系コントローラ210AのポートFが、LU7を指定したI/O要求を受信すると(図4(1))、ポートFを担当するコア212AYが、そのI/O要求を受ける(図4(2))。ここで、LU7を担当するコアは、I/O要求を受けたコア212AYではなく、1系コントローラ210Bのコア212BYである。このため、CPUクロスコールが発生する。すなわち、コア212AYを有するCPUから別のCPUのコア212BYにI/O要求が転送される(図4(3))。I/O要求を受けたコア212BYは、LU7に対してI/Oを実行する(図4(4))。
一方、1系コントローラ210BのポートAが、LU6を指定したI/O要求を受信すると(図4(5))、ポートAを担当するコア212BXが、そのI/O要求を受ける(図4(6))。ここで、LU6を担当するコアは、I/O要求を受けたコア212BXではなく、0系コントローラ210Aのコア212AXである。このため、CPUクロスコールが発生する。すなわち、コア212BXを有するCPUから別のコア212AXを有するCPUにI/O要求が転送される(図4(7))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図4(8))。
上記のように、CPUクロスコールが発生すると、CPUクロスコールを実行するための負荷が双方のCPUに掛かってしまう。
図5は、クロスコールの一例の発生を説明する図である。
サーバ1000は、複数(例えば2つ)のスイッチ150A、150B(FC−SW1、FC−SW2)と例えば光ファイバケーブルを介して接続され、2つのスイッチ150A、150Bは、ストレージ装置200と例えば光ファイバケーブルを介して接続されている。
同図に示すように、計算機システムにおいては、LU6へのパスとしては、例えば、サーバ1000のHBA1、FC−SW1、0系コントローラ210AのポートDを経由するパスと、サーバ1000のHBA2、FC−SW2、1系コントローラ210BのポートAを経由するパスとが用意されている。
サーバ1000のCPUでアプリケーションプログラム(以下、アプリケーション111)とマルチパス管理プログラム1010が実行される。アプリケーション111は、例えばLU6を指定したI/O要求を発行する。マルチパス管理プログラム1010は、同一のLU6への複数のパスから、アプリケーション111から発行されたI/O要求(LU6を指定したI/O要求)を経由させるパスを選択する。マルチパス管理プログラム1010は、例えば、ラウンドロビン方式で複数のパスから1つのパスを選択し、選択したパスを用いて、アプリケーション111から発行されたI/O要求を送信する。このため、ストレージ装置200には、LU6を指定したI/O要求は、LU6への2つのパスのうちのいずれからもI/O要求が到達し得る。
ここで、ストレージ装置200において、LU6を担当するコアは、0系コントローラ210AのCore−X(コア212AX)である。
この場合には、アプリケーション111から発行されたI/O要求は、マルチパス管理プログラム1010に伝えられ(図5(1))、マルチパス管理プログラム1010により、そのI/O要求が経由するパスが選択される。
HBA1、FC−SW1、及び0系コントローラ210AのポートDを経由するパスを、LU6を指定したI/O要求が経由するパスとして選択した場合には、マルチパス管理プログラム1010は、I/O要求をHBA1に渡す(図5(2))。HBA1に渡されたI/O要求は、HBA1からFC−SW1に送信され(図5(3))、FC−SW1から0系コントローラ210AのポートDに送信される(図5(4))。
LU6を指定したI/O要求をポートDが受信する、ポートDを担当するコア212AXが、そのI/O要求を受ける(図5(5))。ここで、LU6を担当するコアは、I/O要求を受けたコア212AXであるので、クロスコールが発生せず、コア212AXは、LU6に対してI/Oを実行する(図5(6))。
一方、HBA2、FC−SW2及び1系コントローラ210BのポートAを経由するパスを、LU6を指定したI/O要求が経由するパスとして選択した場合には、マルチパス管理プログラム1010は、そのI/O要求をHBA2に渡す(図5(11))。HBA2に渡されたI/O要求は、HBA2からFC−SW2に送信され(図5(12))、FC−SW2から1系コントローラ210BのポートAに送信される(図5(13))。
1系コントローラ210BのポートAが、LU6を指定したI/O要求を受信すると、ポートAを担当するコア212BXが、そのI/O要求を受ける(図5(14))。ここで、LU6を担当するコアは、I/O要求を受けたコア212BXではなく、コア212AXである。このため、CPUクロスコールが発生する。すなわち、コア212BXのCPUからコア212AXのCPUにI/O要求が転送される(図5(15))。I/O要求を受けたコア212AXは、LU6に対してI/Oを実行する(図5(16))。
本実施形態に係る計算機システムでは、上述したクロスコールがなるべく発生しないよう制御される。以下、その計算機システムの概要を説明する。
図6は、実施形態に係る計算機システムの概要を説明する第1の図である。
LU6へのパスとして、例えば、サーバ100のHBA1、FC−SW1、0系コントローラ210AのポートDを経由するパスP1と、サーバのHBA2、FC−SW2、1系コントローラ210BのポートAを経由するパスP2とが用意されている。
マルチパス管理プログラム112は、どのLUをどのコントローラ及びコアが担当するかを表す情報をストレージ装置200から取得してサーバ100内の記憶資源(例えばメモリ)に格納しておく。マルチパス管理プログラム112は、当該情報に基づいて、アプリケーション111からのI/O要求で指定されたLUへの複数のパスから、I/O要求が経由してもクロスコールが発生することの無いパス(以下、非クロスコールパス)を選択する。同図に示す例において、LU6を指定したI/O要求を送信する場合には、マルチパス管理プログラム112は、非クロスコールパスを選択する。LU6の非クロスコールパスは、LU6へのパスP1及びP2のうち、LU6を担当するコア212AXが担当するポートDを経由するパスP1である。つまり、非クロスコールパスP1は、パスP1が経由するポートDが受信したI/O要求を受けるコアとLU6の担当コアとが同一であるパスである。これにより、クロスコールの発生を回避することができる。
図7は、実施形態に係る計算機システムの概要を説明する第2の図である。
アプリケーション111からのI/O要求で指定されたLU220への複数のパスに、複数の非クロスコールパス(図7の例では、ポートCを経由するパスP3、ポートDを経由するパスP4)ある場合には、マルチパス管理プログラム112は、複数の非クロスコールパスから選択する非クロスコールパスを、ラウンドロビン方式等の所定の方式に従って違えて良い。
次に、ストレージ装置200において障害が発生した場合に行われる処理の概要、及び、その障害が回復した場合に行われる処理の概要を説明する。
図8は、実施形態に係る計算機システムの概要を説明する第3の図である。図9は、実施形態に係る計算機システムの概要を説明する第4の図である。図10は、実施形態に係る計算機システムの概要を説明する第5の図である。図11は、実施形態に係る計算機システムの概要を説明する第6の図である。
図8に示すように、マルチパス管理プログラム112がパスP5を用いてI/O要求を送信する場合において、0系コントローラ210Aに障害が発生した場合には、マルチパス管理プログラム112は、図9に示すように、1系コントローラ210Bに対してI/O要求を送信するパス(例えばパスP6)を選択する。
0系コントローラ210Aに障害が発生した場合、ストレージ装置200では、図9に示すように、1系コントローラ210Bのコア(例えば、コア212BX)が、0系コントローラ210Aのコアに代わってLU6の担当コアとして設定される。
ここで、ストレージ装置200の0系コントローラ210Aの障害が回復した場合には、図10に示すように、負荷監視デバイス230により、各コントローラ(210A、210B)の負荷が監視され、各コントローラの負荷を分散させるために、例えば、LU6の担当がコア212AXに戻される。
担当コアが変更された直後においては、サーバ100からパスP7を介してI/O要求が送信されているので、1系コントローラ210Bのコア212BXがそのI/O要求を受信し、CPUクロスコール(コア212BXから、LU6を担当するコア212AXに、I/O要求が転送される)が発生する。サーバ100は、どのLUに対するI/Oをどのコアが担当しているかを表す情報(以下、担当コア特定情報)を取得する。このため、サーバ100は、LU6を担当する変更後のコアを特定する情報(コントローラ番号及びコア番号)を取得することとなる。
このように、変更後のコアを特定する情報を取得した後においては、マルチパス管理プログラム112は、図11に示すように、LU6を指定したI/O要求を送信するためのパスとして、非クロスコールパスP8を選択することとなり、そのI/O要求が、LU6を担当するコア212AXへ送信されることとなる。これにより、クロスコールが回避される。
次に、実施形態に係る計算機システムを詳細に説明する。
図12は、実施形態に係る計算機システムの構成図である。
計算機システムは、1以上のサーバ100と、1以上のストレージ装置200と、1以上のサーバ100及び1以上のストレージ装置200を接続する複数のスイッチ150(150A、150B)とを有する。サーバ100と、スイッチ150とは、例えば、光ファイバケーブルにより接続されている。また、スイッチ150と、ストレージ装置200とは、例えば、光ファイバケーブルにより接続されている。
スイッチ150は、例えば、ファイバチャネルに対応する機器(サーバ100、ストレージ装置200等)を相互に接続するスイッチである。本実施形態では、スイッチ150A、150Bは、それぞれ複数のサーバ100に接続されている。また、スイッチ150Aは、ストレージ装置200の0系コントローラ210Aの複数のポート211Aに接続されている。また、スイッチ150Bは、ストレージ装置200の1系コントローラ210Bの複数のポート211Bに接続されている。
サーバ100は、通信インタフェースデバイス、記憶デバイス及びそれらに接続された制御デバイスを有する。通信インタフェースデバイスは、例えば、HBA(Host Bus Adapter)130である。HBA130は、複数ある。記憶デバイスは、例えば、メモリ110である。制御デバイスは、例えば、CPU120である。
メモリ110は、アプリケーション111と、マルチパス管理プログラム112と、パステーブル113と、オーナパステーブル114とを記憶する。
アプリケーション111は、所定の業務処理を実行するためのプログラムであり、業務処理に関わるデータのI/O要求であって、ストレージ装置200のLU220(厳密には、例えば、LU220がマウントされることにより認識されている論理記憶デバイス)に対するI/O要求を発行する。マルチパス管理プログラム112は、アプリケーション111からのI/O要求で指定されたLUへの複数のパスの中から1つパスを選択する機能、選択したいパスの障害を検出した際にそのパスとは別のパスを選択しそのパスを介してI/O要求を送信する機能、複数のパスから選択するパスを適宜に変更する機能、任意のパスを閉塞する機能等を実現する。パステーブル113は、LU220へのパスに関する情報を有する。オーナパステーブル114は、LU220を担当するコントローラ及びコアを特定する情報(担当コア特定情報)を有する。
CPU120は、メモリ110に格納されているプログラムを実行することにより、各種処理を実行する。その際、適宜に、テーブル113及び114が参照される。
HBA130は、ファイバチャネルに対応したアダプタであり、外部の装置(ストレージ装置200等)との間での通信を仲介する。なお、サーバ100内のHBA130を区別する際には、「HBA1」、「HBA2」と表記する場合がある。本実施形態では、HBA1は、スイッチ150Aに接続され、HBA2は、スイッチ150Bに接続されている。
ストレージ装置200は、複数のコントローラ210(0系コントローラ210A、1系コントローラ210B)と、複数のLU220と、負荷監視デバイス230と、共有メモリデバイス240と、複数のPDEVとを有する。複数のPDEVに基づく記憶領域が、複数のLU220のうちのいずれかの実LUであっても良いし、複数のLU220のうちの仮想LUに割り当てられる記憶領域であっても良い。
共有メモリデバイス240は、オーナテーブル241と、クロスコールテーブル242と、負荷監視制御プログラム243とを記憶する。オーナテーブル241は、LU220に対するI/O処理を担当するコアを管理するためのテーブルである。クロスコールテーブル242は、発生したクロスコールに関する情報を有する。負荷監視制御プログラム243は、定期的又は不定期的に負荷監視処理を実行するためのプログラムである。負荷監視処理は、例えば、各コントローラ210の負荷(例えば使用率)を特定すること、特定した負荷に応じて、LU220を担当するコアを変更すること、LU220の担当コアの変更に応じてオーナテーブル241を更新することを含んで良い。本実施形態では、負荷監視制御プログラム243は、各コアの使用率が均衡するように、どのLU220の担当をどのコアにするかを決定する。
負荷監視デバイス230は、CPU231を有する。なお、CPU231に代えて、コントローラ210のCPU212が利用されてもよい(つまり、CPU231が無く、少なくとも1つのCPU212が、LUに対するI/Oに加えて、負荷監視処理を実行しても良い)。CPU231は、共有メモリデバイス240に格納された負荷監視制御プログラム243を実行することにより、負荷監視処理を実行する。
LU220は、前述したように、仮想LUであっても実LUであっても良い。実LUは、複数のPDEVにより構成されたRAIDグループに基づくLUで良い。
同図においては、SV1(サーバ1)に提供されているLU220として、LU0(LDEV0010)と、LU1(LDEV0011)と、LU2(LDEV0012)とがある。SV2(サーバ2)に提供されているLU220として、LU10(LDEV0020)、LU11(LDEV0021)、LU12(LDEV0022)とがある。また、SV3(サーバ3)に提供されているLU220として、LU20(LDEV0030)と、LU21(LDEV0031)と、LU22(LDEV0032)とがある。なお、「LDEV」は、論理的な記憶デバイスであり、実質的にはLUと同一である。具体的には、本実施形態では、ストレージ装置は、LUについて、サーバから指定される識別情報であるLU番号と、ストレージ装置内部で使用される識別情報であるLDEV番号とを有する。
0系コントローラ210Aは、複数(例えば、A〜Hまでの8個)のポート211Aと、CPU212Aとを有する。なお、1系コントローラ210Bも、0系コントローラ210Aと同様な構成をしているので、ここでは、説明を省略する。
ポート211Aは、ファイバチャネルに対応するポート(CHAポート)であり、他の装置との通信を仲介する。ここで、複数のポートを区別して説明する場合には、ポートA、B、・・、Hと表記する場合がある。
CPU212Aは、複数のコア212AX、コア212AYを有する。なお、各コア212AX、212AYを、それぞれ「Core−X」、「Core−Y」と表記する場合がある。コア212AX、コア212AYは、それぞれ独立して動作可能であり、例えば、ポート211Aを用いての通信処理、LU220に対するI/Oを実行する。本実施形態では、各コアについて、担当するポートと、担当するLUが定められる。言い換えれば、ポート毎に、ポートが受信したI/O要求を受けることになるコアであるポート担当コアが定められており、LU毎に、LUに対するI/Oを実行するコアであるLU担当コアが定められる。具体的には、ポートA〜Dのポート担当コアは、コア212AXであり、ポートE〜Hのポート担当コアは、コア212AYである。
各コア212AX、212AYは、PDEVと通信可能に接続されており、LUに対するI/Oの際に、I/O先のLU領域(LUにおける領域)に対応する物理記憶領域(PDEVにおける記憶領域)を有するPDEVに、I/O要求を送信する。ただし、本実施形態においては、I/O先のLU220に対して、そのLU220のLU担当コアがI/Oを実行する。LU担当コアは、負荷監視デバイス230の制御により変更可能である。
図13は、実施形態に係るサーバ1のパステーブルの一例を示す図である。図14は、実施形態に係るサーバ2のパステーブルの一例を示す図である。図15は、実施形態に係るサーバ3のパステーブルの一例を示す図である。なお、サーバ1、サーバ2、サーバ3のパステーブルの構成は同様であり、パステーブルに格納される情報は、それぞれのサーバに対応する情報である。
パステーブル113は、パス毎に、下記の情報、
(*)パスを一意に識別するIDであるパスID113a、
(*)パスが経由するポートを有するストレージ装置200のベンダ名を表すベンダ名113b、
(*)パスが経由するポートを有するストレージ装置200の製品名を表す製品名113c、
(*)パスが経由するポートを有するストレージ装置200の製品番号を表す製造番号113d、
(*)パスに繋がるLU220のLU番号であるLU番号113e、
(*)パスに繋がるLU220のLDEV番号であるLDEV番号113f、
(*)パスのステータスを表すパスステータス113g、
(*)パスが経由するポートの番号であるCHAポート113h、
(*)パスが経由するポートのポート担当コアを有するコントローラの番号である受付コントローラ番号113i、及び、
(*)パスが系有するポートのポート担当コアの番号であるポート担当コア番号113J、
を有する。パスステータス113gの値としては、例えば、パスが使用可能であることを示す「Online」と、パスが使用不可であることを示す「Offline」とがある。また、ポート担当コア番号113Jの値としては、例えば、Core−Xを意味する「X」と、Core−Yを意味する「Y」がある。
ここで、パステーブル113が有する各種情報を収集する方法の一例を説明する。
例えば、サーバ100の起動時などの所定のケースにおいて、サーバ100の図示しないOS(Operating System)が、HBA130から、ストレージ装置200が有する各ポートに、LU一覧情報の取得要求を送信する。その取得要求に対する応答として、LU一覧情報を含んだ応答が、ストレージ装置200からサーバ100に送られる。LU一覧情報には、取得要求を受信したポートに関連付けられているLUに関する情報(ベンダ名、製品名、製品番号、LU番号、LDEV番号等が含まれた情報)が含まれている。次いで、マルチパス管理プログラム112が、取得されたLU一覧情報が有するLU番号を含んだ照会要求(例えばInquiryコマンド)を送信する。照会要求に対する応答として、照会要求を受けたポートのポート担当コアの識別情報(受付コントローラ番号とポート担当コア番号)と、照会要求が含むLU番号から識別されるLUのLU担当コアの識別情報とを含んだ応答が、ストレージ装置200からサーバ100に送られる。マルチパス管理プログラム112が、LU一覧情報に含まれる情報と、照会要求の応答に含まれる情報をパステーブル113に格納する。なお、マルチパス管理プログラム112は、照会要求で指定されたLUへの複数のパスにクロスコールパス及び非クロスコールパスが含まれている場合、クロスコールパスを選択し、クロスコールパスを介して照会要求を取得する。非クロスコールパスは、I/O要求の送信の際に優先的に使用されるからである。クロスコールパスとは、クロスコールが発生するパスである。具体的には、クロスコールパスとしては、LU担当コアとポート担当コアとが異なるが同一のCPUにあるコアクロスコールパスと、LU担当コアとポート担当コアとが異なるCPUにあるCPUクロスコールパスとがある。非クロスコールパスとは、LU担当コアとポート担当コアとが同一であるパスである。
パステーブル113の例によると、ストレージ装置の識別情報は、ベンダ名、製品名、及び製造番号で構成される。なお、ストレージ装置200は、ベンダ名が「HIT」であり、製品名が「600F」であり、製品番号が「9300080」である。また、図13に示すパステーブル113の例によると、LU0へのパスとしては、パスID「00001」、「00004」、「00007」、「00010」で示される4つのパスがある。例えば、パス「00001」は、ポート「0A」(0系コントローラ211AのポートA)を経由するパスであり、ポート「0A」のポート担当コアは、0系コントローラ210Aのコア212AXである。また、パス「00007」は、ポート「1A」(1系コントローラ211BのポートA)を経由するパスであり、ポート「1A」のポート担当コアは、1系コントローラ210Bのコア212BXである。
図16は、実施形態に係るサーバ1のオーナパステーブルの一例を示す図である。図17は、実施形態に係るサーバ2のオーナパステーブルの一例を示す図である。図18は、実施形態に係るサーバ3のオーナパステーブルの一例を示す図である。なお、サーバ1、サーバ2、サーバ3のオーナパステーブルの構成は同様であり、オーナパステーブルに格納される情報は、それぞれのサーバに対応する情報となっている。
オーナパステーブル114は、パス毎に、下記の情報、
(*)ストレージ装置200のベンダ名を表すベンダ名114a、
(*)ストレージ装置200の製品名を表す製品名114b、
(*)ストレージ装置200の製品番号を表す製品番号114c、
(*)パスに繋がるLUのLDEV番号を表すLDEV番号114d、
(*)パスが繋がるLUのLU担当コアを有するコントローラ(オーナコントローラ)の番号を表すコントローラ番号114e、
(*)パスが繋がるLUのLU担当コアの番号を表すLU担当コア番号114f、及び、及び、
(*)パス選択処理(図21参照)のステップS2以降の処理によるパス選択の実行を有効とするか、又は無効とするかの情報を表すI/Oパスコントロール114g、
を有する。例えば、サーバ100における入力装置を用いて有効又は無効の設定情報が指定されると、マルチパス管理プログラム112が、当該指定された設定情報を、オーナパステーブル114に、I/Oパスコントロール114gとして格納する。なお、設定情報は、個々のLUについて指定されても良いし、複数のLUについての共通の情報として指定されても良い。
ここで、オーナパステーブル114及びパステーブル113によると、クロスコールが発生しないパスを特定することができる。例えば、サーバ1が記憶する図16に示すオーナパステーブル114及び図13に示すパステーブル113によると、パスIDが「00001」、「00005」、「00009」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。同様に、サーバ2が記憶する図17に示すオーナパステーブル114及び図14に示すパステーブル113によると、パスIDが「00002」、「00006」、「00010」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。また、サーバ3が記憶する図18に示すオーナパステーブル114及び図15に示すパステーブル113によると、パスIDが「00003」、「00007」、「00011」のパスを用いてI/O要求を送信する場合には、LU担当コアとポート担当コアが同じなので、コアクロスコール及びCPUクロスコールのいずれも発生しないことがわかる。
図19は、実施形態に係るオーナテーブルの一例を示す図である。
オーナテーブル241は、LU毎に、下記の情報、
(*)LUのLDEV番号を表すLDEV番号241a、
(*)LUのLU担当コアを有するコントローラの番号を表すコントローラ番号241b、及び、
(*)LUのLU担当コアの番号を表すLU担当コア番号241c、
を有する。
オーナテーブル241によると、例えば、LU「0010」は、コントローラ「0」(0系コントローラ210A)のコア「X」(コア212AX)によりI/Oが実行されることがわかる。
図20は、実施形態に係るクロスコールテーブルの一例を示す図である。
クロスコールテーブル242は、実行されたクロスコール毎に、下記の情報、
(*)クロスコールを一意に示す番号である受付番号242a、
(*)クロスコールが発生したI/O要求で指定されたLU220のLDEV番号を表すLDEV番号242b、
(*)クロスコールが発生したI/O要求を受け付けたコントローラの番号である受付コントローラ番号242c、
(*)クロスコールが発生したI/O要求を受け付けたポート担当コアの番号を表すポート担当コア番号242d、
(*)クロスコールが発生したI/O要求で指定されたLU220に対するI/Oを実行したコアを有するコントローラの番号を表す処理コントローラ番号242e、及び、
(*)クロスコールが発生したI/O要求で指定されたLU220に対するI/Oを実行したコアの番号を表す処理LU担当コア番号242f、
を有する。
クロスコールテーブル242によると、クロスコール「000001」は、I/O先がLU「0010」であり、I/O要求が、1系コントローラ210Bのコア212BYにより受け付けられ、0系コントローラ210Aのコア212AXによりI/Oが実行されたことがわかる。このことは、コア212AXによるI/Oの結果は、コア212BYに返されて、コア212BYにより、I/O要求の送信元に送信されることも意味している。つまり、クロスコールテーブル242は、クロスコールに従いI/O要求が流れたルートと同じルートで応答を返すために使用される。
次に、本実施形態における計算機システムで行われる処理を説明する。
まず、ストレージ装置200におけるコア212AX、212AY、212BX、212BYのオーナテーブル241及びクロスコールテーブル242を用いた処理を説明する。
ポート担当コア(例えば、212AX、212AY、212BX及び212BYのいずれか)は、担当するポート(211A又は211B)からI/O要求を受けた場合、オーナテーブル241を参照し、I/O先LU(I/O要求で指定されたLU)220のLU担当コア(当該LU220に対するI/Oを担当するコントローラのコア)を特定する。
この結果、特定されたLU担当コアがポート担当コアである場合には、当該ポート担当コアは、I/O先LU220に対してI/Oを実行する。一方、特定されたLU担当コアが当該ポート担当コアでない場合には、当該ポート担当コアは、下記の処理、
(*)クロスコールテーブル242に新たなレコードを追加する、
(*)当該レコードに、受付コントローラ番号242cとして、当該ポート担当コアを有するコントローラの番号を設定する、
(*)当該レコードに、ポート担当コア番号242dとして、当該ポート担当コアの番号を設定する、
(*)当該レコードに、処理コントローラ番号242eとして、特定されたLU担当コアを有するコントローラの番号を設定する、
(*)当該レコードに、処理LU担当コア番号242fとして、特定されたLU担当コアの番号を設定する、
(*)受け付けたI/O要求を、特定されたLU担当コアに渡す、
を行う。
I/O要求を受け取ったLU担当コアは、I/O要求に従うI/OをI/O先LU220に対して実行する。LU担当コアは、クロスコールテーブル242を参照し、当該I/O要求の転送元のポート担当コアに対して処理結果を渡す。処理結果を受け取ったコアは、そのコアが担当するポート(I/O要求を受信したポート)を介して、I/O要求の送信元のサーバ100に、処理結果を含む応答を送信する。
次に、サーバ100の処理について説明する。
図21は、実施形態に係るパス選択処理のフローチャートである。
パス選択処理は、サーバ100のマルチパス管理プログラム112が、アプリケーション111からI/O要求を受けた場合に実行される。
マルチパス管理プログラム112は、オーナパステーブル114から、I/O先LU(I/O要求で指定されたLU)のLU番号に対応するLDEV番号が一致するレコードを検索し、当該レコードから、コントローラ番号とLU担当コア番号とを取得する(ステップS1)。なお、ステップS2以降の処理は、当該レコードのI/Oパスコントロール114gの値が有効(ON)である場合に実行される。当該レコードのI/Oパスコントロール114gの値が無効(OFF)である場合には、マルチパス管理プログラム112は、例えば、パステーブル113のパスステータス113gがOnlineであるレコードであり、且つ、I/O先LUのLDEV番号が一致するレコードが示すパスを、ラウンドロビン方式等の所定のルールに従ってパスを選択する。
ステップS2では、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
(*)ステップS1で取得したコントローラ番号及びLU担当コア番号と一致するコントローラ番号113i及びLU担当コア番号113jを有する、
があるか否かを判断する。
ステップS2で、一致するレコードがある場合(ステップS2でYes)には、当該パスが、非クロスコールパス(I/O先LUのLU担当コアと、当該パスが経由するポートのポート担当コアとが同一であるパス)であることを意味している。このため、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを介してI/O要求を送信する。これにより、そのI/O要求の処理の際にクロスコールが発生することを回避することができる。
一方、ステップS2で、一致するレコードがない場合(ステップS2でNo)には、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
(*)ステップS1で取得したコントローラ番号と一致するコントローラ番号113iを有する、
があるか否かを判断する(ステップS3)。
ステップS3で、一致するレコードがある場合(ステップS3でYes)には、当該パスが、コアクロスコールパス(I/O先LUのLU担当コアと、当該パスが経由するポートのポート担当コアは異なるが、それらのコアが同一のCPU内にあるパス)であることを意味している。このため、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを介してI/O要求を送信する。これにより、I/O要求を送信した場合には、ストレージ装置200においては、コアクロスコールが発生するものの、それよりも負荷が高いCPUクロスコールが発生することを回避することができる。
一方、ステップS3で、一致するレコードがない場合(ステップS3でNo)には、マルチパス管理プログラム112は、パステーブル113に、下記全ての条件を満たすレコード、
(*)パスステータス113gがOnlineである、
(*)I/O先LUに対応するベンダ名、製品番号、及びLDEV番号と一致するベンダ名113b、製品番号113c、及びLDEV番号113dを有する、
があるか否かを判断する(ステップS4)。
ステップS4で、一致するレコードがある場合(ステップS4でYes)には、マルチパス管理プログラム112は、当該パスを、I/O要求を送信する際に使用するパスとして選択する(ステップS5)。この後、マルチパス管理プログラム112は、当該パスを利用してI/O要求を送信する。これにより、I/O要求を送信した場合には、ストレージ装置200においては、CPUクロスコールが発生することとなる。
一方、ステップS4で、一致するレコードがない場合(ステップS4でNo)には、I/O先LU220へのパスが存在しないので、マルチパス管理プログラム112は、I/O要求の送信元のアプリケーション111にエラーを応答する(ステップS6)。
上記したパス選択処理によると、非クロスコールパスが優先的に特定且つ選択され、非クロスコールパスが無ければ、コアクロスコールパスが優先的に特定且つ選択され、非クロスコールパス及びコアクロスコールパスが無ければ、CPUコアクロスコールパスが選択される。
図22は、実施形態に係るオーナパステーブル更新処理のフローチャートである。
オーナパステーブル更新処理は、例えば、アプリケーション111の実行時等に実行される。
マルチパス管理プログラム112は、所定の監視時間(第2の時間間隔)が経過するか、又は、オーナパステーブル更新処理の終了イベントが発生するまで処理を休止し(ステップS11)、監視時間の経過、又は処理終了イベントが発生した場合には、監視時間が経過したか否かを判断する(ステップS12)。ここで、監視時間は、例えば、次のように決定される。すなわち、ストレージ装置200が、各LUについて、第1の時間間隔で、担当変更処理(LUのLU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にそのLUのLU担当コアを変更する処理を、行うようになっている。この場合、監視時間(第2の時間間隔)は、第1の時間間隔より長い、例えば、第1の時間間隔の整数倍(例えば3倍以上)で良い。また、担当変更処理の実行間隔である第1の時間間隔は、ストレージ装置200の入出力コンソールを介して変更されて良い。変更後の第1の時間間隔は、ストレージ装置200からサーバ100に通知されても良いし、サーバ100からストレージ装置200に問合せされても良い。サーバ100のマルチパス管理プログラム112は、変更後の第1の時間間隔を基に監視時間(第2の時間間隔)を変更して良い。
監視時間が経過した場合(ステップS12でYes)には、マルチパス管理プログラム112は、ストレージ装置200からLU220毎のオーナコントローラ番号及びオーナLU担当コア番号を取得する(ステップS13)。例えば、マルチパス管理プログラム112は、Inquiryコマンド(SCSIリクエスト)に、ストレージ装置200で管理されているLUのLU番号を含めてストレージ装置200に送信するようにすればよい。ストレージ装置200がこのコマンドを受信した場合に、コマンドを受信したCPUコアが、コマンド内のLU番号に対応するLDEV番号を特定し、オーナテーブル241から、対応するLU220のオーナコントローラ番号及びオーナLU担当コア番号を取得して、コマンドに対する応答中のベンダユニークフィールドに、取得したオーナコントローラ番号及びオーナLU担当コア番号を登録し、その応答を、マルチパス管理プログラム112に送信するようにすればよい。
ここで、Inquiryコマンドを経由させるパスとしてマルチパス管理プログラム112により選択されるパスは、Inquiryコマンド内のLU番号に対応するLUが指定されたI/O要求が経由可能ないずれのパスでも良い。当該I/O要求が経由可能な複数のパスのうち、CPUクロスコールパスが優先的に特定且つ選択され、CPUクロスコールパスが無ければコアクロスコールパスが優先的に特定且つ選択され、CPUクロスコールパス及びコアクロスコールパスのいずれも無ければ非クロスコールパスが選択されても良い。このようにすると、Inquiryコマンド内のLU番号に対応したLU220を指定したI/O要求の処理性能の低下の軽減が期待できる。
次いで、マルチパス管理プログラム112は、取得したオーナコントローラ番号及びオーナLU担当コア番号をオーナパステーブル113の対応するLU220のレコードに格納し(ステップS14)、処理をステップS11に進める。これにより、オーナパステーブル113を最新の情報に更新することができる。
一方、監視時間の経過でない場合(ステップS12でNo)には、マルチパス管理プログラム112は、処理終了イベントであるか否かを判断し(ステップS15)、処理終了イベントである場合(ステップS15でYes)には、マルチパステーブル更新処理を終了する一方、処理終了イベントでない場合(ステップS15でNo)には、処理をステップS11に進める。
以上、一実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
例えば、上記実施形態では、複数のコアを有するCPUを複数備えるストレージ装置を例に挙げて説明していたが、本発明はこれに限られず、例えば、1つのコアを有するCPUを複数備えるストレージ装置であってもよく、また、複数のコアを有するCPUを1つ備えるストレージ装置であってもよい。
また、上記実施形態では、サーバ100がストレージ装置200に対してポーリングを行うことにより、LU担当コアとそれを有するコントローラのそれぞれの番号を含んだ情報を取得するようにしていたが、例えば、ストレージ装置が、LU担当コアを変更した際に、変更後のLU担当コアとそれを有するコントローラのそれぞれの番号を含んだ情報をサーバ100に送信するようにし、サーバ100において受信した情報に基づいてオーナパステーブル114が更新されてもよい。
また、上記実施形態では、I/O要求が経由するパスを介してLU担当コアの識別情報(例えばコントローラの番号及びLU担当コアの番号)が取得されるが、例えば、ストレージ装置200とサーバ100とが、ファイバチャネルに従う通信が行われる通信ネットワークとは別の通信ネットワークにも接続され、別の通信ネットワークを介して、LU担当コアの識別情報を取得するためのInquiryコマンドやその応答(LU担当コアの識別情報を含んだ応答)が送受信されて良い。
100…サーバ、200…ストレージ装置

Claims (14)

  1. ストレージ装置と、
    前記ストレージ装置にI/O(Input/Output)要求を送信するサーバと
    を有し、
    前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有し、
    ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
    前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
    前記サーバは、1以上の通信インタフェースデバイスと、記憶デバイスと、それらに接続された制御デバイスとを有し、
    前記記憶デバイスは、通信インタフェースデバイスからLUへのパスに関する情報をパス毎に含んだパス情報と、LU担当コアの識別情報をLU毎に含んだLU担当情報とを記憶し、
    前記パス情報は、パスが経由するポートのポート担当コアの識別情報をパス毎に含み、
    前記制御デバイスは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を前記LU担当情報に含め、
    前記制御デバイスは、I/O要求を送信する場合に、
    (A)前記パス情報と前記LU担当情報を基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    計算機システム。
  2. 前記ストレージ装置は、それぞれが2以上の前記プロセッサコアを含む複数のプロセッサを有し、
    前記(A)において、前記制御デバイスは、
    (a1)前記I/O先LUへの複数のパスに前記非クロスコールパスが含まれていれば、前記非クロスコールパスを選択し、
    (a2)前記I/O先LUへの複数のパスに前記非クロスコールパスが含まれておらず、且つ、LU担当コアとポート担当コアとが同一のプロセッサ内にパスであるコアクロスコールパスが含まれていれば、前記コアクロスコールパスを選択し、
    (a3)前記I/O先LUへの複数のパスに前記非クロスコールパス及び前記コアクロスコールパスが含まれていなければ、LU担当コアとポート担当コアとが異なるプロセッサ内にパスであるプロセッサクロスコールパスを選択する、
    請求項1記載の計算機システム。
  3. 前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、前記プロセッサクロスコールパスが含まれていれば、そのプロセッサクロスコールパスを選択し、前記プロセッサクロスコールパスが無くても前記コアクロスコールパスが含まれていれば、そのコアクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項2記載の計算機システム。
  4. 前記第2の時間間隔は、前記第1の時間間隔より長い、
    請求項3に記載の計算機システム。
  5. 前記第2の時間間隔は、前記第1の時間間隔の整数倍である、
    請求項4に記載の計算機システム。
  6. 前記第2の時間間隔が変更された場合、前記制御デバイスは、変更後の前記第2の時間間隔を基に、前記第1の時間間隔を変更する、
    請求項5に記載の計算機システム。
  7. 或るLUについての前記担当通知要求は、前記或るLUへのパスのうちの非担当パスを介して送信され、
    前記非担当パスは、前記LU担当情報を基に特定される、前記或るLUのLU担当コア、とは異なるプロセッサコア、へのパスである、
    請求項6に記載の計算機システム。
  8. 前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、LU担当コアとポート担当コアが異なるパスであるクロスコールパスが含まれていれば、そのクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項1記載の計算機システム。
  9. ストレージ装置にI/O(Input/Output)要求を送信するサーバであって、
    1以上の通信インタフェースデバイスと、
    記憶デバイスと、
    それらに接続された制御デバイスと
    を有し、
    前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLU(Logical Unit)とを有し、
    ポート毎に、ポートが受信したI/O要求を受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
    前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
    前記記憶デバイスは、通信インタフェースデバイスからLUへのパスに関する情報をパス毎に含んだパス情報と、LU担当コアの識別情報をLU毎に含んだLU担当情報とを記憶し、
    前記パス情報は、パスが経由するポートのポート担当コアの識別情報をパス毎に含み、
    前記制御デバイスは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を前記LU担当情報に含め、
    前記制御デバイスは、I/O要求を送信する場合に、
    (A)前記パス情報と前記LU担当情報を基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    サーバ。
  10. 前記第2の時間間隔は、前記第1の時間間隔より長い、
    請求項9に記載のサーバ。
  11. 前記第2の時間間隔が変更された場合、前記制御デバイスは、変更後の前記第2の時間間隔を基に、前記第1の時間間隔を変更する、
    請求項9に記載のサーバ。
  12. 或るLUについての前記担当通知要求は、前記或るLUへのパスのうちの非担当パスを介して送信され、
    前記非担当パスは、前記LU担当情報を基に特定される、前記或るLUのLU担当コア、とは異なるプロセッサコア、へのパスである、
    請求項9に記載のサーバ。
  13. 前記制御デバイスは、LUに関する情報を取得するための照会要求を前記ストレージ装置に送信するようになっており、前記照会要求を送信する場合、前記照会要求で指定されたLUへのパスに、LU担当コアとポート担当コアが異なるパスであるクロスコールパスが含まれていれば、そのクロスコールパスを選択し、選択したパスを介して前記照会要求を送信する、
    請求項9に記載のサーバ。
  14. ストレージ装置のLU(Logical Unit)にデータを入出力する方法であって、
    前記ストレージ装置は、前記サーバと通信可能な複数のポートと、複数のプロセッサコアと、複数のLUとを有し、
    ポート毎に、ポートが受信したI/O(Input/Output)要求をサーバから受けるプロセッサコアであるポート担当コアが決まっており、LU毎に、I/Oを担当するプロセッサコアであるLU担当コアが決まっており、
    前記ストレージ装置は、LU担当コアを変更する必要があるか否かを判断しその判断の結果が肯定的の場合にLU担当コアを変更する処理である担当変更処理を、第1の時間間隔で行うようになっており、
    前記サーバは、第2の時間間隔で、LUのLU担当コアの識別情報の要求である担当通知要求を前記ストレージ装置に送信することにより、LU担当コアの識別情報を前記ストレージ装置から取得し、その識別情報を、LU担当コアの識別情報をLU毎に含んだLU担当情報に含め、
    前記サーバは、I/O要求を送信する場合に、
    (A)前記LU担当情報と、パスが経由するポートのポート担当コアの識別情報を含みパスに関する情報をパス毎に含んだパス情報とを基に、送信対象のI/O要求で指定されたLUであるI/O先LUへの複数のパスから、LU担当コアとポート担当コアとが同一のプロセッサコアであるパスである非クロスコールパスを選択し、
    (B)前記(A)で選択したパスを介して前記送信対象のI/O要求を送信する、
    入出力方法。
JP2013557267A 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法 Active JP5764678B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/052619 WO2013118243A1 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法

Publications (2)

Publication Number Publication Date
JPWO2013118243A1 true JPWO2013118243A1 (ja) 2015-05-11
JP5764678B2 JP5764678B2 (ja) 2015-08-19

Family

ID=48947048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013557267A Active JP5764678B2 (ja) 2012-02-06 2012-02-06 計算機システムおよびデータ入出力方法

Country Status (5)

Country Link
US (1) US9323468B2 (ja)
EP (1) EP2735973A4 (ja)
JP (1) JP5764678B2 (ja)
CN (1) CN103814365B (ja)
WO (1) WO2013118243A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6074056B2 (ja) 2013-11-07 2017-02-01 株式会社日立製作所 計算機システムおよびデータ制御方法
JP6307962B2 (ja) * 2014-03-19 2018-04-11 日本電気株式会社 情報処理システム、情報処理方法、及び、情報処理プログラム
US10019175B2 (en) 2016-08-31 2018-07-10 International Business Machines Corporation Managing program access to data storage resources
KR102538222B1 (ko) 2018-06-26 2023-06-01 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 스토리지 시스템, 그리고 스토리지 장치를 액세스하는 방법
WO2020113875A1 (zh) * 2018-12-07 2020-06-11 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统
CN111290702B (zh) * 2018-12-07 2022-04-05 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储系统
JP7409700B2 (ja) * 2022-03-03 2024-01-09 Necプラットフォームズ株式会社 ストレージシステム、サーバ、パス切替方法、およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2006079355A (ja) * 2004-09-09 2006-03-23 Hitachi Ltd ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954881B1 (en) * 2000-10-13 2005-10-11 International Business Machines Corporation Method and apparatus for providing multi-path I/O in non-concurrent clustering environment using SCSI-3 persistent reserve
US6675268B1 (en) * 2000-12-11 2004-01-06 Lsi Logic Corporation Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
JP4452064B2 (ja) 2003-11-18 2010-04-21 株式会社日立製作所 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
CN1622542A (zh) * 2003-11-24 2005-06-01 顺德市顺达电脑厂有限公司 具有服务品质管理之储存系统与其操作方法
JP2008134775A (ja) * 2006-11-28 2008-06-12 Hitachi Ltd 記憶サブシステム及びこれを利用したリモートコピーシステム
JP5106913B2 (ja) 2007-04-23 2012-12-26 株式会社日立製作所 ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP5490093B2 (ja) * 2008-10-10 2014-05-14 株式会社日立製作所 ストレージシステムおよびその制御方法
JP2010108300A (ja) 2008-10-30 2010-05-13 Hitachi Ltd 情報処理システム、及び情報処理システムにおけるi/oのパスへの割り当て方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167040A (ja) * 1999-12-14 2001-06-22 Hitachi Ltd 記憶サブシステム及び記憶制御装置
JP2006079355A (ja) * 2004-09-09 2006-03-23 Hitachi Ltd ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法
JP2009009194A (ja) * 2007-06-26 2009-01-15 Hitachi Ltd 消費電力を削減する機能を備えたストレージシステム

Also Published As

Publication number Publication date
US9323468B2 (en) 2016-04-26
EP2735973A4 (en) 2015-03-11
JP5764678B2 (ja) 2015-08-19
US20140359212A1 (en) 2014-12-04
EP2735973A1 (en) 2014-05-28
CN103814365A (zh) 2014-05-21
WO2013118243A1 (ja) 2013-08-15
CN103814365B (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
JP5764678B2 (ja) 計算機システムおよびデータ入出力方法
US8909980B1 (en) Coordinating processing for request redirection
US9417978B2 (en) Management system for managing computer system, method for managing computer system, and storage medium
US8626967B1 (en) Virtualization of a storage processor for port failover
US8949656B1 (en) Port matching for data storage system port failover
US8751741B2 (en) Methods and structure for implementing logical device consistency in a clustered storage system
US8244924B2 (en) Discovery and configuration of device configurations
US8904050B1 (en) Techniques for automated data storage system port initialization
US20140351545A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage device
WO2014167716A1 (ja) 計算機システムの管理システム及び管理方法
JP2010113707A (ja) 物理及び仮想マルチパス入出力を動的に管理する方法、装置、システム、及びプログラム
WO2013157072A1 (ja) 計算機システム、リソース管理方法及び管理計算機
JP2007148812A (ja) ストレージシステム及びその負荷分散方法
US20160357439A1 (en) Management system for storage system
JP2008269469A (ja) ストレージシステム及びその管理方法
US8788750B2 (en) Managing resources in cluster storage systems
US10459768B2 (en) Computer system, management system, and resource management method
JP5843888B2 (ja) 計算機システムの管理方法、計算機システム及び記憶媒体
US10013216B2 (en) Storage system
US20100235549A1 (en) Computer and input/output control method
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
US20170038995A1 (en) Storage system and notification control method
JP6516875B2 (ja) 統合プラットフォーム、サーバ、及び、フェイルオーバ方法
JP7316322B2 (ja) 管理システム、データリバランス管理方法、及びデータリバランス管理プログラム
WO2016203580A1 (ja) 管理計算機、リソース移動管理方法、及び計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150615

R150 Certificate of patent or registration of utility model

Ref document number: 5764678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150