



【0001】
【発明の属する技術分野】
  本発明は、上位装置からの情報の入出力要求を制御する入出力制御装置において、高性能、高信頼性を確保するため、入出力制御装置内のコントローラ/キャッシュを冗長構成とするコンピュータシステムに関する。
【0002】
【従来の技術】
  コントローラ、ディスクおよびキャッシュ等の記憶装置に冗長性を持たせ、かつ論理ボリューム(以下、LUNという)の担当コントローラを重複せず割り当てたものとして、特開平9−146842号に記載のようにキャッシュ領域を各コントローラ毎に割り当てて各コントローラが使用するキャッシュ領域を固定化することによりコントローラ間のキャッシュの排他制御をなくし、またコントローラ間の通信により、割り当てられたLUN以外のアクセスも担当コントローラに処理させることにより複数コントローラ化にともなう性能劣化を防いでいた。
【0003】
【発明が解決しようとする課題】
  最近の市場動向として、記憶装置の高性能化、高信頼性、大容量化、低価格化の要求が高まっており、上記の特開平9−146842号のような技術により、冗長化されたコントローラ、キャッシュを持つ構成で低価格、高性能なRAIDシステムを実現していた。
【0004】
  一方ホスト側の技術としてOracle Palarel Serverのように、基幹系大規模システムで実現していた、同一LUNへ複数のポート/コントローラを経由した負荷分散的アクセスの技術などが中規模以下のホストシステムでも適用されるようになった。そのため、上記のような低価格RAIDシステムにおいても、同一LUNへ複数のポート/コントローラを経由した負荷分散的アクセスに対する性能が重視されるようになった。
【0005】
  また、複数のホストを接続して同一LUNを共用するようにもなり、複数のポート/コントローラからの同一LUNへの個別アクセスに対する性能も重視されるようになった。
【0006】
  しかし上記特開平9−146842号では、複数ポート/コントローラ経由で同一のLUNへの順次(以下、シーケンシャルという)アクセスが分散された場合や、同一LUNへのホスト個別のシーケンシャルアクセスに対する性能確保が考慮されておらず、それらの性能劣化が問題となってきた。
【0007】
【課題を解決するための手段】
  上記課題を解決するために、本発明は、ホストコンピュータに対してデータの読み書きをするために論理ボリュームを提供するディスク装置を、複数のコントローラを介して制御する入出力制御装置において、各前記コントローラには、当該コントローラが担当する前記論理ボリュームが予め割り当てられ、前記コントローラは、非担当の前記論理ボリュームに対するアクセス要求を前記ホストコンピュータから受領した場合には、当該アクセス要求を当該論理ボリュームを担当する前記コントローラに送信する一方、自己が担当する前記論理ボリュームごとに、前記複数のコントローラをグループに分けて管理し、前記ホストコンピュータから当該論理ボリュームへのアクセスに関するシーケンシャル判定を、グループごとに、当該グループを構成する各前記コントローラを経由して受領した前記アクセス要求に基づいて行うことを特徴とする。
【0008】
この結果、複数のホストコンピュータに分散されたシーケンシャルのアクセス要求を、ホスト側発行時間の入れ替わり、および入出力制御装置内のコントローラ間通信における通信時間差等による、シーケンシャルの順番の入れ替わりなども考慮した、シーケンシャル判定する手段を提供し、かつ複数のホストコンピュータにつながったコントローラごとに、同一LUNへのシーケンシャル判定を実施する手段を提供することができる。
【0009】
【発明の実施の形態】
  以下、本発明の一実施例を、図面を用いて説明する。
【0010】
  図1は、本発明をマルチコントローラ構成の磁気ディスクアレイサブシステムに適用した場合の一構成図である。
【0011】
  図1において、1000、1100、1200はデータ処理を行う中央処理装置としてのホストコンピュータ、2000はディスク装置の制御を行うマルチコントローラ構成をとる入出力制御装置、7000はホストデータを格納するディスク装置である。ここで入出力制御装置2000は、ホストバスに直結したスロットに差込みホスト筐体に組み込む場合もあるし、制御装置として独立した筐体に組み込む場合も有るし、ディスク装置を組み込んだ筐体として実現する場合も有る。
【0012】
入出力制御装置2000は、ホストコンピュータ1000、1100、1200とディスク装置群7000間のデータ転送を制御するコントローラ3000、4000、5000、6000より構成する。
【0013】
  コントローラ3000は、ホストコンピュータ1000とのプロトコル制御を行うホストI/F制御部3100、データの転送を実行するデータ転送制御部3200、コントローラ全体を制御するマイクロプロセッサ(以下、プロセッサと称す)3300、ホストコンピュータ1000とディスク装置群7000のデータ転送に用いられるキャッシュ3400より構成する。
【0014】
  コントローラ4000、5000、6000はコントローラ3000と同一構成であり、各コントローラ間で通信を行う手段を有する。
【0015】
  各コントローラはあらかじめ排他的に割り当てられた担当LUNの処理を行い、非担当のLUNの処理要求をホストコンピュータから受け取った場合には、該LUNの担当コントローラに処理要求を通信し、処理結果を受け取ったのちにホストコンピュータへ処理結果を報告する。これらの処理のための制御情報は各コントローラのキャッシュメモリ上の共通管理エリアに格納することも可能である。
【0016】
  各コントローラは、ホストまたは他コントローラからの担当LUNの処理要求に関して図3に示すような担当LUNのReadシーケンシャル判定テーブルを参照して判定を行い、シーケンシャル制御処理を行う。シーケンシャル判定テーブルは、Read/Writeおよび担当LUN別に区別して各コントローラのキャッシュメモリ上の共通管理エリアに格納することも可能である。また、シーケンシャル制御処理とは、たとえばRead要求では次に予想されうる処理要求に該当するデータを、要求より先にディスク装置群からキャッシュ上に読み込む処理などである。
【0017】
  次に本実施例における、磁気ディスクサブシステムでのホストコンピュータからのI/O処理のシーケンシャル判定について図2、図3、図4を用いて説明する。
【0018】
  図2は各コントローラのI/O処理のフローチャート図である。ホストまたは他のコントローラからのI/O要求(501)を受領すると、担当LUNへのI/O処理要求かの判定を行い(502)、非担当のLUNの処理要求の場合は該LUNの担当コントローラへ処理要求を通信/結果受信を行う(507)。ここで、I/O要求(501)にはホストより受領したコントローラを示す情報が付加される。担当LUNへのI/O処理要求の判定(502)で、担当LUNへのI/O処理要求であればI/O処理判定を行い(503)、Read処理かWrite処理かの判定を行う。ここではRead処理でのフローを例にとり説明するが、Write処理でも同様である。I/O処理判定(503)でRead処理の場合、後に詳細に述べるシーケンシャル判定処理(504)を行う。その後、実際のコマンド処理を実施する。Readの場合、バッファ上のデータの有無の判定(505)を行い、有ればそのデータを用いてホスト又は処理要求元のコントローラは応答(509)を行う。バッファ上にデータが無ければディスク装置群からのデータ読み込み(506)を実施し、同様に応答(509)を行う。
【0019】
  図3はコントローラ3000のある担当LUNのReadシーケンシャル判定テーブル8000である。判定テーブル8000は、コントローラ種別8100、判定要否8200、判定グループ8300、コマンド格納エリア8400の各要素からなる。また各要素は、本構成におけるコントローラ数だけ存在し、各コントローラに関連付けられるものである。
【0020】
  コントローラ種別8100はコントローラそのものである。判定要否8200は、ユーザがコントローラ別にこのLUNへのReadアクセスに関し、シーケンシャル判定を行うか否かを設定可能な要素である。判定グループ8300は、ユーザがReadシーケンシャル判定を行うコントローラのグループ分けを行い、その結果が反映される要素である。
図3の例では、コントローラ3000および4000が同じグループ1でコントローラ5000が別のグループ2となっている。コマンド格納エリア8400は各コントローラ経由で受領したReadコマンドが格納されており、各コマンドは要求ロジカルアドレスおよび要求ブロック数からなる。
【0021】
  ここで、R1〜R5、R7はコントローラ3000および4000から分散されたシーケンシャルなReadコマンドで、数値が順序を示す。R6が欠如しているのは、コントローラ間通信やホストからの要求の遅延などの時間差により、コントローラ4000からの要求がまだコントローラ3000の到達していない場合に起こる可能性がある。r1〜r3はコントローラ5000からのシーケンシャルなReadコマンドで数値が順序を示す。
【0022】
  図4は、コントローラ3000の担当LUNへのReadコマンド処理におけるシーケンシャル判定処理の詳細である。コントローラ3000のWriteシーケンシャル判定や、他のコントローラのシーケンシャル判定も同様に可能なものである。
【0023】
  図2のI/O処理判定503の後、当該処理についてコントローラ3000が担当するLUNの中の選別901を行う。選別により、判定に使用するテーブル8000を決め、シーケンシャル判定要否902を確認する。このときI/O処理要求に付加されたコントローラ情報から、テーブル8000の該当するコントローラの判定要否8200を参照しyesなら判定グループの判別903、noならばそのまま本処理を抜ける。判定グループの判別903でテーブル8000の判定グループ8300を参照し該当するグループの処理904または908に進む。ここではコマンドR7を受領したものとしグループ1の場合で説明する。処理904に進み、判定グループ1に属するコマンド格納エリア8400内に、R(N−5)〜R(N−1)すなわちR2〜R6のコマンドが有るか無いかを判定する。この場合、R2〜R5が存在するのでシーケンシャル判定905となる。そして、コマンド格納907でR7に該当するコントローラのコマンド格納エリア8400に格納し、本処理を抜ける。また受け取ったコマンドがR100などのR1〜R6までとは離れたアクセスの場合は、処理904でシーケンシャル判定とはならず、シーケンシャル判定なし906となる。
【0024】
  この処理904の判定は一例であり、他の方法による判定も可能である。また、シーケンシャル判定905および、シーケンシャル判定なし906の利用の方法は、たとえば判定905では先読み処理を起動、判定906では先読み処理の中断などであり、他の利用方法も可能である。
【0025】
  また、判定テーブルを担当LUN毎に分け、テーブル内にコントローラグループを設定可能としているため、シーケンシャル判定がLUN毎、コントローラのグループ別に可能となる。
【0026】
【発明の効果】
  本発明によれば、複数のホストに分散されたシーケンシャルのアクセス要求を、ホスト側発行時間の入れ替わり、および入出力制御装置内のコントローラ間通信における通信時間差等による、シーケンシャルの順番の入れ替わりなども考慮した、シーケンシャル判定する手段を提供し、かつ複数のホストにつながったコントローラごとに、同一LUNへのシーケンシャル判定を実施する手段を提供することにより、コントローラ複数化によるシーケンシャル性能の劣化を防止することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す全体構成図である。
【図2】本発明の一実施例におけるI/O処理方式の一例を示すフローチャートである。
【図3】本発明の一実施例におけるシーケンシャル判定に用いられるテーブルの一例を示す概念図である。
【図4】本発明の一実施例におけるシーケンシャル判定処理の一例を示すフローチャートである。
【符号の説明】
  1000、1200、1300…ホストコンピュータ、2000…入出力制御装置、3000、4000、5000、6000…コントローラ、3100、4100、5100、6100…ホストI/F制御部、3200、4200、5200、6200…データ転送制御部、3300、4300、5300、6300…マイクロプロセッサ、3400、4400、5400、6400…キャッシュメモリ、7000…ディスク装置群、8000…シーケンシャル判定テーブル、8100…コントローラ種別要素、8200…判定要否要素、8300…判定グループ要素、8400…コマンド格納エリア、501〜509…I/O処理フロー、901〜902…Readシーケンシャル判定フロー。[0001]
 [Technical field to which the invention pertains]
 The present invention relates to a computer system in which a controller/cache in aninput /output control device that controls input/output requests for information from a host device is configured redundantly to ensure high performance and high reliability.
 [0002]
 2. Description of the Related Art
 By providing redundancy to storage devices such as controllers, disks, and caches, and by assigning controllers responsible forlogical volumes (hereinafter referred to as LUNs) without overlapping, as described in Japanese Patent Laid-Open Publication No. 9-146842, a cache area is assigned to each controller and the cache area used by each controller is fixed, thereby eliminating exclusive control of the cache between controllers, and by having the responsible controller process accesses other than those to the assigned LUNs through communication between the controllers, the performance degradation that accompanies the use of multiple controllers is prevented.
 [0003]
 [Problem to be solved by the invention]
 Recent market trends have led to an increasing demand for storage devices with higher performance, higher reliability, larger capacity, and lower cost, and technology such as that described in JP 09-146842 A has realized low-cost, high-performance RAID systems with configurations having redundant controllers and caches.
 [0004]
 On the other hand, host-side technologies such as Oracle Parallel Server, which have been realized in large-scale mission-critical systems, such as load-balanced access to the same LUN via multiple ports/controllers, have also come to be applied to medium-sized and smaller host systems. Therefore, even in the low-cost RAID systems mentioned above, emphasis has been placed on the performance of load-balanced access to the same LUN via multiple ports/controllers.
 [0005]
 Furthermore, multiple hosts are now connected and share the same LUN, and importance is now being placed on performance for individual access to the same LUN from multiple ports/controllers.
 [0006]
 However, the above-mentioned JP-A-9-146842 does not take into consideration the case where sequential access to thesame LUN is distributed via multiple ports/controllers,or the assurance of performance for sequential access to the same LUN by individual hosts, and performance degradation in these cases has become a problem.
 [0007]
 [Means for solving the problem]
 In order to solve the above problems, the present invention provides an input/output control device that controls, via a plurality of controllers, a disk device that provides a logical volume for a host computer to read andwrite data, wherein each controller is pre-assigned the logical volume that it is responsible for, and when a controller receives an access request from the host computer for a logical volume that it is not responsible for, it sends the access request to the controller responsible for that logical volume, while managing the plurality of controllers in groups for each of the logical volumes that it is responsible for,and makes sequential judgments regarding access to the logical volume from the host computerfor each group based on the access requests received via each of the controllers that make up the group .
 [0008]
As a result, a means is provided for sequentially determining sequential access requests distributed to multiple host computers, taking into account changes in the sequential order due to changes in host-side issue times and communication time differences in communication between controllers within an input/output control device, and a means is provided for performing sequential determination for the same LUN for each controller connected to multiple host computers.
 [0009]
 [0023]
An embodiment of the present invention will now be describedwith reference to the drawings.
 [0010]
 FIG. 1 is a diagram showinga configuration in which the present invention is applied to a magnetic disk array subsystem having a multi-controller configuration.
 [0011]
 1, 1000, 1100, and 1200 are host computers serving as central processing units for data processing, 2000 is aninput/output control device having a multi-controller configuration for controlling disk devices, and 7000 is a disk device for storing host data. Here, theinput/
 [0012]
 Theinput/
 [0013]
 The
 [0014]
 The
 [0015]
 Each controller processes the LUN that is exclusively assigned to it in advance, and when it receives a processing request for a LUN that it is not responsible for from a host computer, it communicates the processing request to the controller responsible for that LUN, and after receiving the processing result, reports the processing result to the host computer. The control information for these processes can also be stored in a common management area on the cache memory of each controller.
 [0016]
 Each controller performs sequential control processing by making a judgment based on a processing request for the assigned LUN from the host or other controllers by referring to a read sequential judgment table for the assigned LUN as shown in Fig. 3. The sequential judgment table can be stored in a common management area on the cache memory of each controller, distinguished by read/write and assigned LUN.In addition, sequential control processing is, for example, a process of reading data corresponding to the next expected processing request from a disk device group onto the cache before the request.
 [0017]
 Next, the sequential determination of I/O processing from a host computer in the magnetic disk subsystem in this embodiment will be described with reference to FIGS.
 [0018]
 2 is a flow chart of I/O processing of each controller. When an I/O request (501) is received from a host or another controller, it is judged whether it is an I/O processing request to a responsible LUN (502), and if it is a processing request to a non-responsible LUN, it communicates the processing request to the controller in charge of the LUN and receives the result (507). Here, information indicating the controller that received the I/O request from the host is added to the I/O request (501). In the judgment of an I/O processing request to a responsible LUN (502), if it is an I/O processing request to a responsible LUN, it judges an I/O processing (503) and judges whether it is a read processing or a write processing. Here, the flow in a read processing is explained as an example, but the same applies to a write processing. If the I/O processing judgment (503) is a read processing, it performs a sequential judgment processing (504) which will be described in detail later. After that, the actual command processing is performed. In the case of a read, the presence or absence of data in the buffer is determined (505), and if present, the host or the controller that originated the processing request uses that data to respond (509). If there is no data in the buffer, data is read from the disk device group (506), and a similar response (509) is made.
 [0019]
 3 shows a read sequential judgment table 8000 for a LUN in charge of a
 [0020]
 The
 3, the
 [0021]
 Here, R1 to R5 and R7 are sequential read commands distributed from
 [0022]
 4 shows the details of sequential determination processing in processing a read command to the LUN in charge of the
 [0023]
 After the I/
 [0024]
 The determination in
 [0025]
 Furthermore, since the judgment table is divided for each LUN in charge and controller groups can be set within the table, sequential judgment can be performed for each LUN and for each controller group.
 [0026]
 Effect of the Invention
 According to the present invention, a means is provided for making sequential judgments of sequential access requests distributed to multiple hosts, taking into consideration changes in the sequential order due to changes in host-side issue times and communication time differences in communications between controllers within an input/output control device, and by providing a means for performing sequential judgments for the same LUN for each controller connected to multiple hosts, it is possible to prevent deterioration of sequential performance due to the use of multiple controllers.
 [Brief description of the drawings]
 FIG. 1is an overall configuration diagram showingan embodiment of the present invention.
 FIG. 2is a flowchart showingan example of an I/O processing method according toan embodiment of the present invention.
 FIG. 3is a conceptual diagram showingan example of a table used for sequential determination inan embodiment of the present invention.
 FIG. 4is a flowchart showingan example of a sequential determination process according toan embodiment of the present invention.
 [Explanation of symbols]
 1000, 1200, 1300... host computer, 2000...input/output control device, 3000, 4000, 5000, 6000... controller, 3100, 4100, 5100, 6100... host I/F control unit, 3200, 4200, 5200, 6200... data transfer control unit, 3300, 4300, 5300, 6300... microprocessor, 3400, 4400, 5400, 6400... cache memory, 7000... disk device group, 8000... sequential judgment table, 8100... controller type element, 8200... judgment necessity element, 8300... judgment group element, 8400... command storage area, 501-509... I/O processing flow, 901-902... Read sequential judgment flow.
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| JP19388799AJP4379836B2 (en) | 1999-07-08 | 1999-07-08 | Input/Output Control Unit | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| JP19388799AJP4379836B2 (en) | 1999-07-08 | 1999-07-08 | Input/Output Control Unit | 
| Publication Number | Publication Date | 
|---|---|
| JP2001022530A JP2001022530A (en) | 2001-01-26 | 
| JP2001022530A5 JP2001022530A5 (en) | 2006-08-24 | 
| JP4379836B2true JP4379836B2 (en) | 2009-12-09 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| JP19388799AExpired - Fee RelatedJP4379836B2 (en) | 1999-07-08 | 1999-07-08 | Input/Output Control Unit | 
| Country | Link | 
|---|---|
| JP (1) | JP4379836B2 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP4474356B2 (en)* | 2005-12-27 | 2010-06-02 | 富士通株式会社 | Computer system and storage virtualization apparatus | 
| JP5124103B2 (en)* | 2006-05-16 | 2013-01-23 | 株式会社日立製作所 | Computer system | 
| JP5967054B2 (en)* | 2013-11-01 | 2016-08-10 | 日本電気株式会社 | Storage device, controller, storage system, data access method and program | 
| Publication number | Publication date | 
|---|---|
| JP2001022530A (en) | 2001-01-26 | 
| Publication | Publication Date | Title | 
|---|---|---|
| US7730257B2 (en) | Method and computer program product to increase I/O write performance in a redundant array | |
| US6122685A (en) | System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed | |
| US7971013B2 (en) | Compensating for write speed differences between mirroring storage devices by striping | |
| US8234467B2 (en) | Storage management device, storage system control device, storage medium storing storage management program, and storage system | |
| US6058489A (en) | On-line disk array reconfiguration | |
| US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
| JP3944449B2 (en) | Computer system, magnetic disk device, and disk cache control method | |
| US6009481A (en) | Mass storage system using internal system-level mirroring | |
| US7181578B1 (en) | Method and apparatus for efficient scalable storage management | |
| US7484050B2 (en) | High-density storage systems using hierarchical interconnect | |
| US7523253B2 (en) | Storage system comprising a plurality of tape media one of which corresponding to a virtual disk | |
| US20090043982A1 (en) | Automated on-line capacity expansion method for storage device | |
| US20020099908A1 (en) | Apparatus and method for reallocating logical to physical disk devices using a storage controller, with access frequency and sequential access ratio calculations and display | |
| US9547446B2 (en) | Fine-grained control of data placement | |
| JP2007156597A (en) | Storage device | |
| US7065615B2 (en) | Storage control system storing operation information | |
| JP2007188341A (en) | Storage device controller | |
| JP2010049502A (en) | Storage subsystem and storage system having the same | |
| US20090198942A1 (en) | Storage system provided with a plurality of controller modules | |
| JP3617631B2 (en) | Storage control apparatus and control method thereof | |
| GB2416414A (en) | Host-side rerouting of I/O requests in a data storage system with redundant controllers | |
| JP2012506087A (en) | Power and performance management using MAIDX and adaptive data placement | |
| US20080195832A1 (en) | Storage controller and storage system | |
| US6438648B1 (en) | System apparatus and method for managing multiple host computer operating requirements in a data storage system | |
| JP2003006135A (en) | Input / output control device, input / output control method, and information storage system | 
| Date | Code | Title | Description | 
|---|---|---|---|
| RD01 | Notification of change of attorney | Free format text:JAPANESE INTERMEDIATE CODE: A7421 Effective date:20060417 | |
| A521 | Written amendment | Free format text:JAPANESE INTERMEDIATE CODE: A821 Effective date:20060628 Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20060628 | |
| A621 | Written request for application examination | Free format text:JAPANESE INTERMEDIATE CODE: A621 Effective date:20060628 | |
| RD02 | Notification of acceptance of power of attorney | Free format text:JAPANESE INTERMEDIATE CODE: A7422 Effective date:20060628 | |
| RD04 | Notification of resignation of power of attorney | Free format text:JAPANESE INTERMEDIATE CODE: A7424 Effective date:20071012 | |
| RD04 | Notification of resignation of power of attorney | Free format text:JAPANESE INTERMEDIATE CODE: A7424 Effective date:20090220 | |
| A131 | Notification of reasons for refusal | Free format text:JAPANESE INTERMEDIATE CODE: A131 Effective date:20090406 | |
| A521 | Written amendment | Free format text:JAPANESE INTERMEDIATE CODE: A523 Effective date:20090527 | |
| 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:20090910 | |
| A01 | Written decision to grant a patent or to grant a registration (utility model) | Free format text:JAPANESE INTERMEDIATE CODE: A01 | |
| A61 | First payment of annual fees (during grant procedure) | Free format text:JAPANESE INTERMEDIATE CODE: A61 Effective date:20090911 | |
| FPAY | Renewal fee payment (event date is renewal date of database) | Free format text:PAYMENT UNTIL: 20121002 Year of fee payment:3 | |
| R150 | Certificate of patent or registration of utility model | Free format text:JAPANESE INTERMEDIATE CODE: R150 | |
| FPAY | Renewal fee payment (event date is renewal date of database) | Free format text:PAYMENT UNTIL: 20131002 Year of fee payment:4 | |
| LAPS | Cancellation because of no payment of annual fees |