JP4053842B2 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
JP4053842B2
JP4053842B2 JP2002249899A JP2002249899A JP4053842B2 JP 4053842 B2 JP4053842 B2 JP 4053842B2 JP 2002249899 A JP2002249899 A JP 2002249899A JP 2002249899 A JP2002249899 A JP 2002249899A JP 4053842 B2 JP4053842 B2 JP 4053842B2
Authority
JP
Japan
Prior art keywords
data
address
read
storage area
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002249899A
Other languages
Japanese (ja)
Other versions
JP2003337722A (en
Inventor
英臣 出射
和彦 茂木
高 大枝
康友 山本
賢哲 江口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002249899A priority Critical patent/JP4053842B2/en
Publication of JP2003337722A publication Critical patent/JP2003337722A/en
Application granted granted Critical
Publication of JP4053842B2 publication Critical patent/JP4053842B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、管理サーバが、ストレージ装置のデータ領域を仮想データ領域として管理するシステムに関する。
【0002】
【従来の技術】
近年、ストレージ装置に記憶されるデータ量が著しく増大し、ストレージ装置自体の記憶容量や、SAN(Storage Area Network)に接続されるストレージ装置、ファイルサーバ等の台数が増加している。その結果、大容量となった記憶領域等の管理の複雑化、分散した場所に設置されるストレージ装置の管理の複雑化、及びストレージ装置への負荷集中等、様々な問題が現れている。現在、これらの問題を解決することを目的として、バーチャリゼーションと呼ばれる技術が研究、開発されている。
【0003】
バーチャリゼーション技術は、Evaluator Group社が2000年9月に発行したホワイトペーパー「Virtualization of Disk Storage」(WP-0007-1)に記載されているように、大きく三種類に分類される。
【0004】
一つ目は、SANに接続される各サーバが、SANに接続されるストレージ装置の記憶領域を管理する情報を共有しており、各サーバは、各サーバが有するボリュームマネージャを用いてストレージ装置にアクセスするものである。
【0005】
二つ目は、インバンド型バーチャリゼーションと呼ばれるシステム構成である。本構成では、管理サーバがSANに接続されたストレージ装置の記憶領域を一括して仮想データ領域(以下「仮想ボリューム」)として管理しており、管理サーバは、各サーバからストレージ装置へのリクエストを受け付け、配下のストレージ装置の記憶領域にアクセスし、その結果をサーバに返信するものである。
【0006】
三つ目は、アウトバンド型バーチャリゼーションと呼ばれるシステム構成である。本構成も、管理サーバが、SANに接続されたストレージ装置の記憶領域を一括して管理する。ただし、管理サーバは、サーバからストレージ装置へのアクセスのリクエストを受けた場合は、実際にデータを記憶している記憶領域の位置情報をサーバに返信する。サーバは、返信された情報を元に、ストレージ装置の記憶領域にアクセスする。
【0007】
ストレージ装置は、磁気ディスク円盤を記録媒体として用いるのが主流である。磁気ディスク円盤を記録媒体として用いた場合には、磁気ディスク上のデータシーク、及び磁気ディスクからのデータ転送に要する時間が問題となる。
【0008】
そこで、ストレージ装置内にキャッシュメモリを設け、ホストが要求するデータ、特に連続して読み出されるデータ(シーケンシャルデータ)を予測し、キャッシュメモリ上に予め読み出しておくデータ先読み方式が実現されている。本技術は、ACM SIGMETRICS '98 P182-P191に掲載されている論文「An analytic behavior model for disk drives with readahead caches and request reordering」に記載されている。このデータの先読みにより、磁気ディスク上のデータシーク、及び磁気ディスクからのデータ読み出しに要する時間を隠蔽し、データ読み出しの性能を向上している。本技術を、データの先読み処理と称する。
【0009】
【発明が解決しようとする課題】
上述したデータ先読み技術は、ストレージ装置単体において有効な技術である。しかし、バーチャリゼーション環境下では、一又は複数のストレージ装置上のデータ領域が、一括して仮想ボリュームとして管理されている。したがって、読み出されるべきデータが一つのストレージ装置上に記憶されているとは限らない。このような場合、ストレージ装置単体におけるデータ先読み方法と同じ方法でデータの先読みを行うのは困難である。
【0010】
本発明の目的は、バーチャリゼーション環境下における、データの先読み方法、データの先読みを実施するための装置及びシステムを提供することである。
【0011】
【課題を解決するための手段】
上記目的を達成するため本発明においては、ストレージ装置の物理的な記憶領域を仮想ボリュームとして管理する管理サーバが、各サーバから受け付けたアクセス要求に基づいて、データをディスクからキャッシュ上に読み出すよう該当するストレージ装置へ命令を発行する手段を有する。ストレージ装置は、当該命令にしたがって、データをキャッシュ上に読み出す手段を有する。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。なお、これにより本発明が限定されるものではない。
【0013】
図1から図6を用いて、第1の実施形態について説明する。なお、本実施形態は、アウトバンド型のバーチャリゼーション環境を対象とする。
【0014】
図1は、本発明を適用したシステムの第1の実施形態を示した図である。本システムは、管理サーバ100、ストレージ装置110、サーバ120、これらが接続されるネットワーク130、管理サーバ100と各サーバ120とを接続する専用のネットワーク132、及び管理サーバ100と各ストレージ装置110を接続する専用のネットワーク134から構成される。尚、ネットワーク130に接続されるサーバ120の数は単数でも複数でも構わない。
【0015】
管理サーバ100と各サーバ120間、管理サーバ100と各ストレージ装置110間の通信は、各々の専用のネットワーク132及びネットワーク134経由で行われる。又、サーバ120と各ストレージ装置110間のデータ転送は、ネットワーク130経由で行われる。このように構成することで、後に述べる仮想アドレス変換命令400や物理アドレス情報420及びオンキャッシュ命令450、はネットワーク130を利用することなく、専用ネットワークを利用して送受信されるので、ネットワーク130上のトラフィックが軽減される。
【0016】
管理サーバ100は、専用ネットワーク132と接続するI/F(A)101、ネットワーク130と接続するI/F(C)103、制御装置105、メモリ108、及び専用ネットワーク134と接続するI/F(B)107を有する。メモリ108には、管理プログラム102、マッピング情報104及びアクセス履歴情報106が格納されている。管理サーバ100の制御装置105は、ネットワーク130に接続されるストレージ装置110の物理記憶領域を仮想的な記憶領域である仮想ボリュームとして管理するために、管理プログラム102を実行する。
【0017】
ストレージ装置110は、ネットワーク130と接続するI/F(A)113、制御装置112、キャッシュ114、ディスク装置116、専用ネットワーク134に接続するI/F(B)115、メモリ117を有する。制御装置112は、キャッシュ114及びディスク装置116を制御し、サーバ120からのリクエストにより、指定された物理記憶領域に対してデータ書き込み、データ読み出しの制御を行う。
【0018】
尚、本図においては、ディスク装置116を単体として示しているが、RAID等のように、ディスク装置116は複数であっても良い。後者の場合、制御装置112は、ストレージ装置110内の複数のディスク装置116と物理記憶領域との対応関係を管理する。また、ストレージ装置110が提供する物理記憶領域は、ディスク装置116と一対一に対応していても、複数のディスク装置116が一つの物理記憶領域に対応しても良い。 図1における矢印150、152、154、156、158は、サーバ120がストレージ装置110上のデータにアクセスする際の処理を視覚的に示したものである。尚、以降、仮想ボリュームIDと仮想ブロックアドレスで特定できる仮想的なデータ領域を仮想ブロック、そのアドレスを仮想アドレス、ストレージ装置のアドレスと論理ユニット番号と論理ブロックアドレスで特定できる物理的なデータ領域を物理ブロック、そのアドレスを物理アドレスと呼ぶことにする。
【0019】
サーバ120は、ストレージ装置110上のデータにアクセスする際、まず、アクセス対象のデータの物理アドレスを取得するため、仮想アドレス変換命令400を管理サーバ100に送信する(矢印150)。
【0020】
管理サーバ100のI/F(A)101はサーバ120から仮想アドレス変換命令400を受信する。そして、制御装置105が管理プログラム102を実行してマッピング情報104を参照し、当該命令で指定された仮想アドレスに対応する物理アドレスを取得する。そして、管理サーバ100は、取得した物理アドレスに関する情報である物理アドレス情報420をI/F(A)101を介して要求元のサーバ120に返信する(矢印154)。管理サーバ100から物理アドレス情報420を受信したサーバ120は、当該情報に含まれる物理アドレスを用いて、ストレージ装置110上のデータにアクセスする(矢印158)。
【0021】
管理サーバ100の制御装置105は更に管理プログラムを実行して、受信した上記仮想アドレス変換命令400が有する情報にもとづき今回のデータアクセスがデータ読み出しであるかを判定する。データ読み出しである場合、管理サーバ100は読み出されるデータを格納しているストレージ装置110に対して、I/F(B)107からオンキャッシュ命令450を発行する(矢印152)。また管理サーバ100の制御装置105は、アクセス履歴情報106を参照して今回のデータアクセスが連続したデータの読み出しの一部であるかを判定する。連続したデータの読み出しであると判定した場合、管理サーバ100の制御装置105は、今回読み出されるデータに続く一定量のデータが存在する仮想ブロックに対応する物理アドレスを取得し、該当する全てのストレージ装置110に対して、I/F(B)107からオンキャッシュ命令450を発行する(矢印152)。
【0022】
ストレージ装置110のI/F(B)115は、管理サーバ100からオンキャッシュ命令450を受信し、制御装置112はディスク116とキャッシュ114を制御して、当該オンキャッシュ命令450により指定されたデータ210をディスク装置116からキャッシュ114に読み出す(矢印156)。
【0023】
図2は、管理装置100のメモリ108に格納されているマッピング情報104の構成例を示した図である。マッピング情報104は、管理サーバ100が管理するストレージ装置110の情報であるストレージ装置情報200、仮想ブロックと物理ブロックを関連付ける仮想ボリューム情報210を有する。尚、本実施形態では、仮想的な領域、物理的な領域とも、ブロックという単位で管理することにしているが、他の単位、例えば幾つかのブロックをまとめて1つの管理単位として管理しても良い。
【0024】
ストレージ装置情報200は、管理サーバ100が管理するストレージ装置110を識別するストレージ装置ID202、当ストレージ装置110のネットワーク130上での装置アドレスを示すストレージ装置アドレス204、当ストレージ装置110が有するキャッシュ114の容量を示すキャッシュサイズ206で構成される。
【0025】
仮想ボリューム情報210は、仮想ボリュームを識別する仮想ボリュームID212、当仮想ボリューム内の仮想ブロックの位置を示す仮想ブロックアドレス214、当仮想ブロックに対応する物理ブロックを有するストレージ装置110を示すストレージ装置ID216、当物理ブロックを示す論理ユニット番号218、論理ブロックアドレス220で構成される。尚図2においては、ストレージ装置S01が仮想ボリュームVVOL1内の仮想ブロックに対応する物理ブロックを有し、ストレージ装置S02が仮想ボリュームVVOL2内の仮想ブロックに対応する物理ブロックを有する例が表されている。しかし、1のストレージ装置が、複数の仮想ボリュームに対応する物理ブロックを有していても良い。
【0026】
図3は、管理サーバ100のメモリ108に格納されているアクセス履歴情報106の構成例を示した図である。
【0027】
アクセス履歴情報106は、データの読み出しを目的として発行された仮想アドレス変換命令400の履歴情報である読み出し履歴情報300、近々読み出しが行われる記憶領域を予測し先読みを指示する場合の、当該先読み指示の履歴情報である先読み履歴情報320を有する。
【0028】
読み出し履歴情報300は、仮想アドレス変換命令400を発行したサーバ120を識別するためのサーバID302、当命令を発行したサーバ120内のプロセスを示すプロセスID304、読み出し対象のデータが属する仮想ボリュームを示す仮想ボリュームID306、読み出し対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス308、読み出し対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス310、当該命令を受け付けた時間の情報である時間情報312で構成される。
【0029】
先読み履歴情報320は、先読みしたデータが属する仮想ボリュームを示す仮想ボリュームID322、当データの先頭の仮想ブロックを示す仮想ブロックアドレス324、当データの末尾の仮想ブロックを示す仮想ブロックアドレス326、先読みのために発行したオンキャッシュ命令450の発行時間を示す時間情報328で構成される。
【0030】
図4は、サーバ120が管理サーバ100に発行する仮想アドレス変換命令400、管理サーバ100がサーバ120に送信する物理アドレス情報420、管理サーバ100が記憶装置110に発行するオンキャッシュ命令450の構成例を示した図である。
【0031】
仮想アドレス変換命令400は、当命令を識別する制御コード402、当命令によるデータアクセス要求がデータの読み出し要求かデータの書き込み要求かを示すアクセスフラグ404、当命令を発行したサーバ120を識別するためのサーバID406、当命令を発行したサーバ120内のプロセスを示すプロセスID408、アクセス対象となるデータの仮想アドレスを示す仮想アドレス情報410を有する。
【0032】
仮想アドレス情報410は、アクセス対象のデータが属する仮想ボリュームを示す仮想ボリュームID412、アクセス対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス414、アクセス対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス416で構成される。
【0033】
物理アドレス情報420は、当情報を識別する制御コード422、仮想アドレス変換命令400で指定された仮想アドレスに対応する物理アドレスのリストである物理アドレスリスト430を有する。
【0034】
物理アドレスリスト430は、各々仮想アドレス変換命令400で指定された仮想ボリュームID432と仮想ブロックアドレス434、及び当該仮想アドレスに対応する物理アドレスであるストレージ装置アドレス436、論理ユニット番号438、論理ユニットアドレス440で構成される。
【0035】
オンキャッシュ命令450は、当命令を識別する制御コード452、キャッシュ114に読み出すデータを特定するデータアドレスリスト460を有する。
【0036】
データアドレスリスト460は、読み出し対象のデータを記憶している論理ユニット番号462、読み出し対象のデータの先頭物理ブロックを示す先頭論理ブロックアドレス464、読み出し対象のデータの末尾物理ブロックを示す末尾論理ブロックアドレス466で構成される。
【0037】
図5、図6は、第1の実施形態におけるデータアクセスの処理の流れを示した図である。以下、サーバ120が、ストレージ装置110からデータを読み出す、又はデータを書き込む際の動作について説明する。ここで管理サーバ100が実行する処理は、制御装置105がメモリ108に格納されている管理プログラム102を実行することによって行われる処理である。尚、図5、図6には、仮想アドレス変換命令400内のアクセスフラグ404がデータの読み出しを示す場合、即ちサーバ120からの要求がデータの読み出しである場合、及びサーバ120からのデータの読み出し要求が連続したデータの読み出し要求の一部であると予測した場合の双方において先読みの処理を行う例を示している。しかし、先読み処理はどちらか一方の場合にのみ行われることとしても良い。
【0038】
サーバ120は、仮想アドレス変換命令400に必要な情報をセットし、管理サーバ100に送信する(ステップ500)。ここで、セットする情報とは、当該命令が仮想アドレス変換命令であることを示す制御コード402、データアクセスが読み出しか書き込みかを示すアクセスフラグ404、当命令を発行するサーバを示すサーバID406、当命令を発行するプロセスを示すプロセスID408、アクセス対象のデータが属する仮想ボリュームID412、当データの先頭仮想ブロックアドレス414、末尾仮想ブロックアドレス416である。
【0039】
仮想アドレス変換命令400を受け付けた管理サーバ100は、仮想ボリューム情報210を検索し、当該命令内の仮想アドレス情報410で指定された仮想ブロックアドレスに対応するストレージ装置ID216、論理ユニット番号218、論理ブロックアドレス220割り出す。また、管理サーバ100は、上述の検索で割り出したストレージ装置ID216をキーとしてストレージ装置情報200を検索し、ネットワーク130上でのストレージ装置の装置アドレス204を取得する(ステップ502)。
【0040】
管理サーバ100は、上記仮想アドレス変換命令400内のアクセスフラグ404を参照し、リクエストがデータの読み出しか書き込みかを判定する。データ読み出しの場合はステップ506から、データ書き込みの場合はステップ518から、管理装置100は処理を継続する(ステップ504)。
【0041】
管理サーバ100は、読み出し履歴情報300に新規エントリを追加し、上記仮想アドレス変換命令400内のサーバID406、プロセスID408、仮想ボリュームID412、先頭仮想ブロックアドレス414、末尾仮想ブロックアドレス416を、それぞれ追加した新規エントリのサーバID302、プロセスID304、仮想ボリュームID306、先頭仮想ブロックアドレス308、末尾仮想アドレス310にコピーし、上記命令を受け付けた時間を時間情報312にセットする(ステップ506)。
【0042】
管理サーバ100は、現時点から所定期間前までの先読み履歴情報320を検索し、今回読み出し対象となるデータが以前の処理により、既にストレージ装置110のキャッシュ114上に読み出されているか調査する(ステップ508)。
【0043】
今回の読み出し対象となるデータが既にキャッシュ114上に読み出されている場合はステップ518から、読み出されていない場合はステップ512から、管理サーバ100は処理を継続する(ステップ510)。
【0044】
管理サーバ100は、ステップ502で割り出したストレージ装置110各々についてオンキャッシュ命令450に必要な情報をセットし、該当するストレージ装置110毎に当該オンキャッシュ命令450を発行する(ステップ512)。ここで、セットする情報とは、当該命令がオンキャッシュ命令であることを示す制御コード452、読み出し対象のデータが実際に記憶されている物理位置を特定するためのデータアドレスリスト460内の情報である。尚、データアドレスリスト460内の論理ユニット番号462、当論理ユニット内の先頭ブロックアドレス464、末尾ブロックアドレス466には、ステップ502で割り出した論理ユニット番号と論理ブロックアドレスがセットされる。読み出し対象のデータが複数の論理ユニットに分かれて記憶されている場合は、該当する全ての論理ユニットと物理ブロックの情報をデータアドレスリスト460にセットする。又管理サーバ100は、専用ネットワーク134を利用して当該専用ネットワーク134に接続されるストレージ装置110全てに対し、オンキャッシュ命令450をブロードキャストしても良いし、専用ネットワーク134上におけるストレージ装置110のアドレスを指定して、ストレージ装置110毎にオンキャッシュ命令450を送信しても良い。
【0045】
オンキャッシュ命令450を受け付けたストレージ装置110は、データアドレスリスト460で指定された全ての物理ブロックのデータをキャッシュ114上に読み出す(ステップ514)。
【0046】
管理サーバ100は、該当する全てのストレージ装置110に対しオンキャッシュ命令450を発行したか判定し、発行した場合はステップ518から、発行していない場合はステップ512から処理を継続する(ステップ516)。
【0047】
管理サーバ100は、ステップ502で割り出した物理アドレスを物理アドレス情報420にセットし、アドレス変換命令400の発行元のサーバ120に送信し、ステップ600から処理を継続する(ステップ518)。
【0048】
物理アドレス情報420を受信したサーバ120は、物理アドレスリスト430から、アクセス対象のデータを記憶している全てのストレージ装置110のアドレスと物理ブロックアドレスを取得する(ステップ520)。
【0049】
サーバ120は、ステップ520で取得した情報を元に、アクセス対象のデータを記憶するストレージ装置110にアクセスする(ステップ522)。
【0050】
管理サーバ100は、受信した仮想アドレス変換命令400内のアクセスフラグ404を参照し、リクエストの目的がデータの読み出しか書き込みかを判定する。データ読み出しの場合は管理サーバ100はステップ602から処理を継続し、データ書き込みの場合は管理サーバ100は処理を終了する(ステップ600)。
【0051】
管理サーバ100は、読み出し履歴情報300を検索し、今回の読み出し要求が連続したデータの読み出し要求の一部か調査する(ステップ602)。ここで、連続したデータの読み出し要求であるか否かの判定は、例えば次のように行う。読み出し履歴情報300には、サーバ120が過去にストレージ装置110から行ったデータ読み出しに関する履歴情報が格納されている。管理サーバ100は、読み出し履歴情報300に格納されているサーバID302、プロセスID304、時間情報312を参照し、今回受けつけたデータ読み出し要求と同じサーバ、かつ同じプロセスが所定期間内(例えば数秒前、数分前)に、同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、更に連続して当該仮想ブロックに続く仮想ブロックも読み出していれば、今回のデータ読み出し要求も一連の連続したデータ読み出し要求の一部であると判定する。
【0052】
今回の読み出し要求が連続したデータ読み出し要求の一部であると判定した場合は、管理サーバ100はステップ606から処理を継続し、そうでないと判定した場合は処理を終了する(ステップ604)。
【0053】
管理サーバ100は、今回読み出し対象となったデータの末尾仮想ブロックの次の仮想ブロックから一定量分(例えば、連続するデータを読み出す場合において、1回の読み出しで読み出されるブロック数)の仮想ブロックを先読み対象のデータと認定する(ステップ606)。
【0054】
管理サーバ100は、仮想ボリューム情報210を検索し、上記先読み対象の仮想ブロック一つ一つに対応する物理ブロックを全て割り出し、当該物理ブロックを有するストレージ装置のID216、論理ユニット番号218、及び当該物理ブロックの論理ブロックアドレス220を取得する。また、管理サーバ100は取得したストレージ装置ID216をキーとして、ストレージ装置情報200を検索し、該当する物理ブロックを有するストレージ装置の装置アドレスを取得する(ステップ608)。
【0055】
管理サーバ100は、ステップ608で割り出した物理ブロックを有するストレージ装置110各々について、オンキャッシュ命令450に必要な情報をセットし、ストレージ装置110毎に当該オンキャッシュ命令450を発行する(ステップ610)。ここで、セットされる情報は、ステップ512においてセットされる情報と同様である。
【0056】
オンキャッシュ命令450を受け付けた記憶装置110は、データアドレスリスト460で指定された全ての物理ブロックのデータをキャッシュ114上に読み出す(ステップ612)。
【0057】
管理サーバ100は、該当する全ての記憶装置110に対しオンキャッシュ命令450を発行したか判定し、発行した場合はステップ616から、発行していない場合はステップ610から処理を継続する(ステップ614)。
【0058】
管理サーバ100は、先読み履歴情報320に新規エントリを追加し、今回先読み対象としたデータの仮想ボリュームID、先頭仮想ブロックアドレス、末尾仮想ブロックアドレス、オンキャッシュ命令450を発行した時間情報をセットし、処理を終了する(ステップ616)。
【0059】
尚、本実施形態において、管理サーバ100はサーバ120への物理アドレス情報420を送信する前に、オンキャッシュ命令450をストレージ装置110に発行している。しかし、サーバ120への物理アドレス情報420の送信とストレージ装置110へのオンキャッシュ命令450の発行の順番は逆でも良く、同時でも良い。
【0060】
第1の実施形態によれば、アウトバンド型バーチャリゼーション環境下において、管理サーバ100が、各サーバ120から受け付けたデータアクセスに関する問い合わせに基づいて、該当するデータをディスク116からキャッシュ114上に読み出すようストレージ装置110に指示することができる。従って各ストレージ装置110は効率よくデータの読み出し処理を行うことが出来る。
【0061】
また第1の実施形態によれば、管理サーバ100が、上記問い合わせを受け付けた際、過去のデータ読み出しに関する履歴情報を基に今後データ読み出しが行われる記憶領域を予測し、該当する記憶領域を有するストレージ装置110に先読みを指示することができる。即ち、未だ各サーバ120からの仮想アドレス変換命令400を受け付けていない記憶領域についても、データの先読みを指示することができる。従ってアウトバンド型バーチャリゼーション環境下においても各ストレージ装置110は効率よくデータの先読み処理を行うことが出来、連続した一連のデータ読み出しに要する時間を短縮することが出来る。
【0062】
この結果、バーチャリゼーション環境において、ディスク装置におけるデータシーク、並びにディスク装置からのデータ転送に要する時間を隠蔽し、データ読み出し処理を高速化することができる。
【0063】
図7は、本発明を適用したシステムの第2の実施形態を示した図である。第1の実施形態との相違は、管理サーバ100と各サーバ120を接続する専用線132、及び管理サーバ100と各ストレージ装置110とを接続する専用線134が第2の実施形態には存在しない点である。従って、管理サーバ100と各ストレージ装置110間、管理サーバ100と各サーバ120間、各サーバ120と各ストレージ装置110間の通信は全てネットワーク130経由で行われる。このため、第1の実施形態に比べ、ネットワーク130上のトラフィックは増加するが、第1の実施形態における専用のネットワーク132、及び134を用意する必要がない。尚、サーバ120がストレージ装置110からデータを読み出す場合、又はサーバ120がストレージ装置110へデータを書き込む場合の処理は、第1の実施形態と同様、図5、図6に示す処理フローに従って実行される。但し、第2の実施形態においては、管理サーバ100がネットワーク130を利用してストレージ装置110に対し、オンキャッシュ命令450を発行することとなる。従って、管理サーバ100は、ネットワーク130上におけるストレージ装置110のアドレスを指定して、ストレージ装置110毎にオンキャッシュ命令450を送信する点が第1の実施形態とは異なる。
【0064】
第2の実施形態によれば、サーバ120がストレージ装置110からデータを読み出す際、管理サーバ100はネットワーク130を介してストレージ装置110に対しデータをキャッシュ114に読み出しておくように指示することができる。従って、低コストで効率の良い先読み処理を行うことが可能となる。
【0065】
図8は、本発明を適用したシステムの第3の実施形態を示した図である。本実施形態は、インバンド型のバーチャリゼーション環境を対象とする。本実施形態は、第1の実施形態とはデータアクセスの方法が異なる。第3の実施形態においては、サーバ120は管理サーバ100にデータアクセスを要求し、管理サーバ100がその要求に沿ってストレージ装置110上のデータにアクセスする。尚、本実施形態においては、管理サーバ100は、ストレージ装置110やサーバ120との間のデータの送受信に使用するためのキャッシュ800を有する。
【0066】
図8における矢印810、812、814、816は、第3の実施形態におけるデータアクセス方法を視覚的に示したものである。
【0067】
サーバ120は、ストレージ装置110上のデータにアクセスする際、管理サーバ100にデータアクセス命令900を送信する(矢印810)。サーバ120からデータアクセス命令900を受信した管理サーバ100は、マッピング情報104を参照し、当命令で指定された仮想アドレスに対応する物理アドレスを取得する。また管理サーバ100は、当命令に付随する情報から今回のアクセス要求がデータ書き込みかデータ読み出しか判定し、前者の場合は書き込み対象のデータをサーバ120からキャッシュ800上に転送し(矢印816)、取得した物理アドレスが指す物理ブロックに書き込む(矢印814)。後者の場合は、管理サーバ100は読み出し対象のデータを記憶している全てのストレージ装置110に対し、オンキャッシュ命令450を発行する(矢印812)。そして、管理サーバ100は読み出し対象のデータを該当するストレージ装置110からキャッシュ800上に読み出し(矢印814)、要求元のサーバ120に送信する(矢印816)。
【0068】
図9は、サーバ120が管理サーバ100に発行するデータアクセス命令900の構成を示した図である。データアクセス命令900は、当命令を識別する制御コード902、当命令によるデータアクセスがデータの読み出しかデータの書き込みかを示すアクセスフラグ904、当命令を発行したサーバ120を識別するためのサーバID906、当命令を発行したサーバ120内のプロセスを示すプロセスID908、アクセス対象となるデータの仮想アドレスを示す仮想アドレス情報910、アクセス対象のデータの転送先、もしくは転送元となるサーバ120上のバッファのアドレスを示すバッファアドレス920を有する。
【0069】
仮想アドレス情報910は、アクセス対象のデータが属する仮想ボリュームを示す仮想ボリュームID912、アクセス対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス914、アクセス対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス916で構成される。
【0070】
図10、11は、第3の実施形態におけるデータアクセスの処理の流れを示した図である。以下、サーバ120が管理サーバ100を通してストレージ装置110に記憶されているデータを読み出す、又はストレージ装置110上の記憶領域にデータを書き込む際の動作について説明する。尚、管理サーバ100が行う処理は、管理サーバ100の制御装置105がメモリ108に記憶されている管理プログラム102を実行することによって行われる。
【0071】
サーバ120は、データアクセス命令900に必要な情報をセットし、管理サーバ100に送信する(ステップ1000)。ここで、セットされる情報とは、当該命令がデータアクセス命令であることを示す制御コード902、データアクセスが読み出しか書き込みかを示すアクセスフラグ904、当命令を発行するサーバを示すサーバID906、当命令を発行するプロセスを示すプロセスID908、アクセス対象のデータが属する仮想ボリュームID912、当データの先頭仮想ブロックアドレス914、当末尾仮想ブロックアドレス916、アクセス対象のデータの転送先、もしくは転送元となるサーバ120上のバッファのアドレスを示すバッファアドレス920である。
【0072】
データアクセス命令900を受け付けた管理サーバ100は、仮想ボリューム情報210を検索し、当該命令内の仮想アドレス情報910で指定された仮想ブロック一つ一つに対応する物理ブロックを全て割り出し、当該物理ブロックを有するストレージ装置のID216、論理ユニット番号218、論理ブロックアドレス220を取得する。また、管理サーバ100は取得したストレージ装置ID216をキーとしてストレージ装置情報200を検索し、当該物理ブロックを有するストレージ装置の装置アドレスを取得する(ステップ1002)。
【0073】
管理サーバ100は、上記データアクセス命令900内のアクセスフラグ904を参照し、リクエストがデータの読み出しか書き込みかを判定する。データ読み出しの場合はステップ1100から、データ書き込みの場合はステップ1006から、管理サーバ100は処理を継続する(ステップ1004)。
【0074】
管理サーバ100は、上記データアクセス命令900内のバッファアドレス920が示すサーバ120上のバッファからキャッシュ800上にデータを転送する(ステップ1006)。
【0075】
管理サーバ100は、ステップ1002で割り出した物理ブロックにステップ1006で転送したデータを書き込む(ステップ1008)。
【0076】
管理サーバ100は、書き込みの対象となる全てのデータをストレージ装置110に書き込んだか判定し、書き込んだ場合は処理を終了し、書き込んでいない場合はステップ1008から処理を継続する(ステップ1010)。
【0077】
管理サーバ100は、読み出し履歴情報300に新規エントリを追加し、上記データアクセス命令900内のサーバID406、プロセスID408、仮想ボリュームID412、先頭仮想ブロックアドレス414、末尾仮想ブロックアドレス416をそれぞれサーバID302、プロセスID304、仮想ボリュームID306、先頭仮想ブロックアドレス308、末尾仮想アドレス310にコピーし、上記命令を受け付けた時間を時間情報312にセットする(ステップ1100)。
【0078】
管理サーバ100は、現時点から任意期間内の先読み履歴情報320を検索し、今回の読み出し対象となるデータが先読み処理により、既にストレージ装置110のキャッシュ114上に読み出されているか調査する(ステップ1102)。
【0079】
今回の読み出し対象となるデータが既にキャッシュ114上に読み出されている場合はステップ1112から、読み出されていない場合はステップ1106から、管理サーバ100は処理を継続する(ステップ1104)。
【0080】
管理サーバ100は、ステップ1002で割り出した物理ブロックを有するストレージ装置110各々についてオンキャッシュ命令450に必要な情報をセットし、該当するストレージ装置110毎にオンキャッシュ命令を発行する(ステップ1106)。ここで、セットされる情報は、図5に示すステップ512においてセットされる情報と同様である。 オンキャッシュ命令450を受け付けたストレージ装置110は、データアドレスリスト460で指定された物理ブロックのデータをキャッシュ114上に読み出す(ステップ1108)。
【0081】
管理サーバ100は、該当する全てのストレージ装置110に対しオンキャッシュ命令450を発行したか判定し、発行した場合はステップ1112から、発行していない場合はステップ1106から処理を継続する(ステップ1110)。
【0082】
管理サーバ100は、今回の読み出し対象となったデータを該当するストレージ装置110から管理サーバ上のキャッシュ800上に読み出す(ステップ1112)。
【0083】
管理サーバ100は今回の読み出し対象となったデータを全てキャッシュ800上に読み出したか判定し、読み出した場合はステップ1116、読み出していない場合はステップ1112から処理を継続する(ステップ1114)。
【0084】
管理サーバ100は、今回受け付けたデータアクセス命令900内のバッファアドレスが示すサーバ120上のデータ領域に、ストレージ装置110からキャッシュ800に読み出したデータを転送し(ステップ1116)、図6のステップ602から図6に示す処理を実行する。
【0085】
第3の実施形態によれば、インバンド型バーチャリゼーション環境下において、管理サーバ100が、各サーバ120から受け付けたデータアクセス命令に基づいて、アクセスするデータをディスク116からキャッシュ114上に読み出すようストレージ装置110に指示することができる。従って効率よくデータの読み出し処理を行うことが出来る。
【0086】
また、上記データアクセス命令を受け付けた際、管理サーバ100が過去のデータ読み出しに関する履歴情報を基に、今後読み出しが行われるデータが記憶されている記憶領域を予測し、該当する記憶領域を有するストレージ装置110にデータの先読みを指示する。即ち、管理サーバ100は、未だ各サーバ120からのデータアクセス命令を受け付けていない記憶領域についても、データの先読みを指示することができる。従って、インバンド型バーチャリゼーション環境下においても、ストレージ装置110は効率よくデータの先読み処理を行うことが出来、連続した一連のデータ読み出しに要する時間を短縮出来る。
【0087】
【発明の効果】
本発明によれば、バーチャリゼーション環境においも、データの先読みを実行することができる。
【図面の簡単な説明】
【図1】本発明を適用したシステムの第1の実施形態を示した図である。
【図2】管理サーバが有するマッピング情報の構成例を示した図である。
【図3】管理サーバが有するアクセス履歴情報の構成例を示した図である。
【図4】サーバが管理サーバに発行する仮想アドレス変換命令、管理サーバがサーバに送信する物理アドレス情報、管理サーバが記憶装置に発行するオンキャッシュ命令の構成例を示した図である。
【図5】データアクセス処理の一例を示した図である。
【図6】データアクセスの処理の一例を示した図である。
【図7】本発明を適用したシステムの第2の実施形態を示した図である。
【図8】本発明を適用したシステムの第3の実施形態を示した図である。
【図9】サーバが管理サーバに発行するデータアクセス命令の構成例を示した図である。
【図10】第3の実施形態におけるデータアクセス処理の一例を示した図である。
【図11】第3の実施形態におけるデータアクセス処理の一例を示した図である。
【符号の説明】
100…管理サーバ
102…管理プログラム
104…マッピング情報
106…アクセス履歴情報
110…ストレージ装置
114…キャッシュ
116…ディスク装置
120…サーバ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a system in which a management server manages a data area of a storage device as a virtual data area.
[0002]
[Prior art]
In recent years, the amount of data stored in storage devices has increased significantly, and the storage capacity of the storage devices themselves, the number of storage devices, file servers, etc. connected to a SAN (Storage Area Network) have increased. As a result, various problems such as complicated management of a storage area or the like having a large capacity, complicated management of storage apparatuses installed in dispersed locations, and load concentration on the storage apparatuses have appeared. Currently, a technique called virtualization is being researched and developed for the purpose of solving these problems.
[0003]
Virtualization technology is roughly classified into three types as described in the white paper “Virtualization of Disk Storage” (WP-0007-1) issued in September 2000 by Evaluator Group.
[0004]
The first is that each server connected to the SAN shares information for managing the storage area of the storage device connected to the SAN, and each server uses the volume manager of each server as a storage device. To access.
[0005]
The second is a system configuration called in-band virtualization. In this configuration, the management server collectively manages the storage areas of the storage devices connected to the SAN as virtual data areas (hereinafter referred to as “virtual volumes”), and the management server sends requests from each server to the storage apparatus. It receives and accesses the storage area of the subordinate storage device and returns the result to the server.
[0006]
The third is a system configuration called out-band virtualization. Also in this configuration, the management server collectively manages the storage areas of the storage devices connected to the SAN. However, when the management server receives a request for access to the storage device from the server, the management server returns the location information of the storage area that actually stores the data to the server. The server accesses the storage area of the storage device based on the returned information.
[0007]
Most storage devices use magnetic disk disks as recording media. When a magnetic disk disk is used as a recording medium, the time required for data seek on the magnetic disk and data transfer from the magnetic disk becomes a problem.
[0008]
Therefore, a cache memory is provided in the storage apparatus, and a data prefetching method is realized in which data requested by the host, particularly data that is continuously read (sequential data) is predicted and read in advance on the cache memory. This technology is described in the paper “An analytic behavior model for disk drives with readahead caches and request reordering” published in ACM SIGMETRICS '98 P182-P191. This prefetching of data conceals the time required for data seek on the magnetic disk and data read from the magnetic disk, thereby improving the data read performance. This technique is referred to as data prefetching processing.
[0009]
[Problems to be solved by the invention]
The above-mentioned data prefetching technique is an effective technique for a single storage apparatus. However, under a virtualization environment, data areas on one or a plurality of storage devices are collectively managed as virtual volumes. Therefore, the data to be read is not always stored on one storage device. In such a case, it is difficult to perform data prefetching by the same method as the data prefetching method in the storage device alone.
[0010]
An object of the present invention is to provide a data prefetching method, an apparatus and a system for performing data prefetching in a virtualization environment.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, according to the present invention, a management server that manages a physical storage area of a storage device as a virtual volume reads data from a disk onto a cache based on an access request received from each server. Means for issuing an instruction to the storage device. The storage device has means for reading data onto the cache according to the instruction.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below. Note that the present invention is not limited thereby.
[0013]
The first embodiment will be described with reference to FIGS. 1 to 6. Note that this embodiment is intended for an out-of-band virtualization environment.
[0014]
FIG. 1 is a diagram showing a first embodiment of a system to which the present invention is applied. This system includes a management server 100, a storage device 110, a server 120, a network 130 to which these servers are connected, a dedicated network 132 for connecting the management server 100 and each server 120, and a connection between the management server 100 and each storage device 110. And a dedicated network 134. It is connected to the network 130 Ru The number of servers 120 may be singular or plural.
[0015]
Communication between the management server 100 and each of the servers 120 and between the management server 100 and each of the storage devices 110 are performed via the dedicated networks 132 and 134, respectively. Data transfer between the server 120 and each storage device 110 is performed via the network 130. With this configuration, a virtual address conversion command 400, physical address information 420, and on-cache command 450, which will be described later, are transmitted and received using a dedicated network without using the network 130. Traffic is reduced.
[0016]
The management server 100 has an I / F (A) 10 1 connected to the dedicated network 132, an I / F (C) 103 connected to the network 130, the control device 105, the memory 108, and an I / F (connected to the dedicated network 134 ( B) 107 is included. The memory 108 stores a management program 102, mapping information 104, and access history information 106. The control device 105 of the management server 100 executes the management program 102 in order to manage the physical storage area of the storage apparatus 110 connected to the network 130 as a virtual volume that is a virtual storage area.
[0017]
The storage device 110 includes an I / F (A) 113 connected to the network 130, a control device 112, a cache 114, a disk device 116, an I / F (B) 115 connected to the dedicated network 134, and a memory 117. The control device 112 controls the cache 114 and the disk device 116, and controls data writing and data reading with respect to a specified physical storage area in response to a request from the server 120.
[0018]
In this figure, the disk device 116 is shown as a single unit, but there may be a plurality of disk devices 116 such as RAID. In the latter case, the control device 112 manages the correspondence between the plurality of disk devices 116 in the storage device 110 and the physical storage area. The physical storage area provided by the storage device 110 may correspond to the disk device 116 on a one-to-one basis, or a plurality of disk devices 116 may correspond to one physical storage region. Arrows 150, 152, 154, 156, and 158 in FIG. 1 visually indicate processing when the server 120 accesses data on the storage apparatus 110. In the following, the virtual data area that can be specified by the virtual volume ID and the virtual block address is the virtual block, the address is the virtual address, the physical data area that can be specified by the storage device address, the logical unit number, and the logical block address. A physical block and its address are called physical addresses.
[0019]
When accessing data on the storage device 110, the server 120 first transmits a virtual address translation command 400 to the management server 100 in order to obtain the physical address of the data to be accessed (arrow 150).
[0020]
The I / F (A) 101 of the management server 100 receives the virtual address translation command 400 from the server 120. Then, the control device 105 executes the management program 102, refers to the mapping information 104, and acquires a physical address corresponding to the virtual address specified by the instruction. Then, the management server 100 returns physical address information 420, which is information regarding the acquired physical address, to the requesting server 120 via the I / F (A) 101 (arrow 154). The server 120 that has received the physical address information 420 from the management server 100 accesses the data on the storage device 110 using the physical address included in the information (arrow 158).
[0021]
The control device 105 of the management server 100 further executes a management program to determine whether or not the current data access is data read based on the information included in the received virtual address translation command 400. In the case of data reading, the management server 100 issues an on-cache command 450 from the I / F (B) 107 to the storage apparatus 110 storing the data to be read (arrow 152). Also, the control device 105 of the management server 100 refers to the access history information 106 to determine whether the current data access is a part of continuous data reading. When it is determined that the data is read continuously, the control device 105 of the management server 100 acquires a physical address corresponding to a virtual block in which a certain amount of data following the data read this time exists, and all the corresponding storages An on-cache instruction 450 is issued from the I / F (B) 107 to the device 110 (arrow 152).
[0022]
The I / F (B) 115 of the storage device 110 receives the on-cache command 450 from the management server 100, and the control device 112 controls the disk 116 and the cache 114, and the data 210 specified by the on-cache command 450. Is read from the disk device 116 to the cache 114 (arrow 156).
[0023]
FIG. 2 is a diagram illustrating a configuration example of the mapping information 104 stored in the memory 108 of the management apparatus 100. The mapping information 104 includes storage device information 200 that is information on the storage device 110 managed by the management server 100, and virtual volume information 210 that associates virtual blocks with physical blocks. In this embodiment, the virtual area and the physical area are managed in units of blocks. However, other units, for example, several blocks are managed together as one management unit. Also good.
[0024]
The storage device information 200 includes a storage device ID 202 that identifies the storage device 110 managed by the management server 100, a storage device address 204 that indicates a device address of the storage device 110 on the network 130, and a cache 114 that the storage device 110 has. The cache size 206 indicates the capacity.
[0025]
The virtual volume information 210 includes a virtual volume ID 212 for identifying the virtual volume, a virtual block address 214 indicating the position of the virtual block in the virtual volume, a storage device ID 216 indicating the storage device 110 having a physical block corresponding to the virtual block, It consists of a logical unit number 218 indicating this physical block and a logical block address 220. 2 shows an example in which the storage apparatus S01 has a physical block corresponding to the virtual block in the virtual volume VVOL1, and the storage apparatus S02 has a physical block corresponding to the virtual block in the virtual volume VVOL2. . However, one storage device may have physical blocks corresponding to a plurality of virtual volumes.
[0026]
FIG. 3 is a diagram illustrating a configuration example of the access history information 106 stored in the memory 108 of the management server 100.
[0027]
The access history information 106 includes the read history information 300 that is the history information of the virtual address translation instruction 400 issued for the purpose of reading data, and the prefetch instruction when predicting the storage area to be read soon and instructing the prefetch. Read-ahead history information 320 which is the history information.
[0028]
The read history information 300 includes a server ID 302 for identifying the server 120 that has issued the virtual address translation command 400, a process ID 304 that indicates a process in the server 120 that has issued the command, and a virtual volume that indicates the virtual volume to which the data to be read belongs. The volume ID 306 is composed of a head virtual block address 308 indicating the head virtual block of the data to be read, a tail virtual block address 310 indicating the tail virtual block of the data to be read, and time information 312 which is information on the time when the instruction is received Is done.
[0029]
The prefetch history information 320 includes a virtual volume ID 322 indicating a virtual volume to which prefetched data belongs, a virtual block address 324 indicating the first virtual block of the data, a virtual block address 326 indicating the last virtual block of the data, and for prefetching Is composed of time information 328 indicating the issue time of the on-cache instruction 450 issued.
[0030]
4 shows a configuration example of a virtual address translation command 400 issued by the server 120 to the management server 100, physical address information 420 sent from the management server 100 to the server 120, and an on-cache command 450 issued by the management server 100 to the storage device 110. FIG.
[0031]
The virtual address translation instruction 400 identifies a control code 402 for identifying the instruction, an access flag 404 indicating whether the data access request by the instruction is a data read request or a data write request, and the server 120 that issued the instruction. Server ID 406, process ID 408 indicating the process in the server 120 that issued this command, and virtual address information 410 indicating the virtual address of the data to be accessed.
[0032]
The virtual address information 410 includes a virtual volume ID 412 indicating the virtual volume to which the access target data belongs, a start virtual block address 414 indicating the start virtual block of the access target data, and a tail virtual block address indicating the end virtual block of the access target data. 416.
[0033]
The physical address information 420 includes a control code 422 for identifying the information, and a physical address list 430 that is a list of physical addresses corresponding to the virtual address specified by the virtual address conversion instruction 400.
[0034]
The physical address list 430 includes a virtual volume ID 432 and a virtual block address 434 specified by the virtual address conversion instruction 400, a storage device address 436 that is a physical address corresponding to the virtual address, a logical unit number 438, and a logical unit address 440. Consists of.
[0035]
The on-cache instruction 450 has a control code 452 for identifying the instruction and a data address list 460 for specifying data to be read to the cache 114.
[0036]
The data address list 460 includes a logical unit number 462 storing data to be read, a head logical block address 464 indicating the top physical block of the data to be read, and a tail logical block address indicating the end physical block of the data to be read. 466.
[0037]
5 and 6 are diagrams showing the flow of data access processing in the first embodiment. Hereinafter, an operation when the server 120 reads data from the storage apparatus 110 or writes data will be described. Here, the processing executed by the management server 100 is processing performed by the control device 105 executing the management program 102 stored in the memory 108. 5 and 6, when the access flag 404 in the virtual address translation instruction 400 indicates reading of data, that is, when the request from the server 120 is reading of data, and reading of data from the server 120. An example is shown in which prefetch processing is performed in both cases where the request is predicted to be part of a continuous data read request. However, the prefetching process may be performed only in either case.
[0038]
The server 120 sets necessary information in the virtual address translation command 400 and transmits it to the management server 100 (step 500). Here, the information to be set includes a control code 402 indicating that the instruction is a virtual address translation instruction, an access flag 404 indicating whether data access is read or write, a server ID 406 indicating a server issuing the instruction, A process ID 408 indicating a process issuing an instruction, a virtual volume ID 412 to which data to be accessed belongs, a head virtual block address 414 of the data, and a tail virtual block address 416 are included.
[0039]
The management server 100 that has received the virtual address conversion command 400 searches the virtual volume information 210, and stores the storage device ID 216, logical unit number 218, logical block corresponding to the virtual block address specified by the virtual address information 410 in the command. Address 220 is determined. Further, the management server 100 searches the storage device information 200 using the storage device ID 216 determined in the above search as a key, and acquires the device address 204 of the storage device on the network 130 (step 502).
[0040]
The management server 100 refers to the access flag 404 in the virtual address translation instruction 400 to determine whether the request is data reading or writing. The management apparatus 100 continues the processing from step 506 in the case of data reading and from step 518 in the case of data writing (step 504).
[0041]
The management server 100 adds a new entry to the read history information 300, and adds a server ID 406, a process ID 408, a virtual volume ID 412, a head virtual block address 414, and a tail virtual block address 416 in the virtual address conversion instruction 400, respectively. The server ID 302, the process ID 304, the virtual volume ID 306, the head virtual block address 308, and the tail virtual address 310 of the new entry are copied to the time information 312 (step 506).
[0042]
The management server 100 searches the prefetch history information 320 from the present time to a predetermined period before, and investigates whether or not the data to be read this time has already been read on the cache 114 of the storage apparatus 110 by the previous processing (step). 508).
[0043]
The management server 100 continues the processing from step 518 if the data to be read this time has already been read on the cache 114, and from step 512 if it has not been read (step 510).
[0044]
The management server 100 sets necessary information in the on-cache command 450 for each storage device 110 determined in step 502, and issues the on-cache command 450 for each corresponding storage device 110 (step 512). Here, the information to be set is a control code 452 indicating that the instruction is an on-cache instruction, and information in the data address list 460 for specifying a physical location where data to be read is actually stored. is there. The logical unit number and logical block address determined in step 502 are set in the logical unit number 462 in the data address list 460, the head block address 464 and the tail block address 466 in the logical unit. When the data to be read is divided and stored in a plurality of logical units, information on all corresponding logical units and physical blocks is set in the data address list 460. Further, the management server 100 may broadcast the on-cache command 450 to all the storage apparatuses 110 connected to the dedicated network 134 using the dedicated network 134, or the address of the storage apparatus 110 on the dedicated network 134. And the on-cache command 450 may be transmitted for each storage device 110.
[0045]
The storage apparatus 110 that has received the on-cache instruction 450 reads the data of all physical blocks specified in the data address list 460 onto the cache 114 (step 514).
[0046]
The management server 100 determines whether or not the on-cache command 450 has been issued to all the corresponding storage apparatuses 110. If issued, the process continues from step 518, and if not issued, the process continues from step 512 (step 516). .
[0047]
The management server 100 sets the physical address determined in step 502 in the physical address information 420 and transmits it to the server 120 that issued the address conversion command 400, and continues the processing from step 600 (step 518).
[0048]
The server 120 that has received the physical address information 420 acquires the addresses and physical block addresses of all the storage apparatuses 110 that store the access target data from the physical address list 430 (step 520).
[0049]
The server 120 accesses the storage apparatus 110 that stores the data to be accessed based on the information acquired in Step 520 (Step 522).
[0050]
The management server 100 refers to the access flag 404 in the received virtual address translation instruction 400 and determines whether the purpose of the request is to read or write data. In the case of data reading, the management server 100 continues the processing from step 602, and in the case of data writing, the management server 100 ends the processing (step 600).
[0051]
The management server 100 searches the read history information 300 and checks whether the current read request is a part of the continuous data read request (step 602). Here, the determination as to whether or not it is a continuous data read request is performed as follows, for example. The read history information 300 stores history information related to data read performed by the server 120 from the storage apparatus 110 in the past. The management server 100 refers to the server ID 302, process ID 304, and time information 312 stored in the read history information 300, and the same server and the same process as the data read request received this time are within a predetermined period (for example, several seconds ago, Minutes ago), if the data of the virtual block in the same virtual volume is read and the virtual block following the virtual block is read continuously, the current data read request is also a series of continuous data read requests. Judge that it is a part.
[0052]
If it is determined that the current read request is part of a continuous data read request, the management server 100 continues the process from step 606, and if not, the process ends (step 604).
[0053]
The management server 100 stores virtual blocks of a certain amount (for example, the number of blocks read by one reading when reading continuous data) from the virtual block next to the last virtual block of the data to be read this time. The data is recognized as prefetched data (step 606).
[0054]
The management server 100 searches the virtual volume information 210, finds all the physical blocks corresponding to each of the prefetched virtual blocks, identifies the storage device ID 216, logical unit number 218, and physical Get the logical block address 220 of the block. Further, the management server 100 searches the storage device information 200 using the acquired storage device ID 216 as a key, and acquires the device address of the storage device having the corresponding physical block (step 608).
[0055]
The management server 100 sets necessary information in the on-cache command 450 for each storage device 110 having the physical block determined in step 608, and issues the on-cache command 450 for each storage device 110 (step 610). Here, the information set is the same as the information set in step 512.
[0056]
The storage device 110 that has received the on-cache instruction 450 reads the data of all physical blocks specified in the data address list 460 onto the cache 114 (step 612).
[0057]
The management server 100 determines whether or not the on-cache instruction 450 has been issued to all the corresponding storage devices 110, and if issued, the process continues from step 616, and if not issued, the process continues from step 610 (step 614). .
[0058]
The management server 100 adds a new entry to the prefetch history information 320, sets the virtual volume ID, the head virtual block address, the tail virtual block address, and the time information when the on-cache instruction 450 is issued for the data that is the prefetch target this time, The process ends (step 616).
[0059]
In this embodiment, the management server 100 issues an on-cache command 450 to the storage device 110 before transmitting the physical address information 420 to the server 120. However, the order in which the physical address information 420 is transmitted to the server 120 and the on-cache instruction 450 is issued to the storage device 110 may be reversed or simultaneous.
[0060]
According to the first embodiment, in an out-of-band virtualization environment, the management server 100 is configured to read out the corresponding data from the disk 116 onto the cache 114 based on an inquiry regarding data access received from each server 120. The device 110 can be instructed. Accordingly, each storage device 110 can efficiently perform data read processing.
[0061]
Further, according to the first embodiment, when the management server 100 accepts the inquiry, the management server 100 predicts a storage area from which data will be read in the future based on history information regarding past data reading, and has a corresponding storage area. A prefetch can be instructed to the storage apparatus 110. That is, it is possible to instruct data prefetching even for a storage area that has not yet received the virtual address translation command 400 from each server 120. Accordingly, each storage apparatus 110 can efficiently perform data prefetching processing even in an out-of-band virtualization environment, and can shorten the time required for continuous series of data reading.
[0062]
As a result, in the virtualization environment, the time required for data seek in the disk device and data transfer from the disk device can be concealed, and the data reading process can be speeded up.
[0063]
FIG. 7 is a diagram showing a second embodiment of the system to which the present invention is applied. The difference from the first embodiment is that the dedicated line 132 that connects the management server 100 and each server 120 and the dedicated line 134 that connects the management server 100 and each storage device 110 do not exist in the second embodiment. Is a point. Accordingly, communication between the management server 100 and each storage device 110, between the management server 100 and each server 120, and between each server 120 and each storage device 110 is all performed via the network 130. For this reason, although the traffic on the network 130 increases compared with the first embodiment, it is not necessary to prepare the dedicated networks 132 and 134 in the first embodiment. The processing when the server 120 reads data from the storage device 110 or the server 120 writes data to the storage device 110 is executed according to the processing flow shown in FIGS. 5 and 6 as in the first embodiment. The However, in the second embodiment, the management server 100 issues an on-cache command 450 to the storage apparatus 110 using the network 130. Therefore, the management server 100 is different from the first embodiment in that the management server 100 designates the address of the storage device 110 on the network 130 and transmits the on-cache command 450 for each storage device 110.
[0064]
According to the second embodiment, when the server 120 reads data from the storage device 110, the management server 100 can instruct the storage device 110 to read data to the cache 114 via the network 130. . Therefore, efficient prefetching processing can be performed at low cost.
[0065]
FIG. 8 is a diagram showing a third embodiment of the system to which the present invention is applied. The present embodiment is intended for an in-band virtualization environment. This embodiment differs from the first embodiment in the data access method. In the third embodiment, the server 120 requests data access from the management server 100, and the management server 100 accesses data on the storage device 110 in accordance with the request. In the present embodiment, the management server 100 has a cache 800 for use in data transmission / reception with the storage apparatus 110 and the server 120.
[0066]
Arrows 810, 812, 814, and 816 in FIG. 8 visually indicate the data access method in the third embodiment.
[0067]
When accessing the data on the storage device 110, the server 120 transmits a data access command 900 to the management server 100 (arrow 810). The management server 100 that has received the data access command 900 from the server 120 refers to the mapping information 104 and acquires a physical address corresponding to the virtual address specified by this command. In addition, the management server 100 determines whether the current access request is data write or data read from the information accompanying this command. In the former case, the management server 100 transfers the write target data from the server 120 to the cache 800 (arrow 816). Write to the physical block pointed to by the acquired physical address (arrow 814). In the latter case, the management server 100 issues an on-cache command 450 to all the storage apparatuses 110 that store the data to be read (arrow 812). Then, the management server 100 reads the data to be read from the corresponding storage device 110 onto the cache 800 (arrow 814), and transmits it to the requesting server 120 (arrow 816).
[0068]
FIG. 9 is a diagram illustrating a configuration of a data access command 900 issued by the server 120 to the management server 100. The data access instruction 900 includes a control code 902 for identifying the instruction, an access flag 904 indicating whether data access by the instruction is data reading or data writing, a server ID 906 for identifying the server 120 that issued the instruction, Process ID 908 indicating the process in the server 120 that issued this command, virtual address information 910 indicating the virtual address of the data to be accessed, the transfer destination of the data to be accessed, or the address of the buffer on the server 120 that is the transfer source Has a buffer address 920.
[0069]
The virtual address information 910 includes a virtual volume ID 912 indicating a virtual volume to which data to be accessed belongs, a head virtual block address 914 indicating the head virtual block of the data to be accessed, and a tail virtual block address indicating the tail virtual block of the data to be accessed. 916.
[0070]
10 and 11 are diagrams showing the flow of data access processing in the third embodiment. Hereinafter, an operation when the server 120 reads data stored in the storage device 110 through the management server 100 or writes data to a storage area on the storage device 110 will be described. Note that the processing performed by the management server 100 is performed when the control device 105 of the management server 100 executes the management program 102 stored in the memory 108.
[0071]
The server 120 sets necessary information in the data access command 900 and transmits it to the management server 100 (step 1000). Here, the information to be set includes a control code 902 indicating that the instruction is a data access instruction, an access flag 904 indicating whether the data access is read or write, a server ID 906 indicating a server issuing the instruction, Process ID 908 indicating the process issuing the command, virtual volume ID 912 to which the access target data belongs, the start virtual block address 914 of the data, the end virtual block address 916, the transfer destination of the access target data, or the server serving as the transfer source The buffer address 920 indicates the address of the buffer on 120.
[0072]
The management server 100 that has received the data access command 900 searches the virtual volume information 210, calculates all the physical blocks corresponding to each virtual block specified by the virtual address information 910 in the command, and ID 216, logical unit number 218, and logical block address 220 of the storage apparatus having Further, the management server 100 searches the storage device information 200 using the acquired storage device ID 216 as a key, and acquires the device address of the storage device having the physical block (step 1002).
[0073]
The management server 100 refers to the access flag 904 in the data access instruction 900 to determine whether the request is data reading or writing. The management server 100 continues processing from step 1100 in the case of data reading and from step 1006 in the case of data writing (step 1004).
[0074]
The management server 100 transfers data from the buffer on the server 120 indicated by the buffer address 920 in the data access instruction 900 to the cache 800 (step 1006).
[0075]
The management server 100 writes the data transferred in step 1006 to the physical block determined in step 1002 (step 1008).
[0076]
The management server 100 determines whether all the data to be written has been written to the storage device 110. If it has been written, the process ends. If not, the process continues from step 1008 (step 1010).
[0077]
The management server 100 adds a new entry to the read history information 300 and sets the server ID 406, process ID 408, virtual volume ID 412, head virtual block address 414, and tail virtual block address 416 in the data access instruction 900 to the server ID 302 and process ID, respectively. Copying to ID 304, virtual volume ID 306, head virtual block address 308, and tail virtual address 310, the time when the command is received is set in time information 312 (step 1100).
[0078]
The management server 100 searches the prefetch history information 320 within an arbitrary period from the present time, and investigates whether or not the data to be read this time has already been read onto the cache 114 of the storage apparatus 110 by the prefetch process (step 1102). ).
[0079]
The management server 100 continues the processing from step 1112 when the data to be read this time has already been read on the cache 114, and from step 1106 when it has not been read out (step 1104).
[0080]
The management server 100 sets necessary information in the on-cache command 450 for each storage device 110 having the physical block determined in step 1002, and issues an on-cache command for each corresponding storage device 110 (step 1106). Here, the information to be set is the same as the information set in step 512 shown in FIG. The storage apparatus 110 that has received the on-cache instruction 450 reads the data of the physical block specified by the data address list 460 onto the cache 114 (step 1108).
[0081]
The management server 100 determines whether or not the on-cache command 450 has been issued to all the corresponding storage apparatuses 110. If issued, the process continues from step 1112. If not issued, the process continues from step 1106 (step 1110). .
[0082]
The management server 100 reads the data to be read this time from the corresponding storage device 110 onto the cache 800 on the management server (step 1112).
[0083]
The management server 100 determines whether all the data to be read this time has been read onto the cache 800, and if it has been read, the process continues from step 1116, and if not, the process continues from step 1112 (step 1114).
[0084]
The management server 100 transfers the data read from the storage device 110 to the cache 800 to the data area on the server 120 indicated by the buffer address in the data access instruction 900 accepted this time (step 1116), and from step 602 in FIG. The process shown in FIG. 6 is executed.
[0085]
According to the third embodiment, in an in-band virtualization environment, the storage server 100 reads data to be accessed from the disk 116 onto the cache 114 based on a data access command received from each server 120. 110 can be instructed. Therefore, data can be read efficiently.
[0086]
In addition, when the data access command is received, the management server 100 predicts a storage area in which data to be read in the future is stored based on history information regarding past data read, and a storage having the corresponding storage area The apparatus 110 is instructed to prefetch data. That is, the management server 100 can instruct prefetching of data even for a storage area that has not yet received a data access command from each server 120. Therefore, even in an in-band virtualization environment, the storage apparatus 110 can efficiently perform data pre-read processing, and can shorten the time required for continuous data reading.
[0087]
【The invention's effect】
According to the present invention, prefetching of data can be executed even in a virtualization environment.
[Brief description of the drawings]
FIG. 1 is a diagram showing a first embodiment of a system to which the present invention is applied.
FIG. 2 is a diagram illustrating a configuration example of mapping information included in a management server.
FIG. 3 is a diagram illustrating a configuration example of access history information included in a management server.
FIG. 4 is a diagram illustrating a configuration example of a virtual address conversion command issued by the server to the management server, physical address information transmitted from the management server to the server, and an on-cache command issued by the management server to the storage device.
FIG. 5 is a diagram showing an example of data access processing.
FIG. 6 is a diagram illustrating an example of a data access process.
FIG. 7 is a diagram showing a second embodiment of a system to which the present invention is applied.
FIG. 8 is a diagram showing a third embodiment of a system to which the present invention is applied.
FIG. 9 is a diagram illustrating a configuration example of a data access command issued by a server to a management server.
FIG. 10 is a diagram showing an example of data access processing in the third embodiment.
FIG. 11 is a diagram showing an example of data access processing in the third embodiment.
[Explanation of symbols]
100 ... management server
102 ... Management program
104 ... Mapping information
106 ... access history information
110 ... Storage device
114 ... cache
116: Disk device
120 ... server

Claims (15)

1又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、前記1又は複数のサーバと前記複数のストレージ装置とに接続される管理サーバと、を備える計算機システムであって、  A computer system comprising one or more servers, a plurality of storage devices each having a cache for temporarily storing data, and a management server connected to the one or more servers and the plurality of storage devices. There,
前記管理サーバは、  The management server
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume which is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、  Stores history information related to reading of past data as access history information,
前記1又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、  When receiving a data read request and an address of the virtual volume based on a virtual address translation command issued for the purpose of reading data from the one or more servers, the virtual volume based on the correspondence relationship To the address of the physical storage area,
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、  When the data stored at the physical storage area address is not read from the access history information on the cache, an on-cache instruction for reading the data onto the cache is sent to the physical storage area address. When sending to all storage devices to which
前記物理的な記憶領域のアドレスが属する全てのストレージ装置は、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出し、  All storage devices to which the address of the physical storage area belongs read the data stored at the address of the physical storage area onto each cache,
前記管理サーバは、  The management server
データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信すると、  When sending the address of the physical storage area to the server that issued the data read request,
前記データの読み出し要求を発行したサーバは、  The server that issued the data read request is:
前記物理的な記憶領域のアドレスが属する全てのストレージ装置にアクセスし、  Access all storage devices to which the physical storage area address belongs,
前記管理サーバは、  The management server
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して、予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する  When the data read request is a part of a continuous data read request, a certain amount of data after the read data is predicted as the data to be read ahead, and the prediction is performed by referring to the access history information. The address of the virtual volume that stores the read-ahead target data is converted into the address of the physical storage area, and an on-cache instruction to be read on the cache is transmitted to all the storage apparatuses to which the address of the physical storage area belongs Do
ことを特徴とする計算機システム。  A computer system characterized by that.
1又は複数のサーバと、前記1又は複数のサーバに接続しデータを一時的に格納するキャッシュを有する管理サーバと、前記管理サーバとに接続しデータを一時的に格納するキャッシュを有する前記複数のストレージ装置と、を備える計算機システムであって、  One or more servers, a management server having a cache connected to the one or more servers and temporarily storing data, and a plurality of caches connected to the management server and temporarily storing data A computer system comprising a storage device,
前記管理サーバは、  The management server
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume which is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、  Stores history information related to reading of past data as access history information,
前記1又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、  Upon receiving a data read request and the virtual volume address from the one or more servers, the virtual volume address is converted to the physical storage area address based on the correspondence relationship;
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、  When the data stored at the physical storage area address is not read from the access history information on the cache, an on-cache instruction for reading the data onto the cache is sent to the physical storage area address. When sending to all storage devices to which
前記物理的な記憶領域のアドレスが属する全てのストレージ装置は、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出し、  All storage devices to which the address of the physical storage area belongs read the data stored at the address of the physical storage area onto each cache,
前記管理サーバは、  The management server
各々のキャッシュ上に読み出したデータを管理サーバにある1つのキャッシュ上に読み  Data read on each cache is read on one cache in the management server. 出すと、当該データの読み出し要求を発行したサーバに転送し、And then forward it to the server that issued the data read request,
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する  When the data read request is a part of a continuous data read request, a certain amount of data after the read data is predicted as prefetched data, and predicted with reference to the access history information The address of the virtual volume that stores the data to be read ahead is converted into the address of the physical storage area, and an on-cache instruction to be read on the cache is transmitted to all the storage apparatuses to which the address of the physical storage area belongs.
ことを特徴とする計算機システム。  A computer system characterized by that.
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測する  When the data read request is a part of a continuous data read request, the access history information is referred to, and the constant is determined from the virtual block next to the last virtual block in the virtual volume in which the read data is stored. Predict the amount of data stored in a virtual block as prefetched data
ことを特徴とする請求項1又は2に記載の計算機システム。  The computer system according to claim 1, wherein the computer system is a computer system.
前記アクセス履歴情報は、前記1又は複数のサーバを識別するサーバ  The access history information is a server that identifies the one or more servers. IDID 情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスProcess indicating the process of the server that issued the virtual address translation instruction issued for the purpose of reading information and data IDID 情報と、読み出し対象のデータが属する仮想ボリュームVirtual volume to which information and data to be read belong IDID 情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、Information, tail virtual block address information in the virtual volume to which the data to be read belongs, and time information when the management server accepts the virtual address translation command,
前記管理サーバは、  The management server
前記サーバ  The server IDID 情報と、前記プロセスInformation and the process IDID 情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定するThe same server and the same process as the server that issued the data read request with reference to the information and the time information, and the virtual block data in the same virtual volume is read within a predetermined time, and When the virtual block following the virtual block is also read, it is determined that the data read request is a part of the continuous data read request.
ことを特徴とする請求項3記載の計算機システム。  The computer system according to claim 3.
前記1又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記1又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第1の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第2の専用ネットワークを介して接続され、
前記管理サーバは、前記仮想アドレス変換命令を第1の専用ネットワークを介して前記1又は複数のサーバから受信し、前記オンキャッシュ命令を第2の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする請求項1に記載の計算機システム。
The one or more servers and the plurality of storage apparatuses are connected via a network, and the one or more servers and the management server are connected via a first dedicated network different from the network. The plurality of storage devices and the management server are connected via a second dedicated network different from the network,
The management server receives the virtual address translation command from the one or more servers via a first dedicated network, and receives the on-cache command via the second dedicated network. The computer system according to claim 1, wherein the computer system is transmitted to all storage apparatuses to which the server belongs.
1又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、前記1又は複数のサーバと前記複数のストレージ装置と接続される管理サーバと、を備える計算機システムのデータの読み出し指示方法であって、  Data of a computer system comprising one or more servers, a plurality of storage devices each having a cache for temporarily storing data, and a management server connected to the one or more servers and the plurality of storage devices Read instruction method,
前記管理サーバでは、  In the management server,
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶するステップと、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume that is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶するステップと、  Storing history information regarding reading of past data as access history information;
前記1又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップとを有し、  When receiving a data read request and an address of the virtual volume based on a virtual address translation command issued for the purpose of reading data from the one or more servers, the virtual volume based on the correspondence relationship Converting the address of the address to the address of the physical storage area,
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合に、前記管理サーバで、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレー  When the data stored at the physical storage area address is not read from the access history information on the cache, the management server issues an on-cache instruction to read the data onto the cache. All the storages to which the storage area address belongs ジ装置に送信すると、前記物理的な記憶領域のアドレスが属する全てのストレージ装置では、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出すステップを有し、All storage devices to which the physical storage area address belongs have a step of reading the data stored in the physical storage area address onto each cache,
前記管理サーバで、データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信すると、前記データの読み出し要求を発行したサーバでは、前記物理的な記憶領域のアドレスが属する全てのストレージ装置にアクセスするステップを有し、  When the management server sends the address of the physical storage area to the server that issued the data read request, all the storages to which the physical storage area address belongs belong to the server that issued the data read request. Having access to the device;
前記管理サーバでは、  In the management server,
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測するステップと、  When the data read request is a part of a continuous data read request, predicting a certain amount of data after the read data as prefetched data;
前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、  Converting an address of a virtual volume that stores the data to be read ahead predicted with reference to the access history information into an address of the physical storage area;
キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップと、を有する  Transmitting an on-cache instruction to be read on the cache to all storage apparatuses to which the address of the physical storage area belongs.
ことを特徴とするデータの読み出し指示方法。  A data reading instruction method characterized by the above.
1又は複数のサーバと、前記1又は複数のサーバに接続しデータを一時的に格納するキャッシュを有する管理サーバと、前記管理サーバとに接続しデータを一時的に格納するキャッシュを有する前記複数のストレージ装置と、を備える計算機システムのデータの読み出し指示方法であって、  One or more servers, a management server having a cache connected to the one or more servers and temporarily storing data, and a plurality of caches connected to the management server and temporarily storing data A data read instruction method of a computer system comprising a storage device,
前記管理サーバでは、  In the management server,
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶するステップと、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume that is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、  Stores history information related to reading of past data as access history information,
前記1又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、を有し、  Receiving a data read request and the address of the virtual volume from the one or more servers, and converting the address of the virtual volume into an address of the physical storage area based on the correspondence relationship; Have
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、前記管理サーバで、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、前記物理的な記憶領域のアドレスが属する全てのストレージ装置では、前記物理的な記憶領域のアドレスを格納するデータを各々のキャッシュ上に読み出すステップを有し、  If the data stored at the physical storage area address is not read from the access history information on the cache, the management server issues an on-cache instruction to read the data onto the cache at the physical server. When the data is transmitted to all the storage apparatuses to which the address of the storage area belongs, all the storage apparatuses to which the address of the physical storage area belongs read out the data storing the address of the physical storage area on each cache. Has steps,
前記管理サーバでは、  In the management server,
各々のキャッシュ上に読み出したデータを管理サーバにある1つのキャッシュ上に読み出すと、当該データを読み出し要求を発行したサーバに転送するステップと、  When the data read on each cache is read on one cache in the management server, the data is transferred to the server that issued the read request;
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測するステップと、  When the data read request is a part of a continuous data read request, predicting a certain amount of data after the read data as prefetched data;
前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、  Converting an address of a virtual volume that stores the data to be read ahead predicted with reference to the access history information into an address of the physical storage area;
キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップと、を有する  Transmitting an on-cache instruction to be read on the cache to all storage apparatuses to which the address of the physical storage area belongs.
ことを特徴とするデータの読み出し方法。  A data reading method characterized by the above.
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測するステップを有する  When the data read request is a part of a continuous data read request, the access history information is referred to, and the constant is determined from the virtual block next to the last virtual block in the virtual volume in which the read data is stored. Predicting data stored in a quantity of virtual blocks as prefetched data
ことを特徴とする請求項6又は7に記載のデータの読み出し方法。  The data reading method according to claim 6 or 7, wherein:
前記アクセス履歴情報は、前記1又は複数のサーバを識別するサーバ  The access history information is a server that identifies the one or more servers. IDID 情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスProcess indicating the process of the server that issued the virtual address translation instruction issued for the purpose of reading information and data IDID 情報と、読み出し対象のデータが属する仮想ボリュームVirtual volume to which information and data to be read belong IDID 情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、Information, tail virtual block address information in the virtual volume to which the data to be read belongs, and time information when the management server accepts the virtual address translation command,
前記管理サーバでは、  In the management server,
前記サーバ  The server IDID 情報と、前記プロセスInformation and the process IDID 情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定するステップを有するThe same server and the same process as the server that issued the data read request with reference to the information and the time information, and the virtual block data in the same virtual volume is read within a predetermined time, and And determining that the data read request is a part of a continuous data read request when the virtual block following the virtual block is also read.
ことを特徴とする請求項8記載のデータの読み出し方法。  9. A data reading method according to claim 8, wherein:
前記1又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記1又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第1の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第2の専用ネットワークを介して接続される計算機システムであり、
前記管理サーバでは、前記仮想アドレス変換命令を第1の専用ネットワークを介して前記1又は複数のサーバから受信し、前記オンキャッシュ命令を第2の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップを有する
ことを特徴とする請求項6に記載のデータの読み出し方法。
The one or more servers and the plurality of storage apparatuses are connected via a network, and the one or more servers and the management server are connected via a first dedicated network different from the network. The plurality of storage devices and the management server are computer systems connected via a second dedicated network different from the network,
In the management server, the virtual address translation command is received from the one or more servers via a first dedicated network, and the on-cache command is addressed to the physical storage area via a second dedicated network. The data reading method according to claim 6, further comprising a step of transmitting to all storage apparatuses to which the data belongs.
1又は複数のサーバと、データを一時的に格納するキャッシュを各々有し前記1又は複数のサーバと接続する複数のストレージ装置と、に接続される管理サーバであって、  A management server connected to one or more servers and a plurality of storage devices each having a cache for temporarily storing data and connected to the one or more servers,
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume which is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、  Stores history information related to reading of past data as access history information,
前記1又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、  When receiving a data read request and an address of the virtual volume based on a virtual address translation command issued for the purpose of reading data from the one or more servers, the virtual volume based on the correspondence relationship To the address of the physical storage area,
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信し、  When the data stored at the physical storage area address is not read from the access history information on the cache, an on-cache instruction for reading the data onto the cache is sent to the physical storage area address. To all the storage devices to which
データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信し、  Send the address of the physical storage area to the server that issued the data read request,
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する  When the data read request is part of a continuous data read request, a certain amount of data after the read data is predicted as prefetched data, and predicted with reference to the access history information The address of the virtual volume that stores the data to be read ahead is converted to the address of the physical storage area, and an on-cache command to be read on the cache is transmitted to all the storage apparatuses to which the physical storage area address belongs.
ことを特徴とする管理サーバ。  A management server characterized by that.
1又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、に接続される管理サーバであって、  A management server connected to one or more servers and a plurality of storage devices each having a cache for temporarily storing data;
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、  Storing a correspondence relationship between a physical storage area of each of the plurality of storage devices and a virtual volume which is a virtual storage area;
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、  Stores history information related to reading of past data as access history information,
前記1又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスと  A data read request from the one or more servers and an address of the virtual volume; を受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、Is received, the address of the virtual volume is converted to the address of the physical storage area based on the correspondence relationship,
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信し、  When the data stored at the physical storage area address is not read from the access history information on the cache, an on-cache instruction for reading the data onto the cache is sent to the physical storage area address. To all the storage devices to which
前記物理的な記憶領域のアドレスに格納される各々のキャッシュ上に読み出したデータを管理サーバにある1つのキャッシュ上に読み出すと、当該データの読み出し要求を発行したサーバに転送し、  When the data read on each cache stored in the address of the physical storage area is read on one cache in the management server, it is transferred to the server that issued the data read request,
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する  When the data read request is part of a continuous data read request, a certain amount of data after the read data is predicted as prefetched data, and predicted with reference to the access history information The address of the virtual volume that stores the data to be read ahead is converted to the address of the physical storage area, and an on-cache command to be read on the cache is transmitted to all the storage apparatuses to which the physical storage area address belongs.
ことを特徴とする管理サーバ。  A management server characterized by that.
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測する  When the data read request is a part of a continuous data read request, the access history information is referred to, and the constant is determined from the virtual block next to the last virtual block in the virtual volume in which the read data is stored. Predict the amount of data stored in a virtual block as prefetched data
ことを特徴とする請求項11又は12に記載の管理サーバ。  The management server according to claim 11 or 12, characterized in that:
前記アクセス履歴情報は、前記1又は複数のサーバを識別するサーバ  The access history information is a server that identifies the one or more servers. IDID 情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスProcess indicating the process of the server that issued the virtual address translation command issued for the purpose of reading information and data IDID 情報と、読み出し対象のデータが属する仮想ボリュームVirtual volume to which information and data to be read belong IDID 情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、Information, tail virtual block address information in the virtual volume to which the data to be read belongs, and time information when the management server accepts the virtual address translation command,
前記サーバ  The server IDID 情報と、前記プロセスInformation and the process IDID 情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定するThe same server and the same process as the server that issued the data read request with reference to the information and the time information, and the virtual block data in the same virtual volume is read within a predetermined time, and When the virtual block following the virtual block is also read, it is determined that the data read request is a part of the continuous data read request.
ことを特徴とする請求項13記載の管理サーバ。  The management server according to claim 13.
前記1又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記1又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第1の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第2の専用ネットワークを介して接続され、
前記仮想アドレス変換命令を第1の専用ネットワークを介して前記1又は複数のサーバから受信し、前記オンキャッシュ命令を第2の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする請求項11に記載の管理サーバ。
The one or more servers and the plurality of storage apparatuses are connected via a network, and the one or more servers and the management server are connected via a first dedicated network different from the network. The plurality of storage devices and the management server are connected via a second dedicated network different from the network,
All storages to which the virtual address translation command is received from the one or more servers via a first dedicated network and the on-cache command is addressed to the physical storage area via a second dedicated network The management server according to claim 11, wherein the management server transmits the information to a device.
JP2002249899A 2002-03-13 2002-08-29 Computer system Expired - Fee Related JP4053842B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002249899A JP4053842B2 (en) 2002-03-13 2002-08-29 Computer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002-67826 2002-03-13
JP2002067826 2002-03-13
JP2002249899A JP4053842B2 (en) 2002-03-13 2002-08-29 Computer system

Publications (2)

Publication Number Publication Date
JP2003337722A JP2003337722A (en) 2003-11-28
JP4053842B2 true JP4053842B2 (en) 2008-02-27

Family

ID=29714059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002249899A Expired - Fee Related JP4053842B2 (en) 2002-03-13 2002-08-29 Computer system

Country Status (1)

Country Link
JP (1) JP4053842B2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4502748B2 (en) * 2004-03-15 2010-07-14 株式会社日立製作所 Server and method for managing volume for storing digital archive
JP4625675B2 (en) 2004-10-20 2011-02-02 株式会社日立製作所 Storage device resource allocation method and storage device
JP4463661B2 (en) 2004-11-01 2010-05-19 株式会社日立製作所 Computer system, computer, database access method and database system
JP4764701B2 (en) * 2005-11-01 2011-09-07 株式会社日立製作所 Computer system for managing log information and log information management method
JP2007219703A (en) * 2006-02-15 2007-08-30 Fujitsu Ltd Hard disk storage control program, hard disk storage device and hard disk storage control method
CN100423491C (en) * 2006-03-08 2008-10-01 杭州华三通信技术有限公司 Virtual network storing system and network storing equipment thereof
JP4391548B2 (en) 2007-04-20 2009-12-24 株式会社メディアロジック Device driver
JP4959766B2 (en) * 2009-10-07 2012-06-27 株式会社メディアロジック Device driver
US20130238852A1 (en) * 2012-03-07 2013-09-12 Hitachi, Ltd. Management interface for multiple storage subsystems virtualization
WO2013175529A1 (en) * 2012-05-23 2013-11-28 Hitachi, Ltd. Storage system and storage control method for using storage area based on secondary storage as cache area
JP6034183B2 (en) * 2012-12-27 2016-11-30 株式会社東芝 Semiconductor memory device
WO2015162766A1 (en) * 2014-04-24 2015-10-29 株式会社日立製作所 Storage system and semiconductor storage device
JP7003470B2 (en) * 2017-07-18 2022-01-20 富士通株式会社 Information processing equipment, information processing methods, and programs
US10992967B2 (en) * 2017-12-05 2021-04-27 Sony Interactive Entertainment LLC Ultra high-speed low-latency network storage
CN111367462B (en) * 2018-12-25 2023-04-07 兆易创新科技集团股份有限公司 Data processing method and device

Also Published As

Publication number Publication date
JP2003337722A (en) 2003-11-28

Similar Documents

Publication Publication Date Title
US6954839B2 (en) Computer system
JP4053842B2 (en) Computer system
US8214606B2 (en) Storage system and control method thereof
US7124152B2 (en) Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
US7536505B2 (en) Storage system and method for controlling block rearrangement
US9348842B2 (en) Virtualized data storage system optimizations
US7930474B2 (en) Automated on-line capacity expansion method for storage device
US7996445B2 (en) Block reallocation planning during read-ahead processing
US5887151A (en) Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks
US7136801B2 (en) Outboard data storage management system and method
JP3522527B2 (en) I / O control device and I / O control method
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
US20090049238A1 (en) Disk drive storage defragmentation system
JP2005011316A (en) Method and system for allocating storage area, and virtualization apparatus
US7062608B2 (en) Storage device adapter equipped with integrated cache
KR20130123897A (en) Method and appratus for managing file in hybrid storage system
JP3812928B2 (en) External storage device and information processing system
US6430653B1 (en) Disk control unit and method for prefetching according to partition information and concatenation information
JP4461089B2 (en) Storage control apparatus and storage control method
CN111124302B (en) SAN shared file storage and archiving method and system
JP4606998B2 (en) Network cache device and program
JP2006031446A (en) Data storage device, data storage method and data storage program
US10848555B2 (en) Method and apparatus for logical mirroring to a multi-tier target node
KR100825724B1 (en) Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof
WO2016170632A1 (en) Computer and power source control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040325

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070831

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070928

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

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: 20071203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071206

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101214

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: 20101214

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees