WO2012173137A1 - 情報処理システム、情報処理装置、ストレージ装置、およびプログラム - Google Patents
情報処理システム、情報処理装置、ストレージ装置、およびプログラム Download PDFInfo
- Publication number
- WO2012173137A1 WO2012173137A1 PCT/JP2012/065109 JP2012065109W WO2012173137A1 WO 2012173137 A1 WO2012173137 A1 WO 2012173137A1 JP 2012065109 W JP2012065109 W JP 2012065109W WO 2012173137 A1 WO2012173137 A1 WO 2012173137A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual machine
- data
- update
- storage
- information processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
- G06F9/44563—Sharing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Definitions
- the present invention relates to an information processing system, an information processing device, a storage device, and a program.
- one computer resource is divided into a plurality of virtual machines (virtual machines).
- virtual machines virtual machines
- snapshots such as OS and applications are shared between virtual machines, and updates that occur for each virtual machine are managed as differential data by each virtual machine.
- This technique is known (see, for example, Patent Document 1).
- the following techniques are known as techniques for deleting a similar portion of data stored between a plurality of virtual machines to save storage capacity. For example, when data (blocks) with similar contents exist in a distributed manner in a plurality of virtual machines, one side of a set of these similar blocks is selected as a replacement target and the other is selected as a comparison target. The difference between the two is calculated based on the comparison result. Then, the replacement target data is deleted, and the restoration information (the comparison target identifier, the comparison result, the type of the block data comparison unit that calculated the comparison result) and the replacement target identifier are associated (for example, Patent Document 2).
- an object of the present invention is to provide an information processing system, an information processing apparatus, a storage apparatus, and a program that can distribute the processing load of a management unit that manages each virtual machine.
- an information processing system for communication-connecting a storage apparatus and a plurality of information processing apparatuses.
- the apparatus executes a virtual machine execution unit that executes one or more virtual machines in parallel, an update data storage unit that stores data used by the virtual machine in a storage area for each virtual machine, An update data management unit that updates data in a storage area for each virtual machine, and information that associates a unique virtual machine identifier assigned to the virtual machine with data stored in the update data storage unit
- a first communication unit that transmits to the storage device, the storage device,
- a second communication unit that receives data associated with the virtual machine identifier from the information processing apparatus, a common storage area that stores shared data that the virtual machine uses in common, and updated by the virtual machine
- a storage unit including an update storage area for each virtual machine that stores data, and data received from the information processing apparatus, based on the virtual identifier associated with the virtual machine identifier indicated
- the virtual machine execution unit of the information processing apparatus determines whether data used by the virtual machine is stored in the update data storage unit, and the update data storage unit May be used, the data stored in the update data storage unit may be used.
- the update data management unit of the information processing apparatus determines whether or not the predetermined sweep period has elapsed, and determines that the sweep period has elapsed, or Determining whether the shortage of storage capacity of the update data storage unit has exceeded a predetermined shortage capacity, and determining that the shortage of storage capacity of the update data storage unit has exceeded the shortage capacity, Information in which the virtual machine identifier of the virtual machine is associated with the data stored in the storage area for each virtual machine may be transmitted to the storage device.
- the update data management unit of the information processing apparatus stores all of the update data stored in the update data storage unit when the stop of the virtual machine or the stop of the information processing apparatus is instructed.
- the information in which the virtual machine identifier of the virtual machine is associated with the data may be transmitted to the storage device.
- An information processing apparatus includes a virtual machine execution unit that executes one or more virtual machines in parallel, and an update data storage unit that stores data used by the virtual machines in a storage area for each virtual machine
- An update data management unit that updates the data in the storage area for each virtual machine according to the processing of the virtual machine, and the virtual machine identifier assigned to the virtual machine in the data stored in the update data storage unit
- a communication unit that transmits the associated information.
- a storage apparatus is configured to store data associated with unique virtual machine identifiers that are communicatively connected to a plurality of information processing apparatuses and assigned to a plurality of virtual machines that are executed in the plurality of information processing apparatuses.
- a communication unit that receives from the information processing apparatus; a common storage area that stores shared data that the virtual machine uses in common; an update storage area for each virtual machine that stores data updated by the virtual machine; And a data management unit that writes the data received from the information processing apparatus to the update storage area of the virtual machine indicated by the virtual machine identifier based on the associated virtual identifier.
- An information processing program includes a virtual machine execution unit that executes a computer in parallel with one or more virtual machines, and update data that stores data used by the virtual machines in a storage area for each virtual machine Storage means, update data management means for updating data in the storage area for each virtual machine in accordance with the processing of the virtual machine, and data stored in the update data storage section, a unique virtual machine assigned to the virtual machine First communication means for transmitting information associated with an identifier to the storage apparatus, second communication means for receiving data associated with the virtual machine identifier from the information processing apparatus, and the virtual machine commonly used Common storage area for storing shared data And storage means for storing data updated by the virtual machine for each virtual machine, data received from the information processing device based on the virtual identifier associated with the data It is a program for functioning as data management means for writing to the update storage area of the virtual machine indicated by the virtual machine identifier.
- the processing load of the management unit that manages each virtual machine can be distributed.
- FIG. 1 It is a figure which shows the structural example of the information processing system as embodiment of this invention. It is a figure which shows the hardware structural example of the computer in embodiment of this invention. It is a figure which shows typically the logical structure of the virtual machine and storage in each computer in the information processing system of embodiment of this invention. It is a figure which shows the example of a process sequence for the data access which the virtual machine in embodiment of this invention performs. It is a figure which shows the example of a process sequence which responded to the access from a virtual machine which the storage in embodiment of this invention performs. It is a figure which shows typically the data sweep-out process of the update volume in embodiment of this invention. It is a figure which shows the data sweep-out process of a virtual machine, and the process sequence example of the storage according to this. It is a figure which shows the process at the time of shutdown of a computer, and the process sequence example of the storage according to this.
- FIG. 1 shows a configuration example of an information processing system as an embodiment (embodiment) for carrying out the present invention.
- the information processing system shown in this figure includes a plurality of computers 100, one storage (storage device) 200, and one switch 300.
- the plurality of computers 100 include, for example, a first computer (information processing apparatus) 100-1 and a second computer 100-2.
- the first computer (information processing apparatus) 100-1, the second computer 100-2, and the storage 200 are communicably connected by a switch 300.
- the switch 300 connects the first computer (information processing apparatus) 100-1, the second computer 100-2, and the storage (storage apparatus) 200 via a network.
- the plurality of computers 100 includes two computers 100, a first computer 100-1 and a second computer 100-2. Is not limited to this, and may include three or more computers. That is, the information processing system according to the present embodiment employs a configuration in which a plurality of computers 100 are communicably connected to one storage 200.
- the computer 100 functions as a server or a host computer for the storage 200.
- the first computer 100-1 is configured to be capable of executing a plurality of virtual machines (VM (Virtual Machine): virtual machine).
- VM Virtual Machine
- a virtual machine refers to a computer environment emulated by software in a computer.
- a server function corresponding to each different user account can be assumed.
- the first computer 100-1 includes a virtual machine execution unit 110, an update data management unit 120, an update data storage unit 130, and a communication unit 140 as functional units corresponding to virtual machine settings.
- the virtual machine execution unit 110 causes the first computer 100-1 to execute one or more virtual machines.
- the update data storage unit 130 is an area in which data of an update volume formed corresponding to each of a plurality of virtual machines set in the first computer 100-1 is stored.
- the update volume is data used by the corresponding virtual machine, and is differential data for the snapshot of the master volume.
- the update data management unit 120 manages the update volume in the update data storage unit 130.
- the communication unit 140 is a part for communicating with the storage 200 via the switch 300.
- the second computer 100-2 also has the same configuration as the first computer 100-1, so that one or more virtual machines can be executed.
- the storage 200 is a storage device that collects and manages data used by the plurality of computers 100, and includes a storage data management unit 210, a storage unit 220, and a communication unit 250 as illustrated.
- the stored data management unit 210 manages data stored in the storage unit 220.
- the storage data management unit 210 reads and writes data to and from the storage unit 220 in response to access from the computer 100 via the communication unit 250.
- the storage unit 220 stores data used by the computer 100 in units of volumes.
- the storage unit 220 includes, for example, a plurality of (N) physical storage media 230-1 to 230-N.
- the storage data management unit 210 manages the storage area as one storage area.
- FIG. 2 shows an example of the hardware configuration of the computer 100, which is configured by connecting the CPU 101, the RAM 102, the storage unit 103, the input interface 104, the output interface, and the communication unit 140 via the bus 106.
- a CPU (Central Processing Unit) 101 implements various functions by executing a program stored in the storage unit 103.
- the storage unit 103 functions as an auxiliary storage device, and stores data such as programs executed by the CPU 101 and various files.
- the virtual machine program is stored in the storage unit 103.
- the CPU 101 executes the virtual machine program
- a plurality of virtual machines can be set in the computer 100 and can be executed. That is, the virtual machine execution unit 110 and the update data management unit 120 in the computer 100 in FIG. 1 are functional units realized by the CPU 101 executing the virtual machine program.
- the storage unit 103 for example, a hard disk or a semiconductor storage device such as a flash memory can be employed.
- a RAM (Random Access Memory) 102 functions as a main storage device, and a program to be executed by the CPU 101 is read from the storage unit 103 and expanded.
- the RAM 102 is used as a work area when the CPU 101 executes arithmetic processing. That is, the update data area 130 of the computer 100 shown in FIG. 1 is an area included in the RAM 102.
- the RAM 102 includes a virtual master volume 121 described with reference to FIG.
- the communication unit 140 is a part that performs communication with the computer 100 via the switch 300 under the control of the CPU 101.
- the input interface 104 collectively indicates input devices to the computer 100 including operation devices such as a keyboard and a mouse.
- the output interface 105 collectively indicates output devices such as a display device and a speaker.
- the illustration of the hardware configuration of the storage 200 is omitted, a configuration according to FIG.
- the storage unit 220 of the storage 200 needs to store data of a plurality of computers 100, it is preferable to secure a large capacity according to this.
- parts corresponding to the input interface 104 and the output interface 105 may be omitted.
- FIG. 3 schematically shows a logical system configuration example of the plurality of virtual machines and the storage 200 set in the first computer 100-1 and the second computer 100-2, respectively.
- a plurality of virtual machines 111 are executed.
- FIG. 1 This figure shows the case where two virtual machines 111-1 and 111-2 are set in the first computer 100-1. These virtual machines 111-1 and 111-2 are set by the virtual machine execution unit 110 (FIG. 1) of the first computer 100-1, and a machine ID (virtual machine identifier) is assigned for the setting. It is done.
- the machine ID is an identifier that uniquely identifies the virtual machine 111 set between the plurality of computers 100.
- the virtual machine execution unit 110 sets the virtual master volume 121-1 according to the setting of the virtual machine.
- the virtual master volume 121-1 is a virtual volume corresponding to the master volume 241 of the storage 200.
- the master volume 241 of the storage 200 is data commonly used by the virtual machine 111 such as an OS (Operating System) or an application. Therefore, the virtual master volume 121-1 corresponding to this master volume 241 is also set in common for the two virtual machines 111-1 and 111-2 set in the first computer 100-1.
- the virtual master volume 121-1 does not have a data entity like the master volume 241, for example, and has a structure storing information (address) indicating the access area of the master volume 241 of the storage 200.
- the virtual master volume 121-1 for example, information that associates data managed in the master volume 241 of the storage 200 with an address for storing the data is stored.
- a unique identifier assigned to the master volume 241 is associated with information indicating data stored in the master volume 241.
- update volumes 131-1 and 131-2 are set in correspondence with the virtual machines 111-1 and 111-2, respectively.
- the master volume has data contents shared by the virtual machines 111-1 and 111-2, and the virtual machines 111-1 and 111-2 each receive data having different contents depending on its operation. Need to handle.
- the update volumes 131-1 and 131-2 correspond to the above-mentioned “data with different contents” and correspond to the virtual machines 111-1 and 111-2 as difference data for the master volume, respectively.
- These update volumes 131-1 and 131-2 are stored in the update data storage unit 130 of FIG. 1, and the substance of the data is stored in the RAM 102 (FIG. 2), for example.
- different machine IDs are assigned to all virtual machines 111 set in the plurality of computers 100.
- the virtual machine 111 is uniquely specified among the plurality of computers 100.
- the following may be performed. That is, a value generated by combining a MAC address uniquely assigned to each computer 100 and an identifier set for each virtual machine in the computer 100 is used as a machine ID.
- a value generated by combining a MAC address uniquely assigned to each computer 100 and an identifier set for each virtual machine in the computer 100 is used as a machine ID.
- such setting of the machine ID may be executed by the virtual machine execution unit 110 (FIG. 1).
- the machine ID can be set without duplication between the computers 100 without performing arbitration between the computers 100.
- the virtual machine execution unit 110 newly sets the virtual machine 111, it is possible to notify the storage 200 so that the storage 200 generates and allocates a machine ID.
- update volumes 131-3 and 131-4 are set corresponding to the virtual machines 111-3 and 111-4, respectively.
- the virtual machine 111 and the update volume 131 are uniquely identified and specified among the plurality of computers 100 by the machine ID.
- a virtual master volume 121-2 used in common by the virtual machines 111-3 and 113-4 is set.
- This virtual master volume 121-2 is also a virtual volume corresponding to the master volume 241 of the storage 200, and therefore has the same contents as the virtual master volume 121-1 in the first computer 100-1.
- the storage 200 sets the volume set 240 in accordance with the setting of the virtual machines 111-1 to 111-4 in the first computer 100-1 and the second computer 100-2 as described above.
- the volume set 240 is stored in the storage unit 220 in correspondence with FIG.
- one volume set 240 includes a master volume 241 and update volumes 242-1 to 242-4.
- the master volume (shared data) 241 is a volume composed of data used in common by the virtual machines 111-1 to 111-4, and its entity is stored in the storage unit 220 (FIG. 1).
- the update volumes 242-1 to 242-4 correspond to the virtual machines 111-1 to 111-4, respectively, and have contents as difference data with respect to the master volume 241.
- These update volumes 242-1 to 242-4 are updated based on the contents of the update volumes 131-1 to 131-4 when the computer 100 executes a sweeping process as will be described later.
- the volume set 240 may store a plurality of master volumes 241 having different contents.
- FIG. 3 shows an example in which two volume sets 240A and 240B are set and stored.
- the storage 200 sets the update volume 242-3 corresponding to the virtual machine 111-3 and stores it in the storage unit 220.
- the flowchart in FIG. 4 shows an example of a processing procedure when access is generated by one virtual machine 111 in the computer 100.
- the processing shown in this figure can be considered to be executed appropriately by, for example, any of the virtual machine execution unit 110, the update data management unit 120, and the communication unit 140 shown in FIG.
- the update volume 131 of the computer 100 is described as “first update volume (first update data) 131”
- the update volume 242 of the storage 200 is described as “second update volume (second update volume). Data) 242 ”to distinguish.
- the virtual machine execution unit 110 waits for an access to be generated by the virtual machine 111 (step S101—NO).
- step S101—YES the virtual machine execution unit 110 determines whether the access is a read or a write (step S102). If it is determined that the access is a read (step S102—read), the update data management unit 120 searches the update data storage unit 130 for data to be read (step S103).
- step S ⁇ b> 103 first, the update data management unit 120 identifies the update volume 131 associated with the machine ID of the access source virtual machine 111 among the update volumes 131 stored in the update data storage unit 130. .
- the update data management unit 120 manages, for example, data in units of files as differential data in association with a data ID (for example, a combination of a file name and an extension) for the first update volume 131.
- the update data management unit 120 searches the specified first update volume 131 for data of a file that matches the data ID of the read target data, for example.
- the update data management unit 120 determines whether or not the read target data has been stored in the first update volume 131 as a result of the search in step S103 (step S104).
- the master volume virtual master volume 121
- the update data management unit 120 controls the communication unit 140 to perform read access to the storage 200 (step S104).
- the virtual master volume 121 is assumed to correspond to the master volume 241 in any one of the volume sets 240 in the storage 200.
- a master volume ID is assigned to the master volume 241 so that each volume set 240 can be uniquely identified.
- the virtual master volume 121 is assigned the same master volume ID as the corresponding master volume 241 and stores this value. Therefore, in step S106, the update data management unit 120 first acquires the master volume ID stored in the virtual master volume 121. Then, the master volume ID, the machine ID of the access source virtual machine 111, and the data ID of the read target data are specified, and a read access request is transmitted to the storage 200.
- step S104 it is determined in step S104 that the read target data exists (step S104—YES).
- step S104 the update data management unit 120 transfers the data retrieved from the corresponding first update volume 131 according to the current step S103 to the virtual machine execution unit 110 (step S105). Return to step S101.
- step S102 write
- the virtual machine execution unit 110 searches the update data storage unit 130 for data to be written (step S107). Then, as the search result, it is determined whether or not the write target data has been stored in the first update volume 131 corresponding to the access source virtual machine 111 (step S108).
- step S108 If it is determined that the write target data has already been stored (step S108—YES), the update data management unit 120 uses the searched write target data for the current write access in the corresponding first update volume 131. Is overwritten with the data (step S109).
- the update data management unit 120 responds to the current write access data in the corresponding first update volume 131. An area is set and data is stored in this area. That is, new writing is performed (step S110).
- the update data management unit 120 returns a write access response to the virtual machine execution unit 110 in response to the end of the processing in step S109 or step S110.
- the update data management unit 120 manages the data (file) stored in the update data management unit 120 in association with the update date and time. For this purpose, the update data management unit 120 updates the update date and time of the data in response to executing the data overwrite in step S109.
- the first update volume 131 is set corresponding to each virtual machine 111 in the computer 100, so that read target data or write target data exists in the first update volume 131. If the first update volume 131 is accessed, an access request from the virtual machine execution unit 110 can be responded. That is, it is not necessary to communicate with the storage 200 every time the virtual machine 111 is accessed. Thereby, for example, communication traffic between the storage 200 and the computer 100 can be reduced. Further, since the data update processing corresponding to the write access is not concentrated on the storage 200 but distributed to the computer 100, the processing load on the storage 200 is also reduced.
- FIG. 5 shows a processing procedure example of the storage 200 in response to the read access from the computer 100 in step S106 of FIG.
- the processing shown in this figure can be considered as being appropriately executed by, for example, the storage data management unit 210 and the communication unit 250 shown in FIG.
- the stored data management unit 210 waits for reception of a read access request from the computer 100 (step S201—NO). If it is determined that a read access request has been received (step S201—YES), the storage data management unit 210 first stores a volume set that stores the master volume 241 associated with the master volume ID specified by the read access request. 240 is specified. Then, the second update volume 242 associated with the machine ID designated by the read access request is accessed from the identified volume set 241 and the read target data is searched by the designated data ID (step S202).
- the storage data management unit 210 determines whether or not the read target data has been stored in the corresponding second update volume 242 based on the search result in step S202 (step S203). For example, immediately after the virtual machine 111 as the access source is set and valid data is not stored in the corresponding first update volume 131, it is also valid for the corresponding second update volume 242. No data is stored.
- the storage data management unit 210 determines that the read target data has not been stored (step S203—NO). In this case, the read target data is stored in the master volume 241. Therefore, the storage data management unit 210 accesses the master volume 241 and reads the read target data associated with the designated data ID (step S205).
- the read target data is stored in the second update volume 242 corresponding to the access source virtual machine 111. It is in the stored state.
- the storage data management unit 210 determines that the read target data has been stored (step S203—YES), and executes reading of the data retrieved in the previous step S202 (step S204).
- the stored data management unit 210 causes the communication unit 250 to transmit the data read in step S204 or S205, specifying the access source virtual machine 111 as the transmission destination (step S206), and returns to step S201.
- the destination virtual machine 111 can be specified by adding the received machine ID at the time of read access.
- the information processing system includes a storage 200 that is common to a plurality of computers 100 that can execute the virtual machine 111.
- a common master volume 241 is set in the storage 200 for the virtual machine 111 executed on each computer 100 side.
- the second update volume 242 that is differential data with respect to the master volume 241 is set and managed corresponding to each virtual machine 111. Thereby, duplication of data among the virtual machines 111 executed by the plurality of computers 100 is avoided.
- the update volume as differential data for the master volume is set and managed only on the storage 200 side, the access to the storage 200 occurs every time the virtual machine 111 accesses. become. As a result, access from the plurality of virtual machines 111 to the storage 200 is concentrated, resulting in a decrease in access speed due to an increase in traffic and an increase in processing load on the storage 200.
- the first update volume 131 corresponding to the virtual machine 111 being executed is set and held in the computer 100 as well. If the read access target data is stored in the first update volume 131, the read is executed on the data. Only when the data to be accessed is not stored in the first update volume 131, read access is made to the master volume 241 of the storage. As for the write, the first update volume 131 is accessed by overwriting or newly writing data. As a result, in the present embodiment, it is possible to reduce the frequency of access from the computer 100 to the storage 200 according to the access of the virtual machine 111, and the problem of increase in traffic and processing load described above can be solved.
- the first update volume 131 becomes larger as the number of write accesses increases. It will be. Since the entity of the update data storage unit 130 in which the first update volume 131 is stored is the RAM 102, the enlargement of the first update volume 131 as described above leads to pressure on the capacity of the finite RAM 102, which is not preferable.
- data stored in the first update volume 131 is swept out as follows.
- the state shown in FIG. 6A is assumed as the data mapping of the area of the update volume 131-1 in the first computer 100-1.
- the first update volume 131-1 it is assumed that high-frequency data with a high access frequency and low-frequency data with a low access frequency are mixed.
- data whose access frequency during a certain period is not more than a predetermined value is treated as low-frequency data, and other data is treated as high-frequency data.
- FIG. 6B only the high frequency data is stored in the first update volume 131-1.
- a sufficient free space is secured, which can cope with an increase in new write data.
- the capacity set in the first update volume 131 is not compressed due to the accumulation of the low frequency data.
- the above-described data sweeping is not performed every time low-frequency data is generated, for example, but at a timing at which a certain amount of low-frequency data can be accumulated. . Specifically, it is performed every certain period corresponding to the possibility of accumulation of low frequency data above a certain level.
- the virtual machine execution unit 110 may monitor the accumulation amount of low-frequency data, and may be performed at a timing when the accumulation amount becomes a certain level or more. By setting the timing as described above, the access to the storage 200 for data sweeping does not frequently occur. Therefore, the processing load on the storage 200 is reduced and the traffic is also reduced.
- step S301 the update data management unit 120 waits for at least one first update volume 131 to be subjected to the sweep-out process (NO in step S301). Then, for example, when it is determined that a certain period of time has passed or the accumulation amount of low-frequency data has reached a certain level or more, and the execution timing of the sweep process has come (step S301—YES), the update data management unit 120 The storage 200 is requested to execute the sweep-out response process (step S302). In response to this request, the update data management unit 120 adds the data ID and update date / time information of each piece of data determined as low-frequency data and transmits the data. Further, the machine ID associated with the first update volume 131 to be swept out this time and the master volume ID stored in the virtual master volume 121 are transmitted.
- the update data management unit 120 waits for reception of the completion notification of the sweep-out response process from the storage 200 as a response to the request (step S303—NO).
- the update data management unit 120 releases the free space formed in the first update volume 131 by the current sweep-out process (step S304). .
- data can be newly recorded in the open area thereafter.
- the stored data management unit 210 waits for the communication unit 250 to receive the sweep-out response processing request transmitted in the previous step S302 (NO in step S401). Then, the stored data management unit 210 identifies the second update volume 242 that is the target of the sweep-out correspondence process in response to the receipt of the sweep-out correspondence processing request (step S402). At this time, the storage data management unit 210 identifies the volume set 240 of the master volume 241 associated with the master volume ID transmitted together with the sweep-out response processing request. Next, the second update volume 242 associated with the machine ID transmitted together with the sweep-out response processing request is identified from the identified volume set 241. The second update volume 242 specified in this way becomes a sweep-out handling target.
- the storage data management unit 210 determines whether or not the write target data of a predetermined unit (for example, file) in the received low frequency data has been stored in the second update volume 242 identified in step S402. Determination is made (step S403). Note that the storage data management unit 210 manages the data (file) stored in the second update volume 242 in association with the data ID and the update date as in the first update volume 131. Here, when it is determined that the data associated with the data ID of the write target data is not stored in the identified second update volume 242 (step S403—NO), the stored data management unit 210 is identified. The write target data is newly written and stored in the free area in the second update volume 242 (step S405).
- a predetermined unit for example, file
- step S404 the stored data management unit 210 overwrites the write target data stored in the specified second update volume 242 (step S404). ).
- step S404 the storage data management unit 210 updates the update date / time of the overwritten write target data to be the same as the update date / time of the write target data transmitted from the computer 100. Further, for example, the write target data transmitted from the computer 100 by comparing the write target data transmitted from the computer 100 and the update date and time of the write target data stored in the specified second update volume 242. Suppose that no updates have been made. In this case, the overwriting process in step S404 may be omitted.
- step S406 determines whether or not the process has been executed for all received low frequency data.
- step S406—NO the storage data management unit 210 returns to step S403, and the second update in which the next write target data is specified. It is determined whether or not the data has been stored in the volume 242.
- step S406 if it is determined that the processing of all the low-frequency data has been completed (step S406—YES), the storage data management unit 210 notifies the completion of the sweep-out response processing to the requesting computer 100 (virtual machine execution unit 110). (Step S407).
- the second update volume 242 is updated only at the sweep-out timing, so that the latest contents are not always reflected. For this reason, for example, when the computer 100 is terminated or the computer 100 itself is shut down, the second update volume 242 corresponding to the virtual machine 111 to be stopped needs to be updated to the latest state. is there.
- the virtual machine execution unit 110 waits for a shutdown instruction from, for example, the OS (step S501-NO).
- the update data management unit 120 controls the communication unit 140 to transmit a request for shutdown handling processing to the storage 200 (step S502).
- the update data management unit 120 transmits data of the first update volume 131 corresponding to all the virtual machines 111 currently being executed.
- a machine ID corresponding to each of the first update volumes 131 transmitted in this way is added.
- the virtual machine execution unit 110 waits for the communication unit 140 to receive a shutdown completion processing completion notification transmitted from the storage 200 in response to the shutdown response processing request (step S503-NO). ).
- the virtual machine execution unit 110 executes a process for terminating all the virtual machines 111 that have been executed so far (step S504).
- the virtual machine 111 is terminated, for example, the data of the virtual master volume 121 and the update volume 131 corresponding to each virtual machine 111 stored in the RAM 102 are deleted.
- the stored data management unit 210 is waiting for the communication processing unit 250 to receive a shutdown response processing request from the computer 100 (step S601-NO). Then, in response to the reception of the shutdown handling process request (step S601—YES), the storage data management unit 210 1 of the second update volume 242 associated with the machine ID received together with the shutdown handling process request. Are identified as processing targets (step S602).
- step S603 the storage data management unit 210 executes a process for writing data to the second update volume 242 specified as the process target (step S603).
- the data writing process as step S603 is executed according to steps S403 to S406 in FIG. That is, in step S403, the storage data management unit 210 selects the first copy source associated with the same machine ID as the second update volume 242 to be processed among the first update volumes 131 received together with the shutdown process request. It is determined whether or not the data of the update volume 131 has already been stored in the second update volume 242 to be processed. Then, the write target data that has been stored is overwritten on the second update volume 242 to be processed in step S404, and the data that has not been stored in the second update volume 242 to be processed in step S405. Is newly written. This is performed for each write target data stored in the copy source first update volume 131 corresponding to step S406.
- the storage data management unit 210 When the storage data management unit 210 completes the data writing process to the second update volume 242 in step S603, the storage data management unit 210 performs the following determination process. That is, it is determined whether or not the data writing process for all the second update volumes associated with the machine ID transmitted together with the shutdown handling process request has been completed (step S604). Here, when it is determined that the data writing process for all the second update volumes 242 has not been completed (NO in step S604), the stored data management unit 210 returns to step S602, and thereby the next processing target object is processed. The second update volume 242 is specified, and the data writing process in step S603 is executed.
- step S604 When it is determined that the data writing process for all the second update volumes 242 has been completed (step S604—YES), the stored data management unit 210 notifies the request source of the completion of the shutdown process by the communication unit 250. Transmission is performed to the computer 100 (step S605). Note that the following processing may be considered when the shutdown response processing request is transmitted in step S502. That is, the storage data management unit 210 manages the transfer date and time last transferred to the storage 200 for each data (file) in the update volume 131. Then, the transfer date / time and the update date / time are compared, and data that has not been updated after the last transfer is not transmitted.
- the second update volume 242 having the contents matched to the latest state is stored in the storage unit 220.
- the virtual machine execution unit 110 designates the machine ID of the virtual machine 111 to be activated, and the master volume 241 of the storage 200.
- the second update volume 242 is accessed.
- the accessed second update volume 242 is read and stored in the update data storage unit 130 (RAM 102) as the first update volume 131 corresponding to the virtual machine 111 to be activated.
- the virtual master volume 121 can be set based on the accessed master volume 241 and stored in the RAM 102.
- the following advantages can be obtained by associating the virtual machine 111 and the second update volume 242 with the machine ID. That is, for example, even if the IP address or the port number is changed due to a hardware change or the like, one virtual machine 111 can always access the same volume. Such an advantage is very useful in an information processing system in which, for example, hardware configuration changes are performed relatively frequently.
- the second update volume 242 can be updated by the process according to FIG. 8 even when the running virtual machine 111 is simply terminated instead of shutting down the computer 100. That is, in step S502, the computer 100 transmits the first update volume 131 and the machine ID corresponding to the virtual machine 111 to be terminated, and requests a process for dealing with the termination of the virtual machine. In response to this, the storage 200 updates the second update volume 242 corresponding to the virtual machine 111 to be terminated, and transmits a process completion notification. In response to this notification, the computer 100 terminates the virtual machine 111 to be terminated.
- Patent Document 2 a configuration in which a real block identifier is associated with a set of a virtual machine identifier and a virtual block identifier is described. However, this data management is performed completely within one computer. However, unlike the present embodiment, the virtual machine 111 on the computer 100 side and the update volume 242 on the storage 200 side are not associated with each other.
- the computer 100 and the storage 200 of the present embodiment have a computer system inside.
- the process of operation is stored in a computer-readable recording medium in the form of a program, and the above-described processing is performed by the computer system reading and executing this program.
- the “computer system” herein includes a CPU, various memories, an OS, and hardware such as peripheral devices. Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used.
- a program for realizing each step is recorded on a computer-readable recording medium
- a program for realizing this function is recorded on a computer-readable recording medium and recorded on the recording medium.
- the computer program may be read by the computer system and executed to calculate the estimated value of the shape information of the detection target.
- the “computer-readable recording medium” means a flexible disk, a magneto-optical disk, a ROM, a writable nonvolatile memory such as a flash memory, a portable medium such as a CD-ROM, a hard disk built in a computer system, etc. This is a storage device.
- the “computer-readable recording medium” refers to a volatile memory (for example, DRAM (Dynamic) in a computer system serving as a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. Random Access Memory)), etc. that hold a program for a certain period of time.
- the program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium.
- the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
- the program may be for realizing a part of the functions described above. Furthermore, what can implement
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ストレージ装置は、バーチャルマシン識別子が対応付けられたデータを情報処理装置から受信する通信部と、バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、バーチャルマシンによって更新されたデータを記憶するバーチャルマシンごとの更新記憶領域とを含む記憶部と、情報処理装置から受信したデータを、対応付けられているバーチャル識別子に基づき、バーチャルマシン識別子が示すバーチャルマシンの更新記憶領域に書き込むデータ管理部とを備える。
Description
本発明は、情報処理システム、情報処理装置、ストレージ装置、およびプログラムに関する。
例えば、1つのコンピュータのリソースを複数の仮想マシン(バーチャルマシン)に分割することも行われている。このように仮想マシンを実行させるにあたり、OSやアプリケーションなどのスナップショットを仮想マシン間で共有することとしたうえで、仮想マシンごとに発生する更新は、各仮想マシンが差分データとして管理するようにした技術が知られている(例えば、特許文献1参照)。
また、複数の仮想マシン間で格納するデータの類似部分を削除して記憶容量の節約を図ろうとする技術として次のようなものも知られている。例えば、類似する内容のデータ(ブロック)が複数の仮想マシンに分散して存在する場合において、これらの類似するブロックの組の片側を置換対象として、他方を比較対象として選択し、類似判定基準に基づいて両者の差分を算出して比較結果とする。そして、置換対象のデータを削除し、復元用情報(比較対象の識別子、上記比較結果、比較結果を算出したブロックデータ比較部の種類)と置換対象の識別子とを関連付けるというものである(例えば、特許文献2参照)。
しかしながら、複数のバーチャルマシンで用いるデータを管理部で一元的に集約して管理した場合、バーチャルマシンからのアクセスが集中してしまい、管理部の処理負荷が増し、バーチャルマシンごとの処理速度が低下する問題があった。
そこで、本発明は、各バーチャルマシンを管理する管理部の処理負荷を分散することができる情報処理システム、情報処理装置、ストレージ装置、およびプログラムを提供することを目的とする。
この発明は上述した課題を解決するためになされたもので、本発明の一態様による情報処理システムは、ストレージ装置と複数の情報処理装置とを通信接続する情報処理システムであって、前記情報処理装置が、1以上のバーチャルマシンを並行して実行するバーチャルマシン実行部と、前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶部と、前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理部と、前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられた固有のバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する第1通信部とを備え、前記ストレージ装置が、前記バーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する第2通信部と、前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶部と、前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理部とを備える。
また、上述の情報処理システムにおいて、前記情報処理装置の前記バーチャルマシン実行部は、前記バーチャルマシンが利用するデータが前記更新データ記憶部に記憶されているか否かを判定し、前記更新データ記憶部に記憶されている場合は、前記更新データ記憶部に記憶されているデータを利用してもよい。
また、上述の情報処理システムにおいて、前記情報処理装置の前記更新データ管理部は、前記予め決められた掃き出し期間が経過したか否かを判定し、前記掃き出し期間が経過したと判定した場合、あるいは、前記更新データ記憶部の記憶容量の不足分が予め決められた不足容量を超えたか否かを判定し、前記更新データ記憶部の記憶容量の不足分が前記不足容量を超えたと判定した場合、前記バーチャルマシンごとの記憶領域に記憶されているデータに当該バーチャルマシンのバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信してもよい。
また、上述の情報処理システムにおいて、前記情報処理装置の前記更新データ管理部は、前記バーチャルマシンの停止あるいは前記情報処理装置の停止が指示された場合、前記更新データ記憶部に記憶されている全てのデータに当該バーチャルマシンのバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信してもよい。
本発明の一態様による情報処理装置は、1以上のバーチャルマシンを並行して実行するバーチャルマシン実行部と、前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶部と、前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理部と、前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられたバーチャルマシン識別子を対応付けた情報を送信する通信部とを備える。
本発明の一態様によるストレージ装置は、複数の情報処理装置と通信接続され、当該複数の情報処理装置において実行される複数のバーチャルマシンに割り当てられた固有のバーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する通信部と、前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶部と、前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理部とを備える。
本発明の一態様による情報処理プログラムは、コンピュータを、1以上のバーチャルマシンを並行して実行するバーチャルマシン実行手段、前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶手段、前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理手段、前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられた固有のバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する第1通信手段、前記バーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する第2通信手段、前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶手段、前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理手段として機能させるためのプログラムである。
本発明によれば、各バーチャルマシンを管理する管理部の処理負荷を分散することができる。
図1は、本発明を実施するための形態(実施の形態)としての情報処理システムの構成例を示している。この図に示す情報処理システムは、複数のコンピュータ100と、1つのストレージ(ストレージ装置)200と、1つのスイッチ300とを備える。複数のコンピュータ100は、例えば、第1コンピュータ(情報処理装置)100-1と、第2コンピュータ100-2とを含む。これら第1コンピュータ(情報処理装置)100-1と、第2コンピュータ100-2と、ストレージ200とは、スイッチ300により通信可能に接続される。なお、スイッチ300は、ネットワークを介して、これら第1コンピュータ(情報処理装置)100-1と、第2コンピュータ100-2と、ストレージ(ストレージ装置)200とを接続する。なお、ここでは、図示および説明を簡単なものとするために、複数のコンピュータ100は、第1コンピュータ100-1および第2コンピュータ100-2の2つのコンピュータ100を備えるものとしているが、本発明はこれに限定されるものではなく、3以上のコンピュータを備えるものであってもよい。つまり、本実施の形態の情報処理システムは、1つのストレージ200に対して任意の複数のコンピュータ100が通信可能に接続された構成を採る。コンピュータ100は、ストレージ200に対するサーバまたはホストコンピュータなどとして機能する。
第1コンピュータ100-1は、複数のバーチャルマシン(VM(Virtual Machine):仮想マシン)を実行可能に構成される。バーチャルマシンは、コンピュータにおいて、ソフトウェアによってエミュレートされるコンピュータ環境をいう。本実施の形態におけるバーチャルマシンとしては、例えば、異なるユーザアカウントごとに対応するサーバ機能などを想定することができる。第1コンピュータ100-1は、バーチャルマシンの設定に対応する機能部として、バーチャルマシン実行部110、更新データ管理部120、更新データ記憶部130、通信部140を備える。
バーチャルマシン実行部110は、第1コンピュータ100-1において、1以上のバーチャルマシンを実行させる。更新データ記憶部130は、第1コンピュータ100-1において設定される複数のバーチャルマシンごとに対応して形成される更新ボリュームのデータが記憶される領域である。更新ボリュームは、対応のバーチャルマシンが利用するデータであり、マスタボリュームのスナップショットに対する差分データである。更新データ管理部120は、上記更新データ記憶部130における更新ボリュームを管理する。通信部140は、スイッチ300経由でストレージ200と通信するための部位である。
なお、第2コンピュータ100-2も、上記第1コンピュータ100-1と同じ構成を有し、これにより、1以上のバーチャルマシンを実行可能とされている。
ストレージ200は、複数のコンピュータ100が利用するデータを集約して記憶管理する記憶装置であり、図示するように、記憶データ管理部210、記憶部220および通信部250を備える。
記憶データ管理部210は、記憶部220に記憶されるデータを管理する。例えば、記憶データ管理部210は、通信部250経由によるコンピュータ100からのアクセスに応じて記憶部220に対するデータの読み出し、書き込みを実行する。記憶部220は、コンピュータ100が利用するデータをボリューム単位で記憶する。この記憶部220は、例えば物理的な複数(N個)の記憶媒体230-1~230-Nを備える。そのうえで、論理的には、RAID(Redundant Arrays of Inexpensive Disks)などの技術を採用することで、記憶データ管理部210によって1つの記憶領域として管理されるようになっている。
図2は、コンピュータ100のハードウェア構成の一例を示すもので、CPU101、RAM102、記憶部103、入力インターフェース104、出力インターフェース、通信部140をバス106により接続して構成される。
CPU(Central Processing Unit)101は、記憶部103に記憶されるプログラムを実行することにより各種の機能を実現する。記憶部103は、補助記憶装置として機能するもので、CPU101により実行されるプログラムや各種ファイルなどのデータを格納する。
本実施の形態との対応では、記憶部103においてバーチャルマシンプログラムが記憶される。バーチャルマシンプログラムをCPU101が実行することにより、コンピュータ100において複数のバーチャルマシンを設定し、これらを実行させることが可能となる。つまり、図1のコンピュータ100におけるバーチャルマシン実行部110、および更新データ管理部120は、CPU101がバーチャルマシンプログラムを実行することにより実現される機能部である。なお、この記憶部103には、例えばハードディスク、また、フラッシュメモリなどの半導体記憶装置を採用することができる。
RAM(Random Access Memory)102は、主記憶装置として機能するもので、CPU101が実行すべきプログラムが記憶部103から読み出されて展開される。また、RAM102は、CPU101が演算処理を実行する際の作業領域として使用される。つまり、図1に示すコンピュータ100の更新データ領域130は、RAM102に含まれる領域である。なお、このRAM102には、図3において説明する仮想マスタボリューム121が含まれる。
通信部140は、CPU101の制御に応じて、スイッチ300経由でコンピュータ100と通信を実行する部位である。入力インターフェース104は、例えばキーボードやマウスなどの操作デバイスをはじめとするコンピュータ100への入力デバイスを一括して示したものである。また、出力インターフェース105は、例えばディスプレイデバイスやスピーカなどの出力デバイスを一括して示したものである。
なお、ストレージ200のハードウェア構成についての図示は省略するが、例えば図2に準じた構成とすることができる。ただし、ストレージ200の記憶部220については、複数のコンピュータ100のデータを記憶する必要があるため、これに応じた大容量を確保することが好ましい。また、ストレージ200については、入力インターフェース104および出力インターフェース105に相当する部位は省略されてよい。
図3は、第1コンピュータ100-1および第2コンピュータ100-2においてそれぞれ設定される複数のバーチャルマシンとストレージ200における論理的なシステム構成例を模式的に示している。この第1コンピュータ100-1および第2コンピュータ100-2においては、複数のバーチャルマシン111が実行されている。
同図においては、第1コンピュータ100-1において2つのバーチャルマシン111-1および111-2を設定した場合を示している。これらのバーチャルマシン111-1および111-2は、第1コンピュータ100-1のバーチャルマシン実行部110(図1)によって設定されるもので、その設定に際しては、マシンID(バーチャルマシン識別子)が割り当てられる。マシンIDは、複数のコンピュータ100間で設定されるバーチャルマシン111を一意に識別する識別子である。ここでは、バーチャルマシン111-1にマシンID=「1」を割り当て、バーチャルマシン111-2にマシンID=「2」を割り当てている。
また、バーチャルマシン実行部110はバーチャルマシンの設定に応じて仮想マスタボリューム121-1を設定する。仮想マスタボリューム121-1は、ストレージ200のマスタボリューム241に対応する仮想的なボリュームである。後述のようにストレージ200のマスタボリューム241は、例えばOS(Operating System)やアプリケーションなどのようにバーチャルマシン111が共通に利用するデータである。したがって、このマスタボリューム241に対応する仮想マスタボリューム121-1も、第1コンピュータ100-1において設定される2つのバーチャルマシン111-1および111-2に対して共通に設定されるものとなる。なお、仮想マスタボリューム121-1は、例えばマスタボリューム241のようにデータとしての実体を有するものでなく、ストレージ200のマスタボリューム241のアクセス領域を示す情報(アドレス)を格納した構造とされたうえで、例えばRAM102(図2)にて記憶される。この仮想マスタボリューム121-1には、例えば、ストレージ200のマスタボリューム241において管理されているデータと、当該データを格納するアドレスとを対応付ける情報が記憶されている。なお、ストレージ200のマスタボリューム241が複数設定されている場合、マスタボリューム241に割り当てられた固有の識別子とマスタボリューム241に格納されているデータを示す情報とが対応付けられている。
また、コンピュータ100-1においては、バーチャルマシン111-1および111-2に対応して、それぞれ、更新ボリューム131-1および131-2が設定される。上記のようにマスタボリュームはバーチャルマシン111-1および111-2が共有するデータ内容を有するが、そのうえでバーチャルマシン111-1および111-2は、それぞれ、その動作などに応じて異なる内容のデータを扱う必要がある。更新ボリューム131-1および131-2は、上記した「異なる内容のデータ」に相当するもので、それぞれ、マスタボリュームに対する差分データとして、バーチャルマシン111-1および111-2に対応したものとなる。これら更新ボリューム131-1および131-2は、図1の更新データ記憶部130に格納されるものであり、そのデータの実体は、例えばRAM102(図2)に記憶される。また、これらの更新ボリューム131-1および131-2は、それぞれ、バーチャルマシン111-1および111-2に対応するものとして、マシンID=「1」、マシンID=「2」が対応付けられる。
ここでは、第2コンピュータ100-2においても、2つのバーチャルマシン111-3および111-4を設定することとしている。そのうえで、バーチャルマシン111-3および111-4には、それぞれ、例えばマシンID=「3」、マシンID=「4」が割り当てられる。このように、本実施の形態においては、複数のコンピュータ100において設定されるすべてのバーチャルマシン111に対して、それぞれ異なるマシンIDが割り当てられるようになっている。これにより、バーチャルマシン111は、複数のコンピュータ100の間で一意に特定されることになる。
なお、このように複数のコンピュータ100のバーチャルマシン111間で重複しないようにマシンIDを設定するには、次のようにすればよい。つまり、コンピュータ100ごとに固有に割り当てられたMACアドレスと、コンピュータ100内でバーチャルマシンごとに設定した識別子とを組み合わせて生成した値をマシンIDとするものである。本実施の形態との対応では、このようなマシンIDの設定は、バーチャルマシン実行部110(図1)が実行すればよい。このような設定方法であれば、コンピュータ100間で調停を行わなくとも、コンピュータ100間で重複することなくマシンIDを設定できる。また、例えばバーチャルマシン実行部110がバーチャルマシン111を新規に設定するに際してストレージ200に通知を行い、ストレージ200がマシンIDを生成して割り振るようにすることも考えられる。
また、第2コンピュータ100-2においては、バーチャルマシン111-3および111-4のそれぞれに対応して更新ボリューム131-3および131-4が設定される。更新ボリューム131-3および131-4は、それぞれ、バーチャルマシン111-3のマシンID=「3」とバーチャルマシン111-4のマシンID=「4」が割り当てられる。このように複数のコンピュータ100間において、マシンIDにより、バーチャルマシン111と更新ボリューム131とが一意に対応付けられて特定されることになる。
また、第2コンピュータ100-2においては、バーチャルマシン111-3および113-4が共通に使用する仮想マスタボリューム121-2が設定される。この仮想マスタボリューム121-2も、ストレージ200のマスタボリューム241に対応する仮想のボリュームであり、したがって第1コンピュータ100-1における仮想マスタボリューム121-1と同様の内容を有する。
次に、ストレージ200は、上記のように第1コンピュータ100-1と第2コンピュータ100-2においてバーチャルマシン111-1~111-4が設定されるのに応じて、ボリュームセット240を設定して記憶する。このボリュームセット240は、図1との対応では記憶部220に記憶されるものとなる。
1つのボリュームセット240は、図示するように、マスタボリューム241と、更新ボリューム242-1~242-4を備える。マスタボリューム(共有データ)241は、バーチャルマシン111-1~111-4が共通に使用するデータから成るボリュームであり、その実体は記憶部220(図1)に記憶される。また、更新ボリューム242-1~242-4は、それぞれ、バーチャルマシン111-1~111-4に対応し、マスタボリューム241に対する差分データとしての内容を有する。そして、更新ボリューム242-1~242-4に対しては、それぞれ、マシンID=「1」、マシンID=「2」、マシンID=「3」、マシンID=「4」が対応付けられる。これらの更新ボリューム242-1~242-4は、後述するようにコンピュータ100が掃き出し処理を実行することにより、更新ボリューム131-1~131-4の内容に基づいて更新が行われる。なお、このボリュームセット240は、それぞれが異なる内容のマスタボリューム241を有する複数を記憶してよい。図3においては、2つのボリュームセット240Aおよび240Bを設定して記憶している例を示している。
例えば、コンピュータ100のいずれにおいてもバーチャルマシン111が設定されていない場合、ストレージ200においてマスタボリューム241および更新ボリューム242は設定されていない状態にある。この状態から、例えばバーチャルマシン111-1~111-4のうち、バーチャルマシン111-1が最初に設定されたものとする。この際、第1コンピュータ100-1のバーチャルマシン実行部110は、ストレージ200に対して、バーチャルマシン111-1のマシンID=「1」を送信してバーチャルマシン111-1を設定したことの通知を行う。これに応じて、ストレージ200は、マスタボリューム241と更新ボリューム242-1を設定して記憶部220に記憶させる。この後、例えばバーチャルマシン111-3が設定されたとすると、第2コンピュータ100-1のバーチャルマシン実行部110は、ストレージ200に対して、マシンID=「3」を送信してバーチャルマシン111-3が設定されたことの通知を行う。このとき、マスタボリューム241は既に設定されているので、ストレージ200は、バーチャルマシン111-3に対応する更新ボリューム242-3を設定して記憶部220に記憶させる。
図4のフローチャートは、コンピュータ100における1つのバーチャルマシン111によりアクセスが発生した場合の処理手順例を示している。この図に示す処理は、例えば図1に示したバーチャルマシン実行部110、更新データ管理部120および通信部140のいずれかが適宜実行するものとしてみることができる。また、以降の説明にあたり、コンピュータ100の更新ボリューム131については「第1更新ボリューム(第1更新データ)131」と記載し、ストレージ200の更新ボリューム242については、「第2更新ボリューム(第2更新データ)242」と記載して区別する。
まず、バーチャルマシン実行部110は、バーチャルマシン111によりアクセスが発生するのを待機している(ステップS101-NO)。そして、アクセスが発生すると(ステップS101-YES)、バーチャルマシン実行部110は、そのアクセスがリードとライトのいずれであるのかを判定する(ステップS102)。ここで、アクセスがリードであると判定した場合(ステップS102-リード)、更新データ管理部120は、更新データ記憶部130からリード対象のデータを検索する(ステップS103)。なお、ここでのリード対象のデータの一例としてはファイル単位によるものを想定することができる。上記ステップS103において、まず、更新データ管理部120は、更新データ記憶部130に記憶される更新ボリューム131のうちで、アクセス元のバーチャルマシン111のマシンIDに対応付けられた更新ボリューム131を特定する。更新データ管理部120は、第1更新ボリューム131について、例えば差分データとしてのファイル単位によるデータをデータID(例えば、ファイル名と拡張子の組み合わせ)に対応付けて管理しているものとする。更新データ管理部120は、この特定した第1更新ボリューム131から、例えばリード対象データのデータIDに一致するファイルのデータを検索する。
次に更新データ管理部120は、上記ステップS103による検索の結果、リード対象データが第1更新ボリューム131に格納済みか否かについて判定する(ステップS104)。ここで、例えばアクセス元のバーチャルマシン111が設定された直後などの状況ではマスタボリューム(仮想マスタボリューム121)に対する差分データは存在せず、したがって、対応の第1更新ボリューム131にも有効なデータは格納されていない。この場合、リード対象データは存在しないことになる。
上記のような理由で、リード対象データは存在しないと判定した場合(ステップS104-NO)、更新データ管理部120は、通信部140を制御して、ストレージ200に対してリードアクセスを行う(ステップS106)。仮想マスタボリューム121は、ストレージ200内のボリュームセット240のうちのいずれか1つにおけるマスタボリューム241に対応しているものとする。そのうえで、マスタボリューム241にはマスタボリュームIDが割り当てられており、ボリュームセット240ごとに対応して一意に識別できるようになっている。仮想マスタボリューム121は、対応のマスタボリューム241と同じマスタボリュームIDが割り当てられており、この値を格納している。そこで、ステップS106において、更新データ管理部120は、まず、仮想マスタボリューム121が格納するマスタボリュームIDを取得する。そして、このマスタボリュームIDと、アクセス元のバーチャルマシン111のマシンIDと、リード対象データのデータIDを指定して、ストレージ200に対してリードアクセス要求を送信する。
これに対して、或る程度のデータの更新が行われた状態とされたうえで、リード対象データと同じデータがアクセス元のバーチャルマシン111に対応の第1更新ボリューム131に既に格納されていたとする。この場合には、ステップS104においてリード対象データが存在していると判定されることになる(ステップS104-YES)。この場合の更新データ管理部120は、リードアクセスへの応答として、今回のステップS103に応じて対応の第1更新ボリューム131から検索されたデータをバーチャルマシン実行部110に転送し(ステップS105)、ステップS101に戻る。
また、今回のアクセスがライトであると判定した場合(ステップS102-ライト)、バーチャルマシン実行部110は、更新データ記憶部130からライト対象のデータを検索する(ステップS107)。そして、この検索結果として、ライト対象のデータが、アクセス元のバーチャルマシン111に対応する第1更新ボリューム131に格納済みか否かについて判定する(ステップS108)。
ここで、ライト対象のデータが格納済みであると判定した場合(ステップS108-YES)、更新データ管理部120は、対応の第1更新ボリューム131において、検索されたライト対象データを今回のライトアクセスのデータにより上書きする(ステップS109)。
これに対して、ライト対象のデータが格納済みではないと判定した場合(ステップS108-NO)、更新データ管理部120は、対応の第1更新ボリューム131において、今回のライトアクセスのデータに応じた領域を設定し、この領域にデータを格納する。つまり、新規書き込みを行う(ステップS110)。なお、更新データ管理部120は、上記ステップS109またはステップS110の処理の終了に応じてバーチャルマシン実行部110にライトアクセス応答を返す。また、更新データ管理部120は、更新データ管理部120に格納されるデータ(ファイル)に更新日時を対応付けて管理することとしている。このために、更新データ管理部120は、ステップS109によりデータの上書きを実行するのに応じて、そのデータの更新日時を更新する。
このように、本実施の形態においてはコンピュータ100においてバーチャルマシン111ごとに対応して第1更新ボリューム131を設定していることで、第1更新ボリューム131にリード対象データまたはライト対象データが存在している場合には、この第1更新ボリューム131に対するアクセスによって、バーチャルマシン実行部110からのアクセス要求に応答することができる。つまり、バーチャルマシン111のアクセスが発生するたびにストレージ200と通信を行う必要がない。これにより、例えばストレージ200とコンピュータ100との間での通信のトラフィックを軽減することができる。また、ライトアクセスに応じたデータの更新処理がストレージ200に集中せずにコンピュータ100にも分散されるためにストレージ200の処理負荷も軽減される。
図5は、上記図4のステップS106によるコンピュータ100からのリードアクセスに応答したストレージ200の処理手順例を示している。この図に示す処理は、例えば図1に示した記憶データ管理部210と通信部250が適宜実行するものとしてみることができる。
記憶データ管理部210は、コンピュータ100からのリードアクセス要求の受信を待機している(ステップS201-NO)。そして、リードアクセス要求が受信されたと判定すると(ステップS201-YES)、記憶データ管理部210は、まず、リードアクセス要求により指定されたマスタボリュームIDに対応付けられたマスタボリューム241を格納するボリュームセット240を特定する。そして、この特定したボリュームセット241から、リードアクセス要求により指定されたマシンIDに対応付けられた第2更新ボリューム242にアクセスし、指定されたデータIDによりリード対象データを検索する(ステップS202)。
次に、記憶データ管理部210は、上記ステップS202の検索結果から、対応の第2更新ボリューム242においてリード対象データが格納済みか否かについて判定する(ステップS203)。例えば、アクセス元のバーチャルマシン111が設定された直後であって、対応の第1更新ボリューム131に有効なデータが格納されていない場合には、これに対応する第2更新ボリューム242にも有効なデータは格納されていない。
上記の場合、記憶データ管理部210は、リード対象データは格納済みではないと判定することになる(ステップS203-NO)。この場合、リード対象データはマスタボリューム241に格納されていることになる。そこで、記憶データ管理部210は、マスタボリューム241にアクセスし、指定されたデータIDに対応付けられたリード対象データの読み出しを行う(ステップS205)。
一方、後述するように、一旦、第1更新ボリューム131から掃き出したデータにリードアクセスが行われたような場合には、アクセス元のバーチャルマシン111に対応する第2更新ボリューム242にリード対象データが格納された状態にある。この場合、記憶データ管理部210は、リード対象データが格納済みであると判定し(ステップS203-YES)、先のステップS202により検索されたデータの読み出しを実行する(ステップS204)。
そして、記憶データ管理部210は、通信部250により、ステップS204またはS205において読み出したデータを、アクセス元のバーチャルマシン111を送信先として指定して送信させ(ステップS206)、ステップS201に戻る。なお、送信先のバーチャルマシン111は、リードアクセスに際し受信したマシンIDを付加することで指定できる。
これまでの説明から理解されるように、本実施の形態の情報処理システムにおいては、バーチャルマシン111を実行可能な複数のコンピュータ100に対して共通となるストレージ200を備える。そして、この構成のもとで、ストレージ200において、各コンピュータ100側で実行されるバーチャルマシン111に共通のマスタボリューム241を設定する。そのうえで、マスタボリューム241に対する差分データである第2更新ボリューム242をバーチャルマシン111ごとに対応して設定して管理する。これにより、複数のコンピュータ100で実行されるバーチャルマシン111の間でのデータの重複が回避される。
ただし、仮に、マスタボリュームに対する差分データとしての更新ボリュームを、ストレージ200側のみに設定して管理することとした場合、バーチャルマシン111によるアクセスが発生するたびに、ストレージ200へのアクセスが発生することになる。これより、複数のバーチャルマシン111からストレージ200へのアクセスが集中することとなり、トラフィックの増加によるアクセス速度の低下やストレージ200の処理負荷の増加を招く。
そこで、本実施の形態では、コンピュータ100においても、実行中のバーチャルマシン111に対応する第1更新ボリューム131を設定して保持させることとしている。そして、リードアクセス対象のデータが第1更新ボリューム131に格納されている場合には、そのデータを対象にリードを実行する。そして、アクセス対象のデータが第1更新ボリューム131に格納されていない場合のみ、ストレージのマスタボリューム241に対してリードアクセスを行うこととしている。また、ライトに関しては、第1更新ボリューム131に対するデータの上書きまたは新規書き込みによりアクセスを行うようにしている。これにより、本実施の形態では、バーチャルマシン111のアクセスに応じたコンピュータ100からストレージ200へのアクセスの頻度を低くすることが可能となり、上記したトラフィックや処理負荷の増加の問題が解消される。
ただし、上記のようにコンピュータ100内で第1更新ボリューム131に対するアクセスのみを行っていくこととした場合、ライトアクセスの回数が増加していくのに応じて第1更新ボリューム131が肥大化していくことになる。第1更新ボリューム131が記憶される更新データ記憶部130の実体はRAM102であるため、上記のような第1更新ボリューム131の肥大化は有限のRAM102の容量を圧迫することに繋がり、好ましくない。
そこで、本実施の形態においては、以下のように第1更新ボリューム131に格納されるデータの掃き出しを行う。一例として、第1コンピュータ100-1における更新ボリューム131-1の領域のデータマッピングとして、図6(a)に示す状態を想定する。つまり、第1更新ボリューム131-1において、アクセス頻度が高いとされる高頻度データと、アクセス頻度が低いとされる低頻度データとが混在しているものとする。なお、ここでは、一定期間におけるアクセス頻度が所定以下のデータを低頻度データとして扱い、これ以外のデータを高頻度データとして扱っている。
本実施の形態では、図6(c)に示すように、所定のタイミングで、上記低頻度データをまとめて、ストレージ200において同じマシンID=「1」に対応付けられた第2更新ボリューム242-1に移動させるように転送する。この結果、図6(b)に示すように第1更新ボリューム131-1において高頻度データのみが記憶される。これにより、アクセスされる機会の少ないデータが検索対象から除外されるために、第1更新ボリューム131-1に対するアクセスを高速にすることが可能になる。また、空き容量も十分に確保されることとなって、新規書き込みデータの増加に対応することができる。また、低頻度データの蓄積により第1更新ボリューム131に設定された容量が圧迫されることもなくなる。
また、本実施の形態において、上記のデータの掃き出しは、例えば、低頻度データが発生する都度行うのではなく、或る程度の量の低頻度データの蓄積が見込めるようなタイミングで行うこととする。具体的には、一定以上の低頻度データの蓄積の見込みに対応した一定期間ごとに行うようにする。または、例えばバーチャルマシン実行部110により低頻度データの蓄積量を監視することとしたうえで、蓄積量が一定以上になったタイミングで行うようにすることが考えられる。このようなタイミングとすることで、データ掃き出しのためのストレージ200へのアクセスが頻繁に発生することが無くなるために、ストレージ200の処理負荷が軽減され、また、トラフィックの軽減も図られる。
図7のフローチャートは、上記した第1更新ボリューム131からのデータ掃き出しのための処理手順例を示している。まず、コンピュータ100において、更新データ管理部120は、少なくとも1つの第1更新ボリューム131について、掃き出し処理を実行すべきタイミングとなるのを待機している(ステップS301-NO)。そして、例えば一定期間が経過した、または、低頻度データの蓄積量が一定以上になるなどして掃き出し処理の実行タイミングとなったことを判定すると(ステップS301-YES)、更新データ管理部120は、ストレージ200に対して掃き出し対応処理の実行を要求する(ステップS302)。更新データ管理部120は、この要求に際して、低頻度データとして判定された各データに、これらデータのデータIDと更新日時の情報を付加して送信する。また、今回の掃き出し対象の第1更新ボリューム131に対応付けられたマシンIDと、仮想マスタボリューム121が格納するマスタボリュームIDとを送信する。
次に更新データ管理部120は、上記要求に対する応答として、ストレージ200から掃き出し対応処理の完了通知が受信されるのを待機する(ステップS303-NO)。そして、掃き出し対応処理の完了通知が受信されると(ステップS303-YES)、更新データ管理部120は、今回の掃き出し処理によって第1更新ボリューム131に形成された空き容量を開放する(ステップS304)。これにより、以降において、開放領域に対するデータの新規記録が可能になる。
次に、ストレージ200において記憶データ管理部210は、先のステップS302により送信された掃き出し対応処理要求が通信部250により受信されるのを待機している(ステップS401-NO)。そして、記憶データ管理部210は、掃き出し対応処理要求が受信されるのに応じて、掃き出し対応処理の対象となる第2更新ボリューム242を特定する(ステップS402)。この際、記憶データ管理部210は、掃き出し対応処理要求とともに送信されたマスタボリュームIDに対応付けられたマスタボリューム241のボリュームセット240を特定する。次に、この特定したボリュームセット241から、掃き出し対応処理要求とともに送信されたマシンIDに対応付けられた第2更新ボリューム242を特定する。このように特定された第2更新ボリューム242が掃き出し対応処理対象となる。
そして、記憶データ管理部210は、上記ステップS402において特定された第2更新ボリューム242において、受信した低頻度データにおける所定単位(例えば、ファイル)の書込対象データが格納済みであるか否かについて判定する(ステップS403)。なお、記憶データ管理部210は、第2更新ボリューム242に格納されるデータ(ファイル)について、第1更新ボリューム131と同様に、データIDと更新日時を対応付けて管理することとしている。ここで、特定された第2更新ボリューム242において、書き込み対象データのデータIDに対応付けられたデータが格納されていないと判定した場合(ステップS403-NO)、記憶データ管理部210は、特定された第2更新ボリューム242における空き領域に対して書込対象データを新規に書き込んで格納する(ステップS405)。これに対して格納済みであると判定した場合(ステップS403-YES)、記憶データ管理部210は、特定された第2更新ボリューム242に格納されている書込対象データの上書きを行う(ステップS404)。なお、このステップS404において、記憶データ管理部210は、上書きした書込対象データの更新日時を、コンピュータ100から送信された当該書込対象データの更新日時と同じとなるように更新する。また、例えば、コンピュータ100から送信された書込対象データと、特定された第2更新ボリューム242に格納されている書込対象データの更新日時の比較により、コンピュータ100から送信された書込対象データの更新が行われていないとする。この場合、ステップS404における上書き処理は省略してよい。
上記ステップS404またはS405の処理を実行した後、記憶データ管理部210は、受信したすべての低頻度データについての処理を実行したか否かについて判定する(ステップS406)。ここで、未だ処理すべき低頻度データが残っていると判定した場合(ステップS406-NO)、記憶データ管理部210は、ステップS403に戻って、次の書き込み対象データが特定された第2更新ボリューム242に格納済みか否かについて判定する。
一方、すべての低頻度データの処理が完了したことを判定すると(ステップS406-YES)、記憶データ管理部210は、掃き出し対応処理の完了通知を、要求元のコンピュータ100(バーチャルマシン実行部110)に対して送信する(ステップS407)。
上記図7の処理から理解されるように、第2更新ボリューム242は、掃き出しタイミングにおいてのみ更新されるため、常に最新の内容が反映されているものではない。このため、例えばコンピュータ100においてバーチャルマシン111を終了させたり、コンピュータ100自体をシャットダウンする際には、停止となるバーチャルマシン111に対応する第2更新ボリューム242を最新の状態に更新しておく必要がある。
そこで、図8のフローチャートを参照して、コンピュータ100がシャットダウンされる際における第2更新ボリューム242の更新処理の手順例について説明する。まず、コンピュータ100において、バーチャルマシン実行部110は、例えばOSなどからシャットダウンが指示されるのを待機している(ステップS501-NO)。そして、シャットダウンの指示を受けると(ステップS501-YES)、更新データ管理部120は、通信部140を制御して、ストレージ200に対してシャットダウン対応処理の要求を送信する(ステップS502)。このシャットダウン対応処理要求の送信に際して、更新データ管理部120は、現在実行中にあるすべてのバーチャルマシン111に対応する第1更新ボリューム131のデータを送信する。また、このように送信する第1更新ボリューム131には、それぞれが対応するマシンIDを付加する。
次に、バーチャルマシン実行部110は、上記シャットダウン対応処理要求に応答してストレージ200から送信されるシャットダウン対応処理の完了通知が通信部140により受信されるのを待機している(ステップS503-NO)。そして、上記完了通知が受信されたことを判定すると(ステップS503-YES)、バーチャルマシン実行部110は、これまで実行させていたバーチャルマシン111のすべてを終了させるための処理を実行する(ステップS504)。なお、バーチャルマシン111の終了に応じて、例えばRAM102に記憶されていた仮想マスタボリューム121と各バーチャルマシン111に対応する更新ボリューム131のデータは消去される。
また、ストレージ200において、記憶データ管理部210は、コンピュータ100からのシャットダウン対応処理要求が通信部250により受信されるのを待機している(ステップS601-NO)。そして、シャットダウン対応処理要求が受信されるのに応じて(ステップS601-YES)、記憶データ管理部210は、シャットダウン対応処理要求とともに受信したマシンIDに対応付けられている第2更新ボリューム242の1つを処理対象として特定する(ステップS602)。
次に、記憶データ管理部210は、処理対象として特定された第2更新ボリューム242に対してデータを書き込むための処理を実行する(ステップS603)。このステップS603としてのデータ書込処理は、図7のステップS403~S406に準じて実行される。つまり、記憶データ管理部210は、ステップS403として、シャットダウン対応処理要求とともに受信した第1更新ボリューム131のうち、処理対象の第2更新ボリューム242と同じマシンIDに対応付けられたコピー元の第1更新ボリューム131のデータについて、上記処理対象の第2更新ボリューム242に格納済みであるか否かについて判定する。そして、格納済みである書込対象データについてはステップS404により処理対象の第2更新ボリューム242上で上書きを実行し、格納済みでないデータについてはステップS405により処理対象の第2更新ボリューム242の空き領域に対して新規に書き込みを行う。これを、ステップS406に対応して、コピー元の第1更新ボリューム131に格納される書込対象データごとに行う。
記憶データ管理部210は、上記ステップS603による第2更新ボリューム242へのデータ書込処理を完了すると、以下の判定処理を行う。つまり、シャットダウン対応処理要求とともに送信されたマシンIDに対応付けられたすべての第2更新ボリュームに対するデータ書込処理が完了したか否かについて判定する(ステップS604)。ここで、すべての第2更新ボリューム242に対するデータ書込処理が完了していないと判定した場合(ステップS604-NO)、記憶データ管理部210は、ステップS602に戻ることで、次の処理対象の第2更新ボリューム242を特定して、ステップS603によるデータ書込処理を実行する。
そして、すべての第2更新ボリューム242に対するデータ書込処理が完了したことを判定すると(ステップS604-YES)、記憶データ管理部210は、通信部250によりシャットダウン対応処理の完了通知を、要求元のコンピュータ100に対して送信させる(ステップS605)。なお、ステップS502によりシャットダウン対応処理要求を送信する際には以下のような処理とすることも考えられる。つまり、更新ボリューム131のデータ(ファイル)ごとに、ストレージ200に対して最後に転送した転送日時を記憶データ管理部210により管理する。そして、この転送日時と更新日時とを比較して、最後に転送した後において更新されていないデータについては送信しないようにする、というものである。
そして、上記のようにシャットダウン対応処理が完了した段階では、最新の状態に整合された内容を有する第2更新ボリューム242が記憶部220に記憶された状態で保存されることになる。そして、例えば、今回のシャットダウンに応じて終了されたバーチャルマシン111を後において再び起動させる際、バーチャルマシン実行部110は、起動させるバーチャルマシン111のマシンIDを指定してストレージ200のマスタボリューム241と第2更新ボリューム242にアクセスする。そして、このアクセスした第2更新ボリューム242を読み込んで、起動させるバーチャルマシン111に対応する第1更新ボリューム131として更新データ記憶部130(RAM102)に記憶させるようにする。また、アクセスしたマスタボリューム241に基づいて仮想マスタボリューム121を設定してRAM102に記憶させることができる。これにより、本実施の形態では、バーチャルマシン111を起動させるにあたり、前回の終了時に設定されていたのと同じ環境により再開させることが可能になる。
さらに、本実施の形態では、バーチャルマシン111と第2更新ボリューム242とがマシンIDによって対応付けられていることで次のような利点も得られる。つまり、例えばハードウェアの変更などによりIPアドレスやポート番号が変更したとしても、1つのバーチャルマシン111は、常に同じボリュームに対してアクセスすることが可能になる。このような利点は、例えばハードウェアの構成の変更が比較的高頻度で行われるような情報処理システムにおいて非常に有用である。
なお、コンピュータ100をシャットダウンさせるのではなく、単に実行中のバーチャルマシン111を終了させる場合にも、図8に準じた処理により、第2更新ボリューム242を更新させることができる。つまり、コンピュータ100は、ステップS502として、終了対象のバーチャルマシン111に対応する第1更新ボリューム131とマシンIDを送信してバーチャルマシン終了への対応処理を要求する。ストレージ200は、これに応答して、終了対象のバーチャルマシン111に対応する第2更新ボリューム242の更新を行い、処理の完了通知を送信する。コンピュータ100は、この通知に応じて終了対象のバーチャルマシン111を終了させる。
なお、特許文献2においては、仮想マシン識別子と仮想ブロック識別子の組に対して実ブロック識別子を対応付けた構成が記載されているが、このデータ管理は、あくまでも1つのコンピュータ内で完結して行われるものであり、本実施の形態のように、コンピュータ100側のバーチャルマシン111とストレージ200側の更新ボリューム242とを対応付けるような機能を有するものではない。
また、本実施の形態のコンピュータ100およびストレージ200は、内部にコンピュータシステムを有している。そして、動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、検出対象物の形状情報の推定値を算出する処理を行ってもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本願は、2011年6月13日に、日本に出願された特願2011-131016号に基づき優先権を主張し、その内容をここに援用する。
100 コンピュータ
110 バーチャルマシン実行部
111 バーチャルマシン
120 更新データ管理部
121 仮想マスタボリューム
130 更新データ記憶部
131 更新ボリューム
140 通信部
200 ストレージ
210 記憶データ管理部
220 記憶部
230 記憶媒体
240 ボリュームセット
241 マスタボリューム
242 更新ボリューム
250 通信部
300 スイッチ
110 バーチャルマシン実行部
111 バーチャルマシン
120 更新データ管理部
121 仮想マスタボリューム
130 更新データ記憶部
131 更新ボリューム
140 通信部
200 ストレージ
210 記憶データ管理部
220 記憶部
230 記憶媒体
240 ボリュームセット
241 マスタボリューム
242 更新ボリューム
250 通信部
300 スイッチ
Claims (7)
- ストレージ装置と複数の情報処理装置とを通信接続する情報処理システムであって、
前記情報処理装置は、
1以上のバーチャルマシンを並行して実行するバーチャルマシン実行部と、
前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶部と、
前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理部と、
前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられた固有のバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する第1通信部と
を備え、
前記ストレージ装置は、
前記バーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する第2通信部と、
前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶部と、
前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理部と
を備える情報処理システム。 - 前記情報処理装置の前記バーチャルマシン実行部は、前記バーチャルマシンが利用するデータが前記更新データ記憶部に記憶されているか否かを判定し、前記更新データ記憶部に記憶されている場合は、前記更新データ記憶部に記憶されているデータを利用する
請求項1に記載の情報処理システム。 - 前記情報処理装置の前記更新データ管理部は、前記予め決められた掃き出し期間が経過したか否かを判定し、前記掃き出し期間が経過したと判定した場合、あるいは、前記更新データ記憶部の記憶容量の不足分が予め決められた不足容量を超えたか否かを判定し、前記更新データ記憶部の記憶容量の不足分が前記不足容量を超えたと判定した場合、前記バーチャルマシンごとの記憶領域に記憶されているデータに当該バーチャルマシンのバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する
請求項1又は2に記載の情報処理システム。 - 前記情報処理装置の前記更新データ管理部は、前記バーチャルマシンの停止あるいは前記情報処理装置の停止が指示された場合、前記更新データ記憶部に記憶されている全てのデータに当該バーチャルマシンのバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する
請求項1から3のいずれか一項に記載の情報処理システム。 - 1以上のバーチャルマシンを並行して実行するバーチャルマシン実行部と、
前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶部と、
前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理部と、
前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられたバーチャルマシン識別子を対応付けた情報を送信する通信部と
を備える情報処理装置。 - 複数の情報処理装置と通信接続され、当該複数の情報処理装置において実行される複数のバーチャルマシンに割り当てられた固有のバーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する通信部と、
前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶部と、
前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理部と
を備えるストレージ装置。 - コンピュータを、
1以上のバーチャルマシンを並行して実行するバーチャルマシン実行手段、
前記バーチャルマシンが利用するデータを前記バーチャルマシンごとの記憶領域に記憶する更新データ記憶手段、
前記バーチャルマシンの処理に従って前記バーチャルマシンごとの記憶領域のデータを更新する更新データ管理手段、
前記更新データ記憶部に記憶されているデータに、当該バーチャルマシンに割り当てられた固有のバーチャルマシン識別子を対応付けた情報を前記ストレージ装置に送信する第1通信手段、
前記バーチャルマシン識別子が対応付けられたデータを前記情報処理装置から受信する第2通信手段、
前記バーチャルマシンが共通して利用する共有データを記憶する共通記憶領域と、前記バーチャルマシンによって更新されたデータを記憶する前記バーチャルマシンごとの更新記憶領域とを含む記憶手段、
前記情報処理装置から受信したデータを、対応付けられている前記バーチャル識別子に基づき、当該前記バーチャルマシン識別子が示すバーチャルマシンの前記更新記憶領域に書き込むデータ管理手段
として機能させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011131016 | 2011-06-13 | ||
JP2011-131016 | 2011-06-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012173137A1 true WO2012173137A1 (ja) | 2012-12-20 |
Family
ID=47357123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/065109 WO2012173137A1 (ja) | 2011-06-13 | 2012-06-13 | 情報処理システム、情報処理装置、ストレージ装置、およびプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012173137A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006023A1 (ja) * | 2014-07-07 | 2016-01-14 | 株式会社日立製作所 | ストレージ装置、計算機システム及び方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001184222A (ja) * | 1999-12-27 | 2001-07-06 | Nec Ic Microcomput Syst Ltd | 分散処理装置、分散処理方法および記録媒体 |
JP2006209487A (ja) * | 2005-01-28 | 2006-08-10 | Hitachi Ltd | 計算機システム、計算機、ストレージ装置及び管理端末 |
JP2009181249A (ja) * | 2008-01-30 | 2009-08-13 | Nec Corp | 仮想マシンサーバ装置、仮想マシンシステム及びそれらに用いる仮想マシン分散方法並びにそのプログラム |
JP2011100431A (ja) * | 2009-11-09 | 2011-05-19 | Inst For Information Industry | 仮想マシン制御装置及び仮想マシン制御方法 |
-
2012
- 2012-06-13 WO PCT/JP2012/065109 patent/WO2012173137A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001184222A (ja) * | 1999-12-27 | 2001-07-06 | Nec Ic Microcomput Syst Ltd | 分散処理装置、分散処理方法および記録媒体 |
JP2006209487A (ja) * | 2005-01-28 | 2006-08-10 | Hitachi Ltd | 計算機システム、計算機、ストレージ装置及び管理端末 |
JP2009181249A (ja) * | 2008-01-30 | 2009-08-13 | Nec Corp | 仮想マシンサーバ装置、仮想マシンシステム及びそれらに用いる仮想マシン分散方法並びにそのプログラム |
JP2011100431A (ja) * | 2009-11-09 | 2011-05-19 | Inst For Information Industry | 仮想マシン制御装置及び仮想マシン制御方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016006023A1 (ja) * | 2014-07-07 | 2016-01-14 | 株式会社日立製作所 | ストレージ装置、計算機システム及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042560B2 (en) | Method and storage array for processing a write data request | |
US9058123B2 (en) | Systems, methods, and interfaces for adaptive persistence | |
US8612488B1 (en) | Efficient method for relocating shared memory | |
US11392363B2 (en) | Implementing application entrypoints with containers of a bundled application | |
US10536522B2 (en) | Data storage system with LUN archiving to cloud using volume-to-object translation | |
JP6254293B2 (ja) | データ重複排除方法及びストレージアレイ | |
US10628235B2 (en) | Accessing log files of a distributed computing system using a simulated file system | |
US10642697B2 (en) | Implementing containers for a stateful application in a distributed computing system | |
JP2006195712A (ja) | ストレージ制御装置、論理ボリューム管理方法及びストレージ装置 | |
WO2019127021A1 (zh) | 存储***中存储设备的管理方法及装置 | |
US8769196B1 (en) | Configuring I/O cache | |
US11582168B2 (en) | Fenced clone applications | |
JP2006260240A (ja) | 計算機システム及び記憶装置とコンピュータ・ソフトウエア並びにデータ移行方法 | |
US11256434B2 (en) | Data de-duplication | |
JP6924671B2 (ja) | データ書込み要求処理方法及びストレージアレイ | |
WO2012173137A1 (ja) | 情報処理システム、情報処理装置、ストレージ装置、およびプログラム | |
US11947419B2 (en) | Storage device with data deduplication, operation method of storage device, and operation method of storage server | |
US20190212923A1 (en) | Implementing An Interface To A High-Availability Storage System In A Distributed Computing System | |
JP6552583B2 (ja) | データ重複排除方法及びストレージアレイ | |
EP4152163A1 (en) | Method for processing metadata in storage device and related device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12800010 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12800010 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |