KR102067440B1 - Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU - Google Patents

Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU Download PDF

Info

Publication number
KR102067440B1
KR102067440B1 KR1020180080556A KR20180080556A KR102067440B1 KR 102067440 B1 KR102067440 B1 KR 102067440B1 KR 1020180080556 A KR1020180080556 A KR 1020180080556A KR 20180080556 A KR20180080556 A KR 20180080556A KR 102067440 B1 KR102067440 B1 KR 102067440B1
Authority
KR
South Korea
Prior art keywords
data
internal
parity
gpu
virtual machine
Prior art date
Application number
KR1020180080556A
Other languages
Korean (ko)
Inventor
김덕환
송태건
Original Assignee
인하대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인하대학교 산학협력단 filed Critical 인하대학교 산학협력단
Priority to KR1020180080556A priority Critical patent/KR102067440B1/en
Application granted granted Critical
Publication of KR102067440B1 publication Critical patent/KR102067440B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Disclosed are a method and an apparatus for a hierarchical RAID applied with erasure code acceleration in a virtualization GPU environment. The method for a hierarchical RAID applied with erasure code acceleration in a virtualization GPU environment of the present invention comprises the steps of: allowing a master virtual machine to divide input data into data chunks; generating an external parity disk in a host from the input data; allowing a GPU kernel to calculate external parity data to transfer the same to a CPU memory; allowing the master virtual machine to store the external parity disk and the external parity data in an external parity node; generating an internal parity disk in an internal data node; allowing a slave virtual machine to calculate internal parity data to transfer the same to a GPU memory from the CPU memory; allowing the GPU kernel to call a multi-GPU thread in order to generate internal parity data in parallel; and allowing the slave virtual machine to store the internal parity data and the internal parity disk in the internal data node.

Description

가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법 및 장치{Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU}Method and Apparatus for Hierarchical RAID with Eraser Code Acceleration in Virtualized GPU Environments {Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU}

본 발명은 계층 레이드 방식을 적용한 데이터 손실복구 방법 및 장치에 관한 것이다. 더욱 상세하게는 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법 및 장치에 관한 것이다. The present invention relates to a data loss recovery method and apparatus applying the hierarchical RAID method. More specifically, the present invention relates to a layered method and apparatus to which erasure code acceleration is applied in a virtualized GPU environment.

클라우드 스토리지 시스템에서, 이레이져 코드는 패리티 디스크(parity disk)를 생성하거나 손실된(failed) 데이터 디스크를 복구하기 위해서 사용된다. 이러한 손실 문제들에 대처하기 위해, 스토리지 시스템들은 이레이져 코드를 필요로 한다. 인코딩 스케줄러(encoding scheduler)는 패리티 디스크를 생성하는 반면, 디코딩 스케줄러(decoding scheduler)는 여분 패리티 디스크(redundant parity disks)를 사용하여 손실된 데이터 디스크를 복구한다. 패리티 디스크는 RAID 1와 같은 중복 데이터 디스크(replicated data disk)와 비교하여 더 적은 스토리지 공간을 차지한다. 그러나, 이레이져 코드는 많은 XOR 연산을 수행해야 하며, 이는 인코딩 및 디코딩 이레이져 코드들이 CPU를 장시간 점유하여 데이터 병목 현상을 유발할 수 있기 때문에 쓰기 오버헤드를 증가시킬 수 있다.In cloud storage systems, erasure code is used to create a parity disk or to recover a lost data disk. To cope with these loss problems, storage systems require erasure code. The encoding scheduler creates parity disks, while the decoding scheduler uses redundant parity disks to recover lost data disks. Parity disks take up less storage space compared to replicated data disks such as RAID 1. However, the erasure code must perform many XOR operations, which can increase write overhead because encoding and decoding erasure codes can occupy the CPU for a long time and cause data bottlenecks.

GPGPU를 사용하는 병렬 연산에서는, 데이터 병목 현상이 호스트-투-단말(host-to-device) 전송 과정에서 발생한다. 호스트 시스템에서 GPU로 데이터를 이동시키기 위해, 호스트 버퍼에서 GPU 버퍼로 데이터가 복사되어야 하며, 결과는 유사하게 재 복사되어야 한다. 이러한 이유 때문에, 다량의 데이터를 사용하는 병렬 컴퓨팅은 버퍼 사이즈 제약에 기인하는 데이터 병목 현상을 유발시킨다.In parallel operations using GPGPU, data bottlenecks occur during host-to-device transfer. In order to move data from the host system to the GPU, the data must be copied from the host buffer to the GPU buffer, and the results must be similarly copied again. For this reason, parallel computing using large amounts of data causes data bottlenecks due to buffer size constraints.

본 발명이 이루고자 하는 기술적 과제는 계층 레이드 방식을 적용한 데이터 손실복구 방법 및 장치를 제공하는데 있다. 레이드 55 와 레이드 66방식을 제안하여 기존 방식 보다 높은 가용성을 가지면서도 3개 이상의 데이터 손실을 복구할 수 있는 시스템을 구성하였으며, 병렬처리 가능한 GPU를 활용하여 기존 CPU를 활용한 복구 작업에서 발생하는 병목현상을 감소시키고자 한다.An object of the present invention is to provide a data loss recovery method and apparatus using a hierarchical RAID method. By suggesting the RAID 55 and RAID 66 schemes, we have constructed a system that can recover more than three data loss while having higher availability than the existing schemes. To reduce the phenomenon.

일 측면에 있어서, 본 발명에서 제안하는 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법은 마스터 가상머신이 입력 데이터를 데이터 청크로 분할하는 단계, 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하는 단계, GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하는 단계, 마스터 가상머신이 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장하는 단계, 내부 데이터 노드 내의 내부 패리티 디스크를 생성하는 단계, 슬레이브 가상머신이 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달하는 단계, GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하는 단계 및 슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 단계를 포함한다. In one aspect, the layered method to which the erasure code acceleration is applied in the virtualized GPU environment proposed by the present invention, the master virtual machine divides the input data into data chunks, and generates an external parity disk in the host from the input data A step in which the GPU kernel calculates and passes external parity data to the CPU memory, the master virtual machine stores the external parity disk and the external parity data in the external parity node, generates an internal parity disk in the internal data node, Slave virtual machine computes internal parity data and passes it from CPU memory to GPU memory; GPU kernel calls multi-GPU threads to generate internal parity data in parallel; slave virtual machine uses internal parity data and Internal parity disk And storing the section data node.

상기 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하는 단계는 마스터 가상머신은 모든 데이터 청크들을 대응하는 내부 데이터 노드들로 슬레이브 가상머신을 통해 분배한다. In the step of creating an external parity disk in the host from the input data, the master virtual machine distributes all data chunks to corresponding internal data nodes via the slave virtual machine.

상기 GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하는 단계는 외부 패리티 데이터는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크 간의 XOR 연산을 수행함으로써 계산된다. The step in which the GPU kernel calculates and passes external parity data to the CPU memory is calculated by performing XOR operation between corresponding data chunks in various internal data nodes.

외부 패리티 데이터 생성 성능을 향상시키기 위해 마스터 가상머신은 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달하고, GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출한다. To improve the performance of external parity data generation, the master virtual machine passes all data chunks from CPU memory to GPU memory, and the GPU kernel creates multiple-GPU threads to generate external parity data in parallel. Call

상기 슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 단계는 내부 패리티 데이터가 손실되면, 대응하는 슬레이브 가상머신은 손실된 내부 패리티 데이터를 복구하기 위하여 내부 패리티 디스크를 사용한다. When the slave virtual machine stores the internal parity data and the internal parity disk in the internal data node, when the internal parity data is lost, the corresponding slave virtual machine uses the internal parity disk to recover the lost internal parity data.

복구된 내부 패리티 데이터는 GPU 메모리에서 CPU 메모리로 전달되고, 복구된 내부 패리티 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장된다. The recovered internal parity data is transferred from GPU memory to CPU memory, and the recovered internal parity data is stored on a spare disk in the same internal data node.

또 다른 일 측면에 있어서, 본 발명에서 제안하는 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 장치는 입력 데이터를 데이터 청크로 분할하여 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하고, GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하며, 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장하는 마스터 가상머신 및 내부 데이터 노드 내의 내부 패리티 디스크를 생성하고, 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달하며, GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하고, 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 슬레이브 가상머신을 포함한다. In another aspect, the layered device to which the erasure code acceleration is applied in the virtualized GPU environment proposed by the present invention divides the input data into data chunks to generate an external parity disk in the host from the input data, and the GPU kernel It computes the external parity data and transfers it to the CPU memory, creates a master virtual machine that stores the external parity disk and the external parity data in the external parity node and an internal parity disk in the internal data node, and calculates the internal parity data in the CPU memory. It delivers to GPU memory and includes a slave virtual machine that the GPU kernel calls multi-GPU threads to generate internal parity data in parallel, and stores internal parity data and internal parity disks in internal data nodes.

상기 마스터 가상머신은 모든 데이터 청크들을 대응하는 내부 데이터 노드들로 슬레이브 가상머신을 통해 분배하고, 외부 패리티 데이터는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크 간의 XOR 연산을 수행함으로써 계산되며, 외부 패리티 데이터 생성 성능을 향상시키기 위해 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달하고, GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출한다. The master virtual machine distributes all data chunks to corresponding internal data nodes through the slave virtual machine, and external parity data is calculated by performing XOR operations between corresponding data chunks in various internal data nodes, and external parity data. All data chunks are passed from CPU memory to GPU memory to improve generation performance, and the GPU kernel invokes multiple-GPU threads to generate external parity data in parallel.

상기 슬레이브 가상머신은 내부 패리티 데이터가 손실되면, 대응하는 슬레이브 가상머신이 손실된 내부 패리티 데이터를 복구하기 위하여 내부 패리티 디스크를 사용하고, 복구된 내부 패리티 데이터는 GPU 메모리에서 CPU 메모리로 전달되고, 복구된 내부 패리티 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장된다.When the internal parity data is lost, the slave virtual machine uses an internal parity disk to recover the lost internal parity data, and the recovered internal parity data is transferred from GPU memory to CPU memory. Internal parity data is stored on a spare disk in the same internal data node.

본 발명의 실시예들에 따르면 기존 미러링 방법이 가진 단순한 데이터 복제 방법과 다르게 시스템 내부의 여러개의 디스크를 묶은 노드 단위로 패리티를 생성하여 높은 스토리지 가용성을 확보할 수 있다. 또한 패스 쓰루 방식의 GPU 가상화를 통해서 전체 노드에 대한 패리티 연산으로 발생할 수 있는 대량의 XOR 연산을 효과적으로 처리하여 성능 저하를 방지할 수 있다.According to the embodiments of the present invention, unlike the simple data replication method of the existing mirroring method, parity may be generated in units of nodes in which several disks in the system are bundled to secure high storage availability. In addition, pass-through GPU virtualization prevents performance degradation by effectively handling a large amount of XOR operations that can occur with parity operations on all nodes.

도 1은 본 발명의 일 실시예에 따른 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 패스 쓰루 방식 GPUrk 적용된 계층 레이드 구조이다.
도 3은 본 발명의 일 실시예에 따른 단일 디스크 손실을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 다중 디스크 손실을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 계층 레이드에서 발생하는 노드 손실에 대한 복구 알고리즘을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 계층 레이드 55의 패리티 연산 행렬을 나타내는 도면이다.
1 is a flowchart illustrating a layered method to which erasure code acceleration is applied in a virtualized GPU environment according to an embodiment of the present invention.
2 is a hierarchical RAID structure to which pass-through GPUrk is applied according to an embodiment of the present invention.
3 is a view for explaining a single disk loss according to an embodiment of the present invention.
4 is a diagram illustrating a multiple disk loss according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a recovery algorithm for node loss occurring in a hierarchical RAID according to an embodiment of the present invention.
FIG. 6 is a diagram illustrating a parity calculation matrix of a layer RAID 55 according to an embodiment of the present invention.

본 발명에서는 계층 레이드 방식을 적용한 데이터 손실복구 기법을 제안한다. 레이드 55 와 레이드 66방식을 제안하여 기존 방식 보다 높은 가용성을 가지면서도 3개 이상의 데이터 손실을 복구할 수 있는 시스템을 구성하였으며, 병렬처리 가능한 GPU를 활용하여 기존 CPU를 활용한 복구 작업에서 발생하는 병목현상을 감소시켰다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다. The present invention proposes a data loss recovery scheme using a hierarchical RAID method. By suggesting the RAID 55 and RAID 66 schemes, we have constructed a system that can recover more than three data loss while having higher availability than the existing schemes. Reduced the phenomenon. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법을 설명하기 위한 흐름도이다. 1 is a flowchart illustrating a layered method to which erasure code acceleration is applied in a virtualized GPU environment according to an embodiment of the present invention.

제안하는 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법은 마스터 가상머신이 입력 데이터를 데이터 청크로 분할하는 단계(110), 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하는 단계(120), GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하는 단계(130), 마스터 가상머신이 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장하는 단계(140), 내부 데이터 노드 내의 내부 패리티 디스크를 생성하는 단계(150), 슬레이브 가상머신이 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달하는 단계(160), GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하는 단계(170) 및 슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 단계(180)를 포함한다.In the proposed layered method using the eraser code acceleration in the virtualized GPU environment, the master virtual machine divides the input data into data chunks (110), generates an external parity disk in the host from the input data (120), In step 130, the GPU kernel calculates and transmits the external parity data to the CPU memory, in which the master virtual machine stores the external parity disk and the external parity data in the external parity node (140), and stores the internal parity disk in the internal data node. In step 150, the slave virtual machine calculates the internal parity data and passes it from the CPU memory to the GPU memory 160.The GPU kernel calls the multi-GPU thread to generate the internal parity data in parallel. Step 170 and slave virtual machine internal internal parity data and internal parity disk And a step 180 of storing the data node.

단계(110)에서, 마스터 가상머신이 입력 데이터를 데이터 청크로 분할하고, 단계(120)에서, 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성한다. 이때 마스터 가상머신은 모든 데이터 청크들을 대응하는 내부 데이터 노드들로 슬레이브 가상머신을 통해 분배한다. In step 110, the master virtual machine divides the input data into data chunks, and in step 120, creates an external parity disk in the host from the input data. At this time, the master virtual machine distributes all data chunks to corresponding internal data nodes through the slave virtual machine.

단계(130)에서, GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달한다. 외부 패리티 데이터는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크 간의 XOR 연산을 수행함으로써 계산된다. 외부 패리티 데이터 생성 성능을 향상시키기 위해 마스터 가상머신은 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달하고, GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출한다. In step 130, the GPU kernel calculates and transmits the external parity data to the CPU memory. External parity data is computed by performing XOR operations between corresponding data chunks within the various internal data nodes. To improve external parity data generation performance, the master virtual machine passes all chunks of data from CPU memory to GPU memory, and the GPU kernel creates multiple-GPU threads to generate external parity data in parallel. Call

단계(140)에서, 마스터 가상머신이 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장한다. In step 140, the master virtual machine stores the external parity disk and external parity data in the external parity node.

단계(150)에서, 내부 데이터 노드 내의 내부 패리티 디스크를 생성하고, 단계(160)에서, 슬레이브 가상머신이 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달한다. In step 150, an internal parity disk in an internal data node is created, and in step 160, a slave virtual machine computes and passes internal parity data from CPU memory to GPU memory.

단계(170)에서, GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하고, 단계9180)에서 슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장한다. 이때, 내부 패리티 데이터가 손실되면, 대응하는 슬레이브 가상머신은 손실된 내부 패리티 데이터를 복구하기 위하여 내부 패리티 디스크를 사용한다. 복구된 내부 패리티 데이터는 GPU 메모리에서 CPU 메모리로 전달되고, 복구된 내부 패리티 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장된다. In step 170, the GPU kernel invokes a multi-GPU thread to generate internal parity data in parallel, and in step 9180 the slave virtual machine stores the internal parity data and the internal parity disk in an internal data node. At this time, if the internal parity data is lost, the corresponding slave virtual machine uses the internal parity disk to recover the lost internal parity data. The recovered internal parity data is transferred from GPU memory to CPU memory, and the recovered internal parity data is stored on a spare disk in the same internal data node.

도 2는 본 발명의 일 실시예에 따른 패스 쓰루 방식 GPUrk 적용된 계층 레이드 구조이다. 2 is a hierarchical RAID structure to which pass-through GPUrk is applied according to an embodiment of the present invention.

도 2를 참조하면, 각 노드는 여러 개의 스토리지를 갖게 되며, 각 노드 내부는 레이드 5 로 구성되어 있다. 또한 각 노드에 대한 패리티 연산을 진행하여 저장하고 있는 외부 패리티 노드를 생성하여 계층 구조의 레이드를 구성하였다. Referring to FIG. 2, each node has a plurality of storages, and each node is configured with RAID 5. In addition, by creating an external parity node stored by performing parity operation for each node, the RAID of the hierarchical structure is constructed.

클라우드 스토리지 시스템에서 인코딩 성능을 향상시키기 위하여 패스-스루 GPU를 사용하는 제안 계층 RAID를 보여준다. 제안 계층 RAID를 구성하기 위하여 하나의 마스터(master) 가상머신(Virtual Machine; VM)과 여러 개의 슬레이브(slave) 가상머신(Virtual Machine; VM)을 사용하고, 이는 수직 및 수평 스트라이프로 구성된다. 다음과 같이 제안 계층 RAID를 사용하여 인코딩 과정을 설명한다. 인코딩의 경우, 클라이언트가 쓰기 입력 데이터를 요청한다고 가정한다. 그 다음, 마스터 VM이 입력 데이터를

Figure 112018068329416-pat00001
데이터 청크인
Figure 112018068329416-pat00002
로 분할하며, 여기서 n은 슬레이브 VM의 수를, p를 각 슬레이브 VM을 위한 전용 데이터 디스크의 수를 나타낸다. 마스터 VM은 모든 데이터 청크들을 대응하는 내부 데이터 노드들(internal data nodes)로 슬레이브 VM을 통해 분배한다. 마스터 VM은 입력 데이터로부터 호스트 내에 외부 패리티 디스크(external parity disk)
Figure 112018068329416-pat00003
를 생성한다. 외부 패리티 데이터(external parity data)
Figure 112018068329416-pat00004
는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크
Figure 112018068329416-pat00005
간의 XOR 연산을 수행함으로써 계산된다. 외부 패리티 데이터 생성 성능을 향상시키기 위하여, 마스터 VM은 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달한다. GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출한다. 그 이후, GPU 커널은 외부 패리티 데이터를 CPU 메모리로 다시 전달한다. 마지막으로, 마스터 VM은 외부 패리티 데이터를 외부 패리티 노드에 저장한다. We show a proposed layered RAID using pass-through GPUs to improve encoding performance in cloud storage systems. One master virtual machine (VM) and several slave virtual machines (VM) are used to construct the proposed layer RAID, which is composed of vertical and horizontal stripes. The encoding process is described using the proposed layer RAID as follows. For encoding, assume that the client requests write input data. Then, the master VM
Figure 112018068329416-pat00001
Data Chunk In
Figure 112018068329416-pat00002
Where n is the number of slave VMs and p is the number of dedicated data disks for each slave VM. The master VM distributes all data chunks to corresponding internal data nodes through the slave VM. The master VM has an external parity disk in the host from the input data.
Figure 112018068329416-pat00003
Create External parity data
Figure 112018068329416-pat00004
The corresponding data chunks within the various internal data nodes
Figure 112018068329416-pat00005
Calculated by performing an XOR operation on the liver. To improve external parity data generation performance, the master VM passes all data chunks from CPU memory to GPU memory. The GPU kernel calls multiple-GPU threads to generate external parity data in parallel. After that, the GPU kernel passes external parity data back to the CPU memory. Finally, the master VM stores external parity data in the external parity node.

하나의 내부 데이터 노드는 내부 데이터 디스크들(internal data disks)과 패리티 디스크들(parity disks)로 구성된다. 내부 패리티 데이터(internal parity data)

Figure 112018068329416-pat00006
는 내부 데이터 노드 내에서 데이터 청크
Figure 112018068329416-pat00007
간의 XOR 연산을 수행함으로써 계산된다. 내부 패리티 데이터 생성 성능을 향상시키기 위하여, 슬레이브 VM은 데이터를 CPU 메모리에서 GPU 메모리로 전달한다. 그 이후, GPU 커널은 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출한다. GPU 커널은 내부 패리티 데이터를 CPU 메모리로 다시 전달한다. 마지막으로, 슬레이브 VM은 데이터 디스크 및 내부 패리티 디스크에 데이터 및 내부 패리티 데이터를 저장한다. 내부 데이터 디스크가 손실되면(fails), 대응하는 슬레이브 VM은 손실된 내부 데이터 디스크를 복구하기 위하여 내부 패리티 디스크를 사용한다. One internal data node consists of internal data disks and parity disks. Internal parity data
Figure 112018068329416-pat00006
Chunks of data within internal data nodes
Figure 112018068329416-pat00007
Calculated by performing an XOR operation on the liver. To improve internal parity data generation performance, the slave VM transfers data from CPU memory to GPU memory. After that, the GPU kernel calls the multi-GPU thread to generate internal parity data in parallel. The GPU kernel passes internal parity data back to the CPU memory. Finally, the slave VM stores data and internal parity data on the data disk and internal parity disk. If the internal data disk fails, the corresponding slave VM uses the internal parity disk to recover the lost internal data disk.

도 3은 본 발명의 일 실시예에 따른 단일 디스크 손실을 설명하기 위한 도면이다. 3 is a view for explaining a single disk loss according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 다중 디스크 손실을 설명하기 위한 도면이다. 4 is a diagram illustrating a multiple disk loss according to an embodiment of the present invention.

도 3 및 도 4는 제안하는 계층 레이드 방식에서 발생한 디스크 손실에 대한 복구 알고리즘을 나타낸다. 노드 내부의 디스크에서 발생한 손실에 대해서는 노드 내부의 디스크 데이터와 패리티 데이터를 활용하여 손실된 디스크를 복구하게 된다.3 and 4 show a recovery algorithm for the disk loss caused by the proposed layer RAID method. In the case of the loss in the disk inside the node, the lost disk is recovered by utilizing the disk data and parity data in the node.

도 5는 본 발명의 일 실시예에 따른 계층 레이드에서 발생하는 노드 손실에 대한 복구 알고리즘을 나타내는 도면이다. FIG. 5 is a diagram illustrating a recovery algorithm for node loss occurring in a hierarchical RAID according to an embodiment of the present invention.

하나의 노드 전체가 손실된 경우, 외부 패리티 데이터와 손실된 노드를 제외한 노드들의 데이터를 사용하여 손실된 노드 내부 전체를 복구한다.If a whole node is lost, the entire internal node is recovered by using the external parity data and the data of the nodes except the lost node.

도 3, 도 4 및 도 5는 클라우드 스토리지 시스템에서 디코딩 성능을 향상시키기 위하여 패스-스루 GPU를 사용하는 제안 계층 RAID를 보여준다. 클라우드 스토리지 시스템에서는 3가지 유형의 데이터 손실이 존재한다. 1-디스크 손실의 경우, 대응하는 슬레이브 VM은 동일한 노드 내에서 손실된 디스크를 복구하기 위하여 생존 디스크들(survival disks)과 내부 패리티 디스크를 사용한다. 첫 번째,

Figure 112018068329416-pat00008
디스크 손실이 발생하면, 대응하는 슬레이브 VM이 생존 디스크들과 내부 패리티 디스크를 함께 읽는다. 단일-디스크 손실에서 디코딩 성능을 향상시키기 위하여, 슬레이브 VM은 남아있는 내부 데이터 디스크들 및 패리티 디스크의 생존 데이터(survival data)를 CPU 메모리에서 GPU 메모리로 전달한다. 그 이후, GPU 커널은 병렬적으로 손실된 디스크를 복구하기 위하여 다중-GPU 쓰레드를 호출한다. 수학식(1)에 나타난 바와 같이, 손실된 디스크
Figure 112018068329416-pat00009
을 복구하기 위해서 XOR 연산들이 수행된다:3, 4 and 5 show the proposed layer RAID using a pass-through GPU to improve decoding performance in cloud storage systems. There are three types of data loss in cloud storage systems. In the case of 1-disk loss, the corresponding slave VM uses surviving disks and internal parity disks to recover the lost disks within the same node. first,
Figure 112018068329416-pat00008
If a disk loss occurs, the corresponding slave VM reads the surviving disks together with the internal parity disk. To improve decoding performance at single-disk loss, the slave VM transfers surviving data of the remaining internal data disks and parity disks from CPU memory to GPU memory. After that, the GPU kernel invokes multiple-GPU threads to recover the lost disks in parallel. As shown in equation (1), the lost disk
Figure 112018068329416-pat00009
XOR operations are performed to recover:

Figure 112018068329416-pat00010
(1)
Figure 112018068329416-pat00010
(One)

그 이후, 재생된(survived) 데이터

Figure 112018068329416-pat00011
은 GPU 메모리에서 CPU 메모리로 전달된다. 마지막으로, 재생된 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장된다.After that, the survived data
Figure 112018068329416-pat00011
Is passed from GPU memory to CPU memory. Finally, the reproduced data is stored on a spare disk in the same internal data node.

다중-디스크 손실의 경우, 손실된 디스크들을 복구하기 위하여 마스터 VM이 외부 패리티 디스크들을 사용하고, 영향을 받지 않은 슬레이브 VM들이 생존 데이터 디스크들을 사용한다. 우선,

Figure 112018068329416-pat00012
Figure 112018068329416-pat00013
디스크 손실이 발생하면, 영향을 받지 않은 슬레이브 VM들이 생존 데이터 디스크들을 읽고, 마스터 VM이 외부 패리티 디스크들을 함께 읽는다. 다중-디스크 손실에서 디코딩 성능을 향상시키기 위하여, 각 슬레이브 VM은 데이터를 대응하는 슬레이브 VM에서 마스터 VM으로 전달한다. 마스터 VM은 남아있는 내부 데이터 디스크들 및 외부 패리티 디스크들의 생존 데이터를 CPU 메모리에서 GPU 메모리로 전달한다. 그 이후, GPU 커널은 손실된 디스크들을 병렬적으로 복구하기 위하여 다중-GPU 쓰레드를 호출한다. 수학식(2)에 나타난 바와 같이, 손실된 디스크
Figure 112018068329416-pat00014
Figure 112018068329416-pat00015
를 복구하기 위하여 XOR 연산을 수행한다.In case of multi-disk loss, the master VM uses external parity disks to recover lost disks and the unaffected slave VMs use surviving data disks. priority,
Figure 112018068329416-pat00012
And
Figure 112018068329416-pat00013
If a disk loss occurs, the unaffected slave VMs read the surviving data disks and the master VM reads the external parity disks together. To improve decoding performance in multi-disk loss, each slave VM transfers data from the corresponding slave VM to the master VM. The master VM transfers surviving data of remaining internal data disks and external parity disks from CPU memory to GPU memory. After that, the GPU kernel invokes multi-GPU threads to recover lost disks in parallel. As shown in equation (2), the lost disk
Figure 112018068329416-pat00014
And
Figure 112018068329416-pat00015
Perform XOR operation to recover.

Figure 112018068329416-pat00016
(2)
Figure 112018068329416-pat00016
(2)

그 이후, 재생된 데이터(survived data)

Figure 112018068329416-pat00017
Figure 112018068329416-pat00018
는 GPU 메모리에서 CPU메모리로 전달된다. 최종적으로, 재생된 데이터는 대응하는 내부 데이터 노드 내 예비 디스크 내에 저장된다.After that, the survived data
Figure 112018068329416-pat00017
Wow
Figure 112018068329416-pat00018
Is passed from GPU memory to CPU memory. Finally, the reproduced data is stored in the spare disk in the corresponding internal data node.

마지막으로, 노드 손실의 경우, 손실된 노드를 복구하기 위하여 영향을 받지 않은 슬레이브 VM들은 생존 데이터 디스크들을 사용하며, 마스터 VM은 외부 패리티 디스크들을 사용한다. 우선, 내부 데이터 노드 1 손실이 발생하면, 영향을 받지 않은 슬레이브 VM들은 생존 데이터 디스크들을 읽고, 마스터 VM은 외부 패리티 디스크들을 함께 읽는다. 노드 손실 시 디코딩 성능을 향상시키기 위하여, 각 슬레이브 VM은 데이터를 대응하는 슬레이브 VM에서 마스터 VM으로 전달한다. 마스터 VM은 남아있는 내부 데이터 디스크들 및 외부 패리티 디스크들의 생존 데이터를 CPU 메모리에서 GPU 메모리로 전달한다. 그 이후, GPU 커널은 손실된 디스크들을 병렬적으로 복구하기 위하여 다중-GPU 쓰레드들을 호출한다. 수학식(3)에 나타난 바와 같이, 손실된 노드를 복구하기 위하여 XOR 연산을 수행한다:Finally, in case of node loss, the unaffected slave VMs use surviving data disks and the master VM uses external parity disks to recover the lost node. First, if an internal data Node 1 loss occurs, the unaffected slave VMs read the surviving data disks and the master VM reads the external parity disks together. In order to improve decoding performance in case of node loss, each slave VM transfers data from the corresponding slave VM to the master VM. The master VM transfers surviving data of remaining internal data disks and external parity disks from CPU memory to GPU memory. After that, the GPU kernel calls the multi-GPU threads to recover the lost disks in parallel. As shown in equation (3), an XOR operation is performed to recover the lost node:

Figure 112018068329416-pat00019
(3)
Figure 112018068329416-pat00019
(3)

그 이후, 재생된 데이터(survived data)

Figure 112018068329416-pat00020
는 GPU 메모리에서 CPU 메모리로 전달된다. 최종적으로 재생된 데이터는 대응하는 내부 데이터 노드 내 예비 디스크들에 저장된다. 그러나, 노드 손실의 경우, 대응하는 슬레이브 VM은 내부 패리티 데이터를 복구해야 한다. 따라서, 슬레이브 VM은 수학식(4)에 나타난 바와 같이, 손실된 내부 패리티
Figure 112018068329416-pat00021
을 복구하기 위하여 XOR 연산을 수행한다:After that, the survived data
Figure 112018068329416-pat00020
Is passed from GPU memory to CPU memory. The finally reproduced data is stored on spare disks in the corresponding internal data node. However, in case of node loss, the corresponding slave VM must recover the internal parity data. Therefore, the slave VM has lost internal parity as shown in equation (4).
Figure 112018068329416-pat00021
Perform an XOR operation to recover

Figure 112018068329416-pat00022
(4)
Figure 112018068329416-pat00022
(4)

GPU를 사용하는 제안 계층 RAID는 3가지 장점을 갖는다. 첫 번째, 계층 RAID가 RAID 55 또는 66을 사용하기 때문에 스토리지 공간 효율성을 제공할 수 있으며, 이에 따라 제안 계층 RAID의 이레이져 코드들은 기존의 계층 RAID의 중복(replication)보다 더 적은 스토리지 공간을 소비한다. 두 번째, 데이터 청크화(chunking)가 마스터 VM 내에서 발생하고 다수의 슬레이브 VM들을 사용하기 때문에 기존의 계층 RAID보다 많은 GPU 오버헤드를 감소시킬 수 있다. 마지막으로, 기존의 계층 RAID가 노드 손실에 견디지 못하는 반면, 이 방식은 생존 데이터 노드들과 외부 패리티 노드를 통해서 데이터 노드 손실에 잘 견딜 수 있다.The proposed layer RAID using the GPU has three advantages. First, because tiered RAID uses RAID 55 or 66, it can provide storage space efficiency, so the eraser codes of the proposed tiered RAID consume less storage space than the replication of traditional tiered RAID. . Second, because data chunking occurs within the master VM and uses multiple slave VMs, it can reduce more GPU overhead than traditional layer RAID. Finally, while traditional hierarchical RAID cannot tolerate node loss, this approach can tolerate data node loss through surviving data nodes and external parity nodes.

도 6은 본 발명의 일 실시예에 따른 계층 레이드 55의 패리티 연산 행렬을 나타내는 도면이다.FIG. 6 is a diagram illustrating a parity calculation matrix of a layer RAID 55 according to an embodiment of the present invention.

각 노드에 개별적으로 저장되는 패리티는 하나의 가상머신이 사용하는 데이터들만을 활용하여 패리티를 생성하며, 외부 패리티 데이터는 각 가상머신이 사용하는 데이터 중 일부를 모든 가상 머신에서 획득하여 패리티를 생성한다.Parity stored in each node generates parity using only data used by one virtual machine, and external parity data generates parity by acquiring some of data used by each virtual machine from all virtual machines. .

<표 1>TABLE 1

Figure 112018068329416-pat00023
Figure 112018068329416-pat00023

표 1은 제안 계층 RAID 55에 대한 패스-스루 GPU를 사용하는 마스터 VM 인코더의 슈도-코드(pseudo-code)를 보여준다. 라인(1)에서, 입력 데이터는 마스터 VM에 의해

Figure 112018068329416-pat00024
개의 데이터 청크인
Figure 112018068329416-pat00025
로 나눠진다. 라인 (2-6)에서, 마스터 VM 인코더는 p 개의 외부 패리티 청크
Figure 112018068329416-pat00026
를 병렬적으로 생성하기 위하여 GPU 커널을 호출한다. GPU 커널은 외부 패리티 청크들을 생성하기 위하여 모든 데이터 청크들과 외부 코딩 행렬 H 에 대한 액세스를 요구한다. 라인 (7)에서, p 개의 외부 패리티 청크들은 마스터 VM 내 CPU 메모리로 전달된다. 마지막으로, 마스터 VM은 라인(8)에서 외부 패리티 청크들을 외부 패리티 디스크들에 쓴다. 도 6은 표 1에 나타난 바와 같이 외부 패리티
Figure 112018068329416-pat00027
를 생성하기 위해 사용되는 이레이져 코딩 방식을 보여준다.Table 1 shows the pseudo-code of the master VM encoder using a pass-through GPU for the proposed layer RAID 55. In line 1, the input data is by the master VM
Figure 112018068329416-pat00024
Chunks of data
Figure 112018068329416-pat00025
Divided by. In line (2-6), the master VM encoder is p outer parity chunks
Figure 112018068329416-pat00026
The GPU kernel is called to generate The GPU kernel requires access to all data chunks and the outer coding matrix H to generate outer parity chunks. In line 7, p external parity chunks are passed to CPU memory in the master VM. Finally, the master VM writes external parity chunks to external parity disks in line 8. 6 shows external parity as shown in Table 1
Figure 112018068329416-pat00027
It shows the erasure coding scheme used to generate the.

<표 2>TABLE 2

Figure 112018068329416-pat00028
Figure 112018068329416-pat00028

표 2는 제안 계층 RAID 55에 대한 패스-스루 GPU를 사용하는 k 개의 슬레이브 VM 인코더의 슈도-코드(pseudo-code)를 보여준다. 라인(1)에서, p 개의 데이터 청크인

Figure 112018068329416-pat00029
가 슬레이브 VM 내 CPU 메모리에 복사된다. 라인 (2-4)에서, 슬레이브 VM 인코더는 내부 패리티 청크 P k 를 병렬적으로 생성하기 위하여 GPU 커널을 호출한다. GPU 커널은 내부 패리티 청크를 생성하기 위하여 오직 p 개의 데이터 청크들 및 내부 코딩 행렬 X 에 대한 액세스를 요구한다.Table 2 shows the pseudo-code of k slave VM encoders using a pass-through GPU for the proposed layer RAID 55. In line (1), p data chunks are
Figure 112018068329416-pat00029
Is copied to CPU memory in the slave VM. In line 2-4, the slave VM encoder is internal parity chunk P k The GPU kernel is called to generate The GPU kernel only requires access to the p data chunks and the inner coding matrix X to generate an inner parity chunk.

라인(5)에서, 내부 패리티 청크는 CPU 메모리로 전달된다. 마지막으로, 라인 (6-7)에서 슬레이브 VM은 주어진 p 개의 데이터 청크

Figure 112018068329416-pat00030
와 내부 패리티 청크 P k 를 대응하는 내부 패리티 디스크에 쓴다.In line 5, an internal parity chunk is passed to the CPU memory. Finally, at line 6-7, the slave VM is given p data chunks
Figure 112018068329416-pat00030
And internal parity chunks P k are written to the corresponding internal parity disks.

도 6은 표 2에 제시된 내부 패리티

Figure 112018068329416-pat00031
을 생성하기 위하여 사용되는 이레이져 코딩 방식을 보여준다.6 is the internal parity shown in Table 2
Figure 112018068329416-pat00031
We show the erasure coding scheme used to generate

<표 3>TABLE 3

Figure 112018068329416-pat00032
Figure 112018068329416-pat00032

표 3은 제안 계층 RAID 55에 대한 패스-스루 GPU를 사용하는 마스터 VM 디코딩의 슈도-코드(pseudo-code)를 나타낸다. 우선, 마스터 VM은 슬레이브 VM들 내의 데이터 디스크로부터 데이터 청크를 읽는다. 슬레이브 VM 손실의 수가 1 손실을 초과하면, 재앙 손실(disaster failure)이라고 부르고 이는 복구할 수 없다. 마스터 VM은 대응하는 생존 데이터와 패리티 데이터를 CPU 메모리 내 ds에 할당한다. 그러면, Mater_ VM _decoder 기능이 호출된다. 코딩 행렬 B는 손실된 슬레이브 VM에 대응하는 외부 코딩 행렬 H의 열들을 삭제함으로써 생성되고, 역 코딩 행렬 B - 1 는 마스터 VM 내 GPU 공유 메모리(GPU shared memory)에 저장된다.Table 3 shows the pseudo-code of master VM decoding using pass-through GPU for proposed layer RAID 55. First, the master VM reads data chunks from the data disks in the slave VMs. If the number of slave VM losses exceeds one loss, it is called a disaster failure and it cannot be recovered. The master VM allocates corresponding survival data and parity data to ds in CPU memory. Then, the Mater_ VM _decoder function is called. The coding matrix B is generated by deleting the columns of the outer coding matrix H corresponding to the lost slave VM, and the inverse coding matrix B - 1 is stored in the GPU shared memory in the master VM.

라인(3-5)에서, GPU 커널은 역 코딩 행렬 B -1 및 생존 데이터 및 패리티 청크 ds를 사용하여 손실된 데이터 d ' 을 복구하기 위해서 호출된다. 최종적으로, 마스터 VM은 복구 데이터 d ' 을 예비 디스크에 쓴다.At line 3-5, the GPU kernel is called to recover the lost data d ' using the inverse coding matrix B -1 and the survival data and parity chunks ds . Finally, the master VM writes the recovery data d ' to the spare disk.

<표 4>TABLE 4

Figure 112018068329416-pat00033
Figure 112018068329416-pat00033

표 4는 제안 계층 RAID 55에 대한 패스-스루 GPU를 사용하는 슬레이브 VM 디코딩의 슈도-코드(pseudo-code)를 보여준다. 우선, 슬레이브 VM은 대응하는 슬레이브 VM 내의 데이터 디스크들에서 데이터 청크를 읽는다. 디스크 손실의 수가 1 손실을 초과하면, 재앙 손실이라고 부르며 복구될 수 없다. 슬레이브 VM은 대응하는 생존 데이터 및 패리티 데이터를 CPU 메모리 내의 ds 에 할당한다. 그 후, Slave_VM_Decoder가 호출된다. 코딩 행렬 D 는 손실된 디스크에 대응하는 내부 코딩 행렬 X 의 열들을 삭제함으로써 생성되고, 역 코드 행렬 D -1 는 슬레이브 VM 내의 GPU 공유 메모리에 저장된다. 라인 (3-5)에서, GPU 커널은 역 코드 행렬 B -1 와 생존 데이터 및 패리티 청크 ds 를 사용하여 손실된 데이터 d ' 을 복구하기 위하여 호출된다. 마지막으로, 슬레이브 VM은 복구 데이터 d ' 을 예비 디스크에 쓴다.Table 4 shows the pseudo-code of slave VM decoding using pass-through GPU for the proposed layer RAID 55. First, the slave VM reads data chunks from the data disks in the corresponding slave VM. If the number of disk losses exceeds one loss, it is called a disaster loss and cannot be recovered. The slave VM sends corresponding survival data and parity data in the CPU memory ds. Assign to After that, Slave_VM_Decoder is called. The coding matrix D is generated by deleting the columns of the inner coding matrix X corresponding to the lost disk, and the inverse code matrix D -1 is stored in the GPU shared memory in the slave VM. In line (3-5), the GPU kernel adds the inverse code matrix B -1 and the survival data and parity chunks ds. Called to recover lost data d ' using. Finally, the slave VM writes recovery data d ' to the spare disk.

제안하는 가상화 GPU 환경에서의 이레이져 코드 가속화가 적용된 계층레이드 방법 및 장치는 클라우드 환경에서 데이터 손실에 대한 복구 기능은 안정적인 서비스 제공을 위해 필수적이다. 본 발명은 높은 스토리지 가용성을 확보함과 동시에 3개의 디스크 손실과 노드 손실에 대한 복구가 가능하여, 클라우드 성능 향상이 가능하다.The proposed layered method and device with Eraser Code Acceleration in the virtualized GPU environment is essential to provide stable services in the cloud environment. The present invention ensures high storage availability and at the same time recovers three disk and node losses, thereby improving cloud performance.

클라우드 환경에서 높은 스토리지 가용성은 실제 물리적 서버의 자원 사용율을 낮출 수 있다. 기존의 미러링 기반의 레이드는 높은 자원소모를 발생시키지만, 데이터 복구를 위해 사용되었다. 따라서 본 발명을 통해서 클라우드 가용성을 확보함과 동시에 데이터 신뢰성을 확보하여 고신뢰, 고가용성 클라우드 기술 및 시장을 확장할 수 있을 것이라 판단된다.High storage availability in cloud environments can lower resource utilization on physical servers. Conventional mirroring-based raids generate high resource consumption, but have been used for data recovery. Therefore, it is determined that through the present invention, cloud reliability and data reliability can be secured to expand the high reliability, high availability cloud technology and the market.

기존 미러링 방법이 가진 단순한 데이터 복제 방법과 다르게 시스템 내부의 여러개의 디스크를 묶은 노드 단위로 패리티를 생성하여 높은 스토리지 가용성을 확보하였다. 또한 패스 쓰루 방식의 GPU 가상화를 통해서 전체 노드에 대한 패리티 연산으로 발생할 수 있는 대량의 XOR 연산을 효과적으로 처리하여 성능 저하를 방지하였다.Unlike the simple data replication method of the existing mirroring method, parity is generated in the unit of node that binds several disks in the system to secure high storage availability. In addition, pass-through GPU virtualization prevents performance degradation by effectively handling large amounts of XOR operations that can occur with parity operations on all nodes.

본 발명은 대량의 데이터를 관리하는 클라우드 서버에 적용하여 클라우드 물리 자원 사용량을 줄임과 동시에 매우 안정적인 데이터 신뢰성을 보장해줄 수 있는 기술이 될 것이라 예상된다.The present invention is expected to be applied to a cloud server that manages a large amount of data, while reducing cloud physical resource usage and at the same time ensuring a very stable data reliability.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments may be, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable arrays (FPAs), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of explanation, one processing device may be described as being used, but one of ordinary skill in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. It can be embodied in. The software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.  The method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components. Or even if replaced or substituted by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the claims that follow.

Claims (9)

마스터 가상머신이 입력 데이터를 데이터 청크로 분할하는 단계;
입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하는 단계;
GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하는 단계;
마스터 가상머신이 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장하는 단계;
내부 데이터 노드 내의 내부 패리티 디스크를 생성하는 단계;
슬레이브 가상머신이 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달하는 단계;
GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하는 단계; 및
슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 단계
를 포함하고,
상기 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하는 단계는,
마스터 가상머신은 모든 데이터 청크들을 대응하는 내부 데이터 노드들로 슬레이브 가상머신을 통해 분배하는
계층레이드 방법.
The master virtual machine dividing the input data into data chunks;
Creating an external parity disk in the host from the input data;
Computing, by the GPU kernel, external parity data to the CPU memory;
Storing, by the master virtual machine, the external parity disk and the external parity data in the external parity node;
Creating an internal parity disk in an internal data node;
A slave virtual machine calculating internal parity data and transferring the internal parity data from the CPU memory to the GPU memory;
Calling, by the GPU kernel, a multi-GPU thread to generate internal parity data in parallel; And
The slave virtual machine storing the internal parity data and the internal parity disk in the internal data node
Including,
Generating an external parity disk in the host from the input data,
The master virtual machine distributes all data chunks to the corresponding internal data nodes through the slave virtual machine.
Tiered raid method.
삭제delete 제1항에 있어서,
상기 GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하는 단계는,
외부 패리티 데이터는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크 간의 XOR 연산을 수행함으로써 계산되는
계층레이드 방법.
The method of claim 1,
Computing the external parity data to the CPU memory by the GPU kernel,
External parity data is computed by performing XOR operations between corresponding chunks of data within the various internal data nodes.
Tiered raid method.
제3항에 있어서,
외부 패리티 데이터 생성 성능을 향상시키기 위해 마스터 가상머신은 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달하고, GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출하는
계층레이드 방법.
The method of claim 3,
To improve external parity data generation performance, the master virtual machine passes all data chunks from CPU memory to GPU memory, and the GPU kernel creates multiple-GPU threads to generate external parity data in parallel. To call
Tiered raid method.
제1항에 있어서,
상기 슬레이브 가상머신이 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 단계는,
내부 패리티 데이터가 손실되면, 대응하는 슬레이브 가상머신은 손실된 내부 패리티 데이터를 복구하기 위하여 내부 패리티 디스크를 사용하는
계층레이드 방법.
The method of claim 1,
The slave virtual machine stores the internal parity data and the internal parity disk in an internal data node,
If the internal parity data is lost, the corresponding slave virtual machine uses the internal parity disk to recover the lost internal parity data.
Tiered raid method.
제5항에 있어서,
복구된 내부 패리티 데이터는 GPU 메모리에서 CPU 메모리로 전달되고, 복구된 내부 패리티 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장되는
계층레이드 방법.
The method of claim 5,
Recovered internal parity data is transferred from GPU memory to CPU memory, and recovered internal parity data is stored on a spare disk within the same internal data node.
Tiered raid method.
입력 데이터를 데이터 청크로 분할하여 입력 데이터로부터 호스트 내에 외부 패리티 디스크를 생성하고, GPU 커널이 외부 패리티 데이터를 연산하여 CPU 메모리로 전달하며, 외부 패리티 디스크 및 외부 패리티 데이터를 외부 패리티 노드에 저장하는 마스터 가상머신; 및
내부 데이터 노드 내의 내부 패리티 디스크를 생성하고, 내부 패리티 데이터를 연산하여 CPU 메모리에서 GPU 메모리로 전달하며, GPU 커널이 내부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드를 호출하고, 내부 패리티 데이터 및 내부 패리티 디스크를 내부 데이터 노드에 저장하는 슬레이브 가상머신
을 포함하고,
상기 마스터 가상머신은,
모든 데이터 청크들을 대응하는 내부 데이터 노드들로 슬레이브 가상머신을 통해 분배하고, 외부 패리티 데이터는 다양한 내부 데이터 노드 내에서 대응하는 데이터 청크 간의 XOR 연산을 수행함으로써 계산되며,
외부 패리티 데이터 생성 성능을 향상시키기 위해 모든 데이터 청크들을 CPU 메모리에서 GPU 메모리로 전달하고, GPU 커널은 외부 패리티 데이터를 병렬적으로 생성하기 위하여 다중-GPU 쓰레드(multiple-GPU threads)를 호출하는
계층레이드 장치.
The master divides the input data into data chunks to create an external parity disk in the host from the input data, the GPU kernel computes the external parity data and passes it to the CPU memory, and stores the external parity disk and external parity data in the external parity node. Virtual machine; And
Creates an internal parity disk within an internal data node, computes and passes internal parity data from CPU memory to GPU memory, the GPU kernel calls multi-GPU threads to generate internal parity data in parallel, and internal parity data Virtual machine for storing internal parity disks and internal parity disks
Including,
The master virtual machine,
All data chunks are distributed to corresponding internal data nodes through a slave virtual machine, and external parity data is calculated by performing XOR operations between corresponding data chunks in various internal data nodes,
To improve external parity data generation performance, all data chunks are passed from CPU memory to GPU memory, and the GPU kernel calls multiple-GPU threads to generate external parity data in parallel.
Tiered device.
삭제delete 제7항에 있어서,
상기 슬레이브 가상머신은,
내부 패리티 데이터가 손실되면, 대응하는 슬레이브 가상머신이 손실된 내부 패리티 데이터를 복구하기 위하여 내부 패리티 디스크를 사용하고, 복구된 내부 패리티 데이터는 GPU 메모리에서 CPU 메모리로 전달되고, 복구된 내부 패리티 데이터는 동일한 내부 데이터 노드 내의 예비 디스크(spare disk) 상에 저장되는
계층레이드 장치.
The method of claim 7, wherein
The slave virtual machine,
If the internal parity data is lost, the corresponding slave virtual machine uses the internal parity disk to recover the lost internal parity data, the recovered internal parity data is transferred from GPU memory to CPU memory, and the recovered internal parity data is Stored on a spare disk within the same internal data node
Tiered device.
KR1020180080556A 2018-07-11 2018-07-11 Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU KR102067440B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180080556A KR102067440B1 (en) 2018-07-11 2018-07-11 Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080556A KR102067440B1 (en) 2018-07-11 2018-07-11 Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU

Publications (1)

Publication Number Publication Date
KR102067440B1 true KR102067440B1 (en) 2020-01-17

Family

ID=69369861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080556A KR102067440B1 (en) 2018-07-11 2018-07-11 Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU

Country Status (1)

Country Link
KR (1) KR102067440B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564521B1 (en) * 2011-11-30 2015-10-29 인텔 코포레이션 Techniques to display multimedia data during operating system initialization
KR101756136B1 (en) * 2016-01-22 2017-07-26 계명대학교 산학협력단 A fault tolerant method for a hierarchical system
KR101765725B1 (en) * 2016-02-26 2017-08-23 소프트온넷(주) System and Method for connecting dynamic device on mass broadcasting Big Data Parallel Distributed Processing
KR20180043888A (en) * 2016-10-20 2018-05-02 인하대학교 산학협력단 A Hierarchical RAID's Parity Generation System using Pass-through GPU in Multi Virtual-Machine Environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564521B1 (en) * 2011-11-30 2015-10-29 인텔 코포레이션 Techniques to display multimedia data during operating system initialization
KR101756136B1 (en) * 2016-01-22 2017-07-26 계명대학교 산학협력단 A fault tolerant method for a hierarchical system
KR101765725B1 (en) * 2016-02-26 2017-08-23 소프트온넷(주) System and Method for connecting dynamic device on mass broadcasting Big Data Parallel Distributed Processing
KR20180043888A (en) * 2016-10-20 2018-05-02 인하대학교 산학협력단 A Hierarchical RAID's Parity Generation System using Pass-through GPU in Multi Virtual-Machine Environment

Similar Documents

Publication Publication Date Title
US10140136B2 (en) Distributed virtual array data storage system and method
CN109213618B (en) Method, apparatus and computer program product for managing a storage system
CN109726033B (en) Method, data storage system and computer readable medium for providing RAID data protection
US9378093B2 (en) Controlling data storage in an array of storage devices
US10353787B2 (en) Data stripping, allocation and reconstruction
US10776208B2 (en) Distributed memory checkpointing using storage class memory systems
US20120166909A1 (en) Method and apparatus for increasing data reliability for raid operations
US11218174B2 (en) Method and system for storing data locally repairable and efficient multiple encoding
US11232005B2 (en) Method, device, and computer program product for managing storage system
US10013359B2 (en) Redundant disk array storage system and method using heterogeneous disks and a lookup table
US10664392B2 (en) Method and device for managing storage system
US9092152B1 (en) Data storage system employing a distributed compute engine memory controller with embedded logic and arithmetic functionality and method for data migration between high-performance computing architectures and data storage devices using the same
US11609820B2 (en) Method and system for redundant distribution and reconstruction of storage metadata
US11797377B2 (en) Efficient parity determination in zoned solid-state drives of a storage system
US10409682B1 (en) Distributed RAID system
US11422909B2 (en) Method, device, and storage medium for managing stripe in storage system
US20230137007A1 (en) Data storage method, storage system, storage device, and storage medium
KR101970864B1 (en) A parity data deduplication method in All Flash Array based OpenStack cloud block storage
US10564883B2 (en) Efficient migration to distributed storage
KR102067440B1 (en) Method and Apparatus for hierarchical RAID with erasure coding accelerating based on virtual GPU
US20170220441A1 (en) In-memory data storage with adaptive memory fault tolerance
KR101893655B1 (en) A Hierarchical RAID&#39;s Parity Generation System using Pass-through GPU in Multi Virtual-Machine Environment
US11809274B2 (en) Recovery from partial device error in data storage system
Ramkumar et al. RAID-6 code variants for recovery of a failed disk
Song et al. GPU-accelerated high-performance encoding and decoding of hierarchical RAID in virtual machines

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant