(57)【特許請求の範囲】
【請求項１】
ストレージシステムであって、
前記ストレージシステムは、第１のストレージ装置と第２のストレージ装置を含み、
前記第１のストレージ装置は、ポートと、前記ポートを制御するポート制御部と、データを記憶する記憶装置と、ディスク制御部と、メモリを有し、
前記ポート制御部は、
前記第１のストレージ装置が前記第２のストレージ装置から受信した要求に基づき前記第２のストレージ装置からのデータを受信する処理である第１の処理を実行するための複数の処理を含むターゲットタスクを生成し、
前記ターゲットタスクに含まれる複数の処理の完了を待つことなく、前記ディスク制御部が前記メモリに格納した転送指示情報に基づき、前記第１のストレージ装置から前記第２のストレージ装置へデータを転送する処理である第２の処理を実行するための複数の処理を含むイニシエータタスクを生成し、
生成された前記ターゲットタスクに含まれる複数の処理と前記イニシエータタスクに含まれる複数の処理とを切り替えて実行することで、前記ポートが前記第１の処理と前記第２の処理とを時分割で行うように制御することを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムにおいて、
前記転送指示情報は、データ転送先を識別する情報と、データの転送位置を示すアドレス情報とを含むことを特徴とするストレージシステム。
【請求項３】
請求項１に記載のストレージシステムにおいて、
前記ポート制御部は、前記第１のストレージ装置が前記第２のストレージ装置から要求を受信したときに、データ転送元を識別する情報と、データの格納位置を示すアドレス情報とを前記メモリに格納することを特徴とするストレージシステム。
【請求項４】
ストレージシステムであって、
前記ストレージシステムは、第１のストレージ装置と複数の他の装置を含み、
前記第１のストレージ装置は、ポートと、前記ポートを制御するポート制御部と、データを記憶する記憶装置と、ディスク制御部と、メモリを有し、
前記ポート制御部は、
前記第１のストレージ装置が前記複数の他の装置に含まれる第１の他の装置から受信した要求に基づき、前記第２のストレージ装置からのデータを受信する処理である第１の処理を実行するための複数の処理を含む第１のターゲットタスクを生成し、
前記ディスク制御部が前記メモリに格納した転送指示情報に基づき、前記第１のストレージ装置から前記第１の他の装置へデータを転送する処理である第２の処理を実行するための複数の処理の完了を待つことなく第１のイニシエータタスクを生成し、
生成された前記第１のイニシエータタスクまたは前記第１のターゲットタスクに含まれる複数の処理の完了を待つことなく、第２のイニシエータタスクまたは第２のターゲットタスクを生成し、
生成された前記第１のターゲットタスク、前記第２のターゲットタスク、前記第１のイニシエータタスク及び第２のイニシエータタスクに含まれる複数の処理を切り替えて実行することで、前記ポートが前記第１の処理と前記第２の処理とを時分割で行うように制御することを特徴とするストレージシステム。
【請求項５】
請求項４に記載のストレージシステムにおいて、
前記メモリは、前記第１の処理と前記第２の処理のいずれを優先するかを示す優先度情報を有し、
前記ディスク制御部は、前記優先度情報を読み出し、
前記優先度情報を読み出した結果、前記第１の処理が優先である場合は、前記第１の処理で一定時間データを受信し、その後、前記第２の処理で一定量のデータの転送を行い、
前記優先度情報を読み出した結果、前記第２の処理が優先である場合は、前記第２の処理で一定量のデータを転送し、その後、前記第１の処理で一定時間データを受信することを特徴とするストレージシステム。
【請求項６】
請求項４に記載のストレージシステムにおいて、
前記転送指示情報は、データ転送先を識別する情報と、データの転送位置を示すアドレス情報と
を含むことを特徴とするストレージシステム。
【請求項７】
請求項４に記載のストレージシステムにおいて、
前記ポート制御部は、前記第１のストレージ装置が前記第１の他の装置から要求を受信したときに、データ転送元を識別する情報と、データの格納位置を示すアドレス情報とを、前記メモリに格納することを特徴とするストレージシステム。
【請求項８】
請求項６又は請求項７に記載のストレージシステムにおいて、
前記ポート制御部は、前記メモリに格納された情報に基づき、通信する前記他の装置を切り替える制御を行なうことを特徴とするストレージシステム。
【請求項９】
ストレージシステムにおけるデータ送受信方法であって、
前記ストレージシステムは、第１のストレージ装置と第２のストレージ装置を含み、
前記第１のストレージ装置は、ポートと、前記ポートを制御するポート制御部と、データを記憶する記憶装置と、ディスク制御部と、メモリを有し、
前記ポート制御部は、
前記第１のストレージ装置が前記第２のストレージ装置から受信した要求に基づき、前記第２のストレージ装置からのデータを受信する処理である第１の処理を実行するための処理を含むターゲットタスクを生成し、
前記ディスク制御部が前記メモリに格納した転送指示情報に基づき、前記第１のストレージ装置から前記第２のストレージ装置へデータを転送する処理である第２の処理を実行するための複数の処理を含むイニシエータタスクを生成し、
生成された前記ターゲットタスクに含まれる複数の処理と前記イニシエータタスクに含まれる複数の処理とを切り替えて実行することで、前記ポートが前記第１の処理と前記第２の処理とを時分割で行なうように前記ポートを制御することを特徴とするストレージシステムにおけるデータ送受信方法。
【請求項１０】
ストレージシステムにおけるデータ送受信方法であって、
前記ストレージシステムは、第１のストレージ装置と複数の他の装置を含み、
前記第１のストレージ装置は、ポートと、前記ポートを制御するポート制御部と、データを記憶する記憶装置と、ディスク制御部と、メモリを有し、
前記ポート制御部は、
前記第１のストレージ装置が前記複数の装置に含まれる第１の他の装置から受信した要求に基づき、前記複数の他の装置からのデータを受信する処理である第１の処理を実行するための複数の処理を含むターゲットタスクを生成し、
前記ディスク制御部が前記メモリに格納した転送指示情報に基づき、前記第１のストレージ装置から前記複数の他の装置に含まれる第１の他の装置へデータを転送する処理である第２の処理を実行するための複数の処理を含むイニシエータタスクを生成し、
生成された第１の前記イニシエータタスクまたは第１の前記ターゲットタスクに含まれる複数の処理の完了を待つことなく、第２の前記イニシエータタスクまたは第２の前記ターゲットタスクを生成し、
生成された第１の前記ターゲットタスク、第２の前記ターゲットタスク、第１の前記イニシエータタスク、及び第２の前記イニシエータタスクに含まれる複数の処理を実行することで、前記ポートが前記第１の処理と前記第２の処理とを時分割で行なうように前記ポートを制御することを特徴とするストレージシステムにおけるデータ送受信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶システムに関し、特に高可用性を求められるコンピュータシステムに接続されるバックアップ処理可能な記憶システムに関する。
【０００２】
【従来技術】
今般の計算機システムは、電子商取引との融合により365日24時間稼動といった長時間稼動が必要となり、また保持する情報量も年々増加しているため、データの保全策も検討する必要があった。その中で特に装置障害等によるデータ喪失があってもすぐに復旧できるよう、データのバックアップは重要な処理として位置付けられている。
【０００３】
一般にハードディスク等のコンピュータの外部記憶装置（記憶システム）に記録されたデータは、装置の障害、ソフトウェアの欠陥、誤操作等によりデータを喪失した場合に、喪失データを回復できる様に定期的にテープなどにコピーして保存(バックアップ)する。このとき、バックアップデータは、採取した時点でのデータ記憶イメージで保存させる必要があり、かつバックアップ処理を実行しながら、通常のオンライン処理も実行させなければならない。そのために、オンライン処理でアクセスしているデータをデュプレックスし、バックアップ処理はデュプレックスされた一方のボリュームに対して実施し、バックアップ処理実行中のオンライン処理は、他方のボリュームに対して更新データを保持させながら行うことで実現されている。
【０００４】
従来、このようなバックアップの管理はホストコンピュータ側のプログラムにより行われていた。
【０００５】
例えば、米国特許５,６４９,１５２号公報に示されている技術では、あるデータの２重化の管理、任意時点のデータの保存、データの他記憶装置へのバックアップ転送指示等、全てホストコンピュータ内のバックアップ管理プログラムにて行われていた。
【０００６】
また、米国特許５,０５１,８８７号公報では、ホストコンピュータの管理により常に制御装置側にデータを二重に書き込んだ技術が示されている。この方式では、ホスト−制御装置間のデータ転送経路等に多大な負荷がかかっていた。
【０００７】
また、外部記憶装置によるデータの二重化による方法としては、例えば、コンピュータ内のプログラムが行っていたバックアップ管理を外部記憶装置内で行う技術がある。この例として、米国特許５,８４５,２９５号公報に示されている。これに示される技術では、二重化の管理、データの保存は外部記憶装置内で実現可能だが、実際にバックアップを行う時はホストコンピュータが外部記憶装置に対してＲＥＡＤ要求（以下ＲＤと記す）を行い、データを吸い上げ、他の記憶装置に対し、当該データのＷＲＩＴＥ要求（以下ＷＲと記す）を行うことにより実現していた。つまり、外部記憶装置としては、ホストからの指示に従い、ホストに対し、データを転送しているにすぎなかった。
【０００８】
その後ホストからの指示ではなく、外部記憶装置が直接他の記憶装置に対してデータコピーを実現する方法が米国特許５，７４２，７９２号公報において提案された。これは、オンライン処理を実施しながらバックグランドでデータのコピーを行うものである。この技術はバックアップとしても利用可能であり、これにより長時間連続稼動するなかでデータのバックアップ処理を実行できるようになった。
【０００９】
【発明が解決しようとする課題】
従来技術で示したとおり、長時間連続稼動のなかでのデータバックアップ処理を同時に連続稼動させる技術は確立しているが、これらの技術で開示されている外部記憶装置は主に大型外部記憶装置に適した技術である。データバックアップ処理とオンライン処理を実施する際、大型外部記憶装置のデータ転送口、すなわち、ホストとの接続口と、バックアップ装置との接続口（以下ポートとよぶ）を別々のハードウェアで実施することで実現されている。これは、大型外部記憶装置が冗長度を持たせるために複数のハードウエアを実装しているからである。こうした大型外部記憶装置の場合に、従来技術は適用可能である。
【００１０】
ところが、ワークステーションやパーソナルコンピュータなどに接続された小型外部記憶装置の場合には、冗長度を持たせることでコストがかかり、小型としてのメリットが活かせない問題がある。小型外部記憶装置も、大型外部記憶装置と同様、長時間連続稼動中の同時バックアップ処理を実現する要求が高まっており、如何に少ないハードウエアで実現するかが第1の課題であった。
【００１１】
また、従来のホスト指示によるバックアップ方式では、二重化処理中にデータ更新を行うと、外部記憶装置とホストとの転送が４回(二重化により２回分ＷＲ（Write）、バックアップ処理にてＲＤ（Read）、そして他記憶装置へのＷＲ（Write）)発生することになり、ホスト−記憶装置間のバスの負荷が増大し、通常のアプリケーションのパフォーマンスにまで影響せざるを得なかった。
【００１２】
特に、大量のデータをバックアップする際には、外部記憶装置内のプロセッサ処理能力がバックアップ処理に割かれるため、バックアップ終了までの長時間にわたり性能が低下する。最近、外部記憶装置内での二重化の機能が普及しているが、当該機能だけでは、バックアップの際の通常のオンライン処理に対するパフォーマンスの低下は防止できない。また、オープン向けの中小規模ディスクアレイ制御装置等では、コントローラとホストとのデータ転送経路は１つしか存在せず、この１つの経路がバスであった場合、バックアップを実現するためには、通常のオンライン処理を停止させるしかなかった。
【００１３】
本発明の第一の目的は、ホストとバックアップ用外部記憶装置との接続口であるポートを１つにし、かつ１つのポートでバックアップ処理と通常のオンライン処理とを同時にまたは切り替えながら実行することのできるポート制御部を有した外部記憶装置を実現することにある。
【００１４】
本発明の第２の目的は、オンライン処理のパフォーマンスを劣化させることなくバックアップ処理を実行可能な記憶制御装置を提供することにある。
【００１５】
【課題を解決するための手段】
上記課題を解決する為に、記憶システムにおいて、ホスト及び他記憶制御装置とのデータ転送を行う単一の通信ポート、制御情報とホストからのデータを格納するキャッシュメモリ、ホストからのデータを格納するディスク装置群等の記憶装置、通信ポートとキャッシュメモリと記憶装置を制御する制御部を設け、通信ポートを有するポート制御部において通信処理を多重化させることで実現する。ホストと外部記憶装置およびバックアップ用の他外部記憶装置との間をＦｉｂｒｅ  Ｎｅｔｗｏｒｋで接続する。制御情報は、通信ポート毎のホストからのＩ／Ｏ要求を実行する為の情報、他の記憶制御装置へのバックアップを行う為の転送情報、通信ポート毎の負荷情報、バックアップの進捗状態を管理する情報、ユーザーがポート毎にオンライン処理専用・バックアップ専用・オンライン／バックアップ共用を選択するための情報、データ二重化を制御するための情報、二重化とバックアップのタイミングをユーザーが指示するための情報等からなり、これらは必要に応じてキャッシュメモリに記録され使用される。
【００１６】
【発明の実施の形態】
以下、本発明の1実施例を図面を用いて説明する。
【００１７】
図１は、本実施例に関するディスクアレイ装置を含むシステム全体の１構成例である。図１に於いて、１０、２０、３０はホストコンピュータ（上位装置）であり、５０００、６０００はディスクアレイ装置（上位装置に対しての外部記憶装置（記憶システム））であり、各々のホスト及びディスクアレイ装置はＦａｂｒｉｃ ＳｗｉｔｃｈによりＦｉｂｒｅ Ｃｈａｎｎｅｌで接続され、ストレージエリアネットワーク(ＳＡＮ)４０を構成する。ディスクアレイ装置５０００、６０００は、ホストからのオンライン処理を各々実行してもいいし、ディスクアレイ装置６０００は、ディスクアレイ装置５０００のバックアップ用装置としてもよい。
【００１８】
本実施例ではディスクアレイ制御装置５０００がホストからのオンライン処理を実行しながら、データをデュプレックスし、ディスクアレイ制御装置６０００にバックアップデータを転送するものとする。尚、バックアップデータを受領する外部記憶装置（記憶システム）は、ディスクアレイ装置以外でもかまわない。例えば、バックアップ装置は、磁気テープライブラリ、及び光ディスク装置でもよい。
【００１９】
図２は、ディスクアレイ装置の構成を示す。ディスクアレイ装置５０００は、デュアル構成をとるコントローラＡ部１０００、コントローラＢ部２０００、ホストからのデータを格納するディスク装置群４０００、コントローラ内のポート制御部の動作の指定等を行うＰＣ／ＷＳ（３０００）から構成される。ディスク装置群４０００は、アレイ構成であることが多い。
【００２０】
次に、コントローラＡ，Ｂについて説明する。コントローラＡ、Ｂとも同じ構成であり、コントローラＡについて以下説明する。
【００２１】
コントローラＡは、それぞれ、キャッシュメモリ５００と、データ転送を行うポートＡ（１０１）および当該ポートＡを制御するポートＡ制御部１００と、データ転送を行うポートＢ（２０１）および当該ポートＢを制御するポートＢ制御部２００とを備える。これらポートは、Ｆｉｂｒｅ Ｃｈａｎｎｅｌに接続されＦａｂｒｉｃ  Ｓｗｉｔｃｈによりネットワークを構成している。
【００２２】
更に、コントローラＡは、コントローラA全体を制御するディスクアレイ制御部３００を有し、さらにディスクアレイ制御部３００は、当該コントローラを制御するための各種情報を格納するＲＡＭ４００を有する。また、ディスクアレイ制御部３００は、タイマー機能を併せ持っている（図２には図示しない）。
【００２３】
なお、前述のキャッシュメモリ５００は不揮発メモリであることが多い。また、本実施例では、キャッシュメモリ５００内のデータは、コントローラＢのキャッシュメモリに２重書きされる。キャッシュメモリ５００はホストからのデータを一時的に貯えるデータ部以外にデータの情報、状態を管理する管理情報部６００を持つ。
【００２４】
更に、コントローラＡは、ディスク装置群４０００を制御するディスク装置制御部（ドライブ制御部）７００、８００を有する。ディスク装置制御部は、ディスク装置群内のディスク装置とのデータ転送を行う。ディスク装置は、データを記憶する記憶ドライブとこれを制御するドライブ制御部からなり、ＳＣＳＩインターフェース、又はＦｉｂｒｅ Ｃｈａｎｎｅｌにてディスク制御装置と接続される。
【００２５】
本実施例では、コントローラＡは上位装置（ホストコンピュータ）とＦｉｂｒｅ Ｃｈａｎｎｅｌを経由して接続されており、コントローラ当たり２つのポートを持つ。障害制御部９００はコントローラＡ内の回復不可能な障害を検出すると、コントローラＢに検出した障害を通知する機能を持つ。報告を受けた、コントローラＢは、キャッシュメモリ内のデータ・管理情報を引き継ぎ、コントローラＡで行われていた処理を引き継ぐ。
【００２６】
図３にディスク装置群の構成を示す。ディスク装置群はアレイ構成をとり、複数の論理ボリュームを割り当てることができる。また、バックアップ用に割り当てられる論理ユニットの副ボリュームは論理ボリューム(正)毎に設定されていてもいいし、あるボリューム群がワークとして割り当てられていて、その部分を２重化する時に使用してもよい。
【００２７】
図４にポート制御部１００、２００とディスクアレイ制御部３００との間のＩ／Ｆ（インタフェース）情報を示す。Ｉ／Ｆ情報は、ポート毎に他の記憶制御装置への転送を指示する転送指示情報４１０（ポートＡ用）、４３０（ポートＢ用）と、ホストからのＩ／Ｏ要求をディスクアレイ制御部３００に伝えるホスト要求情報４２０（ポートＡ用）、４４０（ポートＢ用）から構成される。各情報は、ポートＩＤ（４１１）、コマンド４１２、キャッシュＡＤＲ（ＡＤＤＲＥＳＳ）情報４１３から構成される。ポートＩＤは、転送指示情報の場合はストレージエリアネットワーク上のどの装置に対するデータ転送要求かを識別する情報であり、ホスト要求情報の場合はどの装置からのデータ転送要求なのかを識別する情報である。ポートＩＤは、具体的には、Ｆｉｂｒｅ  ＣｈａｎｎｅｌのＡＬ−ＰＡ（Fibre Channel Arbitrated Loop or FC-AL）に相当する物である。また、コマンド情報４１２は、ＲＤ/ＷＲ等を識別する情報であり、キャッシュADR情報４１３は、記憶装置内での当該データの格納位置、又は転送位置を指示する情報から構成される。これらの情報は、ＲＡＭ内で管理される。
【００２８】
ポートＡホスト要求情報４２０は、ポートＡ制御部が、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌにて受領したホストからのＩ／Ｏ要求を受信したとき、ディスクアレイ制御部３００にＩ／Ｏ要求を伝えるために設定される。ポートＢホスト要求情報４４０は、ポートＡホスト要求情報４２０と同様に、ポートＢ制御部によって設定される。ディスクアレイ制御部は４２０、４４０の情報を参照し、ディスク装置４００、キャッシュメモリ５００を制御し、当該Ｉ／Ｏ要求を実行する。
【００２９】
一方、ポートＡ転送指示情報４１０は、ディスク装置群４００の論理ボリューム（副）からのバックアップデータを他記憶制御装置に転送する時に設定される。ポートＡ制御部１００は、本情報４１０を参照し、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌを介してコマンドを発行する。他記憶装置へコマンドを発行する場合は、ポートＩＤに、他記憶装置のポートＩＤを指定する値が設定されることになる。他記憶制御装置は本コマンドを受領し、実行することにより、バックアップデータを記憶媒体に格納することができる。ポートＢ転送指示情報４２０も、ポートＡ転送指示情報４１０の場合と同様に、ポートＢ制御部２００により使用される。
【００３０】
ポートA転送指示情報４１０、およびポートAホスト要求情報４２０が、ホストおよびバックアップ装置とのデータ通信において、ポート制御部１００とディスクアレイ制御部とのI/Fで利用される点について説明した。この２つの情報は、単に別装置からのアクセス要求があった場合にポートAホスト要求情報４２０を利用し、ディスクアレイ制御部が別装置に対してアクセス要求したい場合に、ポートA転送指示情報４１０を利用するにすぎない。したがって、仮にディスクアレイ制御部がホストに対して転送指示をする場合は、ポートA転送指示情報４１０を利用することになる。つまり、ホストのポートIDを指定することで、ポート制御部１００は、ホストに対して転送する。逆に、バックアップ装置からアクセス要求があった場合は、ポートAホスト要求情報４２０を利用する。このように、ポート制御部１００は、A転送指示情報４１０で指定されたポートIDがホストであったりバックアップ装置であったりと切り替わりながら通信することとなる。
【００３１】
図５にポート毎の負荷情報を示す。ポート負荷情報４５０はポートＡに対しての情報であり、ポート負荷情報４６０はポートＢに対しての情報であり、それぞれ採取される。本情報は、一定期間内のトータルのＩ／Ｏ回数を示すＩ／Ｏ数４５１、転送量４５２、アクセス情報４５３から構成される。当該ディスクアレイ装置がホストからのＩ／Ｏ要求を受領し、ディスクアレイ制御部３００がこの受領をホスト要求情報から認識した際に、コマンド情報４１２からデータ転送長とコマンドが取得される。データ転送量に関し、ＲＤ（Ｒｅａｄ）の場合は転送長はそのまま、ＷＲ（Ｗｒｉｔｅ）の場合は、４倍の転送長とする（デュプレックス中でのデータ更新処理に伴うデータ転送回数を考慮して４倍としている）。又、前回のコマンド情報をＲＡＭ４００内に覚えておいて、今回のコマンドと比較し、連続アクセス（シーケンシャル）か、ランダムアクセスなのかを判断する。そして、Ｉ／Ｏ数４５１をプラスし、転送長４５２にデータ転送長をプラスし、シーケンシャルかランダムかをアクセス情報４５３に書き込む。尚、本情報は一定時間毎にクリアされ、単位時間当たりの情報が採取されている。一定時間毎の管理はディスクアレイ制御部３００内にあるタイマー機能により実現される。尚、本情報はＲＡＭ４００に存在する。
【００３２】
図６のコントローラＡ負荷情報６１０のそれぞれは、コントローラＡ内のポートＡ負荷情報とコントローラＡ内のポートＢ負荷情報の合計した数値が値であり、キャッシュメモリ５００の管理情報６００内に存在する。本コントローラＡ負荷情報もコマンド受領時にディスクアレイ制御部３００が設定する。コントローラＢ負荷情報６２０も、コントローラＡ負荷情報６１０と同様である。
【００３３】
図７のバックアップ進捗情報６３０は、キャッシュメモリ５００の管理情報６００内に存在し、バックアップの対象である論理ボリュームの番号（対象ＬＵ番号）６３１、どこまでバックアップが進んでいるかを示すバックアップ実行ポインタ６３２により構成される。本情報もホストよりバックアップ指示を受領したディスクアレイ制御装置３００が、バックアップ対象となった論理ボリュームの番号を６３１に書き込み、又、バックアップの要求をポート制御部１００又は２００に行うとともにバックアップ実行ポインタ６３２の情報を更新する。
【００３４】
コピーポインタ６３３は、データデュプレックスの処理を実行する際に使用する。コピーポインタ６３３は、データデュプレックス処理がどこまでデータをデュプレックスしたのかを記録する。データデュプレックス処理はデュプレックスの終わった個所を逐次更新する。これは、バックアップ処理がさらに同時に実行する際、バックアップ処理がコピー実行ポインタ６３３を参照し、当該ポインタを超えない範囲のデータをバックアップするように制御する。これにより、デュプレックスされた部分を追いかけるようにバックアップ処理をすることが可能である。
【００３５】
図８のユーザ指定ポート情報６４０は、キャッシュメモリ５００内の管理情報６００に存在し、ユーザーがＰＣ／ＷＳ３０００により設定したポートの利用方法を格納しておく。具体的には、当該ポートをバックアップ専用、オンライン専用、またはオンライン／バックアップ共用のいずれかの値を設定する。尚、バックアップ要求があった場合、ディスクアレイ制御部３００が本情報を参照し、バックアップポートを検索し、当該ポートのポート制御部に対し、要求を発行する。
【００３６】
図９のコピー／バックアップタイミング指示情報６５０は、キャッシュメモリ５００内の管理情報６００に存在し、ユーザーがＰＣ／ＷＳ３０００により設定した２重化の為のコピーとそれに続くバックアップの実行契機を設定する。尚、ＰＣ／ＷＳはコントローラにＬＡＮ等で接続されることが多い。
【００３７】
図１０のスケジューリング情報６６０は、キャッシュメモリ５００内の管理情報６００に存在し、前記図９のコピー／バックアップタイミング指示情報６５０が時間指定であった場合、当該時間情報を時間監視指示情報６６０に設定する。
【００３８】
図１１は、優先度情報６７０のテーブルを示す。これは、ディスクアレイ制御装置がオンライン処理を優先するか、またはバックアップ処理を優先するかを表す値が保持されている。これは、予めユーザがＰＣ／ＷＳ３０００を使用して設定する。バックアップ開始時点でディスクアレイ制御部３００は当該情報を参照し、バックアップ優先であれば、あるデータ量までは占有して実行し、当該処理が終了したら、オンライン要求があるかを判断する。なければ、又一定量のデータ量をバックアップ処理する。逆にオンライン処理優先であれば、一定時間はオンライン処理のみを行い、その後、一定量のバックアップデータを転送し、その後又一定時間はオンライン処理を実行する。バックアップの一定量が大きければその分バックアップの優先度は高くなり、オンライン処理に占有する一定時間が長くなればその分だけオンライン処理の優先度は高くなる。以上、コントローラＡを例に説明したがコントローラＢも同様な構成を持つ。
【００３９】
次にディスクアレイ制御装置の基本的なＲＤ（Ｒｅａｄ）／ＷＲ（Ｗｒｉｔｅ）動作について説明する。ホストからのＲＤ要求時、ポート制御部１００が前記要求を受領した時、ポートＡホスト要求情報４２０に設定する。ディスクアレイ制御部３００は上記情報４２０を参照し、ＲＤ要求であることを認識し、要求ＡＤＲとデータ長を認識する。当該対象データがキャッシュメモリ５００内に存在する場合、当該キャッシュＡＤＲ情報をポートＡ制御部に知らせ、ＲＤ要求したホストへの転送の指示を行う。又、キャッシュメモリ上に存在しない場合は対象となるデータをディスク装置群４０００より読みだし、キャッシュメモリ６００に格納し、転送する。
【００４０】
ホストからのＷＲ要求時、ポート制御部１００が前記要求を受領した時、ポートＡホスト要求情報４２０に設定する。ディスクアレイ制御部３００は上記４２０情報を参照し、ＷＲ要求であることを認識し、要求ＡＤＲとデータ長を認識する。そして、キャッシュメモリ５００に転送したところでポートＡ制御部に終了報告をするよう伝える。その後、キャッシュメモリ６００より、非同期にディスク装置群に掃出し処理（書き込み処理）を行う。
【００４１】
次に本発明の基本機能である、１ポートでのオンライン処理とバックアップ処理の並行動作について説明する。尚、以下で説明するホスト要求は通常のコマンドの一部としてホストから指示されてもいいし、ＰＣ／ＷＳよりユーザーが指示してもかまわない。
まず、図１２において、ポート制御部１００を用いてオンライン処理とバックアップ処理を並行して処理するための、通信処理について説明する。なお、図１２以降では、ポート制御部１００がFibreで接続されていることを前提に説明する。
【００４２】
Fibre接続の場合、例えばEmulex社のチップセットを利用することが考えられ得る。このチップセットの中には2410020  と呼ばれるチップがあり、Fibreプロトコル制御を主に処理することができる。これらのチップセットは、通信処理を多重化することが可能で、例えばホストとの間のオンライン処理とバックアップ装置との間のバックアップ処理の２つを、時分割により同時処理が可能となる。このチップセットを利用した通信多重処理を図１２以降のフローチャートで説明する。
【００４３】
図１２は、イニシエータタスクとターゲットタスクの生成を制御するフローチャートである。ステップ１１０１では、ディスクアレイ制御装置３００からイニシエータタスクの生成要求があるかどうかをポートA制御部１００がポートA転送指示情報４１０を参照することで確認する。例えば、バックアップ処理を実施する場合、ディスクアレイ制御装置３００は、イニシエータタスクの生成を要求するためにポート転送指示情報４１０に転送内容を設定する。ポートA制御部１００がこの転送要求を認識した場合、次のステップ１１０２を実行する。
【００４４】
ステップ１１０２は、要求されたデータ転送を実施するためのイニシエータタスクを生成する。ここでイニシエータタスクと呼んでいるのは、あくまでもポートA転送指示情報で指定されている処理を実行する、という意味で使用する。したがって、本タスクは実際にはデータの送信だけでなく受信も行う。バックアップ装置へのバックアップ処理の場合、送信先のバックアップ装置の情報をパラメータとしてイニシエータタスクを生成する。
【００４５】
一方、ステップ１１０２で転送要求がなければ、他のホストからの接続要求があるかどうかを確認するステップ１１０３を実行する。ステップ１１０３は、ポートA制御部１００が他の記憶装置またはホストから転送要求があるかどうかをチェックする。転送要求とは、例えば、相手装置からのLogin要求である。相手装置からの転送要求があれば、ステップ１１０４を実施する。ステップ１１０４は、転送要求に対する転送処理を実施するターゲットタスクを生成する。ここでいうターゲットタスクとは、他の装置からのアクセスに基づいて処理を実行する、という意味で使用する。したがって、本タスクは実際にはデータの受信だけでなく送信も行う。このフローチャートでは、イニシエータタスクとターゲットタスクが各々生成された時点で、ステップ１１０１へ戻る。したがって、生成されたタスク処理の完了を待たず、次の転送要求を待つことになる。以上より、イニシエータタスクとターゲットタスクとは、時分割ではあるがほぼ同時に実行する場合がある。このとき、接続先であるＦｉｂｒｅ  ｃｈａｎｎｅｌは、時分割でパケットデータを送出することができるので、ポートA制御部１００が同時に２つ以上のタスクを処理してもＦｉｂｒｅ  ｃｈａｎｎｅｌネットワークでのデータ送受信が可能となる。
【００４６】
図１３は、イニシエータタスクの処理を表したフローチャートである。イニシエータタスクは、たとえばバックアップ処理のためディスクアレイ制御装置３００が他の記憶装置へデータ転送するための通信タスクである。具体的には、ステップ１２０１で相手の装置へ接続要求であるLoginコマンドを発行する。ステップ１２０２はLoginが認証された場合、実のデータを相手方へ送信する処理である。データ転送では主に送信を行うが、相互のデータ転送のための認証処理等により送受信処理を行っている。データ転送の完了後、ステップ１２０３にてLogoutを発行する。
【００４７】
図１４は、ターゲットタスクの処理を表したフローチャートである。ターゲットタスクとは、例えばホストからのオンライン処理のように、ホストからのデータI/Oを送受信する場合の処理が該当する。この場合、ホストからのＲＥＡＤコマンドのように、コマンドを受信した後にディスクアレイ装置３００がホストへデータ送出することが考えられる。
【００４８】
ステップ１３０１は、相手装置からのLoginに対して認証を行う。認証とは、正しい相手かどうかをチェックすることである。正しい相手かどうかはキャッシュメモリ５００内の管理情報６００を参照する。この管理情報６００に、接続許可するホストの識別子、または接続許可する他外部記憶装置の識別子が保持されている。この情報を参照して決定する。正しい相手であると認証した場合、次のステップ１３０２を実行するが、不正な相手であればエラー応答し、処理を中断する。ステップ１２０２は、相手からのデータ転送要求を処理する。データ転送では主に受信を行うが、相互のデータ転送のための認証処理等により送受信処理を行っている。データ転送完了後、ステップ１２０３にてLogoutを発行する。ステップ１３０３は、相手装置とのデータ転送終了後、相手装置からLogoutが発行されるので、Logoutを検知した場合、それを認証するステップである。
【００４９】
以上のフローチャートにより、イニシエータタスクとターゲットタスクを多重処理でき、1ポートであってもオンライン処理およびバックアップ処理を同時に処理することが可能となる。
【００５０】
次に、ポートが２つ以上あった場合について言及する。
この場合は、ポートが２つ以上存在するので、オンライン処理とバックアップ処理を行うポートを各々１つのポートに割り付けることができる。その際、各ポートの付加状況に応じてどのポートを選択すべきかを判断する必要がある。以下に、２つのコントローラＡ，Ｂから構成するディスクアレイ装置５０００を用いてその論理を説明する。
【００５１】
まず、ディスクアレイ制御部３００は、コントローラＡ負荷情報６１０およびコントローラＢ負荷情報６２０の各々の負荷情報６１０，６２０に含まれる転送量６１２を比較する。転送量の大きい方を負荷が高いコントローラとして判断する。もし単位時間当たりの転送量が両方ともあまり高くない場合はＩ／Ｏ数６１１で負荷を判断する。ここで仮に、コントローラＡの方が負荷が高いと判断された場合、ディスクアレイ制御部３００は、コントローラＡ内のＲＡＭ４００に格納されているポート負荷情報を参照する。
【００５２】
具体的には、ポートＡ負荷情報４５０内のアクセス情報４５３参照する。アクセス情報４５３は、ホストからのＩ／Ｏがシーケンシャルかランダムかのどちらかを示している。ホストからのＩ／Ｏがシーケンシャルであった場合当該ポートの負荷が高いと判断する。両方シーケンシャルであった場合、転送量４５２を比較して負荷を判断する。両方ランダムであった場合も同様、転送量４５２で比較する。このようにして、負荷の少ないポートを選択することで、他のオンライン処理等への影響を抑えることができる。
【００５３】
次に、バックアップ処理がシーケンシャル処理である点を考慮したポートの選択論理について説明する。ここでは、1コントローラあたり２ポート構成かつ２つのコントローラが実装されているディスクアレイ装置５０００の場合について説明する。この場合、ポートは全部で４つ実装されていることになる。
【００５４】
ディスクアレイ装置５０００において、３つのポートでシーケンシャル処理、残りの１つのポートでランダム処理が行われていた場合を想定する。バックアップ処理はシーケンシャル処理であるため、同じシーケンシャル処理を実施しているポートを選ぶと、負荷が余計にかかってしまう。そこで、シーケンシャルに使用しているポートではなく、ランダムアクセスであるポートをバックアップ処理用に使用する。これにより、バックアップ処理も効率よく実施でき、またオンライン処理にも影響を与えないですむ。
【００５５】
次に、ポートの負荷状況に応じたバックアップ処理の引継ぎ論理について説明する。ポートの負荷は逐次変化するので、ポートの負荷状況に応じて、ある時点でのポートの負荷状況を把握して、バックアップ処理を実行していたポートよりも負荷の低いポートを探索し、当該ポートに対してバックアップ処理を引き継がせるのである。ポートの選択方法は次のとおりである。一定時間単位に上記負荷情報を参照し以前選択したポート以外に負荷の低いポートを選択する。バックアップ処理の引継ぎ方法は、次のとおりである。引き継ぐ前のポートは、バックアップ実行中にバックアップ進捗情報６３０を更新する。バックアップ処理を別のポートに引き継がせた場合、当該ポートはバックアップ進捗情報６３０を参照し、対象ＬＵ番号６３１と実行ポインタ６３２を得ることで、前のポートが行ってきたバックアップの進捗状況を引き継ぐ。又、夜間等複数のポートの負荷が低いと判断した場合、複数のポートでバックアップ処理を分散して行うことも可能である。具体的には、キャッシュ内にあるバックアップ進捗情報を参照、更新し処理を行う。このようにポートの引継ぎ機能を応用することで、バックアップ処理の効率化を図ることができ、夜間集中バックアップ処理、土日のバックアップ集中処理等、ユーザ要求の高いバックアップ処理を実現することが可能となる。
【００５６】
また、バックアップの開始指示は、ホストからの指示だけではなく、ＰＣ／ＷＳから指示することも可能である。ＰＣ／ＷＳは、バックアップ処理の起動指示をディスクアレイ制御部３００に対して行う。このとき、ユーザがバックアップ処理を実行するポートを直接指定することも可能である。また、ＰＣ／ＷＳからポート毎に、ポートに割り付ける処理の種類を指定することも可能である。例えばオンライン処理専用、バックアップ専用、オンライン／バックアップ両用等である。本情報をディスクアレイ制御部が参照し、バックアップ処理を行うポートを選択する。さらに、ユーザはオンライン処理を優先してバックアップ処理を行うよう指示することもできる。又、劣化の割合も、ユーザが指定することが可能である。
【００５７】
さらに、バックアップ指示をユーザが行うのではなく、予めバックアップ開始時刻を設定し、設定された時刻にＰＣ／ＷＳが自動的にバックアップ指示を行うことも可能である。
【００５８】
以上のように、ポートの選択処理、バックアップ処理の引継ぎ処理およびユーザからのバックアップ操作について説明した。次に、バックアップ処理が障害で中断した場合、またはオンライン処理とは別のボリュームコピー処理を実行させた場合の、バックアップ処理について説明する。
【００５９】
まず、バックアップ処理中障害が発生した場合について説明する。
コントローラ障害時、障害制御部９００が他系コントローラの障害を認識し、キャッシュメモリ５００内のバックアップ進捗情報６３０を参照し、バックアップ処理を継続する。これにより、障害の発生したコントローラをディスクアレイ装置より切り離すことができるので、障害発生個所のコントローラを交換して障害回復させることができる。障害回復後、先に説明したバックアップ処理の引継ぎ処理を行うことも可能となる。
【００６０】
次に、ボリュームコピー処理との同時実行について説明する。ボリュームコピー処理とは、対象となる論理ボリュームデータをコピーしてデュプレックスする処理である。任意の論理ボリュームに対してボリュームコピー処理を実行すると、正（コピー元）と副（コピー先）の２つの論理ボリュームが物理ディスク装置群内に存在することになる。このとき、コピー元の正論理ボリュームに対してホストからのＩ／Ｏがあると、その結果を副側に反映させることで二重状態を維持させる。
【００６１】
この機能はバックアップ処理において次のように利用される。つまり、オンライン処理をコピー元である正論理ボリュームに対して実施し、副論理ボリュームに対してバックアップ処理を行う。バックアップ処理中、二重状態を一度中断させることで、中断時点での副論理ボリュームに記録されているデータをバックアップすることが可能となる。
【００６２】
このとき、正論理ボリューム容量が増大するとデュプレックス処理が高負荷となりオンライン処理に多大な影響を与えてしまう場合がある。また、デュプレックス処理の終了後にバックアップ処理が行われる為、バックアップ処理が長時間かかってしまう。そこで、本発明ではボリュームコピー処理とバックアップ処理を同時実行することにより、バックアップデータ採集時間の短縮と、サブシステム内の負荷を減少し、パフォーマンスの劣化を防ぐことが可能である。
【００６３】
元来、通常の正論理ボリュームからキャッシュメモリへのステージング、キャッシュメモリから副論理ボリュームへの書き込み、副論理ボリュームからのバックアップデータ転送の為のキャッシュメモリへのステージング、キャッシュメモリからのＦｉｂｒｅ Ｃｈａｎｎｅｌへのデータ転送、とコントローラ内のキャッシュメモリ５００を介した転送路を何度もデータが転送される。これにより、内部バスの負荷が増大し、システムとしてオンライン処理のパフォーマンスが劣化する。
【００６４】
負荷を低減させる為には、正論理ボリュームからデュプレックスのためのデータをキャッシュメモリ５００へステージングした時、当該ステージングデータをそのまま、バックアップデータとして転送することで実現できる。これにより、バスの負荷を低減し、オンライン処理のパフォーマンスの劣化を防ぐことができる。論理ボリュームのデュプレックス処理とバックアップ処理を同時に行うことができるので、全体としてのバックアップ処理が短時間で行えるようになる。
【００６５】
これらのボリュームコピー処理とバックアップ処理との組み合わせから様々な利用方法が考えられ、要求・運用も多岐にわたる。例えば、あるアプリケーションは、あるタイミングでの論理ボリュームのデータのレプリカが必要で、かつ、バックアップのタイミングは週末が望ましいといった要求である。本発明では、そのような様々な要求に満たすべくコピーのタイミングとバックアップのタイミングをユーザーがＰＳ／ＷＳを通じて指定できるようにする。デュプレックスの指示があった時、コピー／バックアップタイミング指示情報６５０の情報をディスクアレイ制御部３００が参照し、同時指定されていれば上述方法にて同時制御を行う。同時指定されていなければ、コピー処理を行う。尚、バックアップのタイミングで時間指定、例えば、夜間２４時を過ぎたらバックアップ処理を開始する等、時間監視指示情報６６０に設定することも可能である。本情報はディスクアレイ制御部が一定時間毎に現時刻と参照し、当該指示時間になったら、バックアップ処理を開始することにより実現される。
【００６６】
【発明の効果】
本発明によれば、ストレージエリアネットワークに代表されるネットワーク環境にてＦｉｂｒｅ Ｃｈａｎｎｅｌにて接続されたディスクアレイ制御装置に於いて、１ポート構成に於いても、オンライン処理とバックアップ処理を同時実行が可能な制御装置を提供可能である。又、負荷に応じたバックアップ処理や指定時間でのバックアップ処理等が可能であり、オンライン処理へのパフォーマンスを維持することが可能である。さらにコントローラ障害、ポート障害時でもバックアップ処理を他のポート、及び他のコントローラが継続することが可能である。
【００６７】
コピー処理とバックアップ処理を同時に制御でき、これらの組み合わせをユーザが設定・実行可能とすることができる。
【図面の簡単な説明】
【図１】  本発明の実施例であるネットワーク環境の構成図である。
【図２】  本発明の実施例であるディスクアレイ制御装置の構成図である。
【図３】  本発明の実施例であるディスク装置群の構成図の一例である。
【図４】  本発明の実施例であるポート制御部ディスク制御部間Ｉ／Ｆ情報の一例である。
【図５】  本発明の実施例であるポート負荷情報の一例である。
【図６】  本発明の実施例であるコントローラ負荷情報の一例である。
【図７】  本発明の実施例であるバックアップ進捗情報の一例である。
【図８】  本発明の実施例であるユーザー指定ポート情報の一例である。
【図９】  本発明の実施例であるコピー／バックアップタイミング情報の一例である。
【図１０】  本発明の実施例であるスケジューリング情報の一例である。
【図１１】  本発明の実施例である優先度情報の一例である。
【図１２】  本発明の実施例であるポート制御部１００内のイニシエータタスクまたはターゲットタスクを生成するフローチャートである。
【図１３】  本発明の実施例であるポート制御部１００内のイニシエータタスクのフローチートである。
【図１４】  本発明の実施例であるポート制御部１００内のターゲットタスクのフローチャートである。
【符号の説明】
１０、２０、３０：ホストコンピュータ、４０：Ｆｉｂｒｅ Ｃｈａｎｎｅｌ(ＦａｂｒｉｃＳＷ)、１００、２００：ポート制御部、３００：ディスクアレイ制御部、４００：ＲＡＭ、５００：キャッシュメモリ、６００：キャッシュメモリ内管理情報、７００、８００：ト゛ライフ゛制御部、９００：障害制御部、１０００、２０００：コントローラ部、３０００：ＰＣ／ＷＳ、４０００：ディスク装置群、５０００、６０００：ディスクアレイ装置
【図１】
0004041656.tif 000002
【図２】
0004041656.tif 000003
【図３】
0004041656.tif 000004
【図４】
0004041656.tif 000005
【図５】
0004041656.tif 000006
【図６】
0004041656.tif 000007
【図７】
0004041656.tif 000008
【図８】
0004041656.tif 000009
【図９】
0004041656.tif 000010
【図１０】
0004041656.tif 000011
【図１１】
0004041656.tif 000012
【図１２】
0004041656.tif 000013
【図１３】
0004041656.tif 000014
【図１４】
0004041656.tif 000015