(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】接続先判断装置、接続先判断方法、および、接続先判断装置のためのコンピュータプログラム
(51)【国際特許分類】
G06F 13/14 20060101AFI20240814BHJP
G06F 13/10 20060101ALI20240814BHJP
G06F 3/06 20060101ALI20240814BHJP
G06F 11/34 20060101ALI20240814BHJP
G06F 11/30 20060101ALI20240814BHJP
【FI】
G06F13/14 310H
G06F13/10 340A
G06F3/06 301A
G06F11/34 142
G06F11/30 140M
G06F11/30 155
(21)【出願番号】P 2023031873
(22)【出願日】2023-03-02
【審査請求日】2023-03-02
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】柿崎 堅太
【審査官】松平 英
(56)【参考文献】
【文献】国際公開第2016/075779(WO,A1)
【文献】国際公開第2015/107676(WO,A1)
【文献】特開2011-059970(JP,A)
【文献】特開2021-189884(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
11/07
11/28-11/36
12/00-12/128
13/00-13/18
(57)【特許請求の範囲】
【請求項1】
ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う制御部、
を備え
、
前記制御部は、前記データ転送における転送量が基準値以下でない場合、前記所定のストレージへの空きパスを備えた複数のチャネルに対して、前記所定のストレージへの前記データ転送における負荷分散処理のための制御をするチャネル制御部を備える、
接続先判断装置。
【請求項2】
前記チャネル制御部は、前記データ転送における転送量が基準値以下の場合、前記所定のストレージへの空きパスを備えた複数のチャネルのうち、使用頻度または使用率の最も低い空きパスを選択し、選択したパスのチャネルに対して前記データ転送を行うための制御をする、
請求項
1に記載の接続先判断装置。
【請求項3】
前記制御部は、パスを介した前記各チャネルのストレージに対するリンクアップ時に、前記各チャネルの各パスの接続先となるストレージのストレージ番号を取得するストレージ番号取得部を備える、
請求項1に記載の接続先判断装置。
【請求項4】
前記制御部は、各チャネルの空きパス情報を用いて前記所定のストレージへの空きパスを備えたチャネルを選択する空きパス確認部をさらに備える、
請求項
1または2に記載の接続先判断装置。
【請求項5】
前記空きパス確認部は、前記複数のチャネルの各チャネルのパスの空き情報、パスの使用頻度、および/または、パスの使用率を、前記各チャネルを監視するIOPから取得・保持し、
前記チャネル制御部は、前記パスの使用頻度またはパスの使用率もさらに利用して、前記所定のストレージへの空きパスを備えたチャネルを選択する、
請求項
4に記載の接続先判断装置。
【請求項6】
前記空きパス確認部は、前記複数のチャネルの各チャネルの前記各チャネルのパスの空き情報、パスの使用頻度、および/または、パスの使用率を管理し、
前記チャネル制御部は、前記パスの使用頻度またはパスの使用率もさらに利用して、前記所定のストレージへの空きパスを備えたチャネルを選択する、
請求項
4に記載の接続先判断装置。
【請求項7】
ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、
前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、
前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う、
接続先判断方法であって、
前記データ転送における転送量が基準値以下でない場合、前記所定のストレージへの空きパスを備えた複数のチャネルに対して、前記所定のストレージへの前記データ転送における負荷分散処理のための制御をさらに行う、
接続先判断方法。
【請求項8】
接続先判断装置のためのコンピュータプログラムであって、
ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、
前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、
前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う、
ことをコンピュータに実行させる、コンピュータプログラムであって、
前記データ転送における転送量が基準値以下でない場合、前記所定のストレージへの空きパスを備えた複数のチャネルに対して、前記所定のストレージへの前記データ転送における負荷分散処理のための制御を行う、
ことをコンピュータに
さらに実行させる、接続先判断装置のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続先判断装置、接続先判断方法、および、接続先判断装置のためのコンピュータプログラムに関する。
【背景技術】
【0002】
ホストコンピュータとストレージ間で通信するに際し、ホストコンピュータの構成情報とストレージ内のアドレス情報を対応させることで1対1の通信が可能となる。ホストコンピュータとストレージ間は、1本の通信パスがあれば通信可能であるが、冗長化のためホストコンピュータからストレージに対して複数のパスが設置されることが一般的である。
【0003】
ところで、1つのパスあたりの通信のデータ量に上限が課せられている。冗長化のために複数の通信パスが設けられている際、ストレージ内の各アドレスに対するアクセス頻度が異なるため、使用頻度の高いパスと低いパスが生じてしまうことがある。これにより、ホストコンピュータのCPUとは別に入出力制御機能を独立して担当するIOP(Input Output Processor)の処理頻度や通信パスの消耗が偏る。結果として、使用頻度の低い通信パスより使用頻度の高い通信パスにおいて、性能の悪化やHBA(Host Bus Adapter)の光モジュールの光量低下が起きる確率が上がり、障害の原因となりうる問題がある。また、扱う情報量が多くなると、ストレージにおける論理ディスク数が増え、ストレージ内のアドレスがより多く必要となる。そのため、構成情報の増大や設置するケーブルの増加が考えられ、コストが増えるという問題がある。
【0004】
特許文献1は、単位時間当たりに制御を行う時間の割合を表す使用率と、制御に要する所要時間とに基づいて制御に係る処理を実行できない期間を算出し、複数の処理経路のうち算出した期間が最短である処理経路を選ぶ処理経路選択装置を開示する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示の発明は、複数パスにて負荷分散する際に、ホストコンピュータから通信する先が同じストレージであることを前提としている。ホストコンピュータと複数のストレージを接続して負荷分散すると、複数のストレージ間において共通するアドレス番地があった場合、誤って他のストレージの共通するアドレス番地にアクセスする恐れがあり、その際にはデータの損失となってしまうことがある。
【0007】
そこでこの発明は、上述の課題を解決すべくなされたもので、接続先判断装置、接続先判断方法、および、接続先判断装置のためのコンピュータプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の第1の態様によれば、接続先判断装置は、ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う制御部、を備える。
【0009】
また、本発明の第2の態様によれば、接続先判断方法は、ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う。
【0010】
また、本発明の第3の態様によれば、接続先判断装置のためのコンピュータプログラムは、ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う、 ことをコンピュータに実行させる。
【発明の効果】
【0011】
本発明によれば、ホストコンピュータに複数のストレージが接続され、それら複数のストレージ間において共通するアドレス番地があっても、正しいストレージにデータを転送可能となる、という効果が得られる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態における接続先判断装置を含むシステムの構成を示す図である。
【
図2】本発明の一実施形態における接続先判断装置の構成を示す図である。
【
図3】本発明の一実施形態における接続先判断装置を含むシステムの動作を示すフローチャートである。
【
図4】本発明の一実施形態における接続先判断装置を含むシステムにおいてデータ量が基準値以下の場合の動作例を示すフローチャートである。
【
図5】本発明の一実施形態における接続先判断装置を含むシステムにおいてデータ量が基準値以下でない場合の動作例を示すフローチャートである。
【
図6】本発明の一実施形態における接続先判断装置を実現する際のハードウェア構成の一例を示す図である。
【
図7】本発明の一実施形態による接続先判断装置の最小構成図を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施形態による接続先判断装置について、図面を参照して説明する。
図1は同実施形態による接続先判断装置を含むシステムの構成を示すブロック図である。
図1に示すシステムは、ホストコンピュータ2、複数の入出力処理装置(IOP:Input Output Processor)、接続先判断装置1、複数のチャネル(CH)、および、複数のストレージにより構成され、ホストコンピュータ2と複数のストレージが接続される構成となる。
図1は、IOP、チャネル、ストレージは、それぞれ、4つのIOP(IOP1からIOP4)、4つのチャネル(CH1からCH4)、2つのストレージ(ストレージA、B)の例を示す。これらの複数のIOP、複数のチャネルにより、並列処理の実現やReliability Availability Serviceability(RAS)性能の向上のために、4つのCHから同一アドレスを備えた2つのストレージA,Bに対して、それぞれ4本の通信パスが設けられる。
【0014】
ホストコンピュータ2は、OS(Operating System)とCPU(Central Processing Unit)と含む。ホストコンピュータ2からストレージA,Bへのインターフェイスとして、複数のIOPと複数のチャネルとが設けられ、IOPとチャネルを用いてストレージAやBに対してデータの転送(入出力)をする。ストレージA,Bとのデータの入出力に関して、OSは入出力命令の発行などの命令全般を行う。CPUは入出力処理手段を備え、OSが発行する入出力命令を実行して、IOPに対する入出力要求を起動する。また、CPUは、IOPから異常終了(無応答等)の通知を受けて、OSに転送不成功を通知する機能も有している。
【0015】
ストレージA,Bは、HDD(Hard Disk Drive)やSSD(Solid State Drive)などのディスク装置である。なお、ストレージA,Bは、物理的な装置だけでなく、論理ディスク等のデータを保持する媒体であってもよい。なお、ストレージAおよびストレージBには、共通するアドレスがあるものとする。
【0016】
IOPは転送処理手段を備え、ホストコンピュータ2のCPUから入出力要求を受けると、ストレージとの間のデータ転送処理を実行する。また、IOPは配下に接続されているCHにおける“空きパス”とパスの使用頻度、および/または、パスの使用率を管理する。この“空きパス”とは、OSからの入出力要求のある際に、チャネルからストレージへの使用していない通信パスを意味する。パスの使用頻度は、通信要求から実際に使用したパスに関するデータから算出する。また、パスの使用頻度は、直近の所定期間におけるそのパスの使用回数であってもよい。パスの使用率は各パスの使用頻度を全体のパス数で割ることで算出する。なお、
図1の例では、ストレージA,Bへの各通信パスは4つであることから、パスの使用率は各パスの使用頻度をパス数の“4”で割った値となる。また、IOPは、他のIOPとの間で使用頻度や使用率に関する情報を共有する機能を有している。例えば、IOP間には図示しないIOP間通信パスがあり、そのパスを介してIOPは他のIOPが配下とするチャネルの空きパスや、パスの使用頻度や使用率を共有可能にしている。なお、これは一例であり、他の方法で、IOPが他のIOPとの間で空きパスや、使用頻度や使用率に関する情報を共有する機能を実現してもよい。
【0017】
各チャネルはストレージを接続するための機能を提供するHBA(Host Bus Adopter)を搭載し、FCケーブル(Fiber Channelケーブル)など介してストレージと繋がることで通信できる機能を有している。また、各チャネルは、ホストコンピュータ2とストレージA、Bとの間でデータの送受信が可能となるリンクアップ時に、ストレージよりストレージ番号を取得し、取得したストレージ番号をパスと関係づけて接続先判断装置1に通知する機能も備える。
【0018】
接続先判断装置1は、IOPとチャネルの間に設けられ、チャネルから取得したストレージ番号の情報をチャネルのパスと関連付けて保持し、IOPを介して得られるOSからの入出力要求にあるストレージ先と一致するか否かを判断する機能等を有する。接続先判断装置1の構成について
図2を用いて説明する。
【0019】
図2に示すように、接続先判断装置1は、制御部10と記憶部20とを備える。制御部10は、複数のストレージのうちの所定のストレージへのデータ入出力の要求があった際、チャネルから得ているパスに対するストレージ番号を用いて、データ入出力の要求があったストレージのストレージ番号と一致する空きパスを備えたチャネルを選択する。また、制御部10は、選択したチャネルの空きパスを用いて、データ転送の要求のあった所定のストレージへのデータ転送のための制御を行う。
【0020】
記憶部20は、接続先判断装置1における処理のために必要な情報となるストレージ番号21とチャネル情報22とを記憶する。ストレージ番号21は、チャネルからストレージへの各パスについて、どのストレージと接続されているかを示す情報である。
図1の例では、4つのチャネルCH1~CH4においてそれぞれ2つのパスがあり、ストレージは、A,Bの2つがあることから、ストレージ番号21は、8つのパスがリンクアップ時にストレージA、または、ストレージBのいずれに接続されているかを示す情報となる。チャネル情報22は、各チャネルにおいてパスの空き情報と、パスの使用頻度、および/または、使用頻度に関する情報である。
図1の例では、チャネル情報22は4つのチャネルCH1~CH4がそれぞれ有する2つのパス、計8つのパスにおける、パスの使用状況、使用頻度、および/または、パスの使用率を示す情報となる。
【0021】
制御部10は、ストレージ番号取得部11、空きパス確認部12、チャネル制御部13を備える。ストレージ番号取得部11は、チャネルからストレージへのパスを介したリンクアップ時に、チャネルのパスの接続先となるストレージのストレージ番号をチャネルより受け取り、各パスと接続されるストレージとの関係をストレージ番号21に記憶させる。
【0022】
空きパス確認部12は、複数のIOPにおける各IOPのチャネルの空きパス情報を取得する。また、空きパス確認部12は、各チャネルにおける各パスの空き情報、各パスの使用頻度、および/または、各パスの使用率についてチャネル情報22に記憶(保持)させる。なお、IOPが他のIOPと配下のチャネルの各パスの空き情報や使用頻度、および/または、使用率を共有可能な場合、各IOPのチャネルの空きパス情報等の取得は、入出力要求を受けたIOPより、入出力要求とともにそれら情報を得るものとする。あるいは、空きパス確認部12は、接続先判断装置1があるIOPから入出力要求を受けた際、各IOPの管理するチャネルについてのパスの空き情報や使用頻度、および/または、使用率を、それぞれのIOPに問い合わせて、それぞれのIOPから得るようにしてもよい。また、空きパス確認部12は、空きパス情報を用いて、入出力要求のあったストレージへの空きパスを備えたチャネルを選択する。
【0023】
チャネル制御部13は、データ転送における転送量が基準値以下である場合、選択されたパスの使用頻度、および/または、使用率から、最も低い使用頻度、および/または、使用率のパスを選択して、そのパスを制御するチャネルに、そのパスを介してストレージへのデータの入出力を行わせる。加えて、チャネル制御部13は、データ転送における転送量が基準値以下でない場合であって、選択されたパスが複数の場合、それら複数のパスを用いた負荷分散を行いつつストレージへのデータの入出力が行えるよう、それらパスを制御するチャネルにデータの転送を行わせる。
【0024】
次に、接続先判断装置1を含むシステムの動作について図を用いて説明する。
図3は、
図1に示す接続先判断装置1を含むシステムにおいて、ストレージに対するデータの入出力要求があった際の動作を示すフローチャートである。
図3に示す動作の前提として、各パスの接続先ストレージを取得して、記憶部20のストレージ番号21に保管されているものとする。
【0025】
IOP1~IOP4は配下にあるチャネルCH1~4の空きパスと使用率、および/または、使用頻度を常時、管理する(ステップS1)。
図1では、IOP1がCH1を、IOP2がCH2を、IOP3がCH3を、IOP4がCH4を配下に備え、管理する。また、各IOPは、他のIOPの配下のチャネルにおける空きパスと使用率、および/または、使用頻度の情報を共有する。
【0026】
OSがあるIOPにデータ通信となる入出力要求(通信要求)と共に、通信先となるストレージ情報もIOPに渡す(ステップS2)。OSは、特定のIOPに処理が集中しないようラウンドロビン等の方法により、入出力要求を行うIOPを選択する。なお、OSは、通信先となるストレージ情報とともに、データの転送を行う際のそのストレージにおける論理アドレスにもIOPに渡すが、以下での説明では、ストレージにおける論理アドレスへの言及は省略する。
【0027】
IOPは、入出力対象となるデータのデータ量が、1パスで通信可能なデータ量の上限を超えるかどうか判断する(ステップS3)。ストレージに対するデータの入出力では、1つの通信パスで転送可能なデータ量の上限が定められている。なお、“1パス”とは、1つの通信パスという意味で用いる。IOPは、入出力要求を転送対象となるデータやステップS2での判断結果とともに接続先判断装置1に送る。また、IOPは、ここでの処理において、各IOPの空きパス情報、パスの使用頻度、および/または、使用率も、接続先判断装置1に送る。接続先判断装置1の空きパス確認部12は、IOPからの各IOPの空きパス情報、パスの使用頻度、および/または、使用率を記憶部20のチャネル情報22に保持する。
【0028】
1パスで通信可能なデータ量の上限以下であれば(ステップS3:Yes)、空きパス確認部12、ストレージ番号21とチャネル情報22を参照することで、転送先のストレージ情報を用いて、転送先のストレージと接続している空きパスを検索する(ステップS4)。チャネル制御部13は、検索された空きパスの中で、使用頻度、あるいは、使用率が最も低いパスを選択する。そして、チャネル制御部13は、選択したパスを制御するチャネルに対して、選択したパスを介してデータをストレージに転送するように制御する。(ステップS5)。
【0029】
1パスで通信可能なデータ量の上限以下でない場合(ステップS3:No)、空きパス確認部12は、ストレージ番号21とチャネル情報22を参照することで、転送先のストレージ情報を用いた空きパスの検索をする。さらに、空きパス確認部12は、検索した空きパスがすべて転送先となるストレージと同一か否か判断する(ステップS6)。空きパスがすべて転送先となるストレージと同一の場合(ステップS6:Yes)、チャネル制御部13は、空きパスを複数用いたデータ転送における負荷散処理をするように空きパスを制御するチャネルに対する制御を行う(ステップS7)。一方、空きパスがすべて転送先となるストレージと同一ではない場合(ステップS6:No)、チャネル制御部13は、転送先となるストレージと同一となる空きパスのみを複数用いてテータ転送における負荷散処理をするように空きパスを制御するチャネルに対する制御を行う(ステップS8)。
【0030】
なお、ステップS4、S6で空きパスが見つからない場合、接続先判断装置1の制御部10は、IOPを介してOSにその旨を通知する。
【0031】
次に、接続先判断装置1を含むシステムの動作について、より具体的な例を用いて説明する。具体的な例では、1パスの通信上限が256バイトで、
図1に示すようにホストコンピュータ2にストレージAとストレージBが接続されている構成を仮定する。また、ストレージに対するデータの転送が書き込み要求で、ストレージAに対する書き込みデータ量が8バイトの通信の場合と、ストレージBに対する書き込みデータ量が1024バイトの通信とした場合の2つの例について説明する。
【0032】
最初に、ストレージAに対して書き込みデータ量が8バイトの通信の場合の接続先判断装置1を含むシステムの動作について、
図4を用いて説明する。なお、
図4において、
図3に示すステップと対応するステップには、同じステップ番号を付している。
【0033】
各チャネルは、チャネル配下のパスをストレージAまたはストレージBに対してリンクアップする際に、パスに対するストレージ番号を取得する。また、各チャネルは、チャネル配下のパスとパスの接続先となるストレージ情報を関連付けて、接続先判断装置1に通知する(ステップS10)。接続先判断装置1のストレージ番号取得部11は、各チャネルからのチャネル配下のパスとパスの接続先となるストレージ情報を、記憶部20のストレージ番号21に記憶させる(ステップS11)。
【0034】
また、各IOPは、配下のチャネルにおける空きパスと、パス使用頻度、および/または、パス使用率を、常時、監視・更新する(ステップS1)。
【0035】
ステップS10およびS11の処理が完了した後であって、ステップS1の処理が行われている状況下において、ホストコンピュータ2のOSはIOPにストレージAに対して8バイトのデータの書き込み要求を送る(ステップS2)。なお、ここでは、OSがIOP1に対して書き込み要求を行うものとする。
【0036】
1パスの通信上限が256バイトで、OSからの書き込み要求のデータが8バイトであることから、IOP1は、データ量が1パスの通信上限以下であると判断する(ステップS3)。そして、IOP1は、書き込み要求、書き込み先のストレージ情報(ストレージA)、および、書き込み対象となる8バイトのデータ等を接続先判断装置1に送る。IOP1は、さらに、他のIOPと情報を共有する機能を用いて得たIOP2からIOP4の配下のチャネルのパスの空き情報と、パスの使用頻度、および/または、パスの使用率とともに、IOP1自身の配下のCH1のパスの空き情報と、パスの使用頻度、および/または、パスの使用率を接続先判断装置1に送る(ステップS3a)。なお、制御部10の空きパス確認部12は、IOP1からの各パスの空き情報と、パスの使用頻度、および/または、使用率を記憶部20のチャネル情報22に保持する。
【0037】
接続先判断装置1の空きパス確認部12は、IOP1から書き込み要求等の情報を受けると、記憶部20のストレージ番号21を参照し、ストレージAに対する空きパスを検索する(ステップS4)。また、チャネル制御部13は、各パスの使用頻度または使用利率を用いて、ステップS4で検索された空きパスのうち、使用頻度または使用利率の低いパスを選択する(ステップS5)なお、チャネル制御部13は、空きパスが1つの場合にはそのパスを選択し、空きパスがない場合、“書き込み不可”として、IOP1を介して、その旨をOSに通知する。
【0038】
チャネル制御部13は、ステップS5で選択したパスを制御するチャネルに対して、8ビットのデータをストレージAに書き込むように制御する。例えば、ステップS5で選択した使用頻度または使用率が最も低い空きパスが、CH3の配下のパスである場合にはCH3に対して、チャネル制御部13は8ビットのデータをストレージAに書き込むように制御する。なお、チャネル制御部13により制御を受けたチャネルは、配下のストレージAに接続するパスを介して、8ビットのデータをストレージAに書き込むための処理をする(ステップS5a)。
【0039】
次に、ストレージBに対して書き込みデータ量が1024バイトの通信の場合の接続先判断装置1を含むシステムの動作について、
図5を用いて説明する。なお、
図5において、
図3または
図4に示すステップと対応するステップには、同じステップ番号を付している。
図5において、ステップS10、S11、および、ステップS1は
図4で説明した通りであり、それらの説明を省略する。
【0040】
ホストコンピュータ2のOSはIOPにストレージBに対して1024バイトのデータの書き込み要求を送る(ステップS2)。なお、ここでは、OSがIOP2に対して書き込み要求を送るものとする。
【0041】
1パスの通信上限が256バイトで、OSからの書き込み要求のデータが1024バイトであることから、IOP2は、データ量が1パスの通信上限以下でないと判断する(ステップS3)。そして、IOP2は、書き込み要求、書き込み先のストレージ情報(ストレージB)、および、書き込み対象となる1024バイトのデータ等を接続先判断装置1に送る。IOP2は、さらに、他のIOPと情報を共有する機能を用いて得たIOP1、IOP3、IOP4の配下のチャネルのパスの空き情報と、パスの使用頻度、および/または、使用率とともに、IOP2自らの配下のCH2のパスの空き情報と、パスの使用頻度、および/または、使用率を接続先判断装置1に送る(ステップS3a)。なお、制御部10の空きパス確認部12は、IOP2からの各パスの空き情報と、パスの使用頻度、および/または、パスの使用率を記憶部20のチャネル情報22に保持する。
【0042】
接続先判断装置1の空きパス確認部12は、IOP2からの書き込み要求等の情報を受けると、記憶部20のチャネル情報22を参照することで、空きパスを検索する。また空きパス確認部12は、チャネル情報22を参照して、空きパスがすべて書き込み対象となるストレージBか否かを確認する(ステップS6)。ここでは、検索された空きパスとして、ストレージAに対するパスとストレージBに対するパスとの双方が検索されたとする。
【0043】
検索された空きパスがすべてストレージBではなかったことから(ステップ6:No)、空きパス確認部12は、空きパスのうちストレージBに対する空きパスを抽出する。また、チャネル制御部13は、空きパス確認部12からのストレージBに対する空きパスを用いて、1024バイトのデータを負荷分散しつつストレージBに対して書き込むようにチャネルの制御を行う。制御を受けたチャネルは、データをストレージBに対して書き込む処理を行う(ステップS8a)。例えば、ステップS5で選択したパスが、CH1からCH4の配下の1つずつパスである場合、チャネル制御部13は、各チャネルに1パスの上限以下となるように256バイトを割り振り、CH1からCH4の配下のそれぞれ1つのパスを介して、256バイトずつをストレージBに対して書き込むよう各チャネルを制御する。また、チャネルCH1からCH4は、ストレージBに接続する配下のパスをそれぞれ介して、256ビットのデータをストレージBに書き込む処理をする。
【0044】
なお、ステップS5で選択したパスが、CH1からCH3の配下の1つずつパス、計3つのパスである場合、チャネル制御部13は、CH1からCH3の各チャネルに1パスの上限以下となるように256バイトを割り振り、CH1からCH3の配下のそれぞれ1つのパスを介して、256バイトずつをストレージBに対して書き込むよう制御する。また、チャネルCH1からCH3のいずれかが、ストレージBに接続する配下のパスを介して256ビットのデータをストレージBに書き込む処理を終了したら、チャネル制御部13は、書き込み処理が完了したチャネルのパスに256バイトを割り振り、そのチャネルを用いて残り256バイトをストレージBに書き込むよう制御してもよい。
【0045】
別の例として、ストレージBへの書き込みデータ量が1024バイトでなく512バイトである場合であって、ストレージBへの空きパスが4つあった場合、チャネル制御部13は、パスの使用頻度または使用率が低い順に2つのパスを選択し、選択したパスにそれぞれ256バイトを割り振り、ストレージBへのデータ転送における負荷分散処理を行うようにしてもよい。
【0046】
以上のように、接続先判断装置1は、入出力要求のあったストレージに対するパスを選択する際にストレージ情報21を参照することで、複数のストレージ間において共通するアドレス番地がある場合でも、入出力要求のあったストレージに対して誤りなくデータの転送を行うことが可能となる。また、接続先判断装置1は、転送するデータのデータ容量に合わせて負荷分散のための制御を行うことから、ストレージに対して設置するパスの数に比例して、データの入出力効率を向上させることができる。
【0047】
なお、本実施の形態では、各IOPは、配下のチャネルにおける空きパスと、パス使用頻度、および/または、パス使用率を、常時、監視・更新するものとした。また、各IOPは他のIOPとの情報共有機能により他のIOPにおける配下のチャネルにおける空きパスと、パス使用頻度、および/または、パス使用率の情報の取得が可能で、接続先判断装置1への入出力要求時に、IOPからこれら情報を接続先判断装置1に通知するとして説明した。しかしながら、接続先判断装置1における各チャネルにおける空きパスと、パス使用頻度、および/または、パス使用率に関する情報の取得の方法はこれに限定するものではない。例えば、接続先判断装置1がIOPから入出力要求を受けるタイミングで、空きパス確認部12が、各IOPにそれらの配下のチャネルにおける空きパス情報、パスの使用頻度、および/または、使用率を要求し、要求により得た情報をチャネル情報22として、保持してもよい。または、接続先判断装置1のチャネル制御部13は、各チャネルの制御を行い、各チャネルのステータスを得られることから、接続先判断装置1の空きパス確認部12が、各パスの使用状況、パスの使用頻度、および/または、使用率を管理してもよい。
【0048】
また、各IOPは配下に接続されているチャネルCHにおける“空きパス”とパスの使用頻度または/およびパスの使用率を管理する、として説明した。各IOPがパスの使用頻度、または、パスの使用率の一方のみを管理する場合、
図3および
図4のステップS5では、管理する一方の値を用いて、パスを決定するようにしてもよい。
【0049】
図6は本発明の一実施形態による接続先判断装置1のハードウェア構成を示す図である。接続先判断装置1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、SSD(Solid State Drive)104といった不揮発性メモリ、および、IOPやチャネルと接続するための接続モジュール105を備える。
【0050】
CPU101は、ROM102またはSSD104等の記録媒体に記憶されるプログラムを実行することで、接続先判断装置1の各機能を実現する。
【0051】
SSD104は、接続先判断装置1の機能を実現するため必要となるデータ等も記憶する。なお、SSD104は、他の不揮発性の記憶装置、例えば、HDD(Hard Disk Drive)であってもよく、いくつかの異なる種類の不揮発性の記憶装置により構成させてもよい。
【0052】
図7は、本発明の一実施形態による接続先判断装置1の最小構成図を示す図である。接続先判断装置1は、制御部10を備える。制御部10は、ホストコンピュータから複数のストレージのいずれかにデータ転送を行うために用いられる複数のチャネルにおける各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う。
【0053】
なお、接続先判断装置1の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより接続先判断装置1における処理を実現しておもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0054】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0055】
1 接続先判断装置
2 ホストコンピュータ
10 制御部
11 ストレージ番号取得部
12 空きパス確認部
13 チャネル制御部
20 記憶部
21 ストレージ情報
22 チャネル情報
A,B ストレージ
CH1~CH4 チャネル
IOP1~IOP4 IOP(Input Output Processor)
【要約】
【課題】ホストコンピュータに複数のストレージが接続され、それら複数のストレージ間において共通するアドレス番地があっても、正しいストレージにデータを転送可能となる接続先判断装置を提供する。
【解決手段】接続先判断装置1は、ホストコンピュータ2から複数のストレージA,Bのいずれかにデータ転送を行うために用いられる複数のチャネル(CH1~CH4)における各チャネルの各パスの接続先となるストレージ番号を取得し、前記複数のストレージのうちの所定のストレージへのデータ転送の要求があった際、取得した前記各パスのストレージ番号を用いて前記所定のストレージと一致する空きパスを備えたチャネルを選択し、前記選択したチャネルの空きパスを用いた前記所定のストレージへのデータ転送のための制御を行う制御部を備える。
【選択図】
図1