KR101548086B1 - Computing method and apparatus of processing write in over-provisioning space - Google Patents
Computing method and apparatus of processing write in over-provisioning space Download PDFInfo
- Publication number
- KR101548086B1 KR101548086B1 KR1020140130733A KR20140130733A KR101548086B1 KR 101548086 B1 KR101548086 B1 KR 101548086B1 KR 1020140130733 A KR1020140130733 A KR 1020140130733A KR 20140130733 A KR20140130733 A KR 20140130733A KR 101548086 B1 KR101548086 B1 KR 101548086B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- ops
- garbage collection
- write
- write command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
Abstract
Description
The present invention relates to a computing method and apparatus for performing writing to an over-provisioning space.
Today, the number of computer devices using auxiliary storage devices such as SSDs is rapidly increasing, and the area of use is also expanding to server virtualization systems.
Korean Patent Registration No. 10-1209920 (2012.12.03) provides an SSD memory system including a set of SSD memory disk units. In particular, each SSD memory disk unit generally comprises (among other components) a host interface unit; A serial-attached small computer system interface (SAS) protocol controller coupled to the host interface unit and controlling the SAS protocol of the SSD memory disk unit; A direct memory access (DMA) controller coupled to the host interface unit and controlling access to the SSD memory disk unit; And a data buffer coupled to the DMA controller and buffering data stored in the SSD memory disk unit.
In addition, a recently used virtualization system should satisfy a service level objective (SLO) for each virtual machine of a customer.
In a virtualization system, techniques for providing hardware resources (for example, a central processing unit, main memory, etc.) separately in order to satisfy a service level target are actively researched.
However, there is a need for a new research on a technique of writing data by using OPS (Over-Provisioning Space) efficiently in a computing device including a virtualization system. In particular, in a virtualization environment where SSDs are shared by multiple virtual machines, there is a problem in that the input / output bandwidth can not be properly separated for each virtual machine.
SUMMARY OF THE INVENTION The present invention is directed to a computing method and apparatus for efficiently writing to an over-provisioning space.
A computing method for performing writing to an over-provisioning space according to an embodiment of the present invention includes: receiving a write command; checking a virtual machine that has sent the write command Performing garbage collection when the garbage collection is necessary, and writing to the OPS of the virtual machine that has transmitted the write command after performing the garbage collection.
According to another aspect of the present invention, there is provided a computing method for performing writing to an over-provisioning space, comprising: receiving a write command; receiving a write command from a first virtual machine; Performing a write to a first OPS that is an OPS of the first virtual machine, and writing to a second OPS that is an OPS of the second virtual machine when a write command is received from a second virtual machine.
A computing device that performs writing to an over-provisioning space according to an embodiment of the present invention includes a central processing unit, a main memory, an auxiliary memory processor, an auxiliary memory, and an auxiliary memory including an OPS, And is divided into at least two areas.
A computing device that performs writing to an over-provisioning space according to another embodiment of the present invention includes a first virtual machine, a second virtual machine, an auxiliary memory processor, an auxiliary memory, and an auxiliary memory including an OPS, The OPS includes a first OPS for the first virtual machine and a second OPS for the second virtual machine.
A computing device that performs writing to an over-provisioning space according to another embodiment of the present invention includes a first virtual machine, a second virtual machine, an auxiliary memory processor, an auxiliary memory, and an auxiliary memory including an OPS, , The OPS includes a first OS for the first virtual machine and a second OPS for the second virtual machine, and the auxiliary memory receives the write command from the first virtual machine upon receiving a write command A program that is instructed to perform a write to the first OPS that is the OPS of the first virtual machine and a write to the second OPS that is the OPS of the second virtual machine when the write command is received from the second virtual machine do.
A computing device that performs writing to an over-provisioning space according to another embodiment of the present invention includes a first virtual machine, a second virtual machine, an auxiliary memory processor, an auxiliary memory, and an auxiliary memory including an OPS, Wherein the OPS includes a first OPS for the first virtual machine and a second OPS for the second virtual machine, the auxiliary storage processor receives a write command and receives the write command from the first virtual machine Writes to the first OPS which is the OPS of the first virtual machine and writes to the second OPS which is the OPS of the second virtual machine when the write command is received from the second virtual machine.
The method and apparatus for writing to the over-provisioning space according to the embodiment of the present invention have the following effects.
First, the present invention can prevent interference between virtual machines by separately allocating OPS to each virtual machine.
Second, since each virtual machine has each OPS, the present invention efficiently reduces the time required for garbage collection by reducing data movement during garbage collection in an auxiliary storage device such as an SSD.
Third, the present invention can efficiently determine the over provisioning space (OPS) size of the virtual machine.
Fourth, the present invention can efficiently satisfy a service level objective (SLO) for each virtual machine of a customer.
FIG. 1 is a view for explaining a computing apparatus according to an embodiment of the present invention.
FIG. 2 is a view for explaining that each OPS is allocated to each virtual machine according to an embodiment of the present invention.
FIG. 3 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to the first embodiment of the present invention.
4 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to a second embodiment of the present invention.
5 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to a third embodiment of the present invention.
FIG. 6 is a flowchart illustrating a computing method for determining an over-provisioning space size according to the first embodiment of the present invention.
FIG. 7 is a flowchart illustrating a computing method for determining an over-provisioning space size according to a second embodiment of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. However, it is to be understood that the present invention is not limited to the disclosed embodiments, but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. It is intended that the disclosure of the present invention be limited only by the terms of the appended claims.
Also, terms used herein are for the purpose of illustrating embodiments and are not intended to limit the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. &Quot; comprises "and / or" comprising "used in the specification do not exclude the presence or addition of components other than the components mentioned. Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs.
In the present invention, an Over-Provisioning Space (OPS) is a predetermined area for the computing device 1 to perform writing. In the present invention, a virtual machine (VM) 10 means a predetermined area for performing writing, and each
The OPS of the first virtual machine (VM1) 11 is set to the OPS of the
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
FIG. 1 is a view for explaining a computing apparatus according to an embodiment of the present invention.
1, a computing device 1 according to an embodiment of the present invention includes at least one
The
The
The
The
The
The
The auxiliary
For example, the
When the write command is received from the first
In another embodiment, the
The
The auxiliary memory device 520 is a part for storing a program (for example, firmware, etc.) for the
The
The present invention separates and manages the
For example, when receiving the write command, the auxiliary storage device memory 520 checks the
When receiving a write command from the first
In another embodiment, the auxiliary storage memory 520 determines the size of the
The auxiliary storage memory 520 also determines the size of the
The
FIG. 2 is a view for explaining that each OPS is allocated to each virtual machine according to an embodiment of the present invention.
Referring to FIG. 2, the SSD includes a first OPS (VM1 OPS) 551, a second OPS (VM2 OPS) 552, and a third OPS (VM3 OPS)
The computing device 1 is used for the first
The computing device 1 is also used for the second
The computing device 1 is also used for the third
FIG. 3 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to the first embodiment of the present invention.
Referring to FIG. 3, the computing method for performing writing to the over-provisioning space according to the first embodiment of the present invention receives the write command by the computing device 1 (S310). Here, the computing device 1 is capable of an
The computing device 1 confirms the
After the computing device 1 confirms the
The computing device 1 determines whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S340).
After performing the garbage collection, the computing device 1 performs writing to the
If the garbage collection is not necessary, the computing device 1 performs writing to the
2, if the
4 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to a second embodiment of the present invention.
Referring to FIG. 4, the computing method for performing writing to the over-provisioning space according to the second embodiment of the present invention receives the write command by the computing device 1 (S410). Here, the computing device 1 is capable of an
The computing device 1 confirms whether it has received a write command from the first virtual machine 11 (S420).
After receiving the write command from the first
The computing device 1 checks whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S440).
After performing the garbage collection, the computing device 1 performs writing to the
The computing device 1 determines whether garbage collection is necessary. If the garbage collection is not required, the computing device 1 performs writing to the
If the computing device 1 has not received a write command from the first
If the computing device 1 receives the write command from the second
If the computing device 1 has not received a write command from the second
The computing device 1 checks whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S445).
After performing the garbage collection, the computing device 1 performs writing to the
The computing device 1 determines whether garbage collection is necessary. If the garbage collection is not required, the computing device 1 performs writing to the
5 is a flowchart illustrating a computing method for performing writing to an over-provisioning space according to a third embodiment of the present invention.
Referring to FIG. 5, a computing method for performing writing to an over-provisioning space according to the third embodiment of the present invention receives a write command from the computing device 1 (S510). Here, the computing device 1 is capable of an
The computing device 1 confirms whether it has received a write command from the first virtual machine 11 (S520).
If the computing device 1 receives the write command from the first
The computing device 1 checks whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S540).
After performing the garbage collection, the computing device 1 performs writing to the
The computing device 1 determines whether garbage collection is necessary and performs writing to the
If the computing device 1 has not received a write command from the first
If the computing device 1 receives the write command from the second
The computing device 1 determines whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S545).
After performing the garbage collection, the computing device 1 performs writing to the
The computing device 1 checks whether garbage collection is necessary. If the garbage collection is not necessary, the computing device 1 performs writing to the
If the computing device 1 has not received the write command from the second
If the computing device 1 has received the write command from the third
If the computing device 1 has not received a write command from the third
The computing device 1 determines whether garbage collection is necessary (S537).
The computing device 1 determines whether garbage collection is necessary, and performs garbage collection if garbage collection is required (S547).
After performing the garbage collection, the computing device 1 performs writing to the
The computing device 1 checks whether garbage collection is necessary. If the garbage collection is not necessary, the computing device 1 performs writing to the
FIG. 6 is a flowchart illustrating a computing method for determining an over-provisioning space size according to the first embodiment of the present invention.
First, in order to satisfy the SLO (Service Level Objective) which is the input / output (I / O) performance of each
Where t GC is the garbage collection execution time, t PRG is the flash memory 1 page write time, and t Xfer is the flash internal bus 1 page transfer time. Also, u is the average value of the effective pages in the block selected as the target block when performing garbage collection, and this value can be the value observed in the SSD simulator.
In the present invention, the garbage collection cost is based on time, and the garbage collection cost is equivalent to the garbage collection execution time.
At this time, the garbage collection time t GC = WAF (u) * t PRG , where t PRG is a constant value and WAF (u) is a function of u.
In equation (1), t GC is the only variable required to calculate the SSD write performance, and the rest are all constants. Also, the only variable needed to calculate t GC is u.
From Equations 1 and 2, it can be seen that the SSD write performance is determined by the cost of garbage collection (GC) and the cost of garbage collection is determined by u. And u is directly affected by OPS (550) size. Therefore, in order to control I / O performance, it is essential to properly manage
In general, since the
Referring to FIG. 6, the computing method for determining the over provisioning space size according to the first embodiment of the present invention determines the size of the
The computing device 1 confirms the maximum input / output speed of the auxiliary storage device 50 (S620).
The computing device 1 determines the maximum input / output speed of each virtual machine 10 (S630).
The computing device 1 calculates an initial garbage collection cost of each
The computing device 1 monitors the garbage collection cost (S650). This garbage collection monitoring identifies changes in the cost of garbage collection.
The computing device 1 confirms the current garbage collection cost of each virtual machine 10 (S660). Here, the current garbage collection cost is monitored while the current garbage collection cost is being monitored.
The computing device 1 compares the initial garbage collection cost of each
The computing device 1 determines the size of the current OPS 550 (S680). For example, if there are three
FIG. 7 is a flowchart illustrating a computing method for determining an over-provisioning space size according to a second embodiment of the present invention.
FIG. 7 is a flowchart illustrating a computing method for determining an over-provisioning space size according to a second embodiment of the present invention.
Referring to FIG. 7, a computing method for determining an over-provisioning space size according to a second embodiment of the present invention is a computing method in which the computing device 1 confirms the initial garbage collection cost of each
The computing device 1 determines whether the current garbage collection cost is equal to the initial garbage collection cost (S720).
After determining that the current garbage collection cost is the same as the initial garbage collection cost, the computing device 1 determines the
If the current garbage collection cost is not equal to the initial garbage collection cost, then the computing device 1 determines whether the current garbage collection cost is smaller than the initial garbage collection cost S740).
The computing device 1 determines whether the current garbage collection cost is smaller than the initial garbage collection cost and then decreases the
At this time, the total OPS size is maintained, and the OPS size of each virtual machine is adjusted in consideration of this.
The method according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, and the like, alone or in combination. Programs (program instructions) to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be those known to those skilled in the art of computer software technology. Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk and a magnetic tape, optical media such as a CDROM and a DVD, magneto-optical media such as a floppy disk, Hardware devices that are specifically configured to store and execute program instructions such as magneto-optical media, ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be appreciated that one embodiment is possible. Accordingly, the true scope of the present invention should be determined by the technical idea of the claims.
1: computing device
10: Virtual Machine
11: First virtual machine
12: Second virtual machine
13: Third virtual machine
20: Virtualization System
30: Central processing unit
40: Main memory device
50: auxiliary memory
510: Auxiliary storage processor
520: Auxiliary memory device
550: OPS
551: 1st OPs
552: 2ndOPS
553: 3rdOPS
570: data area
Claims (15)
Receiving a write command,
Confirming a virtual machine that has transmitted the write command, and checking whether garbage collection is necessary;
Performing garbage collection if the garbage collection is required,
Performing a write to the OPS of the virtual machine that has transmitted the write command after performing the garbage collection; and performing write to the over-provisioning space.
And if the virtual machine sending the write command is a first virtual machine, writing to the over-provisioning space performing write to the first OPS is performed.
Further comprising: identifying the virtual machine that sent the write command. ≪ Desc / Clms Page number 21 >
Main memory,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
The OPS is divided into at least two regions,
If the virtual machine includes a first virtual machine, a second virtual machine, and a third virtual machine, the OPS may include a first OS for the first virtual machine, a second OS for the second virtual machine, And writes to an overprovisioning space that includes a third OPS for the second OS.
Main memory,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
The OPS is divided into at least two regions,
Wherein the auxiliary memory device checks whether a garbage collection is required after confirming the virtual machine that has transmitted the write command upon receiving a write command, performs garbage collection if the garbage collection is necessary, Write to an over-provisioning space that includes a program that is instructed to perform a write to a particular OPS of the virtual machine that sent the write command.
Main memory,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
The OPS is divided into at least two regions,
Wherein the auxiliary memory device processor receives the write command, checks the virtual machine that has sent the write command, checks whether garbage collection is necessary, performs garbage collection if the garbage collection is necessary, Write to an over-provisioning space that performs write to a specific OPS of the virtual machine that sent the write command.
The second virtual machine,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
Wherein the OPS writes to an over-provisioning space that includes a first OS for the first virtual machine and a second OS for the second virtual machine.
Wherein the auxiliary memory device processor receives the write command, checks the virtual machine that has sent the write command, checks whether garbage collection is necessary, performs garbage collection if the garbage collection is necessary, Write to an over-provisioning space that performs write to a specific OPS of the virtual machine that sent the write command.
Receiving a write command,
Performing a write to a first OPS that is an OPS of the first virtual machine when a write command is received from the first virtual machine,
And when the write command is received from the second virtual machine, performing a write to the second OPS, which is the OPS of the second virtual machine, the write to the over provisioning space.
Determining whether garbage collection is needed, and performing garbage collection if the garbage collection is needed.
And when the write command is received from the third virtual machine, performing a write to the third OPS which is the OPS of the third virtual machine.
The second virtual machine,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
Wherein the OPS includes a first OPS for the first virtual machine and a second OPS for the second virtual machine,
When receiving the write command from the first virtual machine, the auxiliary memory device performs a write to the first OPS, which is the OPS of the first virtual machine, and transmits the write command from the second virtual machine And if so, writes to an over-provisioning space that includes a program instructed to perform a write to a second OPS that is an OPS of the second virtual machine.
The second virtual machine,
An auxiliary memory device including an auxiliary memory processor, an auxiliary memory, and an OPS,
Wherein the OPS includes a first OPS for the first virtual machine and a second OPS for the second virtual machine,
Wherein the auxiliary memory processor receives a write command and, when receiving the write command from the first virtual machine, performs a write to a first OPS that is an OPS of the first virtual machine, And writes to an over-provisioning space that performs a write to a second OPS that is an OPS of the second virtual machine.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140130733A KR101548086B1 (en) | 2014-09-30 | 2014-09-30 | Computing method and apparatus of processing write in over-provisioning space |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140130733A KR101548086B1 (en) | 2014-09-30 | 2014-09-30 | Computing method and apparatus of processing write in over-provisioning space |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101548086B1 true KR101548086B1 (en) | 2015-08-27 |
Family
ID=54062180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140130733A KR101548086B1 (en) | 2014-09-30 | 2014-09-30 | Computing method and apparatus of processing write in over-provisioning space |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101548086B1 (en) |
-
2014
- 2014-09-30 KR KR1020140130733A patent/KR101548086B1/en active IP Right Grant
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8793427B2 (en) | Remote memory for virtual machines | |
JP7280508B2 (en) | Information processing device, information processing method, and virtual machine connection management program | |
JP5733136B2 (en) | Information processing apparatus control method, control program, and information processing apparatus | |
US20160378656A1 (en) | Storage device, cache-write control method, and cache-write control program | |
US10860225B2 (en) | Apparatus and method for routing access based on device load | |
US20130054840A1 (en) | Tag allocation for queued commands across multiple devices | |
US8843672B2 (en) | Access method, computer and recording medium | |
US20140317346A1 (en) | Redundant array of independent disks systems that utilize spans with different storage device counts for a logical volume | |
US20170123699A1 (en) | Storage control device | |
US9910599B2 (en) | Cache read-modify-write process control based on monitored criteria | |
US10891150B2 (en) | Storage control method and storage controller for user individual service environment | |
KR101539895B1 (en) | Computing method and apparatus of determining size of over-provisioning space | |
US20190278632A1 (en) | Information processing apparatus and information processing system | |
US11429431B2 (en) | Information processing system and management device | |
KR101899719B1 (en) | Method for limiting i/o performance of virtual machine | |
WO2017126003A1 (en) | Computer system including plurality of types of memory devices, and method therefor | |
CN112486858A (en) | Data prefetching method and device | |
US10664193B2 (en) | Storage system for improved efficiency of parity generation and minimized processor load | |
US10877790B2 (en) | Information processing apparatus, control method and storage medium | |
US20160085448A1 (en) | Enhanced interface to firmware operating in a solid state drive | |
US10346070B2 (en) | Storage control apparatus and storage control method | |
KR20190116641A (en) | Storage apparatuses for virtualized system and operating methods thereof | |
KR101548086B1 (en) | Computing method and apparatus of processing write in over-provisioning space | |
US10007437B2 (en) | Management apparatus, storage system, method, and computer readable medium | |
CN107870877B (en) | Method and system for managing data access in a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190717 Year of fee payment: 5 |