(57)【要約】【課題】  ストレージシステム内のデータのソート処理を実行する場合、ホスト装置のオンライン業務への影響を低減する。【解決手段】  ストレージシステム２のストレージ制御装置１２が、ホスト装置１など外部機器からソート対象レコード群とソートキーを指定したソート指示を受け、外部記憶装置１１内のソート対象コード群をキャッシュメモリ１２３に読み出し、キャッシュメモリ１２３と外部記憶装置１１内に確保した作業領域を使って、上記レコード群のソート処理を実施し、ソート後のレコード群を外部記憶装置１１内の所定の出力領域に格納し直す。複数のソート指示を受けた場合、作業領域が重複しないように、自動的に作業領域が割り当てられる。オンライン業務中にレコード更新が発生したとき、更新レコードのスナップショットを取り、スナップショットのソートを行うことで、オンライン業務中にソート処理が行える。【選択図】  図１０
2005190047.tif 000002
【特許請求の範囲】
【請求項１】
１以上のホスト装置と通信チャネルを介して接続可能であり、前記ホスト装置による入出力の対象となるデータを記憶する１以上の物理デバイスを有する外部記憶装置と、前記ホスト装置と前記外部記憶装置との間における前記データの転送の制御を行うストレージ制御装置とを備えたストレージシステムにおいて、
前記ストレージ制御装置は、前記データの１以上のブロックを一時的に保持するキャッシュメモリと、制御情報を記憶する制御情報メモリと、前記ホスト装置と前記外部記憶装置と前記キャッシュメモリと前記制御情報メモリに接続され、前記外部記憶装置に記憶された前記データのブロックの1以上の集合をそれぞれ１以上の論理デバイスとして定義し、前記外部記憶装置と前記キャッシュメモリと前記ホスト装置の前記ブロックの入出力を制御する制御部とを有し、
前記制御部は、前記ホスト装置からソート処理実行指示を受けてソート処理を行う１以上のプロセッサを有し、
前記１以上のプロセッサは、任意の論理デバイス内の任意のブロック群をソートインブロック群として指定するソートイン情報と、前記ブロック内の任意の位置のデータをソートキーとして指定するキー情報と、任意の論理デバイス内の任意のブロック群をソートワークブロック群として指定するソートワーク情報と、任意の論理デバイス内の任意のブロック群をソートアウトブロック群として指定するソートアウト情報とを、前記ソート処理実行指示により通知され、
前記１以上のプロセッサは、前記ソート処理実行指示に応答して前記ソート処理を実行する場合、前記外部記憶装置内の前記指定されたソートインブロック群を前記キャッシュメモリに書き、前記指定されたソートワークブロック群を作業領域として使用しながら、前記指定されたソートキーの値に基づいて、前記キャッシュメモリに書かれた前記ソートインブロック群をソートし、ソートされた前記ソートインブロック群を前記指定されたソートアウトブロック群に格納し、そして、前記ソート処理の完了を前記ホスト装置に通知することを特徴とするストレージシステム。
【請求項２】
請求項１記載のストレージシステムにおいて、
前記制御部に接続され、前記制御情報メモリの入出力情報を視覚的に表示できる管理機器を更に備え、
前記１以上のプロセッサは、前記ホスト装置からだけでなく前記管理機器からも前記ソート処理実行指示を受けて前記ソート処理を行えるように構成されていることを特徴とするストレージシステム。
【請求項３】
請求項１記載のストレージシステムにおいて、
前記ソートイン情報は、前記ソートインブロック群が存在する論理デバイスのアドレスを示すソートインアドレスと、前記ソートインアドレスにより特定される前記論理デバイス内の前記ソートインブロック群が存在する場所範囲を示すソート範囲を含み、
前記ソートワーク情報は、前記ソートワークブロック群が存在する論理デバイスのアドレスを示すソートワークアドレスと、前記ソートワークアドレスにより特定される前記論理デバイス内の前記ソートワークブロック群が存在する場所範囲を示すソートワーク範囲を含み、
前記ソートアウト情報は、前記ソートアウトブロック群が存在する論理デバイスのアドレスを示すソートアウトアドレスと、前記ソートアウトアドレスにより特定される前記論理デバイス内の前記ソートアウトブロック群が存在する場所範囲を示すソートアウト範囲を含むことを特徴とするストレージシステム。
【請求項４】
請求項１記載のストレージシステムにおいて、
前記１以上のプロセッサは、前記ソート処理実行指示により通知された前記ソートワーク情報が無効値をもつ場合、前記ソートワーク情報により指定されるソートワークブロック群の代替の記憶領域を前記キャッシュメモリ内に確保し、そして、前記キャッシュメモリ内の前記代替の記憶領域を前記作業領域として使用することを特徴とするストレージシステム。
【請求項５】
請求項１記載のストレージシステムにおいて、
前記制御部に接続され、前記制御情報メモリの入出力情報を視覚的に表示できる管理機器を更に備え、
前記管理機器は、任意の論理デバイス又は任意の論理デバイス内の任意のブロック群を、前記作業領域に使用されるために事前に確保される予約領域として指定する予約指示を前記制御部に出力することができるようになっており、
前記制御部の前記１以上のプロセッサは、前記管理機器からの前記予約指示に応答して、前記予約指示により指定された前記予約領域についてのアクセス禁止情報を前記制御情報メモリに格納し、前記制御情報メモリ内の前記アクセス禁止情報に基づいて、前記予約領域に対するホスト装置からのデータ入出力を制限し、そして、互いに重複する前記ソートワークブロック群を指定した複数の前記ソート処理実行指示を受けた場合、前記互いに重複するソートワークブロック群のいずれかの代替として前記予約領域を使用し、それにより、前記複数のソート処理実行指示を多重に実行するストレージシステム。
【請求項６】
請求項５記載のストレージシステムにおいて、
前記１以上のプロセッサは、前記外部記憶装置内の前記１以上の物理デバイスのデータ入出力による使用状況をモニタして、前記１以上の物理デバイスの使用負荷量を示す物理デバイス使用情報を前記制御情報メモリに格納し、
前記１以上のプロセッサは、複数の前記予約領域が既に確保されている場合であって、前記複数の予約領域の中から前記代替として使用するものを選択する場合、前記制御情報メモリに記憶されている前記物理デバイス使用情報に基づいて、前記複数の予約領域の中から、前記使用負荷量が相対的に低い物理デバイスに存在する論理デバイスを選択することを特徴とするストレージシステム。
【請求項７】
請求項１記載のストレージシステムにおいて、
前記論理デバイス内のブロックはそれぞれに固有のＩＤを有しており、
前記１以上のプロセッサは、前記外部記憶装置内の前記ソートインブロック群のソート処理において、前記ソートインブロック群内のソートされたブロックを、そのＩＤを変更することなしに、前記ソートワークブロック群又は前記ソートアウトブロック群に書き、
前記１以上のプロセッサは、前記ソートインブロック群のソート処理の実行中又は完了後、前記ホスト装置のオンライン業務中に、前記外部記憶装置内の前記ソートインブロック群内のいずれかのブロックのデータを更新する場合、前記更新されるブロックについてオンラインソート処理を前記オンライン業務中に実行し、
前記１以上のプロセッサは、前記オンラインソート処理において、前記更新されるブロックを前記ソートワークブロック群又は前記ソートアウトブロック群内のソート後の位置に書くとともに、前記更新されるブロックの前記ＩＤに基づいて、前記ソートワークブロック群又は前記ソートアウトブロック群内から、前記更新されたブロックのソート前の位置に残存しているブロックを検出し削除することを特徴とするストレージシステム。
【請求項８】
請求項１記載のストレージシステムにおいて、
前記１以上のプロセッサは、前記外部記憶装置内の前記ソートインブロック群のソート処理を行う場合、前記ソートインブロック群内の各ブロックの前記ストレージシステム内での位置と、前記ソートインブロック群内の各ブロックに対応する前記ソートワークブロック群又は前記ソートアウトブロック群内の各ブロックの前記ストレージシステム内での位置とを関連付けて表すブロック位置対応情報を前記制御情報メモリに記録し、
前記１以上のプロセッサは、前記ソートインブロック群のソート処理の実行中又は完了後、前記ホスト装置のオンライン業務中に、前記外部記憶装置内の前記ソートインブロック群内のいずれかのブロックのデータを更新する場合、前記更新されるブロックについてオンラインソート処理を前記オンライン業務中に実行し、
前記１以上のプロセッサは、前記オンラインソート処理において、前記更新されるブロックを前記ソートワークブロック群又は前記ソートアウトブロック群内のソート後の位置に書くとともに、前記ブロック位置対応情報に基づいて、前記ソートワークブロック群又は前記ソートアウトブロック群内から、前記更新されたブロックのソート前の位置に残存しているブロックを検出し削除し、さらに、前記更新されるブロックの前記ソートワークブロック群又は前記ソートアウトブロック群内での位置を前記ソート前の位置から前記ソート後の位置へと修正するように前記ブロック位置対応情報を更新することを特徴とするストレージシステム。
【請求項９】
請求項１記載のストレージシステムにおいて、
前記１以上のプロセッサは、任意の論理デバイスの複製を作成し、前記複製の作成後、前記ホスト装置のオンライン業務中に、元の論理デバイス内のブロックを更新する場合、前記元の論理デバイス内の前記ブロックの更新を前記複製内のブロックに反映させる処理を前記オンライン業務中に行い、
前記１以上のプロセッサは、前記複製内のブロック群を前記ソートインブロック群とみなし、その後、前記オンライン業務中に、前記元の論理デバイス内の前記ブロックの更新を前記複製内のブロックに反映させる場合、前記複製内の前記更新が反映されるブロックについてのソート処理を前記オンライン業務中に実行することを特徴とするストレージシステム。
【請求項１０】
１以上のホスト装置と通信チャネルを介して接続可能であり、前記ホスト装置による入出力の対象となるデータを記憶する外部記憶装置と、前記ホスト装置と前記外部記憶装置との間における前記データの転送の制御を行うストレージ制御装置とを備えたストレージシステムにおいて、
前記ストレージ制御装置は、所定の異なる用途に使用できる共用メモリと、前記ホスト装置と前記外部記憶装置と前記共用メモリに接続され、前記外部記憶装置と前記ホスト装置と前記共用メモリのデータ入出力を制御する制御部とを有し、
前記制御部は、前記ホスト装置からソート処理実行指示を受けてソート処理を行う１以上のプロセッサを有し、
前記１以上のプロセッサは、前記外部記憶装置内の第1の記憶領域をソートイン領域として選択し、前記外部記憶装置内又は前記共用メモリ内の第２の記憶領域をソートワーク領域として選択し、前記外部記憶装置内の第３の記憶領域をソートアウト領域として選択し、前記ソートワーク領域を用いて前記ソートイン領域のデータをソートし、ソートされたデータを前記ソートアウト領域に格納するというソート処理を行うようになっているストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、ホスト装置と接続され、ホスト装置からの指示に応答してオンラインでデータを入出力するストレージシステムに関し、特に、ストレージシステムに蓄積されたデータをソートするための技術に関する。
【背景技術】
【０００２】
ホスト装置と、そのホスト装置に対してオンラインでデータを入出力するストレージシステムと有する情報処理システムにおいて、ホスト装置によるストレージシステム内のデータへのアクセスの回数が増加することに伴い、ストレージシステム内のデータの配列の秩序が次第に乱れていく。そこで、随時にストレージシステム内のデータのソート処理を実行して、データを或るキー情報に従って整列させることは、ストレージシステムのデータ検索速度の低下を抑え、ホスト装置に対するデータ入出力の速度を高く維持するために重要である。例えば、銀行業務システムにおいては、顧客の口座のデータを、例えば口座番号又は顧客名などのキー情報に従って整列させるためのソート処理が、適当なタイミングで行われる必要がある。
【０００３】
特許文献１に開示されたデータベース処理システムにおいては、ホスト処理装置に、データベース処理を行うデータ処理装置と、データを蓄積するディスク装置とが接続される。そして、データ処理装置が、データベース処理装置とソート処理装置を内蔵し、それにより、ソート処理とデータベース処理とを並行して行うことができる。ソート処理終了後に、ホスト処理装置が、ソート完了したデータを纏めてデータ処理装置から読み、これをディスク装置に対して出力する。
【特許文献１】特開平８−２７２５９２号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
今日、ストレージシステムの容量が増大し、行われるべきバックアップ処理やソート処理の数が増大している。とりわけ、従来技術に従うソート処理は、ホスト装置とストレージシステム間の頻繁な入出力処理を伴う。ソート処理数が増加すると、ホスト装置とストレージシステム間の入出力処理数が増加する。それにより、ホスト装置とストレージシステム間の通信経路の圧迫、ストレージシステム内のキャッシメモリの使用効率の低下、及びストレージシステム内の同じ物理記憶デバイス（例えば、ハードディスクドライブ）へのアクセス競合によるタイムロスなどが生じ、入出力処理時間が増加する。結果として、ソート処理自体の時間の増加は勿論のこと、その影響を受けてバックアップ処理の要する時間も増大する。一般に、ソート処理やバックアップ処理は、オンライン業務に影響しないよう、オンライン業務が停止している夜間などに行われる。しかし、そうであっても、データのソート処理やバックアップ処理に要する時間が更に増加すれば、例えばオンライン業務の再開時刻が遅れるなど、情報処理システムの運用に重大な支障を与える可能性があることが危惧される。特に、２４時間オンライン業務を行う場合には、オンライントランザクションのデータ入出力に影響することなしに、並行してソート処理が実行できる技術が必要である。
【０００５】
従って、本発明の目的は、ストレージシステムにおけるソート処理の能力向上を図ることにある。
【０００６】
本発明の別の目的は、ソート処理数が増加しても、ホスト装置とストレージシステム間の入出力処理数が増加しないようにする制御技術を提供することにある。
【０００７】
本発明のまた別の目的は、ストレージシステム内のキャッシメモリの使用効率を向上させる制御技術を提供することにある。
【０００８】
本発明の更に別の目的は、ストレージシステム内の物理記憶デバイスへのアクセス競合を低減させる技術を提供することにある。
【０００９】
本発明の更にまた別の目的は、オンライントランザクションのデータ入出力に大して影響することなしに、並行してソート処理が実行できる技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一つの観点に従うストレージシステムは、１以上のホスト装置と通信チャネルを介して接続可能であり、前記ホスト装置による入出力の対象となるデータを記憶する１以上の物理デバイスを有する外部記憶装置と、前記ホスト装置と前記外部記憶装置との間における前記データの転送の制御を行うストレージ制御装置とを備える。前記ストレージ制御装置は、前記データの１以上のブロックを一時的に保持するキャッシュメモリと、制御情報を記憶する制御情報メモリと、前記ホスト装置と前記外部記憶装置と前記キャッシュメモリと前記制御情報メモリに接続され、前記外部記憶装置に記憶された前記データのブロックの1以上の集合をそれぞれ１以上の論理デバイスとして定義し、前記外部記憶装置と前記キャッシュメモリと前記ホスト装置の前記ブロックの入出力を制御する制御部とを有する。前記制御部は、前記ホスト装置からソート処理実行指示を受けてソート処理を行う１以上のプロセッサを有し、前記１以上のプロセッサは、任意の論理デバイス内の任意のブロック群をソートインブロック群として指定するソートイン情報と、前記ブロック内の任意の位置のデータをソートキーとして指定するキー情報と、任意の論理デバイス内の任意のブロック群をソートワークブロック群として指定するソートワーク情報と、任意の論理デバイス内の任意のブロック群をソートアウトブロック群として指定するソートアウト情報とを、前記ソート処理実行指示により通知される。そして、前記１以上のプロセッサは、前記ソート処理実行指示に応答して前記ソート処理を実行する場合、前記外部記憶装置内の前記指定されたソートインブロック群を前記キャッシュメモリに書き、前記指定されたソートワークブロック群を作業領域として使用しながら、前記指定されたソートキーの値に基づいて、前記キャッシュメモリに書かれた前記ソートインブロック群をソートし、ソートされた前記ソートインブロック群を前記指定されたソートアウトブロック群に格納し、そして、前記ソート処理の完了を前記ホスト装置に通知する。
【００１１】
このストレージシステムによれば、ホスト装置がソート処理実行指示をストレージ制御装置に通知するだけで、ストレージ制御装置がソート処理実行指示に従い、指定されたブロック群を、指定されたキーの値に従ってソートし、そして、ソート後のブロックを指定されたブロック群に格納する。
【００１２】
前記ストレージシステムの一つの実施形態は、前記制御部に接続され、前記制御情報メモリの入出力情報を視覚的に表示できる管理機器を更に備える。そして、前記１以上のプロセッサは、前記ホスト装置からだけでなく前記管理機器からも前記ソート処理実行指示を受けて前記ソート処理を行えるように構成されている。
【００１３】
前記ストレージシステムの一つの実施形態においては、前記ソートイン情報は、前記ソートインブロック群が存在する論理デバイスのアドレスを示すソートインアドレスと、前記ソートインアドレスにより特定される前記論理デバイス内の前記ソートインブロック群が存在する場所範囲を示すソート範囲を含む。前記ソートワーク情報は、前記ソートワークブロック群が存在する論理デバイスのアドレスを示すソートワークアドレスと、前記ソートワークアドレスにより特定される前記論理デバイス内の前記ソートワークブロック群が存在する場所範囲を示すソートワーク範囲を含む。また、前記ソートアウト情報は、前記ソートアウトブロック群が存在する論理デバイスのアドレスを示すソートアウトアドレスと、前記ソートアウトアドレスにより特定される前記論理デバイス内の前記ソートアウトブロック群が存在する場所範囲を示すソートアウト範囲を含む。
【００１４】
前記ストレージシステムの一つの実施形態においては、前記１以上のプロセッサは、前記ソート処理実行指示により通知された前記ソートワーク情報が無効値をもつ場合、前記ソートワーク情報により指定されるソートワークブロック群の代替の記憶領域を前記キャッシュメモリ内に確保し、そして、前記キャッシュメモリ内の前記代替の記憶領域を前記作業領域として使用する。
【００１５】
前記ストレージシステムの一つの実施形態は、前記制御部に接続され、前記制御情報メモリの入出力情報を視覚的に表示できる管理機器を更に備える。そして、前記管理機器は、任意の論理デバイス又は任意の論理デバイス内の任意のブロック群を、前記作業領域に使用されるために事前に確保される予約領域として指定する予約指示を前記制御部に出力することができるようになっている。また、前記１以上のプロセッサは、前記管理機器からの前記予約指示に応答して、前記予約指示により指定された前記予約領域についてのアクセス禁止情報を前記制御情報メモリに格納し、前記制御情報メモリ内の前記アクセス禁止情報に基づいて、前記予約領域に対するホスト装置からのデータ入出力を制限し、そして、互いに重複する前記ソートワークブロック群を指定した複数の前記ソート処理実行指示を受けた場合、前記互いに重複するソートワークブロック群のいずれかの代替として前記予約領域を使用すする。これにより、複数のソート処理を多重に実行することができる。
【００１６】
この実施形態では、さらに、前記１以上のプロセッサは、前記外部記憶装置内の前記１以上の物理デバイスのデータ入出力による使用状況をモニタして、前記１以上の物理デバイスの使用負荷量を示す物理デバイス使用情報を前記制御情報メモリに格納する。そして、前記１以上のプロセッサは、複数の前記予約領域が既に確保されている場合であって、前記複数の予約領域の中から前記代替として使用するものを選択する場合、前記制御情報メモリに記憶されている前記物理デバイス使用情報に基づいて、前記複数の予約領域の中から、前記使用負荷量が相対的に低い物理デバイスに存在する論理デバイスを選択する。これにより、外部記憶装置の物理デバイス使用負荷量を均一化することができ、入出力処理能力のバランス化を図ることができる。
【００１７】
前記ストレージシステムの一つの実施形態では、前記論理デバイス内のブロックはそれぞれに固有のＩＤを有している。前記１以上のプロセッサは、前記外部記憶装置内の前記ソートインブロック群のソート処理において、前記ソートインブロック群内のソートされたブロックを、そのＩＤを変更することなしに、前記ソートワークブロック群又は前記ソートアウトブロック群に書くようになっている。そして、前記１以上のプロセッサは、前記ソートインブロック群のソート処理の実行中又は完了後、前記ホスト装置のオンライン業務中に、前記外部記憶装置内の前記ソートインブロック群内のいずれかのブロックのデータを更新する場合、前記更新されるブロックについてオンラインソート処理を前記オンライン業務中に実行する。このオンラインソート処理において、前記１以上のプロセッサは、前記更新されるブロックを前記ソートワークブロック群又は前記ソートアウトブロック群内のソート後の位置に書くとともに、前記更新されるブロックの前記ＩＤに基づいて、前記ソートワークブロック群又は前記ソートアウトブロック群内から、前記更新されたブロックのソート前の位置に残存しているブロックを検出し削除する。
【００１８】
前記ストレージシステムの一つの実施形態では、前記１以上のプロセッサは、前記外部記憶装置内の前記ソートインブロック群のソート処理を行う場合、前記ソートインブロック群内の各ブロックの前記ストレージシステム内での位置と、前記ソートインブロック群内の各ブロックに対応する前記ソートワークブロック群又は前記ソートアウトブロック群内の各ブロックの前記ストレージシステム内での位置とを関連付けて表すブロック位置対応情報を前記制御情報メモリに記録する。そして、前記１以上のプロセッサは、前記ソートインブロック群のソート処理の実行中又は完了後、前記ホスト装置のオンライン業務中に、前記外部記憶装置内の前記ソートインブロック群内のいずれかのブロックのデータを更新する場合、前記更新されるブロックについてオンラインソート処理を前記オンライン業務中に実行する。このオンラインソート処理においてし、前記１以上のプロセッサは、前記更新されるブロックを前記ソートワークブロック群又は前記ソートアウトブロック群内のソート後の位置に書くとともに、前記ブロック位置対応情報に基づいて、前記ソートワークブロック群又は前記ソートアウトブロック群内から、前記更新されたブロックのソート前の位置に残存しているブロックを検出し削除し、さらに、前記更新されるブロックの前記ソートワークブロック群又は前記ソートアウトブロック群内での位置を前記ソート前の位置から前記ソート後の位置へと修正するように前記ブロック位置対応情報を更新する。
【００１９】
前記ストレージシステムの一つの実施形態では、前記１以上のプロセッサは、任意の論理デバイスの複製を作成し、前記複製の作成後、前記ホスト装置のオンライン業務中に、元の論理デバイス内のブロックを更新する場合、前記元の論理デバイス内の前記ブロックの更新を前記複製内のブロックに反映させる処理を前記オンライン業務中に行うようになっている。さらに、前記１以上のプロセッサは、前記複製内のブロック群を前記ソートインブロック群とみなし、その後、前記オンライン業務中に、前記元の論理デバイス内の前記ブロックの更新を前記複製内のブロックに反映させる場合、前記複製内の前記更新が反映されるブロックについてのソート処理を前記オンライン業務中に実行する。
【００２０】
本発明の別の観点に従うストレージシステムは、１以上のホスト装置と通信チャネルを介して接続可能であり、前記ホスト装置による入出力の対象となるデータを記憶する外部記憶装置と、前記ホスト装置と前記外部記憶装置との間における前記データの転送の制御を行うストレージ制御装置とを備える。前記ストレージ制御装置は、所定の異なる用途に使用できる共用メモリと、前記ホスト装置と前記外部記憶装置と前記共用メモリに接続され、前記外部記憶装置と前記ホスト装置と前記共用メモリのデータ入出力を制御する制御部とを有する。前記制御部は、前記ホスト装置からソート処理実行指示を受けてソート処理を行う１以上のプロセッサを有し、前記１以上のプロセッサは、前記外部記憶装置内の第1の記憶領域をソートイン領域として選択し、前記外部記憶装置内又は前記共用メモリ内の第２の記憶領域をソートワーク領域として選択し、前記外部記憶装置内の第３の記憶領域をソートアウト領域として選択し、前記ソートワーク領域を用いて前記ソートイン領域のデータをソートし、ソートされたデータを前記ソートアウト領域に格納するというソート処理を行うようになっている。
【００２１】
本発明の好適な実施形態によれば、ストレージシステムにおけるソート処理の能力向上を図ることができる。
【００２２】
本発明の好適な実施形態によれば、ソート処理数が増加しても、ホスト装置とストレージシステム間の入出力処理数が大きく増加しないようにすることができる。
【００２３】
本発明の好適な実施形態によれば、ストレージシステム内のキャッシメモリの使用効率を向上させることができる。
【００２４】
本発明の好適な実施形態によれば、ストレージシステム内の物理記憶デバイスへのアクセス競合を低減させることができる。
【００２５】
本発明の好適な実施形態によれば、オンライントランザクションのデータ入出力に大して影響することなしに、並行してソート処理が実行できる。
【発明を実施するための最良の形態】
【００２６】
本発明の実施形態に係る情報処理システムについて、図面を参照しながら詳細に説明する。
【００２７】
図１は、本発明の一実施形態にかかるストレージシステムを用いた情報処理システムの全体構成を示す。
【００２８】
図１に示す情報処理システムは、例えば業務情報処理のような情報処理を行うホスト装置１と、ホスト装置１に接続され、ホスト装置１により利用されるデータを蓄積し、そしてホスト装置１からの指示に応じてホスト装置１に対してデータの入出力を行うストレージシステム２とを備える。図１の例では、１つのホスト装置１がストレージシステム２に接続されているが、複数のホスト装置１がストレージシステム２に接続されてもよい。ホスト装置１とストレージシステム２は、両者間でのデータやデータアクセス指示などの入出力の制御を行うチャネル３を介して、通信可能に接続される。ストレージシステム２は、外部記憶装置１１とストレージ制御装置１２を備える。外部記憶装置１１は、データを蓄積するための1又は複数（典型的には多数）の物理的な記憶デバイス（例えばハードディスクドライブであり、以下、「物理デバイス」という）（図示省略）を有する。ストレージ制御装置１１は、ホスト装置１からのデータアクセス指示やその他各種の指示の処理、外部記憶装置１３とホスト装置１の間でのデータ転送の制御、及び本発明の原理に従う外部記憶装置１１内のデータのソート処理などを行う機能をもつ。
【００２９】
ストレージ制御装置１２は、後述する各種の制御機能をもつ制御部１２１、制御部１２１によって使用される各種の制御用の情報を記憶した制御情報メモリ１２２、外部記憶装置１１及びホスト装置1に対して入出力されるデータを一時的に記憶するキャッシュメモリ１２３を有する。制御部１２１は、チャネル３、制御情報メモリ１２２、キャッシュメモリ１２３及び外部記憶装置１１に通信可能に接続される。制御部１２１は、管理機器１４（ストレージシステム２の状態監視や保守点検などの目的に使用される、例えば、パーソナルコンピュータ）にも接続される。制御部１２１は、ホスト装置１からデータアクセス指示(リード指示、ライト指示など）を受信し解釈しホスト装置１へ然るべき応答を返すこと、ホスト装置１から受け取ったライトデータをキャッシュメモリ１２３に書くこと、キャッシュメモリ１２３に書かれたライドデータを外部記憶装置１１に転送すること、ホスト装置１から指示されたリードデータを外部記憶装置１１から取得してキャッシュメモリ１２３に書くこと、キャッシュメモリ１２３に書かれたリードデータをキャッシュメモリ１２３からホスト装置１に送ること、などのホスト装置１に対するデータ入出力処理に関わる制御を行う機能をもつ。さらに、制御部１２１は、ホスト装置１からデータソート指示を受信し解釈しホスト装置１へ然るべき応答を返すこと、ホスト装置１から受け取ったデータソート指示に従って後に詳述するようにしてデータのソート処理を行うこと、などのデータソート処理に関わる制御を行う機能ももつ。制御部１２１は、ホスト装置１からのデータソート指示だけでなく、管理機器１４からのデータソート指示に応答してデータソート制御を行うこともできる。制御部１２１は、前記の機能以外に、データの保護やバックアップに関わる機能や他の様々な機能をもつが、これらの機能についてはこの明細書では説明を省略する。制御部１２１は、１又は複数(典型的には複数）のプログラムされたマイクロプロセッサ（図示省略）を有し、それらのマイクロプロセッサが上述した各種の制御を分担して処理する。
【００３０】
制御情報メモリ１２２には、制御部２１が上述したデータ入出力処理に関わる制御やデータソート処理に関わる制御やその他の制御を行うときに、制御部２１によって使用される（例えば、読まれ、書かれ、又は変更される）ことになる各種の制御情報が記憶される。とりわけ、データソート処理に関わる制御において使用される制御情報については、後に詳述する。
【００３１】
制御部１２１は、外部記憶装置１１の物理的な記憶領域を論理的な記憶領域に変換し、また、論理的な記憶領域を物理的な記憶領域に変換する機能をもつ。制御部１２１は、この物理／論理記憶領域変換機能を用いて、外部記憶装置１１の記憶領域に１又は複数（典型的には多数）の論理的な記憶デバイス（以下、「論理デバイス」という）１１２を定義する。そして、制御部１２１は、ホスト装置１が所望の論理デバイス１１２に対してデータ入出力指示を発することができるように、論理デバイス１１２をベースにした通信インタフェースをホスト装置１に提供する。
【００３２】
管理機器１４は、制御情報メモリ１２２に対する入出力機能と、制御情報メモリ１２２に対する入出力情報を視覚的に表示できる機能などを持つ。
【００３３】
図２は、外部記憶装置１１の構成、とりわけ物理デバイス１１１と論理デバイス１２１との関係及び論理デバイス１２１の詳細な構成を示す。
【００３４】
図２に示すように、外部記憶装置１１は、１又は複数（典型的には多数）の物理デバイス１３１を有する。上述した制御部１２１によって、それら物理デバイス１３１が提供する記憶領域上に、１又は複数の（典型的には多数）の論理デバイス１１２が定義される。論理デバイス１１２は、1つの物理デバイスの記憶領域を制御上の論理範囲で分割した形態で定義されることができる。或いは、論理デバイス１１２は、グループ化された２つ以上の物理デバイス１１１の記憶領域を制御上の論理範囲で分割した形態で、例えば、RAIDの原理に従って２つ以上の物理デバイス１１１に分散された領域をから構成されるようにて、定義されることもできる。ホスト装置１が入出力する対象となるデータは、制御部１２１によって、論理デバイス１１２毎に管理される。
【００３５】
一般に、１つの論理デバイス１１２は、制御上のより小さい論理範囲に分割され、分割された個々の領域は論理トラック２０として定義される。１つの論理トラック２０は、制御上の更に細かい論理範囲（典型的には最少単位）で分割されて、分割された個々の領域はレコード２１として定義される。ホスト装置１がストレージ制御装置１２に対して送信するデータの入出力指示は、入出力対象のデータが存在する論理デバイス１１２のアドレスと、論理トラック２０の番号（トラック番号）とレコード２１の番号(レコード番号）を指定することで、その入出力対象のデータを特定する。ホスト装置１からの入出力指示の対象となったデータは、通常、論理トラック２０毎に、レコード２１という単位でキャッシュメモリ１２３及び物理デバイス１１１に記憶される。
【００３６】
外部記憶装置１３内の全ての論理デバイス２０、トラック２０、及びレコード２１を定義した情報は、制御部１２１により、制御情報メモリ１２２に記録される。また、制御部１２１は、外部記憶装置１３内のそれぞれの物理デバイス１１１の使用状況のモニタリングを行い、その結果得られた物理デバイス１１１の使用状況の情報を制御情報メモリ１２２に記録する。
【００３７】
以下、この実施形態におけるデータのソート処理について詳細に説明する。尚、以下の説明では、理解の容易のために、外部記憶装置１３内の単一の物理デバイス内に定義された論理デバイスを例にとる。1つの論理デバイスがグループ化された複数の物理デバイスに跨るように定義される、いわゆるＲＡＩＤ構成、が採用される場合には、その論理デバイスの使用状況は、その論理デバイスを構成する各物理デバイスの使用状況から判明する。よって、以下の単一の物理デバイスを例に取ったソート処理の説明から、ＲＡＩＤ構成におけるソート処理も、当業者は容易に理解可能である。また、本発明は、データのソート自体に必要なソートアルゴリズムを限定するものではなく、情報処理技術の中で一般に使用される様々なソートアルゴリズムが適用できる。そのソートアルゴリズムを行うためのソートプログラムは、例えば図１に示した制御部１２１内のマイクロプロセッサにプログラムされることができる。
【００３８】
まず、ホスト装置１がストレージシステム２のストレージ制御装置１２にソート処理を指示する動作に関して説明する。
【００３９】
ソート処理を実行するソートプログラムがホスト装置１にインストールされている。利用者は、ホスト装置１上で、ソートプログラムを起動して例えばバッチ業務としてのソートジョブの開始をソートプログラムに指示するためのソートジョブデータを、所定のジョブ制御言語（ＪＣＬ）を用いて作成する。このソートジョブデータの作成において、利用者は、ソート処理の実行に必要な複数種類のパラメータのセットを定義する。図３には、利用者によって定義されることができるパラメータセット３０の種類が例示されている。図３に示すように、例えば次のような種類のパラメータ３０１〜３０９のセット３０がソートジョブデータに含まれる。
【００４０】
(1)  ソートＩＮアドレス
ソートＩＮアドレスとは、ソート対象となる論理デバイスのアドレスである。
【００４１】
(2)   ソート範囲
ソート範囲とは、ソートＩＮアドレスによって指定された論理デバイス内でのソート対象となるブロック群（データセット）が存在する範囲である。ソート範囲は、例えば開始トラック番号と終了トラック番号によって指定される。
【００４２】
(3)  ソートキー
ソートキーとは、ソートの基準として使用されるキー（項目）の値である。
【００４３】
(4)  キー位置
キー位置とは、ブロック内でソートキーが存在する位置である。
【００４４】
(5)  ソートＯＵＴアドレス
ソートＯＵＴアドレスとは、ソートされ終わったデータブロック群が記憶される論理デバイスのアドレスである。
【００４５】
(6)  ソートＯＵＴ範囲
ソートＯＵＴ範囲とは、ソートＯＵＴアドレスによって指定された論理デバイス内でソートされ終わったブロック群（ソートＯＵＴデータセット）が記憶される範囲である。ソートＯＵＴ範囲は、例えば開始トラック番号と終了トラック番号によって指定される。
【００４６】
(7)  ソートＷＯＲＫアドレス
ソートＷＯＲＫアドレスとは、ソート処理の作業領域として使用される論理デバイスのアドレスである。
【００４７】
(8)  ソートＷＯＲＫ範囲
ソートＷＯＲＫ範囲とは、ソートＷＯＲＫアドレスによって指定された論理デバイス内で作業領域として使用されるブロック群（ソートＷＯＲＫデータセット）が記憶される範囲である。ソートＯＵＴ範囲は、例えば開始トラック番号と終了トラック番号によって指定される。
【００４８】
(9)  ソート方向
ソート方向とは、ソートされたデータの配列順序の方向であり、これには例えば、昇順また降順などが指定される。
【００４９】
ホスト装置１では、上記のようなパラメータセット３０が定義されると、そのパラメータセット３０を含んだソートジョブデータがエントリされ、そして、ホスト装置１のＯＳが、このソートジョブデータを用いてソートプログラムを起動する。ソートジョブデータを受けて、ホスト装置１のソートプログラムは、ストレージシステム２のストレージ制御装置１２に対してソート処理の実行を指示する。ストレージ制御装置１２は、その指示に応じてソート処理を行う。
【００５０】
図５は、ホスト装置１がストレージ制御装置１２にソート処理の実行を指示し、そして、ストレージ制御装置１２にソート処理を実行する動作の流れを示す。
【００５１】
図５において、ステップ５０１では、ホスト装置１のソートプログラムが、前述のＪＣＬによるソートジョブデータを加工して、図４に例示するようなパラメータセット４０を生成する。このパラメータセット４０には、図３に示した利用者により定義されたパラメータセット３０と同じ内容のパラメータが含まれている。そして、ホスト装置１のソートプログラムは、ソート処理実行指示のコマンドをストレージシステム２のストレージ制御装置１２に対して発行する。ステップ５０２では、ストレージ制御装置１２が、ソート処理実行指示のコマンドを受けて、ホスト装置１からパラメータセット４０を受領する。ステップ５０３では、ホスト装置１が、ソートジョブを待ち状態を登録し、ストレージ制御装置１２からのソートジョブ終了通知を待つ。但し、ホスト装置１は、ジョブ終了待ち状態を登録するだけで、待っている間、オンライン業務などの別の処理を実行することができる。
【００５２】
ステップ５０４では、ストレージ制御装置１２が、パラメータセット４０を解析し、指定されたソートＩＮアドレス４０１、ソート範囲４０２、ソートＯＵＴアドレス４０３、ソートＯＵＴ範囲４０４、ソートＷＯＲＫアドレス４０５、ソートＷＯＲＫ範囲４０６、キー４０７、キー位置４０８及びソート方向などのパラメータの内容を把握する。そして、ストレージ制御装置１２内の制御部１２１が、把握されたパラメータの内容に従ってソート処理を開始する。
【００５３】
ソート処理においては、ステップ５０５では、外部記憶装置１３内の指定されたソートＩＮアドレス４０１内のソート範囲４０２に存在する複数のレコード２１が、キャッシュメモリ１２３へ転送される。ステップ５０６では、制御部１２１が、ソートＩＮアドレス４０１のソート範囲４０２からキャッシュメモリ１２３に転送されたソート対象の複数のレコード２１を、指定されたキー４０７とキー位置４０８に従いソートする。ステップ５０７では、制御部１２１が、現在のソート処理１２３上に必要の無いレコード２１を、キャッシュメモリ１２３から指定されたソートＷＯＲＫアドレス４０５内のソートＷＯＲＫ範囲４０６へ書き出すことで退避させる。ステップ５０８では、先にソートＷＯＲＫアドレス４０５のソートＷＯＲＫ範囲４０６へ退避されたが、現在のソート処理に必要となったレコード２１が、ソートＷＯＲＫ範囲４０６から再度キャッシュメモリ１２３へ読み出される。
【００５４】
ステップ５０９では、制御部１２１が、ソート対象の全てのレコード２１のソートが完了したかを判断し、ソートが未完了であれば、制御をステップ５０６へ戻し、ソートされていないレコード２１について同様のソートを行う。他方、ステップ５０９でソートが完了したと判断された場合には、制御はステップ５１０へ進む。ステップ５１０では、ソートの完了したキャッシュメモリ１２３上のレコード２１及びソートＷＯＲＫアドレス４０５のソートＷＯＲＫ範囲４０６に退避されているレコード２１が、開始トラック番号から終了トラック番号に向かうトラック番号順で順次に、ソートＯＵＴアドレス４０３のソートＯＵＴ範囲４０４へ転送される。ソートされた全てのレコードのソートＯＵＴ範囲４０４への格納が完了後、制御はステップ５１１へ進み、ストレージ制御装置１２が、ソートジョブが終了したことをホスト装置１へ通知し、ホスト装置１は、ソートジョブ終了待ち状態の登録を消去する。
【００５５】
上記説明から分かるように、ソート処理が完了するまでは、ソートされているレコード２１の位置は、ソートＯＵＴアドレス４０３とソートＯＵＴ範囲４０４又はソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６内の位置で示されることができる。
【００５６】
ホスト装置１からだけでなく、管理機器１４からの指示によりストレージ制御装置１２にソート処理を行わせるようにすることもできる。その場合の制御は、図３〜図５を参照して行った上の説明においてホスト装置１を管理機器１４と読み替えることで説明され得る。
【００５７】
上記の制御により、ソート処理が、ホスト装置１及びチャネル３を使用せずにストレージシステム２の内部で行われる。そのため、ソート処理数が増加しても、ホスト装置１とストレージシステム２間の入出力処理数が増加しない。
【００５８】
さて、上述の説明では、ストレージシステム２内でソート処理の作業領域として使用される論理デバイス１１２のアドレス（ソートＷＯＲＫアドレス４０５）とブロック範囲（ソートＷＯＲＫ範囲４０６）が、ホスト装置１又は管理機器１４などの外部機器によって指定される。しかし、ホスト装置１か又は管理機器１４ら指定されるソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６が無効である（例えば、実在しない、或いは、現在別の目的で使用されているためワーク作業領域に割り当てられない、など)場合が発生し得る。このような場合、ストレージシステム２のストレージ制御装置１２は、自動的にソート処理用の作業領域を確保することができる。すなわち、このような場合、ストレージ制御装置１２は、例えばキャッシュメモリ１２３上の未使用領域をソート処理用の作業領域として確保し、これをソート処理終了まで作業領域として占有することを、自動的に実施する。
【００５９】
図６は、ストレージ制御装置１２が自動的にソート処理用の作業領域を確保する処理の流れを示す。
【００６０】
図６に示す制御は、ホスト装置１又は管理機器１４などの外部機器から指定されたソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６が無効である場合に、ストレージ制御装置１２の制御部１２１によって開始されるステップ６０１では、制御部１２１が、外部機器から指定されたソートＩＮアドレス４０１のソート範囲４０２の持つデータ量より大きいサイズのキャッシュメモリ１２３上の未使用領域を、ソート処理の作業領域として確保し、そして、ソートＷＯＲＫ範囲４０６を、キャッシュメモリ１２３上で確保された作業領域の位置情報へ置換する。そして、制御部１２１はソート処理を開始する。
【００６１】
ソート処理において、ステップ６０２では、外部記憶装置１３内の指定されたソートＩＮアドレス４０１のソート範囲４０２に存在するレコード２１が、キャッシュメモリ１２３のソートＷＯＲＫ範囲４０６（作業領域）へ読み込まれる。ステップ６０３では、制御部１２１が、キャッシュメモリ１２３のソートＷＯＲＫ範囲４０６に読み込まれたレコード２１を、指定されたキー４０７、キー位置４０８及びソート方法４０９に従ってソートする。ステップ６０４では、現在のソート処理に必要の無くなったキャッシュメモリ１２３の作業領域上のレコード２１が、そのキャッシュメモリ１２３のソートＷＯＲＫ範囲４０６内の未使用部分へ退避される。ステップ６０５では、先にキャッシュメモリ１２３のソートＷＯＲＫ範囲４０６内の未使用部分へ退避されたが、現在のソートに必要となったレコード２１が再度復帰されて、ソートＷＯＲＫ範囲４０６上の現在のソート対象のレコード２１へ組み込まれる。ステップ６０６では、ソートが完了したかが判断され、ソートが未完了であれば、制御はステップ６０３へ戻る。他方、ソートが完了した場合には、制御はステップ６０７へ進む。ステップ６０７では、ソートされたキャッシュメモリ１２３上のソートＷＯＲＫ範囲４０６上のレコード２１が、ソートＯＵＴアドレス４０３のソートＯＵＴ範囲４０４へ、開始トラック番号から終了トラック番号までトラック番号の順で順次に、転送される。このとき、キャッシュメモリ１２３上のソートＷＯＲＫ範囲４０６上に存在する、ソートＩＮアドレス４０１のソート範囲４０２が持つデータ量分のレコードが、ソートＯＵＴ範囲４０４へ転送される。出力完了後、制御はステップ６０８へ進み、ソートジョブ終了通知がホスト装置１又は管理機器１４へ送られ、ホスト装置１又は管理機器１４は、ソートジョブ終了待ち状態の登録を消去する。
【００６２】
上記の制御により、ソート処理の作業領域としてキャッシメモリ１２３が自動的に利用され、キャッシュメモリ１２３の使用効率が向上する。また、ストレージシステム内の物理デバイス１１１へのアクセス競合が低減する。
【００６３】
さて、ストレージ制御装置１２は、特定の論理デバイス１１２の特定のブロック範囲を、ソート処理の作業領域に使用可能な領域に、予め割り当てる機能をもつこともできる。ストレージ制御装置１２は、そのような作業領域の事前割当のための指示を、例えば管理機器１４から受けることができる。
【００６４】
作業領域として事前に割当てられた論理デバイス１１２のブロック範囲については、ホスト装置１からのアクセスが禁止される必要がある。このアクセス禁止を制御するために、図７に例示するように、制御情報メモリ１２２内に、各論理デバイス１１２の状態を表した論理デバイス管理テーブル７０が記憶され、論理デバイス管理テーブル７０に、論理デバイス１１２毎に、ホスト装置１によるアクセスが禁止されているか否かを示すアクセス禁止フラグ７０１を設定することができる。図７に示された論理デバイス管理テーブル７０の例では、それぞれの論理デバイス１１２の論理デバイスアドレスに対応して管理情報が記録されており、この管理情報には、アクセス禁止フラグ７０１と、その論理デバイス１１２が存在する物理デバイス１１１の場所を示す情報（例えば、物理デバイス１１１の物理デバイスアドレス及び物理デバイス１１１内のブロック範囲（トラック番号範囲）など）が含まれている。そして、アクセス禁止フラグ７０１の値「１」が、ホスト装置１によるアクセスが禁止されていることを意味し、値「０」はそのアクセスが禁止されていないことを意味する。
【００６５】
管理機器１４は、任意の論理デバイス１１２をソート処理の作業領域として選択する際、その選択された論理デバイス１１２の論理デバイスアドレスとアクセス禁止フラグ７０１の値「１」をストレージ制御装置１２に通知する。ストレージ制御装置１２は、制御情報メモリ１２２内の論理デバイス管理テーブル７０上の、通知された論理デバイスアドレスに対応するアクセス禁止フラグ７０１に、通知された値「１」を設定する。ストレージ制御装置１２は、論理デバイス管理テーブル７０を参照し、アクセス禁止フラグ７０１に値「１」が設定されている論理デバイス１１２については、ホスト装置１からの使用を禁止する。これにより、ソート処理の作業領域として使用可能なソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６が、予め１つ以上確保される。この状態においては、ストレージ制御装置１２は、1又は複数のホスト装置１から、ソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６が重複する複数のソート処理実行指示を受領した場合、いずれかのソート処理実行指示により指定されたソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６の代替として、予め作業領域として確保しておいた論理デバイス１１２内の記憶領域を利用することができる。この場合、ストレージ制御装置１２は、指定されたソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６を、その代替として利用される記憶領域の論理デバイスアドレスとブロック範囲に置き換える。このようにして、多重にソート処理を実行することができる。
【００６６】
予め作業領域のために確保しておいた１以上の論理デバイス１１２の中から、上述のような代替の作業領域を選択する場合に、ストレージ制御装置１２は、次のように動作することができる。すなわち、ストレージ制御装置１２は、図７に示すような制御情報メモリ１２２内の論理デバイス管理テーブル７０及び物理デバイス管理テーブル７１を参照する。物理デバイス管理テーブル７１には、それぞれの物理デバイス１１１のアドレスである物理デバイスに対応して、それぞれの物理デバイス１１１に対する過去のデータ入出力指示の回数（つまり、それぞれの物理デバイス１１１の使用負荷量）７１１が含まれている。因みに、この入出力指示回数７１１は、ストレージ制御装置１２が、継続的に、受領したデータ入出力指示を物理デバイス１１１毎にカウントして記録しているものである。さて、ストレージ制御装置１２は、論理デバイス管理テーブル７０及び物理デバイス管理テーブル７１に基づいて、作業領域に使用可能なように予め確保されている論理デバイス１１２の記憶領域の中から、ソート処理実施要求により指定されたソートＩＮアドレス４０１及びソートＯＵＴアドレス４０３で示される論理デバイス１１２が存在する物理デバイス１３１とは異なる物理デバイス１１１上に存在する記憶領域だけを、選択候補として絞り込む。そして、ストレージ制御装置１２は、絞り込まれたそれぞれの記憶領域が存在している物理デバイス１１１の入出力指示回数７１１を参照して、入出力指示回数７１１が最も少ない物理デバイス１１１に存在する記憶領域を、代替の作業領域として選択する。そして、ストレージ制御装置１２は、その選択された代替の作業領域の論理デバイスアドレスとブロック範囲を、図４に示されたパラメータセットのソートＷＯＲＫアドレス４０５とソートＷＯＲＫ範囲４０６に設定する。このようにして、過去の使用負荷が相対的に低い物理デバイス１３１上に存在する記憶領域を優先的に作業領域に割り当てることにより、記憶領域による使用負荷量の偏りを減少させることができる。また、物理デバイス１１１へのアクセス競合が低減する。
【００６７】
上述したソート処理は、ホスト装置１のオンライン業務が行われていない期間に行うことができることは言うまでも無い。しかし、オンライン業務処理中にこれと並行してソート処理を実行することもできる。以下に、オンライン業務処理中にソート処理を実行する場合の動作を説明する。
【００６８】
図２に示すように、ストレージ制御装置１２は、或る論理デバイス１１２内にレコード２１を新規作成する際、各レコード２１に対してその論理デバイス１１２内で固有なＩＤ２１４を割当て、各レコード２１にそのレコードＩＤ２１４を記録する。すなわち、ストレージ制御装置１２は、ホスト装置１からのデータアクセス指示を受けた場合、その指示がレコード新規作成指示か否かを判断する。判断結果が真ならば、ストレージ制御装置１２は、ホスト装置１から転送されてくるレコード２１のデータの後端に固有ＩＤ２１４を付加する。他方、判断結果が偽であるならば、ストレージ制御装置１２は、指示通りのアクセスを実施するが、その際、固有ＩＤ２１４については何の操作も行わない。従って、各レコード２１の固有ＩＤ２１４は、レコード２１が更新された場合には、変化しない。ストレージ制御装置１２は、固有ＩＤ２１４を含めたレコード２１に対してソート処理を実行し、ソート処理において固有ＩＤ２１４を変化させない。よって、ストレージ制御装置１２は、ソート処理完了後、所望のレコード２１の固有ＩＤ２１４をソートＯＵＴアドレス４０３のソートＯＵＴ範囲４０４から検索することで、そのレコード２１のソート後の位置を知ることができる。
【００６９】
更に、ストレージ制御装置１２は、図８中に示すようなソートレコード位置対応テーブル８０を制御情報メモリ１２２に設定する。ソートレコード位置対応テーブル８０には、ソートＩＮ側情報８１とソートＷＯＲＫ／ＯＵＴ側情報８２が相互に関連付けられて記憶される。ソートＩＮ側情報８１には、ソートＩＮアドレス４０１のソート範囲４０２内に存在する全てのレコード２１（つまり、ソート対象の全てのレコード２１）の、ソートＩＮアドレス４０１内での論理トラック番号２１１とレコード番号２１２が記録される。ソートＷＯＲＫ／ＯＵＴ側情報８２には、ソート対象の全てのレコード２１のソートＯＵＴアドレス４０３又はソートＷＯＲＫアドレス４０５内での論理トラック番号２１１とレコード番号２１２が記録される（ソート処理中、ソートＯＵＴアドレス４０３に存在するレコード２１についてはソートＯＵＴアドレス４０３内の番号、ソートＯＵＴアドレス４０３には存在せずソートＷＯＲＫアドレス４０５に存在するレコード２１についてはソートＷＯＲＫアドレス４０５内の番号）。ストレージ制御装置１２は、ソートレコード位置対応テーブル８０を使用することにより、ソートＩＮアドレス４０１のソート範囲４０２内の論理トラック番号２１１とレコード番号２１２で一意に決まるレコード２１が、ソートＯＵＴアドレス４０３のソートＯＵＴ範囲４０４内の論理トラック番号２１１とレコード番号２１２における、または、ソートＷＯＲＫアドレス４０５のソートＷＯＲＫ範囲４０６内の論理トラック番号２１１とレコード番号２１２におけるどのレコード２１に対応するかが認知できる。
【００７０】
図９は、ストレージ制御装置１２がソートレコード位置対応テーブル８０を作成する処理の流れを示す。
【００７１】
図９において、ステップ９０１では、ストレージ制御装置１２がソート対象のレコード２１の全てをソートＩＮ側情報８１に登録する。登録される内容は、ソートＩＮアドレス４０１、ソートＩＮアドレス４０１内のトラック番号２１１、及びトラック２０内レコード番号２１２である。ステップ９０２では、ソート処理が実行される。ソート処理中又はソート処理後に、ステップ９０３で、ストレージ制御装置１２が、各レコード２１のソート先位置を決定し、ソートＷＯＲＫ／ＯＵＴ側情報８２に登録する。登録される内容は、ソートＷＯＲＫアドレス４０５若しくはソートＯＵＴアドレス４０３、ソートＷＯＲＫアドレス４０５若しくはソートＯＵＴアドレス４０３内のトラック番号２１１、及びトラック２０内のレコード番号２１２である。ステップ９０４で、ストレージ制御装置１２がソート処理完了かをチェックし、未完であればステップ９０２へ戻る。こうして、ソート処理中もしくは完了後に、ソートレコード位置対応テーブル８０が作成される。
【００７２】
図１０は、ストレージ制御装置１２が、オンライン業務中にバックグラウンドでソート処理を行う動作例の概要を示す。
【００７３】
図１０に示すように、ストレージ制御装置１２が、任意の論理デバイス１０００の複製１００１を作成する複製機能と、複製１００１の作成後に元の論理デバイス１０００内のレコード２１が更新された場合にその更新されたレコード２１のみを複製１００１に反映するスナップショット機能を有する。ストレージ制御装置１２は、ソート対象の論理デバイス（以下、「ソートＩＮ」という）１０００の複製１００１を、上述したソート処理におけるソートＩＮアドレスにより指定された論理デバイスとして扱う。オンライン業務中、ストレージ制御装置１２は、ソートＩＮ１０００内のいずれかのレコード２１が更新されると、そのレコード２１の更新をその複製１００１に反映させる。さらに、ストレージ制御装置１２は、複製１００１のレコード２１の更新処理に同期して、複製１００１内の更新されたレコード２１のソートを実施して、ソートされたレコード２１を別の論理デバイス（以下、「ソートＯＵＴ」という）１００２に格納する
図１１は、ストレージ制御装置１２がオンライン業務中にバックグラウンドでソート処理を行う動作の流れを示す。
【００７４】
図１１において、ステップ１１０１では、ストレージ制御装置１２が、ソートＩＮとして指定された論理アドレス１０００の複製１００１を、ソートＩＮと認識し、この複製１００１のアドレスをソートＩＮアドレス４０１に設定する。ステップ１１０２では、前述のソートレコード位置対応テーブル８０の設定が行われる。すなわち、ストレージ制御装置１２が、ソート対象のレコード（複製１００１内のレコード）２１の全てをソートレコード位置対応テーブル８０のソートＩＮ側情報８１に登録する。登録される内容は、ソートＩＮアドレス（複製１００１のアドレス）４０１、複製１００１内トラック番号２１１、及びトラック２１１内レコード番号２１２である。ステップ１１０３では、ソート処理が実行される。ソート処理中又は完了後に、ステップ１１０４では、ストレージ制御装置１２が、ソート先のレコード２１の位置を決定し、ソートレコード位置対応テーブル８０のソートＷＯＲＫ／ＯＵＴ側情報８２に登録する。登録される内容は、ソートＷＯＲＫアドレス４０５又はソートＯＵＴアドレス４０３、ソートＷＯＲＫアドレス４０５又はソートＯＵＴアドレス４０３内トラック番号２１１、及びトラック２１１内レコード番号２１３である。ステップ１１０５でソート処理完了かがチェックされ、未完であれば制御はステップ１１０３へ戻る。こうして、ソート処理中もしくは完了後に、ソートレコード位置対応テーブル８０が作成される。
【００７５】
ステップ１１０６では、ストレージ制御装置１２が、ソート処理が完了した後も常にソート再開可能な状態になる。
【００７６】
ステップ１１０７では、ストレージ制御装置１２が、複製側１００１、すなわち、ソートＩＮアドレスでのレコード更新が発生したかをチェックする。更新が発生した場合は、制御はステップ１１０８へ進み、ストレージ制御装置１２が、更新されたソートＩＮアドレス内のトラック番号２１１のレコード番号２１２のレコード２１のみを対象として、ソート処理を実施する。この更新されたレコード２１のみを対象としたソート処理では、その対象のレコード２１が、ソートＷＯＲＫアドレス又はソートＯＵＴアドレス内のソート後の新たな位置に書かれる。それとともに、その対象のレコード２１のＩＤを用いて、ソートＷＯＲＫアドレス又はソートＯＵＴアドレス内のソート前の位置に残存している対象のレコード２１が検出されて消去される。こうして、更新されたレコード２１が、他のレコード２１と正しい順序で整列するように、ソートＷＯＲＫアドレス又はソートＯＵＴアドレスにマージされる。
【００７７】
ステップ１１０９では、上記の更新されたレコード２１のみを対象としたソート処理中又は処理後に、ストレージ制御装置１２が、今回マージされたレコード２１について、ソートレコード位置対応テーブル８０のソートＷＯＲＫ／ＯＵＴ側情報８２に記録されたレコード位置（ソートＷＯＲＫアドレス又はソートＯＵＴアドレス内のトラック番号２１１及びレコード番号２１２）を更新する。
【００７８】
ステップ１１１０では、ストレージ制御装置１２が、今回マージされたレコード２１のＷＯＲＫ／ＯＵＴ側情報８２内の更新されたレコード位置２１１、２１２が、更新前より小さいかチェックする。チェックの結果が肯定の場合には、制御はステップ１１１１へ進む。ステップ１１１１では、ストレージ制御装置１２が、ソート処理の一環として、ソートＷＯＲＫアドレス又はソートＯＵＴアドレスにおいて、今回マージされたレコード２１の一つ後のレコード位置から、今回マージされたレコード２１のソート前のソートＷＯＲＫ／ＯＵＴ側情報８２が示していたレコード位置より一つ前のレコード位置までの範囲に位置する全てのレコード２１のレコード番号２１２を−１する方向にずらして、ソートＷＯＲＫアドレス又はソートＯＵＴアドレスに書き直す。それに伴い、ステップ１１１５では、ストレージ制御装置１２が、ステップ１１１４でレコード番号２１２が更新されたレコード２１について、ソートレコード位置対応テーブル８０のソートＷＯＲＫ／ＯＵＴ側情報８２を更新する。
【００７９】
また、ステップ１１１３では、ストレージ制御装置１２が、今回マージされたレコード２１のソートＷＯＲＫ／ＯＵＴ側情報８２内の更新されたレコード位置２１１、２１２が、更新前より大きいかチェックする。ソート結果が肯定の場合は、制御はステップ１１１４へ進む。ステップ１１１４では、ストレージ制御装置１２が、ソート処理の一環として、ソートＷＯＲＫアドレス又はソートＯＵＴアドレスにおいて、今回マージされたレコード２１の一つ前のレコード位置から、今回マージされたレコード２１のソート前のソートＷＯＲＫ／ＯＵＴ側情報８２が示していたレコード位置の一つ後のレコード位置までの範囲に位置する全てのレコード２１のレコード番号２１２を−１する方向にずらして、ソートＷＯＲＫアドレス又はソートＯＵＴアドレスに書き直す。それに伴い、ステップ１１１５では、ストレージ制御装置１２が、ステップ１１１４でレコード番号２１２が更新されたレコード２１について、ソートレコード位置対応テーブル８０のソートＷＯＲＫ／ＯＵＴ側情報８２を更新する。
【００８０】
以上のようにして、オンライン業務中は、更新されたレコードのみに限定してソート処理が行われる。これにより、オンライン業務に大した支障を与えずに、オンライン業務と並行してソート処理ができる。なお、図１１中のステップ１１０８〜１１０５で示すオンライン業務中の更新データのソート処理は、ステップ１１０１〜１１０４で示す複製のソート処理の完了後だけでなく、複製のソート処理の実行中にブロック更新が発生した時に行うこともできる。
【００８１】
既に説明したように、ソート処理はホスト装置１からの指令によるだけでなく、管理機器１４からの指令によっても行えるようにしてもよい。管理機器１４が図４に示したようなパラメータセット４０をストレージ制御装置１２へ通知することで、ストレージ制御装置１２は、そのパラメータセット４０に従ってソート処理を行うことができる。管理機器１４からの指示によるソート処理が完了した場合、ストレージ制御装置１２はソート処理完了を、管理機器１４だけでなくホスト装置１にも報告することができる。
【００８２】
また、上述した予めソート処理の作業領域のための論理デバイスを確保する処理は、管理機器１４からの指示によるだけでなく、ホスト装置１からの指示によって行えるようにすることもできる。いずれからの指令によって論理デバイスを確保する処理を行った場合でも、ストレージ制御装置１２は、どの論理デバイスが確保されたかを、管理機器１４及びホスト装置１に報告することができる。
【００８３】
本発明が適用されるストレージシステム２の構成は図１に示したようなものである必要は無く、他の構成のストレージシステムにも本発明が適用できる。図１２は、本発明が適用できるストレージシステムの別の構成の一例を示している。図１２の構成例では、複数のホスト装置１がストレージ制御装置１２に接続されている。ストレージ制御装置１２は、制御部１２１と、これに接続された複数の共有メモリ１２５を備える。制御部１２１は、複数のチャネルアダプタ１２１１と、複数のディスクアダプタ１２１２を有する。各チャネルアダプタ１２１１は、ホスト装置１及び全ての共有メモリ１２５に接続され、ホスト装置１との通信及びホスト装置１と送受するデータや指令の処理を制御を行う。各ディスクアダプタ１２１２は、全ての共有メモリ１２５及び外部記憶装置１１内の全ての物理デバイス１１１に接続され、物理デバイス１１１との通信及び物理デバイス１１１と送受するデータや指令の処理を制御を行う。共有メモリ１２５には、図１に示した制御情報メモリ１２２と同様の用途に使用される制御情報メモリ領域１２５１と、図１に示したキャッシュメモリ１２３と同様の用途に使用されるキャッシュメモリ領域１２５２とがある。このような構成のストレージシステムにおいても、ストレージ制御装置１２が既に説明したような制御を行うことにより、ホスト装置１のオンライン業務のデータ入出力に大した影響を与えずにソート処理を行うことができる。
【００８４】
上述した実施形態では、ストレージシステム２は図１に示したキャッシュメモリとして使用されるような構成をもつが、他の構成のストレージシステムにも本発明が適用できることは言うまでもない。例えば、図１２は、ストレージシステムの別の構成例を示しているが、これにも本発明は適用できる。
【００８５】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であり、本発明の範囲を上記実施形態に限定する趣旨ではない。本発明は上記実施形態以外の様々な態様で実施することができる。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施形態にかかるストレージシステムを用いた情報処理システムの全体構成を示す図である。
【図２】外部記憶装置１１の構成、とりわけ物理デバイス１１１と論理デバイス１２１との関係及び論理デバイス１２１の詳細な構成を示す図である。
【図３】利用者が定義するソート処理に必要なパラメータセット３０を例示した図である。
【図４】図３のパラメータセット３０に基づいてホスト装置が作成するパラメータセット４０を例示した図である。
【図５】ホスト装置１がストレージ制御装置１２にソート処理の実行を指示し、そして、ストレージ制御装置１２にソート処理を実行する制御の流れを示す図である。
【図６】ストレージ制御装置１２が自動的にソート処理用の作業領域を確保する制御の流れを示す図である。
【図７】制御情報メモリ１２２内の論理デバイス管理テーブル７０及び物理デバイス管理テーブル７１の構成を示す図である。
【図８】制御情報メモリ１２２内のソートレコード位置対応テーブル８０の構成を示す図である。
【図９】ストレージ制御装置１２がソートレコード位置対応テーブル８０を作成する処理の流れを示す図である。
【図１０】ストレージ制御装置１２がオンライン業務中にソート処理を行う動作の概要を示す図である。
【図１１】ストレージ制御装置１２がオンライン業務中にソート処理を行う動作の流れを示す図である。
【図１２】本発明が適用できるストレージシステムの別の構成の一例を示す図である。
【符号の説明】
【００８７】
１・・ホスト処理装置
２・・ストレージシステム
１１・・外部記憶装置
１２・・ストレージ制御装置
１２１・・制御部
１２２・・制御情報メモリ
１２３・・キャッシュメモリ
１１１・・物理記憶デバイス
１１２・・論理記憶デバイス
２０・・論理トラック
２１・・レコード
２１１・・トラック番号
２１２・・レコード番号
２１４・・固有ＩＤ
【図１】
2005190047.tif 000003
【図２】
2005190047.tif 000004
【図３】
2005190047.tif 000005
【図４】
2005190047.tif 000006
【図５】
2005190047.tif 000007
【図６】
2005190047.tif 000008
【図７】
2005190047.tif 000009
【図８】
2005190047.tif 000010
【図９】
2005190047.tif 000011
【図１０】
2005190047.tif 000012
【図１１】
2005190047.tif 000013
【図１２】
2005190047.tif 000014