(57)【特許請求の範囲】
【請求項１】
複数台のディスク装置を備えたディスクアレイ装置において、
前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間の論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録された論理／物理対応テーブルと、
ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズをシフト量として含んだシフト命令が管理装置から入力されたとき、前記論理／物理対応テーブルに登録されている論理アドレスに、前記シフト命令に含まれている前記シフト量に応じた値を加算するシフト実施部と、
該シフト実施部が前記シフト命令に従って前記論理／物理テーブルの内容を更新した後、該更新後の論理／物理テーブルの内容に基づいて、前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記シフト量だけ前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させる論理／物理ディスク制御部と、
該論理／物理ディスク制御部によるシフト処理および移動処理が完了した後に前記ホスト計算機から発行されるＩ／Ｏ命令中の論理アドレスが、前記ホスト計算機が認識している前記管理領域の論理アドレスであるか否かを、前記Ｉ／Ｏ命令中の論理アドレスと前記シフト命令中のシフト量から認識した前記論理ディスクに割り当てられている論理アドレス空間の開始アドレスとを比較することにより判定し、前記管理領域の論理アドレスであった場合には、前記Ｉ／Ｏ命令中の論理アドレスを、前記ディスク装置上において前記論理ディスクの最終データの直後に移動させた前記管理領域のデータの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに前記Ｉ／Ｏ命令中の論理アドレスを加算したアドレスに変換するシフト計算部とを備えたことを特徴とするディスクアレイ装置。
【請求項２】
複数台のディスク装置を備える共に、論理／物理対応テーブルを備えたディスクアレイ装置における論理アドレス制御方法であって、
前記論理／物理対応テーブルには、前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間の論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録され、且つ、
シフト実施部が、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズをシフト量として含んだシフト命令が管理装置から入力されたとき、前記論理／物理対応テーブルに登録されている論理アドレスに、前記シフト命令に含まれている前記シフト量に応じた値を加算する第１のステップと、
論理／物理ディスク制御部が、前記第１のステップによって前記論理／物理テーブルの内容が更新された後、該更新後の論理／物理テーブルに内容に基づいて、前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記シフト量だけ前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させる第２のステップと、
シフト計算部が、前記論理／物理ディスク制御部による前記第２のステップが完了した後に前記ホスト計算機から発行されるＩ／Ｏ命令中の論理アドレスが、前記ホスト計算機が認識している前記管理領域の論理アドレスであるか否かを、前記Ｉ／Ｏ命令中の論理アドレスと前記シフト命令中のシフト量から認識した前記論理ディスクに割り当てられている論理アドレス空間の開始アドレスとを比較することにより判定し、前記管理領域の論理アドレスであった場合には、前記Ｉ／Ｏ命令中の論理アドレスを、前記ディスク装置上において前記論理ディスクの最終データの直後に移動させた前記管理領域のデータの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに前記Ｉ／Ｏ命令中の論理アドレスを加算したアドレスに変換する第３のステップとを含むことを特徴とする論理アドレス制御方法。
【請求項３】
複数台のディスク装置を備えると共に、論理／物理対応テーブルを備えたコンピュータをディスクアレイ装置として機能させるためのプログラムであって、
前記論理／物理対応テーブルには、前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間の論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録され、且つ、
前記コンピュータを、
ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズをシフト量として含んだシフト命令が管理装置から入力されたとき、前記論理／物理対応テーブルに登録されている論理アドレスに、前記シフト命令に含まれている前記シフト量に応じた値を加算するシフト実施部、
該シフト実施部が前記シフト命令に従って前記論理／物理テーブルの内容を更新した後、該更新後の論理／物理テーブルに内容に基づいて、前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記シフト量だけ前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させる論理／物理ディスク制御、
該論理／物理ディスク制御部によるシフト処理および移動処理が完了した後に前記ホスト計算機から発行されるＩ／Ｏ命令中の論理アドレスが、前記ホスト計算機が認識している前記管理領域の論理アドレスであるか否かを、前記Ｉ／Ｏ命令中の論理アドレスと前記シフト命令中のシフト量から認識した前記論理ディスクに割り当てられている論理アドレス空間の開始アドレスとを比較することにより判定し、前記管理領域の論理アドレスであった場合には、前記Ｉ／Ｏ命令中の論理アドレスを、前記ディスク装置上において前記論理ディスクの最終データの直後に移動させた前記管理領域のデータの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに前記Ｉ／Ｏ命令中の論理アドレスを加算したアドレスに変換するシフト計算部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台のディスク装置を備えたディスクアレイ装置に関し、特に、ディスク装置を跨ぐ入出力を減少させることが可能なディスクアレイ装置に関する。
【背景技術】
【０００２】
複数台の磁気ディスク装置を備え、各磁気ディスク装置にデータを分散配置すると共に冗長データを付加するようにしたディスクアレイ装置は、経済的な構成で、高い入出力性能及び信頼性を得ることができるため、近年、盛んに利用させるようになってきている。図１２は従来の一般的なディスクアレイ装置１００の構成例を示したブロック図であり、磁気ディスク装置などの複数台のディスク装置ＤＩＳＫ１〜ＤＩＳＫ５と、命令制御部１０１と、キャッシュ制御部１０２と、論理／物理ディスク制御部１０３と、論理／物理対応テーブル１０４とを備えている。
【０００３】
ところで、ディスクアレイ装置１００に接続されているホスト計算機２００においては、ディスクアレイ装置１００上に図１３に示すようなホスト論理ディスク３００が、１個あるいは複数個存在すると認識している。ホスト論理ディスク３００の先頭部分には、ホスト論理ディスク３００上のどこにOS(operating system)が使用する領域（OS使用領域）３０２があるのかをBIOS(basic input/output systm)に知らせるためのデータ（OS使用領域３０２の開始アドレスやサイズ）を格納している管理領域３０１が設けられている。この管理領域３０１は、アーキテクチャ依存でPC/AT互換機の場合は、１セクタ(512byte)である。従って、管理領域３０１は、OS固有のものでないので、Windows（登録商標）、LinuxといったOSの違いに左右されることはない。
【０００４】
一方、ディスクアレイ装置１００においては、ホスト論理ディスク３００に対応するディスクとして、図１３に示す論理ディスク４００が存在していると認識している。なお、ホスト計算機２００が複数のホスト論理ディスクを認識している場合には、各ホスト論理ディスクに対応する論理ディスクを認識している。同図に示すように、ホスト論理ディスク３００および論理ディスク４００に割り当てられている論理アドレス空間は一致している。また、論理ディスク４００は、図１４に示すように、開始アドレス「０番地」から所定サイズのストライプに分割され、各ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に記録される。
【０００５】
ここで、管理領域３０１のデータは、論理ディスク４００においては、図１５に示すように、その先頭部分に格納され、ディスクアレイ装置１００においては、図１５に示すように、ディスク装置ＤＩＳＫ１のストライプ番号ＳＴ１のストライプ（ストライプＳＴ１という場合もある）の先頭部分に格納される。従って、ホストコンピュータ２００が、OS使用領域３０２の開始アドレスからストライプサイズの入出力を行った場合、２つのディスク装置ＤＩＳＫ１，ＤＩＳＫ２を跨ぐ入出力になってしまい、入出力性能が低下してしまう。今、例えば、管理領域３０１のサイズが512byte、ストライプのサイズが2048byteであるとし、ホストコンピュータ２００がOS使用領域３０２の開始アドレス「512番地」からストライプサイズの入出力を行ったとすると、ディスク装置ＤＩＳＫ１のストライプＳＴ１の512番地〜2047番地と、ディスク装置ＤＩＳＫ２のストライプＳＴ１の０番地〜511番地とに対して入出力が行われることになるため、入出力性能が低下してしまう。
【０００６】
そこで、このような問題点を解決するため、従来、次のような技術が提案された（例えば、特許文献１参照）。この従来の技術を、図１６を参照して説明する。
【０００７】
この特許文献１に記載されている従来の技術では、ホスト計算機２００からディスクアレイ装置１００に対してＩ／Ｏ命令を発行する際、先ず、Ｉ／Ｏ命令に含まれているアクセス先を示すアドレスが、管理領域３０１のアドレスであるか否かを調べる。そして、Ｉ／Ｏ命令中のアドレスが管理領域３０１のアドレスである場合には、上記Ｉ／Ｏ命令をそのままディスクアレイ装置１００に発行する。これに対して、Ｉ／Ｏ命令中のアドレスが管理領域３０１のアドレスでない場合には、ストライプのサイズと管理領域３０１のサイズとの差分を、上記Ｉ／Ｏ命令中のアドレスに加算し、加算後のアドレスを含んだＩ／Ｏ命令をディスクアレイ装置１００に対して発行する。
【０００８】
今、例えば、管理領域３０１のサイズが512byte、ストライプのサイズが2048byteであるとする。また、Ｉ／Ｏ命令がOS使用領域３０２の開始アドレス「512番地」からストライプサイズの入出力を行うものであり、アドレス「512番地」とサイズ「2048byte」とを含んでいるとする。この例の場合、Ｉ／Ｏ命令に含まれているアドレスが「512番地」であり、管理領域３０１のアドレスでないので、ホスト計算機は、Ｉ／Ｏ命令に含まれているアドレス「512」番地を｛512＋（2048−512)｝＝2048番地に変換し、変換後のアドレスを含んだＩ／Ｏ命令をディスクアレイ装置に対して発行する。このようなアドレス変換を行ったＩ／Ｏ命令をディスクアレイ装置１００に発行することより、ディスクアレイ装置１００においては、ディスク装置ＤＩＳＫ２のストライプＳＴ１に対してだけ入出力が行われることになり、入出力性能が向上する。
【０００９】
【特許文献１】特開２００１−１２５７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した特許文献１に記載されている従来の技術によれば、ディスク装置を跨ぐ入出力を減少させ、入出力性能を向上させることができる。しかし、特許文献１に記載されている従来の技術は、Ｉ／Ｏ命令に含まれているアドレスが管理領域３０１のアドレスでなかった場合、Ｉ／Ｏ命令中のアドレスを｛Ｉ／Ｏ命令中のアドレス＋（ストライプのサイズ−管理領域のサイズ）｝に変換するようにしているため、ディスクアレイ装置１００内のディスク装置に未使用領域が形成されてしまい、ディスクアレイ装置１００の容量効率が悪くなるという問題がある。管理領域３０１のサイズを512byte、ストライプのサイズを2048byteとした上記した例においては、ディスク装置ＤＩＳＫ１のストライプＳＴ１の512番地〜2047番地が未使用領域となってしまい、ディスクアレイ装置の容量効率が悪くなるという問題がある。
【００１１】
〔発明の目的〕
そこで、本発明の目的は、ディスクアレイ装置のディスク装置に未使用領域を形成することなく、ディスク装置を跨ぐ入出力を減少させることにある。
【課題を解決するための手段】
【００１２】
本発明にかかる第１のディスクアレイ装置は、
複数台のディスク装置を備えたディスクアレイ装置において、
前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズ分、後方にシフトするシフト実施部と、
前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記管理領域のサイズ分、前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させる論理／物理ディスク制御部とを備えたことを特徴とする。
【００１３】
本発明にかかる第２のディスクアレイ装置は、第１のディスクアレイ装置において、
前記ホスト計算機から発行されたＩ／Ｏ命令中の論理アドレスが、前記論理ディスクに割り当てられている論理アドレス空間の開始アドレス未満であった場合、前記Ｉ／Ｏ命令中の論理アドレスを、前記論理ディスクの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに変換するシフト計算部を備えたことを特徴とする。
【００１４】
本発明にかかる第３のディスクアレイ装置は、第２のディスクアレイ装置において、
前記論理ディスクに割り当てられている論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録された論理／物理対応テーブルを備え、且つ、
前記シフト実施部が、前記論理／物理対応テーブルに登録されている論理アドレスに、前記管理領域のサイズに応じた値を加算する構成を有することを特徴とする。
【００１５】
本発明にかかる第１の論理アドレス制御方法は、
複数のディスク装置を備えたディスクアレイ装置における論理アドレス制御方法であって、
前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズ分、後方にシフトし、
更に、前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記管理領域のサイズ分、前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させることを特徴とする。
【００１６】
本発明にかかる第２の論理アドレス制御方法は、第１の論理アドレス制御方法において、
前記ホスト計算機から発行されたＩ／Ｏ命令中の論理アドレスが、前記論理ディスクに割り当てられている論理アドレス空間の開始アドレス未満であった場合、前記Ｉ／Ｏ命令中の論理アドレスを、前記論理ディスクの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに変換することを特徴とする。
【００１７】
本発明にかかる第３の論理アドレス制御方法は、第２の論理アドレス制御方法において、
前記論理ディスクに割り当てられている論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録された論理／物理対応テーブルを備え、且つ、
前記論理／物理対応テーブルに登録されている論理アドレスに、前記管理領域のサイズに応じた値を加算することにより、前記論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズ分、後方にシフトすることを特徴とする。
【００１８】
本発明にかかる第１のプログラムは、
複数台のディスク装置を備えたコンピュータをディスクアレイ装置として機能させるためのプログラムであって、
前記コンピュータを、
前記ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズ分、後方にシフトするシフト実施部、
前記ディスク装置に格納されている前記論理ディスクのデータの内の、前記管理領域のデータ以外を前記ディスク装置上において前記管理領域のサイズ分、前方にシフトすると共に、前記管理領域のデータを前記ディスク装置上において前記論理ディスクの最終データの直後に移動させる論理／物理ディスク制御部として機能させる。
【００１９】
本発明にかかる第２のプログラムは、第１のプログラムにおいて、
前記コンピュータを、
前記ホスト計算機から発行されたＩ／Ｏ命令中の論理アドレスが、前記論理ディスクに割り当てられている論理アドレス空間の開始アドレス未満であった場合、前記Ｉ／Ｏ命令中の論理アドレスを、前記論理ディスクの最終論理アドレスから前記管理領域のサイズ分差し引いたアドレスに変換するシフト計算部として機能させる。
【００２０】
本発明にかかる第３のプログラムは、第２のプログラムにおいて、
前記コンピュータが、前記論理ディスクに割り当てられている論理アドレスと、前記ディスク装置上の物理アドレスとの対応関係が登録された論理／物理対応テーブルを備え、且つ、
前記シフト実施部が、前記論理／物理対応テーブルに登録されている論理アドレスに、前記管理領域のサイズに応じた値を加算する構成を有することを特徴とする。
【００２１】
〔作用〕
ディスクアレイ装置内のシフト実施部は、ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズだけ、後方にシフトする。これにより、ディスクアレイ装置が認識している論理ディスクの先頭部分には、管理領域が存在しないことになるので、論理ディスクの先頭部分に管理領域が存在していたために発生していた、ディスク装置を跨ぐ入出力を減少させることが可能になる。
【００２２】
また、ディスクアレイ装置内の論理／物理ディスク制御部は、ディスクアレイ装置が備えている各ディスク装置に格納されている上記論理ディスクのデータの内の、管理領域のデータ以外をディスク装置上において管理領域のサイズ分、前方にシフトすると共に、管理領域のデータをディスク装置上において論理ディスクの最終データの直後に移動させる。これにより、ディスク装置上に未使用領域を形成することなく、論理ディスクの全てのデータをディスク装置上に格納することができる。
【発明の効果】
【００２３】
本発明によれば、ディスクアレイ装置のディスク装置に未使用領域を形成することなく、ディスク装置を跨ぐ入出力を減少させることが可能になる。
【００２４】
ディスク装置を跨ぐ入出力を減少させることができる理由は、シフト実施部が、ディスクアレイ装置が認識している論理ディスクに割り当てられている論理アドレス空間を、ホスト計算機が認識しているホスト論理ディスクの先頭部分に設けられている管理領域のサイズだけ、後方にシフトするようにしているからである。即ち、シフト実施部において上記した処理を行うことにより、ディスクアレイ装置が認識している論理ディスクの先頭部分には、管理領域が存在しないことになるので、論理ディスクの先頭部分に管理領域が存在していたために発生していた、ディスク装置を跨ぐ入出力を減少させることが可能になる。
【００２５】
また、ディスクアレイ装置のディスク装置に未使用領域が形成されない理由は、論理／物理ディスク制御部が、ディスクアレイ装置が備えている各ディスク装置に格納されている論理ディスクのデータの内の、管理領域のデータ以外をディスク装置上において管理領域のサイズ分、前方にシフトすると共に、管理領域のデータをディスク装置上において論理ディスクの最終データの直後に移動させようにしているからである。
【発明を実施するための最良の形態】
【００２６】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２７】
〔実施の形態の構成の説明〕
図１は、本発明にかかるディスクアレイ装置の実施の形態の構成例を示すブロック図であり、ディスクアレイ装置１と、管理装置２と、ホスト計算機２００とを含んでいる。
【００２８】
ホスト計算機２００は、図１２に示したホスト計算機２００と同様に、ディスクアレイ装置１上に、図１３に示すようなホスト論理ディスク３００が１つあるいは複数、存在していると認識している。また、ホスト計算機２００は、ディスクアレイ装置１に対してＩ／Ｏ命令を発行する機能を有する。このＩ／Ｏ命令には、入出力対象にするホスト論理ディスクの番号（ホスト論理ディスク番号）と、入出力を行う先頭部分の論理アドレスと、入出力するデータのサイズとが含まれる。
【００２９】
管理装置２は、管理者の指示に従って、論理アドレスのシフト対象にする論理ディスクの番号（論理ディスク番号）およびシフト量を含むシフト命令をディスクアレイ装置１に対して発行する機能を有する。
【００３０】
ディスクアレイ装置１は、命令制御部１１と、シフト情報テーブル１３を有するシフト情報記憶部１２と、シフト実施部１４と、論理／物理対応テーブル１５と、論理／物理ディスク制御部１６と、ディスク対応テーブル１８を有するシフト計算部１７と、キャッシュ制御部１９と、磁気ディスク装置などの複数台のディスク装置ＤＩＳＫ１〜ＤＩＳＫ５とを含んでいる。なお、ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５には、それぞれディスク装置番号＃ＤＩＳＫ１〜＃ＤＩＳＫ５が付与されているとする。また、ディスクアレイ装置１は、図１３に示すように、ホスト計算機２００が認識している各ホスト論理ディスク３００に対応する論理ディスク４００が自装置１上に存在すると認識している。
【００３１】
命令制御部１１は、管理装置２からシフト命令が入力された場合、シフト命令に含まれている論理ディスク番号およびシフト量をシフト情報としてシフト情報記憶部１２に渡す機能や、ホスト計算機２００からＩ／Ｏ命令が入力された場合、Ｉ／Ｏ命令に含まれているホスト論理ディスク番号、論理アドレス及びサイズをＩ／Ｏ情報としてシフト計算部１７に渡す機能を有する。
【００３２】
シフト情報記憶部１２内のシフト情報テーブル１３には、ディスクアレイ装置１が認識している各論理ディスクの論理ディスク番号に対応付けて、その論理ディスクに割り当てられている論理アドレス空間のシフト量が登録されている。図２にシフト情報テーブル１３の内容例を示す。同図の例は、論理ディスク番号がＬ１の論理ディスクは、シフト量が０byteで、論理ディスク番号がＬ２の論理ディスクは、シフト量が512byteであることを示している。なお、初期状態においては、シフト量として０byteが設定されている。
【００３３】
シフト情報記憶部１２は、次のような機能を有する。
【００３４】
・命令制御部１１からシフト情報が渡されたとき、シフト情報に含まれているシフト量と、シフト情報テーブル１３に格納されている各論理ディスクのシフト量の内の、上記シフト情報に含まれている論理ディスク番号によって特定されるシフト量との差分を求める機能。
・求めた差分と、上記シフト情報に含まれている論理ディスク番号とをシフト実施部１４に渡す機能。
・差分を求めた後、シフト情報テーブル１３に格納されている該当する論理ディスクのシフト量を、シフト情報中のシフト量に置き換える機能。
・シフト計算部１７から論理ディスク番号を含むシフト量問い合わせが送られてきたとき、シフト情報テーブル１３から上記論理ディスク番号に対応して登録されているシフト量を検索し、シフト計算部１７に返却する機能。
【００３５】
論理／物理対応テーブル１５には、ホスト計算機２００が認識している各ホスト論理ディスクのホスト論理ディスク番号と、ディスクアレイ装置１が認識している論理ディスクの論理ディスク番号との対応関係が登録されている。更に、論理／物理対応テーブル１５には、ディスクアレイ装置１が認識している論理ディスク４００に割り当てられている論理アドレスと、ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５上の物理アドレスとの対応関係が登録されている。
【００３６】
図３は論理／物理対応テーブル１５の内容例を示す図である。同図の例は、ホスト計算機２００が認識しているホスト論理ディスク番号ＨＬ１のホスト論理ディスクとディスクアレイ装置１が認識している論理ディスク番号Ｌ１の論理ディスクとが対応していることを示している。また、同図の例は、論理ディスク番号Ｌ１の論理ディスクの論理アドレス「０番地、２０４８番地、４０９６番地、６１４４番地」からストライプサイズ（2048byte）分のデータは、それぞれディスク装置ＤＩＳＫ１、ＤＩＳＫ２、ＤＩＳＫ３、ＤＩＳＫ４のストライプ番号ＳＴ１のストライプに格納され、「８１９２番地、１０２４０番地、１２２８８番地、１４３３６番地」からストライプサイズ分のデータは、それぞれディスク装置ＤＩＳＫ５、ＤＩＳＫ１、ＤＩＳＫ２、ＤＩＳＫ３のストライプ番号ＳＴ２のストライプに格納されていることを示している。なお、以下の説明では、ホスト論理ディスク番号ＨＬＸのホスト論理ディスクをホスト論理ディスクＨＬＸと記し、論理ディスク番号ＬＹの論理ディスクを論理ディスクＬＹと記す場合がある。
【００３７】
シフト実施部１４は、次のような機能を有する。
【００３８】
・シフト情報記憶部１２からシフト量の差分およびシフト対象にする論理ディスクの論理ディスク番号が渡されたとき、差分が「０」であるか否かを調べ、差分が「０」でない場合は、上記論理ディスク番号の論理ディスクに割り当てられている論理アドレス空間を、上記差分だけ後方にシフトする機能。
・シフト情報記憶部１２から渡された差分および論理ディスク番号を論理／物理ディスク制御部１６に渡す機能。
【００３９】
シフト計算部１７内のディスク対応テーブル１８には、ホスト計算機２００が認識しているホスト論理ディスクとディスクアレイ装置１が認識している論理ディスクとの対応関係が登録されている。図４は、ディスク対応テーブル１８の内容例を示す図である。同図の例は、ホスト論理ディスク番号ＨＬ１、ＨＬ２、…のホスト論理ディスクが、それぞれ論理ディスク番号Ｌ１、Ｌ２、…論理ディスクと対応していることを示している。
【００４０】
シフト計算部１７は、次のような機能を有している。
【００４１】
・命令制御部１１からホスト論理ディスク番号、論理アドレス及びサイズを含むＩ／Ｏ情報が渡されたとき、ディスク対応テーブル１８から上記ホスト論理ディスク番号に対応する論理ディスク番号を検索する機能。
・ディスク対応テーブル１８から検索した論理ディスク番号を含むシフト量問い合わせを、シフト情報記憶部１２に送る機能。
・シフト量問い合わせに応答してシフト情報記憶部１２から返却されたシフト量（該当する論理ディスクの開始アドレスに相当する）と、Ｉ／Ｏ情報中の論理アドレスとを比較する機能。
・Ｉ／Ｏ情報中の論理アドレスが、論理ディスクの開始アドレス以上である場合は、Ｉ／Ｏ情報をそのままキャッシュ制御部１９に渡し、論理ディスクの開始アドレス未満である場合には、Ｉ／Ｏ情報中の論理アドレスを、論理ディスクの最終アドレスから差分を差し引いた値に置き換え、置き換え後のＩ／Ｏ情報をキャッシュ制御部１９に渡す機能。
【００４２】
キャッシュ制御部１９は、その内部に半導体メモリによるバッファ（図示せず）を有し、Ｉ／Ｏ情報によって示されるデータがバッファ上に存在する場合は、バッファに対して入出力を行い、存在しない場合は、Ｉ／Ｏ情報を論理／物理ディスク制御部１６に渡す機能を有する。
【００４３】
論理／物理ディスク制御部１６は、次のような機能を有する。
【００４４】
・キャッシュ制御部１９からＩ／Ｏ情報が入力されたとき、論理／物理対応テーブル１５を利用して、ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に対してデータを入出力する機能を有する。その際、必要に応じてパリティチェックやパリティの変更を行う機能も有する。この機能は、従来から良く知られている機能である。
・シフト実施部１４から論理アドレス空間のシフト対象にした論理ディスクの論理ディスク番号および差分が渡された場合、該当する論理ディスクのデータの内の、先頭から差分分のデータ以外をストライプに分割し、分割したストライプを各ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に順番に格納する機能。
・該当する論理ディスクの先頭から差分分のデータ（管理領域のデータ）を最終ストライプに追加する機能。
【００４５】
上記した機能を有するディスクアレイ装置１は、コンピュータによって実現可能なものであり、コンピュータによって実現する場合は、例えば、次のようにする。コンピュータをディスクアレイ装置１として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、上記プログラムをコンピュータに読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、命令制御部１１、シフト情報記憶部１２、シフト実施部１４、論理／物理ディスク制御部１６、シフト計算部１７を実現する。
【００４６】
〔実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。
【００４７】
今、例えば、ホスト計算機２００が、図１５のホスト論理ディスク３００をホスト論理ディスク番号ＨＬ１のホスト論理ディスクとして認識し、ディスクアレイ装置１が、図１５の論理ディスク４００を論理ディスク番号Ｌ１の論理ディスクとして認識しているとする。また、現時点では、シフト情報テーブル１３、論理／物理対応テーブル１５及びディスク対応テーブル１８の内容が、それぞれ図２、図３及び図４に示すものになっているとする。従って、現時点では、図１５に示すように、ディスク装置ＤＩＳＫ１のストライプＳＴ１の先頭部分に管理領域３０１のデータが格納されていることになるので、ホスト計算機２００がOS使用領域３０２の開始アドレス「５１２番地」からストライプサイズ（本実施の形態では、2048byte）の入出力を行うと、ディスク装置ＤＩＳＫ１、ＤＩＳＫ２を跨ぐ入出力が行われてしまい、入出力性能が低下してしまう。
【００４８】
そこで、このような場合、ディスクアレイ装置１の管理者は、管理装置２を用いてディスクアレイ装置１に対してシフト命令を発行する。このシフト命令には、ホスト論理ディスク３００に対応する論理ディスク４００の論理ディスク番号Ｌ１が含まれると共に、シフト量として管理領域３０１のサイズ(512byte）が含まれている。
【００４９】
ディスクアレイ装置１内の命令制御部１１は、管理装置２からシフト命令が送られてくると、それに含まれている論理ディスク番号Ｌ１及びシフト量「512byte」をシフト情報としてシフト情報記憶部１２に渡す。
【００５０】
シフト情報記憶部１１は、命令制御部１２から論理ディスク番号Ｌ１およびシフト量「512byte」を含むシフト情報が渡されると、図５のフローチャートに示すように、シフト情報テーブル１３から論理ディスク番号Ｌ１に対応付けて登録されているシフト量を検索する（ステップＳ５１）。現時点では、シフト情報テーブル１３の内容は、図２に示すものになっているので、シフト量として「０byte」が検索されることになる。
【００５１】
その後、シフト情報記憶部１２は、ステップＳ５１で検索したシフト量「０byte」と、シフト情報中のシフト量「512byte」との差分「512byte」を求める（ステップＳ５２）。更に、シフト情報テーブル１３に論理ディスク番号Ｌ１と対応付けて登録されているシフト量を、シフト情報中のシフト量「512byte」に更新する（ステップＳ５３）。この結果、シフト情報テーブル１３の内容は、図６に示すものになる。そして、最後に、シフト情報記憶部１２は、ステップＳ５２で求めた差分「512byte」及びシフト情報中の論理ディスク番号Ｌ１をシフト実施部１４に通知する（ステップＳ５４）。
【００５２】
シフト実施部１４は、シフト情報記憶部１２から論理ディスク番号Ｌ１及び差分「512byte」が渡されると、図７のフローチャートに示すように、差分が「０」であるか否かを判断する（ステップＳ７１）。この例では、差分は「512byte」であり、ステップＳ７１の判断結果がＮＯとなるので、シフト実施部１４は、論理ディスク番号Ｌ１の論理ディスク４００に割り当てられている論理アドレス空間を差分「512byte」分、後方にシフトする（ステップＳ７２）。より具体的には、シフト実施部１４は、論理／物理対応テーブル１５に登録されている各論理ディスクの論理アドレスの内の、論理ディスク名Ｌ１によって特定される論理ディスク４００の論理アドレスを、差分「512byte」分、増加させることにより、論理ディスク４００に割り当てられている論理アドレス空間を「512番地」、後方にシフトさせる。この結果、論理／物理対応テーブル１５の内容は、図３に示すものから、図８に示すものに更新される。
【００５３】
その後、シフト実施部１４は、論理ディスク番号Ｌ１および差分「512byte」を論理／物理ディスク制御部１６に渡す（ステップＳ７３）。なお、ステップＳ７１の判断結果がＹＥＳとなった場合も、シフト実施部１４は、ステップＳ７３の処理を行う。
【００５４】
論理／物理ディスク制御部１６は、シフト実施部１４から差分「512byte」および論理ディスク番号Ｌ１が渡されると、図９のフローチャートに示すように、論理ディスク番号Ｌ１の論理ディスク４００のデータの内の、先頭から差分「512byte」分のデータを除いたデータ（論理ディスク４００の論理アドレスが512番地以降のデータであり、管理領域３０１以外のデータ）をストライプに分割する（ステップＳ９１）。また、ステップＳ９１においては、論理ディスク４００の０番地〜５１１番地のデータ（管理領域３０１のデータ）をディスク装置ＤＩＳＫ１から読み込み、内部に保存しておく。ここで、論理ディスク４００の各論理アドレスのデータが、どのディスク装置の、どのストライプに格納されているかは、図８に示した論理／物理対応テーブル１５と、シフト実施部１４から渡された差分「512byte」とに基づいて求めることができる。より具体的には、先ず、論理／物理対応テーブル１５に登録されている各論理ディスクの情報の内の、論理ディスク番号Ｌ１に対応付けて登録されている論理ディスク４００の論理アドレス「５１２、２５６０、…」、論理ディスク番号「＃ＤＩＳＫ１、＃ＤＩＳＫ２、…」およびストライプ番号「ＳＴ１、ＳＴ１、…」を入力する。その後、入力した論理アドレス「５１２、２５６０、…」から差分「５１２」を減じた論理アドレス「０、２０４８、…」を求める。この論理アドレス「０、２０４８、…」と、論理／物理対応テーブル１５から入力した論理ディスク番号「＃ＤＩＳＫ１、＃ＤＩＳＫ２、…」と、ストライプ番号「ＳＴ１、ＳＴ１、…」とから論理ディスク４００の各論理アドレスのデータが、どのディスク装置の、どのストライプに存在するかを求めることができる。
【００５５】
その後、論理／物理ディスク制御部１６は、各ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５の各ストライプに、ステップＳ９１で分割したストライプを順次格納する（ステップＳ９２）。より具体的には、論理／物理ディスク制御部１６は、図８に示す内容の論理／物理対応テーブル１５に基づいて、論理アドレス「５１２番地、２５６０番地、４６０８番地、６６５６番地」から始まる１ストライプ分のデータをそれぞれディスク装置ＤＩＳＫ１、ＤＩＳＫ２、ＤＩＳＫ３、ＤＩＳＫ４のストライプＳＴ１に格納し、論理アドレス「８７０４番地、１０７５２番地、１２８００番地、１４８４８番地」から始まる１ストライプ分のデータをそれぞれディスク装置ＤＩＳＫ５、ＤＩＳＫ１、ＤＩＳＫ２、ＤＩＳＫ３のストライプＳＴ２に格納する。これ以降の論理アドレスのデータについても、同様の処理が行われる。
【００５６】
その後、論理／物理ディスク制御部１６は、ステップＳ９１で内部に保存しておいた論理アドレス「０番地〜５１１番地」のデータ（管理領域３０１のデータ）を、最終ストライプの最終データの後ろに追加する（ステップＳ９３）。これにより、図１０に示すように、管理領域３０１のデータが最終ストライプに移動する（ディスク装置ＤＩＳＫ５のストライプＳＴ５に移動する）。以上の処理により、論理ディスク４００の開始位置とOS使用領域３０２の開始位置とが一致し、且つ、OS使用領域３０２のデータがディスク装置ＤＩＳＫ１のストライプＳＴ１の先頭部分から格納される。従って、これ以降、ホスト計算機２００がOS使用領域３０２の開始アドレス「５１２番地」からストライプサイズの入出力を行うと、ディスク装置ＤＩＳＫ１に対してのみ入出力が行われることになる。
【００５７】
次に、上記したシフト処理が完了した後に、ホスト計算機２００がホスト論理ディスク番号ＨＬ１のホスト論理ディスク３００に対するＩ／Ｏ命令を発行した場合の動作を説明する。
【００５８】
ホスト計算機２００は、ホスト論理ディスク３００に対して入出力を行う場合、ホスト論理ディスク３００のホスト論理ディスク番号ＨＬ１と、入出力を行う先頭部分の論理アドレスと、入出力するデータのサイズとを含むＩ／Ｏ命令をディスクアレイ装置１に対して発行する。
【００５９】
ディスクアレイ装置１内の命令制御部１１は、ホスト計算機２００からのＩ／Ｏ命令を受信すると、それに含まれているホスト論理ディスク番号ＨＬ１、論理アドレスおよびサイズをＩ／Ｏ情報としてシフト計算部１７に渡す。
【００６０】
シフト計算部１７は、Ｉ／Ｏ情報が渡されると、図１１のフローチャートに示すように、ディスク対応テーブル１８から上記Ｉ／Ｏ情報中のホスト論理ディスク番号ＨＬ１に対応付けて登録されている論理ディスク番号を検索し、検索した論理ディスク番号を含むシフト量問い合わせをシフト情報記憶部１２へ送信する（ステップＳ１１１）。今、ディスク対応テーブル１８の内容が図４に示すものであるとすると、シフト計算部１７は、論理ディスク番号Ｌ１を含むシフト量問い合わせをシフト情報記憶部１２に送信することになる。
【００６１】
シフト情報記憶部１２は、シフト計算部１７から論理ディスク番号Ｌ１を含むシフト量問い合わせが送られてくると、シフト情報テーブル１３から論理ディスク番号Ｌ１に対応付けて登録されているシフト量を検索し、検索したシフト量をシフト計算部１７に返却する。現時点では、シフト情報テーブル１３の内容は、図６に示すものになっているので、シフト情報記憶部１２は、シフト量「512byte」をシフト計算部１７に返却することになる。なお、このシフト量は、論理ディスク４００に割り当てられている論理アドレス空間の開始アドレス「５１２番地」と対応するものである。
【００６２】
シフト計算部１７は、シフト情報記憶部１２からシフト量「512byte」が送られてくると、論理ディスク４００に割り当てられている論理アドレス空間の開始アドレスが「５１２番地」であると認識する（ステップＳ１１２）。その後、シフト計算部１７は、論理アドレス空間の開始アドレス「５１２番地」と、Ｉ／Ｏ情報に含まれている論理アドレス（入出力を行う先頭部分の論理アドレス）とを比較する（ステップＳ１１３）。
【００６３】
そして、Ｉ／Ｏ情報中の論理アドレスが、論理ディスク４００に割り当てられている論理アドレス空間の開始アドレス「５１２番地」以上である場合（ステップＳ１１５がＮＯ）は、命令制御部１１から渡されたＩ／Ｏ情報をそのままキャッシュ制御部１９に渡す（ステップＳ１１５）。これに対して、Ｉ／Ｏ情報中の論理アドレスが、論理ディスク４００に割り当てられている論理アドレス空間の開始アドレス「５１２番地」未満である場合（ステップＳ１１４がＹＥＳ）は、Ｉ／Ｏ情報中の論理アドレスを、論理ディスク４００に割り当てられている論理アドレス空間の最終アドレスからシフト量「512byte」分差し引いたアドレスに変換し、変換後のＩ／Ｏ情報をキャッシュ制御部１９に渡す（ステップＳ１１６）。即ち、Ｉ／Ｏ情報中の論理アドレスが、OS使用領域３０２に対応するものである場合（ステップＳ１１４がＮＯ）は、ステップＳ１１５の処理を行い、Ｉ／Ｏ情報中の論理アドレスが管理領域３０１に対応するものである場合（ステップＳ１１４がＹＥＳ）、ステップＳ１１６の処理を行うことになる。
【００６４】
キャッシュ制御部１９は、Ｉ／Ｏ情報によって示されるデータがバッファに存在する場合（ヒットした場合）は、バッファ上で入出力を行い、存在しない場合（ミスヒットした場合）は、論理／物理ディスク制御部１６にＩ／Ｏ情報を渡す。
【００６５】
論理／物理ディスク制御部１６は、キャッシュ制御部１９からＩ／Ｏ情報が渡されると、論理／物理対応テーブル１５を参照することにより、入出力の対象とするデータがどのディスク装置の、どのストライプに存在するのかを求め、データを入出力する。
【００６６】
〔実施の形態の効果〕
本実施の形態によれば、ディスクアレイ装置１のディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に未使用領域を形成することなく、ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５を跨ぐ入出力を減少させることが可能になる。
【００６７】
ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５を跨ぐ入出力を減少させることができる理由は、シフト実施部１４が、ディスクアレイ装置１が認識している論理ディスク４００に割り当てられている論理アドレス空間を、ホスト計算機２００が認識しているホスト論理ディスク３００の先頭部分に設けられている管理領域３０１のサイズだけ、後方にシフトするようにしているからである。即ち、シフト実施部１４において上記した処理を行うことにより、ディスクアレイ装置１が認識している論理ディスク４００の先頭部分には、管理領域が存在しないことになるので、先頭部分に管理領域が存在していたために発生していた、ディスク装置を跨ぐ入出力を減少させることが可能になる。
【００６８】
また、ディスクアレイ装置１のディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に未使用領域が形成されない理由は、論理／物理ディスク制御部１６が、ディスクアレイ装置１が備えている各ディスク装置ＤＩＳＫ１〜ＤＩＳＫ５に格納されている論理ディスク４００のデータの内の、管理領域３０１のデータ以外をディスク装置ＤＩＳＫ１〜ＤＩＳＫ５上において管理領域３０１のサイズ分、前方にシフトすると共に、管理領域３０１のデータをディスク装置ＤＩＳＫ１〜ＤＩＳＫ５上において論理ディスク４００の最終データの直後に移動させようにしているからである。
【産業上の利用可能性】
【００６９】
複数のディスク装置を備え、ホスト計算機が認識しているホスト論理ディスクに関連付けたデータをディスクアレイ装置が認識している論理ディスクに関連付けてディスク装置に読み書きするディスクアレイ装置に適用することができる。
【図面の簡単な説明】
【００７０】
【図１】本発明にかかるディスクアレイ装置の実施の形態の構成例を示すブロック図である。
【図２】論理ディスクＬ１に対して論理アドレス空間のシフト処理を行う前のシフト情報テーブル１３の内容例を示す図である。
【図３】論理ディスクＬ１に対して論理アドレス空間のシフト処理を行う前の論理／物理対応テーブル１５の内容例を示す図である。
【図４】ディスク対応テーブル１８の内容例を示す図である。
【図５】シフト情報記憶部１２の処理例を示すフローチャートである。
【図６】論理ディスクＬ１に対して論理アドレス空間のシフト処理を行った後のシフト情報テーブル１３の内容例を示す図である。
【図７】シフト実施部１４の処理例を示すフローチャートである。
【図８】論理ディスクＬ１に対して論理アドレス空間のシフト処理を行った後の論理／物理対応テーブル１５の内容例を示す図である。
【図９】論理／物理ディスク制御部１６の処理例を示すフローチャートである。
【図１０】ディスク装置を跨いだ入出力が減少する理由を説明するための図である。
【図１１】シフト計算部１７の処理例を示すフローチャートである。
【図１２】従来の一般的なディスクアレイ装置１の構成例を示すブロック図である。
【図１３】ホスト計算機２００が認識しているホスト論理ディスク３００と、ディスクアレイ装置１が認識している論理ディスク４００との対応関係を示す図である。
【図１４】論理ディスク４００と物理ディスクであるディスク装置ＤＩＳＫ１〜ＤＩＳＫ５との対応関係を示す図である。
【図１５】ストライプサイズの入出力を行った場合に、ディスク装置を跨ぐ入出力が発生する様子を示した図である。
【図１６】特許文献１に記載されている従来の技術を説明するための図である。
【符号の説明】
【００７１】
１、１００…ディスクアレイ装置
１１、１０１…命令制御部
１２…シフト情報記憶部
１３…シフト情報テーブル
１４…シフト実施部
１５、１０４…論理／物理対応テーブル
１６、１０３…論理／物理ディスク制御部
１７…シフト計算部
１８…ディスク対応テーブル
１９、１０２…キャッシュ制御部
ＤＩＳＫ１〜ＤＩＳＫ５…ディスク装置
２…管理装置
２００…ホスト計算機
３００…ホスト論理ディスク
３０１…管理領域
３０２…OS使用領域
４００…論理ディスク
【図１】
0004466530.tif 000002
【図２】
0004466530.tif 000003
【図３】
0004466530.tif 000004
【図４】
0004466530.tif 000005
【図５】
0004466530.tif 000006
【図６】
0004466530.tif 000007
【図７】
0004466530.tif 000008
【図８】
0004466530.tif 000009
【図９】
0004466530.tif 000010
【図１０】
0004466530.tif 000011
【図１１】
0004466530.tif 000012
【図１２】
0004466530.tif 000013
【図１３】
0004466530.tif 000014
【図１４】
0004466530.tif 000015
【図１５】
0004466530.tif 000016
【図１６】
0004466530.tif 000017