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 PDF

Info

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
Application number
JP2014046450A
Other languages
Japanese (ja)
Other versions
JP6311365B2 (en
Inventor
英介 津田
Eisuke Tsuda
英介 津田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014046450A priority Critical patent/JP6311365B2/en
Publication of JP2015170271A publication Critical patent/JP2015170271A/en
Application granted granted Critical
Publication of JP6311365B2 publication Critical patent/JP6311365B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide a storage area management apparatus capable of restraining a storage area allocated to a virtual disk from increasing when a swap area of the virtual disk in shin format is accessed.SOLUTION: The storage area management apparatus according to the present invention comprises: request detection means for detecting a write request to a swap area in an allocation area which is a storage area allocated by a virtual machine; management means for associating a target region to which a write is requested by the write request in the swap area in which the write request is detected, with a region in a swap storage area allocated to the swap area from an another storage area not included in the allocation area; and request execution means for executing the write based on the write request to a use region, the region associated with the object region.

Description

本発明は、記憶領域の割り当てを管理する技術に関する。   The present invention relates to a technique for managing allocation of storage areas.

特許文献1には、仮想マシンが稼働する仮想サーバが記載されている。仮想マシンには、ストレージ上にある専用のスワップディスクが割り当てられている。特許文献1の仮想サーバは、スワップディスクに対するI/O(Input/Output)をキャッシュするスワップドライブ用メモリを備える。   Patent Document 1 describes a virtual server on which a virtual machine operates. A dedicated swap disk on the storage is assigned to the virtual machine. The virtual server of Patent Document 1 includes a swap drive memory that caches I / O (Input / Output) for a swap disk.

特許文献2には、スワップ領域が不足した場合にスワップファイルを作成し、作成したスワップファイルをスワップ領域に追加し、スワップ領域が余った場合には追加したスワップファイルを削除する計算機が記載されている。   Patent Document 2 describes a computer that creates a swap file when the swap area is insufficient, adds the created swap file to the swap area, and deletes the added swap file when the swap area remains. Yes.

特許文献3には、アプリケーションプログラムの起動時に、アプリケーションプログラムの起動に必要なメモリ容量が実装メモリ容量より小さい場合、必要なサイズのスワップ領域を磁気ディスク装置の空き領域に割り当てる情報処理装置が記載されている。特許文献3の情報処理装置は、アプリケーションプログラムの終了時に、割り当てたスワップ領域を解放する。   Patent Document 3 describes an information processing apparatus that allocates a swap area having a required size to a free area of a magnetic disk device if the memory capacity required for starting the application program is smaller than the mounted memory capacity when the application program is started. ing. The information processing apparatus of Patent Document 3 releases the allocated swap area when the application program ends.

特開2013−196421号公報JP 2013-196421 A 特開平6−052059号公報JP-A-6-052059 特開平6−168184号公報JP-A-6-168184

仮想ディスクに使用する記憶領域を削減する方法として、シンプロビジョニングと呼ばれる方法がある。シンプロビジョニングでは、仮想ディスクを提供するストレージシステムは、初期状態において、例えば仮想ディスクとして設定されている記憶領域全体ではなく仮想ディスクの一部の領域にのみ記憶領域を割り当てる。そして、ストレージシステムは、仮想ディスクの使用量に応じて、その仮想ディスクに割り当てられる記憶領域を追加する。例えば、仮想ディスクに対して書き込みが行われると、ストレージシステムは、仮想ディスクの書き込みが行われた部分に新たに記憶領域を割り当てる。そして、ストレージシステムは、その割り当てられた記憶領域に書き込まれたデータを格納する。情報処理装置は、シンプロビジョニングに基づき構築された仮想ディスクに対して、シンプロビジョニングによらないディスクに対してアクセスする場合と同様にアクセスする。以下の説明において、シンプロビジョニングによって構築された仮想ディスクを、シン形式の仮想ディスク、あるいは、単に、シンディスクと表記することにする。   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 Patent Document 1, when writing exceeding the capacity of the swap drive memory occurs in the swap area, writing occurs on the swap disk. In the technique of Patent Document 1, when the swap disk is a thin disk, it is not possible to suppress an increase in the storage area allocated to the thin disk in accordance with writing to the swap disk.

特許文献2に記載されている計算機は、必要に応じてスワップファイルを作成する。そして、特許文献2に記載されている計算機は、作成したスワップファイルが不要になった場合、そのスワップファイルを削除する。スワップファイルがシンディスクに作成される場合、そのシンディスクに割り当てられる記憶領域の量は、スワップファイルの作成と削除の繰り返しに応じて増加する。   The computer described in Patent Document 2 creates a swap file as necessary. And when the created swap file becomes unnecessary, the computer described in patent document 2 deletes the swap file. When a swap file is created on a thin disk, the amount of storage area allocated to the thin disk increases as the swap file is created and deleted.

特許文献3に記載されている情報処理装置は、磁気ディスク装置の空き領域にスワップ領域を作成する。そして、特許文献3に記載されている情報処理装置は、作成されたスワップ領域が不要になった場合、そのスワップ領域を削除する。磁気ディスク装置が、シンプロビジョニングに基づき構築されている仮想的な磁気ディスク装置である場合、その仮想的な磁気ディスク装置に割り当てられる記憶領域の容量は、スワップ領域の作成と削除の繰り返しに応じて増加する。   The information processing apparatus described in Patent Document 3 creates a swap area in a free area of a magnetic disk device. Then, when the created swap area becomes unnecessary, the information processing apparatus described in Patent Document 3 deletes the swap area. When the magnetic disk device is a virtual magnetic disk device constructed based on thin provisioning, the capacity of the storage area allocated to the virtual magnetic disk device depends on the repeated creation and deletion of the swap area. To increase.

すなわち、特許文献1及び2の技術では、情報処理装置がアクセスする記憶装置がシンディスクである場合、その記憶装置内のスワップ領域に対する書き込み及び削除に応じて増加する、その記憶装置に割り当てられる記憶領域の増加を抑制することはできない。   That is, in the techniques of Patent Documents 1 and 2, when the storage device accessed by the information processing device is a thin disk, the storage allocated to the storage device increases in accordance with writing and deletion to the swap area in the storage device. The increase in area cannot be suppressed.

本発明の目的の一つは、シン形式の仮想ディスク内のスワップ領域へのアクセスに伴う、その仮想ディスクに割り当てられる記憶領域の増加を抑制することができる記憶領域管理装置を提供することである。   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.

図1は、第1の実施形態の情報処理システム100の構成を表す図である。FIG. 1 is a diagram illustrating a configuration of an information processing system 100 according to the first embodiment. 図2は、シンプロビジョニングによって構築された仮想ディスクであるシンディスクを模式的に表す図であるFIG. 2 is a diagram schematically illustrating a thin disk that is a virtual disk constructed by thin provisioning. 図3は、再配置前後の使用領域及び解放領域の配置を模式的に表す図である。FIG. 3 is a diagram schematically illustrating the arrangement of the use area and the release area before and after the rearrangement. 図4は、領域情報記憶部13が記憶する、互いに関連付けられた対象領域及び使用領域の場所の例を模式的に表す図である。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 information storage unit 13. 図5は、領域情報記憶部13が記憶する、互いに関連付けられた対象領域及び使用領域の場所の第2の例を模式的に表す図である。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 information storage unit 13. 図6は、領域情報記憶部13が記憶する、解放領域の場所の例を模式的に表す図である。FIG. 6 is a diagram schematically illustrating an example of the location of the release area stored in the area information storage unit 13. 図7は、領域情報記憶部13が記憶する、解放領域の場所の第2の例を模式的に表す図である。FIG. 7 is a diagram schematically illustrating a second example of the location of the release area stored in the area information storage unit 13. 図8は、第1の実施形態の記憶領域管理装置1の、仮想マシン20が動作を開始した場合における動作の例を表すフローチャートである。FIG. 8 is a flowchart illustrating an example of the operation of the storage area management device 1 according to the first embodiment when the virtual machine 20 starts the operation. 図9は、第1の実施形態の記憶領域管理装置1の、仮想マシン20が停止する場合における動作の例を表すフローチャートである。FIG. 9 is a flowchart illustrating an example of the operation of the storage area management device 1 according to the first embodiment when the virtual machine 20 is stopped. 図10は、第1の実施形態の記憶領域管理装置1の、仮想マシン20がアクセス要求を送信した場合における動作の例を表すフローチャートである。FIG. 10 is a flowchart illustrating an example of an operation when the virtual machine 20 transmits an access request in the storage area management apparatus 1 according to the first embodiment. 図11は、第1の実施形態の記憶領域管理装置1の、仮想マシン20が解放要求コマンドを送信する場合における動作の例を表すフローチャートである。FIG. 11 is a flowchart illustrating an example of an operation of the storage area management device 1 according to the first embodiment when the virtual machine 20 transmits a release request command. 図12は、第1の実施形態に基づく実装例の機能を模式的に表す図である。FIG. 12 is a diagram schematically illustrating functions of an implementation example based on the first embodiment. 図13は、ハイパーバイザ22Aにおいて仮想マシン20が起動する場合に動作する機能を模式的に表すブロック図である。FIG. 13 is a block diagram schematically illustrating functions that operate when the virtual machine 20 is activated in the hypervisor 22A. 図14はハイパーバイザ22Aにおいて仮想マシン20が停止する場合に動作する機能を模式的に表すブロック図である。FIG. 14 is a block diagram schematically illustrating functions that operate when the virtual machine 20 stops in the hypervisor 22A. 図15は、ゲストOS21がI/Oを実施した場合に動作する機能を模式的に表すブロック図である。FIG. 15 is a block diagram schematically illustrating functions that operate when the guest OS 21 performs I / O. 図16は、ゲストOS21の領域解放機能102が領域解放要求が行った場合に動作する機能を模式的に表すブロック図である。FIG. 16 is a block diagram schematically illustrating a function that operates when the area release function 102 of the guest OS 21 makes an area release request. 図17は、解放領域管理機能204がスワップ領域ファイル302の容量を削減する場合に動作する機能を模式的に表すブロック図である。FIG. 17 is a block diagram schematically illustrating a function that operates when the release area management function 204 reduces the capacity of the swap area file 302. 図18は、記憶領域管理装置1の、仮想マシン20が領域解放コマンドを送信した場合における動作の例を表すフローチャートである。FIG. 18 is a flowchart illustrating an example of the operation of the storage area management device 1 when the virtual machine 20 transmits an area release command. 図19は、記憶領域管理装置1の、使用領域の再配置を行う動作の例を表すフローチャートである。FIG. 19 is a flowchart illustrating an example of an operation of rearranging used areas in the storage area management apparatus 1. 図20は、本実施形態の記憶領域制御装置1Aの構成を表すブロック図である。FIG. 20 is a block diagram showing the configuration of the storage area control device 1A of this embodiment. 図21は、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、情報処理装置2Aを実現することができる、コンピュータ1000の構成の一例を表す図である。FIG. 21 is a diagram illustrating an example of a configuration of a computer 1000 that can implement the storage area management apparatus 1, the storage area management apparatus 1A, the information processing apparatus 2, and the information processing apparatus 2A.

次に、本発明の実施の形態について説明する。   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 information processing device 2 and a storage device 3. The information processing device 2 and the storage device 3 are connected to each other. The information processing device 2 includes a storage area management device 1.

記憶領域管理装置1は、要求検出部10と、管理部11と、要求実行部12と、領域情報記憶部13と、再配置部14と、解放部15と、動作検出部16と、スワップ領域検出部17と、削除部18と、確保部19とを含む。   The storage area management device 1 includes a request detection unit 10, a management unit 11, a request execution unit 12, a region information storage unit 13, a relocation unit 14, a release unit 15, an operation detection unit 16, and a swap area. A detection unit 17, a deletion unit 18, and a securing unit 19 are included.

情報処理装置2は、更に、仮想マシン20を実行する仮想マシン実行部22を含む。仮想マシン20において、ゲストOS(Operating System)201が動作している。仮想マシン実行部22は、一般に、ハイパーバイザと呼ばれる、仮想マシン20を実現するソフトウェアと、ハイパーバイザを実行する、情報処理装置2のプロセッサとによって実現される。仮想マシン20は、エミュレートされたコンピュータである。仮想マシン20で動作するゲストOS21において、アプリケーションプログラムが動作していてもよい。以下では、仮想マシン20の数は1台である場合について説明する。しかし、複数の仮想マシン20が動作していてもよい。   The information processing apparatus 2 further includes a virtual machine execution unit 22 that executes the virtual machine 20. In the virtual machine 20, a guest OS (Operating System) 201 is operating. The virtual machine execution unit 22 is generally realized by software called a hypervisor that realizes the virtual machine 20 and a processor of the information processing apparatus 2 that executes the hypervisor. The virtual machine 20 is an emulated computer. An application program may be running on the guest OS 21 running on the virtual machine 20. Hereinafter, a case where the number of virtual machines 20 is one will be described. However, a plurality of virtual machines 20 may be operating.

なお、ハイパーバイザが記憶領域管理装置1の各構成要素を実現する機能を備えていてもよい。そして、ハイパーバイザを実行するプロセッサが、記憶領域管理装置1として動作してもよい。   Note that the hypervisor may have a function of realizing each component of the storage area management device 1. A processor that executes the hypervisor may operate as the storage area management apparatus 1.

以下の説明において、ゲストOS21を実行するプロセッサが、アクセス要求を送信することを、「仮想マシン20がアクセス要求を送信する」と表記する。同様に、ゲストOS21において動作するアプリケーションプログラムが、ゲストOS21を介してアクセス要求を送信することも、「仮想マシン20がアクセス要求を送信する」と表記する。   In the following description, the fact that the processor that executes the guest OS 21 transmits an access request is referred to as “the virtual machine 20 transmits an access request”. Similarly, an application program operating in the guest OS 21 sending an access request via the guest OS 21 is also expressed as “the virtual machine 20 sends an access request”.

アクセス要求は、例えば、後述の割り当て領域301に対するアクセス要求である。アクセス要求は、例えば、割り当て領域301に格納されているデータを読み出す要求である読み出し要求である。アクセス要求は、例えば、割り当て領域301にデータを書き込む要求である書き込み要求である。アクセス要求は、例えば、スワップ領域において使用されている領域の少なくとも一部を、使用しない状態に戻す要求である解放要求である。要求は、要求の種別と、要求の対象である領域を表すデータ値とを含む。アクセス要求は、他の要求であってもよい。要求の種別は、例えば、書き込み、読み出し、解放などである。要求の対象である領域は、例えば、アクセス要求を送信する情報処理装置2に割り当てられている記憶領域のうち、アクセス要求によってアクセスが行われる範囲である。以下の説明において、要求の対象である領域を、対象領域と表記することにする。アクセス要求が読み出し要求である場合、アクセス領域は、読み出されるデータが格納されている範囲である。アクセス要求が書き込み要求である場合、アクセス領域は、書き込みが行われる領域である。アクセス要求が解放要求である場合、対象領域は、使用しない状態に戻される領域である。以下の説明において、アクセス要求を、要求コマンドとも表記することにする。   The access request is, for example, an access request for an allocation area 301 described later. The access request is, for example, a read request that is a request for reading data stored in the allocation area 301. The access request is, for example, a write request that is a request for writing data in the allocation area 301. The access request is, for example, a release request that is a request to return at least a part of the area used in the swap area to a state where it is not used. The request includes the type of request and a data value representing the area that is the target of the request. The access request may be another request. The request type is, for example, write, read, release, etc. The area that is the target of the request is, for example, a range that is accessed by the access request in the storage area allocated to the information processing apparatus 2 that transmits the access request. In the following description, an area that is a request target will be referred to as a target area. When the access request is a read request, the access area is a range in which read data is stored. When the access request is a write request, the access area is an area where writing is performed. When the access request is a release request, the target area is an area that is returned to the unused state. In the following description, the access request is also expressed as a request command.

ストレージ装置3は、上述のシンディスクとして構築された記憶領域である割り当て領域301と、スワップ記憶領域302とを含む。以下の説明において、割り当て領域301を、シンディスク301とも表記することにする。ストレージ装置3は、例えば、1台以上の記憶装置によって実現される。記憶装置は、例えば、ハードディスク装置や、SSD(Solid State Drive)等である。スワップ記憶領域302は、割り当て領域301とは別の記憶領域である。スワップ記憶領域302は、割り当て領域301とは別の記憶領域に作成されたファイルであってもよい。以下の説明において、スワップ記憶領域302を、スワップ領域ファイル302とも表記することにする。   The storage device 3 includes an allocation area 301 that is a storage area constructed as the above-described thin disk, and a swap storage area 302. In the following description, the allocation area 301 is also referred to as a thin disk 301. The storage device 3 is realized by, for example, one or more storage devices. The storage device is, for example, a hard disk device or an SSD (Solid State Drive). The swap storage area 302 is a storage area different from the allocation area 301. The swap storage area 302 may be a file created in a storage area different from the allocation area 301. In the following description, the swap storage area 302 is also referred to as a swap area file 302.

図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 virtual disk 1 and the virtual disk 2 are virtual storage devices constructed by thin provisioning by a storage controller (not shown), for example. The information processing apparatus 2 using the virtual disk can access the virtual disk in the same way as accessing a physical storage device. However, the storage area is allocated from the storage area only to the used area among the storage areas accessible from the information processing apparatus 2 as the storage area of the virtual disk. The used area is, for example, an area where data has been written even once. A storage area is not allocated to an area that is not used. In the example illustrated in FIG. 2, storage areas are allocated from the storage area to the written areas of the virtual disk 1 and the virtual disk 2. The written area is the area used as described above.

割り当て領域301は、仮想マシン20に割り当てられている記憶領域である。仮想マシン20が送信するアクセス要求によるアクセスの対象である対象領域は、割り当て領域301に含まれるいずれかの領域である。   The allocation area 301 is a storage area allocated to the virtual machine 20. A target area that is an access target according to an access request transmitted by the virtual machine 20 is any area included in the allocation area 301.

スワップ記憶領域302は、割り当て領域301とは別の記憶領域に存在する記憶領域である。スワップ記憶領域302は、シン形式のディスクにおける記憶領域に確保されていてもよい。スワップ記憶領域302は、シン形式のディスクにおける記憶領域に確保されていなくてもよい。   The swap storage area 302 is a storage area that exists in a storage area different from the allocation area 301. The swap storage area 302 may be secured in a storage area in a thin format disk. The swap storage area 302 may not be secured in the storage area of the thin format disk.

以下では、主に、仮想マシン20は1台であり、割り当て領域301に含まれるスワップ領域は1つであり、スワップ記憶領域302は1つである場合について説明を行う。仮想マシン20、割り当て領域301に含まれるスワップ領域、及びスワップ記憶領域302は、それぞれ複数であってもよい。   In the following, a case where there is one virtual machine 20, one swap area included in the allocation area 301, and one swap storage area 302 will be mainly described. The virtual machine 20, the swap area included in the allocation area 301, and the swap storage area 302 may be plural.

次に、記憶領域管理装置1の構成要素について説明する。   Next, components of the storage area management apparatus 1 will be described.

動作検出部16は、仮想マシン20の起動と、仮想マシン20の動作の停止とを検出する。起動は、仮想マシン20が動作を開始することである。起動は、サスペンド状態からの復帰を含む。動作の停止は、サスペンド状態への移行を含む。仮想マシン20の起動が検出された場合、動作検出部16は、さらに、仮想マシン20の起動がサスペンド状態からの復帰であるか否かを検出してもよい。   The operation detection unit 16 detects the start of the virtual machine 20 and the stop of the operation of the virtual machine 20. Activation is when the virtual machine 20 starts operation. Activation includes returning from the suspended state. Stopping the operation includes transition to the suspended state. When the activation of the virtual machine 20 is detected, the operation detection unit 16 may further detect whether the activation of the virtual machine 20 is a return from the suspended state.

仮想マシン20の起動が検出された場合、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在するか否かを判定する。仮想マシン20の起動が検出され、更に、検出された起動がサスペンド状態からの復帰である場合に、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在するか否かを判定してもよい。   When activation of the virtual machine 20 is detected, the operation detection unit 16 determines whether or not there is a swap storage area 302 associated with the swap area of the virtual machine 20 for which activation has been detected. When the activation of the virtual machine 20 is detected, and when the detected activation is a return from the suspended state, the operation detection unit 16 performs swap storage associated with the swap area of the virtual machine 20 where the activation is detected. It may be determined whether or not the region 302 exists.

スワップ記憶領域302が、ストレージ装置3が含む記憶領域に作成されたファイルである場合、前述のように、スワップ記憶領域302は、スワップ領域ファイル302とも表記される。その場合、動作検出部16は、起動が検出された仮想マシン20に関連付けられている、スワップ領域ファイル302が存在するか否かを判定すればよい。さらに、仮想マシン20が一台である場合、動作検出部16は、スワップ領域ファイル302が存在するか否かを判定すればよい。   When the swap storage area 302 is a file created in a storage area included in the storage device 3, the swap storage area 302 is also expressed as a swap area file 302 as described above. In this case, the operation detection unit 16 may determine whether or not there is a swap area file 302 associated with the virtual machine 20 whose activation has been detected. Furthermore, when there is one virtual machine 20, the operation detection unit 16 may determine whether or not the swap area file 302 exists.

起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在する場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域に、存在することが判定されたスワップ記憶領域302が関連付けられた状態を継続させる。   When there is a swap storage area 302 associated with the swap area of the virtual machine 20 whose activation has been detected, the storage area management device 1 determines that the swap storage is present in the swap area of the virtual machine 20. The state in which the area 302 is associated is continued.

起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在しない場合、スワップ領域検出部17は、起動が検出された仮想マシン20に割り当てられている割り当て領域301を開く。そして、スワップ領域検出部17は、割り当て領域301において、スワップ領域を検出し、検出されたスワップ領域の場所を特定する。スワップ領域検出部17は、検出されたスワップ領域の場所を、例えば、領域情報記憶部13に格納すればよい。スワップ領域検出部17は、検出されたスワップ領域の場所を、確保部19に送信してもよい。スワップ領域や他の領域の場所は、例えば、その領域の先頭アドレスとその領域の大きさとによって表される。あるいは、スワップ領域や他の領域の場所は、例えば、その領域の先頭アドレスとその領域の末尾アドレスとによって表されてもよい。スワップ領域の場所を表すアドレスは、例えば、仮想マシン20による割り当て領域301に対するアクセスにおいて使用される論理アドレスによって表されて入ればよい。   When there is no swap storage area 302 associated with the swap area of the virtual machine 20 whose activation has been detected, the swap area detection unit 17 opens the allocation area 301 allocated to the virtual machine 20 whose activation has been detected. . Then, the swap area detection unit 17 detects the swap area in the allocation area 301 and specifies the location of the detected swap area. The swap area detection unit 17 may store the location of the detected swap area in, for example, the area information storage unit 13. The swap area detecting unit 17 may transmit the location of the detected swap area to the securing unit 19. The location of the swap area or other area is represented by, for example, the start address of the area and the size of the area. Alternatively, the location of the swap area or other area may be represented by, for example, the start address of the area and the end address of the area. For example, the address indicating the location of the swap area may be represented by a logical address used for accessing the allocation area 301 by the virtual machine 20.

確保部19は、仮想マシン20の起動が検出された場合、スワップ記憶領域302を作成する。確保部19は、さらに、領域情報記憶部13に格納されている、後述の解放領域リストを初期化する。後述されるように、解放領域は、少なくとも一度、スワップ記憶領域302としてデータが書き込まれ、その後、後述される領域の解放が行われた記憶領域である。解放領域リストは、それぞれの解放領域の位置の集合である。確保部19は、さらに、例えば管理部11からの確保指示に基づき、確保されているスワップ記憶領域302の大きさを拡張する。確保指示は、サイズを含んでいればよい。確保部19は、例えば、存在するスワップ記憶領域302の末尾の次のアドレスが先頭である、指示に基づくサイズの記憶領域を確保し、確保した記憶領域をスワップ記憶領域302に併合すればよい。   The securing unit 19 creates the swap storage area 302 when the activation of the virtual machine 20 is detected. The securing unit 19 further initializes a later-described release area list stored in the area information storage unit 13. As will be described later, the release area is a storage area in which data is written as the swap storage area 302 at least once, and then the area release described later is performed. The release area list is a set of positions of the respective release areas. The securing unit 19 further expands the size of the secured swap storage area 302 based on, for example, a securing instruction from the management unit 11. The securing instruction only needs to include the size. The securing unit 19 may secure, for example, a storage area having a size based on an instruction starting from the next address at the end of the existing swap storage area 302 and merging the secured storage area with the swap storage area 302.

確保部19は、例えば、仮想マシン20の起動が検出された場合、ストレージ装置3に含まれ、割り当て領域301とは異なる記憶領域において、スワップ記憶領域302の初期位置を決定する。   For example, when the activation of the virtual machine 20 is detected, the securing unit 19 determines the initial position of the swap storage area 302 in a storage area included in the storage apparatus 3 and different from the allocation area 301.

確保部19は、スワップ記憶領域302の初期位置として、スワップ記憶領域302の先頭アドレスを決定すればよい。確保部19は、例えば、スワップ記憶領域302が確保される記憶領域の先頭アドレスを、スワップ記憶領域302の先頭アドレスにすればよい。   The securing unit 19 may determine the start address of the swap storage area 302 as the initial position of the swap storage area 302. For example, the reservation unit 19 may set the start address of the storage area in which the swap storage area 302 is reserved as the start address of the swap storage area 302.

確保部19は、スワップ記憶領域302の初期位置として、スワップ記憶領域302の先頭アドレスのみを決定してもよい。その場合、スワップ記憶領域302がスワップ領域ファイル302であれば、確保部19は、例えば、サイズが0のスワップ領域ファイル302ファイルを作成すればよい。   The securing unit 19 may determine only the start address of the swap storage area 302 as the initial position of the swap storage area 302. In this case, if the swap storage area 302 is the swap area file 302, the securing unit 19 may create a swap area file 302 file having a size of 0, for example.

確保部19は、さらに、決定された先頭アドレスによって表される位置を先頭とする、所定の大きさのスワップ記憶領域302を確保してもよい。そして、確保部19は、スワップ記憶領域302の、例えば先頭アドレスと大きさによって表される場所を、領域情報記憶部13に格納してもよい。   The securing unit 19 may further secure a swap storage area 302 having a predetermined size starting from the position represented by the determined leading address. Then, the securing unit 19 may store, in the area information storage unit 13, a location represented by, for example, the start address and the size of the swap storage area 302.

少なくとも一つの解放領域の場所を含む解放領域リストが存在する場合、確保部19は、その解放領域リストを削除することによって、解放領域リストの初期化を行えばよい。解放領域リストが存在しない場合、確保部19は、解放領域リストの初期化として、何もしなくてよい。   If there is a release area list including at least one release area location, the securing unit 19 may initialize the release area list by deleting the release area list. When the release area list does not exist, the securing unit 19 does not have to do anything to initialize the release area list.

動作検出部16によって、仮想マシン20の動作の停止が検出された場合、削除部18は、確保されているスワップ記憶領域302の解放が可能か否かを判定する。スワップ記憶領域302がファイルによって実現されている場合、削除部18は、スワップ記憶領域302であるスワップ領域ファイル302の削除が可能か否かを判定すればよい。   When the operation detecting unit 16 detects that the operation of the virtual machine 20 is stopped, the deleting unit 18 determines whether or not the reserved swap storage area 302 can be released. When the swap storage area 302 is realized by a file, the deletion unit 18 may determine whether or not the swap area file 302 that is the swap storage area 302 can be deleted.

削除部18は、例えば、スワップ記憶領域302にダンプファイルが格納されているか否かを判定することによって、スワップ記憶領域302の解放が可能か否かを判定すればよい。スワップ記憶領域302にダンプファイルが格納されている場合、削除部18は、スワップ記憶領域302の解放が可能ではないと判定すればよい。スワップ記憶領域302にダンプファイルが格納されていない場合、削除部18は、スワップ記憶領域302の解放が可能であると判定すればよい。削除部18は、まず、仮想マシン20の動作の停止が、サスペンド状態への移行であるか否かを判定してもよい。その場合、仮想マシン20の動作の停止がサスペンド状態への移行である場合、削除部18は、スワップ記憶領域302の解放が可能ではないと判定すればよい。仮想マシン20の動作の停止がサスペンド状態への移行でない場合、削除部18は、さらに、スワップ記憶領域302にダンプファイルが格納されているか否かを判定することによって、スワップ記憶領域302の解放が可能か否かを判定すればよい。   The deleting unit 18 may determine whether or not the swap storage area 302 can be released by determining whether or not a dump file is stored in the swap storage area 302, for example. When the dump file is stored in the swap storage area 302, the deletion unit 18 may determine that the swap storage area 302 cannot be released. If no dump file is stored in the swap storage area 302, the deletion unit 18 may determine that the swap storage area 302 can be released. The deletion unit 18 may first determine whether the stop of the operation of the virtual machine 20 is a transition to the suspended state. In this case, when the stop of the operation of the virtual machine 20 is the transition to the suspended state, the deletion unit 18 may determine that the swap storage area 302 cannot be released. When the stop of the operation of the virtual machine 20 is not the transition to the suspended state, the deletion unit 18 further determines whether or not the dump file is stored in the swap storage area 302, thereby releasing the swap storage area 302. What is necessary is just to determine whether it is possible.

判定の結果、確保されているスワップ記憶領域302の解放が可能である場合、削除部18は、スワップ記憶領域302を解放する。すなわち、削除部18は、仮想マシン20のスワップ領域に対するスワップ記憶領域302の割り当てを解除する。さらに、ストレージ装置3に含まれる、割り当て領域301ではない記憶領域に確保されている、スワップ記憶領域302を解放する。スワップ記憶領域302がファイルによって実現されている場合、削除部18は、スワップ記憶領域302であるスワップ領域ファイル302を削除すればよい。   If it is determined that the reserved swap storage area 302 can be released, the deletion unit 18 releases the swap storage area 302. That is, the deletion unit 18 releases the allocation of the swap storage area 302 to the swap area of the virtual machine 20. Further, the swap storage area 302 secured in the storage area included in the storage apparatus 3 and not the allocation area 301 is released. When the swap storage area 302 is realized by a file, the deletion unit 18 may delete the swap area file 302 that is the swap storage area 302.

要求検出部10は、仮想マシン20が送信するアクセス要求を検出する。そして、要求検出部10は、検出したアクセス要求に基づき、要求の種別と対象領域とを特定する。さらに、要求検出部10は、受信したアクセス要求に基づき特定された対象領域が、割り当て領域301のうちスワップ領域に含まれるか否かを、例えば対象領域の場所とスワップ領域の場所を比較することによって判定する。割り当て領域301におけるスワップ領域の場所は、例えば、領域情報記憶部13に格納されていればよい。   The request detection unit 10 detects an access request transmitted by the virtual machine 20. Then, the request detection unit 10 specifies the request type and the target area based on the detected access request. Further, the request detection unit 10 compares the location of the target area with the location of the swap area, for example, whether or not the target area specified based on the received access request is included in the swap area of the allocation area 301. Judgment by. For example, the location of the swap area in the allocation area 301 may be stored in the area information storage unit 13.

特定された対象領域が、割り当て領域301のスワップ領域に含まれない場合、管理部11は、要求検出部10によって検出されたアクセス要求を、そのまま要求実行部12に送信する。   If the identified target area is not included in the swap area of the allocation area 301, the management unit 11 transmits the access request detected by the request detection unit 10 to the request execution unit 12 as it is.

アクセス要求を受信した要求実行部12は、アクセス要求に応じたアクセスを行う。特定された対象領域が、割り当て領域301のスワップ領域に含まれない場合、要求実行部12が行うアクセスのアクセス先は、割り当て領域301である。   Upon receiving the access request, the request execution unit 12 performs access according to the access request. When the identified target area is not included in the swap area of the allocation area 301, the access destination of the access performed by the request execution unit 12 is the allocation area 301.

特定された対象領域が、割り当て領域301のスワップ領域に含まれる場合、要求検出部10は、さらに、アクセス要求の種別を特定する。   When the specified target area is included in the swap area of the allocation area 301, the request detection unit 10 further specifies the type of access request.

特定されたアクセス要求の種別が読み出しである場合、管理部11は、検出されたアクセス要求によってアクセスされる対象領域に関連付けられている、スワップ記憶領域302に含まれる領域を特定する。後述されるように、対象領域と、スワップ記憶領域302に含まれる領域との間の関連付けを表す情報は、領域情報記憶部13に格納されていればよい。管理部11は、領域情報記憶部13に格納されている対象領域と、スワップ記憶領域302に含まれる領域との間の関連付けを表す情報に基づき、対象領域に関連付けられている、スワップ記憶領域302に含まれる領域を特定すればよい。   When the type of the identified access request is read, the management unit 11 identifies an area included in the swap storage area 302 that is associated with the target area accessed by the detected access request. As will be described later, the information indicating the association between the target area and the area included in the swap storage area 302 may be stored in the area information storage unit 13. The management unit 11 uses the swap storage area 302 associated with the target area based on information indicating the association between the target area stored in the area information storage unit 13 and the area included in the swap storage area 302. What is necessary is just to specify the area | region contained in.

特定されたアクセス要求の種別が書き込みである場合、管理部11は、検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれるいずれかの領域に関連付けられているか判定する。検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれる領域に関連付けられている場合、管理部11は、その対象領域に関連付けられている領域の、例えば先頭アドレスを、要求実行部12に送信する。その場合、管理部11は、検出されたアクセス要求と、そのアクセス要求によってアクセスされる領域の先頭アドレスとして、対象領域に関連付けられている領域の先頭アドレスを、要求実行部12に送信すればよい。   When the identified access request type is write, the management unit 11 determines whether the target area accessed by the detected access request is associated with any area included in the swap storage area 302. When the target area accessed by the detected access request is associated with the area included in the swap storage area 302, the management unit 11 requests, for example, the start address of the area associated with the target area. It transmits to the execution part 12. In this case, the management unit 11 may transmit the detected access request and the start address of the area associated with the target area to the request execution unit 12 as the start address of the area accessed by the access request. .

検出されたアクセス要求によってアクセスされる対象領域が、スワップ記憶領域302に含まれるいずれの領域にも関連付けられていない場合、管理部11は、その対象領域にスワップ記憶領域302に含まれる領域を関連付ける。管理部11が対象領域に新たに関連付ける領域は、例えば、その対象領域の大きさ以上の大きさである、連続した、他のいずれの対象領域にも関連付けられていない領域である。   When the target area accessed by the detected access request is not associated with any area included in the swap storage area 302, the management unit 11 associates the area included in the swap storage area 302 with the target area. . The area newly associated with the target area by the management unit 11 is, for example, an area that is not smaller than the size of the target area and is not associated with any other target area.

管理部11は、まず、領域情報記憶部13に格納されている解放領域リストに基づき、大きさが対象領域の大きさ以上である、連続した解放領域の有無を判定する。大きさが対象領域の大きさ以上である、連続した解放領域が存在する場合、管理部11は、例えばその解放領域の先頭を先頭とする、対象領域の大きさ以上の大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、使用領域として対象領域に関連付けた記憶領域の先頭アドレスを、要求実行部12に送信すればよい。   The management unit 11 first determines whether there is a continuous release area whose size is equal to or larger than the size of the target area based on the release area list stored in the area information storage unit 13. When there is a continuous release area whose size is equal to or larger than the size of the target area, the management unit 11 selects, for example, an area having a size equal to or larger than the size of the target area starting from the head of the release area. What is necessary is just to link | relate with an object area | region as a use area | region. Then, the management unit 11 may transmit the start address of the storage area associated with the target area as the use area to the request execution unit 12.

大きさが対象領域の大きさ以上である、連続した解放領域が存在しない場合、管理部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 management unit 11 determines whether the total size of the release areas is equal to or larger than the size of the target area. When the total size of the released areas is equal to or larger than the size of the target area, the size of the target area and a request for rearrangement of the used area are transmitted to the rearrangement unit 14. In the description of this embodiment, “relocation of used areas” refers to moving used areas in the swap storage area 302 so that the used areas are continuous. In the following description, “relocation of used areas” is also referred to as “defragmentation”.

対象領域の大きさと、使用領域の再配置の要求とを受信した再配置部14は、例えば、大きさが対象領域の大きさ以上である、連続した解放領域が生成されるまで、スワップ記憶領域302内で使用領域を移動させる。再配置部14は、使用領域がスワップ記憶領域302内で連続するように、使用領域を移動させればよい。言い換えると、再配置部14は、使用領域の再配置を行うことによって、スワップ記憶領域302に、大きさが対象領域の大きさ以上である、連続した解放領域を生成する。   The rearrangement unit 14 that has received the size of the target area and the request for rearrangement of the used area, for example, until a continuous release area having a size equal to or larger than the size of the target area is generated. The use area is moved within 302. The rearrangement unit 14 may move the use area so that the use area is continuous in the swap storage area 302. In other words, the rearrangement unit 14 rearranges the used areas to generate a continuous release area having a size equal to or larger than the target area in the swap storage area 302.

なお、管理部11は、再配置部14に対して、対象領域の大きさを送信せず、使用領域を再配置する要求のみを送信してもよい。その場合、再配置部14は、例えば、全ての使用領域がスワップ記憶領域302内で連続するように、使用領域を移動させればよい。管理部11は、例えば、使用領域が移動した後の、大きさが対象領域の大きさ以上である解放領域の先頭を先頭とする、対象領域の大きさ以上の大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、使用領域として対象領域に関連付けた記憶領域の先頭アドレスを、要求実行部12に送信すればよい。   Note that the management unit 11 may transmit only a request to rearrange the used area to the rearrangement unit 14 without transmitting the size of the target area. In this case, the rearrangement unit 14 may move the use area so that all the use areas are continuous in the swap storage area 302, for example. For example, the management unit 11 uses, as a used area, an area having a size greater than or equal to the size of the target area starting from the beginning of the release area whose size is equal to or larger than the size of the target area after the used area has moved. As long as it is associated with the target area. Then, the management unit 11 may transmit the start address of the storage area associated with the target area as the use area to the request execution unit 12.

図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 rearrangement unit 14 rearranges the swap storage area 302 in which the use area and the release area are arranged as shown on the left side of FIG. 3, the rearrangement unit 14 is arranged on the right side of FIG. The use area is moved so that The rearrangement unit 14 first stores the data stored in the used area before the movement at the position of the used area after the movement. Then, the rearrangement unit 14 updates the location of the used area and the location of the release area stored in the area visit storage unit 11 according to the location of the used area after movement. The location of the use area and the release area may be represented by, for example, the start address and size of these areas. The location of the use area and the release area may be represented by, for example, the start address and the end address of these areas. The address indicating the location of the used area and the released area may be a common address used when each component of the storage area management device 1 accesses the swap area 302, for example.

再配置部14は、さらに、解放領域をスワップ記憶領域302から除外することによって、スワップ記憶領域302のサイズを縮小してもよい。   The relocation unit 14 may further reduce the size of the swap storage area 302 by excluding the release area from the swap storage area 302.

再配置部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 rearrangement unit 14, the management unit 11, for example, selects the target area from among the continuous release areas. An area that is equal to or larger than is associated with the target area as a use area.

管理部11は、使用領域に関連付けた対象領域の場所と、その対象領域に関連付けた使用領域の場所とを、例えば、領域情報記憶部13に格納する。前述のように、対象領域や使用領域などの記憶領域の場所は、例えば、その記憶領域の先頭アドレスと、領域のサイズとによって表される。   For example, the management unit 11 stores the location of the target area associated with the use area and the location of the use area associated with the target area in the area information storage unit 13. As described above, the location of the storage area such as the target area or the use area is represented by, for example, the start address of the storage area and the size of the area.

領域情報記憶部13は、互いに関連付けられた対象領域及び使用領域の、それぞれの場所を記憶する。また、領域情報記憶部13は、解放領域の場所を記憶する。さらに、領域情報記憶部13は、スワップ記憶領域302の場所を記憶する。領域情報記憶部13は、さらに、割り当て領域301における、スワップ領域の場所を記憶していてもよい。前述のように、領域情報記憶部13が記憶する、解放領域の場所を表すデータが、解放領域リストである。解放領域リストは、テーブルの形で領域情報記憶部13に格納されていてもよい。   The area information storage unit 13 stores the locations of the target area and the used area that are associated with each other. The area information storage unit 13 stores the location of the release area. Further, the area information storage unit 13 stores the location of the swap storage area 302. The area information storage unit 13 may further store the location of the swap area in the allocation area 301. As described above, the data indicating the location of the release area stored in the area information storage unit 13 is the release area list. The release area list may be stored in the area information storage unit 13 in the form of a table.

図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 information storage unit 13. In the example shown in FIG. 4, the start address and size of the target area are associated with the start address and size of the used area. As described above, the start address and size of the storage area indicate the location of the storage area. The target area address is an address used by the virtual machine 20 to specify an access destination in the allocation area 301. The used area address is an address used by the storage area management device 1 to specify an access destination in the swap storage area 302.

図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 information storage unit 13. When there are a plurality of virtual machines 20, it is only necessary that a virtual machine ID that is an identifier of the virtual machine 20 is included in the location of the target area, as in the example illustrated in FIG. When the number of virtual machines 20 is one, the virtual machine ID may not be included in the location of the target area. Further, when there are a plurality of swap storage areas 302, the area ID that is the identifier of the swap storage area 302 may be included in the location of the used area. When only one swap storage area 302 is secured, the area ID may not be included in the location of the used 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 information storage unit 13. In the description of this embodiment, the release area list indicating the location of each release area is also referred to as a release area data value. The address of the release area is an address used by the storage area management device 1 to specify an access destination in the swap storage area 302.

図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 information storage unit 13. When there are a plurality of swap storage areas 302 as in the example illustrated in FIG. 7, the area ID that is the identifier of the swap storage area 302 may be included in the location of the release area. When only one swap storage area 302 is secured, the area ID may not be included in the location of the release area.

以上のように、対象領域に関連付けられた使用領域が存在する場合、管理部11は、要求検出部10が受信したアクセス要求に基づくアクセスの対象である対象領域に関連付けられた使用領域の、例えば先頭アドレスを、要求実行部12に送信すればよい。解放領域において確保した使用領域を対象領域に関連付けた場合も同様に、管理部11は、要求検出部10が受信したアクセス要求に基づくアクセスの対象である対象領域に関連付けられた使用領域の、例えば先頭アドレスを、要求実行部12に送信すればよい。
As described above, when there is a used area associated with the target area, the management unit 11 uses, for example, the used area associated with the target area that is an access target based on the access request received by the request detection unit 10. The head address may be transmitted to the request execution unit 12. Similarly, when the used area secured in the release area is associated with the target area, the management unit 11 similarly uses, for example, the used area associated with the target area to be accessed based on the access request received by the request detection unit 10. The head address may be transmitted to the request execution unit 12.

解放領域の大きさの合計が、対象領域の大きさより小さい場合、管理部11は、例えば、既存の使用領域の最終アドレスの次のアドレスを先頭とする、対象領域の大きさに基づき決定される大きさの領域を、使用領域として、対象領域に関連付ければよい。そして、管理部11は、その対象領域に関連する使用領域の先頭アドレスとして、既存の使用領域最終アドレスの次のアドレスを、要求実行部12に送信してもよい。この場合、スワップ記憶領域302は、十分大きい記憶領域内に確保されていればよい。そして、スワップ記憶領域302に連続する十分広い記憶領域がスワップ記憶領域302として確保可能であればよい。   When the total size of the release areas is smaller than the size of the target area, the management unit 11 is determined based on the size of the target area, for example, starting from the address next to the last address of the existing use area. The size area may be associated with the target area as the use area. Then, the management unit 11 may transmit to the request execution unit 12 the next address after the existing used area final address as the start address of the used area related to the target area. In this case, the swap storage area 302 only needs to be secured in a sufficiently large storage area. It is sufficient that a sufficiently large storage area continuous to the swap storage area 302 can be secured as the swap storage area 302.

この場合、管理部11は、受信した書き込み要求によるアクセスの対象である対象領域に関連付けられた使用領域の先頭アドレスを要求実行部12に送信する前に、スワップ記憶領域302を拡張すればよい。スワップ記憶領域302の拡張される部分の大きさである拡張サイズは、スワップ記憶領域302の末尾のアドレスと、既存の使用領域の末尾に追加された、対象領域に関連付けられた使用領域の末尾のアドレスとの差であればよい。   In this case, the management unit 11 may expand the swap storage area 302 before transmitting the use area start address associated with the target area to be accessed by the received write request to the request execution unit 12. The extension size, which is the size of the expanded portion of the swap storage area 302, is the end address of the swap storage area 302 and the end of the use area associated with the target area added to the end of the existing use area. Any difference from the address may be used.

なお、解放領域の大きさの合計が、対象領域の大きさより小さい場合、管理部11は、まず、再配置部14に、再配置の指示を行ってもよい。そして、管理部11は、再配置の後における、既存の使用領域の最終アドレスの次のアドレスを先頭とする、対象領域の大きさに基づき決定される大きさの領域を、使用領域として、対象領域に関連付けてもよい。   When the total size of the release areas is smaller than the size of the target area, the management unit 11 may first instruct the rearrangement unit 14 to perform rearrangement. Then, the management unit 11 uses, as a use area, an area having a size determined based on the size of the target area, starting from the address next to the final address of the existing use area after the rearrangement. It may be associated with a region.

要求検出部10によって検出されたアクセス要求において特定されたアクセスの種別が解放である場合、解放部15は、そのアクセス要求における対象領域を解放する。すなわち、解放部15は、そのアクセス要求における対象領域と、その対象領域に関連付けられている使用領域との間の関連付けを解消する。対象領域の解放は、例えば、仮想マシン20が、スワップ領域の一部として使用していた対象領域を、スワップ領域として使用しなくなることである。   When the access type specified in the access request detected by the request detection unit 10 is release, the release unit 15 releases the target area in the access request. That is, the release unit 15 cancels the association between the target area in the access request and the used area associated with the target area. The release of the target area is, for example, that the virtual machine 20 does not use the target area that has been used as a part of the swap area as the swap area.

スワップ記憶領域302がスワップ領域ファイル302である場合、解放部15は、例えば、解放の対象である対象領域をスワップ領域ファイル302から除外し、スワップ領域ファイル302のサイズを縮小する処理を行ってもよい。その場合、解放部15は、解放領域リストを更新すればよい。すなわち、解放部15は、解放によってスワップ領域ファイル302から除外された領域の場所を表すデータ値を、領域情報記憶部13に格納する。   When the swap storage area 302 is the swap area file 302, the release unit 15 may perform processing for excluding the target area to be released from the swap area file 302 and reducing the size of the swap area file 302, for example. Good. In that case, the release unit 15 may update the release area list. That is, the release unit 15 stores the data value indicating the location of the area excluded from the swap area file 302 by the release in the area information storage unit 13.

また、解放部15は、例えば、領域情報記憶部13に格納されている、その対象領域の場所と、その対象領域の場所に関連付けられている使用領域の場所とを消去すればよい。このことによって、解放部15は、種別が解放であるアクセス要求の対象領域と、その対象領域に関連付けられている使用領域との間の関連付けを解消すればよい。すなわち、解放部15は、種別が解放であるアクセス要求の対象領域の場所とその対象領域に関連付けられている使用領域の場所とを、領域情報記憶部13から削除することによって、その対象領域を解放すればよい。   The release unit 15 may delete the location of the target area and the location of the used area associated with the location of the target area, which are stored in the area information storage unit 13, for example. As a result, the release unit 15 may cancel the association between the target area of the access request whose type is release and the used area associated with the target area. That is, the release unit 15 deletes the location of the target area of the access request whose type is release and the location of the used area associated with the target area from the area information storage unit 13, thereby deleting the target area. Release it.

解放部15は、さらに、解放された対象領域に関連付けられていた使用領域が解放領域に含まれるように、領域情報記憶部13に格納されている解放領域リストすなわち解放領域データ値を更新する。解放領域リストすなわち解放領域データ値が、例えば図4に示す、使用領域の場所によって表されている場合、解放された対象領域に関連付けられていた使用領域の場所が上述のように削除されることによって、場所が削除された使用領域は解放領域に追加される。領域情報記憶部13が、例えば図5に示す例のような解放領域リストを記憶している場合、解放部15は、例えば、種別が解放であるアクセス要求の対象領域に関連付けられている使用領域の場所を、解放領域リストに追加すればよい。   Further, the release unit 15 updates the release area list, that is, the release area data value stored in the area information storage unit 13 so that the use area associated with the released target area is included in the release area. When the released area list, that is, the released area data value is represented by the used area location shown in FIG. 4, for example, the used area location associated with the released target area is deleted as described above. As a result, the used area whose location has been deleted is added to the released area. When the area information storage unit 13 stores a release area list such as the example illustrated in FIG. 5, for example, the release unit 15 uses, for example, a use area associated with the target area of the access request whose type is release. May be added to the release area list.

なお、解放部15は、要求検出部10によって検出された、アクセスの種別が解放であるアクセス要求を、所定の条件が満たされるまで保持していてもよい。解放部15は、アクセスの種別が解放であるアクセス要求ではなく、アクセスの種別が解放であるアクセス要求によって解放される対象記憶領域である解放対象領域の場所を、所定の条件が満たされるまで保持していてもよい。そして、所定の条件が満たされた場合、解放部15は、保持している解放対象領域の解放を、例えばまとめて行ってもよい。解放部15は、所定の条件が満たされているか否かの判定と、その判定の結果に基づく対象領域の解放を、例えば、定期的に、バックグラウンドで(すなわちアクセス要求に応じて行われる処理と並行して)行えばよい。   The release unit 15 may hold the access request detected by the request detection unit 10 and whose access type is release until a predetermined condition is satisfied. The release unit 15 holds the location of the release target area, which is the target storage area to be released by the access request whose access type is release, not the access request whose access type is release until a predetermined condition is satisfied. You may do it. Then, when a predetermined condition is satisfied, the release unit 15 may release the held release target areas, for example, collectively. The release unit 15 determines whether or not a predetermined condition is satisfied, and releases the target area based on the determination result, for example, periodically in the background (that is, processing performed in response to an access request) In parallel).

上述の所定の条件は、例えば、解放部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 release unit 15 exceeds a predetermined value. The predetermined condition is, for example, that an index representing the load on the storage device 3 is below a predetermined value. The index representing the load on the storage device 3 is, for example, the amount of I / O to the storage device 3. The I / O amount may be, for example, the number of access requests per unit time. The I / O amount may be, for example, the amount of data transferred per unit time. The I / O amount may be another amount. The index indicating the load on the storage device 3 may be another index. The predetermined condition may be, for example, that the free capacity of the swap storage area 302 is less than a predetermined capacity. The predetermined condition may be a combination of the conditions described above.

解放部15は、対象領域の解放が終了した後、再配置部14に対して、上述の、使用領域の再配置すなわちデフラグを行う要求を行ってもよい。   After releasing the target area, the release unit 15 may make a request to the rearrangement unit 14 to perform rearrangement of the used area, that is, defragmentation.

使用領域の再配置の要求を受信した再配置部14は、例えば、スワップ記憶領域302に含まれる使用領域の場所が連続するように、使用領域を移動させる。再配置部14は、使用領域の再配置を、同様にバックグラウンドで行えばよい。   For example, the relocation unit 14 that has received the use area relocation request moves the use area so that the locations of the use areas included in the swap storage area 302 are continuous. The rearrangement unit 14 may perform rearrangement of the use area in the background in the same manner.

次に、本実施形態の記憶領域管理装置1の動作について、図面を参照して詳細に説明する。   Next, the operation of the storage area management apparatus 1 of the present embodiment will be described in detail with reference to the drawings.

まず、本実施形態の記憶領域管理装置1の、仮想マシン20が動作を開始した場合における動作について説明する。   First, the operation of the storage area management device 1 according to the present embodiment when the virtual machine 20 starts operation will be described.

図8は、本実施形態の記憶領域管理装置1の、仮想マシン20が動作を開始した場合における動作の例を表すフローチャートである。   FIG. 8 is a flowchart illustrating an example of the operation of the storage area management device 1 according to the present embodiment when the virtual machine 20 starts the operation.

仮想マシン20が起動すると、動作検出部16が、仮想マシン20の起動を検出する(ステップS101)。例えば、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、動作検出部16に、仮想マシン20の起動の通知を送信すればよい。動作検出部16は、仮想マシン20の起動の通知を受信した場合に、仮想マシン20が起動したと判定すればよい。   When the virtual machine 20 is activated, the operation detection unit 16 detects activation of the virtual machine 20 (step S101). For example, the virtual machine execution unit 22, which is a hypervisor that emulates the virtual machine 20, may transmit a notification of activation of the virtual machine 20 to the operation detection unit 16. The operation detection unit 16 may determine that the virtual machine 20 has started when receiving a notification of the start of the virtual machine 20.

動作検出部16は、さらに、仮想マシン20の起動が、サスペンドからの復帰であるか否かを判定する。例えば、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、動作検出部16に、仮想マシン20の起動がサスペンドからの復帰であるか否かを表す信号を送信すればよい。動作検出部16は、仮想マシン実行部22から受信した、仮想マシン20の起動がサスペンドからの復帰であるか否かを表す信号に基づき、仮想マシン20の起動がサスペンドからの復帰であるか否かを判定すればよい。動作検出部16は、他の方法により、仮想マシン20の起動が、サスペンドからの復帰であるか否かを判定してもよい。   The operation detection unit 16 further determines whether or not the activation of the virtual machine 20 is a return from suspend. For example, the virtual machine execution unit 22, which is a hypervisor that emulates the virtual machine 20, may transmit a signal indicating whether the activation of the virtual machine 20 is a return from suspend to the operation detection unit 16. The operation detection unit 16 determines whether the activation of the virtual machine 20 is a return from suspend based on the signal received from the virtual machine execution unit 22 and indicating whether the activation of the virtual machine 20 is a return from suspend. What is necessary is just to determine. The operation detection unit 16 may determine whether the activation of the virtual machine 20 is a return from suspend by another method.

仮想マシン20の起動が、サスペンドからの復帰である場合(ステップS102においてYes)、図8に示す動作は終了する。本実施形態では、仮想マシン20がサスペンド状態に移行する場合、その仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302は解放されない。従って、仮想マシン20の起動がサスペンドからの復帰である場合、その仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302が存在する。その場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域と、そのスワップ記憶領域302とが関連付けられた状態を維持する。   When the activation of the virtual machine 20 is a return from suspend (Yes in step S102), the operation illustrated in FIG. 8 ends. In the present embodiment, when the virtual machine 20 shifts to the suspended state, the swap storage area 302 associated with the swap area of the virtual machine 20 is not released. Therefore, when the activation of the virtual machine 20 is the return from the suspend, the swap storage area 302 associated with the swap area of the virtual machine 20 exists. In that case, the storage area management device 1 maintains a state in which the swap area of the virtual machine 20 and the swap storage area 302 are associated with each other.

仮想マシン20の起動が、サスペンドからの復帰でない場合(ステップS102においてNo)、例えば動作検出部16が、スワップ記憶領域302が存在するか否かを判定する。情報処理装置2が複数の仮想マシン20が動作するように構成されている場合、動作検出部16は、起動が検出された仮想マシン20のスワップ領域に関連付けられているスワップ記憶領域302の領域が存在するか否かを判定すればよい。動作検出部16は、その判定を、例えば、仮想マシン20のスワップ領域に含まれる対象領域に関連付けられた使用領域の場所が、領域情報記憶部13に格納されているか否かを判定することによって行えばよい。スワップ記憶領域302がスワップ領域ファイル302である場合、動作検出部16は、ストレージ装置3にスワップ領域ファイル302が存在するか否かを判定すればよい。   If the activation of the virtual machine 20 is not a return from suspend (No in step S102), for example, the operation detection unit 16 determines whether or not the swap storage area 302 exists. When the information processing apparatus 2 is configured so that a plurality of virtual machines 20 operate, the operation detection unit 16 determines that the area of the swap storage area 302 associated with the swap area of the virtual machine 20 from which activation is detected. What is necessary is just to determine whether it exists. The operation detection unit 16 determines the determination by, for example, determining whether the location of the used area associated with the target area included in the swap area of the virtual machine 20 is stored in the area information storage unit 13. Just do it. When the swap storage area 302 is the swap area file 302, the operation detection unit 16 may determine whether or not the swap area file 302 exists in the storage device 3.

スワップ記憶領域302が存在する場合(ステップS103においてYes)、図8に示す動作は終了する。その場合、記憶領域管理装置1は、その仮想マシン20のスワップ領域と、そのスワップ記憶領域302とが関連付けられた状態を維持する。   If the swap storage area 302 exists (Yes in step S103), the operation shown in FIG. 8 ends. In that case, the storage area management device 1 maintains a state in which the swap area of the virtual machine 20 and the swap storage area 302 are associated with each other.

なお、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302の有無を判定することによって、仮想マシン20の起動がサスペンドからの復帰であるか否かを判定してもよい。その場合、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302が存在すれば、仮想マシン20の起動がサスペンドからの復帰であると判定すればよい。また、動作検出部16は、仮想マシン20のスワップ領域に関連付けられたスワップ記憶領域302が存在しなければ、仮想マシン20の起動がサスペンドからの復帰ではないと判定すればよい。そして、この場合、動作検出部16は、ステップS102及びステップS103の動作を、同じ動作として行えばよい。   The operation detection unit 16 may determine whether the activation of the virtual machine 20 is a return from suspend by determining whether or not the swap storage area 302 is associated with the swap area of the virtual machine 20. Good. In that case, if there is a swap storage area 302 associated with the swap area of the virtual machine 20, the operation detection unit 16 may determine that the activation of the virtual machine 20 is a return from suspend. Further, the operation detection unit 16 may determine that the activation of the virtual machine 20 is not the return from the suspend if the swap storage area 302 associated with the swap area of the virtual machine 20 does not exist. In this case, the operation detection unit 16 may perform the operations in step S102 and step S103 as the same operation.

スワップ記憶領域302が存在しない場合(ステップS103においてNo)、スワップ領域検出部17は、割り当て領域301(すなわち、シンディスク301)を開く(ステップS104)。   When the swap storage area 302 does not exist (No in step S103), the swap area detection unit 17 opens the allocation area 301 (that is, the thin disk 301) (step S104).

スワップ領域検出部17は、割り当て領域301において、スワップ領域を検出する(ステップS105)。スワップ領域検出部17は、例えば、割り当て領域301の構造を解析することによって、スワップ領域を検出すればよい。スワップ領域検出部17は、検出したスワップ領域の場所を特定する。スワップ領域の場所は、前述のように、例えば、先頭アドレスと大きさの組み合わせである。スワップ領域の場所は、先頭アドレスと末尾アドレスの組み合わせであってもよい。   The swap area detection unit 17 detects a swap area in the allocation area 301 (step S105). For example, the swap area detection unit 17 may detect the swap area by analyzing the structure of the allocation area 301. The swap area detection unit 17 specifies the location of the detected swap area. As described above, the location of the swap area is, for example, a combination of the start address and the size. The location of the swap area may be a combination of the start address and the end address.

確保部19は、大きさが検出されたスワップ領域の大きさ以上であるスワップ記憶領域302を、割り当て領域301とは異なる記憶領域において確保する(ステップS106)。スワップ記憶領域302がスワップ領域ファイル302である場合、確保部19は、大きさが検出されたスワップ領域の大きさ以上であるスワップ領域ファイル302を、割り当て領域301とは異なる記憶領域に作成すればよい。   The securing unit 19 secures the swap storage area 302 whose size is equal to or larger than the detected swap area in a storage area different from the allocation area 301 (step S106). When the swap storage area 302 is the swap area file 302, the securing unit 19 creates a swap area file 302 whose size is equal to or larger than the detected swap area size in a storage area different from the allocation area 301. Good.

確保部19は、検出されたスワップ領域とスワップ記憶領域302とを関連付ける(ステップS107)。確保部19は、例えば、検出されたスワップ領域の先頭アドレスとスワップ記憶領域302の先頭アドレスとを、関連付けて領域情報記憶部13に格納すればよい。   The securing unit 19 associates the detected swap area with the swap storage area 302 (step S107). For example, the securing unit 19 may store the detected start address of the swap area and the start address of the swap storage area 302 in the area information storage unit 13 in association with each other.

確保部19は、更に、解放領域リストを初期化する(ステップS108)。確保部19は、例えば、領域情報記憶部13において、対象領域の場所と使用領域の場所とを関連付けるデータ値を格納する領域を設定すればよい。領域情報記憶部13に、起動が検出された仮想マシン20のスワップ領域に含まれる対象領域の場所とその対象領域の場所に関連付けられた使用領域の場所が格納されている場合、確保部19は、それらの場所を削除すればよい。解放領域リストの初期化が必要なければ、確保部19は、ステップS108において何もしなくてもよい。   The securing unit 19 further initializes the release area list (step S108). For example, the securing unit 19 may set an area for storing a data value that associates the location of the target area with the location of the used area in the area information storage unit 13. When the area information storage unit 13 stores the location of the target area included in the swap area of the virtual machine 20 where the activation is detected and the location of the used area associated with the location of the target area, the securing unit 19 , Delete those places. If it is not necessary to initialize the release area list, the securing unit 19 does not have to do anything in step S108.

次に、記憶領域管理装置1の、仮想マシン20が停止する場合における動作について、図面を参照して詳細に説明する。   Next, the operation of the storage area management device 1 when the virtual machine 20 is stopped will be described in detail with reference to the drawings.

図9は、本実施形態の記憶領域管理装置1の、仮想マシン20が停止する場合における動作の例を表すフローチャートである。   FIG. 9 is a flowchart illustrating an example of the operation of the storage area management device 1 according to the present embodiment when the virtual machine 20 is stopped.

仮想マシン20が停止すると、動作検出部16は、仮想マシン20の停止を検出する(ステップS201)。例えば、仮想マシン20が動作を停止した場合、仮想マシン20をエミュレートするハイパーバイザである仮想マシン実行部22が、仮想マシン20が停止したことを表す信号を動作検出部16に送信すればよい。動作検出部16は、仮想マシン実行部22から仮想マシン20が停止したことを表す信号を受信することによって、仮想マシン20の停止を検出すればよい。   When the virtual machine 20 stops, the operation detection unit 16 detects the stop of the virtual machine 20 (step S201). For example, when the virtual machine 20 stops operating, the virtual machine execution unit 22 that is a hypervisor that emulates the virtual machine 20 may transmit a signal indicating that the virtual machine 20 has stopped to the operation detection unit 16. . The operation detection unit 16 may detect the stop of the virtual machine 20 by receiving a signal indicating that the virtual machine 20 has stopped from the virtual machine execution unit 22.

仮想マシン20は、たとえば、仮想マシン20がシャットダウンされた場合や、仮想マシン20がサスペンドされた場合に、動作を停止する。すなわち、仮想マシン20の停止には、例えば、仮想マシン20のシャットダウンと、仮想マシン20のサスペンド(すなわち、仮想マシン20のサスペンド状態への移行)がある。   For example, the virtual machine 20 stops its operation when the virtual machine 20 is shut down or when the virtual machine 20 is suspended. That is, the stop of the virtual machine 20 includes, for example, shutdown of the virtual machine 20 and suspension of the virtual machine 20 (that is, transition of the virtual machine 20 to the suspended state).

動作検出部16は、仮想マシン20の停止が、仮想マシン20のサスペンドであるか否かを判定する。仮想マシン20の停止が、仮想マシン20のサスペンドである場合、すなわち、仮想マシン20がサスペンドされた場合(ステップS202においてYes)、記憶領域管理装置1は、図9に示す動作を終了する。その場合、サスペンドされた仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けは維持される。また、仮想マシン20のスワップ領域に含まれる対象領域と、スワップ記憶領域302に含まれる使用領域との関連付けも維持される。   The operation detection unit 16 determines whether or not the stop of the virtual machine 20 is a suspension of the virtual machine 20. When the stop of the virtual machine 20 is the suspension of the virtual machine 20, that is, when the virtual machine 20 is suspended (Yes in step S202), the storage area management device 1 ends the operation illustrated in FIG. In that case, the association between the swap area of the suspended virtual machine 20 and the swap storage area 302 is maintained. Further, the association between the target area included in the swap area of the virtual machine 20 and the used area included in the swap storage area 302 is also maintained.

次に、削除部18は、スワップ記憶領域302(すなわちスワップ領域ファイル302)に、ダンプファイルが格納されているか否かを判定する(ステップS203)。スワップ記憶領域302に、ダンプファイルが格納されている場合(ステップS203においてYes)、記憶領域管理装置1は、図9に示す動作を終了する。その場合も、サスペンドされた仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けは維持される。また、仮想マシン20のスワップ領域に含まれる対象領域と、スワップ記憶領域302に含まれる使用領域との関連付けも維持される。   Next, the deletion unit 18 determines whether or not a dump file is stored in the swap storage area 302 (that is, the swap area file 302) (step S203). When the dump file is stored in the swap storage area 302 (Yes in step S203), the storage area management device 1 ends the operation shown in FIG. Also in this case, the association between the swap area of the suspended virtual machine 20 and the swap storage area 302 is maintained. Further, the association between the target area included in the swap area of the virtual machine 20 and the used area included in the swap storage area 302 is also maintained.

ダンプファイルが格納されていない場合(ステップS203においてNo)、削除部18は、停止が検出された仮想マシン20のスワップ領域とスワップ記憶領域302との関連付けを解除する(ステップS204)。削除部18は、例えば、仮想マシン20のスワップ領域の先頭アドレスとそのスワップ領域に関連付けられているスワップ記憶領域302の先頭アドレスを、領域情報記憶部13から削除すればよい。   When the dump file is not stored (No in step S203), the deletion unit 18 cancels the association between the swap area of the virtual machine 20 in which the stop is detected and the swap storage area 302 (step S204). For example, the deletion unit 18 may delete the start address of the swap area of the virtual machine 20 and the start address of the swap storage area 302 associated with the swap area from the area information storage unit 13.

次に、削除部18は、停止が検出された仮想マシン20のスワップ領域に関連付けられている、ストレージ装置3に確保されているスワップ記憶領域302を解放する(ステップS205)。スワップ記憶領域302がスワップ領域ファイル302である場合、削除部18は、停止が検出された仮想マシン20のスワップ領域に関連付けられているスワップ領域ファイル302を削除すればよい。   Next, the deletion unit 18 releases the swap storage area 302 secured in the storage apparatus 3 that is associated with the swap area of the virtual machine 20 in which the stop is detected (step S205). When the swap storage area 302 is the swap area file 302, the deletion unit 18 may delete the swap area file 302 associated with the swap area of the virtual machine 20 in which the stop is detected.

次に、削除部18は、解放領域リストを削除する(ステップS206)。削除部18は、例えば、停止が検出された仮想マシン20のスワップ領域に含まれる対象領域の場所と、その対象領域の場所に関連付けられている使用領域の場所とを、領域情報記憶部13から削除すればよい。削除部18は、さらに、停止が検出された仮想マシン20のスワップ領域に関連付けられていたスワップ記憶領域302に含まれる解放領域の場所を、領域情報記憶部13から削除すればよい。   Next, the deletion unit 18 deletes the release area list (step S206). For example, the deletion unit 18 obtains the location of the target area included in the swap area of the virtual machine 20 where the stop has been detected and the location of the used area associated with the location of the target area from the area information storage unit 13. Delete it. The deletion unit 18 may further delete the location of the release area included in the swap storage area 302 associated with the swap area of the virtual machine 20 where the stop is detected from the area information storage unit 13.

次に、本実施形態の記憶領域管理装置1の、仮想マシン20がアクセス要求を送信した場合における動作について、図面を参照して詳細に説明する。   Next, the operation when the virtual machine 20 transmits an access request in the storage area management apparatus 1 of the present embodiment will be described in detail with reference to the drawings.

図10は、本実施形態の記憶領域管理装置1の、仮想マシン20がアクセス要求を送信した場合における動作の例を表すフローチャートである。図10に示す例におけるアクセス要求は、割り当て領域301が含むいずれかの領域にデータを書き込む要求である書き込み要求又は割り当て領域301が含むいずれかの領域からデータを読み出す読み出し要求である。仮想マシン20は、コマンドを送信することによって、アクセスの要求を行う。以下の説明において、アクセス要求は、要求コマンドとも表記される。図10に示す例では、アクセス要求(すなわち要求コマンド)の種別は、書き込み又は読み出しである。   FIG. 10 is a flowchart illustrating an example of an operation when the virtual machine 20 transmits an access request in the storage area management apparatus 1 according to the present embodiment. The access request in the example illustrated in FIG. 10 is a write request that is a request to write data in any area included in the allocation area 301 or a read request that reads data from any area included in the allocation area 301. The virtual machine 20 requests access by sending a command. In the following description, the access request is also expressed as a request command. In the example shown in FIG. 10, the type of access request (that is, request command) is write or read.

仮想マシン20がアクセス要求(すなわち、要求コマンド)を送信すると、要求検出部10が要求コマンドを検出する。   When the virtual machine 20 transmits an access request (that is, a request command), the request detection unit 10 detects the request command.

要求検出部10は、検出された要求コマンドの種別を特定する(ステップS301)。上述のように、図10に示す例においては、要求コマンドの種別は、書き込み又は読み出しである。また、要求検出部10は、ステップS301の動作を、後述されるステップS303においてYesであった場合に、ステップS305の動作の前に行ってもよい。   The request detection unit 10 identifies the type of the detected request command (step S301). As described above, in the example shown in FIG. 10, the type of request command is write or read. Moreover, the request | requirement detection part 10 may perform the operation | movement of step S301 before the operation | movement of step S305, when it is Yes in step S303 mentioned later.

要求検出部10は、さらに、検出された要求コマンドによってアクセスが要求されている、割り当て領域301における領域である、対象領域を特定する(ステップS302)。   The request detection unit 10 further specifies a target area that is an area in the allocation area 301 to which access is requested by the detected request command (step S302).

要求検出部10は、特定した対象領域が、要求コマンドを送信した仮想マシン20のスワップ領域に含まれるか否かを判定する(ステップS303)。   The request detection unit 10 determines whether or not the specified target area is included in the swap area of the virtual machine 20 that has transmitted the request command (step S303).

特定した対象領域が、要求コマンドを送信した仮想マシン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 virtual machine 20 that has transmitted the request command (No in step S303), the request execution unit 12 issues a request command to the allocation area 301 (step S304). . The request execution unit 12 may transmit a request command for requesting access to the target area included in the allocation area 301 to the storage apparatus 3 as it is. In this case, the management unit 11 does not have to do anything with respect to the request command detected by the request detection unit 10. The request execution unit 12 may transmit the execution result of the request command returned from the storage apparatus 3 to the virtual machine 20 via the request detection unit 10, for example.

特定した対象領域が、要求コマンドを送信した仮想マシン20のスワップ領域に含まれる場合(ステップS303においてYes)、要求コマンドが書き込み要求でない場合(ステップS305においてNo)、記憶領域管理装置1の動作は、ステップS306に進む。要求コマンドの種別が書き込みでない場合、要求コマンドの種別は読み出しである。   When the identified target area is included in the swap area of the virtual machine 20 that has transmitted the request command (Yes in step S303), and when the request command is not a write request (No in step S305), the operation of the storage area management device 1 is as follows. The process proceeds to step S306. If the request command type is not write, the request command type is read.

ステップS306において、管理部11は、対象領域に関連付けられた使用領域を特定する。管理部11は、対象領域に関連付けられている使用領域の場所を、領域情報記憶部13から読み出せばよい。   In step S306, the management unit 11 specifies a used area associated with the target area. The management unit 11 may read the location of the used area associated with the target area from the area information storage unit 13.

要求実行部12は、スワップ記憶領域302に含まれる、特定された使用領域から、要求コマンドに基づくデータの読み出しを行う(ステップS307)。要求実行部12は、読み出されたデータを、例えば、要求検出部10を介して、仮想マシン20に送信する。   The request execution unit 12 reads data based on the request command from the specified use area included in the swap storage area 302 (step S307). The request execution unit 12 transmits the read data to the virtual machine 20 via, for example, the request detection unit 10.

要求コマンドが書き込み要求である場合(ステップS305においてYes)、管理部11は、対象領域のサイズと、スワップ記憶領域302における解放領域のサイズの合計を比較する(ステップS308)。   When the request command is a write request (Yes in step S305), the management unit 11 compares the size of the target area with the total size of the release area in the swap storage area 302 (step S308).

対象領域のサイズが、スワップ記憶領域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 unit 19 adds an area larger than the size of the target area to the swap storage area 302. to add. Then, the securing unit 19 secures a used area having a size equal to or larger than the size of the detected target area in the added area (step S311). The management unit 11 stores the location of the target area and the reserved usage area in the area information storage unit 13 in association with each other. Note that storing the location of the used area associated with the location of the target area in the area information storage unit 13 may ensure the used area.

対象領域のサイズが、スワップ記憶領域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 management unit 11 secures a use area in the continuous release area (step S311). ). The use area secured by the management unit 11 has a size equal to or larger than the size of the detected target area. The management unit 11 stores the location of the target area and the reserved usage area in the area information storage unit 13 in association with each other.

スワップ記憶領域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 rearrangement unit 14 rearranges the used areas (step S310). Accordingly, the rearrangement unit 14 generates a continuous release area having a size equal to or larger than the size of the detected target area. The management unit 11 secures a use area having a size equal to or larger than the size of the detected target area in the generated release area. The management unit 11 stores the location of the target area and the reserved usage area in the area information storage unit 13 in association with each other.

次に、要求実行部12が、確保された使用領域に対して、要求コマンドに基づく書き込みを行う(ステップS312)。   Next, the request execution unit 12 performs writing based on the request command in the reserved use area (step S312).

次に、本実施形態の記憶領域管理装置1の、仮想マシン20が解放要求を送信する場合における動作について、図面を参照して詳細に説明する。   Next, the operation of the storage area management device 1 according to the present embodiment when the virtual machine 20 transmits a release request will be described in detail with reference to the drawings.

図11は、本実施形態の記憶領域管理装置1の、仮想マシン20が解放要求コマンドを送信する場合における動作の例を表すフローチャートである。解放要求コマンドは、例えば、スワップ領域のうちに含まれる、少なくとも一部の使用領域を、未使用の状態に戻すコマンドである。記憶領域管理装置1は、解放要求コマンドを受信すると、その解放要求コマンドの対象である対象領域に関連付けられている使用領域を、以下のようにして、対象領域に関連付けられていない状態に戻す。   FIG. 11 is a flowchart illustrating an example of the operation of the storage area management device 1 according to the present embodiment when the virtual machine 20 transmits a release request command. The release request command is, for example, a command that returns at least a part of the used area included in the swap area to an unused state. When the storage area management device 1 receives the release request command, the storage area management device 1 returns the used area associated with the target area that is the target of the release request command to a state not associated with the target area as follows.

仮想マシン20が解放要求コマンドを送信すると、要求検出部10が解放要求コマンドを受信する(ステップS401)。例えば、仮想マシン20から要求コマンドを受信した要求受信部10が、要求コマンドの種別を特定した結果、要求コマンドの種別が解放要求であった場合に、記憶領域管理装置1は、図11に示す動作を開始すればよい。また、記憶領域管理装置1は、図11に示す動作を、他の要求コマンドに対する処理と並行して、バックグラウンドで行えばよい。   When the virtual machine 20 transmits a release request command, the request detection unit 10 receives the release request command (step S401). For example, when the request receiving unit 10 that has received the request command from the virtual machine 20 specifies the type of the request command, and the request command type is a release request, the storage area management device 1 is shown in FIG. The operation may be started. In addition, the storage area management device 1 may perform the operation shown in FIG. 11 in the background in parallel with the processing for other request commands.

次に、解放部15は、所定の条件が満たされているか判定する(ステップS402)。   Next, the release unit 15 determines whether a predetermined condition is satisfied (step S402).

上述のように、所定の条件は、例えば、解放部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 release unit 15 exceeds a predetermined value. The predetermined condition is, for example, that an index representing the load on the storage device 3 is below a predetermined value. The index representing the load on the storage device 3 is, for example, the amount of I / O to the storage device 3. The I / O amount may be, for example, the number of access requests per unit time. The I / O amount may be, for example, the amount of data transferred per unit time. The I / O amount may be another amount. The index indicating the load on the storage device 3 may be another index. The predetermined condition may be, for example, that the free capacity of the swap storage area 302 is less than a predetermined capacity. The predetermined condition may be a combination of the conditions described above.

所定の条件が満たされていない場合(ステップ403においてNo)、解放部15は、解放要求コマンドによって解放が要求されている対象領域である、解放対象領域の場所を記憶(すなわち保持)する(ステップS404)。以下の説明において、解放対象領域の場所を記憶することを、「解放対象領域を記憶する」あるいは「解放対象領域の場所を保持する」とも表記する。解放部15は、解放対象領域を含む、解放要求コマンドのデータを保持してもよい。記憶領域管理装置1の動作は、ステップS404の動作の後、ステップS401に戻る。   When the predetermined condition is not satisfied (No in Step 403), the release unit 15 stores (that is, holds) the location of the release target area, which is the target area requested to be released by the release request command (Step S403). S404). In the following description, storing the location of the release target area is also referred to as “store the release target area” or “hold the location of the release target area”. The release unit 15 may hold release request command data including a release target area. The operation of the storage area management device 1 returns to step S401 after the operation of step S404.

所定の条件が満たされている場合(ステップ403においてYes)、解放部15は、記憶する全ての解放対象領域を解放する(ステップS405)。   When the predetermined condition is satisfied (Yes in Step 403), the release unit 15 releases all the release target areas to be stored (Step S405).

解放対象領域が解放されると、再配置部14が、使用領域の再配置を実行する(ステップS406)。前述のように、再配置部14は、使用領域の再配置の後、スワップ記憶領域302に末尾に存在する解放領域を、スワップ記憶領域302から除外してもよい。   When the release target area is released, the rearrangement unit 14 rearranges the used area (step S406). As described above, the rearrangement unit 14 may exclude the release area existing at the end of the swap storage area 302 from the swap storage area 302 after the rearrangement of the used areas.

また、図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 area management device 1 when the release request command is received and rearranged in parallel. Further, FIG. 18 is a flowchart showing an example of an operation for performing the rearrangement of the storage area management device 1 when the release request command is received and rearranged in parallel. The operation in each step of FIG. 17 and FIG. 18 is the same as the operation in the step given the same reference numeral shown in FIG. The storage area management apparatus 1 may perform the operation shown in FIG. 17 and the operation shown in FIG. 18 in parallel.

以上で説明した本実施形態には、シン形式の仮想ディスク内のスワップ領域へのアクセスに伴う、その仮想ディスクに割り当てられる記憶領域の増加を抑制することができるという第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 virtual machine 20 is a swap area included in the allocation area 301 that is a thin virtual disk, the request execution unit 12 writes to the swap storage area 302. Because. The swap storage area 302 is an area secured in a storage area that is not the allocation area 301. As described above, when data writing and deletion are repeated with respect to a general doctor or thin format disk, the size of the storage area allocated to the disk increases. The request execution unit 12 of the present embodiment writes the data requested to be written to the swap area included in the thin allocation area 301 to the swap storage area 302 not included in the allocation area 301. Therefore, an increase in the storage area allocated to the allocation area 301 due to repeated writing to the swap area included in the thin allocation area 301 can be suppressed.

本実施形態には、さらに、ストレージ装置3における記憶領域の使用量を抑制することができるという第2の効果がある。   The present embodiment further has a second effect that the amount of use of the storage area in the storage apparatus 3 can be suppressed.

その理由は、仮想マシン20が動作を停止した場合、削除部18が、スワップ記憶領域302を解放する(すなわち、スワップ領域ファイル302を削除する)ことによって、ストレージ装置3の空き容量を増加させるからである。   The reason is that, when the virtual machine 20 stops operating, the deletion unit 18 increases the free capacity of the storage apparatus 3 by releasing the swap storage area 302 (that is, deleting the swap area file 302). It is.

本実施形態には、さらに、スワップ記憶領域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 swap storage area 302 is larger than the area where writing based on the access request is performed, the management unit 11 sets the unused storage area as the write destination. It is because it sets. When an unused storage area included in the swap storage area 302 is divided, the rearrangement unit 14 rearranges the used areas to connect the unused storage areas. Therefore, the swap storage area 302 is used efficiently.

本実施形態には、さらに、仮想マシン20が送信する領域解放コマンドに基づく処理を実行することによる、情報処理装置2やストレージ装置3の負荷の上昇を抑制することができるという第4の効果がある。   The present embodiment further has a fourth effect that an increase in load on the information processing apparatus 2 and the storage apparatus 3 due to execution of processing based on the area release command transmitted by the virtual machine 20 can be suppressed. is there.

その理由は、解放部15が、所定の条件が満たされるまで、解放対象領域の場所を記憶するからである。そして、その所定の条件が満たされた場合に、解放部15は、解放対象領域を解放する。その所定の条件として、例えば、情報処理装置2の負荷が所定の基準以下であること、あるいは、ストレージ装置3の負荷が所定の基準以下であることを設定することができる。それらの条件が、上述の所定の条件として設定されている場合、情報処理装置2やストレージ装置3の負荷の上昇を抑制することができる。   The reason is that the release unit 15 stores the location of the release target area until a predetermined condition is satisfied. Then, when the predetermined condition is satisfied, the release unit 15 releases the release target area. As the predetermined condition, for example, it can be set that the load on the information processing apparatus 2 is equal to or lower than a predetermined reference, or the load on the storage apparatus 3 is equal to or lower than a predetermined reference. When these conditions are set as the above-mentioned predetermined conditions, an increase in the load on the information processing apparatus 2 or the storage apparatus 3 can be suppressed.

本実施形態には、仮想マシン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 guest OS 21 operating in the virtual machine 20.

その理由は、管理部11が、ゲストOS21によって制御される仮想マシン20によるアクセス先のアドレスがスワップ領域に含まれるアドレスであるか否かに基づいて、実際にアクセスされる記憶領域を、他の記憶領域に変更するからである。   The reason is that the management unit 11 assigns the storage area actually accessed based on whether the address of the access destination by the virtual machine 20 controlled by the guest OS 21 is an address included in the swap area to other storage areas. This is because the storage area is changed.

<実装例>
次に、第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 guest OS 21, a hypervisor 22 </ b> A, and a disk 30. In FIG. 12, the information processing apparatus 2 that executes the hypervisor 22A is omitted. Further, the virtual machine 20 emulated by the information processing apparatus 2 controlled by the hypervisor 22A and controlled by the guest OS 21 is omitted.

ゲストOS21は、I/O機能101と、領域解放機能102とを含む。   The guest OS 21 includes an I / O function 101 and an area release function 102.

ハイパーバイザ22Aは、スワップ領域確認機能201と、仮想ディスク解析機能202と、I/O確認機能203と、解放領域管理機能204と、スワップ領域削除機能205と、領域情報記憶機能206とを含む。領域貞応記憶機能206は、スワップ領域アドレス251と、解放領域リスト252とを記憶する。   The hypervisor 22A includes a swap area confirmation function 201, a virtual disk analysis function 202, an I / O confirmation function 203, a release area management function 204, a swap area deletion function 205, and an area information storage function 206. The area virtue storage function 206 stores a swap area address 251 and a release area list 252.

ディスク30は、シンディスク301と、スワップ領域ファイル302とを含む。   The disk 30 includes a thin disk 301 and a swap area file 302.

以下では、ゲストOS21によって制御される仮想マシン20の動作を、ゲストOS21あるいはゲストOS21が備える機能の動作として説明する。さらに、ハイパーバイザ22Aによって制御される、情報処理装置2のプロセッサの動作を、ハイパーバイザ22Aまたはハイパーバイザ22Aが備える機能の動作として説明する。   Hereinafter, the operation of the virtual machine 20 controlled by the guest OS 21 will be described as the operation of the guest OS 21 or a function provided in the guest OS 21. Furthermore, the operation of the processor of the information processing apparatus 2 controlled by the hypervisor 22A will be described as the operation of the function provided in the hypervisor 22A or the hypervisor 22A.

まず、本実装例の構成要素と、第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 guest OS 21 corresponds to the virtual machine 20 in the first embodiment. The hypervisor 22A corresponds to the storage area management device 1 and the virtual machine execution unit 22 in the first embodiment. The disk 30 corresponds to the storage device 3.

スワップ領域確認機能201は、動作検出部16と、確保部19に相当する。仮想ディスク解析機能202は、スワップ領域検出部17に相当する。I/O確認機能203は、要求検出部10と、管理部11と、要求実行部12に相当する。解放領域管理機能204は、再配置部14と、解放部15に相当する。スワップ領域削除機能205は、動作検出部16と、削除部18に相当する。領域情報記憶機能206は、領域情報記憶部13に相当する。   The swap area confirmation function 201 corresponds to the operation detection unit 16 and the securing unit 19. The virtual disk analysis function 202 corresponds to the swap area detection unit 17. The I / O confirmation function 203 corresponds to the request detection unit 10, the management unit 11, and the request execution unit 12. The release area management function 204 corresponds to the relocation unit 14 and the release unit 15. The swap area deletion function 205 corresponds to the operation detection unit 16 and the deletion unit 18. The area information storage function 206 corresponds to the area information storage unit 13.

図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 virtual machine 20 is activated in the hypervisor 22A. In the drawings from FIG. 13 to FIG. 17 to be described later, the function indicated by the bold line represents the function to operate. When the virtual machine 20 is activated by the hypervisor 22A, the swap area confirmation function 201 opens the thin disk 301. The virtual disk analysis function 202 confirms the logical address of the swap area included in the thin disk 301. The swap area confirmation function 201 records the confirmed logical address in the swap area address 251. The swap area confirmation function 201 further creates a swap area file 302 and a release area list 252.

図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 virtual machine 20 stops in the hypervisor 22A. When the virtual machine 20 is stopped in the hypervisor 22A, the swap area deletion function 205 determines whether the stop of the virtual machine 20 is due to suspension. The swap area deletion function 205 further checks whether a dump file is stored in the swap area file 302. When the swap area file 302 can be deleted, the swap area deletion function 205 deletes the swap area file 302, the swap area address 251, and the release area list 252.

図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 guest OS 21 performs I / O. Implementation of I / O or issuance of I / O corresponds to transmission of a write request or a read request in the description of the first embodiment. In this implementation example, the I / O in this case represents an access request (that is, a request command). When the I / O function 101 of the guest OS 21 performs I / O, the I / O confirmation function 203 compares the address of the target area with the swap area address 251 so that the target area of the I / O is the swap area. Determine if there is. The I / O confirmation function 203 issues an I / O to the thin disk 301 when the target area is not included in the swap area. When the target area is included in the swap area and the issued I / O is a read request, the I / O confirmation function 203 reads data from the used area associated with the target area in the swap area file 302. If the target area is included in the swap area and the issued I / O is a write request, control is transferred to the release area management function 204. The release area management function 204 refers to the release area list 252 to determine whether the requested write can fit in the released area. Then, the release area management function 204 determines an appropriate write area in the swap area file 302 based on the determination result. The I / O confirmation function 203 performs writing based on the issued I / O in the determined write area.

図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 area release function 102 of the guest OS 21 makes an area release request. The I / O confirmation function 203 of the hypervisor 22A receives the area release command transmitted by the area release function 102 of the guest OS 21. When receiving the area release command, the I / O confirmation function 203 transfers control to the release area management function 204. The release area management function 204 ends the process after adding the release area to the release area list 252.

図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 area management function 204 reduces the capacity of the swap area file 302. The release area management function 204 refers to the release area list 252. The release area management function 204 deletes data corresponding to the release area in the swap area file 302 based on the release area list 252. Furthermore, the release area management function 204 reduces the size of the swap area file 302 by defragmenting the swap area file 302. In this implementation example, the defragmentation includes reducing the size of the swap area file 302 by excluding the release area from the swap area file 302.

次に、本実装例の動作について、図面を参照して詳細に説明する。   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 virtual machine 20 is activated.

仮想マシン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 virtual machine 20 is activated (step S101), the swap area confirmation function 201 determines whether the activation of the virtual machine 20 is a return from suspend (step S102). Furthermore, the swap area confirmation function 201 confirms whether the swap area file 302 already exists (step S103). When the activation of the virtual machine 20 is a return from suspend (Yes in step S102), or when the swap area file 302 already exists (Yes in step S103), the hypervisor 22A operates as shown in FIG. Exit. The swap area file 302, swap area address 251, and release area list 252 that are not deleted when the previous virtual machine 20 is stopped are used as they are. If the activation of the virtual machine 20 is not return from suspend (No in step S102), and if the swap area file 302 does not exist (No in step S103), the operation proceeds to step S104. The swap area confirmation function 201 opens the thin disk 301 (step S104). Next, the virtual disk analysis function 202 identifies the address of the swap area included in the thin disk 301 (step S105).

スワップ領域確認機能201は、特定したアドレスをスワップ領域アドレス251として領域情報記憶機能206に記憶させる(ステップS107)。加えて、スワップ領域確認機能201は、スワップ領域ファイル302を作成する(ステップS106)。また、スワップ領域確認機能201は、解放領域リスト252を作成する(ステップS108)。   The swap area confirmation function 201 stores the specified address in the area information storage function 206 as the swap area address 251 (step S107). In addition, the swap area confirmation function 201 creates a swap area file 302 (step S106). Further, the swap area confirmation function 201 creates the release area list 252 (step S108).

図9が、仮想マシン20が停止した場合における、本実装例の動作を表す。   FIG. 9 shows the operation of this implementation example when the virtual machine 20 is stopped.

仮想マシン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 virtual machine 20 is stopped (step S201), the swap area deletion function 205 determines whether the virtual machine 20 is stopped due to suspension (step S202). The swap area deletion function 205 further determines whether a dump file is stored in the swap area file 302 (step S203). When the virtual machine 20 is stopped by the suspend (Yes in Step S202) and the dump file is stored in the swap area file 302 (Yes in Step S202), the operation illustrated in FIG. If the virtual machine 20 has not been suspended due to suspend (No in step S202), and no dump file is stored in the swap area file 302 (No in step S202), the operation proceeds to step S204 and subsequent steps. In that case, the swap area deletion function 205 deletes the swap area address 251 (step S204). The swap area deletion function 205 further deletes the swap area file 302 (step S205). The swap area deletion function 205 further deletes the release area list 252 (step S206).

図10は、ゲストOS21がI/Oを実施した場合における本実装例の動作を表す。   FIG. 10 shows the operation of this implementation example when the guest OS 21 performs I / O.

ゲスト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 guest OS 21 performs I / O, the I / O confirmation function 203 of the hypervisor 22A receives the I / O. The I / O confirmation function 203 identifies the issued I / O command type (step S301). The command type corresponds to the type of access request in the description of the first embodiment. When the command type is read or write, the I / O confirmation function 203 confirms the logical address of the target area (step S302). The I / O confirmation function 203 determines whether the target area is included in the swap area by comparing the logical address of the target area with the address stored as the swap area address 251 (step S303). If the target area exists outside the swap area (No in step S303), the I / O confirmation function 203 issues an I / O to the thin disk 301 (step S304). If the target area exists in the swap area (Yes in step S303), and if the I / O command type is read (No in step S305), the operation proceeds to step S306 and step S307. The I / O confirmation function 203 reads data from the swap area file 302 (steps S306 and S307). When the I / O command type is write (Yes in step S305), the I / O confirmation function 203 transfers control to the release area management function 204 to confirm the write target address. The release area management function 204 compares the I / O request size with the released size based on the release area list 252 (step S308). The required size of I / O is the size of the area where writing is performed. The released size is the total size of the release area. If the I / O request size is larger than the released size (Yes in step S308), the release area management function 204 notifies the I / O confirmation function 203 of the end address of the swap area file 302. If the I / O request size is smaller than the released size (No in step S308), the release area management function 204 has a continuous release area having a size equal to or larger than the write request size that is the I / O request size. It is determined whether or not to perform (step S309). When there is no continuous release area having a size equal to or larger than the write request size (No in step S309), the release area management function 204 performs defragmentation (step S310). Then, the release area management function 204 secures a write target area in the release area (step S311). The release area management function 204 notifies the I / O confirmation function 203 of the address of the reserved write target area. The I / O confirmation function 203 writes to the notified address in the swap area file 302 (step S312).

図18は、記憶領域管理装置1の、仮想マシン20が領域解放コマンドを送信した場合における動作の例を表すフローチャートである。すなわち、図18は、ゲストOS21が領域解放コマンドを発行した場合における、ハイパーバイザ22Aの動作を表す。図18及び後述される図19の各ステップは、図11に示す動作における、同じ符号が付与されたステップと同じである。   FIG. 18 is a flowchart illustrating an example of the operation of the storage area management device 1 when the virtual machine 20 transmits an area release command. That is, FIG. 18 shows the operation of the hypervisor 22A when the guest OS 21 issues an area release command. Each step in FIG. 18 and later-described FIG. 19 is the same as the step given the same reference numeral in the operation shown in FIG.

図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 guest OS 21 issues an area release command, the I / O confirmation function 203 of the hypervisor 22A receives the issued area release command (step S401). The I / O confirmation function 203 confirms the issued command type. Then, if the command type is an area release command, the I / O confirmation function 203 transfers control to the release area management function 204. The release area management function 204 adds the release target address specified based on the issued area release command to the release area list 252 (step S404). Then, the operation shown in FIG. 18 ends.

図19は、記憶領域管理装置1の、使用領域の再配置を行う動作の例を表すフローチャートである。すなわち、図19は、解放領域管理機能204がスワップ領域ファイル302に対しデフラグを行う動作を表す。   FIG. 19 is a flowchart illustrating an example of an operation of rearranging used areas in the storage area management apparatus 1. That is, FIG. 19 shows an operation in which the release area management function 204 defragments the swap area file 302.

解放領域管理機能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 area management function 204 determines whether or not a predetermined condition is satisfied (step S402). For example, the release area management function 204 determines whether the total size of the release target areas is equal to or greater than a threshold based on the release area list 252. When the total size of the release target areas is equal to or larger than the threshold, the release area management function 204 determines whether the access amount to the disk 30 in which the swap area file 302 exists is equal to or smaller than the threshold. The access amount is a value representing the load on the disk 30 measured based on a predetermined standard. When the access amount is equal to or smaller than the threshold (Yes in Step S403), the release area management function 204 releases the release target area in the file system (Step S405). Then, the release area management function 204 defragments the swap area file 302 (step S406). When the total size of the release target areas is equal to or less than the threshold, and when the total size of the release target areas is equal to or greater than the threshold but the I / O amount is equal to or greater than the threshold, the release area management function 204 determines the next determination. Do. In the next determination, the release area management function 204 determines whether the free capacity of the disk 30 in which the swap area file 302 exists is equal to or less than a threshold value. When the free space is equal to or smaller than the threshold, the release area management function 204 determines that it is necessary to rush the area release. Then, the release area management function 204 executes release (step S405) and defragmentation (step S406). The hypervisor 22A periodically performs the operation illustrated in FIG. 19 in the background, for example.

<第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 area control device 1A of this embodiment.

図20を参照すると、本実施形態の記憶領域管理装置1Aは、仮想マシン20に割り当てられたストレージ領域である割り当て領域301のうちスワップ領域への書き込み要求を検出する要求検出部10と、書き込み要求が検出された前記スワップ領域における、前記書き込み要求によって書き込みが要求されている対象領域と、前記割り当て領域に含まれない他のストレージ領域から前記スワップ領域に割り当てられたスワップ記憶領域302における領域とを関連付ける管理部11と、前記対象領域に関連付けられた前記領域である使用領域に対して、前記書き込み要求に基づく書き込みを行う要求実行部12と、を備える。   Referring to FIG. 20, the storage area management device 1A of the present embodiment includes a request detection unit 10 that detects a write request to a swap area in an allocation area 301 that is a storage area allocated to the virtual machine 20, and a write request. In the swap area in which the write is requested, and an area in the swap storage area 302 allocated to the swap area from another storage area not included in the allocation area. A management unit 11 to be associated; and a request execution unit 12 that performs writing based on the write request with respect to a used area that is the area associated with the target area.

なお、図20に示す情報処理装置2Aは、記憶領域制御装置1の代わりに記憶領域制御装置1Aを含む点を除き、図1に示す情報処理装置2と同じである。   20 is the same as the information processing apparatus 2 shown in FIG. 1 except that the information processing apparatus 2A shown in FIG. 20 includes the storage area control apparatus 1A instead of the storage area control apparatus 1.

以上で説明した本実施形態には、第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 computer 1000 that can implement the storage area management apparatus 1, the storage area management apparatus 1A, the information processing apparatus 2, and the information processing apparatus 2A. Referring to FIG. 21, a computer 1000 includes a processor 1001, a memory 1002, a storage device 1003, and an I / O (Input / Output) interface 1004. The computer 1000 can access the recording medium 1005. The memory 1002 and the storage device 1003 are storage devices such as a RAM (Random Access Memory) and a hard disk, for example. The recording medium 1005 is, for example, a storage device such as a RAM or a hard disk, a ROM (Read Only Memory), or a portable recording medium. The storage device 1003 may be the recording medium 1005. The processor 1001 can read and write data and programs from and to the memory 1002 and the storage device 1003. The processor 1001 can access, for example, the storage apparatus 3 via the I / O interface 1004. The processor 1001 can access the recording medium 1005. The recording medium 1005 stores a program that causes the computer 1000 to operate as the storage area management apparatus 1, the storage area management apparatus 1A, the information processing apparatus 2, or the information processing apparatus 2A.

プロセッサ1001は、記録媒体1005に格納されている、コンピュータ1000を、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、又は、情報処理装置2Aとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、記憶領域管理装置1、記憶領域管理装置1A、情報処理装置2、又は、情報処理装置2Aとして動作する。   The processor 1001 loads a program stored in the recording medium 1005 to cause the computer 1000 to operate as the storage area management apparatus 1, the storage area management apparatus 1A, the information processing apparatus 2, or the information processing apparatus 2A. To do. Then, when the processor 1001 executes the program loaded in the memory 1002, the computer 1000 operates as the storage area management apparatus 1, the storage area management apparatus 1A, the information processing apparatus 2, or the information processing apparatus 2A.

要求検出部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 request detection unit 10, the management unit 11, the request execution unit 12, the relocation unit 14, the release unit 15, the operation detection unit 16, the swap area detection unit 17, the deletion unit 18, the securing unit 19, and the virtual machine execution unit 22 are, for example, It can be realized by a dedicated program that can be read from a recording medium 1005 that stores the program into the memory 1002 and that can realize the functions of the respective units, and a processor 1001 that executes the program. The area information storage unit 13 can be realized by a memory 1002 included in the computer 1000 or a storage device 1003 such as a hard disk device. Alternatively, the request detection unit 10, the management unit 11, the request execution unit 12, the area information storage unit 13, the rearrangement unit 14, the release unit 15, the operation detection unit 16, the swap area detection unit 17, the deletion unit 18, the securing unit 19, Part or all of the virtual machine execution unit 22 may be realized by a dedicated circuit that implements the function of each unit.

以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   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 SYMBOLS 1, 1A Storage area management apparatus 2, 2A Information processing apparatus 3 Storage apparatus 10 Request detection part 11 Management part 12 Request execution part 13 Area information storage part 14 Relocation part 15 Release part 16 Operation | movement detection part 17 Swap area detection part 18 Deletion Part 19 securing part 20 virtual machine 21 guest OS
22 Virtual Machine Execution Unit 22A Hypervisor 30 Disk 100 Information Processing System 101 I / O Function 102 Area Release Function 201 Swap Area Confirmation Function 202 Virtual Disk Analysis Function 203 I / O Confirmation Function 204 Release Area Management Function 205 Swap Area Deletion Function 206 Area information storage function 251 Swap area address 252 Release area list 301 Allocation area (thin disk)
302 Swap storage area (swap area file)
1000 Computer 1001 Processor 1002 Memory 1003 Storage Device 1004 I / O Interface 1005 Recording Medium

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:
前記スワップ記憶領域と前記割り当て領域に割り当てられる記憶領域とを含むストレージ装置と、請求項1乃至7のいずれかに記載の記憶領域管理装置とを含み、
前記仮想マシンを実行する仮想マシン実行手段
を備える情報処理システム。
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.
JP2014046450A 2014-03-10 2014-03-10 Storage area management device, storage area management method, and storage area management program Active JP6311365B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20180203637A1 (en) Storage control apparatus and storage control program medium
JP4902501B2 (en) Power control method, computer system, and program
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
US9983826B2 (en) Data storage device deferred secure delete
JP2016162397A (en) Storage control device, control system and control program
JP6311365B2 (en) Storage area management device, storage area management method, and storage area management program
JPWO2013186828A1 (en) Computer system and control method
US20110238915A1 (en) Storage system
JP6171084B2 (en) Storage system
JP2007102314A (en) Disk cache-control device
US8938596B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
JP5923913B2 (en) Storage device, storage device control method, and storage system
JP2021135538A (en) Storage control apparatus and storage control program
JP2007249728A (en) Disk array device
EP3136245B1 (en) Computer
JP5910596B2 (en) Storage management system, storage management method, program, and information processing system
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
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