WO2018029820A1 - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- WO2018029820A1 WO2018029820A1 PCT/JP2016/073600 JP2016073600W WO2018029820A1 WO 2018029820 A1 WO2018029820 A1 WO 2018029820A1 JP 2016073600 W JP2016073600 W JP 2016073600W WO 2018029820 A1 WO2018029820 A1 WO 2018029820A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computer
- data
- computer node
- node
- virtual machine
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/08—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
-
- 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
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
Definitions
- the present invention relates to a computer system.
- SoE System of Engagement
- a hyper-converged system can be started from a small-scale server configuration and can support a large-scale scale. For this reason, the market for hyper-converged systems is expanding as a product for private clouds.
- the hyperconverged system includes a plurality of server nodes each having a local storage. Each server node has a virtualization function and a storage function, and makes data redundant by performing communication via a network.
- the hyperconverged system is disclosed in, for example, US Pat. No. 8,601,473.
- US Pat. No. 8,601,473 discloses the following matters. “An improved approach for implementing management of I / O and storage devices in a virtualized environment is disclosed.
- service VMs are directly attached storage in addition to network and cloud storage. Used to control and manage any type of storage device, including: Service VM implements user space storage controller logic and migrates from one node to another as needed IP-based requests are used to send I / O requests to the service VM, which does not require direct add-on products, and storage and I / O in the direct data access path. (Summary).
- Flash drives have a lifetime that depends on the number of writes. Due to the need for large capacity and low price, flash drives are becoming more and more multi-cell, and the number of possible writes is decreasing.
- the life of the storage drive of a specific computer node can be expedited by write load bias among computer nodes and writing redundant data by an application program or storage controller program operating on the computer system.
- An example of the present invention is a computer system including a plurality of computer nodes communicating via a network, each of the plurality of computer nodes including a local storage and one or more virtual machines, and each of the plurality of computer nodes includes The write data for the local storage is transferred to one or more other computer nodes for redundancy, and the computer included in the computer system acquires information indicating the write load amount by the first virtual machine, and Obtain the remaining writeable amount of the local storage of the placement destination candidate in a plurality of computer nodes, and based on the write load amount of the first virtual machine and the remaining writeable amount of the placement destination candidate computer node , It is determined whether to place the first virtual machine on the placement destination candidate computer node.
- the life of the storage drive of the computer node can be effectively extended.
- the flowchart of the VM allocation program which concerns on this embodiment is shown.
- positioning change program which concerns on this embodiment is shown.
- the flowchart of the VM migration program which concerns on this embodiment is shown.
- 3 shows a flowchart of network I / O (transmission) according to the present embodiment.
- 3 shows a flowchart of network I / O (reception) according to the present embodiment.
- Each computer node 101 executes a hypervisor 204 that operates a virtual machine (VM) 201.
- the computer node 101 further includes a network I / O program that handles communication between the VMs 201, and storage that uses local storage as scale-out storage.
- a control program (for example, a storage I / O program described later) is executed.
- the VM 201 is a virtual computer configured by the hypervisor 204.
- the VM 201 executes an OS (guest OS) 203 and an application program 202 on the hypervisor 204.
- the VM 201 writes these programs to the local drive 113 is a service that operates on the computer node 101.
- another virtualization technology for example, container technology
- Container technology constitutes a container instead of a VM.
- Each computer node 101 includes one or a plurality of storage drives 113.
- the storage drive 113 has a life corresponding to the write amount.
- the processor receives information on the remaining writable amount from the storage drive 113.
- the remaining writable amount is a remaining writable amount with respect to external light.
- the remaining writable amount is represented by, for example, the data amount per unit time (write throughput) or the number of writes per unit time (write IOPS).
- the writeable amount is determined using existing technology.
- the writable amount is defined in advance in the storage drive 113.
- the writable amount is a value obtained by dividing the specified total writable amount by the specified product life time.
- the total writable amount is represented by, for example, the data amount or the number of IOs.
- the total writable amount is determined in consideration of writing to the medium by internal processing including wear leveling.
- the storage drive 113 calculates the difference between the writable amount and the current write amount from the outside as the remaining writable amount.
- the current write amount includes a light 210 from the local VM 201 and a light 211 from another computer node 101.
- the storage drive 113 may correct the current write amount (external write amount) with the write amount by actual internal processing including wear leveling. For example, the current light amount is corrected based on a comparison result between a ratio between the current external light amount and the current internal light amount and a preset value.
- the remaining write capacity is a negative value, it is necessary to reduce the current write load in order to achieve the specified product life. If the remaining write capacity is a positive value, the product life can be achieved even if the write load is increased accordingly.
- the processor may calculate the remaining writable amount from the information regarding the lifetime received from the storage drive 113.
- the processor obtains the operating time and the consumption life rate of the storage drive 113.
- the consumed life rate indicates a consumed life rate at a life rate of 100%, and is determined by, for example, the number of times the medium can be rewritten and the actual number of times of rewriting.
- the processor determines the relationship between the write amount (for example, IOPS and throughput) and the change rate of the consumption life rate from the operation time, the consumption life rate, and the total write amount (for example, the number of IOs and the data amount) within the operation time.
- the processor calculates the change rate of the service life rate that satisfies the specified product life from the operating time and the service life rate, and calculates the writable amount from the relationship between the change rate and the service life rate change rate. decide.
- the processor holds and manages the remaining writable amount of each storage drive 113 in the memory or storage drive 113.
- Each computer node 101 also manages the remaining capacity of each storage drive 113.
- the processor detects that the remaining writable amount of one storage drive 113 is negative, the processor refers to the write amount of the VM 201 that is operating in the computer node 101 and accesses the storage drive 113, and the other computer The VM to be migrated to the node 101 is determined.
- the processor In determining the migration destination, the processor considers the write amount 211 for redundancy by the storage control program (and the application program 202) in addition to the write amount 210 of the VM to be migrated.
- the storage control program transmits write data for the local drive to one or a plurality of other computer nodes 101.
- the computer node 101 that stores the redundant data of the VM 201 changes.
- transferring data for redundancy is called mirroring, and transferred data is sometimes called mirror data.
- the processor sets the migration destination computer node 101 so that the remaining writable amount of the computer node 101 that stores redundant data for the migration destination computer node 101 remains positive. select.
- the migration of the VM 201 is carried out by performing a data migration process on the storage side simultaneously with the live migration, and storing the data in the migration destination local storage.
- the computer node 101 has, for example, a general server computer configuration.
- the hardware configuration of the computer node is not particularly limited.
- the computer node 101 is connected to another computer node via the network 103 through the port 106.
- the network 103 is configured by, for example, Infini Band or Ethernet.
- the internal configuration of the computer node connects a port 106, a processor package 111, and a storage drive (hereinafter also referred to as a drive) 113 via an internal network 112.
- the processor package 111 includes a memory 118 and a processor 119.
- the memory 118 stores information necessary for control when the processor 119 processes a read or write command and executes a storage function, and also stores storage cache data. Furthermore, the memory 118 stores a program executed by the processor 119, for example.
- the memory 118 may be a volatile DRAM or a non-volatile SCM (Storage Class Memory).
- the storage drive 113 is, for example, an HDD (Hard Disk Drive) or SSD (Sdive structure) such as an FC (Fibre Channel), SAS (Serial Attached SCSI), or SATA (Serial Advanced Technology Attachment) or SSD (Sdive configuration) or SSD.
- HDD Hard Disk Drive
- SSD SSD
- FC Fibre Channel
- SAS Serial Attached SCSI
- SATA Serial Advanced Technology Attachment
- SSD Serial configuration
- the storage drive 113 is managed by the processor package 111 and is accessed from the processor package 111 without going through another computer node.
- the storage drive 113 is connected to the processor package 111 via a so-called DAS (Direct Access Storage) or back-end switch.
- the storage drive 113 constitutes a local storage of the computer node 101.
- the storage drive 113 has a lifetime based on the amount of light from the outside.
- the storage drive 113 is a flash drive having a flash memory as a medium.
- the computer system may further include a management computer.
- FIG. 3 shows a software configuration example of the computer node 101 according to the present embodiment.
- the hypervisor and the VM are omitted.
- the computer node 101 executes a storage I / O program 410, a VM arrangement change program 411, a VM allocation program 412, a VM migration program 413, and a network I / O program 414.
- the processor 119 implements a specific function by operating according to a program.
- the memory 118 stores management information. Specifically, the memory 118 stores a stripe mapping table 301, a VM information table 302, a storage drive lifetime information table 303, a capacity management table 304, and a page mapping table 305. In addition, the memory includes a buffer 306. Details of each program and table will be described later.
- FIG. 4A shows a configuration example of the stripe mapping table 301.
- the stripe mapping table 301 is referred to by the storage I / O program 410 and indicates a computer node to which the write data is transferred in order to make the write data from the VM 201 redundant between nodes.
- the stripe mapping table 301 has a stripe type number column 311 and corresponding node columns 312 to 315.
- the write data from the VM 201 is transferred to other computer nodes indicated by the corresponding node columns 312 to 315 for redundancy. Data is transferred in block units of a prescribed size.
- the value in the stripe type number column 311 is determined from the access destination address of the write data.
- the access destination address is a logical address of a volume that stores write data. For example, the remainder with respect to the prescribed value of the access destination address of the write data is the stripe type number of the write data (access destination address).
- the storage I / O program 410 stores the write data in the local storage, calculates a remainder with respect to the specified value of the access destination address, and determines the stripe type number of the write data.
- the storage I / O program 410 refers to the stripe mapping table 301 and identifies the computer node 101 corresponding to the determined stripe type number.
- the storage I / O program 410 transfers the write data to the identified computer node 101.
- FIG. 4B shows a configuration example of the VM information table 302.
- the VM information table 302 manages information on the VM 201 operating on the computer node 101.
- the VM information table 302 includes a VM number column 321, a write load amount column 322, a virtual volume capacity column 323, a used capacity column 324, and a template information column 325.
- the VM number column 321 indicates an identifier of a VM operating on the computer node 101 that holds the VM information table 302.
- the write load amount column 322 indicates the write load amount generated by the VM 201.
- the write load amount is a write amount per unit time, for example, the number of writes per unit time or the amount of write data.
- the unit of the write load amount is the same unit as the remaining writable amount.
- the virtual volume capacity column 323 indicates the definition capacity (virtual capacity) of the virtual volume used by the VM 201.
- the used capacity column 324 indicates the capacity used by the VM 201 in the virtual volume.
- the virtual volume used by the VM 201 stores the image data of the VM 201.
- the image data of the VM 201 contains programs and data that are executed / used by the VM 201.
- the template information column 325 includes the specification of the VM 201.
- the template information column 325 indicates information on the OS and application program operating on the VM 201 and the write amount assumed in accordance with the execution program.
- the template information column 325 is set by the administrator.
- FIG. 4C shows a configuration example of the storage drive life information table 303.
- the storage drive life information table 303 manages information about the life of the storage drive 113.
- the storage drive life information table 303 includes a drive number column 331, a remaining writable amount column 332, an operation time column 333, a consumption life rate column 334, and a WA (Write Amplification) model column 335.
- the drive number column 331 indicates the identifier of the local drive 113 of the computer node 101 that holds the storage drive life information table 303.
- the remaining writable amount column 332 indicates the remaining writable amount of each storage drive 113. The remaining writable amount can be calculated as described above.
- the operation time column 333 indicates the operation time of each storage drive 113.
- the consumed life rate column 334 indicates the consumed life rate of each storage drive 113.
- the consumption life rate represents the degree of wear due to the light of the storage drive 113.
- the WA model column 335 stores information on the WA model representing the write amplification properties of each storage drive 113.
- the WA model indicates, for example, the relationship between the used capacity of the storage drive 113 and the WA.
- the WA model is represented by a graph or an approximate expression. The WA model can be used to calculate the remaining write capacity.
- FIG. 4D shows a configuration example of the capacity management table 304.
- the capacity management table 304 manages the capacity of each storage drive 113.
- the capacity management table 304 includes a drive number column 341, a remaining capacity column 342, a physical capacity column 343, a logical capacity column 344, and a compression rate column 345.
- the remaining capacity column 342 indicates the remaining physical capacity of each storage drive 113.
- the physical capacity column 343 indicates the physical capacity of each storage drive 113.
- the logical capacity column 344 indicates the capacity of each storage drive 113 as viewed from the processor 119.
- the compression rate column 345 indicates the current data compression rate of each storage drive 113.
- Information of the capacity management table 304 is provided from each storage drive 113.
- FIG. 4E shows a configuration example of the page mapping table 305.
- the page mapping table 305 manages data stored in the storage drive 113 or the buffer 306 of the computer node 101 that holds the page mapping table 305.
- the page mapping table 305 shows the correspondence between the virtual volume page and the storage drive 113 (physical drive) page.
- the page mapping table 305 further indicates the relationship between these pages and the pages in the buffer.
- the page mapping table 305 includes a hash value column 351, a transfer information column 352, a node number (1) column 353, a virtual volume (VVOL) number (1) column 354, and a page number (1) column 355.
- the page mapping table 305 further includes a node number (2) column 356, a virtual volume (VVOL) number (2) column 357, a page number (2) column 358, a buffer address column 359, a drive number column 360, and a page number column. 361.
- the page mapping table 305 in this example is a hash table.
- the hash value column 351 stores the hash value of page data.
- a page is a unit for assigning a storage area to a virtual volume.
- the redundancy block and the page size may be the same.
- the buffer address column 359 manages the buffer in units of pages.
- the transfer information column 352 shows information on the data attribute and transfer processing of each entry. Specifically, the transfer information column 352 is a network in which the entry data is storage I / O data reflected in the local drive 113 or is transferred between the computer nodes 101 and not reflected in the local drive 113. Indicates whether the data is I / O data.
- Storage I / O data and network I / O data information are stored in different entries even if they have the same hash value.
- Storage I / O data is processed by the storage I / O program 410, and network I / O data is processed by the network I / O program 414.
- Network I / O data is transfer data between VMs 201 (for example, between application programs 202) of different computer nodes 101.
- the buffer 306 stores network I / O data to be transferred to the other computer node 101 and network I / O data received from the other computer node 101.
- the VM 201 (application program 202) writes the network I / O data transferred from the other computer node 101 to the storage drive 113, and passes the data to the storage I / O program 410 together with the write request as write data.
- Storage I / O data includes normal write data and mirror data transferred from another computer node 101.
- the transfer information column 352 indicates whether the storage I / O data is write data or mirror data.
- the transfer information column 352 indicates whether the data of each entry has been transferred to another computer node 101. When the entry data is transferred data, the transfer information column 352 indicates information of the transfer destination computer node 101.
- the node number (1) column 353, the virtual volume (VVOL) number (1) column 354, and the page number (1) column 355 indicate pages of a virtual volume in which data having a hash value is stored.
- the node number (2) column 356, virtual volume (VVOL) number (2) column 357, and page number (2) column 358 indicate pages of other virtual volumes in which data having the same hash value is stored.
- FIG. 4E clearly shows two virtual page columns, but the page mapping table 305 has three or more virtual page columns.
- the data is only logically stored in the virtual volume, and the actual data is stored in the storage drive 113 having a physical storage area.
- a cell that does not have a corresponding value stores, for example, a NULL value.
- the data entry stored only in the buffer 306 has a NULL value in the cell that stores information about the address of the virtual volume and the storage drive.
- the buffer address column 359 indicates the address of the buffer 306 in which data having a hash value is stored.
- the drive number column 360 and the page number column 361 indicate pages of the storage drive 113 in which data having hash values is actually stored.
- the buffer address column 359 and the drive number column 360 indicate the pages of the buffer 306 and the storage drive 113 included in the computer node 101 that holds the page mapping table 305.
- the page mapping table 305 indicates the reference relationship between the hash value and the address, and further indicates the reference relationship between the logical address (virtual volume address) and the physical address.
- the target data is parity
- a plurality of logical addresses of data used for generating the parity are associated with each other.
- the target data When the target data is real data, usually one logical address (virtual volume page) is associated.
- a common physical page is allocated to different logical addresses for storing the duplicate data by exclusion.
- FIG. 5 shows a flowchart of storage I / O processing (read) according to the present embodiment.
- the storage I / O program 410 receives the read request, it operates according to the flowchart.
- the storage I / O program 410 reads data with reference to the execution status of the VM migration processing by the VM migration program 413 described later.
- the VM migration program 413 executes live migration of the VM 201.
- the data of the VM 201 including the application program 202 and the OS 203 is migrated between the memory 118 of the computer node 101, and the VM image data is further migrated to the storage drive 113 of the migration destination computer node 101.
- the data is stored in the local drive 113.
- the target data exists in the migration source computer node 101 or the migration destination computer node 101.
- the storage I / O program 410 receives a read request from the application program 202, for example.
- the storage I / O program 410 of the migration destination computer node 101 receives a read request from the migrated application program 202.
- the storage I / O program 410 determines whether the VM 201 including (managing) the application program 202 and the target data is being migrated (step 601). For example, the storage I / O program 410 inquires of the VM migration program 413 whether the VM 201 is being migrated.
- the storage I / O program 410 determines whether the target data has been copied to the migration destination computer node 101 (step 602). For example, the storage I / O program 410 inquires of the VM migration program 413 whether the target data has been copied.
- the storage I / O program 410 reads data from the migration source computer node 101 (step 605).
- the storage I / O program 410 transmits a read request with an address specified to the migration source computer node 101, and receives the returned target data.
- step 602 If the target data has been copied (step 602: YES), the storage I / O program 410 proceeds to step 603. If the VM 201 is not being migrated (step 601: NO), the storage I / O program 410 proceeds to step 603.
- step 603 the storage I / O program 410 acquires the corresponding physical address from the page mapping table 305.
- the storage I / O program 410 reads the data of the corresponding physical address from the storage drive 113 (step 604).
- the latest data can be referred to appropriately without depending on the designated address of the read request.
- the target data may not exist due to processing (parity conversion) for reducing the data amount, as will be described later.
- the storage I / O program 410 makes an inquiry to the computer node 101 whose entity is present, or restores data from parity to generate read target data. This destination node can be efficiently searched using a hash table described later.
- FIG. 6 shows a flowchart of storage I / O processing (Front End write) according to the present embodiment.
- the front end write is a process from reception of write data to writing to the buffer 306.
- the Front End write of this example further transfers data that needs redundancy to another computer node 101.
- the storage I / O program 410 only updates the page mapping table 305 without actually writing the data to the storage drive 113.
- the virtual write process is executed. Thereby, the write amount to the storage drive 113 is reduced.
- the storage I / O program 410 calculates the hash value of the write data and compares it with the value of the hash value column 351 of the page mapping table 305. If the same hash value exists, the storage I / O program 410 executes a virtual write process. That is, the storage I / O program 410 adds the access destination of the write request to the hash value entry.
- one method for detecting duplication of mirror data generated in other nodes by the mirroring function by the application holds a global hash table between the nodes.
- the hash table indicates the identifier of the node where the corresponding data is stored using the hash value of the data as a key.
- the hash table may include information on the identifier of the node that is the reference source of the data.
- the hash table may be partially retained using a predetermined algorithm (for example, LRU algorithm) for efficient memory usage.
- the hash value assigned to the node may be determined using a consistent hash so that the hash value of the data uniquely corresponds to the node, and the responsible node may hold a hash table of the assigned range.
- the storage I / O program 410 searches the global hash table (the hash table corresponding to the hash value) when the same hash value does not exist as compared with the value of the hash value column 351 of the page mapping table 305 described above. (Sends the node number and hash value to the node that manages the server to inquire).
- the storage I / O program 410 receives the node number and page address information, and executes the above-described virtual write processing.
- the inquiry destination node of the global hash table records the inquiry source node information in association with the hash value.
- the storage I / O program 410 proceeds to step 705.
- the inquiry destination node of the global hash table records the information of the inquiry source node in association with the hash value as the data holding node.
- the storage I / O program 410 transfers only the metadata to the transfer destination computer node 101.
- the transfer destination computer node is indicated by the stripe mapping table 301.
- the metadata indicates a hash value and a write data target address (virtual volume logical address).
- the transfer destination computer node 101 updates the page mapping table 305 with the received metadata.
- the storage I / O program 410 refers to the transfer information column 352 of the page mapping table 305 to determine whether duplicate data has been transferred.
- the storage I / O program 410 transfers the write data to the computer node 101 indicated by the stripe mapping table 301.
- the storage I / O program 410 transmits the write data target address together with the write data.
- the storage I / O program 410 When the storage I / O program 410 receives a write request, it operates according to the flowchart. For example, the storage I / O program 410 receives a read request from the application program 202. When the VM 201 executing the application program 202 is being migrated, the storage I / O program 410 of the migration destination computer node 101 receives a write request from the migrated application program 202.
- the storage I / O program 410 determines whether the VM 201 including (managing) the application program 202 and the target data (address) is being migrated (step 701). For example, the storage I / O program 410 inquires of the VM migration program 413 whether the VM 201 is being migrated.
- the storage I / O program 410 determines whether or not the data at the target address has been copied to the migration destination computer node 101 (step 709). For example, the storage I / O program 410 inquires of the VM migration program 413 whether the data at the target address has been copied. If the copying has not been completed (step 709: NO), the storage I / O program 410 transfers the write request to the migration source computer node 101 (step 710) and ends the processing.
- step 709 If the data at the target address has been copied (step 709: YES), the storage I / O program 410 continues the process because the latest data exists in the migration destination computer node 101. When the VM 201 is not being migrated (step 701: NO), the storage I / O program 410 similarly continues the process.
- the storage I / O program 410 calculates a hash value of the write data (step 702). For the calculation of the hash value, a generally known method such as CRC, MD5, or SHA can be used.
- the storage I / O program 410 searches the hash value column 351 of the page mapping table 305.
- the storage I / O program 410 determines whether or not the write data has been written based on whether or not the same value as the calculated hash value exists (step 703).
- This step also checks the hash value match for the data in the buffer 306, and determines whether it has been written.
- the buffer data is also managed by the page mapping table 305.
- the storage I / O program 410 updates the page mapping table 305 (step 704). Specifically, the storage I / O program 410 associates a page with a physical address that has already been written with a virtual page to be written.
- This process allows multiple logical pages to correspond to one physical page, reducing the amount of data written to the drive and increasing the usable storage capacity.
- step 704 if the buffer received and written by the network I / O program 414 described later has the same data, it is considered that the data is generated by the redundancy process of the application program 202. It is done.
- the storage I / O program 410 may use the data in the same manner as the mirror data by the storage I / O.
- the storage I / O program 410 generates parity from the data and other mirror data, and registers the information in the page mapping table 305.
- the storage I / O program 410 writes data to the local storage (storage drive 113) and makes the data redundant between the computer nodes 101.
- the network I / O program 414 is not stored in the local storage (storage drive 113), and performs data transfer between VMs 201 of different computer nodes 101.
- an application program 202 (for example, NoSQL) having a data redundancy function transfers data to another computer node 101 by the network I / O program 414 for redundancy.
- Redundant data resulting from network communication processing by an application program 202 having a data redundancy function (for example, NoSQL) is stored in the buffer 306 of the memory 118. This data is managed by the page mapping table 305.
- the storage I / O program 410 detects the redundancy of the data by calculating a hash value.
- Network redundancy is managed by the transfer information column 352 of the page mapping table 305.
- the transfer information column 352 holds information of the computer node 101 that transferred the data.
- the storage I / O program 410 transmits only the metadata to the redundancy destination node (step 711), and ends this processing.
- the metadata indicates a hash value and a storage destination address. In other words, before the storage write I / O is generated, the storage write I / O has occurred or has been made redundant by application network transfer.
- the storage I / O program 410 writes the write data to the buffer (step 705).
- the buffer data by the storage I / O program 410 and data by the network I / O program 414 are stored. Since each meaning is different, it is identified and managed by the transfer information column 352 of the page mapping table 305.
- redundancy is implemented by storage I / O processing.
- a redundancy destination node is calculated from the stripe mapping table 301 (step 707), data and metadata are transferred to the redundancy destination node (step 708), and when the transfer is completed, the process ends.
- Metadata is information for identifying data to be transmitted by a transfer destination, and includes information such as a logical address.
- a plurality of transfer destinations may be selected and a plurality of transfers may be executed according to the redundancy required by the system.
- FIG. 7 shows a flowchart of storage I / O processing (Back End write) according to the present embodiment.
- the Back End write reflects unreflected data in the buffer to the storage drive 113 (physical storage area). More specifically, the data stored in the buffer or data generated from the data stored in the buffer is written to the physical storage area of the storage drive 113.
- the storage I / O program 410 processes the data in the buffer 306 asynchronously with the write request.
- the storage I / O program 410 may release the storage area in the buffer 306 in synchronization with the write request.
- the buffer 306 has a predetermined capacity. When the usage rate exceeds the specified value, old data is deleted. Generally, FIFO is used, but other scheduling algorithms (eg, LRU) may be used. Write data to be written to the storage drive 113 is erased after writing to the storage drive 113 (storage medium).
- the storage I / O program 410 generates parity (Erasure Code) from the mirror data transferred from a plurality of other computer nodes 101 and stored in the buffer 306, and writes only the parity to the storage drive 113. As a result, the write amount to the storage drive 113 is reduced.
- parity Erasure Code
- the data (transfer data) stored in the buffer 306 does not need to be written to the storage drive 113 (not unreflected data). Therefore, the data is erased from the buffer 306 without being processed. This is realized by deleting the entry on the page mapping table 305 as the data from the buffer 306 is deleted.
- the storage I / O program 410 refers to the page mapping table 305 and determines whether there is data not yet reflected in the storage drive 113 (step 801).
- the transfer information column 352 indicates storage I / O data, and the entries in which the drive number column 360 and the page number column 361 store NULL values indicate unreflected data.
- the storage I / O program 410 determines whether the unreflected data is mirror data (step 802).
- the mirror data is data transmitted for redundancy and is data transferred from the other node 101 in step 708.
- the transfer information column 352 indicates whether the entry data is mirror data.
- the storage I / O program 410 When the unreflected data is mirror data (step 802: YES), the storage I / O program 410 generates parity together with other mirror data (step 807), and further generates metadata (step 808).
- Parity generation may use a general Erasure Coding technique (for example, Reed Solomon encoding).
- the data block group for generating the parity is the data transmitted for redundancy, and at the same time, each transmission source is a different node.
- the metadata indicates which parity address (or physical address) of which computer node 101 the parity is generated from, and is stored in the page mapping table 305.
- the metadata is referred to when restoring the data.
- step 803. the storage I / O program 410 proceeds to step 803.
- the target data is not mirror data (step 802: NO)
- the storage I / O program 410 proceeds to step 803.
- the target data is the write data of the write request issued by the computer node 101 (data written to the buffer in step 705).
- the storage I / O program 410 executes a series of processing for writing to the storage drive 113 in steps 803 to 806.
- the storage I / O program 410 refers to the page mapping table 305 and determines whether the correspondence relationship between the target virtual page and the physical page has already been determined (step 803). If a physical page has already been assigned to the target virtual page (step 803: YES), the storage I / O program 410 proceeds to step 805.
- the storage I / O program 410 changes the page mapping table 305 so that an unallocated physical page is allocated to the virtual page ( Step 804).
- FIG. 8 shows a flowchart of the VM allocation program 412 according to this embodiment.
- This process is executed to deploy the VM 201.
- the deployment of the VM 201 means that the VM 201 is arranged in the computer node 101 and the VM 201 is operated. More specifically, the VM image data is stored in the storage drive 113 of the computer node 101, and the VM 201 is operated on the memory 108.
- the VM allocation program 412 determines the placement destination based on the writable amount and usable capacity of the placement destination storage drive 113.
- the user operates a management computer (not shown) or one of the computer nodes 101 (referred to as a user terminal) to instruct the VM allocation program 412 of any one of the computer nodes 101 to deploy the VM 201.
- the instruction indicates the location of the VM image data and the configuration information of the VM image data.
- the VM allocation program 412 that has received the instruction executes the processing of the flowchart of FIG.
- the management computer may execute this process.
- the VM allocation program 412 acquires information on the allocation-target candidate computer node 101 (step 901). Specifically, the VM allocation program 412 acquires the VM information table 302, the storage drive life information table 303, and the capacity management table 304 from these computer nodes 101.
- the computer system may centrally manage information of the computer node 101 using a distributed database (SQL, NoSQL), KVS (Key Value Store), or the like.
- the VM allocation program 412 acquires the information from the database.
- the VM allocation program 412 determines a computer node 101 that satisfies the free space requirement for the VM 201 to be deployed (step 902).
- the required free space for the VM 201 is specified by the user or preset for a program included in the VM 201.
- the VM allocation program 412 refers to the capacity management table 304 of each computer node 101 and determines the computer node 101 having the necessary free capacity from the value of the remaining capacity column 342.
- the free capacity is calculated, for example, for each pool, and one of the pools is required to have the necessary free capacity.
- the capacity management table 304 manages information on the capacity of the storage drive 113 for each pool. Note that the capacity management table 304 illustrated in FIG. 4D indicates information of one pool. In the following, each computer node 101 has one pool.
- step 903 If there is no computer node 101 that satisfies the free space requirement (step 903: NO), the VM 201 cannot be deployed.
- the VM allocation program 412 outputs an error message to the user terminal (step 907).
- the VM allocation program 412 can write to the VM 201 to be deployed (remaining writable amount) in the computer node group.
- the computer node 101 that satisfies the above requirement is determined (step 904).
- the VM allocation program 412 calculates the write load amount of the VM 201 to be deployed from the specified write load amount of the executed program (including the OS and application program). Further, the VM allocation program 412 calculates the remaining writable amount of each computer node 101 when the VM 201 is deployed from the information in the storage drive life information table 303.
- the calculated remaining writable amount is the minimum remaining writable amount in the storage drive 113 allocated to the deployed VM 201.
- the VM allocation program 412 estimates the write load amount from the VM 201 for each storage drive 113.
- the VM allocation program 412 includes the number of storage drives 113 that provide storage areas for the pool, or the capacity that the storage drives 113 provide to the pool, the preset write load amount of the VM 201, the WA model 335, stripes
- the write load amount of the VM 201 with respect to each storage drive 113 is estimated based on the consideration of the write increase due to storage mirroring by the mapping table 301.
- the VM allocation program 412 estimates the remaining writable amount of each storage drive 113 from the value indicated by the remaining writable amount column 332 of the storage drive life information table 303 and the estimated write load amount of the VM 201 with respect to the storage drive 113. When all the remaining writable amount values are positive, the remaining writable amount requirement is satisfied. When the computer node 101 has a plurality of pools, the requirement for the remaining writable amount of free capacity is determined for each pool.
- the VM allocation program 412 When there is no computer node 101 that satisfies the writable amount requirement (step 905: NO), the VM allocation program 412 outputs a warning message indicating that the life requirement may not be satisfied at the user terminal (Ste 908). Further, the VM allocation program 412 selects one computer node 101 determined to satisfy the free capacity requirement in step 902 (step 909), and deploys the VM 201 to the computer node 101 (step 906).
- the VM allocation program 412 that has received an instruction from the user terminal transfers the selected VM image data to the computer node 101, and further instructs the computer node 101 to deploy the VM 201.
- the VM allocation program 412 deploys the VM 201 to the computer node 101 (step 906).
- the VM 201 can be deployed to an appropriate computer node 101 that satisfies the requirements for the writable amount and the free space.
- the VM allocation program 412 further considers mirror data transferred between the computer nodes 101 for redundancy by deploying the VM 201 in determining the deployment destination.
- the mirror data of the VM 201 is transferred from the computer node 101 to the computer node 101 indicated by the stripe mapping table 301.
- the write load increases.
- the VM allocation program 412 determines the deployment destination computer node 101 so that the value of the remaining writable amount becomes positive also in the transfer destination computer node 101.
- a function indicating an increase in the write load amount at the computer node i with respect to an increase in the write load amount at the computer node r due to the replication of the storage I / O program 410 is set in advance.
- the VM allocation program 412 estimates the write load amount that increases in the other computer nodes 101 indicated by the stripe mapping table 301 when the VM 201 is deployed to the deployment destination candidate using the function.
- the VM allocation program 412 estimates the remaining writable amount in other computer nodes 101 from the estimated increase in the write load amount and information in the storage drive life information table 303.
- the VM 201 is deployed to a more appropriate computer node 101 by referring to the remaining writable amount of the computer node 101 that constitutes the redundancy group of the storage destination and storage I / O in addition to the writeable amount of the deployment destination of the VM 201 be able to.
- FIG. 9 shows a flowchart of the VM arrangement change program 411 according to the present embodiment.
- the arrangement of the deployed VM 201 is reviewed, and the VM 201 is migrated so as to satisfy the requirements for the writable amount and the free space.
- This process may be executed periodically by each computer node 101 or may be executed when an event such as activation / termination of the VM 201 occurs. It may be executed when the write load of the VM 201 changes greatly, such as when the setting of the application program 202 is changed.
- the VM arrangement changing program 411 may sequentially select the VMs 201 operating on the own computer node 101 and execute this flow.
- the VM placement change program 411 determines whether the remaining writable amount of the own computer node 101 is insufficient (step 1006). For example, the VM arrangement changing program 411 compares the largest remaining capacity with a threshold value. When the remaining writable amount of the own computer node 101 is not insufficient (step 1006: NO), the VM arrangement change program 411 ends this processing.
- step 1001: YES When the free space of the own computer node 101 is insufficient (step 1001: YES) or the remaining writable amount is insufficient (step 1006: YES), the VM arrangement change program 411 is a migration destination candidate. Information on the computer node 101 is acquired (step 1002). Step 1002 is the same as step 901. The computer node 101 from which information is acquired may be limited in advance.
- the VM placement change program 411 determines the computer node 101 that satisfies the free space requirement for the target VM 201 (step 1003). Step 1003 is similar to step 902.
- the VM arrangement change program 411 outputs an error message to the management terminal (user terminal) (step 1005).
- Step 1004 When there is a computer node 101 that satisfies the free space requirement (step 1004: YES), the VM placement change program 411 executes steps 1007 to 1010. Steps 1007 to S1009 are the same as steps 904, 905, and 908.
- the VM placement change program 411 uses the VM migration program 413 to assign the VM 201 Transition to the computer node 101. Details of the VM 201 migration method will be described later.
- the VM 201 can be migrated to an appropriate computer node 101 that satisfies the writeable amount and free capacity conditions.
- FIG. 10 shows a flowchart of the VM migration program 413 according to this embodiment.
- live migration of the VM 201 and migration of VM image data are executed simultaneously.
- the VM 201 is migrated while maintaining the local read by the VM 201.
- the local read is a data read from the local storage not via the network.
- the migration destination VM migration program 413 creates an access path from the migration source to the migration destination computer node 101 (step 1101). For example, the VM migration program 413 performs login processing so that the VM 201 can access the migration source volume from the migration destination computer node 101.
- the VM migration program 413 creates a virtual volume at the migration destination (step 1102). It is desirable for the VM migration program 413 to create a volume having the same size as the migration source.
- the VM migration program 413 executes live migration of the VM 201 (step 1103).
- the VM migration program 413 copies the page from the migration source to the migration destination (step 1104).
- the VM migration program 413 has a copy pointer (sequential pointer indicating the position from the beginning to the end of the volume), and executes copying in order of LBA. Further, at this time, it is used for determination of copying in step 602 and step 709, and if it is before the copy pointer, it can be determined that it has been copied, and if it is after, it can be determined that it has not been copied.
- the VM migration program 413 determines whether all copying has been performed (step 1105). For example, when the copy pointer reaches the end of the volume, the VM migration program 413 considers that all copies have been completed.
- the VM migration program 413 deletes the migration source virtual volume and its access path (step 1106).
- pages used by the virtual volume are released as unused pages, and the usable capacity increases.
- the data on the buffer used for the network I / O may be released.
- the VM 201 can be migrated while continuing the storage I / O.
- FIG. 11 shows a flowchart of network I / O (transmission) according to the present embodiment. This process is called from the hypervisor 203 during communication between the application programs 202 of different computer nodes 101.
- the network I / O program 414 checks the hash value of the transmission data, and checks whether the data is written to the storage drive 113 or the buffer 306.
- the network I / O program 414 transmits only the metadata. Otherwise, the network I / O program 414 sends the mirror data along with the metadata. This reduces the amount of data transferred between computer nodes.
- the network I / O program 414 generates a hash value of the transmission target data (step 1201).
- the network I / O program 414 checks whether the same data has already been transmitted to the destination computer node 101 (step 1202).
- the network I / O program 414 refers to the page mapping table 305 and searches for an entry for the hash value.
- the hash value entry exists and the transfer information column 352 indicates that the data has not been transmitted to the transmission destination, the data is transmitted to the transmission destination (step 1204), and the data is written to the buffer 306 ( Step 1205), the process ends.
- the network I / O program 414 updates the page mapping table 305.
- the network I / O program 414 may update only the hash value of the page mapping table 305 without writing the data to the buffer 306.
- the destination computer node 101 holds the data in the buffer 306.
- the network I / O program 414 transmits only the metadata (step 1203) and ends the process.
- the metadata includes, for example, a hash value so that the data can be referred to by the hash value at the transmission destination.
- FIG. 12 shows a flowchart of network I / O (reception) according to the present embodiment.
- This process is called back from the hypervisor during communication by the application between the VMs 201.
- This process is called back from the hypervisor during communication by the application between the VMs 201.
- the network I / O program 414 determines whether the received data is metadata or data (step 1301). If it is metadata, the network I / O program 414 refers to the page mapping table 305, calculates the data position from the metadata (step 1302), and reads the data from the data position (buffer, drive, etc.) (step 1303).
- the data position can be identified by searching the page mapping table 305 with the hash value.
- the network I / O program 414 inquires of the computer node 101 where the data exists or restores the data from the parity.
- the network I / O program 414 stores the data in the reception area of the application program 202 (step 1305), and ends the process. If the received data is not metadata (if it is data), the network I / O program 414 writes the data to the buffer 306 (step 1304) and stores the data in the data receiving area (step 1305). ).
- the network transfer amount can be reduced in cooperation with the processing on the transmission side described with reference to FIG.
- this embodiment can improve the efficiency of processing in a computer system (hyperconverged system) that integrates storage, a network, and computing.
- the computer system acquires information on the remaining writable amount (lifetime) of the local storage of the computer node, and changes the VM arrangement according to the write load amount of the VM.
- the increase in the write amount to the local storage by a scalable application (such as NoSQL) operating on the hyper-converged system is reduced by deduplication of data and erasure coding, and the storage usage capacity is further improved.
- this embodiment has high scalability because each computer node manages the capacity and the remaining writable amount. According to this embodiment, even in a large-scale computer environment, it is possible to reduce the cost of the medium while reducing the number of maintenance.
- a buffer may be allocated to the storage area of the storage drive, and the optimum buffer amount may be dynamically adjusted according to the load (write amount, etc.).
- this invention is not limited to the above-mentioned Example, Various modifications are included.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
- a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
- each of the above-described configurations, functions, processing units, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
- Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD, or a recording medium such as an IC card or an SD card.
- the control lines and information lines are those that are considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. In practice, it may be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (14)
- ネットワークにより通信する複数の計算機ノードを含む計算機システムであって、
前記複数の計算機ノードそれぞれは、ローカルストレージと1以上の仮想マシンを含み、
前記複数の計算機ノードそれぞれは、そのローカルストレージに対するライトデータを、冗長化のために1又は複数の他の計算機ノードに転送し、
前記計算機システムに含まれる計算機は、
第1の仮想マシンによるライト負荷量を示す情報を取得し、
前記複数の計算機ノードにおける配置先候補のローカルストレージの残ライト可能量を示す取得し、
前記第1の仮想マシンのライト負荷量と、前記配置先候補の計算機ノードの前記残ライト可能量と、に基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、計算機システム。 - 請求項1に記載の計算機システムであって、
前記計算機は、前記配置先候補の計算機ノードの空き容量と前記第1の仮想マシンのイメージデータサイズとに基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、計算機システム。 - 請求項1に記載の計算機システムであって、
前記計算機は、前記配置先候補の計算機ノードに前記第1の仮想マシンを配置した場合に、冗長化のためのデータ転送による前記1以上の他の計算機ノードそれぞれのライト負荷量の増加量と、前記1以上の他の計算機ノードそれぞれの残ライト可能量と、に基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、計算機システム。 - 請求項1に記載の計算機システムであって、
前記第1の仮想マシンは、前記複数の計算機ノードに含まれる第1の計算機ノード上で動作しており、
前記計算機は前記第1の計算機ノードであり、
前記第1の計算機ノードは、そのローカルストレージの残ライト可能量と、その実行している仮想マシンのライト負荷量と、に基づき、前記第1の仮想マシンの移行の有無を決定する、計算機システム。 - 請求項1に記載の計算機システムであって、
前記複数の計算機ノードは、第1の計算機ノードと第2の計算機ノードとを含み、
前記第1の計算機ノードは、
前記第2の計算機ノードに転送済みのデータを管理する管理情報を保持し、
前記管理情報を参照して、前記第2の計算機ノードに転送すべき第1データと同一データを、前記第2の計算機ノードに転送済みであるか判定し、
前記第1の計算機ノードが前記同一データを転送済みである場合、前記第1の計算機ノードは、前記第1データのメタデータのみを前記第2の計算機ノードに送信する、計算機システム。 - 請求項5に記載の計算機システムであって、
前記管理情報は、前記第1の計算機ノードのローカルストレージに格納されるデータの転送データと、前記第1の計算機ノードの仮想マシンと前記第2の計算機ノードの仮想マシンとの間で転送されたデータと、を管理する、計算機システム。 - 請求項5に記載の計算機システムであって、
前記メタデータは、前記第1データのハッシュ値を示す、計算機システム。 - ネットワークにより通信する複数の計算機ノードを含む計算機システムを制御する方法であって、
前記複数の計算機ノードそれぞれは、ローカルストレージと1以上の仮想マシンを含み、
前記複数の計算機ノードそれぞれは、そのローカルストレージに対するライトデータを、冗長化のために1又は複数の他の計算機ノードに転送し、
前記方法は、
第1の仮想マシンによるライト負荷量の情報を取得し、
前記複数の計算機ノードにおける配置先候補の計算機ノードから、そのローカルストレージの残ライト可能量の情報を取得し、
前記第1の仮想マシンのライト負荷量と、前記配置先候補の計算機ノードの残ライト可能量と、に基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、ことを含む方法。 - 請求項8に記載の方法であって、
前記配置先候補の計算機ノードの空き容量と前記第1の仮想マシンのイメージデータサイズとに基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、ことを含む方法。 - 請求項8に記載の方法であって、
前記配置先候補の計算機ノードに前記第1の仮想マシンを配置した場合に、冗長化のためのデータ転送による前記1以上の他の計算機ノードそれぞれのライト負荷量の増加量と、前記1以上の他の計算機ノードそれぞれの残ライト可能量と、に基づき、前記第1の仮想マシンを前記配置先候補の計算機ノードに配置するか決定する、ことを含む方法。 - 請求項8に記載の方法であって、
前記第1の仮想マシンは、前記複数の計算機ノードに含まれる第1の計算機ノード上で動作しており、
前記方法は、
前記第1の計算機ノードのローカルストレージの残ライト可能量と、前記第1の計算機ノードの実行している仮想マシンのライト負荷量と、に基づき、前記第1の仮想マシンの移行の有無を決定する、ことを含む方法。 - 請求項8に記載の方法であって、
前記複数の計算機ノードは、第1の計算機ノードと第2の計算機ノードとを含み、
前記方法は、
前記第1の計算機ノードから前記第2の計算機ノードに転送済みのデータを管理する管理情報を参照して、前記第2の計算機ノードに転送すべき第1データと同一データを、前記第1の計算機ノードから前記第2の計算機ノードに転送済みであるか判定し、
前記同一データを転送済みである場合、前記第1データのメタデータのみを前記第1の計算機ノードから前記第2の計算機ノードに送信する、ことを含む方法。 - 請求項12に記載の方法であって、
前記管理情報は、前記第1の計算機ノードのローカルストレージに格納されるデータの転送データと、前記第1の計算機ノードの仮想マシンと前記第2の計算機ノードの仮想マシンとの間で転送されたデータと、を管理する、方法。 - 請求項12に記載の方法であって、
前記メタデータは、前記第1データのハッシュ値を示す、方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017561025A JP6600698B2 (ja) | 2016-08-10 | 2016-08-10 | 計算機システム |
PCT/JP2016/073600 WO2018029820A1 (ja) | 2016-08-10 | 2016-08-10 | 計算機システム |
US15/754,179 US10359967B2 (en) | 2016-08-10 | 2016-08-10 | Computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/073600 WO2018029820A1 (ja) | 2016-08-10 | 2016-08-10 | 計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018029820A1 true WO2018029820A1 (ja) | 2018-02-15 |
Family
ID=61161796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/073600 WO2018029820A1 (ja) | 2016-08-10 | 2016-08-10 | 計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10359967B2 (ja) |
JP (1) | JP6600698B2 (ja) |
WO (1) | WO2018029820A1 (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020027434A (ja) * | 2018-08-10 | 2020-02-20 | 横河電機株式会社 | 制御システム及び制御装置 |
JP2020052730A (ja) * | 2018-09-27 | 2020-04-02 | 株式会社日立製作所 | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム |
JP2020060983A (ja) * | 2018-10-10 | 2020-04-16 | 株式会社日立製作所 | ストレージシステム及びストレージ制御方法 |
JP2020087060A (ja) * | 2018-11-28 | 2020-06-04 | 日本電気株式会社 | ジョブスケジューリング装置、管理システム、及びスケジューリング方法 |
US11112973B2 (en) | 2019-03-22 | 2021-09-07 | Hitachi, Ltd. | Computer system and data management method |
JP2021140404A (ja) * | 2020-03-04 | 2021-09-16 | 株式会社日立製作所 | 管理システム及び基盤システムの管理方法 |
JP2021144662A (ja) * | 2020-03-13 | 2021-09-24 | 富士通株式会社 | 管理装置、情報処理システム及び管理プログラム |
JP2022054132A (ja) * | 2020-09-25 | 2022-04-06 | 株式会社日立製作所 | 複合型ストレージシステム |
JP2022061706A (ja) * | 2020-10-07 | 2022-04-19 | 株式会社日立製作所 | 計算機システム及び負荷分散方法 |
JP2022150953A (ja) * | 2021-03-26 | 2022-10-07 | 株式会社日立製作所 | 分散ストレージシステム、及び管理方法 |
US11675545B2 (en) | 2021-04-14 | 2023-06-13 | Hitachi, Ltd. | Distributed storage system and storage control method |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190083150A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328734A (ja) * | 2006-06-09 | 2007-12-20 | Hitachi Ltd | ストレージ装置及びストレージ装置の制御方法 |
JP2014178827A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | レプリケーションシステム |
JP2015505078A (ja) * | 2012-02-08 | 2015-02-16 | 株式会社日立製作所 | 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832687B2 (en) * | 2011-04-20 | 2014-09-09 | Red Hat Israel, Ltd. | Managing quotas in a distributed virtualization environment |
US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9807170B2 (en) * | 2013-06-14 | 2017-10-31 | Hitachi, Ltd. | Storage management calculator, and storage management method |
US9417976B2 (en) * | 2014-08-29 | 2016-08-16 | Vmware, Inc. | Preventing migration of a virtual machine from affecting disaster recovery of replica |
-
2016
- 2016-08-10 US US15/754,179 patent/US10359967B2/en active Active
- 2016-08-10 JP JP2017561025A patent/JP6600698B2/ja not_active Expired - Fee Related
- 2016-08-10 WO PCT/JP2016/073600 patent/WO2018029820A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328734A (ja) * | 2006-06-09 | 2007-12-20 | Hitachi Ltd | ストレージ装置及びストレージ装置の制御方法 |
JP2015505078A (ja) * | 2012-02-08 | 2015-02-16 | 株式会社日立製作所 | 複数の不揮発性の半導体記憶媒体を有し、ホットデータを長寿命記憶媒体に配置しコールドデータを短寿命記憶媒体に配置するストレージ装置、及び、記憶制御方法 |
JP2014178827A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | レプリケーションシステム |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020027434A (ja) * | 2018-08-10 | 2020-02-20 | 横河電機株式会社 | 制御システム及び制御装置 |
US11048565B2 (en) | 2018-08-10 | 2021-06-29 | Yokogawa Electric Corporation | Control system and control apparatus |
JP7056460B2 (ja) | 2018-08-10 | 2022-04-19 | 横河電機株式会社 | 制御システム及び制御装置 |
JP2020052730A (ja) * | 2018-09-27 | 2020-04-02 | 株式会社日立製作所 | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム |
CN110955487A (zh) * | 2018-09-27 | 2020-04-03 | 株式会社日立制作所 | Hci环境下的vm/容器和卷配置决定方法及存储*** |
US11663029B2 (en) | 2018-09-27 | 2023-05-30 | Hitachi, Ltd. | Virtual machine storage controller selection in hyperconverged infrastructure environment and storage system |
US11080081B2 (en) | 2018-09-27 | 2021-08-03 | Hitachi, Ltd. | Virtual machine and volume allocation in hyperconverged infrastructure environment and storage system |
US11080080B2 (en) | 2018-09-27 | 2021-08-03 | Hitachi, Ltd. | Virtual machine and volume allocation in hyperconverged infrastructure environment and storage system |
JP7118230B2 (ja) | 2018-09-27 | 2022-08-15 | 株式会社日立製作所 | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム |
JP2022003577A (ja) * | 2018-09-27 | 2022-01-11 | 株式会社日立製作所 | Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム |
JP2020060983A (ja) * | 2018-10-10 | 2020-04-16 | 株式会社日立製作所 | ストレージシステム及びストレージ制御方法 |
US11740823B2 (en) | 2018-10-10 | 2023-08-29 | Hitachi, Ltd. | Storage system and storage control method |
JP2020087060A (ja) * | 2018-11-28 | 2020-06-04 | 日本電気株式会社 | ジョブスケジューリング装置、管理システム、及びスケジューリング方法 |
JP7259288B2 (ja) | 2018-11-28 | 2023-04-18 | 日本電気株式会社 | ジョブスケジューリング装置、管理システム、及びスケジューリング方法 |
US11112973B2 (en) | 2019-03-22 | 2021-09-07 | Hitachi, Ltd. | Computer system and data management method |
JP2021140404A (ja) * | 2020-03-04 | 2021-09-16 | 株式会社日立製作所 | 管理システム及び基盤システムの管理方法 |
JP2021144662A (ja) * | 2020-03-13 | 2021-09-24 | 富士通株式会社 | 管理装置、情報処理システム及び管理プログラム |
JP7468012B2 (ja) | 2020-03-13 | 2024-04-16 | 富士通株式会社 | 管理装置、情報処理システム及び管理プログラム |
JP2022054132A (ja) * | 2020-09-25 | 2022-04-06 | 株式会社日立製作所 | 複合型ストレージシステム |
JP7154261B2 (ja) | 2020-09-25 | 2022-10-17 | 株式会社日立製作所 | 複合型ストレージシステム |
US11907746B2 (en) | 2020-09-25 | 2024-02-20 | Hitachi, Ltd. | Compound storage system |
JP7229214B2 (ja) | 2020-10-07 | 2023-02-27 | 株式会社日立製作所 | 計算機システム及び負荷分散方法 |
US11550488B2 (en) | 2020-10-07 | 2023-01-10 | Hitachi, Ltd. | Computer system and load distribution method |
JP2022061706A (ja) * | 2020-10-07 | 2022-04-19 | 株式会社日立製作所 | 計算機システム及び負荷分散方法 |
JP2022150953A (ja) * | 2021-03-26 | 2022-10-07 | 株式会社日立製作所 | 分散ストレージシステム、及び管理方法 |
JP7337869B2 (ja) | 2021-03-26 | 2023-09-04 | 株式会社日立製作所 | 分散ストレージシステム、及び管理方法 |
US11675545B2 (en) | 2021-04-14 | 2023-06-13 | Hitachi, Ltd. | Distributed storage system and storage control method |
Also Published As
Publication number | Publication date |
---|---|
JPWO2018029820A1 (ja) | 2018-08-09 |
JP6600698B2 (ja) | 2019-10-30 |
US10359967B2 (en) | 2019-07-23 |
US20180285016A1 (en) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6600698B2 (ja) | 計算機システム | |
US11487619B2 (en) | Distributed storage system | |
US9946642B2 (en) | Distributed multimode storage management | |
US11461015B2 (en) | Available storage space in a system with varying data redundancy schemes | |
US7975115B2 (en) | Method and apparatus for separating snapshot preserved and write data | |
US10346075B2 (en) | Distributed storage system and control method for distributed storage system | |
US20180267713A1 (en) | Method and apparatus for defining storage infrastructure | |
CN110300960B (zh) | 信息***、管理程序和信息***的程序更换方法 | |
US10936243B2 (en) | Storage system and data transfer control method | |
US11740823B2 (en) | Storage system and storage control method | |
US10067882B2 (en) | Storage system and storage control method | |
US11868248B2 (en) | Optimization for garbage collection in a storage system | |
US11907746B2 (en) | Compound storage system | |
US20190212937A1 (en) | Storage system and storage control method | |
JP6817340B2 (ja) | 計算機 | |
US11079956B2 (en) | Storage system and storage control method | |
WO2018055686A1 (ja) | 情報処理システム | |
JP7113698B2 (ja) | 情報システム | |
US11550488B2 (en) | Computer system and load distribution method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2017561025 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15754179 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16912701 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: 16912701 Country of ref document: EP Kind code of ref document: A1 |