Controller, data storage device, computing system, and host system
By setting a temporary memory area in the data storage device and updating the ownership information of the memory area, the problems of uneven processing load and communication delay during virtual machine migration when multiple host devices share data storage are solved, and the processing performance of the host system is improved .
Patent Information
- Application Number
- CN202410072419.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-24
- Filing Date
- 2024-01-18
- Publication Date
- 2025-01-14
AI Technical Summary
In the case where multiple host devices share data storage devices, uneven processing load leads to deterioration in processing performance, especially in the case of communication delay and performance deterioration in virtual machine migration.
By setting a temporary memory area in the data storage device, migrating the data related to the virtual machine and assigning it to another host device after the migration is completed, the ownership information of the memory area is updated to improve processing performance and reduce communication latency.
It effectively improves the uniformity of processing performance between multiple host devices, reduces communication delays caused by data migration during virtual machine migration, and optimizes the overall performance of the host system.
Smart Images

Figure CN119311205A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the priority of Korean Patent Application No. 10-2023-0089494 filed on July 11, 2023, with the Korean Intellectual Property Office, and Korean Patent Application No. 10-2023-0111114 filed on August 24, 2023, with the Korean Intellectual Property Office, which are hereby incorporated by reference in their entirety. Technical Field
[0003] Various embodiments of the present disclosure generally relate to a controller, a data storage device, a computing system, and a host system. Background Art
[0004] The data storage device may include a memory device including a plurality of memory cells storing data. The data storage device may include a controller controlling the operation of the memory device.
[0005] The host device may perform necessary workloads using the data storage device. In an example, at least two host devices may perform workloads while sharing the data storage device.
[0006] The at least two host devices may execute workloads according to instructions from, for example, a host management server.The workloads of the host devices may be uneven, and in this case, the processing performance of the host devices may be degraded. Summary of the invention
[0007] Various embodiments of the disclosed technology are directed to providing a measure capable of improving processing performance of a computing system including at least two host devices that process workloads while sharing an externally located data storage device.
[0008] In an embodiment of the present disclosure, a data storage device may include: at least one memory device, including multiple memory areas; and a controller, configured to, when a virtual machine migration command is received from a first virtual machine among multiple virtual machines running in a first host device among multiple host devices, set at least one memory area among the multiple memory areas except a first memory area allocated to the first virtual machine as a temporary memory area, and migrate data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area.
[0009] In an embodiment of the present disclosure, a computing system may include: a first host device; a second host device; and a data storage device, configured to: when a virtual machine migration command is received from a first virtual machine running in the first host device, set at least one memory area other than a first memory area allocated to the first virtual machine as a temporary memory area, migrate data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area, and when the data migration is completed, allocate the temporary data area to a second virtual machine running in the second host device.
[0010] In an embodiment of the present disclosure, a data storage device may include: at least one memory device, including multiple memory areas; and a controller, connected to at least one host device and configured to control the at least one memory device, wherein, when a memory area allocation request is received from a first virtual machine among one or more virtual machines running in a first host device among the at least one host device, the controller allocates a first memory area among the multiple memory areas to the first virtual machine and updates ownership information of the first memory area, and wherein, when an ownership change request for the first memory area is received from the first virtual machine, the controller changes the ownership information of the first memory area and sends a change completion message to the first host device.
[0011] According to an embodiment of the disclosed technology, a measure capable of improving the processing performance of a computing system in which at least two host devices process workloads while sharing a data storage device may be provided. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 is a diagram showing an example of the configuration of a data storage device and a host system based on an embodiment of the disclosed technology.
[0013] Figures 2 to 5 is a diagram illustrating an example of a method in which a data storage device and a host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0014] Figure 6 and Figure 7 is a diagram illustrating an example of another method in which a data storage device and a host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0015] Figures 8 to 10 is a diagram illustrating an example of another method in which a data storage device and a host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0016] Figures 11 to 15is a diagram illustrating an example of another method in which a data storage device and a host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0017] Figures 16 to 18 is a diagram illustrating an example of another method in which a data storage device and a host system perform virtual machine migration based on an embodiment of the disclosed technology. DETAILED DESCRIPTION
[0018] In the following description of various embodiments of the present disclosure, reference will be made to the accompanying drawings, in which specific embodiments that can be implemented are shown by way of illustration, and in the accompanying drawings, even if the same or similar components are shown in different drawings from each other, they can be represented by the same figure numerals and symbols. Further, in the following description of the embodiments of the present disclosure, when it is determined that the description may obscure the subject matter in some embodiments of the present disclosure, a detailed description of the well-known functions and components incorporated herein will be omitted. Unless terms such as "including", "having", "containing", "constituting", "comprising", "forming" as used herein are used together with the term "only", these terms are generally intended to allow the addition of other components. As used herein, unless the context clearly indicates otherwise, the singular form is intended to include the plural form.
[0019] Terms such as "first", "second", "A", "B", "(A)" or "(B)" may be used herein to describe elements of the present disclosure. Each of these terms is not used to define an element, sequence, order, quantity, etc., but is only used to distinguish the corresponding element from other elements.
[0020] When disclosing that a first element is “connected or coupled”, “contacting or overlapping” with a second element, it should be explained that not only the first element may be “directly connected or coupled” or “directly contacting or overlapping” with the second element, but also a third element may be “interposed” between the first element and the second element, or the first element and the second element may be “connected or coupled”, “contacting or overlapping”, etc., with each other through a fourth element. Here, the second element may be included in at least one of the two or more elements that are “connected or coupled”, “contacting or overlapping”, etc., with each other.
[0021] When time relative terms such as "after", "after...", "next", "before...", etc. are used to describe a process or operation of an element or configuration, or a flow or process in an operation, process, or manufacturing method, these terms may also be used to describe non-continuous or non-sequential processes or operations, unless used with the terms "directly" or "immediately".
[0022] In addition, when any dimension, relative size, etc. is disclosed, even if no relevant description is specified, it should be considered that the numerical value or corresponding information (e.g., level, range, etc.) of the element or feature includes a tolerance or error range that may be caused by various factors (e.g., process factors, internal or external influences, noise, etc.). Further, the term "may" fully encompasses all meanings of the term "can".
[0023] Hereinafter, various embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.
[0024] Figure 1 is a diagram showing an example of the configuration of a data storage device 100 and a host system based on an embodiment of the disclosed technology.
[0025] Reference Figure 1 , the data storage device 100 based on the embodiment of the disclosed technology may include, for example, a plurality of memory devices 110 and a controller 120. The plurality of memory devices 110 and the controller 120 may communicate via a bus 130. As an example, Figure 1 A case is shown where the data storage device 100 includes n memory devices 110_1, 110_2, 110_3, ..., and 110_n. In this specification, the data storage device 100 including the plurality of memory devices 110 and the controller 120 may be referred to as a memory system or a data storage system.
[0026] For example, each of the plurality of memory devices 110 may be a volatile memory such as DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, and GRAM, but the embodiments of the disclosed technology are not limited thereto. In an example, each of the plurality of memory devices 110 may be a non-volatile memory. Alternatively, some of the plurality of memory devices 110 may be volatile memories, while other memory devices may be non-volatile memories. In addition, even when only one memory device 110 is included in the data storage device 100, the embodiments of the disclosed technology may be applied.
[0027] The data storage device 100 may allocate or deallocate memory areas (or memory segments) included in the plurality of memory devices 110 according to a request of the externally located host device 200. The data storage device 100 may perform an operation of writing data into a memory area allocated to the host device 200 or erasing data in a memory area allocated to the host device 200 or reading data from a memory area according to a request of the host device 200.
[0028] For example, the data storage device 100 may allocate memory areas included in the plurality of memory devices 110 when communicating with one host device 200. Alternatively, the data storage device 100 may allocate memory areas included in the plurality of memory devices 110 when communicating with at least two host devices 200. As an example, Figure 1 A case where the data storage device 100 allocates memory areas included in the plurality of memory devices 110 when communicating with two host devices, namely, a first host device (Host_1) 200_1 and a second host device (Host_2) 200_2 is shown.
[0029] For example, the host device 200 may be a computer, an ultra mobile PC (UMPC), a workstation, a personal digital assistant (PDA), a tablet, a mobile phone, a smart phone, an e-book, a portable multimedia player (PMP), a portable game console, a navigation device, a black box, a digital camera, a digital multimedia broadcasting (DMB) player, a smart TV, a digital audio recorder, a digital audio player, a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, a storage device configuring a data center, one of various electronic devices configuring a home network, one of various electronic devices configuring a telematics network, a radio frequency identification (RFID) device, a mobile device capable of driving under human control or autonomous driving (e.g., a vehicle, a robot, or a drone), etc. Alternatively, the host device 200 may be a virtual reality / augmented reality (VR / AR) device that provides a 2D or 3D virtual reality image or an augmented reality image. The host device 200 is not limited to the above examples, and may be any of various electronic devices that require a data storage device 100 capable of storing data.
[0030] The host device 200 may include at least one operating system. The operating system may manage and control all functions and operations of the host device 200. The operating system may control the interactive operation between the host device 200 and the data storage device 100. According to the mobility of the host device 200, the operating system may be divided into a general operating system and a mobile operating system.
[0031] The host device 200 and the data storage device 100 may be collectively referred to as a computing system.
[0032] The host device 200 may perform communication with the data storage device 100 through a preset interface.
[0033] For example, the host device 200 can communicate with the data storage device 100 through a high-speed computing link (CXL) interface. Since the host device 200 communicates with the data storage device 100 through the CXL interface, a low-latency high-bandwidth access environment can be implemented in a structure that communicates with the data storage device 100 including a plurality of memory devices 110 each having a high capacity.
[0034] Alternatively, in an example, the host device 200 may communicate with the data storage device 100 through an interface other than the CXL interface.
[0035] For example, the host device 200 and the data storage device 100 can communicate through at least one of various communication interfaces or standards such as a universal serial bus (USB) protocol, a multimedia card (MMC) protocol, a peripheral component interconnect (PCI) protocol, a high-speed PCI (PCI-e or PCIe) protocol, an advanced technology attachment (ATA) protocol, a serial ATA protocol, a parallel ATA protocol, a small computer system interface (SCSI) protocol, an enhanced small disk interface (ESDI) protocol, and an integrated drive electronics (IDE) protocol, but not limited thereto.
[0036] Thus, the type and number of host devices 200 that communicate with the data storage device 100 and the communication interface between the host device 200 and the data storage device 100 may vary based on the embodiments of the disclosed technology. However, hereinafter, as an example, a case where at least two host devices 200 communicate with the data storage device 100 through a CXL interface will be described.
[0037] The controller 120 of the data storage device 100 may allocate or deallocate memory areas included in the plurality of memory devices 110 according to a request of the host device 200. For example, the controller 120 may refer to a microcontroller unit different from a memory controller that controls the operation of each of the plurality of memory devices 110. Alternatively, in an example, the controller 120 may be provided by being integrated with the memory controller just described above.
[0038] For example, the controller 120 may allocate memory areas included in the first storage device 110_1 and the second storage device 110_2 to the first host device 200_1 according to a request of the first host device 200_1. The controller 120 may allocate memory areas included in the third storage device 110_3 to the second host device 200_2 according to a request of the second host device 200_2.
[0039] In an example, the controller 120 may allocate some memory regions included in the first memory device 110_1 to the first host device 200_1 , and may allocate other memory regions included in the first memory device 110_1 to the second host device 200_2 .
[0040] A separate memory controller different from the controller 120 and corresponding to each of the plurality of memory devices 110 may be provided in the data storage device 100, and may control operations of processing data with respect to the memory devices 110. The memory controller may control operations of writing data into a memory area of the memory device 110 or erasing data in a memory area of the memory device 110 or reading data in a memory area of the memory device 110 according to a request of the host device 200. In this case, the controller 120 may be provided separately from the memory controller corresponding to each of the plurality of memory devices 110, and may perform control of management of the memory area including allocation of the memory area, etc.
[0041] Alternatively, in the case where the controller 120 is provided by being integrated with a memory controller, the controller 120 may control allocation and management of a memory region and operations of the memory device 110 .
[0042] The host device 200 may execute a workload using a memory area allocated from the data storage device 100. The workload executed by the host device 200 may be represented as a virtual machine (VM). An allocation request sent by the host device 200 to the data storage device 100 may be considered to be sent by the host device 200, or may be considered to be sent by one of a plurality of virtual machines running in the host device 200. In order to perform operations related to the virtual machine, the host device 200 may use a memory area located internally or externally.
[0043] For example, the host device 200 may use a memory area of the local memory 210 corresponding to each host device 200. The local memory 210 may include a first local memory (LocM1) 210_1 and a second local memory (LocM2) 210_2.
[0044] The first host device 200_1 may use the first local memory 210_1, and the second host device 200_2 may use the second local memory 210_2. Also, as described above, the host device 200 may use a memory area allocated from the data storage device 100.
[0045] The local memory 210 may be a memory adjacent to the host device 200 or located inside the host device 200. The local memory 210 may be a volatile memory such as SRAM, DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, and GRAM, but is not limited thereto.
[0046] For example, at least two host devices 200 may be controlled by the host management server 300. The host management server 300 and the first host device 200_1 and the second host device 200_2 controlled by the host management server 300 may be collectively referred to as a host system.
[0047] As described above, the host device 200 may perform an operation corresponding to a virtual machine using the local memory 210 corresponding to each of at least two host devices 200 and a memory area allocated from the data storage device 100 .
[0048] There may occur a state in which workloads according to virtual machines executed by at least two host devices 200 are uneven. An operation of migrating a virtual machine executed by one of the at least two host devices 200 to another may be performed.
[0049] Embodiments of the disclosed technology may provide a measure capable of preventing or reducing a communication delay caused by an operation of migrating a virtual machine and improving the processing performance of a host device 200 by migrating a virtual machine between at least two host devices 200 .
[0050] Figures 2 to 5 is a diagram illustrating a method in which a data storage device 100 and a host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0051] As an example, Figures 2 to 5 1 and 2. The first host device 200_1 and the second host device 200_2 perform operations according to a virtual machine while sharing a data storage device 100. The first host device 200_1 may use a first local storage 210_1 adjacent to the first host device 200_1. The second host device 200_2 may use a second local storage 210_2 adjacent to the second host device 200_2. The first host device 200_1 and the second host device 200_2 may operate under the control of the host management server 300.
[0052] Reference Figure 2 , as an example, a state in which the first host device 200_1 performs operations according to at least two virtual machines and the second host device 200_2 does not perform operations according to the virtual machines is shown. As an example, a situation in which multiple virtual machines are running in the first host device 200_1 and no virtual machine is running in the second host device 200_2 is shown.
[0053] The first host device 200_1 may use the memory area of the first local memory 210_1 and some of the memory areas of the data storage device 100. For example, the first host device 200_1 may be allocated and use the memory area of the first memory device 110_1 and the memory area of the second memory device 110_2 included in the data storage device 100. It can be considered that the virtual machine running in the first host device 200_1 is allocated with the memory area.
[0054] The second host device 200_2 may be in a state where a memory area of the memory device 110 included in the data storage device 100 is not allocated. Alternatively, the second host device 200_2 may be in a state where a memory area of the memory device 110 included in the data storage device 100 is allocated.
[0055] An operation of migrating a virtual machine executed in the first host device 200_1 to the second host device 200_2 may be performed under the control of the host management server 300 .
[0056] For example, the host management server 300 may instruct the first host device 200_1 to migrate the virtual machine to the second host device 200_2 (①).
[0057] The first host device 200_1 may perform an operation of migrating a virtual machine as a target to be migrated. During at least a portion of a period before the migration of the virtual machine is completed, the first host device 200_1 may perform an operation according to the corresponding virtual machine. The operation related to the migration of the virtual machine may be performed by a migration manager included in the first host device 200_1.
[0058] The migration manager of the first host device 200_1 may send a migration-related signal to the second host device 200_2 according to the migration instruction of the host management server 300. Alternatively, the host management server 300 may send the migration-related signal to the second host device 200_2.
[0059] The second host device 200_2 may include a migration manager. The migration manager included in the second host device 200_2 may perform preparation of a virtual machine to be migrated according to a migration-related signal received from the first host device 200_1 or the host management server 300.
[0060] The migration manager of the first host device 200_1 may control migration of required data related to migration of the virtual machine.
[0061] For example, the first host device 200_1 may transmit data related to the virtual machine as a migration target among data stored in the first local memory 210_1 to the second host device 200_2. The corresponding data may be stored in the second local memory 210_2 adjacent to the second host device 200_2.
[0062] The first host device 200_1 may control an operation for transferring data related to a virtual machine as a migration target among data stored in a memory area of the data storage device 100 allocated to the first host device 200_1 to the second host device 200_2.
[0063] For example, the migration manager of the first host device 200_1 may send a migration command (②) to the data storage device 100. The migration command may be a command generated and sent by a virtual machine as a migration target.
[0064] According to the migration command received from the first host device 200_1, the data storage device 100 may perform an operation for migrating data related to the virtual machine as the migration target and stored in the memory device 110 included in the data storage device 100. For example, the operation of data migration may be performed by the controller 120 included in the data storage device 100. Alternatively, the operation of data migration may be performed by a controller unit provided separately from the controller 120. A controller unit for managing data migration may be provided separately. In this case, the controller unit may only output a signal for controlling data migration or may directly control the operation of migrating data when controlling data migration.
[0065] Data to be migrated by the data storage device 100 may be moved inside the data storage device 100. Communication delay occurring between the data storage device 100 and the host device 200 due to data migration according to migration of the virtual machine may be prevented or reduced.
[0066] Reference Figure 3 In the example shown, the controller 120 included in the data storage device 100 can set or configure a temporary memory area (segment) (or a free memory area) (③) when receiving a migration command from the first host device 200_1. The case where the operation corresponding to the migration command according to the embodiment of the disclosed technology is performed by the controller 120 is described as an example. However, as described above, the operation corresponding to the migration command can be performed by a controller unit provided separately from the controller 120.
[0067] The temporary memory area may be an area to ensure migration of data related to the virtual machine as the migration target. The temporary memory area may be an area where no data is stored. The temporary memory area may be an area not allocated to the host device 200.
[0068] The temporary memory area may be set to a memory area in the memory device 110 including a memory area storing data related to the virtual machine as a migration target that is not allocated to the host device 200. For example, in the case where the data related to the virtual machine as a migration target is stored in the first memory device 110_1, the temporary memory area may be set to at least a part of the memory area not allocated to the host device 200 among the memory areas included in the first memory device 110_1.
[0069] Alternatively, the temporary memory area may be set to a memory area included in the memory device 110 other than the memory device 110 including the memory area storing data related to the virtual machine as the migration target. For example, in the case where the data related to the virtual machine as the migration target is stored in the first memory device 110_1, the temporary memory area may be set to at least a part of the memory area included in the memory device 110 other than the first memory device 110_1 (e.g., the second memory device 110_2 or the third memory device 110_3).
[0070] In some embodiments, the temporary memory area may be a part of the memory area allocated to the host device 200 to which the virtual machine as the migration target is to be migrated. For example, in the case where the virtual machine being operated by the first host device 200_1 is to be migrated to the second host device 200_2, the temporary memory area as a part of the memory area allocated to the second host device 200_2 may be an area where no data is stored or an area in a state where it is not used by the second host device 200_2.
[0071] As an example, Figure 3 1 shows a case where the controller 120 sets a memory area (a memory area not allocated to the host device 200) included in the third memory device 110_3 as a temporary memory area. Further, as an example, Figure 3 A case is shown in which data related to the virtual machine as the migration target is stored in the memory area included in the second memory device 110_2.
[0072] When a migration command is received from the first host device 200_1 and a temporary memory area is set, the controller 120 may control an operation for migrating data related to the virtual machine in the data storage device 100 .
[0073] In some embodiments, the data storage device 100 may include a data migration controller 140. For example, the data migration controller 140 may be a direct memory access (DMA) controller.
[0074] The controller 120 may instruct the data migration controller 140 to migrate data related to the virtual machine and stored in the memory area included in the second memory device 110_2 to the temporary memory area included in the third memory device 110_3 (④).
[0075] According to the instruction of the controller 120, the data migration controller 140 can perform an operation (⑤) of migrating data related to the virtual machine as the migration target among the data stored in the memory area included in the second memory device 110_2 to the temporary memory area included in the third memory device 110_3.
[0076] Since the operation of migrating data is performed by the data migration controller 140 , the controller 120 can control the data storage device 100 while performing other operations.
[0077] Since data related to the virtual machine as a migration target is migrated in the data storage device 100, the occurrence of communication delay between the host device 200 and the data storage device 100 or communication delay between host devices 200 due to data migration can be prevented or reduced.
[0078] When the migration of data related to the virtual machine as the migration target in the data storage device 100 is completed, the controller 120 may transmit a signal notifying the external data that the migration has been completed.
[0079] exist Figure 4 In the example shown, when data migration according to the migration of the virtual machine is completed in the data storage device 100, the controller 120 may transmit a migration completion signal (⑥) to the first host device 200_1 that transmitted the migration command.
[0080] The first host device 200_1 having received the migration completion signal may stop operating the virtual machine as the migration target. Alternatively, the first host device 200_1 having received the migration completion signal may be in a state where the operation of the virtual machine as the migration target has been stopped.
[0081] The first host device 200_1 may send a migration completion signal or a signal corresponding to the migration completion signal to the host management server 300 (⑦). Alternatively, the first host device 200_1 may send a migration completion signal or a signal corresponding to the migration completion signal to the second host device 200_2 to which the virtual machine will migrate.
[0082] When receiving the migration completion signal or a signal corresponding to the migration completion signal from the first host device 200_1, the host management server 300 may transmit the migration completion signal or a signal corresponding to the migration completion signal to the second host device 200_2 (⑧).
[0083] The second host device 200_2 may receive a migration completion signal or a signal corresponding to the migration completion signal from the host management server 300 or the first host device 200_1. After sending the migration completion signal, the first host device 200_1 may directly send a portion of the data related to the virtual machine as the migration target to the second host device 200_2. For example, data related to the virtual machine as the migration target and stored in the first host device 200_1 or the first local memory 210_1 adjacent to the first host device 200_1 may be sent to the second host device 200_2.
[0084] The second host device 200_2 may recognize that the migration of the data related to the migration of the virtual machine in the data storage device 100 has been completed. When recognizing that the migration of the data related to the virtual machine in the data storage device 100 is completed, the second host device 200_2 may request the data storage device 100 to allocate a memory area for storing the data related to the virtual machine.
[0085] exist Figure 5 In the example shown, the second host device 200_2 may send a request for allocating a temporary memory area to the data storage device 100 (⑨).
[0086] According to the allocation request of the second host device 200_2, the controller 120 of the data storage device 100 may allocate a memory area included in the third memory device 110_3 as a temporary memory area to the second host device 200_2.
[0087] A memory area in the data storage device 100 that stores data related to the virtual machine as a migration target may be allocated to the second host device 200_2 to which the virtual machine has migrated.
[0088] Since all data related to the virtual machine as the migration target is in a usable state, the migration manager included in the second host device 200_2 can resume the operation according to the migrated virtual machine. The operation according to the virtual machine migrated from the first host device 200_1 can be performed by the second host device 200_2.
[0089] Since the operation according to the virtual machine to be performed by the first host device 200_1 is performed by migrating to the second host device 200_2, uniformity of the operation according to the virtual machine between the host devices 200 can be improved, and processing performance of the host device 200 can be improved.
[0090] In addition, during the process of virtual machine migration, since the data stored in the memory area of the data storage device 100 allocated to the host device 200 is migrated in the data storage device 100, the migration of the virtual machine can be completed while preventing or reducing the communication delay between the host device 200 and the data storage device 100.
[0091] In an embodiment of the disclosed technology, since tracking of dirty pages occurring during migration of data associated with a virtual machine is performed in the data storage device 100, the impact of operations according to the migration of the virtual machine on the communication between the data storage device 100 and the host device 200 can be further reduced.
[0092] Figure 6 and Figure 7 1 is a diagram showing another method for performing virtual machine migration based on the data storage device 100 and the host system of an embodiment of the disclosed technology. As an example, Figure 6 and Figure 7 Shown with reference to above Figures 2 to 5 The different process parts describe the methods of virtual machine migration operation.
[0093] Figure 6 A case where an operation according to a virtual machine performed by the first host device 200_1 is migrated to the second host device 200_2 is shown. The first host device 200_1, which has received the migration instruction from the host management server 300, may transmit a migration command to the data storage device 100.
[0094] The controller 120 of the data storage device 100 may receive a migration command from the first host device 200_1 .
[0095] The controller 120 may set or configure a temporary memory area (segment) (③') according to the migration command. The method by which the controller 120 sets the temporary memory area may be similar to the method of the above example. For example, the controller 120 may set a memory area included in the third memory device 110_3 that is not allocated to the host device 200 as a temporary memory area.
[0096] The controller 120 may instruct the data migration controller 140 to perform migration of data related to the virtual machine serving as a migration target (④′).
[0097] According to the instruction of the controller 120, the data migration controller 140 may perform an operation of migrating data stored in the memory area included in the second memory device 110_2 and related to the virtual machine as the migration target to the temporary memory area included in the third memory device 110_3 (⑤').
[0098] The first host device 200_1 may perform operations according to the migration target virtual machine even after transmitting a signal about the migration of the virtual machine to the data storage device 100, the second host device 200_2, etc. Data related to the migration target virtual machine may be updated according to the operations performed by the first host device 200_1.
[0099] For example, data stored in a memory area included in the second memory device 110_2 of the data storage device 100 and related to the virtual machine as a migration target may be updated.
[0100] When data migration is performed in the data storage device 100, the controller 120 of the data storage device 100 may track that the first host device 200_1 updates data related to the virtual machine as the migration target (⑥'). Tracking of dirty pages may refer to tracking updates of data related to the virtual machine during the execution of data migration. The data to be migrated may be updated during the execution of data migration, and the controller 120 may check updates of data related to the virtual machine. Therefore, the updated data may be additionally transmitted after the data migration period ends.
[0101] Since the data migration operation is controlled by the data migration controller 140 , the controller 120 may track updates of the data related to the virtual machine by the first host device 200_1 when performing data migration.
[0102] The controller 120 may track the update of the data related to the virtual machine by the first host device 200_1 and may manage information about the updated data. For example, the controller 120 may store information about the update of the data related to the virtual machine by the first host device 200_1 in a separate memory included in the controller 120 or the data storage device 100.
[0103] When the data migration controller 140 completes the migration of data related to the virtual machine as the migration target, the controller 120 may instruct the data migration controller 140 to migrate data updated when performing the data migration operation.
[0104] According to the instruction of the controller 120 , the data migration controller 140 may perform migration of data updated when a previous data migration operation is performed.
[0105] Since the controller 120 performs tracking of updated data, communication for tracking data updates between the first host device 200_1 and the data storage device 100 may not be performed when performing the data migration operation. Regarding the data migration operation, data movement or communication performed between the data storage device 100 and the host device 200 may be reduced.
[0106] Since data movement or communication between the data storage device 100 and the host device 200 is reduced when performing the data migration operation, communication delay due to the data migration operation can be prevented or reduced.
[0107] In some embodiments, the operation according to another virtual machine to be performed by the host device 200 may be performed without being affected by the migration operation of data related to the virtual machine as the migration target. The data migration according to the migration of the virtual machine may be performed without degrading the performance of the operation according to another virtual machine.
[0108] In this way, when performing a data migration operation, the controller 120 in the data storage device 100 may perform dirty page tracking and may additionally migrate data that is updated when performing the data migration operation.
[0109] When the updated data is additionally migrated, the first host device 200_1 may perform an operation according to a virtual machine.
[0110] The controller 120 may track the update of the data as the migration target according to the operation according to the virtual machine performed by the first host device 200_1. The controller 120 may repeatedly track the update of the data as the migration target and instruct additional migration of the updated data.
[0111] When a time required for the additional migration of the updated data is equal to or shorter than a predetermined time, the controller 120 may perform data migration in a state in which the operation of the first host device 200_1 according to the virtual machine is stopped.
[0112] exist Figure 7 In the example shown, when the time required to migrate the updated data is equal to or shorter than a preset threshold, the controller 120 may send a migration pre-completion signal (⑦') to the first host device 200_1. The migration pre-completion signal may be a signal sent from the data storage device 100 to the host device 200 before sending a migration completion signal.
[0113] For example, when receiving the migration pre-completion signal, the first host device 200_1 may stop the operation according to the virtual machine as the migration target.
[0114] In a state where the operation of the virtual machine as the migration target is stopped, the controller 120 may perform migration of data updated during a previous data migration period (ie, updated data migration ⑧′).
[0115] When migration of data related to a virtual machine as a migration target is performed in the data storage device 100, updating of data related to the virtual machine may not be performed. The controller 120 may not perform dirty page tracking.
[0116] When the data migration is completed in a state where the operation of the virtual machine as the migration target is stopped, the controller 120 may transmit a migration completion signal to the first host device 200_1.
[0117] Can refer to the above Figures 2 to 5 The operations of the described method are similarly performed after the controller 120 sends the migration completion signal.
[0118] As is apparent from the above description, a data migration operation according to the migration of a virtual machine is performed in the data storage device 100, and dirty page tracking is performed by the controller 120 when the data migration operation is performed. Therefore, the influence exerted on the communication between the data storage device 100 and the host device 200 by the transmission and reception of data according to the migration of the virtual machine can be minimized or reduced.
[0119] Data migration can be performed while preventing or reducing communication delay, and deterioration of communication performance due to an operation according to another virtual machine performed by the host device 200 does not occur.
[0120] In some embodiments, when data migration according to migration of a virtual machine is performed in the data storage device 100 , data stored in the local memory 210 and related to the virtual machine as a migration target may be migrated in the data storage device 100 .
[0121] Figures 8 to 10 1 is a diagram showing an example of another method for performing virtual machine migration based on the data storage device 100 and the host system of an embodiment of the disclosed technology. As an example, Figures 8 to 10 Shown with reference to above Figures 2 to 5 The different process parts describe the methods of virtual machine migration operation.
[0122] Reference Figure 8 , the host management server 300 may send a migration instruction (①”) to the first host device 200_1.
[0123] The migration manager of the first host device 200_1 may send a migration command (②”) to the data storage device 100. In addition, the migration manager of the first host device 200_1 may send information related to the migration of the virtual machine to the migration manager of the second host device 200_2.
[0124] When the first host device 200_1 sends a command regarding migration of a virtual machine to the data storage device 100 , data related to the virtual machine as a migration target among data stored in the first local memory 210_1 may be cleared to the data storage device 100 (③”).
[0125] For example, the first host device 200_1 may perform an operation according to a virtual machine as a migration target, and may store data related to the corresponding virtual machine in the first local memory 210_1 or in a memory area allocated from the data storage device 100. The first host device 200_1 may perform an operation according to the virtual machine using a memory area of the first local memory 210_1 and a memory area allocated from the data storage device 100.
[0126] When determining to migrate the virtual machine, the first host device 200_1 may move data stored in the memory area of the first local memory 210_1 and related to the virtual machine as a migration target to the data storage device 100 so that the data may be migrated together with the data in the data storage device 100 .
[0127] exist Fig. 9 In the example shown, while or after receiving the migration command from the first host device 200_1, when receiving data stored in the first local memory 210_1 and related to the virtual machine as the migration target, the controller 120 of the data storage device 100 may store the received data in the memory area allocated to the first host device 200_1 (④”).
[0128] In this specification, data related to the virtual machine as a migration target and moved from the local memory 210 to the memory area of the data storage device 100 may be referred to as additional data.
[0129] The controller 120 may store the additional data received from the first host device 200_1 in a memory area allocated to the first host device 200_1 and storing data to be migrated. For example, the controller 120 may store the additional data in a memory area included in the second memory device 110_2.
[0130] The controller 120 may set or configure a temporary memory area (or zone) according to the migration command received from the first host device 200_1 (⑤”).
[0131] For example, the controller 120 may set or configure a memory area included in the third memory device 110_3 as a temporary memory area.
[0132] The controller 120 may instruct the data migration controller 140 to migrate data related to the virtual machine as a migration target and stored in the second memory device 110_2 to the temporary memory area (⑥”).
[0133] According to the instruction received from the controller 120 , the data migration controller 140 may migrate data stored in the second memory device 110_2 and related to the virtual machine as a migration target to a temporary memory area included in the third memory device 110_3 .
[0134] The data migration controller 140 may also migrate the additional data stored in the second memory device 110_2 and moved from the first local memory 210_1 to a temporary memory area included in the third memory device 110_3 .
[0135] Data stored using the local memory 210 and the memory area of the data storage device 100 and related to the virtual machine as a migration target may be migrated in the data storage device 100 .
[0136] When data migration is performed by the data migration controller 140, an operation according to the virtual machine as a migration target may be performed by the first host device 200_1. Data related to the virtual machine as a migration target may be updated by the first host device 200_1.
[0137] The controller 120 may track dirty pages when performing data migration.
[0138] When the data migration controller 140 completes the data migration, the controller 120 may control the data migration controller 140 so that data updated during the corresponding period may be additionally migrated.
[0139] When a period required to additionally migrate the data is equal to or less than a preset threshold (or threshold period), the controller 120 may migrate the updated data in a state in which the first host device 200_1 stops an operation according to a virtual machine as a migration target.
[0140] When the migration of data related to the virtual machine as the migration target in the data storage device 100 is completed, the controller 120 may transmit a signal notifying the first host device 200_1 that the data migration has been completed.
[0141] exist Fig.10 In the example shown, the controller 120 may send a migration completion signal to the first host device 200_1 (⑧”).
[0142] The first host device 200_1 may transmit a migration completion signal or a signal corresponding to the migration completion signal to the host management server 300 (⑨”). Alternatively, the first host device 200_1 may transmit a corresponding signal to the second host device 200_2.
[0143] When the host management server 300 receives the migration completion signal from the first host device 200_1, the host management server 300 may transmit the migration completion signal or a signal corresponding to the migration completion signal to the second host device 200_2 (⑩”).
[0144] The second host device 200_2 may send an allocation request for a memory area storing data related to the virtual machine as a migration target to the controller 120 of the data storage device 100.
[0145] A temporary memory area storing data related to a virtual machine as a migration target may be allocated to the second host device 200_2 by the controller 120 of the data storage device 100 .
[0146] The second host device 200_2 may resume operations according to the migrated virtual machine.
[0147] In an example, data moved from the first local memory 210_1 among the data stored in the temporary memory area may be moved (copied) to the second local memory 210_2 adjacent to the second host device 200_2.
[0148] When the first host device 200_1 performs an operation according to the migrated virtual machine, data stored in the first local memory 210_1 may be moved to the second local memory 210_2. When the first host device 200_1 performs an operation according to the migrated virtual machine, data stored in the data storage device 100 may be moved to a memory area in the data storage device 100 allocated to the second host device 200_2.
[0149] Since data related to the virtual machine as a migration target and stored in the local memory 210 and data related to the virtual machine as a migration target and stored in the data storage device 100 can be migrated in the data storage device 100, communication delay caused by data migration can be prevented or reduced.
[0150] Since data updated when performing data migration and performing additional data movement in the data storage device 100 is tracked, data communication between the data storage device 100 and the host device 200 according to data migration while performing migration of the virtual machine can be further reduced.
[0151] Embodiments of the disclosed technology may provide a measure capable of managing data migration according to migration of a virtual machine while minimizing data movement in the data storage device 100 .
[0152] Figures 11 to 15 is a diagram illustrating an example of another method in which the data storage device 100 and the host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0153] As an example, Fig.11 A case where the first host device 200_1 and the second host device 200_2 perform operations according to a virtual machine while sharing the data storage device 100 is shown. The first host device 200_1 may use a first local storage 210_1 adjacent to the first host device 200_1. The second host device 200_2 may use a second local storage 210_2 adjacent to the second host device 200_2. The first host device 200_1 and the second host device 200_2 may operate under the control of the host management server 300.
[0154] As an example, Fig.11 A state is shown in which the first host device 200_1 performs operations according to at least two virtual machines and the second host device 200_2 does not perform operations according to the virtual machines. In the example, a case in which multiple virtual machines are running in the first host device 200_1 and no virtual machine is running in the second host device 200_2 is shown.
[0155] The first host device 200_1 may use some of the memory areas of the first local memory 210_1 and the memory areas of the data storage device 100. For example, the first host device 200_1 may be allocated and use the memory areas of the first memory device 110_1 included in the data storage device 100 and the memory areas of the second memory device 110_2 included in the data storage device 100. It may be considered that the virtual machine running in the first host device 200_1 is allocated with the memory area.
[0156] The second host device 200_2 may be in a state where a memory area of the memory device 110 included in the data storage device 100 is not allocated. Alternatively, the second host device 200_2 may be in a state where a memory area of the memory device 110 included in the data storage device 100 is allocated.
[0157] An operation of migrating a virtual machine running in the first host device 200_1 to the second host device 200_2 may be performed under the control of the host management server 300 .
[0158] For example, the host management server 300 may instruct the first host device 200_1 to migrate the virtual machine to the second host device 200_2 (①). Moreover, the host management server 300 may send an instruction for migrating the virtual machine to the second host device 200_2 (①). The first host device 200_1 and the second host device 200_2 may perform the operations required to migrate the virtual machine according to the migration instruction of the host management server 300.
[0159] For example, the first host device 200_1 may send a command or request regarding migration of a virtual machine to the data storage device 100. The second host device 200_2 may allocate resources for receiving the virtual machine. The second host device 200_2 may not send a separate request to the data storage device 100.
[0160] The first host device 200_1 may send an ownership change request (②) to the data storage device 100 requesting change of ownership information of a memory area allocated to the virtual machine to be migrated. The first host device 200_1 may stop the operation of the virtual machine as the migration target before sending the ownership change request.
[0161] The controller 120 of the data storage device 100 may manage ownership information of a memory area allocated to the host device 200 or a virtual machine running in the host device 200 .
[0162] For example, the data storage device 100 may include an auxiliary memory 150. The auxiliary memory 150 may be a volatile memory such as SRAM, DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, and GRAM, but is not limited thereto.
[0163] When a memory area is allocated according to an allocation request of the host device 200, the controller 120 may update ownership information of the corresponding memory area. The controller 120 may store and manage the ownership information of the memory area in the auxiliary memory 150.
[0164] Since the memory areas of the first memory device 110_1 and the second memory device 110_2 included in the data storage device 100 are allocated to the virtual machine running in the first host device 200_1, the ownership information of the corresponding memory areas may be stored as the first host device 200_1 or the virtual machine running in the first host device 200_1.
[0165] When receiving an ownership change request according to the migration of the virtual machine from the first host device 200_1, the controller 120 may change the ownership information of the memory area allocated to the virtual machine. The controller 120 may update the ownership information table stored in the secondary memory 150.
[0166] The controller 120 may change ownership information of a memory area allocated to a virtual machine to be migrated from the first host device 200_1 to the second host device 200_2 to which the virtual machine is to be migrated.
[0167] Alternatively, after responding to the ownership change request of the first host device 200_1, the controller 120 may change the ownership information of the memory area allocated to the virtual machine as the migration target.
[0168] exist Fig.12 In the illustrated example, upon receiving the ownership change request of the first host device 200_1, the controller 120 of the data storage device 100 may transmit an ownership change request acknowledgement (ACK) signal to the first host device 200_1 (③).
[0169] When preparation for changing the ownership of the corresponding memory area is completed in response to the ownership change request of the first host device 200_1 , the controller 120 may transmit an ownership change request confirmation signal to the first host device 200_1 .
[0170] As mentioned above Fig.11 In the described example, the first host device 200_1 may stop the operation of the virtual machine as the migration target before sending the ownership change request to the data storage device 100. Alternatively, when receiving the ownership change request confirmation signal from the controller 120 of the data storage device 100, the first host device 200_1 may stop the operation of the virtual machine as the migration target.
[0171] The controller 120 may send an ownership change request confirmation signal to the first host device 200_1, and may change the ownership information of the memory area allocated to the virtual machine as the migration target to the second host device 200_2 (④). In the example, there may be a time interval between the time point of sending the ownership change request confirmation signal and the time point of changing the ownership information.
[0172] The controller 120 may change the ownership of the memory region allocated to the virtual machine as the migration target in the ownership information table stored in the secondary memory 150 .
[0173] Since the controller 120 changes the ownership of the memory area, data related to the virtual machine as the migration target may not be actually moved in the data storage device 100, and the ownership of the memory area storing the corresponding data may be transferred to the second host device 200_2 to which the virtual machine migrates.
[0174] Data transmission according to virtual machine migration can be performed without actual data movement. When migrating virtual machines, delay time can be reduced, and bandwidth between the data storage device 100 and the host device 200 will not be used due to data movement.
[0175] Reference Fig.13 and 14 A method of changing ownership of a memory region is described. According to an allocation request of the first host device 200_1, a memory region (or memory segment) included in the data storage device 100 may be allocated to the first host device 200_1. As an example, Fig.13 and Fig.14 A case where the size of one memory area is 128 MB is shown, but the size of the memory area according to an embodiment of the disclosed technology is not limited thereto.
[0176] exist Fig.13 In the example shown, the first host device 200_1 may send an allocation request for two memory regions (segments) to the data storage device 100, as shown in (1). In response to the allocation request of the first host device 200_1, the data storage device 100 may allocate memory regions (segments) 0 and 1 to the first host device 200_1, as shown in (2).
[0177] The controller 120 of the data storage device 100 may update ownership information of the memory area 0 and the memory area 1 among the memory areas included in the data storage device 100 to the first host device 200_1 .
[0178] When receiving the ownership change request from the first host device 200_1 , the controller 120 may change the ownership of the memory area allocated to the first host device 200_1 .
[0179] exist Fig.14 In the example shown, the first host device 200_1 may request the data storage device 100 to change ownership information of the memory area (segment) 0 and the memory area (segment) 1 to the second host device 200_2 as shown in (3).
[0180] When receiving the ownership change request from the first host device 200_1 , the controller 120 of the data storage device 100 may change the ownership information of the memory area 0 and the memory area 1 in the ownership information table stored in the auxiliary memory 150 to the second host device 200_2 .
[0181] The data stored in the memory area 0 and the memory area 1 are not moved, and the ownership information of the memory area 0 and the memory area 1 may be changed.
[0182] The controller 120 may transmit a signal notifying that the memory area 0 and the memory area 1 are allocated to the second host device 200_2 to the second host device 200_2 as shown in (4).
[0183] According to the allocation signal received from the controller 120 , the second host device 200_2 may check that the memory area 0 and the memory area 1 are allocated to the second host device 200_2 and may perform an operation according to the virtual machine using the corresponding memory areas.
[0184] In this way, data related to the virtual machine to be migrated may not be moved outside or inside the data storage device 100, and the second host device 200_2 to which the virtual machine is to be migrated may use the data.
[0185] In some embodiments, the first host device 200_1 may notify the second host device 200_2 of the completion of the ownership information change so that the second host device 200_2 can use the memory region whose ownership has been changed.
[0186] exist Fig.15 In the example shown, when the ownership change of the memory area allocated to the virtual machine as the migration target is completed in response to the ownership change request of the first host device 200_1, the controller 120 of the data storage device 100 may send a change completion (or end) message to the first host device 200_1 (⑤). In some embodiments, in the case where the first host device 200_1 stops the operation of the virtual machine as the migration target before sending the ownership change request to the data storage device 100, the controller 120 of the data storage device 100 may send an ownership change request confirmation signal corresponding to the ownership change request to the first host device 200_1 as a change completion message. Depending on the time point when the first host device 200_1 stops the operation of the virtual machine as the migration target, the number and type of signals or messages sent by the controller 120 of the data storage device 100 to the first host device 200_1 may be different.
[0187] When receiving the change completion message, the first host device 200_1 may send a change completion (or end) notification to the host management server 300 (⑥).
[0188] The host management server 300 having received the change completion notification may transmit the change completion notification to the second host device 200_2. A migration instruction indicating the start of migration of the virtual machine and a change completion notification indicating the end of migration of the virtual machine may be transmitted by the host management server 300 to the second host device 200_2.
[0189] Alternatively, the first host device 200_1 having received the change completion message may send a change completion (or end) notification to the second host device 200_2 (⑦).
[0190] The second host device 200_2 that has received the change completion notification from the outside may start an operation according to the migrated virtual machine using the memory area of the data storage device 100 whose ownership has been changed.
[0191] Alternatively, the controller 120 of the data storage device 100 may transmit a change completion message to the second host device 200_2. The controller 120 may transmit a change completion message to the first host device 200_1 and transmit a change completion message to the second host device 200_2.
[0192] The controller 120 may provide the second host device 200_2 with information about the memory region whose ownership has been changed to the second host device 200_2.
[0193] When data related to the virtual machine as a migration target is not moved in the data storage device 100 , the second host device 200_2 to which the virtual machine is to be migrated may access the data.
[0194] A second virtual machine corresponding to the first virtual machine running in the first host device 200_1 may be run in the second host device 200_2 without moving data related to the virtual machine as a migration target.
[0195] In some embodiments, additional data related to the virtual machine as a migration target may be stored in the first local memory 210_1 adjacent to the first host device 200_1.
[0196] The additional data stored in the first local memory 210_1 may be data frequently used by the virtual machine, for example. The additional data may be data related to the virtual machine and having a higher frequency of use than the data stored in the data storage device 100 .
[0197] According to the migration of the virtual machine, the additional data stored in the first local memory 210_1 may be transmitted from the first host device 200_1 to the second host device 200_2.
[0198] The additional data may be transmitted after the migration of the virtual machine is completed, or may be transmitted after the operation of the virtual machine as the migration target in the first host device 200_1 is stopped.
[0199] The additional data may be transmitted through a network between the first host device 200_1 and the second host device 200_2 and may be stored in the second local memory 210_2 adjacent to the second host device 200_2.
[0200] In some embodiments, the additional data stored in the first local memory 210_1 may be provided to the second host device 200_2 through the data storage device 100 .
[0201] Figures 16 to 18 is a diagram illustrating an example of another method in which the data storage device 100 and the host system perform virtual machine migration based on an embodiment of the disclosed technology.
[0202] exist Fig.16 In the example shown, according to the migration instruction of the host management server 300, the first host device 200_1 may send an ownership change request to the data storage device 100 (②').
[0203] The first host device 200_1 may perform an operation of clearing additional data stored in the first local memory 210_1 and related to the virtual machine as a migration target to the data storage device 100 (③′).
[0204] For example, the first host device 200_1 may start clearing the additional data to the data storage device 100 before sending the ownership change request. Alternatively, the first host device 200_1 may start clearing the additional data to the data storage device 100 simultaneously with or after sending the ownership change request.
[0205] The first host device 200_1 may stop the operation of the migration target virtual machine before starting the operation of clearing the additional data to the data storage device 100. Alternatively, regardless of whether the additional data is sent, the first host device 200_1 may stop the operation of the migration target virtual machine before sending the ownership change request.
[0206] The additional data may be stored in a memory area allocated to the virtual machine as the migration target among the memory areas of the data storage device 100 .
[0207] In a state where the additional data is stored in the memory area included in the data storage device 100 , ownership information of the memory area allocated to the virtual machine as the migration target may be changed.
[0208] Alternatively, after the first host device 200_1 receives the ownership change request confirmation signal from the data storage device 100 , the additional data may be cleared to the data storage device 100 .
[0209] exist Fig.17In the example shown, in response to the ownership change request sent by the first host device 200_1 to the data storage device 100, an ownership change request acknowledgement (ACK) signal may be sent from the data storage device 100 to the first host device 200_1 (③”).
[0210] After receiving the ownership change request confirmation signal, the first host device 200_1 may start an operation of clearing additional data stored in the first local memory 210_1 and related to the virtual machine as a migration target to the data storage device 100 (④”).
[0211] When receiving the ownership change request confirmation signal, the first host device 200_1 may stop the operation of the virtual machine as the migration target and clear the additional data stored in the first local memory 210_1 to the data storage device 100 .
[0212] Before ownership information of a memory area allocated to a virtual machine as a migration target in the data storage device 100 is changed, additional data may be stored in the corresponding memory area.
[0213] After the additional data is stored in the memory region allocated to the virtual machine as the migration target, the controller 120 may change ownership information of the corresponding memory region.
[0214] The ownership of the corresponding memory area may be changed from the first host device 200_1 to the second host device 200_2.
[0215] After the ownership of the corresponding memory area is changed, the additional data may remain stored in the data storage device 100 or may be moved to the second local memory 210_2 adjacent to the second host device 200_2.
[0216] exist Fig.18 In the illustrated example, after additional data is stored in a memory region allocated to a virtual machine as a migration target, ownership of the corresponding memory region may be changed from the first host device 200_1 to the second host device 200_2 (⑤”).
[0217] The controller 120 of the data storage device 100 may transmit a change completion (or end) message to the first host device 200_1 (⑥”). In an example, the controller 120 may also transmit a change completion message to the second host device 200_2.
[0218] When receiving the change completion message, the first host device 200_1 may send a change completion (or end) notification to the host management server 300 (⑦”). The first host device 200_1 may send a change completion (or end) notification to the second host device 200_2 (⑧”).
[0219] The second host device 200_2 may start the operation of the migrated virtual machine in response to the received change completion notification. The second host device 200_2 may start the operation of the virtual machine using the memory area included in the data storage device 100 and whose ownership has been changed.
[0220] The second host device 200_2 may start the operation of the virtual machine after moving the additional data stored in the memory area of the data storage device 100 to the second local memory 210_2 before starting the operation of the migrated virtual machine (⑨”).
[0221] The additional data may be moved to the second local memory 210_2 according to a request of the second host device 200_2 or may be moved to the second local memory 210_2 by the controller 120 of the data storage device 100 .
[0222] The additional data stored in the first local memory 210_1 and moved to the memory area of the data storage device 100 may be moved to the second local memory 210_2 as is. Alternatively, part of the additional data and part of the data stored in the memory area whose ownership has been changed may be moved to the second local memory 210_2.
[0223] The additional data may be transmitted to the second host device 200_2 according to the migration of the virtual machine without passing through the network between the first host device 200_1 and the second host device 200_2.
[0224] It can be clearly seen from the above description that according to an embodiment of the disclosed technology, during the process of migrating a virtual machine running in a first host device 200_1 to a second host device 200_2, data related to the virtual machine as the migration target can be provided to the second host device 200_2 without moving data between the host device 200 and the data storage device 100.
[0225] In addition, since the second host device 200_2 to which the virtual machine is migrated by changing the ownership of the memory area included in the data storage device 100 can access the corresponding data, even if the data in the data storage device 100 is not moved, data related to the virtual machine as the migration target can be provided to the second host device 200_2.
[0226] In some embodiments, since additional data stored in the first local memory 210_1 and related to the virtual machine as the migration target can also be moved to the data storage device 100 and provided to the second host device 200_2, the virtual machine can be moved from the first host device 200_1 to the second host device 200_2 with almost no use of the network between the first host device 200_1 and the second host device 200_2.
[0227] According to an embodiment of the disclosed technology, by reducing the delay caused by data movement when migrating a virtual machine, the migration efficiency of the virtual machine can be improved, and the operation performance of multiple host devices 200 on the virtual machine can be improved.
[0228] The above embodiment is briefly described below.
[0229] According to an embodiment of the present disclosure, a data storage device may include: at least one memory device, including multiple memory areas; and a controller, configured to, when a virtual machine migration command is received from a first virtual machine among multiple virtual machines running in a first host device among multiple host devices, set at least one memory area among the multiple memory areas except a first memory area allocated to the first virtual machine as a temporary memory area, and migrate data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area.
[0230] When migration of the data is completed, the controller may allocate the temporary memory area to a second virtual machine running in a second host device different from the first host device.
[0231] When migration of the data is completed, the controller may send a migration completion signal to the first host device.
[0232] After sending the migration completion signal, the controller may allocate the temporary memory region in response to an allocation request received from a second virtual machine running in the second host device.
[0233] The temporary memory area may be a memory area that is not allocated to a plurality of host devices.
[0234] The temporary memory area may be a portion of a memory area allocated to a second virtual machine running in a second host device different from the first host device.
[0235] The controller may track updates of the data corresponding to the virtual machine migration command by the first virtual machine running in the first host device when migrating the data.
[0236] When the migration of the data is completed, the controller may migrate the data updated by the first virtual machine running in the first host device to the temporary memory area.
[0237] When a time period required to migrate the updated data is equal to or less than a preset threshold period, the controller may migrate the data in a state where the first virtual machine running in the first host device stops controlling the data corresponding to the virtual machine migration command.
[0238] The data storage device may further include a data migration controller configured to operate under the control of the controller and perform a migration operation of the data.
[0239] The controller may receive an allocation request from at least one of the plurality of virtual machines running in each of the plurality of host devices, and, in response to the allocation request, may allocate at least one of the plurality of memory regions as a memory region corresponding to the at least one of the plurality of virtual machines.
[0240] The controller may receive, from the first host device, additional data stored in a local memory adjacent to the first host device and corresponding to the virtual machine migration command.
[0241] When the additional data is received, the controller may store the additional data in the first memory area and may migrate the additional data to the temporary memory area.
[0242] The controller may store additional data in the temporary memory area.
[0243] When migration of the data is complete, the additional data may be migrated to a local memory adjacent to a second host device that is different from the first host device.
[0244] A computing system according to an embodiment of the present disclosure may include: a first host device; a second host device; and a data storage device, configured to: when a virtual machine migration command is received from a first virtual machine running in the first host device, set at least one memory area other than a first memory area allocated to the first virtual machine as a temporary memory area, migrate data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area, and when the migration of the data is completed, allocate the temporary data area to a second virtual machine running in the second host device.
[0245] The data storage device may track updates of the data corresponding to the virtual machine migration command by the first virtual machine running in the first host device when migrating the data, and additionally migrate the updated data.
[0246] When the first host device receives the migration pre-completion signal from the data storage device, the first host device may stop the operation of the first virtual machine associated with the virtual machine migration command.
[0247] When receiving the migration completion signal from the data storage device, the first host device may transmit the migration completion signal to the outside of the data storage device.
[0248] The first host device may transmit data related to the first virtual machine, which is stored in a local memory of the first host device or adjacent to the first host device, to a second host device running a second virtual machine.
[0249] After the data storage device sends the migration completion signal, the second virtual machine running in the second host device may send an allocation request for the temporary memory area to the data storage device.
[0250] According to an embodiment of the present disclosure, a host system may include: a first host device; a second host device; and a host management server configured to manage the first host device and the second host device, wherein the first host device, upon receiving a virtual machine migration instruction from the host management server, sends a virtual machine migration command to a data storage device, and upon receiving a migration completion signal from the data storage device, transmits the migration completion signal to the host management server or the second host device, and wherein the second host device, upon receiving the migration completion signal from the host management server or the first host device, sends an allocation request for a memory area storing data related to the virtual machine to the data storage device.
[0251] According to an embodiment of the present disclosure, a data storage device may include: at least one memory device, including multiple memory areas; and a controller, connected to at least one host device and configured to control the at least one memory device, wherein, when a memory area allocation request is received from a first virtual machine among one or more virtual machines running in a first host device among the at least one host device, the controller allocates a first memory area among the multiple memory areas to the first virtual machine and updates ownership information of the first memory area, and wherein, when an ownership change request for the first memory area is received from the first virtual machine, the controller changes the ownership information of the first memory area and sends a change completion message to the first host device.
[0252] After receiving the ownership change request, the controller may generate an ownership change request confirmation signal corresponding to the ownership change request, and may transmit the ownership change request confirmation signal as a change completion message to the first host device.
[0253] After receiving the ownership change request, the controller may generate an ownership change request confirmation signal corresponding to the ownership change request, and may send the ownership change request confirmation signal to the first host device before sending the change completion message.
[0254] The controller may transmit at least one of a change completion message and information of the first memory region to a second host device that takes over ownership of the first memory region among the at least one host device in response to the ownership change request.
[0255] A computing system according to an embodiment of the present disclosure may include: a first host device; a second host device; and a data storage device, configured to manage ownership information of a memory area allocated to at least one of the first host device and the second host device, and when an ownership change request for a migration memory area allocated to the first virtual machine is received from a first virtual machine among one or more virtual machines running in the first host device, the ownership information of the migration memory area is changed from the first host device to the second host device.
[0256] When receiving a migration instruction for the first virtual machine from outside the data storage device, the first host device may stop the operation of the first virtual machine and may send an ownership change request to the data storage device.
[0257] When receiving an ownership change request confirmation signal corresponding to the ownership change request from the data storage device, the first host device may stop the operation of the first virtual machine.
[0258] When the change of the ownership information of the migration memory area is completed, the first host device may receive a change completion message from the data storage device, and may send a change completion notification to the second host device.
[0259] When receiving the change completion notification, the second host device may start operation of a second virtual machine corresponding to the first virtual machine using the migration memory area.
[0260] Before sending the change completion notification, the first host device may send additional data related to the first virtual machine that is stored in a first local storage adjacent to the first host device to the second host device.
[0261] The second host device may store the additional data in a second local memory adjacent to the second host device.
[0262] Before changing the ownership information of the migration memory area, the first host device may store additional data related to the first virtual machine that is stored in a first local memory adjacent to the first host device in the migration memory area.
[0263] Prior to sending the ownership change request, the first host device may request the data storage device to store additional data in the migration memory area.
[0264] After changing the ownership information of the migration memory area, the data storage device may move at least a portion of the additional data to a second local memory adjacent to the second host device.
[0265] The data storage device may move a portion of data other than the moved portion of the additional data among the data stored in the migration memory area to the second local memory.
[0266] According to an embodiment of the present disclosure, a host system may include: a first host device; a second host device; and a host management server, which is configured to manage the first host device and the second host device, wherein, when a migration instruction for a virtual machine is received from the host management server, the first host device sends an ownership change request for a migration memory area assigned to a first virtual machine among at least one virtual machine running in the first host device to a data storage device, and when a change completion message is received from the data storage device, a change completion notification is sent to the host management server or the second host device, and wherein, when the change completion notification is received, the second host device uses the migration memory area to start operation of a second virtual machine corresponding to the first virtual machine.
[0267] When receiving the migration instruction, the first host device may stop the operation of the first virtual machine and may send an ownership change request to the data storage device.
[0268] When receiving an ownership change request confirmation signal corresponding to the ownership change request from the data storage device, the first host device may stop the operation of the first virtual machine.
[0269] Before sending the change completion notification, the first host device may send additional data related to the first virtual machine that is stored in a first local storage adjacent to the first host device to the second host device.
[0270] The second host device may store the additional data in a second local memory adjacent to the second host device.
[0271] Before changing the ownership information of the migration memory area, the first host device may store additional data related to the first virtual machine that is stored in a first local memory adjacent to the first host device in the migration memory area.
[0272] Prior to sending the ownership change request, the first host device may request the data storage device to store additional data in the migration memory area.
[0273] A controller according to an embodiment of the present disclosure may include an element configured to: allocate at least one of a plurality of memory regions included in at least one memory device according to a memory region allocation request for at least one virtual machine running in each of a plurality of host devices, manage ownership information of the plurality of memory regions, and, when an ownership change request is received from a first virtual machine running in a first host device, change ownership information of a migration memory region associated with the first virtual machine from the first host device to a second host device, and send a change completion message to the first host device.
[0274] After receiving the ownership change request, the controller may generate an ownership change request confirmation signal corresponding to the ownership change request, and may transmit the ownership change request confirmation signal as a change completion message to the first host device.
[0275] After receiving the ownership change request, the controller may generate an ownership change request confirmation signal corresponding to the ownership change request, and may send the ownership change request confirmation signal to the first host device before sending the change completion message.
[0276] The controller may transmit at least one of a change completion message and information of migrating the memory region to the second host device.
[0277] Although various embodiments of the disclosed technology have been described with specific details and varying details for illustrative purposes, it will be understood by those skilled in the art that various modifications, additions and substitutions may be made based on the contents disclosed or described in the disclosed technology without departing from the spirit and scope of the disclosed technology as defined in the appended claims. In addition, the embodiments may be combined to form additional embodiments.
Claims
1. A data storage device, comprising: at least one memory device including a plurality of memory regions; as well as A controller, when receiving a virtual machine migration command from a first virtual machine among a plurality of virtual machines running in a first host device among a plurality of host devices, sets at least one memory area among the plurality of memory areas except a first memory area allocated to the first virtual machine as a temporary memory area, and migrates data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area.
2. The data storage device according to claim 1, wherein: When migration of the data is completed, the controller allocates the temporary memory area to a second virtual machine running in a second host device different from the first host device.
3. The data storage device according to claim 2, wherein: When the migration of the data is completed, the controller sends a migration completion signal to the first host device.
4. The data storage device according to claim 3, wherein: After sending the migration completion signal, the controller allocates the temporary memory area in response to an allocation request received from a second virtual machine running in the second host device.
5. The data storage device according to claim 1, wherein: The temporary memory area is a memory area that is not allocated to the plurality of host devices, or the temporary memory area is a part of a memory area allocated to a second virtual machine running in a second host device different from the first host device.
6. The data storage device according to claim 1, wherein: The controller tracks updates of the data corresponding to the virtual machine migration command by the first virtual machine running in the first host device when migrating the data.
7. The data storage device according to claim 6, wherein: When migration of the data is completed, the controller migrates data updated by the first virtual machine running in the first host device to the temporary memory area.
8. The data storage device according to claim 7, wherein: When a period required to migrate the updated data is equal to or less than a preset threshold period, the controller migrates the data in a state where the first virtual machine running in the first host device stops controlling the data corresponding to the virtual machine migration command.
9. The data storage device according to claim 1, further comprising: A data migration controller operates under the control of the controller and performs the migration operation of the data.
10. The data storage device according to claim 1, wherein: The controller receives, from the first host device, additional data stored in a local memory adjacent to the first host device and corresponding to the virtual machine migration command.
11. The data storage device according to claim 10, wherein: When receiving the additional data, the controller stores the additional data in the first memory area and migrates the additional data to the temporary memory area.
12. The data storage device according to claim 10, wherein: When migration of the data is completed, the additional data is migrated to a local memory adjacent to a second host device different from the first host device.
13. A computing system comprising: a first host device; a second host device; as well as A data storage device, when receiving a virtual machine migration command from a first virtual machine running in the first host device, sets at least one memory area other than a first memory area allocated to the first virtual machine as a temporary memory area, migrates data stored in the first memory area and corresponding to the virtual machine migration command to the temporary memory area, and when the migration of the data is completed, allocates the temporary data area to a second virtual machine running in the second host device.
14. The computing system of claim 13, wherein: The data storage device tracks the update of the data corresponding to the virtual machine migration command by the first virtual machine running in the first host device when migrating the data.
15. The computing system of claim 13, wherein: When receiving a migration pre-completion signal from the data storage device, the first host device stops the operation of the first virtual machine associated with the virtual machine migration command.
16. The computing system of claim 13, wherein: When receiving a migration completion signal from the data storage device, the first host device transmits the migration completion signal to the outside of the data storage device.
17. A data storage device comprising: at least one memory device including a plurality of memory regions; as well as a controller coupled to at least one host device and controlling the at least one memory device, wherein, when a memory region allocation request is received from a first virtual machine among the one or more virtual machines running in a first host device among the at least one host device, the controller allocates a first memory region among the plurality of memory regions to the first virtual machine and updates ownership information of the first memory region, and When receiving an ownership change request for the first memory region from the first virtual machine, the controller changes the ownership information of the first memory region and sends a change completion message to the first host device.
18. The data storage device according to claim 17, wherein: After receiving the ownership change request, the controller generates an ownership change request confirmation signal corresponding to the ownership change request, and transmits the ownership change request confirmation signal as the change completion message to the first host device.
19. The data storage device according to claim 17, wherein: After receiving the ownership change request, the controller generates an ownership change request confirmation signal corresponding to the ownership change request, and transmits the ownership change request confirmation signal to the first host device before transmitting the change completion message.
20. The data storage device according to claim 17, wherein: The controller transmits at least one of the change completion message and the information of the first memory region to a second host device among the at least one host device that takes over ownership of the first memory region in response to the ownership change request.