KR101975058B1 - System and method for data availability support - Google Patents
System and method for data availability support Download PDFInfo
- Publication number
- KR101975058B1 KR101975058B1 KR1020160014658A KR20160014658A KR101975058B1 KR 101975058 B1 KR101975058 B1 KR 101975058B1 KR 1020160014658 A KR1020160014658 A KR 1020160014658A KR 20160014658 A KR20160014658 A KR 20160014658A KR 101975058 B1 KR101975058 B1 KR 101975058B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- data
- update data
- virtualization server
- bucket
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Abstract
It is an object of the present invention to provide a data availability support system and method capable of managing the log of update data by utilizing a local disk in order to support data availability in a virtualization server based on a random access memory. To this end, the data availability support system according to the present invention comprises: a virtualization server in which a virtual machine is executed; And a distributed file system connected to the virtualization server via a network and storing a virtual disk file, wherein the virtualization server uses a random access memory as a host side cache for input / output processing, As an update data log file on the local disk of the virtualization server.
Description
The present invention relates to a system and method for supporting data availability based on a client of a distributed file system.
The host server (virtualization server) supporting the virtual desktop service operates a plurality of virtual machines, and each virtual machine has a virtual disk on which the operating system of the desktop is installed.
The virtual disk file is permanently stored in a storage area network (SAN) storage or network-based distributed file system.
I / O requests transferred from the virtual desktop to the virtual disk file through the hypervisor have a strong random input / output characteristic. Therefore, an IO blending phenomenon occurs in which the input / output requests for a plurality of files are mixed with a storage device in which data is physically stored. The above phenomenon gives a considerable load to storage devices such as a hard disk drive, which lowers the input / output performance of the storage device.
In order to solve such a problem of I / O performance degradation, techniques for storing frequently accessed data or small random write data by providing a cache space in a virtualization server are widely used.
In this case, an expensive non-volatile memory (NVRAM) or a NAND flash-based high-speed input / output device (SSD) is used as a host side cache.
In this regard, Korean Patent Laid-Open Publication No. 2011-0041087 (entitled "Server Virtualization Device") discloses a server virtualization device that improves performance by combining hardware virtualization support technology with paravirtualization technology.
An embodiment of the present invention is to provide a data availability support system and method capable of managing the log of update data by utilizing a local disk in order to support data availability in a virtualization server based on a random access memory.
It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.
As a technical means for achieving the above object, a data availability support system according to the present invention includes a virtualization server in which a virtual machine is executed; And a distributed file system connected to the virtualization server via a network and storing a virtual disk file, wherein the virtualization server uses a random access memory as a host side cache for input / output processing, As an update data log file on the local disk of the virtualization server.
The random access memory of the virtualization server operating the virtual machine may be used as a host side cache. The local disk of the virtualization server may be used as a log storage, The stored update data can be stored and managed in a synchronized manner in an independent update data log file based on the offset.
Therefore, according to the present invention, the availability of data can be ensured even in a failure situation in which update data stored in the cache space can not be stored in the network-based persistent storage space, for example, a power failure or the like.
For example, in the above-described failure situation, when the virtualization server is restarted, data stored in the cache space is lost, but data stored in the update data log file of the local disk can be utilized, Availability can be assured.
Further, for efficient operation of the log storage, in the present invention, the update data log file can be created, stored and deleted as a file independent of the bucket identifier managed in the cache space. Further, the present invention can set a limit on the size of the update data log file so that the update data log file can be synchronized with the update data of the cache space. Thus, the space for storing the update data log file can be efficiently managed.
1 is a block diagram of an embodiment of a data availability support system according to the present invention;
BACKGROUND OF THE INVENTION Field of the Invention [0001] The present invention relates to a data availability support system, and more particularly,
3 is a diagram illustrating an asynchronous input / output processing method of a distributed file system when data availability is not supported;
FIG. 4A is a diagram illustrating an asynchronous input / output processing method based on the update log in the data availability support system according to the present invention; FIG.
FIG. 4B is an exemplary view illustrating a cache data interworking update log processing method in a data availability support system according to the present invention; FIG.
FIG. 5A is a diagram illustrating a state of an update data log file and a virtual disk file at the time of failure of a virtualization server applied to a data availability support system according to the present invention; FIG.
FIG. 5B is a diagram illustrating a state in which failure data is recovered based on a renewal log after a virtualization server applied to a data availability support system according to the present invention is restarted. FIG.
FIG. 6A is a flowchart illustrating a method of recovering volume data in a method of recovering failure data based on a renewal log after a virtualization server applied to a data availability support system according to the present invention is restarted. FIG.
FIG. 6B is a flowchart illustrating a method of performing a recovery thread among methods of recovering failure data based on a renewal log after a virtualization server applied to a data availability support system according to the present invention is restarted. FIG.
BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, advantages and features of the present invention and methods of achieving them will be apparent from the following detailed description of embodiments thereof taken in conjunction with the accompanying drawings.
The present invention may, however, be embodied in many different forms and should not be construed as being limited to the exemplary embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, And advantages of the present invention are defined by the description of the claims.
It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. &Quot; comprises " and / or " comprising ", as used herein, unless the recited component, step, operation, and / Or added.
1 is a block diagram of a data availability support system according to an embodiment of the present invention.
The present invention utilizes the
That is, the present invention can utilize the
1, a data availability support system according to the present invention is connected to a
The
Also, the
In this case, based on the offset of the file unit, update data within a certain range can be managed as a single update data log file.
In other words, the present invention provides a system and method for managing the log of update data dynamically using the
Hereinafter, a specific method of supporting data availability for the
The data availability support system according to the present invention uses the
That is, as shown in FIG. 1, the present invention includes a
The
The network-based
The file I / O for the
The
The important thing in virtual desktop I / O performance is response time. When a
In order to solve this problem, the present invention can simultaneously transmit a write request for a file in the
2 is a diagram illustrating a configuration of a host side cache and a local disk applied to a data availability support system according to the present invention.
The
The reason why the
The
The
The
The
The bucket identifier is a value indicating how many buckets a file offset is divided by bucket. The reason for using this is to retrieve the update data log file from the
When a plurality of volumes are mounted on the
The file
The data update log file is created and opened in synchronous write mode (O_DIRECT) when the first write request for that bucket arrives, and is terminated and deleted when the file is closed.
Since the I / O to the data update log file is synchronized with the write request to the virtual disk file, opening / closing the file each time is an overhead. Thus, the
3 is an exemplary view showing an asynchronous input / output processing method of a distributed file system when data availability is not supported. That is, FIG. 3 is an exemplary view showing an asynchronous input / output processing method in the distributed file system when the local disk is not used in FIG.
When the data in the
Since the
4A is a diagram illustrating an asynchronous input / output processing method based on the update log in the data availability support system according to the present invention. 4A shows an update data log
When the data of the
In this case, unlike the method shown in FIG. 3, when the bucket identifier is determined by the file offset, the update data log file having the bucket identifier as its name is searched through the
The log entry is an input / output unit of the update data log file, and is composed of a header and data.
The header comprises a starting sector number in the bucket of the data to be stored and the number of sectors corresponding to the data size.
When the storage of the updated data log file is completed, a process of allocating a memory buffer and storing the data requested to be written is performed.
FIG. 4B is a diagram illustrating an example of a cache data update log processing method in a data availability support system according to the present invention. In FIG. 4B,
If data in
The update data is destaged to the distributed
Therefore, since the update data being stored in the corresponding update data log file is no longer needed, the size of the update data log file is managed to be truncated to zero.
The data of the bucket entry of the
Due to the nature of the update data log
In order to prevent this, the present invention sets a threshold value to the size of the update data log
FIG. 5A is a diagram illustrating states of update data log files and virtual disk files at the time of failure of a virtualization server applied to the data availability support system according to the present invention. FIG.
For example, in FIG. 4B, the data of
FIG. 5B is a diagram illustrating a state in which failure data is recovered based on the update log after the virtualization server applied to the data availability support system according to the present invention is restarted. FIG.
An update data log file corresponding to the
The recovery update data stored in the
1 to 5B according to the embodiment of the present invention may be implemented in hardware such as software, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit) Roles can be performed.
However, 'components' are not meant to be limited to software or hardware, and each component may be configured to reside on an addressable storage medium and configured to play one or more processors.
Thus, by way of example, an element may comprise components such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, Routines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
The components and functions provided within those components may be combined into a smaller number of components or further separated into additional components.
Hereinafter, a data availability support method in a data availability support system according to an embodiment of the present invention will be described with reference to FIGS. 6A and 6B.
FIG. 6A is a flowchart illustrating a method of recovering volume data from a method of recovering failure data based on a renewal log after a virtualization server applied to a data availability support system according to the present invention is restarted. FIG. FIG. 2 is a flowchart illustrating a method of performing a recovery thread among methods of recovering failure data based on a renewal log after a virtualization server applied to a system for supporting availability is restarted. FIG.
In the process of recovering the volume data, when the
6A, the distributed
When the recovery file list is completed, the distributed
In the process of executing the recovery thread, as shown in FIG. 6B, after the file inode number is obtained from the recovery request queue, the file is requested to be opened. File entry and bucket entry are created in the
Next, an update data log file list is created from the entries under the file inode number directory 602 (S581). Only a file whose size is greater than zero is read from the beginning of the file to the end of the log entry, and a write request is sent to the
When the writing process to the
Closure is requested for files that have been restored. Accordingly, all of the recovery data stored in the
In the above description, steps S571 to S583 may be further divided into additional steps or combined into fewer steps, according to an embodiment of the present invention. Also, some of the steps may be omitted as necessary, and the order between the steps may be changed. In addition, the contents already described with respect to the data availability support system in Figs. 1 to 5B apply to the data availability support method in Figs. 6A and 6B even if other contents are omitted.
Hereinafter, the present invention described above will be briefly summarized.
The present invention utilizes the update data log file existing in the
That is, the present invention can manage the update data log using the
The random access memory (RAM) is configured as a local cache space in the
Particularly, in the present invention, the
Therefore, the present invention can efficiently manage the log storage, and even if a server failure occurs due to power failure or the like, it can be stored in the cache space to guarantee availability of lost data.
The method for supporting data availability in a conversation data availability support system according to an embodiment of the present invention may also be implemented in the form of a computer program stored in a medium executed by a computer or a recording medium including instructions executable by the computer . Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.
While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.
It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.
100: Virtualization Server 200: Virtual Machine
210: virtual disk 300: hypervisor
400: Virtual Server File System 410: Client File System
420: local file system 500: random access memory
510: Host side cache 600: Local disk
610: Log Store 700: Distributed File System
710: Logical volume
Claims (10)
And a distributed file system connected to the virtualization server via a network and storing a virtual disk file,
The virtualization server uses a random access memory as a host side cache for input / output processing,
Wherein the virtualization server stores update data stored in the random access memory as an update data log file on a local disk of the virtualization server,
The distributed file system, when a failure occurs in the virtualization server, stops input / output requests to the logical volume, converts the entries in the volume name directory of the log storage of the local disk into a file inode number, Lt; / RTI >
After the recovery file list is completed, a recovery thread for parallel processing is created. After waiting for the execution of all the recovery threads to be terminated, the volume data recovery is terminated by canceling the interruption of the I / O request to the volume Data availability support system.
When the data corresponding to a certain sector of the virtual disk in the virtual machine is updated, the updated data is transferred to the host side cache through the virtualization server file system included in the hypervisor supporting virtualization, Is stored on the memory buffer,
Wherein the updated update data is destaged in a bucket-by-virtual disk file of the distributed file system as the host side cache is driven in a write-back mode.
Wherein the virtual disk file transmitted and received between the distributed file system and the virtualization server is defined as a bucket for each predetermined size unit based on an offset and manages update data stored in the host side cache.
Wherein the file entry of the host side cache includes a bucket entry for managing file meta information and bucket-based data, and is generated each time the virtual disk file is opened.
When the data corresponding to a certain sector of the virtual disk in the virtual machine is updated, the updated data is transferred to the host side cache through the virtualization server file system included in the hypervisor supporting virtualization,
Retrieves an update data log file having a bucket identifier by name through the local disk, and then stores the log entry in the synchronous write mode on the local disk.
Wherein the updated data log file stored in the local disk is destaged to the distributed file system and the data of the corresponding bucket is managed to be deleted from the memory when the destaging is completed.
Wherein the update data log file has a limit set for the size,
Wherein de-staging is forcefully performed for the bucket when the size of the update data log file exceeds the limit.
When a failure occurs in the virtualization server, an update data log file corresponding to a bucket in which de-staging has not been completed exists in the local disk,
The update data log file corresponding to the bucket is opened as the failure is cleared, and the update data stored in the update data log file is stored in the host side cache,
Wherein the update data stored in the host side cache is destaged to the distributed file system and the update data log file is deleted from the log storage of the local disk as the destage is completed.
As the recovery thread is executed, a file entry and a bucket entry are created in the host side cache as the file inode number is obtained from the recovery request queue and file opening is requested, and updates from the entries under the file inode number name directory A list of data log files is created,
The update data log file is deleted when the write processing to the host side cache is completed for each update data log file included in the update data log file list, and all the recovery data stored in the host side cache is transferred to the distributed file system Wherein the file inode number directory is deleted from the log store and the recovery thread is terminated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160014658A KR101975058B1 (en) | 2016-02-05 | 2016-02-05 | System and method for data availability support |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160014658A KR101975058B1 (en) | 2016-02-05 | 2016-02-05 | System and method for data availability support |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170093367A KR20170093367A (en) | 2017-08-16 |
KR101975058B1 true KR101975058B1 (en) | 2019-05-03 |
Family
ID=59752388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160014658A KR101975058B1 (en) | 2016-02-05 | 2016-02-05 | System and method for data availability support |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101975058B1 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101077908B1 (en) * | 2009-10-15 | 2011-10-31 | 성균관대학교산학협력단 | Apparatus for server virtualization |
US9081686B2 (en) * | 2012-11-19 | 2015-07-14 | Vmware, Inc. | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
-
2016
- 2016-02-05 KR KR1020160014658A patent/KR101975058B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20170093367A (en) | 2017-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10834224B2 (en) | Transaction log acceleration | |
US9430161B2 (en) | Storage control device and control method | |
US10073656B2 (en) | Systems and methods for storage virtualization | |
US9547591B1 (en) | System and method for cache management | |
US9507732B1 (en) | System and method for cache management | |
US9697130B2 (en) | Systems and methods for storage service automation | |
US9811276B1 (en) | Archiving memory in memory centric architecture | |
US9489389B2 (en) | System and method for maintaining cache coherency | |
US10303499B2 (en) | Application aware graph driver | |
US9959074B1 (en) | Asynchronous in-memory data backup system | |
US11720447B2 (en) | Application high availability via application transparent battery-backed replication of persistent data | |
US9665496B2 (en) | Non-volatile memory write mechanism | |
WO2019061352A1 (en) | Data loading method and device | |
US11314639B2 (en) | Protecting against data loss during garbage collection | |
US10877848B2 (en) | Processing I/O operations in parallel while maintaining read/write consistency using range and priority queues in a data protection system | |
US20180052627A1 (en) | Restorable memory allocator | |
US20090198883A1 (en) | Data copy management for faster reads | |
CN107153512B (en) | Data migration method and device | |
US11599460B2 (en) | System and method for lockless reading of metadata pages | |
US10067843B1 (en) | Synchronizing control nodes and a recovery from a failure of a primary control node of a storage system | |
US20160077747A1 (en) | Efficient combination of storage devices for maintaining metadata | |
KR101975058B1 (en) | System and method for data availability support | |
TWI564803B (en) | Systems and methods for storage virtualization | |
US20230010516A1 (en) | Input/output (i/o) quiescing for sequential ordering of operations in a write-ahead-log (wal)-based storage system | |
US11960450B2 (en) | Enhancing efficiency of segment cleaning for a log-structured file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |