JP2015170271A - Storage area management apparatus, storage area management method, and storage area management program - Google Patents
Storage area management apparatus, storage area management method, and storage area management program Download PDFInfo
- Publication number
- JP2015170271A JP2015170271A JP2014046450A JP2014046450A JP2015170271A JP 2015170271 A JP2015170271 A JP 2015170271A JP 2014046450 A JP2014046450 A JP 2014046450A JP 2014046450 A JP2014046450 A JP 2014046450A JP 2015170271 A JP2015170271 A JP 2015170271A
- Authority
- JP
- Japan
- Prior art keywords
- area
- swap
- storage area
- release
- storage
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、記憶領域の割り当てを管理する技術に関する。 The present invention relates to a technique for managing allocation of storage areas.
特許文献1には、仮想マシンが稼働する仮想サーバが記載されている。仮想マシンには、ストレージ上にある専用のスワップディスクが割り当てられている。特許文献1の仮想サーバは、スワップディスクに対するI/O(Input/Output)をキャッシュするスワップドライブ用メモリを備える。
特許文献2には、スワップ領域が不足した場合にスワップファイルを作成し、作成したスワップファイルをスワップ領域に追加し、スワップ領域が余った場合には追加したスワップファイルを削除する計算機が記載されている。
特許文献3には、アプリケーションプログラムの起動時に、アプリケーションプログラムの起動に必要なメモリ容量が実装メモリ容量より小さい場合、必要なサイズのスワップ領域を磁気ディスク装置の空き領域に割り当てる情報処理装置が記載されている。特許文献3の情報処理装置は、アプリケーションプログラムの終了時に、割り当てたスワップ領域を解放する。
仮想ディスクに使用する記憶領域を削減する方法として、シンプロビジョニングと呼ばれる方法がある。シンプロビジョニングでは、仮想ディスクを提供するストレージシステムは、初期状態において、例えば仮想ディスクとして設定されている記憶領域全体ではなく仮想ディスクの一部の領域にのみ記憶領域を割り当てる。そして、ストレージシステムは、仮想ディスクの使用量に応じて、その仮想ディスクに割り当てられる記憶領域を追加する。例えば、仮想ディスクに対して書き込みが行われると、ストレージシステムは、仮想ディスクの書き込みが行われた部分に新たに記憶領域を割り当てる。そして、ストレージシステムは、その割り当てられた記憶領域に書き込まれたデータを格納する。情報処理装置は、シンプロビジョニングに基づき構築された仮想ディスクに対して、シンプロビジョニングによらないディスクに対してアクセスする場合と同様にアクセスする。以下の説明において、シンプロビジョニングによって構築された仮想ディスクを、シン形式の仮想ディスク、あるいは、単に、シンディスクと表記することにする。 As a method of reducing the storage area used for the virtual disk, there is a method called thin provisioning. In thin provisioning, a storage system that provides a virtual disk allocates a storage area only to a partial area of the virtual disk in an initial state, for example, not the entire storage area set as the virtual disk. Then, the storage system adds a storage area allocated to the virtual disk according to the usage amount of the virtual disk. For example, when writing is performed on the virtual disk, the storage system newly allocates a storage area to the portion where the virtual disk is written. Then, the storage system stores the data written in the allocated storage area. The information processing apparatus accesses a virtual disk constructed based on thin provisioning in the same manner as when accessing a disk not based on thin provisioning. In the following description, a virtual disk constructed by thin provisioning will be referred to as a thin virtual disk or simply as a thin disk.
多くのファイルシステムでは、記憶領域の断片化を避けるために、ストレージに格納されているデータの削除は、削除されるデータのメタデータを、未使用であることを表す値に変更することによって行われる。そして、ストレージに新たに格納されるデータは、ファイルシステムが作成されてからデータが書き込まれたことがない領域が存在すれば、その領域に書き込まれる。 In many file systems, to avoid storage fragmentation, data stored in storage is deleted by changing the metadata of the deleted data to a value that indicates that it is unused. Is called. The data newly stored in the storage is written to the area where no data has been written since the file system was created.
シンディスクにおいてこのようなファイルシステムを使用する場合、データの書き込み及び削除の回数が多くなるに従って、シンディスクに割り当てられている記憶領域は増加する。シンディスクにスワップ領域が割り当てられている場合、スワップの発生に応じて、シンディスクに割り当てられる記憶領域が増加する。 When such a file system is used in a thin disk, the storage area allocated to the thin disk increases as the number of data writes and deletions increases. When the swap area is allocated to the thin disk, the storage area allocated to the thin disk increases as the swap occurs.
特許文献1の技術では、スワップドライブ用メモリの容量を超える書き込みがスワップ領域に発生した場合、スワップディスクに対して書き込みが発生する。特許文献1の技術では、スワップディスクがシンディスクである場合に、スワップディスクに対する書き込みに応じた、シンディスクに割り当てられる記憶領域の増加を抑制することはできない。
In the technique of
特許文献2に記載されている計算機は、必要に応じてスワップファイルを作成する。そして、特許文献2に記載されている計算機は、作成したスワップファイルが不要になった場合、そのスワップファイルを削除する。スワップファイルがシンディスクに作成される場合、そのシンディスクに割り当てられる記憶領域の量は、スワップファイルの作成と削除の繰り返しに応じて増加する。
The computer described in
特許文献3に記載されている情報処理装置は、磁気ディスク装置の空き領域にスワップ領域を作成する。そして、特許文献3に記載されている情報処理装置は、作成されたスワップ領域が不要になった場合、そのスワップ領域を削除する。磁気ディスク装置が、シンプロビジョニングに基づき構築されている仮想的な磁気ディスク装置である場合、その仮想的な磁気ディスク装置に割り当てられる記憶領域の容量は、スワップ領域の作成と削除の繰り返しに応じて増加する。
The information processing apparatus described in
すなわち、特許文献1及び2の技術では、情報処理装置がアクセスする記憶装置がシンディスクである場合、その記憶装置内のスワップ領域に対する書き込み及び削除に応じて増加する、その記憶装置に割り当てられる記憶領域の増加を抑制することはできない。
That is, in the techniques of
本発明の目的の一つは、シン形式の仮想ディスク内のスワップ領域へのアクセスに伴う、その仮想ディスクに割り当てられる記憶領域の増加を抑制することができる記憶領域管理装置を提供することである。 One of the objects of the present invention is to provide a storage area management device capable of suppressing an increase in storage area allocated to a virtual disk accompanying access to a swap area in a thin virtual disk. .
本発明の記憶領域管理装置は、仮想マシンに割り当てられたストレージ領域である割り当て領域のうちスワップ領域への書き込み要求を検出する要求検出手段と、書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付ける管理手段と、前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行手段と、を備える。 The storage area management apparatus according to the present invention includes a request detection unit that detects a write request to a swap area in an allocated area that is a storage area allocated to a virtual machine, and the write in the swap area in which the write request is detected. Management means for associating a target area that is requested to be written by a request with an area in a swap storage area that is allocated to the swap area from another storage area that is not included in the allocated area, and that is associated with the target area Request execution means for performing writing based on the write request to the use area, which is the area.
本発明の記憶領域管理方法は、仮想マシンに割り当てられたストレージ領域である割り当て領域のうちスワップ領域への書き込み要求を検出し、書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付け、前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う。 The storage area management method of the present invention detects a write request to a swap area in an allocation area that is a storage area allocated to a virtual machine, and writing is performed by the write request in the swap area where the write request is detected. The requested target area is associated with the area in the swap storage area allocated to the swap area from another storage area not included in the allocated area, and the used area that is the area associated with the target area On the other hand, writing based on the write request is performed.
本発明の記憶領域管理プログラムは、コンピュータを、仮想マシンに割り当てられたストレージ領域である割り当て領域のうちスワップ領域への書き込み要求を検出する要求検出手段と、書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付ける管理手段と、前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行手段と、して動作させる。 The storage area management program according to the present invention includes a request detection unit that detects a write request to a swap area in an allocation area that is a storage area allocated to a virtual machine, and a swap area in which the write request is detected. A management means for associating a target area that is requested to be written by the write request with an area in a swap storage area that is allocated to the swap area from another storage area that is not included in the allocated area; and It operates as a request execution means for performing writing based on the write request with respect to the use area which is the associated area.
本発明には、シン形式の仮想ディスク内のスワップ領域へのアクセスに伴う、その仮想ディスクに割り当てられる記憶領域の増加を抑制することができるという効果がある。 The present invention has an effect that it is possible to suppress an increase in a storage area allocated to a virtual disk accompanying access to a swap area in a thin virtual disk.
次に、本発明の実施の形態について説明する。 Next, an embodiment of the present invention will be described.
<第1の実施形態>
まず、本発明の第1の実施形態について、図面を参照して詳細に説明する。
<First Embodiment>
First, a first embodiment of the present invention will be described in detail with reference to the drawings.
図1は、本実施形態の情報処理システム100の構成を表す図である。 FIG. 1 is a diagram illustrating a configuration of an information processing system 100 according to the present embodiment.
図1を参照すると、本実施形態は、情報処理装置2と、ストレージ装置3とを含む。情報処理装置2及びストレージ装置3は、互いに接続されている。情報処理装置2は、記憶領域管理装置1を含む。
Referring to FIG. 1, the present embodiment includes an
記憶領域管理装置1は、要求検出部10と、管理部11と、要求実行部12と、領域情報記憶部13と、再配置部14と、解放部15と、動作検出部16と、スワップ領域検出部17と、削除部18と、確保部19とを含む。
The storage
情報処理装置2は、更に、仮想マシン20を実行する仮想マシン実行部22を含む。仮想マシン20において、ゲストOS(Operating System)201が動作している。仮想マシン実行部22は、一般に、ハイパーバイザと呼ばれる、仮想マシン20を実現するソフトウェアと、ハイパーバイザを実行する、情報処理装置2のプロセッサとによって実現される。仮想マシン20は、エミュレートされたコンピュータである。仮想マシン20で動作するゲストOS21において、アプリケーションプログラムが動作していてもよい。以下では、仮想マシン20の数は1台である場合について説明する。しかし、複数の仮想マシン20が動作していてもよい。
The
なお、ハイパーバイザが記憶領域管理装置1の各構成要素を実現する機能を備えていてもよい。そして、ハイパーバイザを実行するプロセッサが、記憶領域管理装置1として動作してもよい。
Note that the hypervisor may have a function of realizing each component of the storage
以下の説明において、ゲストOS21を実行するプロセッサが、アクセス要求を送信することを、「仮想マシン20がアクセス要求を送信する」と表記する。同様に、ゲストOS21において動作するアプリケーションプログラムが、ゲストOS21を介してアクセス要求を送信することも、「仮想マシン20がアクセス要求を送信する」と表記する。
In the following description, the fact that the processor that executes the
アクセス要求は、例えば、後述の割り当て領域301に対するアクセス要求である。アクセス要求は、例えば、割り当て領域301に格納されているデータを読み出す要求である読み出し要求である。アクセス要求は、例えば、割り当て領域301にデータを書き込む要求である書き込み要求である。アクセス要求は、例えば、スワップ領域において使用されている領域の少なくとも一部を、使用しない状態に戻す要求である解放要求である。要求は、要求の種別と、要求の対象である領域を表すデータ値とを含む。アクセス要求は、他の要求であってもよい。要求の種別は、例えば、書き込み、読み出し、解放などである。要求の対象である領域は、例えば、アクセス要求を送信する情報処理装置2に割り当てられている記憶領域のうち、アクセス要求によってアクセスが行われる範囲である。以下の説明において、要求の対象である領域を、対象領域と表記することにする。アクセス要求が読み出し要求である場合、アクセス領域は、読み出されるデータが格納されている範囲である。アクセス要求が書き込み要求である場合、アクセス領域は、書き込みが行われる領域である。アクセス要求が解放要求である場合、対象領域は、使用しない状態に戻される領域である。以下の説明において、アクセス要求を、要求コマンドとも表記することにする。
The access request is, for example, an access request for an
ストレージ装置3は、上述のシンディスクとして構築された記憶領域である割り当て領域301と、スワップ記憶領域302とを含む。以下の説明において、割り当て領域301を、シンディスク301とも表記することにする。ストレージ装置3は、例えば、1台以上の記憶装置によって実現される。記憶装置は、例えば、ハードディスク装置や、SSD(Solid State Drive)等である。スワップ記憶領域302は、割り当て領域301とは別の記憶領域である。スワップ記憶領域302は、割り当て領域301とは別の記憶領域に作成されたファイルであってもよい。以下の説明において、スワップ記憶領域302を、スワップ領域ファイル302とも表記することにする。
The
図2は、シンディスク、すなわち、シンプロビジョニングによって構築された仮想ディスクを模式的に表す図である。ストレージ領域は、ハードディスク装置や他の記憶装置によって実現されている記憶領域である。仮想ディスク1と仮想ディスク2は、例えば、図示されないストレージコントローラによって、シンプロビジョニングによって構築された、仮想的な記憶装置である。仮想ディスクを使用する情報処理装置2は、仮想ディスクに対して、物理的な記憶装置に対してアクセスするのと同様にアクセスすることができる。ただし、情報処理装置2から仮想ディスクの記憶領域としてアクセス可能な記憶領域のうち、使用されている領域にのみ、ストレージ領域から記憶領域が割り当てられている。使用されている領域は、例えば、一度でもデータが書き込まれた領域である。使用されている領域ではない領域には、記憶領域は割り当てられない。図2に示す例では、仮想ディスク1及び仮想ディスク2の書き込み済み領域に、ストレージ領域から記憶領域が割り当てられている。書き込み済み領域が、上述の使用されている領域である。
FIG. 2 is a diagram schematically showing a thin disk, that is, a virtual disk constructed by thin provisioning. The storage area is a storage area realized by a hard disk device or another storage device. The
割り当て領域301は、仮想マシン20に割り当てられている記憶領域である。仮想マシン20が送信するアクセス要求によるアクセスの対象である対象領域は、割り当て領域301に含まれるいずれかの領域である。
The
スワップ記憶領域302は、割り当て領域301とは別の記憶領域に存在する記憶領域である。スワップ記憶領域302は、シン形式のディスクにおける記憶領域に確保されていてもよい。スワップ記憶領域302は、シン形式のディスクにおける記憶領域に確保されていなくてもよい。
The
以下では、主に、仮想マシン20は1台であり、割り当て領域301に含まれるスワップ領域は1つであり、スワップ記憶領域302は1つである場合について説明を行う。仮想マシン20、割り当て領域301に含まれるスワップ領域、及びスワップ記憶領域302は、それぞれ複数であってもよい。
In the following, a case where there is one
次に、記憶領域管理装置1の構成要素について説明する。
Next, components of the storage
動作検出部16は、仮想マシン20の起動と、仮想マシン20の動作の停止とを検出する。起動は、仮想マシン20が動作を開始することである。起動は、サスペンド状態からの復帰を含む。動作の停止は、サスペンド状態への移行を含む。仮想マシン20の起動が検出された場合、動作検出部16は、さらに、仮想マシン20の起動がサスペンド状態からの復帰であるか否かを検出してもよい。
The
仮想マシン20の起動が検出された場合、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在するか否かを判定する。仮想マシン20の起動が検出され、更に、検出された起動がサスペンド状態からの復帰である場合に、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在するか否かを判定してもよい。
When activation of the
スワップ記憶領域302が、ストレージ装置3が含む記憶領域に作成されたファイルである場合、前述のように、スワップ記憶領域302は、スワップ領域ファイル302とも表記される。その場合、動作検出部16は、起動が検出された仮想マシン20に関連付けられている、スワップ領域ファイル302が存在するか否かを判定すればよい。さらに、仮想マシン20が一台である場合、動作検出部16は、スワップ領域ファイル302が存在するか否かを判定すればよい。
When the
起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在する場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域に、存在することが判定されたスワップ記憶領域302が関連付けられた状態を継続させる。
When there is a
起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在しない場合、スワップ領域検出部17は、起動が検出された仮想マシン20に割り当てられている割り当て領域301を開く。そして、スワップ領域検出部17は、割り当て領域301において、スワップ領域を検出し、検出されたスワップ領域の場所を特定する。スワップ領域検出部17は、検出されたスワップ領域の場所を、例えば、領域情報記憶部13に格納すればよい。スワップ領域検出部17は、検出されたスワップ領域の場所を、確保部19に送信してもよい。スワップ領域や他の領域の場所は、例えば、その領域の先頭アドレスとその領域の大きさとによって表される。あるいは、スワップ領域や他の領域の場所は、例えば、その領域の先頭アドレスとその領域の末尾アドレスとによって表されてもよい。スワップ領域の場所を表すアドレスは、例えば、仮想マシン20による割り当て領域301に対するアクセスにおいて使用される論理アドレスによって表されて入ればよい。
When there is no
確保部19は、仮想マシン20の起動が検出された場合、スワップ記憶領域302を作成する。確保部19は、さらに、領域情報記憶部13に格納されている、後述の解放領域リストを初期化する。後述されるように、解放領域は、少なくとも一度、スワップ記憶領域302としてデータが書き込まれ、その後、後述される領域の解放が行われた記憶領域である。解放領域リストは、それぞれの解放領域の位置の集合である。確保部19は、さらに、例えば管理部11からの確保指示に基づき、確保されているスワップ記憶領域302の大きさを拡張する。確保指示は、サイズを含んでいればよい。確保部19は、例えば、存在するスワップ記憶領域302の末尾の次のアドレスが先頭である、指示に基づくサイズの記憶領域を確保し、確保した記憶領域をスワップ記憶領域302に併合すればよい。
The securing
確保部19は、例えば、仮想マシン20の起動が検出された場合、ストレージ装置3に含まれ、割り当て領域301とは異なる記憶領域において、スワップ記憶領域302の初期位置を決定する。
For example, when the activation of the
確保部19は、スワップ記憶領域302の初期位置として、スワップ記憶領域302の先頭アドレスを決定すればよい。確保部19は、例えば、スワップ記憶領域302が確保される記憶領域の先頭アドレスを、スワップ記憶領域302の先頭アドレスにすればよい。
The securing
確保部19は、スワップ記憶領域302の初期位置として、スワップ記憶領域302の先頭アドレスのみを決定してもよい。その場合、スワップ記憶領域302がスワップ領域ファイル302であれば、確保部19は、例えば、サイズが0のスワップ領域ファイル302ファイルを作成すればよい。
The securing
確保部19は、さらに、決定された先頭アドレスによって表される位置を先頭とする、所定の大きさのスワップ記憶領域302を確保してもよい。そして、確保部19は、スワップ記憶領域302の、例えば先頭アドレスと大きさによって表される場所を、領域情報記憶部13に格納してもよい。
The securing
少なくとも一つの解放領域の場所を含む解放領域リストが存在する場合、確保部19は、その解放領域リストを削除することによって、解放領域リストの初期化を行えばよい。解放領域リストが存在しない場合、確保部19は、解放領域リストの初期化として、何もしなくてよい。
If there is a release area list including at least one release area location, the securing
動作検出部16によって、仮想マシン20の動作の停止が検出された場合、削除部18は、確保されているスワップ記憶領域302の解放が可能か否かを判定する。スワップ記憶領域302がファイルによって実現されている場合、削除部18は、スワップ記憶領域302であるスワップ領域ファイル302の削除が可能か否かを判定すればよい。
When the
削除部18は、例えば、スワップ記憶領域302にダンプファイルが格納されているか否かを判定することによって、スワップ記憶領域302の解放が可能か否かを判定すればよい。スワップ記憶領域302にダンプファイルが格納されている場合、削除部18は、スワップ記憶領域302の解放が可能ではないと判定すればよい。スワップ記憶領域302にダンプファイルが格納されていない場合、削除部18は、スワップ記憶領域302の解放が可能であると判定すればよい。削除部18は、まず、仮想マシン20の動作の停止が、サスペンド状態への移行であるか否かを判定してもよい。その場合、仮想マシン20の動作の停止がサスペンド状態への移行である場合、削除部18は、スワップ記憶領域302の解放が可能ではないと判定すればよい。仮想マシン20の動作の停止がサスペンド状態への移行でない場合、削除部18は、さらに、スワップ記憶領域302にダンプファイルが格納されているか否かを判定することによって、スワップ記憶領域302の解放が可能か否かを判定すればよい。
The deleting
判定の結果、確保されているスワップ記憶領域302の解放が可能である場合、削除部18は、スワップ記憶領域302を解放する。すなわち、削除部18は、仮想マシン20のスワップ領域に対するスワップ記憶領域302の割り当てを解除する。さらに、ストレージ装置3に含まれる、割り当て領域301ではない記憶領域に確保されている、スワップ記憶領域302を解放する。スワップ記憶領域302がファイルによって実現されている場合、削除部18は、スワップ記憶領域302であるスワップ領域ファイル302を削除すればよい。
If it is determined that the reserved
要求検出部10は、仮想マシン20が送信するアクセス要求を検出する。そして、要求検出部10は、検出したアクセス要求に基づき、要求の種別と対象領域とを特定する。さらに、要求検出部10は、受信したアクセス要求に基づき特定された対象領域が、割り当て領域301のうちスワップ領域に含まれるか否かを、例えば対象領域の場所とスワップ領域の場所を比較することによって判定する。割り当て領域301におけるスワップ領域の場所は、例えば、領域情報記憶部13に格納されていればよい。
The
特定された対象領域が、割り当て領域301のスワップ領域に含まれない場合、管理部11は、要求検出部10によって検出されたアクセス要求を、そのまま要求実行部12に送信する。
If the identified target area is not included in the swap area of the
アクセス要求を受信した要求実行部12は、アクセス要求に応じたアクセスを行う。特定された対象領域が、割り当て領域301のスワップ領域に含まれない場合、要求実行部12が行うアクセスのアクセス先は、割り当て領域301である。
Upon receiving the access request, the
特定された対象領域が、割り当て領域301のスワップ領域に含まれる場合、要求検出部10は、さらに、アクセス要求の種別を特定する。
When the specified target area is included in the swap area of the
特定されたアクセス要求の種別が読み出しである場合、管理部11は、検出されたアクセス要求によってアクセスされる対象領域に関連付けられている、スワップ記憶領域302に含まれる領域を特定する。後述されるように、対象領域と、スワップ記憶領域302に含まれる領域との間の関連付けを表す情報は、領域情報記憶部13に格納されていればよい。管理部11は、領域情報記憶部13に格納されている対象領域と、スワップ記憶領域302に含まれる領域との間の関連付けを表す情報に基づき、対象領域に関連付けられている、スワップ記憶領域302に含まれる領域を特定すればよい。
When the type of the identified access request is read, the
特定されたアクセス要求の種別が書き込みである場合、管理部11は、検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれるいずれかの領域に関連付けられているか判定する。検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれる領域に関連付けられている場合、管理部11は、その対象領域に関連付けられている領域の、例えば先頭アドレスを、要求実行部12に送信する。その場合、管理部11は、検出されたアクセス要求と、そのアクセス要求によってアクセスされる領域の先頭アドレスとして、対象領域に関連付けられている領域の先頭アドレスを、要求実行部12に送信すればよい。
When the identified access request type is write, the
検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれるいずれの領域にも関連付けられていない場合、管理部11は、その対象領域にスワップ記憶領域302に含まれる領域を関連付ける。管理部11が対象領域に新たに関連付ける領域は、例えば、その対象領域の大きさ以上の大きさである、連続した、他のいずれの対象領域にも関連付けられていない領域である。
When the target area accessed by the detected access request is not associated with any area included in the
管理部11は、まず、領域情報記憶部13に格納されている解放領域リストに基づき、大きさが対象領域の大きさ以上である、連続した解放領域の有無を判定する。大きさが対象領域の大きさ以上である、連続した解放領域が存在する場合、管理部11は、例えばその解放領域の先頭を先頭とする、対象領域の大きさ以上の大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、使用領域として対象領域に関連付けた記憶領域の先頭アドレスを、要求実行部12に送信すればよい。
The
大きさが対象領域の大きさ以上である、連続した解放領域が存在しない場合、管理部11は、解放領域の大きさの合計が、対象領域の大きさ以上であるか判定する。解放領域の大きさの合計が、対象領域の大きさ以上である場合、再配置部14に、対象領域の大きさと、使用領域の再配置の要求とを送信する。本実施形態の説明において、「使用領域の再配置」は、使用領域が連続するように、スワップ記憶領域302内で使用領域を移動させることである。以下の説明において、「使用領域の再配置」は、「デフラグ」とも表記することにする。
When there is no continuous release area whose size is equal to or larger than the size of the target area, the
対象領域の大きさと、使用領域の再配置の要求とを受信した再配置部14は、例えば、大きさが対象領域の大きさ以上である、連続した解放領域が生成されるまで、スワップ記憶領域302内で使用領域を移動させる。再配置部14は、使用領域がスワップ記憶領域302内で連続するように、使用領域を移動させればよい。言い換えると、再配置部14は、使用領域の再配置を行うことによって、スワップ記憶領域302に、大きさが対象領域の大きさ以上である、連続した解放領域を生成する。
The
なお、管理部11は、再配置部14に対して、対象領域の大きさを送信せず、使用領域を再配置する要求のみを送信してもよい。その場合、再配置部14は、例えば、全ての使用領域がスワップ記憶領域302内で連続するように、使用領域を移動させればよい。管理部11は、例えば、使用領域が移動した後の、大きさが対象領域の大きさ以上である解放領域の先頭を先頭とする、対象領域の大きさ以上の大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、使用領域として対象領域に関連付けた記憶領域の先頭アドレスを、要求実行部12に送信すればよい。
Note that the
図3は、再配置前後の使用領域及び解放領域の配置を模式的に表す図である。例えば、図3の左側に示す「再配置前の配置」によって表される位置に使用領域が存在する場合、使用領域は連続していない。また、解放領域は2つに分断されている。図3の左側に示すように使用領域及び解放領域が配置されているスワップ記憶領域302に対して、再配置部14が再配置を行う場合、再配置部14は、図3の右側に示す配置になるよう、使用領域を移動させる。再配置部14は、まず、移動前の使用領域に格納されているデータを、移動後の使用領域の位置に格納する。そして、再配置部14は、領域往訪記憶部11に格納されている使用領域の場所及び解放領域の場所を、移動後の使用領域の場所に合わせて更新する。使用領域及び解放領域の場所は、例えば、それらの領域の先頭アドレス及び大きさによって表されていればよい。使用領域及び解放領域の場所は、例えば、それらの領域の先頭アドレス及び末尾アドレスによって表されていてもよい。使用領域及び解放領域の場所を表すアドレスは、例えば、記憶領域管理装置1の各構成要素がスワップ領域302に対してアクセスを行う際使用する、共通のアドレスであればよい。
FIG. 3 is a diagram schematically illustrating the arrangement of the use area and the release area before and after the rearrangement. For example, when a use area exists at a position represented by “placement before rearrangement” on the left side of FIG. 3, the use areas are not continuous. Further, the release area is divided into two. When the
再配置部14は、さらに、解放領域をスワップ記憶領域302から除外することによって、スワップ記憶領域302のサイズを縮小してもよい。
The
再配置部14が行った再配置により、大きさが対象領域の大きさ以上である、連続した解放領域が生成されると、管理部11は、例えば、その連続した解放領域のうち、対象領域の大きさ以上の領域を、使用領域として、対象領域に関連付ける。
When a continuous release area whose size is equal to or larger than the size of the target area is generated by the rearrangement performed by the
管理部11は、使用領域に関連付けた対象領域の場所と、その対象領域に関連付けた使用領域の場所とを、例えば、領域情報記憶部13に格納する。前述のように、対象領域や使用領域などの記憶領域の場所は、例えば、その記憶領域の先頭アドレスと、領域のサイズとによって表される。
For example, the
領域情報記憶部13は、互いに関連付けられた対象領域及び使用領域の、それぞれの場所を記憶する。また、領域情報記憶部13は、解放領域の場所を記憶する。さらに、領域情報記憶部13は、スワップ記憶領域302の場所を記憶する。領域情報記憶部13は、さらに、割り当て領域301における、スワップ領域の場所を記憶していてもよい。前述のように、領域情報記憶部13が記憶する、解放領域の場所を表すデータが、解放領域リストである。解放領域リストは、テーブルの形で領域情報記憶部13に格納されていてもよい。
The area
図4は、領域情報記憶部13が記憶する、互いに関連付けられた対象領域及び使用領域の場所の例を模式的に表す図である。図4に示す例では、対象領域の先頭アドレス及びサイズと、使用領域の先頭アドレス及びサイズとが、関連付けられている。前述のように、記憶領域の先頭アドレス及びサイズが、記憶領域の場所を表す。対象領域のアドレスは、仮想マシン20が割り当て領域301におけるアクセス先の指定に使用するアドレスである。使用領域のアドレスは、記憶領域管理装置1がスワップ記憶領域302におけるアクセス先の指定に使用するアドレスである。
FIG. 4 is a diagram schematically illustrating an example of the location of the target area and the use area that are associated with each other and stored in the area
図5は、領域情報記憶部13が記憶する、互いに関連付けられた対象領域及び使用領域の場所の第2の例を模式的に表す図である。複数の仮想マシン20が存在する場合、図5に示す例のように、対象領域の場所に、仮想マシン20の識別子である仮想マシンIDが含まれていればよい。仮想マシン20の数が1台である場合、対象領域の場所に仮想マシンIDは含まれていなくてよい。さらに、複数のスワップ記憶領域302が存在する場合、使用領域の場所に、スワップ記憶領域302の識別子である領域IDが含まれていればよい。1つのスワップ記憶領域302しか確保されない場合、使用領域の場所に領域IDは含まれていなくてよい。
FIG. 5 is a diagram schematically illustrating a second example of the location of the target area and the use area that are associated with each other and stored in the area
図6は、領域情報記憶部13が記憶する、解放領域の場所の例を模式的に表す図である。本実施形態の説明において、各解放領域の場所を表す解放領域リストを、解放領域データ値とも表記することにする。解放領域のアドレスは、記憶領域管理装置1がスワップ記憶領域302におけるアクセス先の指定に使用するアドレスである。
FIG. 6 is a diagram schematically illustrating an example of the location of the release area stored in the area
図7は、領域情報記憶部13が記憶する、解放領域の場所の第2の例を模式的に表す図である。図7に示す例のように、複数のスワップ記憶領域302が存在する場合、解放領域の場所に、スワップ記憶領域302の識別子である領域IDが含まれていればよい。1つのスワップ記憶領域302しか確保されない場合、解放領域の場所に領域IDは含まれていなくてよい。
FIG. 7 is a diagram schematically illustrating a second example of the location of the release area stored in the area
以上のように、対象領域に関連付けられた使用領域が存在する場合、管理部11は、要求検出部10が受信したアクセス要求に基づくアクセスの対象である対象領域に関連付けられた使用領域の、例えば先頭アドレスを、要求実行部12に送信すればよい。解放領域において確保した使用領域を対象領域に関連付けた場合も同様に、管理部11は、要求検出部10が受信したアクセス要求に基づくアクセスの対象である対象領域に関連付けられた使用領域の、例えば先頭アドレスを、要求実行部12に送信すればよい。
As described above, when there is a used area associated with the target area, the
解放領域の大きさの合計が、対象領域の大きさより小さい場合、管理部11は、例えば、既存の使用領域の最終アドレスの次のアドレスを先頭とする、対象領域の大きさに基づき決定される大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、その対象領域に関連する使用領域の先頭アドレスとして、既存の使用領域最終アドレスの次のアドレスを、要求実行部12に送信してもよい。この場合、スワップ記憶領域302は、十分大きい記憶領域内に確保されていればよい。そして、スワップ記憶領域302に連続する十分広い記憶領域がスワップ記憶領域302として確保可能であればよい。
When the total size of the release areas is smaller than the size of the target area, the
この場合、管理部11は、受信した書き込み要求によるアクセスの対象である対象領域に関連付けられた使用領域の先頭アドレスを要求実行部12に送信する前に、スワップ記憶領域302を拡張すればよい。スワップ記憶領域302の拡張される部分の大きさである拡張サイズは、スワップ記憶領域302の末尾のアドレスと、既存の使用領域の末尾に追加された、対象領域に関連付けられた使用領域の末尾のアドレスとの差であればよい。
In this case, the
なお、解放領域の大きさの合計が、対象領域の大きさより小さい場合、管理部11は、まず、再配置部14に、再配置の指示を行ってもよい。そして、管理部11は、再配置の後における、既存の使用領域の最終アドレスの次のアドレスを先頭とする、対象領域の大きさに基づき決定される大きさの領域を、使用領域として、対象領域に関連付けてもよい。
When the total size of the release areas is smaller than the size of the target area, the
要求検出部10によって検出されたアクセス要求において特定されたアクセスの種別が解放である場合、解放部15は、そのアクセス要求における対象領域を解放する。すなわち、解放部15は、そのアクセス要求における対象領域と、その対象領域に関連付けられている使用領域との間の関連付けを解消する。対象領域の解放は、例えば、仮想マシン20が、スワップ領域の一部として使用していた対象領域を、スワップ領域として使用しなくなることである。
When the access type specified in the access request detected by the
スワップ記憶領域302がスワップ領域ファイル302である場合、解放部15は、例えば、解放の対象である対象領域をスワップ領域ファイル302から除外し、スワップ領域ファイル302のサイズを縮小する処理を行ってもよい。その場合、解放部15は、解放領域リストを更新すればよい。すなわち、解放部15は、解放によってスワップ領域ファイル302から除外された領域の場所を表すデータ値を、領域情報記憶部13に格納する。
When the
また、解放部15は、例えば、領域情報記憶部13に格納されている、その対象領域の場所と、その対象領域の場所に関連付けられている使用領域の場所とを消去すればよい。このことによって、解放部15は、種別が解放であるアクセス要求の対象領域と、その対象領域に関連付けられている使用領域との間の関連付けを解消すればよい。すなわち、解放部15は、種別が解放であるアクセス要求の対象領域の場所とその対象領域に関連付けられている使用領域の場所とを、領域情報記憶部13から削除することによって、その対象領域を解放すればよい。
The
解放部15は、さらに、解放された対象領域に関連付けられていた使用領域が解放領域に含まれるように、領域情報記憶部13に格納されている解放領域リストすなわち解放領域データ値を更新する。解放領域リストすなわち解放領域データ値が、例えば図4に示す、使用領域の場所によって表されている場合、解放された対象領域に関連付けられていた使用領域の場所が上述のように削除されることによって、場所が削除された使用領域は解放領域に追加される。領域情報記憶部13が、例えば図5に示す例のような解放領域リストを記憶している場合、解放部15は、例えば、種別が解放であるアクセス要求の対象領域に関連付けられている使用領域の場所を、解放領域リストに追加すればよい。
Further, the
なお、解放部15は、要求検出部10によって検出された、アクセスの種別が解放であるアクセス要求を、所定の条件が満たされるまで保持していてもよい。解放部15は、アクセスの種別が解放であるアクセス要求ではなく、アクセスの種別が解放であるアクセス要求によって解放される対象記憶領域である解放対象領域の場所を、所定の条件が満たされるまで保持していてもよい。そして、所定の条件が満たされた場合、解放部15は、保持している解放対象領域の解放を、例えばまとめて行ってもよい。解放部15は、所定の条件が満たされているか否かの判定と、その判定の結果に基づく対象領域の解放を、例えば、定期的に、バックグラウンドで(すなわちアクセス要求に応じて行われる処理と並行して)行えばよい。
The
上述の所定の条件は、例えば、解放部15が保持している解放対象領域の大きさの合計が、所定値を上回ることである。所定の条件は、例えば、ストレージ装置3の負荷を表す指標が、所定値を下回っていることである。ストレージ装置3の負荷を表す指標は、例えば、ストレージ装置3へのI/O量である。I/O量は、例えば、単位時間当たりのアクセス要求の数であってもよい。I/O量は、例えば、単位時間当たりに転送されるデータの量であってもよい。I/O量は他の量であってもよい。ストレージ装置3の負荷を表す指標は、他の指標であってもよい。所定の条件は、例えば、スワップ記憶領域302の空き容量が所定の容量を下回ることであってもよい。所定の条件は、以上で説明した条件の組み合わせであってもよい。
The predetermined condition described above is, for example, that the total size of the release target areas held by the
解放部15は、対象領域の解放が終了した後、再配置部14に対して、上述の、使用領域の再配置すなわちデフラグを行う要求を行ってもよい。
After releasing the target area, the
使用領域の再配置の要求を受信した再配置部14は、例えば、スワップ記憶領域302に含まれる使用領域の場所が連続するように、使用領域を移動させる。再配置部14は、使用領域の再配置を、同様にバックグラウンドで行えばよい。
For example, the
次に、本実施形態の記憶領域管理装置1の動作について、図面を参照して詳細に説明する。
Next, the operation of the storage
まず、本実施形態の記憶領域管理装置1の、仮想マシン20が動作を開始した場合における動作について説明する。
First, the operation of the storage
図8は、本実施形態の記憶領域管理装置1の、仮想マシン20が動作を開始した場合における動作の例を表すフローチャートである。
FIG. 8 is a flowchart illustrating an example of the operation of the storage
仮想マシン20が起動すると、動作検出部16が、仮想マシン20の起動を検出する(ステップS101)。例えば、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、動作検出部16に、仮想マシン20の起動の通知を送信すればよい。動作検出部16は、仮想マシン20の起動の通知を受信した場合に、仮想マシン20が起動したと判定すればよい。
When the
動作検出部16は、さらに、仮想マシン20の起動が、サスペンドからの復帰であるか否かを判定する。例えば、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、動作検出部16に、仮想マシン20の起動がサスペンドからの復帰であるか否かを表す信号を送信すればよい。動作検出部16は、仮想マシン実行部22から受信した、仮想マシン20の起動がサスペンドからの復帰であるか否かを表す信号に基づき、仮想マシン20の起動がサスペンドからの復帰であるか否かを判定すればよい。動作検出部16は、他の方法により、仮想マシン20の起動が、サスペンドからの復帰であるか否かを判定してもよい。
The
仮想マシン20の起動が、サスペンドからの復帰である場合(ステップS102においてYes)、図8に示す動作は終了する。本実施形態では、仮想マシン20がサスペンド状態に移行する場合、その仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302は解放されない。従って、仮想マシン20の起動がサスペンドからの復帰である場合、その仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在する。その場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域と、そのスワップ記憶領域302とが関連付けられた状態を維持する。
When the activation of the
仮想マシン20の起動が、サスペンドからの復帰でない場合(ステップS102においてNo)、例えば動作検出部16が、スワップ記憶領域302が存在するか否かを判定する。情報処理装置2が複数の仮想マシン20が動作するように構成されている場合、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302の領域が存在するか否かを判定すればよい。動作検出部16は、その判定を、例えば、仮想マシン20のスワップ領域に含まれる対象領域に関連付けられた使用領域の場所が、領域情報記憶部13に格納されているか否かを判定することによって行えばよい。スワップ記憶領域302がスワップ領域ファイル302である場合、動作検出部16は、ストレージ装置3にスワップ領域ファイル302が存在するか否かを判定すればよい。
If the activation of the
スワップ記憶領域302が存在する場合(ステップS103においてYes)、図8に示す動作は終了する。その場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域と、そのスワップ記憶領域302とが関連付けられた状態を維持する。
If the
なお、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302の有無を判定することによって、仮想マシン20の起動がサスペンドからの復帰であるか否かを判定してもよい。その場合、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302が存在すれば、仮想マシン20の起動がサスペンドからの復帰であると判定すればよい。また、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302が存在しなければ、仮想マシン20の起動がサスペンドからの復帰ではないと判定すればよい。そして、この場合、動作検出部16は、ステップS102及びステップS103の動作を、同じ動作として行えばよい。
The
スワップ記憶領域302が存在しない場合(ステップS103においてNo)、スワップ領域検出部17は、割り当て領域301(すなわち、シンディスク301)を開く(ステップS104)。
When the
スワップ領域検出部17は、割り当て領域301において、スワップ領域を検出する(ステップS105)。スワップ領域検出部17は、例えば、割り当て領域301の構造を解析することによって、スワップ領域を検出すればよい。スワップ領域検出部17は、検出したスワップ領域の場所を特定する。スワップ領域の場所は、前述のように、例えば、先頭アドレスと大きさの組み合わせである。スワップ領域の場所は、先頭アドレスと末尾アドレスの組み合わせであってもよい。
The swap
確保部19は、大きさが検出されたスワップ領域の大きさ以上であるスワップ記憶領域302を、割り当て領域301とは異なる記憶領域において確保する(ステップS106)。スワップ記憶領域302がスワップ領域ファイル302である場合、確保部19は、大きさが検出されたスワップ領域の大きさ以上であるスワップ領域ファイル302を、割り当て領域301とは異なる記憶領域に作成すればよい。
The securing
確保部19は、検出されたスワップ領域とスワップ記憶領域302とを関連付ける(ステップS107)。確保部19は、例えば、検出されたスワップ領域の先頭アドレスとスワップ記憶領域302の先頭アドレスとを、関連付けて領域情報記憶部13に格納すればよい。
The securing
確保部19は、更に、解放領域リストを初期化する(ステップS108)。確保部19は、例えば、領域情報記憶部13において、対象領域の場所と使用領域の場所とを関連付けるデータ値を格納する領域を設定すればよい。領域情報記憶部13に、起動が検出された仮想マシン20のスワップ領域に含まれる対象領域の場所とその対象領域の場所に関連付けられた使用領域の場所が格納されている場合、確保部19は、それらの場所を削除すればよい。解放領域リストの初期化が必要なければ、確保部19は、ステップS108において何もしなくてもよい。
The securing
次に、記憶領域管理装置1の、仮想マシン20が停止する場合における動作について、図面を参照して詳細に説明する。
Next, the operation of the storage
図9は、本実施形態の記憶領域管理装置1の、仮想マシン20が停止する場合における動作の例を表すフローチャートである。
FIG. 9 is a flowchart illustrating an example of the operation of the storage
仮想マシン20が停止すると、動作検出部16は、仮想マシン20の停止を検出する(ステップS201)。例えば、仮想マシン20が動作を停止した場合、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、仮想マシン20が停止したことを表す信号を動作検出部16に送信すればよい。動作検出部16は、仮想マシン実行部22から仮想マシン20が停止したことを表す信号を受信することによって、仮想マシン20の停止を検出すればよい。
When the
仮想マシン20は、たとえば、仮想マシン20がシャットダウンされた場合や、仮想マシン20がサスペンドされた場合に、動作を停止する。すなわち、仮想マシン20の停止には、例えば、仮想マシン20のシャットダウンと、仮想マシン20のサスペンド(すなわち、仮想マシン20のサスペンド状態への移行)がある。
For example, the
動作検出部16は、仮想マシン20の停止が、仮想マシン20のサスペンドであるか否かを判定する。仮想マシン20の停止が、仮想マシン20のサスペンドである場合、すなわち、仮想マシン20がサスペンドされた場合(ステップS202においてYes)、記憶領域管理装置1は、図9に示す動作を終了する。その場合、サスペンドされた仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けは維持される。また、仮想マシン20のスワップ領域に含まれる対象領域と、スワップ記憶領域302に含まれる使用領域との関連付けも維持される。
The
次に、削除部18は、スワップ記憶領域302(すなわちスワップ領域ファイル302)に、ダンプファイルが格納されているか否かを判定する(ステップS203)。スワップ記憶領域302に、ダンプファイルが格納されている場合(ステップS203においてYes)、記憶領域管理装置1は、図9に示す動作を終了する。その場合も、サスペンドされた仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けは維持される。また、仮想マシン20のスワップ領域に含まれる対象領域と、スワップ記憶領域302に含まれる使用領域との関連付けも維持される。
Next, the
ダンプファイルが格納されていない場合(ステップS203においてNo)、削除部18は、停止が検出された仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けを解除する(ステップS204)。削除部18は、例えば、仮想マシン20のスワップ領域の先頭アドレスとそのスワップ領域に関連付けられているスワップ記憶領域302の先頭アドレスを、領域情報記憶部13から削除すればよい。
When the dump file is not stored (No in step S203), the
次に、削除部18は、停止が検出された仮想マシン20のスワップ領域に関連付けられている、ストレージ装置3に確保されているスワップ記憶領域302を解放する(ステップS205)。スワップ記憶領域302がスワップ領域ファイル302である場合、削除部18は、停止が検出された仮想マシン20のスワップ領域に関連付けられているスワップ領域ファイル302を削除すればよい。
Next, the
次に、削除部18は、解放領域リストを削除する(ステップS206)。削除部18は、例えば、停止が検出された仮想マシン20のスワップ領域に含まれる対象領域の場所と、その対象領域の場所に関連付けられている使用領域の場所とを、領域情報記憶部13から削除すればよい。削除部18は、さらに、停止が検出された仮想マシン20のスワップ領域に関連付けられていたスワップ記憶領域302に含まれる解放領域の場所を、領域情報記憶部13から削除すればよい。
Next, the
次に、本実施形態の記憶領域管理装置1の、仮想マシン20がアクセス要求を送信した場合における動作について、図面を参照して詳細に説明する。
Next, the operation when the
図10は、本実施形態の記憶領域管理装置1の、仮想マシン20がアクセス要求を送信した場合における動作の例を表すフローチャートである。図10に示す例におけるアクセス要求は、割り当て領域301が含むいずれかの領域にデータを書き込む要求である書き込み要求又は割り当て領域301が含むいずれかの領域からデータを読み出す読み出し要求である。仮想マシン20は、コマンドを送信することによって、アクセスの要求を行う。以下の説明において、アクセス要求は、要求コマンドとも表記される。図10に示す例では、アクセス要求(すなわち要求コマンド)の種別は、書き込み又は読み出しである。
FIG. 10 is a flowchart illustrating an example of an operation when the
仮想マシン20がアクセス要求(すなわち、要求コマンド)を送信すると、要求検出部10が要求コマンドを検出する。
When the
要求検出部10は、検出された要求コマンドの種別を特定する(ステップS301)。上述のように、図10に示す例においては、要求コマンドの種別は、書き込み又は読み出しである。また、要求検出部10は、ステップS301の動作を、後述されるステップS303においてYesであった場合に、ステップS305の動作の前に行ってもよい。
The
要求検出部10は、さらに、検出された要求コマンドによってアクセスが要求されている、割り当て領域301における領域である、対象領域を特定する(ステップS302)。
The
要求検出部10は、特定した対象領域が、要求コマンドを送信した仮想マシン20のスワップ領域に含まれるか否かを判定する(ステップS303)。
The
特定した対象領域が、要求コマンドを送信した仮想マシン20のスワップ領域に含まれない場合(ステップS303においてNo)、要求実行部12は、割り当て領域301に対して要求コマンドを発行する(ステップS304)。要求実行部12は、割り当て領域301に含まれる対象領域に対するアクセスを要求する要求コマンドを、そのままストレージ装置3に送信すればよい。この場合、管理部11は、要求検出部10が検出した要求コマンドに対して、何もしなくてよい。要求実行部12は、ストレージ装置3が返信する、要求コマンドの実行結果を、例えば要求検出部10を介して、仮想マシン20に送信すればよい。
When the identified target area is not included in the swap area of the
特定した対象領域が、要求コマンドを送信した仮想マシン20のスワップ領域に含まれる場合(ステップS303においてYes)、要求コマンドが書き込み要求でない場合(ステップS305においてNo)、記憶領域管理装置1の動作は、ステップS306に進む。要求コマンドの種別が書き込みでない場合、要求コマンドの種別は読み出しである。
When the identified target area is included in the swap area of the
ステップS306において、管理部11は、対象領域に関連付けられた使用領域を特定する。管理部11は、対象領域に関連付けられている使用領域の場所を、領域情報記憶部13から読み出せばよい。
In step S306, the
要求実行部12は、スワップ記憶領域302に含まれる、特定された使用領域から、要求コマンドに基づくデータの読み出しを行う(ステップS307)。要求実行部12は、読み出されたデータを、例えば、要求検出部10を介して、仮想マシン20に送信する。
The
要求コマンドが書き込み要求である場合(ステップS305においてYes)、管理部11は、対象領域のサイズと、スワップ記憶領域302における解放領域のサイズの合計を比較する(ステップS308)。
When the request command is a write request (Yes in step S305), the
対象領域のサイズが、スワップ記憶領域302における解放領域のサイズの合計より小さい場合(ステップS308においてNo)、ステップS311において、例えば確保部19が、対象領域のサイズ以上の領域をスワップ記憶領域302に追加する。そして、確保部19は、追加された領域に、検出された対象領域のサイズ以上のサイズを持つ使用領域を確保する(ステップS311)。管理部11は、対象領域の場所と、確保された使用領域の場所とを、互いに関連付けて、領域情報記憶部13に格納する。なお、対象領域の場所に関連付けられた使用領域の場所を領域情報記憶部13に格納することが、その使用領域を確保することであってもよい。
If the size of the target area is smaller than the total size of the release areas in the swap storage area 302 (No in step S308), for example, in step S311, the securing
対象領域のサイズが、スワップ記憶領域302における解放領域のサイズの合計以上である場合(ステップS308においてNo)、対象領域のサイズ以上の大きさの、連続した解放領域が存在するか否かを判定する(ステップS309)。 If the size of the target area is equal to or larger than the total size of the release areas in the swap storage area 302 (No in step S308), it is determined whether there is a continuous release area larger than the size of the target area. (Step S309).
スワップ記憶領域302に、対象領域のサイズ以上の大きさの、連続した解放領域が存在する場合(ステップS309においてYes)、管理部11は、その連続した解放領域に使用領域を確保する(ステップS311)。管理部11が確保する使用領域は、検出された対象領域のサイズ以上のサイズを持つ。管理部11は、対象領域の場所と、確保された使用領域の場所とを、互いに関連付けて、領域情報記憶部13に格納する。
If there is a continuous release area larger than the size of the target area in the swap storage area 302 (Yes in step S309), the
スワップ記憶領域302に、対象領域のサイズ以上の大きさの、連続した解放領域が存在しない場合(ステップS309においてNo)、再配置部14は、使用領域の再配置を行う(ステップS310)。そのことによって、再配置部14は、検出された対象領域のサイズ以上のサイズを持つ、連続した解放領域を生成する。管理部11は、生成された解放領域に、検出された対象領域のサイズ以上のサイズを持つ使用領域を確保する。管理部11は、対象領域の場所と、確保された使用領域の場所とを、互いに関連付けて、領域情報記憶部13に格納する。
When there is no continuous release area larger than the size of the target area in the swap storage area 302 (No in step S309), the
次に、要求実行部12が、確保された使用領域に対して、要求コマンドに基づく書き込みを行う(ステップS312)。
Next, the
次に、本実施形態の記憶領域管理装置1の、仮想マシン20が解放要求を送信する場合における動作について、図面を参照して詳細に説明する。
Next, the operation of the storage
図11は、本実施形態の記憶領域管理装置1の、仮想マシン20が解放要求コマンドを送信する場合における動作の例を表すフローチャートである。解放要求コマンドは、例えば、スワップ領域のうちに含まれる、少なくとも一部の使用領域を、未使用の状態に戻すコマンドである。記憶領域管理装置1は、解放要求コマンドを受信すると、その解放要求コマンドの対象である対象領域に関連付けられている使用領域を、以下のようにして、対象領域に関連付けられていない状態に戻す。
FIG. 11 is a flowchart illustrating an example of the operation of the storage
仮想マシン20が解放要求コマンドを送信すると、要求検出部10が解放要求コマンドを受信する(ステップS401)。例えば、仮想マシン20から要求コマンドを受信した要求受信部10が、要求コマンドの種別を特定した結果、要求コマンドの種別が解放要求であった場合に、記憶領域管理装置1は、図11に示す動作を開始すればよい。また、記憶領域管理装置1は、図11に示す動作を、他の要求コマンドに対する処理と並行して、バックグラウンドで行えばよい。
When the
次に、解放部15は、所定の条件が満たされているか判定する(ステップS402)。
Next, the
上述のように、所定の条件は、例えば、解放部15が保持している解放対象領域の大きさの合計が、所定値を上回ることである。所定の条件は、例えば、ストレージ装置3の負荷を表す指標が、所定値を下回っていることである。ストレージ装置3の負荷を表す指標は、例えば、ストレージ装置3へのI/O量である。I/O量は、例えば、単位時間当たりのアクセス要求の数であってもよい。I/O量は、例えば、単位時間当たりに転送されるデータの量であってもよい。I/O量は他の量であってもよい。ストレージ装置3の負荷を表す指標は、他の指標であってもよい。所定の条件は、例えば、スワップ記憶領域302の空き容量が所定の容量を下回ることであってもよい。所定の条件は、以上で説明した条件の組み合わせであってもよい。
As described above, the predetermined condition is, for example, that the total size of the release target areas held by the
所定の条件が満たされていない場合(ステップ403においてNo)、解放部15は、解放要求コマンドによって解放が要求されている対象領域である、解放対象領域の場所を記憶(すなわち保持)する(ステップS404)。以下の説明において、解放対象領域の場所を記憶することを、「解放対象領域を記憶する」あるいは「解放対象領域の場所を保持する」とも表記する。解放部15は、解放対象領域を含む、解放要求コマンドのデータを保持してもよい。記憶領域管理装置1の動作は、ステップS404の動作の後、ステップS401に戻る。
When the predetermined condition is not satisfied (No in Step 403), the
所定の条件が満たされている場合(ステップ403においてYes)、解放部15は、記憶する全ての解放対象領域を解放する(ステップS405)。
When the predetermined condition is satisfied (Yes in Step 403), the
解放対象領域が解放されると、再配置部14が、使用領域の再配置を実行する(ステップS406)。前述のように、再配置部14は、使用領域の再配置の後、スワップ記憶領域302に末尾に存在する解放領域を、スワップ記憶領域302から除外してもよい。
When the release target area is released, the
また、図17は、解放要求コマンドの受信と再配置とを並行して行う場合における、記憶領域管理装置1の解放要求コマンドを受信する動作の例を表すフローチャートである。さらに、図18は、解放要求コマンドの受信と再配置とを並行して行う場合における、記憶領域管理装置1の再配置を行う動作の例とを表すフローチャートである。図17及び図18の各ステップにおける動作は、図11に示す、同じ符号が付与されたステップにおける動作と同じである。記憶領域管理装置1は、図17に示す動作と、図18に示す動作を、並行して行ってもよい。
FIG. 17 is a flowchart showing an example of the operation of receiving the release request command of the storage
以上で説明した本実施形態には、シン形式の仮想ディスク内のスワップ領域へのアクセスに伴う、その仮想ディスクに割り当てられる記憶領域の増加を抑制することができるという第1の効果がある。 The present embodiment described above has a first effect that it is possible to suppress an increase in the storage area allocated to the virtual disk accompanying access to the swap area in the thin virtual disk.
その理由は、仮想マシン20が送信するアクセス要求による書き込み先が、シン形式の仮想ディスクである割り当て領域301に含まれるスワップ領域である場合、要求実行部12が、スワップ記憶領域302に書き込みを行うからである。スワップ記憶領域302は、割り当て領域301ではない記憶領域に確保されている領域である。前述のように、一般医、シン形式のディスクに対してデータの書き込みと削除を繰り返すと、そのディスクに割り当てられる記憶領域のサイズが増加する。本実施形態の要求実行部12は、シン形式の割り当て領域301に含まれるスワップ領域への書き込みが要求されたデータを、割り当て領域301に含まれないスワップ記憶領域302に書き込む。従って、シン形式の割り当て領域301に含まれるスワップ領域に対して書き込みが繰り返されることによる、割り当て領域301に割り当てられる記憶領域の増加を抑制できる。
The reason is that when the write destination by the access request transmitted by the
本実施形態には、さらに、ストレージ装置3における記憶領域の使用量を抑制することができるという第2の効果がある。
The present embodiment further has a second effect that the amount of use of the storage area in the
その理由は、仮想マシン20が動作を停止した場合、削除部18が、スワップ記憶領域302を解放する(すなわち、スワップ領域ファイル302を削除する)ことによって、ストレージ装置3の空き容量を増加させるからである。
The reason is that, when the
本実施形態には、さらに、スワップ記憶領域302(すなわち、スワップ領域ファイル302)のサイズの増加を抑制することができるという第3の効果がある。 This embodiment further has a third effect that an increase in the size of the swap storage area 302 (that is, the swap area file 302) can be suppressed.
その理由は、スワップ記憶領域302に含まれる使用されてない記憶領域のサイズが、アクセス要求に基づく書き込みが行われる領域より大きい場合、管理部11が、その使用されてない記憶領域を書き込み先に設定するからである。スワップ記憶領域302に含まれる使用されてない記憶領域が分断されている場合、再配置部14が、使用領域の再配置を行うことによって、使用されていない記憶領域を連結する。従って、スワップ記憶領域302は効率よく使用される。
The reason is that when the size of the unused storage area included in the
本実施形態には、さらに、仮想マシン20が送信する領域解放コマンドに基づく処理を実行することによる、情報処理装置2やストレージ装置3の負荷の上昇を抑制することができるという第4の効果がある。
The present embodiment further has a fourth effect that an increase in load on the
その理由は、解放部15が、所定の条件が満たされるまで、解放対象領域の場所を記憶するからである。そして、その所定の条件が満たされた場合に、解放部15は、解放対象領域を解放する。その所定の条件として、例えば、情報処理装置2の負荷が所定の基準以下であること、あるいは、ストレージ装置3の負荷が所定の基準以下であることを設定することができる。それらの条件が、上述の所定の条件として設定されている場合、情報処理装置2やストレージ装置3の負荷の上昇を抑制することができる。
The reason is that the
本実施形態には、仮想マシン20において動作するゲストOS21を改造することなく、上述の第1乃至第4の効果を得ることができるという、第5の効果がある。
The present embodiment has the fifth effect that the first to fourth effects described above can be obtained without modifying the
その理由は、管理部11が、ゲストOS21によって制御される仮想マシン20によるアクセス先のアドレスがスワップ領域に含まれるアドレスであるか否かに基づいて、実際にアクセスされる記憶領域を、他の記憶領域に変更するからである。
The reason is that the
<実装例>
次に、第1の実施形態に基づく、情報処理システム100の実装例について、図面を参照して詳細に説明する。
<Implementation example>
Next, an implementation example of the information processing system 100 based on the first embodiment will be described in detail with reference to the drawings.
図12は、本実装例の機能を模式的に表す図である。 FIG. 12 is a diagram schematically illustrating the function of this implementation example.
図12を参照すると、本実装例は、ゲストOS21と、ハイパーバイザ22Aと、ディスク30とを含む。図12では、ハイパーバイザ22Aを実行する情報処理装置2は省略されている。また、ハイパーバイザ22Aによって制御される情報処理装置2がエミュレートし、ゲストOS21によって制御される仮想マシン20は省略されている。
Referring to FIG. 12, the present implementation example includes a
ゲストOS21は、I/O機能101と、領域解放機能102とを含む。
The
ハイパーバイザ22Aは、スワップ領域確認機能201と、仮想ディスク解析機能202と、I/O確認機能203と、解放領域管理機能204と、スワップ領域削除機能205と、領域情報記憶機能206とを含む。領域貞応記憶機能206は、スワップ領域アドレス251と、解放領域リスト252とを記憶する。
The
ディスク30は、シンディスク301と、スワップ領域ファイル302とを含む。
The
以下では、ゲストOS21によって制御される仮想マシン20の動作を、ゲストOS21あるいはゲストOS21が備える機能の動作として説明する。さらに、ハイパーバイザ22Aによって制御される、情報処理装置2のプロセッサの動作を、ハイパーバイザ22Aまたはハイパーバイザ22Aが備える機能の動作として説明する。
Hereinafter, the operation of the
まず、本実装例の構成要素と、第1の実施形態の構成要素の対応について説明する。 First, the correspondence between the components of this implementation example and the components of the first embodiment will be described.
ゲストOS21が、第1の実施形態における仮想マシン20に相当する。ハイパーバイザ22Aは、第1の実施形態における記憶領域管理装置1及び仮想マシン実行部22に相当する。ディスク30は、ストレージ装置3に相当する。
The
スワップ領域確認機能201は、動作検出部16と、確保部19に相当する。仮想ディスク解析機能202は、スワップ領域検出部17に相当する。I/O確認機能203は、要求検出部10と、管理部11と、要求実行部12に相当する。解放領域管理機能204は、再配置部14と、解放部15に相当する。スワップ領域削除機能205は、動作検出部16と、削除部18に相当する。領域情報記憶機能206は、領域情報記憶部13に相当する。
The swap
図13は、ハイパーバイザ22Aにおいて仮想マシン20が起動する場合に動作する機能を模式的に表すブロック図である。図13から後述される図17までの図において、太線であらわされている機能が、動作する機能を表す。ハイパーバイザ22Aで仮想マシン20が起動した場合、スワップ領域確認機能201はシンディスク301をオープンする。仮想ディスク解析機能202は、シンディスク301に含まれるスワップ領域の論理アドレスを確認する。スワップ領域確認機能201は、確認した論理アドレスをスワップ領域アドレス251に記録する。スワップ領域確認機能201は、さらに、スワップ領域ファイル302及び解放領域リスト252を作成する。
FIG. 13 is a block diagram schematically illustrating functions that operate when the
図14は、ハイパーバイザ22Aにおいて仮想マシン20が停止する場合に動作する機能を模式的に表すブロック図である。ハイパーバイザ22Aにおいて仮想マシン20が停止した場合、スワップ領域削除機能205は、仮想マシン20の停止がサスペンドによるものか判定する。スワップ領域削除機能205は、さらに、スワップ領域ファイル302にダンプファイルが格納されているか確認する。スワップ領域ファイル302が削除可能な場合、スワップ領域削除機能205は、スワップ領域ファイル302、スワップ領域アドレス251、及び解放領域リスト252を削除する。
FIG. 14 is a block diagram schematically illustrating functions that operate when the
図15は、ゲストOS21がI/Oを実施した場合に動作する機能を模式的に表すブロック図である。I/Oの実施あるいはI/Oの発行は、第1の実施形態の説明における、書き込み要求又は読み出し要求の送信に相当する。本実装例では、この場合のI/Oは、アクセス要求(すなわち要求コマンド)を表す。ゲストOS21のI/O機能101がI/Oを実施した場合、I/O確認機能203は、対象領域のアドレスをスワップ領域アドレス251と比較することによって、I/Oの対象領域がスワップ領域であるかどうかを判断する。I/O確認機能203は、対象領域がスワップ領域に含まれない場合、シンディスク301に対してI/Oを発行する。対象領域がスワップ領域に含まれ、さらに、発行されたI/Oが読み出し要求である場合、I/O確認機能203は、スワップ領域ファイル302において対象領域に関連付けられた使用領域からデータを読み出す。対象領域がスワップ領域に含まれ、さらに、発行されたI/Oが書き込み要求の場合、解放領域管理機能204に制御が移される。解放領域管理機能204は、解放領域リスト252を参照することによって、要求された書き込みが解放済みの領域に収まるかを判断する。そして、解放領域管理機能204は、判断の結果に基づき、スワップ領域ファイル302おける適切な書き込み領域を決定する。I/O確認機能203は、決定された書き込み領域に、発行されたI/Oに基づく書き込みを行う。
FIG. 15 is a block diagram schematically illustrating functions that operate when the
図16は、ゲストOS21の領域解放機能102が領域解放要求が行った場合に動作する機能を模式的に表すブロック図である。ハイパーバイザ22AのI/O確認機能203が、ゲストOS21の領域解放機能102が送信した領域解放コマンドを受領する。I/O確認機能203は、領域解放コマンドを受信した場合、解放領域管理機能204に制御を移す。解放領域管理機能204は、解放領域リスト252に解放領域を追加した後、処理を終了する。
FIG. 16 is a block diagram schematically illustrating a function that operates when the
図17は、解放領域管理機能204がスワップ領域ファイル302の容量を削減する場合に動作する機能を模式的に表すブロック図である。解放領域管理機能204が、解放領域リスト252を参照する。解放領域管理機能204は、解放領域リスト252に基づきスワップ領域ファイル302において解放領域に該当する箇所のデータを削除する。さらに、解放領域管理機能204は、スワップ領域ファイル302をデフラグすることによって、スワップ領域ファイル302のサイズを縮小させる。本実装例では、デフラグは、解放領域をスワップ領域ファイル302から除外することにより、スワップ領域ファイル302のサイズを縮小させることを含む。
FIG. 17 is a block diagram schematically illustrating a function that operates when the release
次に、本実装例の動作について、図面を参照して詳細に説明する。 Next, the operation of this implementation example will be described in detail with reference to the drawings.
図8が、仮想マシン20が起動した場合における、本実装例の動作を表す。
FIG. 8 shows the operation of this implementation example when the
仮想マシン20が起動した場合(ステップS101)、スワップ領域確認機能201は、仮想マシン20の起動がサスペンドからの復帰であるか判定する(ステップS102)。さらに、スワップ領域確認機能201は、スワップ領域ファイル302が既に存在しているか確認する(ステップS103)。仮想マシン20の起動がサスペンドからの復帰である場合(ステップS102においてYes)、または、スワップ領域ファイル302が既に存在している場合(ステップS103においてYes)、ハイパーバイザ22Aは、図8に示す動作を終了する。先の仮想マシン20の停止時に削除されなかったスワップ領域ファイル302、スワップ領域アドレス251、及び解放領域リスト252は、そのまま使用される。仮想マシン20の起動がサスペンドからの復帰でない場合(ステップS102においてNo)、さらにスワップ領域ファイル302が存在しない場合(ステップS103においてNo)、動作はステップS104に進む。スワップ領域確認機能201は、シンディスク301をオープンする(ステップS104)。次に、仮想ディスク解析機能202が、シンディスク301に含まれるスワップ領域のアドレスを特定する(ステップS105)。
When the
スワップ領域確認機能201は、特定したアドレスをスワップ領域アドレス251として領域情報記憶機能206に記憶させる(ステップS107)。加えて、スワップ領域確認機能201は、スワップ領域ファイル302を作成する(ステップS106)。また、スワップ領域確認機能201は、解放領域リスト252を作成する(ステップS108)。
The swap
図9が、仮想マシン20が停止した場合における、本実装例の動作を表す。
FIG. 9 shows the operation of this implementation example when the
仮想マシン20が停止した場合(ステップS201)、スワップ領域削除機能205は、仮想マシン20がサスペンドにより停止したか判定する(ステップS202)。スワップ領域削除機能205は、さらに、スワップ領域ファイル302にダンプファイルが格納されているか判定する(ステップS203)。仮想マシン20がサスペンドにより停止した場合(ステップS202においてYes)、及びスワップ領域ファイル302にダンプファイルが格納されている(ステップS202においてYes)、図9に示す動作は終了する。仮想マシン20がサスペンドにより停止していない場合(ステップS202においてNo)、及びスワップ領域ファイル302にダンプファイルが格納されていない(ステップS202においてNo)、動作はステップS204以降に進む。その場合、スワップ領域削除機能205は、スワップ領域アドレス251を削除する(ステップS204)。スワップ領域削除機能205は、さらに、スワップ領域ファイル302を削除する(ステップS205)。スワップ領域削除機能205は、さらに、解放領域リスト252を削除する(ステップS206)。
When the
図10は、ゲストOS21がI/Oを実施した場合における本実装例の動作を表す。
FIG. 10 shows the operation of this implementation example when the
ゲストOS21がI/Oを実施した場合、ハイパーバイザ22AのI/O確認機能203がI/Oを受け取る。I/O確認機能203は、発行されたI/Oのコマンド種別を特定する(ステップS301)。コマンド種別は、第1の実施形態の説明における、アクセス要求の種別に相当する。コマンド種別が読み込みまたは書き込みの場合、I/O確認機能203は、対象領域の論理アドレスを確認する(ステップS302)。I/O確認機能203は、対象領域の論理アドレスとスワップ領域アドレス251として記憶されているアドレスとを比較することによって、対象領域がスワップ領域に含まれるか判定する(ステップS303)。対象領域がスワップ領域外に存在する場合(ステップS303においてNo)、I/O確認機能203は、シンディスク301に対しI/Oを発行する(ステップS304)。対象領域がスワップ領域内に存在する場合(ステップS303においてYes)、さらにI/Oのコマンド種別が読み出しである場合(ステップS305においてNo)、動作はステップS306及びステップS307に進む。I/O確認機能203は、スワップ領域ファイル302からデータを読み出す(ステップS306及びステップS307)。I/Oのコマンド種別が書き込みである場合(ステップS305においてYes)、I/O確認機能203は、書き込み対象アドレスを確認するため解放領域管理機能204に制御を移す。解放領域管理機能204は、解放領域リスト252に基づき、I/Oの要求サイズと解放済みサイズとを比較する(ステップS308)。I/Oの要求サイズは、書き込みが行われる領域のサイズである。解放済みサイズは、解放領域のサイズの合計である。I/Oの要求サイズが解放済みサイズより大きい場合(ステップS308においてYes)、解放領域管理機能204は、スワップ領域ファイル302の末尾のアドレスをI/O確認機能203に通知する。I/Oの要求サイズが解放済みサイズより小さい場合(ステップS308においてNo)、解放領域管理機能204は、I/Oの要求サイズである書き込み要求サイズ以上のサイズを持つ、連続した解放領域が存在するか判定する(ステップS309)。書き込み要求サイズ以上のサイズを持つ、連続した解放領域が存在しない場合(ステップS309においてNo)、解放領域管理機能204はデフラグを行う(ステップS310)。そして、解放領域管理機能204は、解放領域において書き込みの対象領域を確保する(ステップS311)。解放領域管理機能204は、確保した書き込みの対象領域のアドレスをI/O確認機能203に通知する。I/O確認機能203は、スワップ領域ファイル302において、通知されたアドレスに書き込みを行う(ステップS312)。
When the
図18は、記憶領域管理装置1の、仮想マシン20が領域解放コマンドを送信した場合における動作の例を表すフローチャートである。すなわち、図18は、ゲストOS21が領域解放コマンドを発行した場合における、ハイパーバイザ22Aの動作を表す。図18及び後述される図19の各ステップは、図11に示す動作における、同じ符号が付与されたステップと同じである。
FIG. 18 is a flowchart illustrating an example of the operation of the storage
図18に示す動作を、本実装例の動作として説明する。 The operation shown in FIG. 18 will be described as the operation of this implementation example.
ゲストOS21が領域解放コマンドを発行すると、ハイパーバイザ22AのI/O確認機能203が、発行された領域解放コマンドを受信する(ステップS401)。I/O確認機能203は、発行されたコマンド種別を確認する。そして、I/O確認機能203は、コマンド種別が領域解放コマンドであった場合、制御を解放領域管理機能204に移す。解放領域管理機能204は、発行された領域解放コマンドに基づき特定される解放対象アドレス、を解放領域リスト252に追加する(ステップS404)。そして、図18に示す動作は終了する。
When the
図19は、記憶領域管理装置1の、使用領域の再配置を行う動作の例を表すフローチャートである。すなわち、図19は、解放領域管理機能204がスワップ領域ファイル302に対しデフラグを行う動作を表す。
FIG. 19 is a flowchart illustrating an example of an operation of rearranging used areas in the storage
解放領域管理機能204は、所定の条件が満たされているか判定する(ステップS402)。例えば、解放領域管理機能204は、解放領域リスト252に基づき、解放対象領域のサイズの合計が閾値以上であるか判定する。解放対象領域のサイズの合計が閾値以上である場合、解放領域管理機能204は、スワップ領域ファイル302が存在するディスク30へのアクセス量が閾値以下か判定する。アクセス量は、所定の基準に基づき測定された、ディスク30の負荷を表す値である。アクセス量が閾値以下である場合(ステップS403においてYes)、解放領域管理機能204は、解放対象領域をファイルシステムにおいて解放する(ステップS405)。そして、解放領域管理機能204は、スワップ領域ファイル302に対してデフラグを行う(ステップS406)。解放対象領域のサイズの合計が閾値以下である場合、及び、解放対象領域のサイズの合計は閾値以上であるがI/O量も閾値以上である場合、解放領域管理機能204は次の判定を行う。次の判定において、解放領域管理機能204は、スワップ領域ファイル302が存在するディスク30の空き容量が閾値以下であるか判定する。空き容量が閾値以下である場合、解放領域管理機能204は、領域解放を急ぐ必要があると判断する。そして、解放領域管理機能204は、解放(ステップS405)とデフラグ(ステップS406)を実行する。ハイパーバイザ22Aは、図19に示す動作を、例えば、バックグラウンドで定期的に実施する。
The release
<第2の実施形態>
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
<Second Embodiment>
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.
図20は、本実施形態の記憶領域制御装置1Aの構成を表すブロック図である。
FIG. 20 is a block diagram showing the configuration of the storage
図20を参照すると、本実施形態の記憶領域管理装置1Aは、仮想マシン20に割り当てられたストレージ領域である割り当て領域301のうちスワップ領域への書き込み要求を検出する要求検出部10と、書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域302における領域とを関連付ける管理部11と、前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行部12と、を備える。
Referring to FIG. 20, the storage
なお、図20に示す情報処理装置2Aは、記憶領域制御装置1の代わりに記憶領域制御装置1Aを含む点を除き、図1に示す情報処理装置2と同じである。
20 is the same as the
以上で説明した本実施形態には、第1の実施形態の第1の効果がある。その理由は、第1の実施形態の第1の効果が生じる理由と同じである。 The present embodiment described above has the first effect of the first embodiment. The reason is the same as the reason why the first effect of the first embodiment occurs.
は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。 Can be realized by a computer and a program for controlling the computer, dedicated hardware, or a combination of a program for controlling the computer and the computer and dedicated hardware, respectively.
図21は、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、情報処理装置2Aを実現することができる、コンピュータ1000の構成の一例を表す図である。図21を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、ストレージ装置3にアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、又は、情報処理装置2Aとして動作させるプログラムが格納されている。
FIG. 21 is a diagram illustrating an example of a configuration of a
プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、又は、情報処理装置2Aとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、又は、情報処理装置2Aとして動作する。
The
要求検出部10、管理部11、要求実行部12、再配置部14、解放部15、動作検出部16、スワップ領域検出部17、削除部18、確保部19、仮想マシン実行部22は、例えば、プログラムを記憶する記録媒体1005からメモリ1002に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ1001により実現することができる。また、領域情報記憶部13は、コンピュータ1000が含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。あるいは、要求検出部10、管理部11、要求実行部12、領域情報記憶部13、再配置部14、解放部15、動作検出部16、スワップ領域検出部17、削除部18、確保部19、仮想マシン実行部22の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
The
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
1、1A 記憶領域管理装置
2、2A 情報処理装置
3 ストレージ装置
10 要求検出部
11 管理部
12 要求実行部
13 領域情報記憶部
14 再配置部
15 解放部
16 動作検出部
17 スワップ領域検出部
18 削除部
19 確保部
20 仮想マシン
21 ゲストOS
22 仮想マシン実行部
22A ハイパーバイザ
30 ディスク
100 情報処理システム
101 I/O機能
102 領域解放機能
201 スワップ領域確認機能
202 仮想ディスク解析機能
203 I/O確認機能
204 解放領域管理機能
205 スワップ領域削除機能
206 領域情報記憶機能
251 スワップ領域アドレス
252 解放領域リスト
301 割り当て領域(シンディスク)
302 スワップ記憶領域(スワップ領域ファイル)
1000 コンピュータ
1001 プロセッサ
1002 メモリ
1003 記憶装置
1004 I/Oインタフェース
1005 記録媒体
DESCRIPTION OF
22 Virtual
302 Swap storage area (swap area file)
1000
Claims (10)
書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付ける管理手段と、
前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行手段と、
を備える記憶領域管理装置。 Request detection means for detecting a write request to the swap area of the allocated area, which is a storage area allocated to the virtual machine;
A target area that is requested to be written by the write request in the swap area in which a write request is detected, and an area in the swap storage area that is allocated to the swap area from another storage area that is not included in the allocated area. A management means for associating
Request execution means for performing writing based on the write request to a used area that is the area associated with the target area;
A storage area management device.
請求項1に記載の記憶領域管理装置。 In the allocation area, when a write request is made to the allocation area, a storage area is allocated to an area where writing is performed by the write request, and a storage area is not allocated to an area where writing is not performed. The storage area management apparatus according to claim 1, wherein the storage area management apparatus is a virtual storage area of a format.
前記管理手段は、前記解放領域から、大きさが前記対象サイズである連続した領域を特定し、特定した前記領域を、前記使用領域として前記対象領域に関連付ける
請求項1又は2に記載の記憶領域管理装置。 In the swap storage area, further comprising area information storage means for storing a release area data value indicating a location of a release area that is an area not associated with the target area,
The storage area according to claim 1 or 2, wherein the management unit specifies a continuous area having a size equal to the target size from the release area, and associates the specified area with the target area as the use area. Management device.
を備える請求項1乃至3のいずれかに記載の記憶領域管理装置。 When the total size of the release areas is equal to or larger than the target size and there is no continuous release area whose size is equal to or larger than the target size, the continuous release area whose size is equal to or larger than the target size The storage area management device according to claim 1, further comprising a rearrangement unit that moves the used area in the swap storage area so that the used area is generated.
前記記憶領域管理装置は、所定条件が満たされない場合、検出された前記解放要求を保持し、所定条件が満たされた場合、保持する全ての前記解放要求によって解放が要求されている前記書き込み領域に関連付けられた前記使用領域の、前記書き込み領域に対する関連付けを解消し、前記関連付けが解消された前記使用領域が、前記解放領域に含まれるよう、前記解放領域データ値を更新する解放手段をさらに備える
請求項請求項1乃至4のいずれかに記載の記憶領域管理装置。 The request detection means further detects a release request for requesting release of the target area,
When the predetermined condition is not satisfied, the storage area management device holds the detected release request, and when the predetermined condition is satisfied, the storage area management device stores the release area in the write area for which release is requested by all the held release requests. The apparatus further comprises release means for releasing the association of the associated use area with the write area and updating the release area data value so that the use area for which the association has been released is included in the release area. The storage area management device according to claim 1.
請求項5に記載の記憶領域管理装置。 The storage area management device according to claim 5, wherein the pre-relocation unit further moves the use area in the swap storage area so that the use area continues when the predetermined condition is satisfied.
前記仮想マシンの起動が検出された場合、前記仮想マシンがアクセスを行う前記記憶領域において、前記スワップ領域を検出するスワップ領域検出手段と、
検出された前記スワップ領域に応じた大きさの前記スワップ記憶領域を前記他の記憶領域において確保し、確保した前記スワップ記憶領域を前記スワップ領域に割り当てる確保手段と、
前記仮想マシンの動作の停止が検出された場合、前記スワップ記憶領域に対する前記スワップ領域の割り当てと、前記他の記憶領域における前記スワップ記憶領域の確保とを解消する削除手段と、
を備える請求項1乃至6のいずれかに記載の記憶領域管理装置。 Operation detecting means for detecting start and stop of the operation of the virtual machine;
When the activation of the virtual machine is detected, swap area detection means for detecting the swap area in the storage area accessed by the virtual machine;
Securing means for allocating the swap storage area having a size corresponding to the detected swap area in the other storage area, and allocating the secured swap storage area to the swap area;
A deletion unit that cancels allocation of the swap area to the swap storage area and securing of the swap storage area in the other storage area when a stop of the operation of the virtual machine is detected;
The storage area management device according to claim 1, comprising:
前記仮想マシンを実行する仮想マシン実行手段
を備える情報処理システム。 A storage apparatus including the swap storage area and a storage area allocated to the allocation area, and a storage area management apparatus according to any one of claims 1 to 7,
An information processing system comprising virtual machine execution means for executing the virtual machine.
書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付け、
前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う、
記憶領域管理方法。 Detects a write request to the swap area in the allocated area, which is the storage area allocated to the virtual machine,
A target area that is requested to be written by the write request in the swap area in which a write request is detected, and an area in the swap storage area that is allocated to the swap area from another storage area that is not included in the allocated area. ,
Write based on the write request to the use area, which is the area associated with the target area,
Storage area management method.
仮想マシンに割り当てられたストレージ領域である割り当て領域のうちスワップ領域への書き込み要求を検出する要求検出手段と、
書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域における領域とを関連付ける管理手段と、
前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行手段と、
して動作させる記憶領域管理プログラム。 Computer
Request detection means for detecting a write request to the swap area of the allocated area, which is a storage area allocated to the virtual machine;
A target area that is requested to be written by the write request in the swap area in which a write request is detected, and an area in the swap storage area that is allocated to the swap area from another storage area that is not included in the allocated area. A management means for associating
Request execution means for performing writing based on the write request to a used area that is the area associated with the target area;
Storage area management program to be operated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014046450A JP6311365B2 (en) | 2014-03-10 | 2014-03-10 | Storage area management device, storage area management method, and storage area management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014046450A JP6311365B2 (en) | 2014-03-10 | 2014-03-10 | Storage area management device, storage area management method, and storage area management program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015170271A true JP2015170271A (en) | 2015-09-28 |
JP6311365B2 JP6311365B2 (en) | 2018-04-18 |
Family
ID=54202912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014046450A Active JP6311365B2 (en) | 2014-03-10 | 2014-03-10 | Storage area management device, storage area management method, and storage area management program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6311365B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017175350A1 (en) * | 2016-04-07 | 2017-10-12 | 株式会社日立製作所 | Computer system |
KR20180013693A (en) * | 2016-07-29 | 2018-02-07 | 삼성전자주식회사 | System and method for integrating overprovisioned memory devices |
US11030088B2 (en) | 2016-07-29 | 2021-06-08 | Samsung Electronics Co., Ltd. | Pseudo main memory system |
US20210224001A1 (en) * | 2018-08-30 | 2021-07-22 | Sony Corporation | Storage controller, storage system, and information processing system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187541A (en) * | 1996-12-24 | 1998-07-21 | Toshiba Corp | Data storage system and cache control method to be applied to the same |
US5860083A (en) * | 1996-11-26 | 1999-01-12 | Kabushiki Kaisha Toshiba | Data storage system having flash memory and disk drive |
JP2013196421A (en) * | 2012-03-21 | 2013-09-30 | Nec Corp | Virtualization system, virtual server, memory management method, and memory management program |
-
2014
- 2014-03-10 JP JP2014046450A patent/JP6311365B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860083A (en) * | 1996-11-26 | 1999-01-12 | Kabushiki Kaisha Toshiba | Data storage system having flash memory and disk drive |
JPH10187541A (en) * | 1996-12-24 | 1998-07-21 | Toshiba Corp | Data storage system and cache control method to be applied to the same |
JP2013196421A (en) * | 2012-03-21 | 2013-09-30 | Nec Corp | Virtualization system, virtual server, memory management method, and memory management program |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017175350A1 (en) * | 2016-04-07 | 2017-10-12 | 株式会社日立製作所 | Computer system |
KR20180013693A (en) * | 2016-07-29 | 2018-02-07 | 삼성전자주식회사 | System and method for integrating overprovisioned memory devices |
KR102168193B1 (en) | 2016-07-29 | 2020-10-20 | 삼성전자주식회사 | System and method for integrating overprovisioned memory devices |
US11030088B2 (en) | 2016-07-29 | 2021-06-08 | Samsung Electronics Co., Ltd. | Pseudo main memory system |
US20210224001A1 (en) * | 2018-08-30 | 2021-07-22 | Sony Corporation | Storage controller, storage system, and information processing system |
Also Published As
Publication number | Publication date |
---|---|
JP6311365B2 (en) | 2018-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6403164B2 (en) | Memory system | |
JP5028381B2 (en) | Storage apparatus and cache control method | |
JP4902501B2 (en) | Power control method, computer system, and program | |
US20180203637A1 (en) | Storage control apparatus and storage control program medium | |
KR20100011698A (en) | Solid state storage system for data merging and method of controlling the same | |
JP5915378B2 (en) | Storage device and storage device control method | |
JP2016511474A (en) | Deduplication and host-based QoS in tiered storage | |
JP2016162397A (en) | Storage control device, control system and control program | |
US9983826B2 (en) | Data storage device deferred secure delete | |
JP6311365B2 (en) | Storage area management device, storage area management method, and storage area management program | |
US20110238915A1 (en) | Storage system | |
JP6171084B2 (en) | Storage system | |
US8938596B2 (en) | Storage apparatus, control apparatus, and storage apparatus control method | |
JP5923913B2 (en) | Storage device, storage device control method, and storage system | |
JP2007249728A (en) | Disk array device | |
US10430287B2 (en) | Computer | |
JP2021135538A (en) | Storage control apparatus and storage control program | |
JP5910596B2 (en) | Storage management system, storage management method, program, and information processing system | |
JP2013015990A (en) | Information processing system, information processing program and information processing method | |
US9058113B2 (en) | Storage region providing device, storage region providing method, and recording medium | |
JP5334048B2 (en) | Memory device and computer | |
JP6254986B2 (en) | Information processing apparatus, access controller, and information processing method | |
JP6243884B2 (en) | Information processing apparatus, processor, and information processing method | |
JP5471677B2 (en) | Virtual disk control system, method and program | |
JP6652605B2 (en) | Memory system control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180207 |
|
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: 20180220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6311365 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |