(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録する登録手段と、
前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する制御手段と、
を備える拡張記憶制御装置。
【請求項２】
前記登録手段は、前記アクセス領域を識別可能な識別子を、前記論理アドレスと関連付けて前記ミラー更新履歴情報に登録し、
前記制御手段は、前記ミラー更新履歴情報に登録された前記論理アドレスを、関連付けられた前記アクセス領域に関して前記物理アドレスに変換したのち、当該物理アドレスを前記拡張記憶装置に入力することによって、当該物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する、
請求項１に記載の拡張記憶制御装置。
【請求項３】
前記登録手段は、特定の前記アクセス領域を使用する特定の前記情報処理装置が前記拡張記憶装置に前記書き込み処理を行うときに指定する前記論理アドレスが、前記ミラー更新履歴情報に登録され、かつ、前記ミラー更新履歴情報において前記論理アドレスと関連付けられた前記識別子が、前記特定のアクセス領域を識別可能な識別子と異なる場合は、前記論理アドレスと関連付けられた前記識別子を前記ミラー更新履歴情報から削除し、
前記制御手段は、前記ミラー更新履歴情報に登録された前記論理アドレスが、何れの前記アクセス領域を識別可能な識別子とも関連付けられていない場合は、全ての前記アクセス領域に関して前記物理アドレスに変換したのち、全ての前記物理アドレスを前記拡張記憶装置に入力する、
請求項２に記載の拡張記憶制御装置。
【請求項４】
前記ミラー更新履歴情報を前記論理アドレスごとにエントリに記憶する記憶手段をさらに備え、
前記登録手段は、前記論理アドレスが何れかの前記エントリに登録されているか否かを確認し、前記論理アドレスが前記エントリのうちのいずれにも登録されていない場合は、未使用の前記エントリに前記論理アドレスを登録する、
請求項１乃至３のいずれか１項に記載の拡張記憶制御装置。
【請求項５】
前記記憶手段は、前記登録手段が前記エントリにアクセスする順番を示すエントリ管理情報を記憶し、
前記登録手段は、特定の前記エントリにおいて、前記論理アドレスが一致した、あるいは、前記論理アドレスを新たに登録した場合、前記特定のエントリについて前記順番が先頭になるように前記エントリ管理情報を更新する、
請求項４に記載の拡張記憶制御装置。
【請求項６】
前記記憶手段は、前記エントリごとに、登録された前記論理アドレスに対する、何れかの前記情報処理装置による前記書き込み処理が実行中であることを示す前記エントリ管理情報を記憶し、
前記登録手段は、前記論理アドレスが前記エントリの何れにも登録されておらず、かつ、未使用の前記エントリが存在しない場合は、前記順番が最後である前記エントリについて、前記エントリ管理情報が、前記書き込み処理を実行中である前記情報処理装置が存在しないことを示しているときに、当該エントリに前記論理アドレスを登録する、
請求項５に記載の拡張記憶制御装置。
【請求項７】
前記記憶手段は、前記エントリごとに、登録された前記論理アドレスに対する前記書き込み処理を開始した前記情報処理装置によって加算され、前記書き込み処理を終了した前記情報処理装置によって減算されるカウント値を示す前記エントリ管理情報を記憶する、  請求項６に記載の拡張記憶制御装置。
【請求項８】
請求項１乃至７のいずれか１項に記載の拡張記憶制御装置と、
前記複数の情報処理装置と、
前記拡張記憶装置と、
を備える拡張記憶制御システム。
【請求項９】
第一の情報処理装置によって、
複数の第二の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記第二の情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録し、
前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する、
拡張記憶制御方法。
【請求項１０】
複数の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録する登録機能と、
前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する制御機能と、
をコンピュータに実現させる、拡張記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ミラーリング機能を備えた拡張記憶装置に対するデータの書き込み、及びミラーリングにおける同期処理を制御する拡張記憶制御装置等に関する。
【背景技術】
【０００２】
情報化が高度に発達した現代社会においては、社会基盤を支えるコンピュータシステムに対して、高度な信頼性及び可用性が要求される。コンピュータシステムの信頼性及び可用性を高める技術の一つとして、拡張記憶装置に関するミラーリングが知られている。このミラーリングは、多重化されたストレージに対して、同一のデータを冗長化して格納する技術である。このミラーリングによる信頼性及び可用性を、より確実かつ効率的に実現する技術への期待が高まってきている。
【０００３】
このような技術に関連する技術の一例として、特許文献１には、ＯＳ（Operating System）において動作を継続することが不可能な致命的なエラーが発生した場合、ソフトウェアによって実現するミラーリングであっても、縮退動作することなくミラーリングを継続するシステムが開示されている。
【０００４】
また、特許文献２には、ディスク装置へのデータ書込み処理を複数の群に分割し、書込み処理群毎にディスク装置に関する等価性を保証する方法が開示されている。この方法は、システムダウンが発生したときには処理中であった書込み処理を含む書込み処理群を構成する全書込み処理において処理対象となったデータのみを、特定のディスク装置から他のディスク装置へコピーすることによって、各ディスク装置の内容を一致させる。
【０００５】
また、特許文献３には、記憶装置に関するミラーリング状態を復旧する際に、データをコピーする処理を行っている最中にコピー元である記憶装置においてエラーが発生した場合であっても、コピー先である記憶装置におけるデータを保証し、上位層に対する動作を継続することができる装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2014-081884号公報
【特許文献２】特許第3251182号公報
【特許文献３】特開2010-186285号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、ソフトウェアによるミラーリング機能を実装したシステムは、冗長化されたデータがシステム障害時に不一致となることを回避するために、ストレージにデータを書き込む前に、書き込み先のアドレスに関する履歴（ミラー更新履歴）をストレージに記憶する。そして、このシステムは、障害発生後に再起動する際に、障害発生前にストレージに冗長化して格納されているデータが一致するように、ミラー更新履歴に基づいてミラーリングにおける同期処理を行う。
【０００８】
また、例えば、大規模なコンピュータシステムが多数の仮想マシンを実行する仮想化環境を構築する場合、このシステムは、個々の仮想マシンがファイルシステムとして使用する多数の論理ボリュームを構築する必要がある。このシステムが上述したミラーリング機能を実装する場合、ミラー更新履歴として、書き込み先の物理アドレス、すなわち、書き込み先である論理ボリュームの先頭（オフセット）アドレスと、当該オフセットアドレスを基準とした論理アドレスと、を関連付けた情報をストレージに記憶する。したがってこの場合、ミラー更新履歴を表す情報（ミラー更新履歴情報）の量、及び、ミラー更新履歴情報を更新する頻度は、実行する仮想マシンの数とともに増加する。このため、ミラー更新履歴情報を格納する領域（エントリ数）が十分に確保できないシステムでは、多数の仮想マシンを実行した際に、ミラー更新履歴情報を格納する何れかエントリが空くまでデータを書き込む処理が待たされる状態が頻発することによって、実行性能が低下する問題がある。また、実行性能が低下することを回避するために、ミラー更新履歴情報を格納する大容量のエントリを確保した場合は、システムのコストが増加する問題がある。特許文献１乃至３に記載された技術では、この課題を解決することは困難である。本願発明の主たる目的は、この課題を解決した拡張記憶制御装置等を提供することである。
【課題を解決するための手段】
【０００９】
本願発明の一態様に係る拡張記憶制御装置は、複数の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録する登録手段と、前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する制御手段と、を備える。
【００１０】
上記目的を達成する他の見地において、本願発明の一態様に係る拡張記憶制御方法は、第一の情報処理装置によって、複数の第二の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記第二の情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録し、前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する。
【００１１】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る拡張記憶制御プログラムは、複数の情報処理装置が、ミラーリング機能を有する拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、いずれかの前記情報処理装置が前記拡張記憶装置に書き込み処理を行うときに指定する、前記アクセス領域内のアドレスを表す論理アドレスがミラー更新履歴情報に登録されていない場合に、前記論理アドレスを前記ミラー更新履歴情報に登録する登録機能と、前記ミラー更新履歴情報に登録された前記論理アドレスを、複数の前記アクセス領域に関して前記物理アドレスに変換したのち、前記物理アドレスを前記拡張記憶装置に入力することによって、前記物理アドレスについてのミラーリングにおける同期処理を行うよう前記拡張記憶装置を制御する制御機能と、をコンピュータに実現させる。
【００１２】
更に、本発明は、係る拡張記憶制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１３】
本願発明は、複数の情報処理装置が、ミラーリング機能を備える拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、ミラー更新履歴情報について、格納に必要な領域の量、及び、更新頻度を削減することを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本願発明の第１の実施形態に係る拡張記憶制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るホストサーバ装置のハードウェアの構成を例示する図である。
【図３】本願発明の第１の実施形態に係る拡張記憶装置の構成を例示する図である。
【図４】本願発明の第１の実施形態に係るミラー更新履歴情報の構成を例示する図である。
【図５】本願発明の第１の実施形態に係る拡張記憶制御システムが、データを拡張記憶装置に書き込む動作を示すフローチャートである。
【図６】本願発明の第１の実施形態に係る拡張記憶制御システムが、拡張記憶装置についてミラーリングにおける同期処理を行う動作を示すフローチャートである。
【図７】本願発明の第１の実施形態の変形例に係る拡張記憶制御システムの構成を示すブロック図である。
【図８】本願発明の第１の実施形態の変形例に係るミラー更新履歴情報の構成を例示する図である。
【図９】本願発明の第１の実施形態の変形例に係る拡張記憶制御システムが、データを拡張記憶装置に書き込む動作を示すフローチャートである。
【図１０】本願発明の第１の実施形態の変形例に係る拡張記憶制御システムが、拡張記憶装置についてミラーリングにおける同期処理を行う動作を示すフローチャートである。
【図１１】本願発明の第２の実施形態に係る拡張記憶制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、本願発明の第１の実施形態に係る拡張記憶制御システム１を概念的に示すブロック図である。本実施形態に係る拡張記憶制御システム１は、ホストサーバ装置２、及び、拡張記憶装置３を備えている。
【００１７】
ホストサーバ装置２は、仮想化環境を構築している。ホストサーバ装置２は、拡張記憶制御機能１０、及び、ｎ個（ｎは２以上の任意の整数）のゲストＯＳ２０−１乃至２０−ｎを実行（実現）している。
【００１８】
本実施形態に係るホストサーバ装置２のハードウェアの構成を図２に例示する。以下に説明する実行環境は、本実施形態だけでなく、後述する各実施形態においても採用可能である。
【００１９】
図２に例示する通り、本実施形態に係るホストサーバ装置２は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・外部装置との通信インタフェース９０５、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９、
ホストサーバ装置２は、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。入出力インタフェース９０９は、例えば、キーボード等の入力装置、モニタ等の出力装置を含む。尚、図２は、ホストサーバ装置２がこれらの構成要素を１つずつ備えた例を示しているが、ホストサーバ装置２がこれらの構成要素を複数備える場合もある。
【００２０】
そして、ホストサーバ装置２は、拡張記憶制御機能１０、及び、ゲストＯＳ２０−１乃至２０−ｎをコンピュータプログラムとして提供されたのち、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行する。また、係るコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００２１】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００２２】
図１に示すゲストＯＳ２０−１乃至２０−ｎは、ホストサーバ装置２が実行する仮想マシンの動作を制御するＯＳであり、互いに同等の機能を備えている。ゲストＯＳ２０−１は、ファイルシステム２１−１及びストレージドライバ２２−１を介して、拡張記憶装置３に対するアクセス命令を発行する。ゲストＯＳ２０−１乃至２０−ｎから発行された拡張記憶装置３に対するアクセス命令は、拡張機能制御機能１０によって処理される。
【００２３】
拡張記憶装置３は、ストレージ３０及び３１を備え、ストレージ３０及び３１を１つのグループとした、ソフトウェアによるミラーリング機能を実装している。すなわち、拡張記憶装置３は、ストレージ３０及び３１に冗長化されたデータを格納している。ストレージ３０及び３１は、例えば磁気ディスク装置のような、データを記憶する電子デバイスである。
【００２４】
本実施形態に係る拡張記憶装置３の構成を図３に例示する。図３に例示する通り、ストレージ３０は、拡張記憶装置の固有情報格納領域３００−０、及び、論理ボリューム３００−１乃至３００−ｎを、データを格納する領域として構成している。ストレージ３１も、ストレージ３０と同様に、拡張記憶装置の固有情報格納領域３１０−０、及び、論理ボリューム３１０−１乃至３１０−ｎを、データを格納する領域として構成している。ストレージ３０及び３１におけるこれらの領域は、ホストサーバ装置２によって構築された、物理アドレスが互いに異なる領域である。ここで、物理アドレスは、拡張記憶装置３におけるアクセス場所を特定可能な絶対アドレスである。
【００２５】
図３に例示する論理ボリューム３００−１及び３１０−１は、図１に例示するゲストＯＳ２０−１が拡張記憶として使用する領域である。同様に、図３に例示する論理ボリューム３００−ｎ及び３１０−ｎは、図１に例示するゲストＯＳ２０−ｎが拡張記憶として使用する領域である。すなわち、ゲストＯＳ２０−１乃至２０−ｎは、ストレージ３０及び３１に構築された、各々に固有である論理ボリュームを使用する。そして、ゲストＯＳ２０−ｉ（ｉは１乃至ｎの何れかの整数）は、論理ボリューム３００−ｉ及び３１０−ｉにおける論理アドレスを指定することによって、拡張記憶装置３にアクセスする。ここで、論理アドレスは、論理ボリューム３００−ｉ及び３１０−ｉの先頭（オフセット）のアドレスを基準とした相対アドレスである。
【００２６】
図３に例示する通り、拡張記憶装置の固有情報格納領域３００−０には、アドレス変換テーブル３０１及びミラー更新履歴情報３０２が格納されている。アドレス変換テーブル３０１は、ゲストＯＳ２０−ｉから発行された拡張記憶装置３へのアクセス命令に含まれる論理アドレスを、物理アドレスに変換するためのテーブルである。この場合、物理アドレスは、論理ボリューム３００−ｉのオフセットのアドレスに論理アドレスを加えた値となる。ミラー更新履歴情報３０２は、ゲストＯＳ２０−１乃至２０−ｎが拡張記憶装置３に対して書き込みを行った論理アドレスが登録された情報である。
【００２７】
図３に例示する通り、拡張記憶装置の固有情報格納領域３１０−０には、アドレス変換テーブル３１１が格納されている。アドレス変換テーブル３１１は、アドレス変換テーブル３０１と同様に、ゲストＯＳ２０−ｉから発行された拡張記憶装置３へのアクセス命令に含まれる論理アドレスを、物理アドレスに変換するためのテーブルである。この場合、物理アドレスは、論理ボリューム３１０−ｉのオフセットのアドレスに論理アドレスを加えた値となる。尚、ミラー更新履歴情報は、ストレージ３０及び３１について共通であるので、拡張記憶装置の固有情報格納領域３１０−０には格納されていない。
【００２８】
図１に示す拡張記憶制御機能１０は、登録機能１１、制御機能１２、及び、記憶機能１３を含んでいる。登録機能１１は、ゲストＯＳ２０−ｉから拡張記憶装置３に対する書き込み命令を入力されたときに、当該命令が含む論理アドレスを、ミラー更新履歴情報１３０に登録する。ミラー更新履歴情報１３０は、記憶機能１３によって、ホストサーバ装置２が備えるメモリに格納されている。
【００２９】
本実施形態に係るミラー更新履歴情報１３０の構成を、図４に例示する。図４に例示する通り、ミラー更新履歴情報１３０は、ｍ個（ｍは１以上の任意の整数）のエントリ１３１−１乃至１３１−ｍ、及び、エントリ管理情報１３２を含んでいる。エントリ管理情報１３２は、先頭ポインタ１３２−０、及び、エントリ毎のエントリ管理情報１３２−１乃至１３２−ｍを含んでいる。エントリ毎のエントリ管理情報１３２−１乃至１３２−ｍは、順に、エントリ１３１−１乃至１３１−ｍ（以降、本実施形態の説明において、順に、エントリ１乃至ｍと略記する）の状態を管理する情報である。
【００３０】
図４に例示するエントリｊ管理情報１３２−ｊ（ｊは１乃至ｍの何れかの整数）は、ゲストＯＳ使用数カウント値１３２０−ｊ、次のエントリのポインタ１３２１−ｊ、及び、エントリｊのポインタ１３２２−ｊを含んでいる。ゲストＯＳ使用数カウント値１３２０−ｊは、エントリｊに格納された論理アドレスに対して、データを書き込む処理を行っているゲストＯＳの数を表す。ゲストＯＳ使用数カウント値１３２０−ｊは、ゲストＯＳ２０−ｉがエントリｊに登録された論理アドレスに対する書き込み処理を開始したときに、記憶機能１３によって「１」加算され、ゲストＯＳ２０−ｉが当該書き込み処理を終了したときに、記憶機能１３によって「１」減算される。
【００３１】
次のエントリのポインタ１３２１−ｊは、登録機能１１がエントリ１乃至ｍを参照する際に、エントリｊの次に参照するエントリに関するエントリ管理情報を示すポインタの値である。エントリｊのポインタ１３２２−ｊは、エントリｊを示すポインタの値である。先頭ポインタ１３２−０には、登録機能１１が最初に参照するエントリｊに関するエントリ管理情報１３２−ｊを示すポインタの値が格納されている。登録機能１１は、エントリ１乃至ｍを参照する際に、先頭ポインタ１３２−０がポインタの値を示すエントリ管理情報１３２−ｊを最初に参照したのち、エントリ管理情報１３２―ｊにおける、エントリｊのポインタ１３２２−ｊがポインタの値を示すエントリｊを参照する。登録機能１１は、次に、エントリ管理情報１３２−ｊにおける次のエントリのポインタ１３２１−ｊがポインタの値を示すエントリ管理情報を参照する。すなわち、登録機能１１は、先頭ポインタ１３２−０、及び、次のエントリのポインタ１３２１−１乃至１３２１−ｍが連結リスト形式によって示す順番にしたがって、エントリ１乃至ｍを順番に参照する。
【００３２】
図４に例示するエントリ１乃至ｍには、登録機能１１によって、ゲストＯＳ２０−ｉから発行された拡張記憶装置３に対する書き込み命令が含む論理アドレスが登録される。登録機能１１は、書き込み命令が含む論理アドレスをエントリ１乃至ｍと照合することによって、当該論理アドレスが既にエントリ１乃至ｍのいずれかに登録されているか否かを確認する。登録機能１１は、当該論理アドレスが既に何れかのエントリに登録済である場合は、当該論理アドレスをエントリに登録する処理を行わない。
【００３３】
登録機能１１は、当該論理アドレスがエントリ１乃至ｍのいずれにも登録されておらず、かつ、エントリ１乃至ｍの少なくとも何れかが未使用であるエントリである場合、未使用であるエントリｋ（ｋは１乃至ｍの何れかの整数）に当該論理アドレスを登録する。登録機能１１は、この際、先頭ポインタ１３２−０を、エントリｋ管理情報１３２−ｋを示すポインタの値に更新する。登録機能１１は、エントリｋ管理情報１３２−ｋにおける次のエントリのポインタ１３２１−ｋの値を、先頭ポインタ１３２−０を更新する前の値に更新する。すなわち、登録機能１１は、エントリｋが連結リスト形式によって示す順番において先頭となるように、先頭ポインタ１３２−０及び次のエントリのポインタ１３２１−１乃至１３２１−ｍの値を更新する。
【００３４】
登録機能１１は、当該論理アドレスがエントリ１乃至ｍのいずれにも登録されておらず、かつ、未使用であるエントリが存在しない場合、上述した連結リスト形式によって示す順番が最後であるエントリｌ（ｌは１乃至ｍの何れかの整数）に関するゲストＯＳ使用数カウント値１３２０−ｌを参照する。登録機能１１は、ゲストＯＳ使用数カウント値１３２０−ｌが「０」でない場合、所定の時間が経過するまで待機する。登録機能１１は、ゲストＯＳ使用数カウント値１３２０−ｌが「０」である場合、エントリｌに当該論理アドレスを登録する。登録機能１１は、この際、エントリｌが連結リスト形式によって示す順番において先頭となるように、先頭ポインタ１３２−０及び次のエントリのポインタ１３２１−１乃至１３２１−ｍの値を更新する。
【００３５】
登録機能１１は、ミラー更新履歴情報１３０を更新した場合、その更新内容を、ストレージ３０に格納されたミラー更新履歴情報３０２に反映する。
【００３６】
拡張記憶制御機能１０は、ゲストＯＳ２０−ｉから発行された拡張記憶装置３へのアクセス命令について、ミラー更新履歴情報１３０を更新した後、ストレージドライバ１００を介して、当該アクセス命令を実行し、ストレージ３０及び３１に、当該アクセス命令が指定するデータを書き込む。
【００３７】
制御機能１２は、ホストサーバ装置２が障害等を原因として正常に停止しなかったのちに再起動する際に、拡張記憶装置３によるミラーリングにおける同期処理を制御する。制御機能１２は、ストレージ３０及び３１から、アドレス変換テーブル３０１及び３１１、及び、ミラー更新履歴情報３０２を読み込む。制御機能１２は、読み込んだアドレス変換テーブル３０１及び３１１に基づき、アドレス変換テーブル１２０を生成し、生成したアドレス変換テーブル１２０をホストサーバ装置２が備えるメモリに格納する。制御機能１２は、読み込んだミラー更新履歴情報３０２に基づき、ミラー更新履歴情報１３０を生成し、生成したミラー更新履歴情報１３０をホストサーバ装置２が備えるメモリに格納する。
【００３８】
制御機能１２は、ミラー更新履歴情報１３０におけるエントリｊ（ｊは１乃至ｍの何れかの整数）に登録されている論理アドレスを、論理ボリューム３００−ｉ及び３１０−ｉ（ｉは１乃至ｎの何れかの整数）について、アドレス変換テーブル１２０を使用することによって物理アドレスに変換する。制御機能１２は、当該物理アドレスを拡張記憶装置３に入力する。拡張記憶装置３は、ストレージ３０及び３１の間で、制御機能１２によって入力された当該物理アドレスに格納されているデータを一致させる処理を行う。制御機能１２及び拡張記憶装置３は、ｉの値を１乃至ｎに変化させることによって、全ての論理ボリュームについて、上述した処理を繰り返し行う。制御機能１２は全ての論理ボリュームについて上述した処理を完了したのち、エントリｊを初期化する。尚、制御機能１２は、拡張記憶制御システム１を管理するシステム管理者等が指示した特定のｉの値について、上述した処理を行ってもよい。
【００３９】
制御機能１２及び拡張記憶装置３は、ｊの値を１乃至ｍに変化させることによって、全てのエントリについて、上述した処理を繰り返し行う。これにより、制御機能１２及び拡張記憶装置３は、ミラーリングにおける同期処理を完了する。
【００４０】
次に図５のフローチャートを参照して、本実施形態に係る拡張記憶制御システム１がデータを拡張記憶装置３に書き込む動作（処理）について詳細に説明する。
【００４１】
拡張機能制御機能１０は、ゲストＯＳ２０−ｉから、拡張記憶装置３に対するデータ書き込み要求を受け付ける（ステップＳ１０１）。登録機能１１は、ミラー更新履歴情報１３０を参照し、当該書き込み要求が指定する書き込みアドレスが、エントリ１乃至ｍの何れかに登録されているか確認する（ステップＳ１０２）。
【００４２】
当該書き込みアドレスが何れかのエントリに登録されている場合（ステップＳ１０３でＹｅｓ）、登録機能１１は、当該エントリに関するゲストＯＳ使用数カウント値を、「１」加算する（ステップＳ１０４）。登録機能１１は、当該エントリへのアクセス順番が先頭になるように、エントリ管理情報１３２を更新する（ステップＳ１０５）。拡張機能制御機能１０は、指定された書き込みアドレスに基づき、ストレージ３０及び３１に対してデータを書き込む（ステップＳ１０６）。登録機能１１は、当該エントリに関するゲストＯＳ使用数カウント値を、「１」減算する（ステップＳ１０７）。拡張機能制御機能１０は、ゲストＯＳ２０−ｉに、データ書き込み完了を通知し（ステップＳ１０８）、全体の処理は終了する。
【００４３】
当該書き込みアドレスが何れかのエントリに登録されていない場合（ステップＳ１０３でＮｏ）、処理はステップＳ１０９へ進む。未使用のエントリが存在する場合（ステップＳ１０９でＹｅｓ）、登録機能１１は、未使用エントリに、書き込みアドレス（論理アドレス）を登録する（ステップＳ１１０）。登録機能１１は、ミラー更新履歴情報１３０を更新した内容を、ミラー更新履歴情報３０２に反映し（ステップＳ１１１）、処理はステップＳ１０４に進む。
【００４４】
未使用のエントリが存在しない場合（ステップＳ１０９でＮｏ）、登録機能１１は、アクセス順番が最後であるエントリに関するゲストＯＳ使用数カウント値を確認する（ステップＳ１１２）。ゲストＯＳ使用数カウント値が「０」でない場合（ステップＳ１０９でＮｏ）、登録機能１１は、所定の時間が経過するまで待機する。ゲストＯＳ使用数カウント値が「０」である場合（ステップＳ１０９でＹｅｓ）、登録機能１１は、アクセス順番が最後であるエントリに、書き込みアドレス（論理アドレス）を登録し（ステップＳ１１４）、処理はステップＳ１１１に進む。
【００４５】
次に図６のフローチャートを参照して、本実施形態に係る拡張記憶制御システム１が拡張記憶装置３についてミラーリングにおける同期処理を行う動作（処理）について詳細に説明する。
【００４６】
制御機能１２は、ストレージ３０及び３１から、アドレス変換テーブル３０１及び３１１、及び、ミラー更新履歴情報３０２を読み込む（ステップＳ２０１）。制御機能１２は、読み込んだアドレス変換テーブル３０１及び３１１に基づき、アドレス変換テーブル１２０を生成して、ホストサーバ装置２が備えるメモリに格納する（ステップＳ２０２）。制御機能１２は、読み込んだミラー更新履歴情報３０２に基づき、ミラー更新履歴情報１３０を生成して、ホストサーバ装置２が備えるメモリに格納する（ステップＳ２０３）。
【００４７】
同期処理が行われていないエントリｊが存在しない場合（ステップＳ２０４でＮｏ）、全体の処理は終了する。同期処理が行われていないエントリｊが存在する場合（ステップＳ２０４でＹｅｓ）、処理はステップＳ２０５へ進む。同期処理が完了していない論理ボリュームが存在しない場合（ステップＳ２０５でＮｏ）、制御機能１２はエントリｊを初期化して（ステップＳ２０８）、処理はステップＳ２０４へ戻る。
【００４８】
同期処理が完了していない論理ボリュームが存在する場合（ステップＳ２０５でＹｅｓ）、制御機能１２は、ミラー更新履歴情報１３０におけるエントリｊに登録されている論理アドレスを、論理ボリューム３００−ｉ及び３１０−ｉについて、物理アドレスに変換する（ステップＳ２０６）。拡張記憶装置３は、ストレージ３０及び３１の間で、当該物理アドレスに格納されたデータを一致させ（ステップＳ２０７）、処理はステップＳ２０５へ戻る。
【００４９】
本実施形態に係る拡張記憶制御システム１は、複数の情報処理装置が、ミラーリング機能を備える拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、ミラー更新履歴情報について、格納に必要な領域の量、及び、更新頻度を削減することができる。その理由は、登録機能１１が、ゲストＯＳ２０−ｉから拡張記憶装置３への書き込み要求が指定する論理アドレスをミラー更新履歴情報１３０に登録し、制御機能１２が、ミラー更新履歴情報１３０に登録されている論理アドレスを、全ての論理ボリュームについて物理アドレスに変換したのち、当該物理アドレスについてミラーリングにおける同期処理を行うように拡張記憶装置３を制御するからである。
【００５０】
例えば、大規模なコンピュータシステムが多数の仮想マシンを実行する仮想化環境を構築する場合、このシステムは、個々の仮想マシンがファイルシステムとして使用する多数の論理ボリュームを構築する必要がある。このシステムがミラーリング機能を実装する場合、ミラー更新履歴情報は、通常は、書き込み先の物理アドレス、すなわち、書き込み先である論理ボリュームのオフセットアドレス、及び、当該オフセットアドレスを基準とした論理アドレスを関連付けた情報である。したがってこの場合、ミラー更新履歴情報の量、及び、ミラー更新履歴情報を更新する頻度は実行される仮想マシンの数とともに増加する。このため、ミラー更新履歴情報を格納する領域（エントリ数）が十分に確保できないシステムでは、多数の仮想マシンを実行した際に、ミラー更新履歴情報を格納する何れかエントリが空くまでデータを書き込む処理が待たされる状態が頻発することによって、実行性能が低下する問題がある。また、実行性能が低下することを回避するために、ミラー更新履歴情報を格納する大容量のエントリを確保した場合は、システムのコストが増加する問題がある。
【００５１】
本実施形態に係る拡張記憶制御システム１によれば、登録機能１１がミラー更新履歴情報１３０のエントリに登録するのは、物理アドレスではなく、論理アドレスである。本実施形態のようにｎ個のゲストＯＳが稼働しているシステムでは、ｎ個のゲストＯＳが拡張記憶として使用する領域である物理アドレス空間は互いに異なる。この場合、システムにおいて、１個の論理アドレスに対応する物理アドレスはｎ個である。すなわち、本実施形態に係る拡張記憶制御システム１では、物理アドレスをミラー更新履歴情報として登録する場合と比較して、必要となるエントリ数がｎ分の１となる。そして、制御機能１２は、論理アドレスをｎ個の物理アドレスに変換したのち、拡張記憶装置３が当該物理アドレスについてミラーリングにおける同期処理を行うように制御する。これにより、本実施形態に係る拡張記憶制御システム１は、ミラー更新履歴情報を格納する領域の量を削減することができる。
【００５２】
本実施形態に係る拡張記憶制御システム１は、論理アドレスが等しいｎ個の物理アドレスに対する更新を１つのエントリによりまとめて管理する。すなわち、本実施形態に係るミラー更新履歴情報１３０は、論理アドレスが等しいｎ個の物理アドレスのうちの１つでも更新が行われた場合は、ｎ個の物理アドレスについて更新が行われた可能性があることを示している。一般的に、ゲストＯＳ２０−１乃至２０−ｎが備える機能は同等であり、ゲストＯＳ２０−１乃至２０−ｎは、同一のレイアウト（イメージ）を備えている。この場合、ゲストＯＳ２０−１乃至２０−ｎがアクセスする例えばメタデータのようなデータは、データの内容ごとに、それぞれ、同じ論理アドレスに配置されるので、ゲストＯＳ２０−１乃至２０−ｎは、同じ論理アドレスにアクセスする傾向がある。本実施形態に係る登録機能１１が、論理アドレスが等しいｎ個の物理アドレスに対してそれぞれ更新が発生した場合に行う処理は、当該論理アドレスをミラー更新履歴情報１３０に１回登録するのみである。したがって、本実施形態に係る拡張記憶制御システム１は、ミラー更新履歴情報を更新する頻度を削減することができる。
【００５３】
また、本実施形態に係るミラー更新履歴情報１３０は、登録機能１１がエントリ１乃至ｍに対してアクセスする順番を示すエントリ管理情報１３２を含んでいる。登録機能１１は何れかのエントリに登録された論理アドレスに対する書き込み処理が行われた場合に、当該エントリの順番が先頭になるようにエントリ管理情報１３２を更新する。登録機能１１は、新たに論理アドレスを何れかのエントリに登録する際に、未使用のエントリが存在しない場合は、アクセスする順番が最後であるエントリに論理アドレスを登録する。この場合、アクセスする順番が最後であるエントリは、全てのエントリのうちで、最も長い時間にわたって、情報が更新されていないエントリである。すなわち、本実施形態に係る拡張記憶制御システム１は、未使用のエントリが存在しない場合に、システムに及ぼす影響が最小限になるように、ミラー更新履歴情報１３０を更新できる。
【００５４】
また、本実施形態に係るミラー更新履歴情報１３０は、エントリに登録された論理アドレスへの書き込み処理を実行中であるゲストＯＳの数を示すゲストＯＳ使用数カウント値を含んでいる。登録機能１１は、上述したアクセスする順番が最後であるエントリに対する論理アドレスの登録を、当該エントリに関するゲストＯＳ使用数カウント値が「０」であるときに行う。これにより、本実施形態に係る拡張記憶制御システム１は、未使用のエントリが存在しない場合に、システムに及ぼす影響が最小限になるようにミラー更新履歴情報１３０を更新することを、より確実に行うことができる。
【００５５】
なお、本実施形態に係る拡張記憶制御システム１は、仮想化環境を構築することによって、複数のゲストＯＳ２０−１乃至２０−ｎと拡張記憶制御機能１０とを実行するホストサーバ装置２を備えた構成に限定されない。本実施形態に係る拡張記憶制御システム１は、例えば、複数の同等の機能を有する実マシンと拡張記憶制御装置とを備えたシステムであってもよい。この場合、複数の実マシン、及び、拡張記憶制御装置は、通信可能に接続され、複数の実マシンは、拡張記憶制御装置を介して拡張記憶装置３へのアクセスを行う
＜第１の実施形態の変形例＞
図７は、本願発明の第１の実施形態の変形例に係る拡張記憶制御システム４を概念的に示すブロック図である。以下の説明では、第１の実施形態と同様に動作する構成については、第１の実施形態と同じ番号を付与することにより、説明を省略する。
【００５６】
本変形例に係る拡張記憶制御システム４は、ホストサーバ装置５、及び、拡張記憶装置３を備えている。
【００５７】
ホストサーバ装置５は、第１の実施形態に係るホストサーバ装置２と同様に、仮想化環境を構築している。ホストサーバ装置５は、拡張記憶制御機能５０、及び、ｎ個（ｎは２以上の任意の整数）のゲストＯＳ２０−１乃至２０−ｎを実行（実現）している。
【００５８】
図７に示す拡張記憶制御機能５０は、登録機能５１、制御機能５２、及び、記憶機能５３を含んでいる。登録機能５１は、ゲストＯＳ２０−ｉから拡張記憶装置３に対する書き込み命令を入力されたときに、当該命令が含む論理アドレス、及び、ゲストＯＳ２０−ｉが拡張記憶装置３に対してアクセスする領域である論理ボリューム３００−ｉを識別可能な識別子を関連付けて、ミラー更新履歴情報５３０に登録する。ミラー更新履歴情報５３０は、記憶機能５３によって、ホストサーバ装置５が備えるメモリに格納されている。
【００５９】
本変形例に係るミラー更新履歴情報５３０の構成を、図８に例示する。図８に例示する通り、ミラー更新履歴情報５３０は、ｍ個（ｍは１以上の任意の整数）のエントリ５３１−１乃至５３１−ｍ（以降、本変形例の説明において、順に、エントリ１乃至ｍと略記する）、及び、エントリ管理情報１３２を含んでいる。
【００６０】
エントリ１乃至ｍには、登録機能５１によって、ゲストＯＳ２０−ｉから発行された拡張記憶装置３に対する書き込み命令が含む論理アドレス、及び、ゲストＯＳ２０−ｉが拡張記憶装置３に対してアクセスする領域である論理ボリューム３００−ｉを識別可能な識別子が関連付けられて登録される。登録機能５１は、書き込み命令が含む論理アドレスをエントリ１乃至ｍと照合することによって、当該論理アドレスが既にエントリ１乃至ｍのいずれかに登録されているか否かを確認する。登録機能５１は、当該論理アドレスが既に何れかのエントリに登録済であり、かつ、当該エントリに登録されている論理ボリュームが、当該書き込み命令がアクセスする論理ボリュームと異なる場合は、当該エントリに登録されている論理ボリュームを識別可能な識別子を削除する。登録機能５１は、当該論理アドレスが既に何れかのエントリに登録済であり、かつ、当該エントリに登録されている論理ボリュームが、当該書き込み命令がアクセスする論理ボリュームと等しい場合は、当該エントリを更新しない。
【００６１】
登録機能５１は、当該論理アドレスがエントリ１乃至ｍのいずれにも登録されておらず、かつ、エントリ１乃至ｍの少なくとも何れかが未使用であるエントリである場合、未使用であるエントリｋ（ｋは１乃至ｍの何れかの整数）に当該論理アドレス、及び、アクセス先である論理ボリュームを識別可能な識別子を登録する。登録機能５１は、この際、第１の実施形態に係る登録機能１１と同様に、エントリ管理情報１３２を更新する。
【００６２】
登録機能５１は、当該論理アドレスがエントリ１乃至ｍのいずれにも登録されておらず、かつ、未使用であるエントリが存在しない場合、連結リスト形式によって示す順番が最後であるエントリｌ（ｌは１乃至ｍの何れかの整数）に、当該論理アドレス、及び、アクセス先である論理ボリュームを識別可能な識別子を、第１の実施形態に係る登録機能１１と同様に登録する。
【００６３】
制御機能５２は、第１の実施形態に係る制御機能１２と同様に、ホストサーバ装置５が障害等を原因として正常に停止しなかったのちに再起動する際に、拡張記憶装置３によるミラーリングにおける同期処理を制御する。制御機能５２は、第１の実施形態に係る制御機能１２と同様に、ミラー更新履歴情報５３０を生成し、生成したミラー更新履歴情報５３０をホストサーバ装置５が備えるメモリに格納する。
【００６４】
制御機能５２は、ミラー更新履歴情報５３０におけるエントリｊ（ｊは１乃至ｍの何れかの整数）に登録されている論理アドレスを、アドレス変換テーブル１２０を使用することによって物理アドレスに変換する。制御機能５２は、エントリｊに何れかの論理ボリュームを識別可能な識別子が登録されている場合は、その論理ボリュームについてのみ、論理アドレスを物理アドレスに変換する。制御機能５２は、当該物理アドレスを拡張記憶装置３に入力する。拡張記憶装置３は、ストレージ３０及び３１の間で、制御機能５２によって入力された当該物理アドレスに格納されているデータを一致させる処理を行う。
【００６５】
論理ボリュームを識別可能な識別子が登録されていないエントリｊについて、制御機能５２が行う処理は、第１の実施形態に係る制御機能１２が行う処理と同様である。
【００６６】
次に図９のフローチャートを参照して、本変形例に係る拡張記憶制御システム４がデータを拡張記憶装置３に書き込む動作（処理）について詳細に説明する。ここでは、本変形例に係る拡張記憶制御システム４と、第１の実施形態に係る拡張記憶制御システム１との間で動作フローが異なる部分について、図５に示すフローチャートからの差分を示すことにより説明する。尚、図５に示すフローチャートを使用する部分については、第１の実施形態における図５に示すフローチャートの説明において、本変形例とは異なる番号が付与された構成を、本変形例における構成に読み替えるものとする。
【００６７】
図５に示すステップＳ１０５が終了したのち、登録機能５１は、当該エントリに格納された論理ボリュームを識別可能な識別子が、「論理ボリューム３００−ｉ」であるか否かを確認する（ステップＳ３０１）。当該エントリに格納された論理ボリュームを識別可能な識別子が「論理ボリューム３００−ｉ」である場合（ステップＳ３０２でＹｅｓ）、処理は図５に示すステップＳ１０５へ進む。当該エントリに格納された論理ボリュームを識別可能な識別子が「論理ボリューム３００−ｉ」でない場合（ステップＳ３０２でＮｏ）、登録機能５１は、当該エントリに格納された論理ボリュームを識別可能な識別子を削除し（ステップＳ３０３）、処理は図５に示すステップＳ１０５へ進む。
【００６８】
図５に示すステップＳ１１０が終了したのち、登録機能５１は、当該未使用エントリに、「論理ボリューム３００−ｉ」を登録し（ステップＳ３０４）、処理は、図５に示すステップＳ１１１へ進む。
【００６９】
次に図１０のフローチャートを参照して、本実施形態に係る拡張記憶制御システム４が拡張記憶装置３についてミラーリングにおける同期処理を行う動作（処理）について詳細に説明する。ここでは、本変形例に係る拡張記憶制御システム４と、第１の実施形態に係る拡張記憶制御システム１との間で動作フローが異なる部分について、図６に示すフローチャートからの差分を示すことにより説明する。尚、図６に示すフローチャートを使用する部分については、第１の実施形態における図６に示すフローチャートの説明において、本変形例とは異なる番号が付与された構成を、本変形例における構成に読み替えるものとする。
【００７０】
図６に示すステップＳ２０４でＹｅｓの場合、処理はステップＳ４０１へ進む。エントリｊに論理ボリューム識別可能な識別子が登録されていない場合（ステップＳ４０１でＮｏ）、処理は図６に示すステップＳ２０５へ進む。エントリｊに論理ボリューム識別可能な識別子が登録されている場合（ステップＳ４０１でＹｅｓ）、制御機能５２は、ミラー更新履歴情報５３０におけるエントリｊに登録されている論理アドレスを、登録されている論理ボリュームについて、物理アドレスに変換する（ステップＳ４０２）。拡張記憶装置３は、ストレージ３０及び３１の間で、当該物理アドレスに格納されたデータを一致させ（ステップＳ４０３）、処理は図６に示すステップＳ２０８へ進む。
【００７１】
本変形例に係る拡張記憶制御システム４は、複数の情報処理装置が、ミラーリング機能を備える拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、ミラー更新履歴情報について、格納に必要な領域の量、及び、更新頻度を削減することができる。その理由は、登録機能５１が、ゲストＯＳ２０−ｉから拡張記憶装置３への書き込み要求が指定する論理アドレス及び論理ボリュームをミラー更新履歴情報５３０に登録し、制御機能５２が、ミラー更新履歴情報５３０に登録されている論理アドレスを、登録されている論理アドレスごとに、全てあるいは何れかの論理ボリュームについて物理アドレスに変換したのち、当該物理アドレスについてミラーリングにおける同期処理を行うように拡張記憶装置３を制御するからである。
【００７２】
複数のゲストＯＳが、それぞれ個別の情報処理を行った結果として拡張記憶装置へ書き込み処理を行う場合、同一の論理アドレスに対して、書き込み処理を行ったゲストＯＳと書き込み処理を行っていないゲストＯＳとが混在することがある。したがって、第１の実施形態に係る拡張記憶制御システム１の様に、ミラー更新履歴情報に論理アドレスを登録する場合、当該論理アドレスから変換される複数の物理アドレスの中には、書き込み処理が行われていない物理アドレスが存在することがある。これにより、第１の実施形態に係る拡張記憶制御システム１は、本来ミラーリングにおける同期処理を行う必要が無い、書き込み処理が行われていない物理アドレスについても、この同期処理を行う場合がある。
【００７３】
本変形例に係る登録機能５１は、ミラー更新履歴情報５３０におけるエントリ１乃至ｍに、ゲストＯＳ２０−ｉから拡張記憶装置３への書き込み要求が指定する論理アドレスに加えて、論理ボリュームを識別可能な識別子を登録する。登録機能５１は、エントリに論理ボリュームを識別可能な識別子とともに登録されている論理アドレスに対して、当該論理ボリュームとは異なる論理ボリュームへの書き込み処理が発生した場合は、当該エントリに登録されている、論理ボリュームを識別可能な識別子を削除する。すなわち、本変形例に係る拡張記憶制御システム４は、特定の論理アドレスに対して、１つのゲストＯＳから書き込み処理が行われる場合は、アクセス先である論理ボリュームを識別可能な識別子を論理アドレスとともにエントリに登録し、２つ以上のゲストＯＳから書き込み処理が行われる場合は、論理アドレスのみをエントリに登録する。
【００７４】
本実施形態に係る制御機能５２は、エントリに論理アドレスとともに論理ボリュームを識別可能な識別子が登録されている場合は、当該論理ボリュームに関して論理アドレスを物理アドレスに変換し、この物理アドレスについてミラーリングにおける同期処理を行うように拡張記憶装置３を制御する。制御機能５２は、エントリに論理アドレスのみが登録されている場合は、第１の実施形態に係る制御機能１２と同様に拡張記憶装置３を制御する。これにより本実施形態に係る拡張記憶制御システム４は、ミラー更新履歴情報について、格納に必要な領域の量、及び、更新頻度を削減するとともに、ミラーリングにおける同期処理を必要以上に行うことを回避できる。
【００７５】
＜第２の実施形態＞
図１１は、第２の実施形態に係る拡張記憶制御装置６０の構成を概念的に示すブロック図である。
【００７６】
本実施形態に係る情報処理装置７０−１乃至７０−ｎ（ｎは２以上の任意の整数）は、ミラーリング機能を有する拡張記憶装置８における物理アドレスが各々異なるアクセス領域を使用する。
【００７７】
本実施形態に係る拡張記憶制御装置６０は、登録部６１、及び、制御部６２を備えている。
【００７８】
登録部６１は、いずれかの情報処理装置７０−ｉ（ｉは１乃至ｎの何れかの整数）が拡張記憶装置８に書き込み処理を行うときに指定する論理アドレスがミラー更新履歴情報６３０に登録されていない場合に、当該論理アドレスを前記ミラー更新履歴情報に登録する。ここで、論理アドレスは、上述したアクセス領域内のアドレスである。
【００７９】
制御部６２は、ミラー更新履歴情報６３０に登録された論理アドレスを、複数のアクセス領域に関して物理アドレスに変換したのち、当該物理アドレスを拡張記憶装置８に入力する。制御部６２は、当該物理アドレスについてのミラーリングにおける同期処理を行うよう拡張記憶装置８を制御する。
【００８０】
本実施形態に係る拡張記憶制御装置６０は、複数の情報処理装置が、ミラーリング機能を備える拡張記憶装置における物理アドレスが各々異なるアクセス領域を使用する場合において、ミラー更新履歴情報について、格納に必要な領域の量、及び、更新頻度を削減することができる。その理由は、登録部６１が、情報処理装置７０−ｉから拡張記憶装置８への書き込み要求が指定する論理アドレスをミラー更新履歴情報６３０に登録し、制御部６２が、ミラー更新履歴情報６３０に登録されている論理アドレスを、全てのアクセス領域について物理アドレスに変換したのち、当該物理アドレスについてミラーリングにおける同期処理を行うように拡張記憶装置８を制御するからである。
【００８１】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００８２】
１    拡張記憶制御システム
２    ホストサーバ装置
１０    拡張記憶制御機能
１００    ストレージドライバ
１１    登録機能
１２    制御機能
１２０    アドレス変換テーブル
１３    記憶機能
１３０    ミラー更新履歴情報
１３１−１乃至１３１−ｍ    エントリ
１３２    エントリ管理情報
１３２−０    先頭ポインタ
１３２−１乃至１３２−ｍ    エントリ毎のエントリ管理情報
１３２０−ｊ    ゲストＯＳ使用数カウント値
１３２１−ｊ    次のエントリのポインタ
１３２２−ｊ    エントリｊのポインタ
２０−１乃至２０−ｎ    ゲストＯＳ
２１−１    ファイルシステム
２２−１    ストレージドライバ
３    拡張記憶装置
３０及び３１    ストレージ
３００−０    拡張記憶装置の固有情報格納領域
３００−１乃至３００−ｎ    論理ボリューム
３０１    アドレス変換テーブル
３０２    ミラー更新履歴情報
３１０−０    拡張記憶装置の固有情報格納領域
３１０−１乃至３１０−ｎ    論理ボリューム
３１１    アドレス変換テーブル
５    ホストサーバ装置
５０    拡張記憶制御機能
５１    登録機能
５２    制御機能
５３    記憶機能
５３０    ミラー更新履歴情報
５３１−１乃至５３１−ｍ    エントリ
６０    拡張記憶制御装置
６１    登録部
６２    制御部
６３０    ミラー更新履歴情報
７０−１乃至７０−ｎ    情報処理装置
８    拡張記憶装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
0006492863.tif 000002
【図２】
0006492863.tif 000003
【図３】
0006492863.tif 000004
【図４】
0006492863.tif 000005
【図５】
0006492863.tif 000006
【図６】
0006492863.tif 000007
【図７】
0006492863.tif 000008
【図８】
0006492863.tif 000009
【図９】
0006492863.tif 000010
【図１０】
0006492863.tif 000011
【図１１】
0006492863.tif 000012