JP6089855B2 - Virtualization system, virtual server, file writing method, and file writing program - Google Patents

Virtualization system, virtual server, file writing method, and file writing program Download PDF

Info

Publication number
JP6089855B2
JP6089855B2 JP2013063888A JP2013063888A JP6089855B2 JP 6089855 B2 JP6089855 B2 JP 6089855B2 JP 2013063888 A JP2013063888 A JP 2013063888A JP 2013063888 A JP2013063888 A JP 2013063888A JP 6089855 B2 JP6089855 B2 JP 6089855B2
Authority
JP
Japan
Prior art keywords
address
file
disk
virtual machine
virtual
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.)
Active
Application number
JP2013063888A
Other languages
Japanese (ja)
Other versions
JP2014191405A (en
Inventor
雅洋 嶋田
雅洋 嶋田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2013063888A priority Critical patent/JP6089855B2/en
Publication of JP2014191405A publication Critical patent/JP2014191405A/en
Application granted granted Critical
Publication of JP6089855B2 publication Critical patent/JP6089855B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、差分ディスク方式の仮想マシンに関し、特に、ファイル格納技術に関する。   The present invention relates to a differential disk type virtual machine, and more particularly to a file storage technique.

ストレージでファイルの使用量を削減するためには、高価な専用の重複排除ストレージを用意する必要があるが、重複排除ストレージの場合、複数のストレージ間で重複しているファイルは削除できなかった。   In order to reduce the amount of files used in storage, it is necessary to prepare expensive dedicated deduplication storage. However, in the case of deduplication storage, files that are duplicated among multiple storages cannot be deleted.

一方、仮想化環境において、複数VM(virtual machine:仮想マシン)間の重複排除を行う方法として、差分ディスク方式の仮想マシンという手法がある。マスタとなる仮想マシンをテンプレートとし、この仮想マシンから複数の仮想マシンを作成し、各仮想マシンの差分だけをディスクに保存する方法である。   On the other hand, as a method of performing deduplication between a plurality of VMs (virtual machines) in a virtual environment, there is a method called a differential disk type virtual machine. In this method, a master virtual machine is used as a template, a plurality of virtual machines are created from the virtual machines, and only the differences between the virtual machines are stored on a disk.

また、背景技術の一例が、特許文献1に開示されている。特許文献1では、マスタに直接OSのホットフィックスやアプリケーションをインストールしている。   An example of background art is disclosed in Patent Document 1. In Patent Document 1, an OS hot fix or application is directly installed on the master.

ここで、背景技術による差分ディスク方式の仮想マシンのファイルシステムへのアクセス方法を図14に示す。背景技術による方法では、仮想マシンでファイルシステムにアクセスした場合、仮想マシンのイメージにアクセスを試みる。アクセスしようとした個所が差分ディスクに存在する場合は、差分ディスクにアクセスを行う。アクセスしようとした個所がマスタイメージに集約されている場合は、仮想マシンマスタイメージにアクセスする。   Here, FIG. 14 shows a method for accessing a file system of a virtual machine of the differential disk method according to the background art. In the background art method, when a file system is accessed by a virtual machine, an attempt is made to access the image of the virtual machine. If the location to be accessed exists on the difference disk, the difference disk is accessed. If the location to be accessed is consolidated in the master image, the virtual machine master image is accessed.

特開2011‐221597号公報JP 2011-221597 A

背景技術における課題を説明する図を、図15に示す。900は差分ディスク方式の仮想マシンのマスタイメージである。901、902は差分ディスクの仮想マシンの差分ディスクイメージである。911、912はファイルブロックである。既存技術の場合は、同じ内容のファイルブロックであっても、どこの位置に書かれるかは不定である。すなわち、背景技術では、同じファイルの書き込みを行った場合、各仮想マシンで書き込みを行うアドレスが異なってしまう。そのため、仮想マシンに共通するファイルが存在する場合でも、マスタ部分に抜き出すことができなかった。   FIG. 15 is a diagram for explaining a problem in the background art. Reference numeral 900 denotes a master image of a virtual machine using a differential disk method. Reference numerals 901 and 902 denote difference disk images of virtual machines of difference disks. Reference numerals 911 and 912 denote file blocks. In the case of the existing technology, it is uncertain where the file block having the same content is written. That is, in the background art, when the same file is written, the address at which writing is performed in each virtual machine is different. Therefore, even if a file common to the virtual machine exists, it could not be extracted to the master part.

このように、背景技術における仮想化環境では、各仮想マシンでファイルシステムが独立して動作しているため、同じ内容のファイルを保存した場合も、各仮想マシンでバラバラの位置に保存が行われていた。この場合において、各仮想マシンの差分ディスクから共通部分をマスタに反映しようとする場合、各仮想マシンで比較を行ったディスクイメージが違ってしまうために、共通部分をマスタに反映することができなかった。   In this way, in the virtual environment in the background art, since the file system operates independently on each virtual machine, even if the same content file is saved, each virtual machine is saved at different positions. It was. In this case, if you want to reflect the common part from the difference disk of each virtual machine to the master, the common part cannot be reflected to the master because the disk image compared in each virtual machine is different. It was.

一方、各仮想マシンに、共通するOSのホットフィックスを適用するアプリケーションをインストールするなどして、各仮想マシンに共通するファイルが存在する場合でも、ファイルは各仮想マシンの差分ディスクに配置される。このため、各仮想マシンでの変更がすべて差分ディスクに蓄積されてしまい、ストレージの使用量が増大するという問題があった。   On the other hand, even if a file common to each virtual machine exists, for example, by installing an application that applies a common OS hot fix to each virtual machine, the file is placed on the difference disk of each virtual machine. For this reason, all changes in each virtual machine are accumulated in the difference disk, and there is a problem that the amount of storage used increases.

また、特許文献1の技術では、インストールするアドレスを決めるために、全仮想マシンで共通して、使用していない空き領域を探索する必要があるという問題があった。   Further, the technique disclosed in Patent Document 1 has a problem in that it is necessary to search for an unused area that is common to all virtual machines in order to determine an installation address.

(発明の目的)
本発明の目的は、上述の課題を解決し、ストレージの使用量を削減する仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラムを提供することである。
(Object of invention)
An object of the present invention is to provide a virtualization system, a virtual server, a file writing method, and a file writing program that solve the above-described problems and reduce the storage usage.

本発明の第1の仮想化システムは、マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンが動作する仮想化システムであって、複数の仮想マシンを含む仮想サーバと、マスタイメージ及び差分ディスクを格納するストレージとを備え、仮想サーバが、各仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を含む。   The first virtualization system of the present invention creates a plurality of virtual machines using a master virtual machine as a master image, and a virtual machine that operates a differential disk type virtual machine that stores a difference of each virtual machine in a difference disk A system comprising a virtual server including a plurality of virtual machines and a storage for storing a master image and a difference disk, wherein the virtual server has the same file block on each difference disk for each virtual machine. Control means for storing in the address is included.

本発明の第1の仮想サーバは、マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバであって、各仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を備える。   The first virtual server of the present invention is a virtual server including a difference disk type virtual machine that creates a plurality of virtual machines using a master virtual machine as a master image and stores differences between the virtual machines in a difference disk. For each virtual machine, control means for storing the same file block at the same address on each difference disk is provided.

本発明の第1のファイル書き込み方法は、マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバによるファイル書き込み方法であって、制御手段が、各仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御ステップを有する。   The first file writing method of the present invention uses a virtual server including a virtual machine of a differential disk system that creates a plurality of virtual machines using a master virtual machine as a master image and stores the differences of the virtual machines in a differential disk. In the file writing method, the control unit has a control step of storing a file block having the same contents for each virtual machine at the same address on each difference disk.

本発明の第1のファイル書き込みプログラムは、マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバ上で動作するファイル書き込みプログラムであって、制御手段に、各仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御処理を実行させる。   The first file writing program of the present invention creates a plurality of virtual machines using a master virtual machine as a master image, and stores a difference of each virtual machine in a difference disk on a virtual server including a difference disk type virtual machine The control program causes the control unit to execute a control process for storing a file block having the same contents for each virtual machine at the same address on each difference disk.

本発明によれば、ストレージの使用量を削減することができる。   According to the present invention, the amount of storage used can be reduced.

本発明の第1の実施の形態による仮想化システムの構成を示すブロック図である。It is a block diagram which shows the structure of the virtualization system by the 1st Embodiment of this invention. 本発明の第1の実施の形態によるファイル書き込み方法を示す図である。It is a figure which shows the file writing method by the 1st Embodiment of this invention. 本発明の第1の実施の形態によるCAプログラムの動作を示すフローチャートである。It is a flowchart which shows operation | movement of the CA program by the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムがディスクドライバ内で動作する様子を示す図である。It is a figure which shows a mode that CA program operate | moves within a disk driver in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムがディスクドライバ内に存在する場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement in case the CA program exists in a disk driver in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムがファイルシステム内で動作する様子を示す図である。It is a figure which shows a mode that the CA program operate | moves within a file system in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムがファイルシステムに存在する場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement when the CA program exists in a file system in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムが再配置プログラム内に存在する場合の様子を示す図である。It is a figure which shows a mode in case the CA program exists in a rearrangement program in the 1st Embodiment of this invention. 本発明の第1の実施の形態においてCAプログラムが再配置プログラム内に存在する場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement in case the CA program exists in a rearrangement program in the 1st Embodiment of this invention. 本発明の第1の実施の形態において各差分ディスク上の共通部分をマスタに反映する場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement in the case of reflecting the common part on each difference disk in a master in the 1st Embodiment of this invention. 本発明の第1の実施の形態によるファイル書き込み方法を示す図である。It is a figure which shows the file writing method by the 1st Embodiment of this invention. 本発明の仮想化システムの最小限の構成を示すブロック図である。It is a block diagram which shows the minimum structure of the virtualization system of this invention. 本発明の仮想サーバのハードウェア構成例を示すブロック図である。It is a block diagram which shows the hardware structural example of the virtual server of this invention. 背景技術による差分ディスク方式の仮想マシンのファイルシステムへのアクセス方法を示す図である。It is a figure which shows the access method to the file system of the virtual machine of a difference disk system by background art. 背景技術による課題を説明する図である。It is a figure explaining the subject by background art.

本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。   In order to clarify the above and other objects, features and advantages of the present invention, embodiments of the present invention will be described in detail below with reference to the accompanying drawings. In addition to the above-described object of the present invention, other technical problems, means for solving the technical problems, and operational effects thereof will become apparent from the disclosure of the following embodiments. In all the drawings, the same reference numerals are given to the same components, and the description will be omitted as appropriate.

(第1の実施の形態)
本発明では、仮想マシンに対し、同じ内容のファイルは同じアドレスのディスクブロックに書き込みを行うように制御するコンテンツアドレス(Contents Address)プログラム(以下CAプログラム)を導入する。CAプログラムにより、複数の仮想マシン間で、同一の内容のファイルのブロックを同じアドレスに保存ができ、差分ディスク方式で作成された仮想マシンにおいて、複数仮想マシンで共通するファイルブロックを抜き出し、マスタに配置することが可能となる。
(First embodiment)
In the present invention, a content address (Contents Address) program (hereinafter referred to as a CA program) for controlling a file having the same content to be written to a disk block having the same address is introduced into the virtual machine. With the CA program, blocks of the same contents can be saved at the same address among multiple virtual machines. In a virtual machine created by the differential disk method, file blocks common to multiple virtual machines are extracted and used as the master. It becomes possible to arrange.

以下、本発明の第1の実施の形態について図面を参照して詳細に説明する。   Hereinafter, a first embodiment of the present invention will be described in detail with reference to the drawings.

図1は、本発明の第1の実施の形態に係る仮想化システム1000の構成を示すブロック図である。仮想化システム1000は、仮想サーバ10と、ストレージ300とを備える。   FIG. 1 is a block diagram showing a configuration of a virtualization system 1000 according to the first embodiment of the present invention. The virtualization system 1000 includes a virtual server 10 and a storage 300.

仮想サーバ10では、仮想マシン11〜13(仮想マシン1〜3)が動作している。なお、仮想マシンの数はこれに限定されるものではなく、任意に設定可能であるものとする。   In the virtual server 10, virtual machines 11 to 13 (virtual machines 1 to 3) are operating. The number of virtual machines is not limited to this, and can be arbitrarily set.

仮想マシン11〜13には、それぞれストレージ装置300上のディスク領域が割り当てられている。また、仮想マシン11〜13は、差分ディスク方式で作成されている。   A disk area on the storage device 300 is allocated to each of the virtual machines 11 to 13. The virtual machines 11 to 13 are created by the differential disk method.

ストレージ装置300は、各仮想マシンで共通するマスタイメージ200と、そのマスタの差分からなる差分ディスク201〜203で構成されている。マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンが作成され、各仮想マシンの差分が差分ディスクに保存される。   The storage apparatus 300 includes a master image 200 that is common to each virtual machine and difference disks 201 to 203 that are differences between the master images. A plurality of virtual machines are created using the master virtual machine as a master image, and differences between the virtual machines are stored in a difference disk.

各仮想マシン11〜13では、同じ内容のファイルのブロックを同一のアドレスに格納するCAプログラム100が動作している。CAプログラム(Contents Addressプログラム)は、CAアドレスID(ファイル名などのファイルのメタデータとファイルブロックの内容から決められるID)から、ファイルブロックの格納アドレスを決定する。   In each of the virtual machines 11 to 13, a CA program 100 that stores a block of a file having the same content at the same address is operating. The CA program (Contents Address program) determines the storage address of the file block from the CA address ID (ID determined from the file metadata such as the file name and the contents of the file block).

CAプログラムが動作するコンポーネントには、3種類の方法が考えられる。   Three types of methods are conceivable for the component in which the CA program operates.

1つ目の実現方法は、ディスクドライバ内で動作する方法である。ファイルシステムから、ファイルブロックの書き込みが行われると、CAプログラムはファイルブロックのアドレスの変換を行う。仮想ディスクへの書き込みは、この変換後のアドレスに行うことで同一の内容が、同一アドレスの仮想ディスクに保存される。この実現方法は重複排除ストレージ機能を仮想OSにおいた上で各ブロックのCA IDをキーとしてディスク上の物理アドレスも決める。ただし、この方式の場合は、ディスクドライバないでファイルのメタデータを取得することが難しいため、アドレスの変換はメタデータを使用せず、ファイルブロックの内容のみで行う。   The first implementation method is a method that operates in a disk driver. When a file block is written from the file system, the CA program converts the address of the file block. By writing to the virtual disk at the converted address, the same contents are stored in the virtual disk having the same address. In this implementation method, the deduplication storage function is set in the virtual OS, and the physical address on the disk is also determined using the CA ID of each block as a key. However, in this method, it is difficult to obtain file metadata without a disk driver, so address conversion is performed using only the contents of the file block without using metadata.

2つ目の実現方法は、ファイルシステムで動作する方法である。ファイルシステムでは、書き込みを行うファイルのブロックアドレスと仮想ディスクのアドレスを管理するテーブルが存在する。通常のファイルシステムでは、空き仮想ディスクアドレスが使用されるが、本実施の形態では、CAプログラムにより、CA IDから仮想ディスクアドレスを決定する。この方法により、同一の内容が、同一アドレスの仮想ディスクに保存される。   The second implementation method is a method that operates in a file system. In the file system, there is a table for managing the block address of the file to be written and the address of the virtual disk. In a normal file system, a free virtual disk address is used, but in this embodiment, a virtual disk address is determined from a CA ID by a CA program. By this method, the same contents are stored in the virtual disk with the same address.

3つ目の実現方法は、ファイルの再配置プログラム内で動作する方法である。再配置プログラムが、ファイルの再配置を行う際に、CA IDから仮想ディスクアドレスを決定することにより、ファイルの再配置完了後には同一の内容が、同一アドレスの仮想ディスクに保存される。この実現方法では、CAプログラムにより、一般的なデフラグとは逆に、ファイルの配置がストレージ内で分散してしまい、ディスクアクセスが非効率になってしまう。しかし、近年では、SSDなどランダムアクセスの性能に優れたデバイスが普及しており、この方式を実現することが可能となっている。   The third realization method is a method that operates in a file relocation program. When the relocation program relocates the file, the virtual disk address is determined from the CA ID, so that the same contents are stored in the virtual disk with the same address after the relocation of the file is completed. In this implementation method, the CA program causes the file allocation to be distributed in the storage, which is contrary to general defragmentation, and disk access becomes inefficient. However, in recent years, devices with excellent random access performance, such as SSD, have become widespread, and this method can be realized.

仮想サーバ10上で動作するマスタ更新マネージャ101は、各仮想マシン11〜13で内容が共通するブロックを検索し、そのブロックをマスタに反映、重複している部分を排除する機能を備えている。   The master update manager 101 operating on the virtual server 10 has a function of searching for a block having the same content in each of the virtual machines 11 to 13, reflecting the block on the master, and eliminating the overlapping portion.

(第1の実施の形態の動作の説明)
次に、本実施の形態による仮想化システム1000の動作について、図面を参照して詳細に説明する。
(Description of the operation of the first embodiment)
Next, the operation of the virtualization system 1000 according to the present embodiment will be described in detail with reference to the drawings.

図2は、本発明における仮想マシンでのファイルの書き込み方法を示す図である。以下の説明では、仮想マシン1、2を例にとって説明する。   FIG. 2 is a diagram illustrating a file writing method in the virtual machine according to the present invention. In the following description, the virtual machines 1 and 2 will be described as an example.

マスタイメージ200は、差分ディスク方式で作成された仮想マシン1、2のマスタイメージである。各仮想マシン1、2は、共通部分以外を保持する差分ディスク201、202をそれぞれ保持している。   The master image 200 is a master image of the virtual machines 1 and 2 created by the difference disk method. Each of the virtual machines 1 and 2 holds difference disks 201 and 202 that hold data other than the common parts.

本発明では、CAプログラム100により、同じ内容のファイルブロック211、212が仮想マシン1、2の各差分ディスク201、202の同じ位置に保存されるように処理が行われる。   In the present invention, processing is performed by the CA program 100 so that the file blocks 211 and 212 having the same contents are stored in the same positions of the difference disks 201 and 202 of the virtual machines 1 and 2.

マスタ更新マネージャ101、は定期的に仮想マシン1、2のディスクに共通部分が存在するかを探索する。CAプログラム100により同じ内容のブロックは同じアドレスに保存されるため、マスタ更新マネージャ101が行う共通ブロックの探索は、同じアドレスのブロック同士を対比して確認するだけでよく、効率よく探索を行うことが可能である。   The master update manager 101 periodically searches for a common part in the disks of the virtual machines 1 and 2. Since the blocks having the same contents are stored at the same address by the CA program 100, the search for the common block performed by the master update manager 101 only needs to be performed by comparing the blocks having the same address with each other. Is possible.

マスタ更新マネージャ101の探索により、対象仮想マシンで内容が共通のブロックとしてブロック211、212が存在した場合は、この内容をマスタのブロック213にコピーする。次いで、各仮想マシンの差分ディスク201、202から、マスタイメージ200にコピーを行った共通部分(ブロック211、212)の削除を行う。差分ディスク201、202から削除が行われた個所(ブロック211、212)にアクセスを行う場合は、図12で説明したように、マスタにアクセスが行われる。   When the master update manager 101 searches for the blocks 211 and 212 as common blocks in the target virtual machine, the contents are copied to the master block 213. Next, the common parts (blocks 211 and 212) copied to the master image 200 are deleted from the difference disks 201 and 202 of each virtual machine. When accessing the location (blocks 211 and 212) deleted from the difference disks 201 and 202, the master is accessed as described with reference to FIG.

図3は、本実施の形態におけるCAプログラム100の動作を示すフローチャートである。CAプログラム100は、ファイルブロックの書き込み指示があると(ステップS1101)、その対象ブロックのファイル名などのメタデータとデータの内容から決定されるCA IDを求める(ステップS1102)。CA IDは、一種のハッシュ値である。   FIG. 3 is a flowchart showing the operation of the CA program 100 in the present embodiment. When there is an instruction to write a file block (step S1101), the CA program 100 obtains a CA ID determined from metadata such as the file name of the target block and the content of the data (step S1102). The CA ID is a kind of hash value.

このCA IDを元にして、CAプログラム100は、ファイルブロックを保存するアドレスへの変換を行う(ステップS1103)。そして、CAプログラム100は、変換後のアドレスが既に使用されているかを、アドレス変換テーブルを探索して確認を行う(ステップS1104)。   Based on the CA ID, the CA program 100 performs conversion to an address for storing the file block (step S1103). Then, the CA program 100 searches the address conversion table to check whether the converted address has already been used (step S1104).

CA IDは、ファイルの内容から決定するが、一意性を保証できず、内容が異なる場合も同じ値になることがありあえる。もし、変換後のアドレスが使用されている場合は、CAプログラム100はアドレスの再変換を行う。このアドレスの再変換には複数の方法が考えられるが、その一つとしては、変換後のアドレスの1ブロックとなりを利用する方法がある(ステップS1105)。   The CA ID is determined from the contents of the file. However, the uniqueness cannot be guaranteed, and the same value may be obtained even when the contents are different. If the converted address is used, the CA program 100 re-converts the address. A plurality of methods are conceivable for the re-conversion of the address, and one of them is a method of using one block of the converted address (step S1105).

CAプログラム100は、使用されていない変換後のアドレスが発見できるまで、アドレスの変換を行う。使用されていない変換後アドレスが発見できれば、CAプログラム100は、変換前アドレスと変換後アドレスをテーブルに保存し、ファイルブロックの書き込みを行う(ステップS1106)。   The CA program 100 performs address conversion until a post-conversion address that is not used can be found. If a post-conversion address that is not used can be found, the CA program 100 stores the pre-conversion address and the post-conversion address in a table, and writes a file block (step S1106).

図4は、CAプログラム100がディスクドライバ112内で動作する場合を示す図である。本実施の形態では、CAプログラム100はディスクドライバ112内で動作する。本実施の形態の場合、ファイルシステム113で利用しているアドレスと、CAプログラム100により変換されたアドレスを管理するアドレス変換テーブル111をディスクドライバ112内に保持する。ディスクドライバ112から、ファイルブロック321、322の書き込みを行う場合は、このアドレス変換テーブル111に変換前、変換後のアドレスを追加する。ファイルブロックの読み込みを行う場合は、アドレス変換テーブル111により、アドレスを変換して、変換後のアドレスにより、読み込みを行う。   FIG. 4 is a diagram showing a case where the CA program 100 operates in the disk driver 112. In the present embodiment, the CA program 100 operates within the disk driver 112. In the case of this embodiment, an address conversion table 111 for managing addresses used in the file system 113 and addresses converted by the CA program 100 is held in the disk driver 112. When writing the file blocks 321 and 322 from the disk driver 112, addresses before and after conversion are added to the address conversion table 111. When reading the file block, the address is converted by the address conversion table 111, and reading is performed by the converted address.

図5は、CAプログラム100がディスクドライバ112に存在する場合におけるCAプログラム100の動作を示すフローチャートである。ファイルブロックの書き込み指示がファイルシステム113に対して行われると(ステップS1201)、ディスクドライバ112内で動作するCAプログラム100が、ブロックアドレスから仮想ディスクアドレス(変換後アドレス)に変換を行う(ステップS1202)。ファイルシステム113では、変換後のアドレス位置にファイルブロックの内容の書き込みを行う(ステップS1203)。   FIG. 5 is a flowchart showing the operation of the CA program 100 when the CA program 100 exists in the disk driver 112. When the file block write instruction is issued to the file system 113 (step S1201), the CA program 100 operating in the disk driver 112 converts the block address to the virtual disk address (post-conversion address) (step S1202). ). In the file system 113, the contents of the file block are written in the converted address position (step S1203).

図6は、CAプログラム100がファイルシステム113に組み込まれている場合を示す図である。CAプログラム100はファイルシステム113に組み込まれていて、ブロックアドレスから仮想ディスクアドレスの決定をCAプログラム100により行う。CAプログラム100は、CA IDから仮想ディスクアドレスを決定し、同じ内容のファイルブロックが同じアドレスに書き込みされる。   FIG. 6 is a diagram showing a case where the CA program 100 is incorporated in the file system 113. The CA program 100 is incorporated in the file system 113, and the CA program 100 determines the virtual disk address from the block address. The CA program 100 determines a virtual disk address from the CA ID, and file blocks having the same contents are written to the same address.

図7は、CAプログラム100がファイルシステム113に存在する場合の動作を示すフローチャートである。ファイルブロックの書き込み指示がファイルシステム113に対して行われると(ステップS1301)、ファイルシステム113内で動作するCAプログラム100が、ブロックアドレスから仮想ディスクアドレスに変換を行う(ステップS1302)。ファイルシステム113では、変換後のアドレス位置にファイルブロックの内容の書き込みを行う(ステップS1303)。   FIG. 7 is a flowchart showing an operation when the CA program 100 exists in the file system 113. When a file block write instruction is issued to the file system 113 (step S1301), the CA program 100 operating in the file system 113 converts the block address into a virtual disk address (step S1302). In the file system 113, the contents of the file block are written at the converted address position (step S1303).

図8は、CAプログラム100が仮想マシン11上で動作する再配置プログラム115内に存在する場合を示す図である。ファイルのデフラグをこの再配置プログラム115により実行した場合に、CA IDから仮想ディスクアドレスを決定し、ブロックを移動させる。この再配置プログラム115により、複数仮想マシン間で同じ内容のファイルブロックが同じアドレスの位置に配置される。   FIG. 8 is a diagram illustrating a case where the CA program 100 exists in the relocation program 115 operating on the virtual machine 11. When the file defragmentation is executed by the relocation program 115, the virtual disk address is determined from the CA ID, and the block is moved. By this relocation program 115, file blocks having the same contents among a plurality of virtual machines are arranged at the same address positions.

図9は、CAプログラム100が仮想マシン11上で動作する再配置プログラム115内に存在する場合の動作を示すフローチャートである。再配置プログラム115を実行すると、ファイルブロックの移動が行われる。CAプログラム100が、ファイルブロックの移動先のアドレスを、CA IDに基づき決定する(ステップS1401)。再配置プログラム115は、変換されたアドレスにファイルブロックを移動する(ステップS1402)。   FIG. 9 is a flowchart showing an operation when the CA program 100 exists in the relocation program 115 operating on the virtual machine 11. When the rearrangement program 115 is executed, the file block is moved. The CA program 100 determines the destination address of the file block based on the CA ID (step S1401). The rearrangement program 115 moves the file block to the converted address (step S1402).

図10は、本実施の形態において、共通部分をマスタに反映する場合の動作を示すフローチャートである。マスタ更新マネージャ101が、各仮想マシンの差分ディスクを参照し、ファイルブロックの内容が一致するブロックを探索する(ステップS1501)。次いで、マスタ更新マネージャ101は、内容が一致しているファイルブロックをマスタイメージにコピーを行う(ステップS1502)。最後に、マスタ更新マネージャ101は、マスタイメージにコピーしたファイルブロックを、仮想マシンの差分ディスクから削除する(ステップS1503)。   FIG. 10 is a flowchart showing the operation when the common part is reflected on the master in this embodiment. The master update manager 101 refers to the difference disk of each virtual machine and searches for a block in which the contents of the file block match (step S1501). Next, the master update manager 101 copies the file blocks whose contents match to the master image (step S1502). Finally, the master update manager 101 deletes the file block copied to the master image from the difference disk of the virtual machine (step S1503).

ところで、図3で説明したCAプログラム100では、変換後のアドレスが使用済みであれば、その他の空きアドレスを候補とした。これは、CA IDが同一であれば、保存する内容が同一であることを保証できないためである。   By the way, in the CA program 100 described with reference to FIG. 3, if the converted address is already used, other free addresses are set as candidates. This is because if the CA ID is the same, it cannot be guaranteed that the stored contents are the same.

しかし、実際にはCA IDが同一で、内容が異なる可能性は十分に低い。そこで、図11に示すフローチャートのように、変換後アドレスが使用済みの場合、ファイルブロックの内容が一致するかを確認し、一致した場合は、書き込みを省くという手順も考えられる。図3、図11で説明したフローチャートでは、変換後のアドレスが使用できない場合に、アドレスを1つずらし、隣のブロックを利用しているが、最初に利用したCA IDとは別のアルゴリズムで再度CA IDを計算する方法が考えられる。   However, in reality, the possibility that the CA ID is the same and the contents are different is sufficiently low. Therefore, as shown in the flowchart of FIG. 11, if the post-conversion address is already used, it is possible to check whether the contents of the file blocks match. In the flowcharts described with reference to FIGS. 3 and 11, when the converted address cannot be used, the address is shifted by one and the adjacent block is used, but again with an algorithm different from the CA ID used first. A method for calculating the CA ID is conceivable.

(第1の実施の形態による効果)
本実施の形態によれば、仮想化環境において、仮想マシンで同じ内容のファイルブロックを同じアドレスに保存する技術と各仮想マシンの差分ディスクに存在する共通部分をマスタに反映する技術を組み合わせることにより、各差分ディスクに存在する共通部分をマスタイメージに移動することが可能となり、システム全体でのディスク使用量を削減することができる。すなわち、仮想マシンの差分ディスクから共通する部分をマスタとなる仮想マシンに移動することにより、ストレージの使用量を削減することが可能となる。
(Effects of the first embodiment)
According to the present embodiment, in a virtual environment, by combining a technology for storing file blocks having the same contents in a virtual machine at the same address and a technology for reflecting a common part existing in a difference disk of each virtual machine on a master. The common part existing in each difference disk can be moved to the master image, and the amount of disk usage in the entire system can be reduced. In other words, it is possible to reduce the amount of storage used by moving a common part from the difference disk of the virtual machine to the master virtual machine.

また、本実施の形態によれば、仮想マシンからファイルの書き込みを行う際に、同じ内容であれば、同じアドレスに保存を行うため、共通部分の探索に全探索を行う必要がなく、高速に処理を行うことが可能となる。   Further, according to the present embodiment, when writing a file from a virtual machine, if the same contents are stored, it is stored at the same address. Processing can be performed.

また、本実施の形態によれば、各仮想マシンからOSのホットフィックスなどの共通部分をマスタに反映するので、マスタの更新による仮想マシンを再作成する必要がなくなり、運用の手間を減らすことが可能となる。さらに、OSのホットフィックスやアプリケーション以外に、各仮想マシンが共通して保持しているファイルも同時に重複を発見し、マスタに移動することにより、ディスクの使用量を減らすことが可能となる。   In addition, according to the present embodiment, since a common part such as an OS hot fix is reflected on the master from each virtual machine, it is not necessary to recreate the virtual machine by updating the master, and the operation time can be reduced. It becomes. Furthermore, in addition to OS hot fixes and applications, files shared by each virtual machine are also found at the same time and transferred to the master, thereby reducing the amount of disk usage.

また、本実施の形態では、ストレージの種類を選ばず、また、複数のストレージで重複しているファイルを削除することが可能となる。   In the present embodiment, it is possible to delete duplicate files in a plurality of storages without selecting the type of storage.

ここで、本発明の課題を解決できる最小限の構成を図12に示す。仮想化システム1000が、マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンが動作する仮想化システム1000であって、複数の仮想マシンを含む仮想サーバ10と、マスタイメージ及び差分ディスクを格納するストレージ300とを備え、仮想サーバ10が、各仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を含むことで、上述した本発明の課題を解決することができる。   Here, FIG. 12 shows a minimum configuration capable of solving the problems of the present invention. The virtualization system 1000 is a virtualization system 1000 in which a virtual machine using a differential disk system that creates a plurality of virtual machines using a master virtual machine as a master image and stores differences between the virtual machines in a differential disk operates. A virtual server 10 including a plurality of virtual machines, and a storage 300 for storing a master image and a difference disk, and the virtual server 10 assigns the same file block for each virtual machine to the same address on each difference disk. By including the control means stored in the above, the above-described problems of the present invention can be solved.

次に、本発明の仮想サーバ10のハードウェア構成例について、図13を参照して説明する。   Next, a hardware configuration example of the virtual server 10 of the present invention will be described with reference to FIG.

図13を参照すると、本発明の仮想サーバ10は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)401、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部402、ネットワークを介してデータの送受信を行う通信部403、入力装置405や出力装置406及び記憶装置407と接続してデータの送受信を行う入出力インタフェース部404、上記各構成要素を相互に接続するシステムバス408を備えている。記憶装置407は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。   Referring to FIG. 13, the virtual server 10 of the present invention has a hardware configuration similar to that of a general computer device, and includes data such as a CPU (Central Processing Unit) 401 and a RAM (Random Access Memory). The main storage unit 402 used for the work area and the temporary data saving area, the communication unit 403 that transmits / receives data via the network, the input device 405, the output device 406, and the storage device 407 are connected to transmit / receive data. An output interface unit 404 and a system bus 408 for interconnecting the above components are provided. The storage device 407 is realized by, for example, a hard disk device including a non-volatile memory such as a ROM (Read Only Memory), a magnetic disk, and a semiconductor memory.

本発明の仮想サーバ10の各機能は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置407に格納し、そのプログラムを主記憶部402にロードしてCPU401で実行することにより、ソフトウェア的に実現することも可能である。   Each function of the virtual server 10 of the present invention is realized by implementing circuit operations, which are hardware components such as LSI (Large Scale Integration), in which a program is incorporated, thereby realizing the operation in hardware. A program that provides the function can be realized in software by storing the program in the storage device 407, loading the program into the main storage unit 402, and executing it by the CPU 401.

以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。   The present invention has been described above with reference to preferred embodiments. However, the present invention is not necessarily limited to the above embodiments, and various modifications can be made within the scope of the technical idea. it can.

なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, and the like are also effective as an aspect of the present invention.

また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。   The various components of the present invention do not necessarily have to be independent of each other. A plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.

また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。   Moreover, although the several procedure is described in order in the method and computer program of this invention, the order of the description does not limit the order which performs a several procedure. For this reason, when implementing the method and computer program of this invention, the order of the several procedure can be changed in the range which does not interfere in content.

また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。   The plurality of procedures of the method and the computer program of the present invention are not limited to being executed at different timings. For this reason, another procedure may occur during the execution of a certain procedure, or some or all of the execution timing of a certain procedure and the execution timing of another procedure may overlap.

さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。   Further, a part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンが動作する仮想化システムであって、
複数の仮想マシンを含む仮想サーバと、
前記マスタイメージ及び差分ディスクを格納するストレージとを備え、
前記仮想サーバが、
各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を含む
ことを特徴とする仮想化システム。
(Appendix 1)
A virtualization system in which a virtual machine of a differential disk type that creates a plurality of virtual machines using a master virtual machine as a master image and stores differences between the virtual machines in a differential disk operates.
A virtual server containing multiple virtual machines;
A storage for storing the master image and the difference disk;
The virtual server is
A virtualization system comprising: a control means for storing a file block having the same contents for each virtual machine at the same address on each difference disk.

(付記2)
定期的に、各差分ディスクに同一内容のファイルブロックが存在するか探索し、存在する場合、前記マスタイメージ上の、当該差分ディスク上のアドレスと同一アドレスに当該ファイルブロックを保存するとともに、前記差分ディスク上の当該ファイルブロックを削除するマスタ更新マネージャを備える
ことを特徴とする付記1に記載の仮想化システム。
(Appendix 2)
Periodically, each differential disk is searched for the presence of a file block having the same content, and if it exists, the file block is stored at the same address as the address on the differential disk on the master image, and the differential The virtualization system according to claim 1, further comprising a master update manager that deletes the file block on the disk.

(付記3)
変換前のアドレスと変換後のアドレスを格納するアドレス変換テーブルを備え、
前記制御手段は、
ファイルブロックの書き込み指示があった場合、当該ブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDを求め、当該CA IDを元にアドレスの変換を行い、
変換後のアドレスに対してファイルブロックの書き込みを行い、
変換前のアドレスと変換後のアドレスをアドレス変換テーブルに保存する
ことを特徴とする付記1又は付記2に記載の仮想化システム。
(Appendix 3)
It has an address conversion table that stores the address before conversion and the address after conversion.
The control means includes
When there is an instruction to write a file block, a CA ID that is a hash value is obtained based on the metadata and data contents of the block, and an address is converted based on the CA ID.
Write the file block to the converted address,
The virtualization system according to appendix 1 or appendix 2, wherein an address before translation and an address after translation are stored in an address translation table.

(付記4)
前記制御手段は、
前記変換後のアドレスが使用されている場合、アドレスの再変換を行う
ことを特徴とする付記3に記載の仮想化システム。
(Appendix 4)
The control means includes
The virtualization system according to appendix 3, wherein the address is re-converted when the converted address is used.

(付記5)
前記制御手段は、
前記変換後のアドレスが使用されている場合、書き込み対象のファイルブロックと既に書き込まれているファイルブロックの内容が一致するか確認し、一致する場合は書き込みを行わずに処理を終了し、
ファイルブロックの内容が一致しない場合、アドレスの再変換を行う
ことを特徴とする付記3に記載の仮想化システム。
(Appendix 5)
The control means includes
If the converted address is used, check whether the file block to be written and the contents of the already written file block match, and if they match, the process is terminated without writing,
The virtualization system according to appendix 3, wherein the address is reconverted when the contents of the file block do not match.

(付記6)
前記制御手段は、
前記変換後のアドレスが使用されている場合、当該変換後のアドレスの1ブロック隣を変換後アドレスとして再変換行う
ことを特徴とする付記4又は付記5に記載の仮想化システム。
(Appendix 6)
The control means includes
6. The virtualization system according to appendix 4 or appendix 5, wherein when the converted address is used, re-conversion is performed using one block adjacent to the translated address as the translated address.

(付記7)
ファイルブロックの再配置を行う再配置手段を備え、
前記制御手段が、
前記仮想マシン上でファイルのデフラグが行われた場合に、ファイルブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDに基づき前記ファイルブロックの移動先のアドレスを決定し、
前記再配置手段が、
前記制御手段により決定された移動先のアドレスに前記ファイルブロックを移動する
ことを特徴とする付記1から付記6の何れか1項に記載の仮想化システム。
(Appendix 7)
Relocation means for relocating file blocks is provided,
The control means is
When the file is defragmented on the virtual machine, the file block destination address is determined based on the CA ID which is a hash value based on the metadata and data contents of the file block;
The relocation means comprises:
The virtualization system according to any one of appendix 1 to appendix 6, wherein the file block is moved to a destination address determined by the control means.

(付記8)
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバであって、
各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を備える
ことを特徴とする仮想サーバ。
(Appendix 8)
A virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores the difference of each virtual machine in a differential disk,
A virtual server comprising control means for storing a file block having the same contents for each of the virtual machines at the same address on each difference disk.

(付記9)
定期的に、各差分ディスクに同一内容のファイルブロックが存在するか探索し、存在する場合、前記マスタイメージ上の、当該差分ディスク上のアドレスと同一アドレスに当該ファイルブロックを保存するとともに、前記差分ディスク上の当該ファイルブロックを削除するマスタ更新マネージャを備える
ことを特徴とする付記8に記載の仮想サーバ。
(Appendix 9)
Periodically, each differential disk is searched for the presence of a file block having the same content, and if it exists, the file block is stored at the same address as the address on the differential disk on the master image, and the differential The virtual server according to appendix 8, further comprising a master update manager that deletes the file block on the disk.

(付記10)
変換前のアドレスと変換後のアドレスを格納するアドレス変換テーブルを備え、
前記制御手段は、
ファイルブロックの書き込み指示があった場合、当該ブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDを求め、当該CA IDを元にアドレスの変換を行い、
変換後のアドレスに対してファイルブロックの書き込みを行い、
変換前のアドレスと変換後のアドレスをアドレス変換テーブルに保存する
ことを特徴とする付記8又は付記9に記載の仮想サーバ。
(Appendix 10)
It has an address conversion table that stores the address before conversion and the address after conversion.
The control means includes
When there is an instruction to write a file block, a CA ID that is a hash value is obtained based on the metadata and data contents of the block, and an address is converted based on the CA ID.
Write the file block to the converted address,
The virtual server according to appendix 8 or appendix 9, wherein the address before translation and the address after translation are stored in an address translation table.

(付記11)
前記制御手段は、
前記変換後のアドレスが使用されている場合、アドレスの再変換を行う
ことを特徴とする付記10に記載の仮想サーバ。
(Appendix 11)
The control means includes
The virtual server according to appendix 10, wherein when the address after conversion is used, the address is re-converted.

(付記12)
前記制御手段は、
前記変換後のアドレスが使用されている場合、書き込み対象のファイルブロックと既に書き込まれているファイルブロックの内容が一致するか確認し、一致する場合は書き込みを行わずに処理を終了し、
ファイルブロックの内容が一致しない場合、アドレスの再変換を行う
ことを特徴とする付記10に記載の仮想サーバ。
(Appendix 12)
The control means includes
If the converted address is used, check whether the file block to be written and the contents of the already written file block match, and if they match, the process is terminated without writing,
The virtual server according to appendix 10, wherein the address is reconverted when the contents of the file block do not match.

(付記13)
前記制御手段は、
前記変換後のアドレスが使用されている場合、当該変換後のアドレスの1ブロック隣を変換後アドレスとして再変換行う
ことを特徴とする付記11又は付記12に記載の仮想サーバ。
(Appendix 13)
The control means includes
13. The virtual server according to appendix 11 or appendix 12, wherein when the translated address is used, reconversion is performed using a block adjacent to the translated address as the translated address.

(付記14)
ファイルブロックの再配置を行う再配置手段を備え、
前記制御手段が、
前記仮想マシン上でファイルのデフラグが行われた場合に、ファイルブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDに基づき前記ファイルブロックの移動先のアドレスを決定し、
前記再配置手段が、
前記制御手段により決定された移動先のアドレスに前記ファイルブロックを移動する
ことを特徴とする付記8から付記13の何れか1項に記載の仮想サーバ。
(Appendix 14)
Relocation means for relocating file blocks is provided,
The control means is
When the file is defragmented on the virtual machine, the file block destination address is determined based on the CA ID which is a hash value based on the metadata and data contents of the file block;
The relocation means comprises:
The virtual server according to any one of appendix 8 to appendix 13, wherein the file block is moved to the destination address determined by the control means.

(付記15)
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバによるファイル書き込み方法であって、
制御手段が、各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御ステップを有する
ことを特徴とするファイル書き込み方法。
(Appendix 15)
A method of writing a file by a virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores a difference of each virtual machine in a differential disk,
A file writing method, wherein the control means includes a control step of storing a file block having the same content for each virtual machine at the same address on each difference disk.

(付記16)
マスタ更新マネージャが、定期的に、各差分ディスクに同一内容のファイルブロックが存在するか探索し、存在する場合、前記マスタイメージ上の、当該差分ディスク上のアドレスと同一アドレスに当該ファイルブロックを保存するとともに、前記差分ディスク上の当該ファイルブロックを削除するマスタ更新ステップを有する
ことを特徴とする付記15に記載のファイル書き込み方法。
(Appendix 16)
The master update manager periodically searches for a file block having the same contents on each difference disk, and if it exists, saves the file block at the same address on the master image as the address on the difference disk. And a master updating step of deleting the file block on the difference disk.

(付記17)
前記制御ステップで、
ファイルブロックの書き込み指示があった場合、当該ブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDを求め、当該CA IDを元にアドレスの変換を行い、
変換後のアドレスに対してファイルブロックの書き込みを行い、
変換前のアドレスと変換後のアドレスをアドレス変換テーブルに保存する
ことを特徴とする付記15又は付記16に記載のファイル書き込み方法。
(Appendix 17)
In the control step,
When there is an instruction to write a file block, a CA ID that is a hash value is obtained based on the metadata and data contents of the block, and an address is converted based on the CA ID.
Write the file block to the converted address,
The file writing method according to appendix 15 or appendix 16, wherein the address before translation and the address after translation are stored in an address translation table.

(付記18)
前記制御ステップで、
前記変換後のアドレスが使用されている場合、アドレスの再変換を行う
ことを特徴とする付記17に記載のファイル書き込み方法。
(Appendix 18)
In the control step,
The file writing method according to appendix 17, wherein when the converted address is used, the address is re-converted.

(付記19)
前記制御ステップで、
前記変換後のアドレスが使用されている場合、書き込み対象のファイルブロックと既に書き込まれているファイルブロックの内容が一致するか確認し、一致する場合は書き込みを行わずに処理を終了し、
ファイルブロックの内容が一致しない場合、アドレスの再変換を行う
ことを特徴とする付記17に記載のファイル書き込み方法。
(Appendix 19)
In the control step,
If the converted address is used, check whether the file block to be written and the contents of the already written file block match, and if they match, the process is terminated without writing,
18. The file writing method according to appendix 17, wherein the address is reconverted when the contents of the file block do not match.

(付記20)
前記制御ステップで、
前記変換後のアドレスが使用されている場合、当該変換後のアドレスの1ブロック隣を変換後アドレスとして再変換行う
ことを特徴とする付記18又は付記19に記載のファイル書き込み方法。
(Appendix 20)
In the control step,
20. The file writing method according to appendix 18 or appendix 19, wherein when the converted address is used, reconversion is performed using one block adjacent to the converted address as the converted address.

(付記21)
再配置手段が、ファイルブロックの再配置を行う再配置ステップを有し、
前記制御ステップで、
前記仮想マシン上でファイルのデフラグが行われた場合に、ファイルブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDに基づき前記ファイルブロックの移動先のアドレスを決定し、
前記再配置ステップで、
前記制御ステップにより決定された移動先のアドレスに前記ファイルブロックを移動する
ことを特徴とする付記15から付記20の何れか1項に記載のファイル書き込み方法。
(Appendix 21)
The rearrangement means includes a rearrangement step for rearranging the file blocks;
In the control step,
When the file is defragmented on the virtual machine, the file block destination address is determined based on the CA ID which is a hash value based on the metadata and data contents of the file block;
In the rearrangement step,
21. The file writing method according to any one of appendix 15 to appendix 20, wherein the file block is moved to a destination address determined by the control step.

(付記22)
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバ上で動作するファイル書き込みプログラムであって、
制御手段に、各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御処理を実行させる
ことを特徴とするファイル書き込みプログラム。
(Appendix 22)
A file writing program that operates on a virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores the differences of each virtual machine in a differential disk,
A file writing program characterized by causing a control unit to execute a control process for storing a file block having the same contents at the same address on each difference disk for each of the virtual machines.

(付記23)
マスタ更新マネージャに、定期的に、各差分ディスクに同一内容のファイルブロックが存在するか探索し、存在する場合、前記マスタイメージ上の、当該差分ディスク上のアドレスと同一アドレスに当該ファイルブロックを保存するとともに、前記差分ディスク上の当該ファイルブロックを削除するマスタ更新処理を実行させる
ことを特徴とする付記22に記載のファイル書き込みプログラム。
(Appendix 23)
The master update manager periodically searches for a file block with the same contents on each difference disk, and if it exists, saves the file block at the same address on the master image as the address on the difference disk. 23. The file writing program according to appendix 22, wherein a master update process for deleting the file block on the difference disk is executed.

(付記24)
前記制御処理で、
ファイルブロックの書き込み指示があった場合、当該ブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDを求め、当該CA IDを元にアドレスの変換を行い、
変換後のアドレスに対してファイルブロックの書き込みを行い、
変換前のアドレスと変換後のアドレスをアドレス変換テーブルに保存する
ことを特徴とする付記22又は付記23に記載のファイル書き込みプログラム。
(Appendix 24)
In the control process,
When there is an instruction to write a file block, a CA ID that is a hash value is obtained based on the metadata and data contents of the block, and an address is converted based on the CA ID.
Write the file block to the converted address,
The file writing program according to appendix 22 or appendix 23, wherein the address before translation and the address after translation are stored in an address translation table.

(付記25)
前記制御処理で、
前記変換後のアドレスが使用されている場合、アドレスの再変換を行う
ことを特徴とする付記24に記載のファイル書き込みプログラム。
(Appendix 25)
In the control process,
25. The file writing program according to appendix 24, wherein when the converted address is used, the address is re-converted.

(付記26)
前記制御処理で、
前記変換後のアドレスが使用されている場合、書き込み対象のファイルブロックと既に書き込まれているファイルブロックの内容が一致するか確認し、一致する場合は書き込みを行わずに処理を終了し、
ファイルブロックの内容が一致しない場合、アドレスの再変換を行う
ことを特徴とする付記24に記載のファイル書き込みプログラム。
(Appendix 26)
In the control process,
If the converted address is used, check whether the file block to be written and the contents of the already written file block match, and if they match, the process is terminated without writing,
25. The file writing program according to appendix 24, wherein when the contents of the file block do not match, the address is re-converted.

(付記27)
前記制御処理で、
前記変換後のアドレスが使用されている場合、当該変換後のアドレスの1ブロック隣を変換後アドレスとして再変換行う
ことを特徴とする付記25又は付記26に記載のファイル書き込みプログラム。
(Appendix 27)
In the control process,
27. The file writing program according to appendix 25 or appendix 26, wherein when the converted address is used, reconversion is performed with one block adjacent to the converted address as the converted address.

(付記28)
再配置手段に、ファイルブロックの再配置を行う再配置処理を実行させ、
前記制御処理で、
前記仮想マシン上でファイルのデフラグが行われた場合に、ファイルブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDに基づき前記ファイルブロックの移動先のアドレスを決定し、
前記再配置処理で、
前記制御処理により決定された移動先のアドレスに前記ファイルブロックを移動する
ことを特徴とする付記22から付記27の何れか1項に記載のファイル書き込みプログラム。
(Appendix 28)
Have the relocation means execute a relocation process to relocate the file block,
In the control process,
When the file is defragmented on the virtual machine, the file block destination address is determined based on the CA ID which is a hash value based on the metadata and data contents of the file block;
In the rearrangement process,
The file writing program according to any one of appendix 22 to appendix 27, wherein the file block is moved to the destination address determined by the control process.

10:仮想サーバ
11〜13:仮想マシン
100:CAプログラム
101:マスタ更新マネージャ
111:アドレス変換テーブル
112:ディスクドライバ
113:ファイルシステム
114:仮想ディスクアドレス変換テーブル
115:再配置プログラム
200:マスタイメージ
201〜203:差分ディスク
211〜213、321、322、331、332:ファイルブロック
300:ストレージ
401:CPU
402:主記憶部
403:通信部
404:入出力インタフェース部
405:入力装置
406:出力装置
407:記憶装置
408:システムバス
1000:仮想化システム
10: Virtual server 11-13: Virtual machine 100: CA program 101: Master update manager 111: Address conversion table 112: Disk driver 113: File system 114: Virtual disk address conversion table 115: Relocation program 200: Master image 201 203: Difference disk 211-213, 321, 322, 331, 332: File block 300: Storage 401: CPU
402: Main storage unit 403: Communication unit 404: Input / output interface unit 405: Input device 406: Output device 407: Storage device 408: System bus 1000: Virtualization system

Claims (10)

マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンが動作する仮想化システムであって、
複数の仮想マシンを含む仮想サーバと、
前記マスタイメージ及び差分ディスクを格納するストレージとを備え、
前記仮想サーバが、
各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を含む
ことを特徴とする仮想化システム。
A virtualization system in which a virtual machine of a differential disk type that creates a plurality of virtual machines using a master virtual machine as a master image and stores differences between the virtual machines in a differential disk operates.
A virtual server containing multiple virtual machines;
A storage for storing the master image and the difference disk;
The virtual server is
A virtualization system comprising: a control means for storing a file block having the same contents for each virtual machine at the same address on each difference disk.
定期的に、各差分ディスクに同一内容のファイルブロックが存在するか探索し、存在する場合、前記マスタイメージ上の、当該差分ディスク上のアドレスと同一アドレスに当該ファイルブロックを保存するとともに、前記差分ディスク上の当該ファイルブロックを削除するマスタ更新マネージャを備える
ことを特徴とする請求項1に記載の仮想化システム。
Periodically, each differential disk is searched for the presence of a file block having the same content, and if it exists, the file block is stored at the same address as the address on the differential disk on the master image, and the differential The virtualization system according to claim 1, further comprising a master update manager that deletes the file block on the disk.
変換前のアドレスと変換後のアドレスを格納するアドレス変換テーブルを備え、
前記制御手段は、
ファイルブロックの書き込み指示があった場合、当該ブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDを求め、当該CA IDを元にアドレスの変換を行い、
変換後のアドレスに対してファイルブロックの書き込みを行い、
変換前のアドレスと変換後のアドレスをアドレス変換テーブルに保存する
ことを特徴とする請求項1又は請求項2に記載の仮想化システム。
It has an address conversion table that stores the address before conversion and the address after conversion.
The control means includes
When there is an instruction to write a file block, a CA ID that is a hash value is obtained based on the metadata and data contents of the block, and an address is converted based on the CA ID.
Write the file block to the converted address,
The virtualization system according to claim 1 or 2, wherein an address before conversion and an address after conversion are stored in an address conversion table.
前記制御手段は、
前記変換後のアドレスが使用されている場合、アドレスの再変換を行う
ことを特徴とする請求項3に記載の仮想化システム。
The control means includes
The virtualization system according to claim 3, wherein when the address after conversion is used, the address is re-converted.
前記制御手段は、
前記変換後のアドレスが使用されている場合、書き込み対象のファイルブロックと既に書き込まれているファイルブロックの内容が一致するか確認し、一致する場合は書き込みを行わずに処理を終了し、
ファイルブロックの内容が一致しない場合、アドレスの再変換を行う
ことを特徴とする請求項3に記載の仮想化システム。
The control means includes
If the converted address is used, check whether the file block to be written and the contents of the already written file block match, and if they match, the process is terminated without writing,
4. The virtualization system according to claim 3, wherein when the contents of the file block do not match, address re-conversion is performed.
前記制御手段は、
前記変換後のアドレスが使用されている場合、当該変換後のアドレスの1ブロック隣を変換後アドレスとして再変換行う
ことを特徴とする請求項4又は請求項5に記載の仮想化システム。
The control means includes
6. The virtualization system according to claim 4, wherein, when the converted address is used, re-conversion is performed by using one block adjacent to the converted address as a converted address. 6.
ファイルブロックの再配置を行う再配置手段を備え、
前記制御手段が、
前記仮想マシン上でファイルのデフラグが行われた場合に、ファイルブロックのメタデータ及びデータ内容に基づきハッシュ値であるCA IDに基づき前記ファイルブロックの移動先のアドレスを決定し、
前記再配置手段が、
前記制御手段により決定された移動先のアドレスに前記ファイルブロックを移動する
ことを特徴とする請求項1から請求項6の何れか1項に記載の仮想化システム。
Relocation means for relocating file blocks is provided,
The control means is
When the file is defragmented on the virtual machine, the file block destination address is determined based on the CA ID which is a hash value based on the metadata and data contents of the file block;
The relocation means comprises:
The virtualization system according to claim 1, wherein the file block is moved to a destination address determined by the control unit.
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバであって、
各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御手段を備える
ことを特徴とする仮想サーバ。
A virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores the difference of each virtual machine in a differential disk,
A virtual server comprising control means for storing a file block having the same contents for each of the virtual machines at the same address on each difference disk.
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバによるファイル書き込み方法であって、
制御手段が、各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御ステップを有する
ことを特徴とするファイル書き込み方法。
A method of writing a file by a virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores a difference of each virtual machine in a differential disk,
A file writing method, wherein the control means includes a control step of storing a file block having the same content for each virtual machine at the same address on each difference disk.
マスタとなる仮想マシンをマスタイメージとして複数の仮想マシンを作成し、各仮想マシンの差分を差分ディスクに保存する差分ディスク方式の仮想マシンを含む仮想サーバ上で動作するファイル書き込みプログラムであって、
制御手段に、各前記仮想マシンについて、同じ内容のファイルブロックをそれぞれの差分ディスク上の同一アドレスに格納する制御処理を実行させる
ことを特徴とするファイル書き込みプログラム。
A file writing program that operates on a virtual server including a virtual machine of a differential disk method that creates a plurality of virtual machines using a master virtual machine as a master image and stores the differences of each virtual machine in a differential disk,
A file writing program characterized by causing a control unit to execute a control process for storing a file block having the same contents at the same address on each difference disk for each of the virtual machines.
JP2013063888A 2013-03-26 2013-03-26 Virtualization system, virtual server, file writing method, and file writing program Active JP6089855B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013063888A JP6089855B2 (en) 2013-03-26 2013-03-26 Virtualization system, virtual server, file writing method, and file writing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013063888A JP6089855B2 (en) 2013-03-26 2013-03-26 Virtualization system, virtual server, file writing method, and file writing program

Publications (2)

Publication Number Publication Date
JP2014191405A JP2014191405A (en) 2014-10-06
JP6089855B2 true JP6089855B2 (en) 2017-03-08

Family

ID=51837640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013063888A Active JP6089855B2 (en) 2013-03-26 2013-03-26 Virtualization system, virtual server, file writing method, and file writing program

Country Status (1)

Country Link
JP (1) JP6089855B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6197816B2 (en) * 2015-03-24 2017-09-20 日本電気株式会社 Storage system, storage management method, and computer program
JP6406283B2 (en) * 2016-03-01 2018-10-17 日本電気株式会社 Storage apparatus and storage method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3056704B2 (en) * 1997-08-25 2000-06-26 三菱電機株式会社 Data management device
US7747831B2 (en) * 2006-03-20 2010-06-29 Emc Corporation High efficiency portable archive and data protection using a virtualization layer
JP2009251725A (en) * 2008-04-02 2009-10-29 Hitachi Ltd Storage controller and duplicated data detection method using storage controller
JP5533888B2 (en) * 2010-02-10 2014-06-25 日本電気株式会社 Storage device
US20130247039A1 (en) * 2010-11-08 2013-09-19 Yusuke Tsutsui Computer system, method for allocating volume to virtual server, and computer-readable storage medium
US9218343B2 (en) * 2010-12-20 2015-12-22 International Business Machines Corporation Partition file system for virtual machine memory management
JP2012185605A (en) * 2011-03-04 2012-09-27 Nec Corp Virtual machine system, virtual disk management method and virtual disk management program

Also Published As

Publication number Publication date
JP2014191405A (en) 2014-10-06

Similar Documents

Publication Publication Date Title
JP6629407B2 (en) Method and system for accessing updated files and software products
KR101086857B1 (en) Control Method of Solid State Storage System for Data Merging
JP5384576B2 (en) Selective use of multiple disparate solid-state storage locations
CN111949605A (en) Method, apparatus and computer program product for implementing a file system
US10496601B1 (en) Efficient file system parsing using snap based replication
US20130282676A1 (en) Garbage collection-driven block thinning
US11237979B2 (en) Method for management of multi-core solid state drive
JP2021509981A (en) System Garbage Collection Method and Garbage Collection Method on Solid State Disk
US11099768B2 (en) Transitioning from an original device to a new device within a data storage array
US7549029B2 (en) Methods for creating hierarchical copies
JP6197816B2 (en) Storage system, storage management method, and computer program
EP2669806B1 (en) Storage system
CN111158858B (en) Cloning method and device of virtual machine and computer readable storage medium
US9733837B2 (en) Shifting a defrag operation in a mirrored system
JPWO2007099636A1 (en) File system migration method, file system migration program, and file system migration apparatus
JP6089855B2 (en) Virtualization system, virtual server, file writing method, and file writing program
KR20220006458A (en) Key-value storage device and method for sorting key
JP6033420B2 (en) Storage system and storage system control method
JP5923913B2 (en) Storage device, storage device control method, and storage system
US11875051B2 (en) Contiguous data storage using group identifiers
WO2015162717A1 (en) Computer
US10268411B1 (en) Policy and heuristic based conversion of write-optimized virtual disk format into read-optimized virtual disk format
JP2012185605A (en) Virtual machine system, virtual disk management method and virtual disk management program
KR101834082B1 (en) Apparatus and method of managing multi solid state disk system
US11249646B1 (en) Large segment management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089855

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150