WO2023096108A1 - 가상화 환경에서 데이터를 저장하는 방법 - Google Patents
가상화 환경에서 데이터를 저장하는 방법 Download PDFInfo
- Publication number
- WO2023096108A1 WO2023096108A1 PCT/KR2022/013598 KR2022013598W WO2023096108A1 WO 2023096108 A1 WO2023096108 A1 WO 2023096108A1 KR 2022013598 W KR2022013598 W KR 2022013598W WO 2023096108 A1 WO2023096108 A1 WO 2023096108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- gpu
- cpu
- storage device
- target process
- target
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 144
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000012546 transfer Methods 0.000 claims description 9
- 238000013145 classification model Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- the present invention relates to a method for storing data in a virtualization environment, and more particularly, to a method for storing data in a container-based virtualization environment.
- a virtualization tool called a container is provided in addition to a virtual machine, which is a traditional virtualization method.
- the cloud platform provides the user with a container to which the requested resource is allocated.
- the container-based virtualization method is an operating system level virtualization method for running several isolated Linux systems on a single control host, and is also called operating system level virtualization.
- an open source platform such as Docker or Kubernetes is used.
- the Kubernetes platform consists of master nodes and worker nodes. Applications run in containers included in worker node pods, and the master node manages the worker nodes.
- a pod is the basic unit of the Kubernetes platform, and multiple containers make up a single pod.
- An object of the present invention is to provide a data storage method capable of further improving the execution speed of a GPU process in a virtualization environment.
- a target process executed in a container as one of a GPU process and a CPU process; and when the target process is the GPU process, storing data generated by the GPU process in a first storage device using a high-speed transfer protocol, and when the target process is the CPU process, data generated by the CPU process.
- a method of storing data in a virtualization environment comprising the step of storing in a second storage device using a low-speed transmission protocol.
- the execution speed of the GPU process can be improved, and the storage device uses a high-speed transfer protocol. can be used efficiently.
- FIG. 1 is a diagram for explaining a virtualization system in a Kubernetes environment according to an embodiment of the present invention.
- FIG. 2 is a diagram for explaining a method of storing data in a virtualization environment according to an embodiment of the present invention.
- Fig. 3 is a diagram showing a table showing classification results of target processes.
- FIG. 4 is a diagram for explaining an overlay file system according to an embodiment of the present invention.
- the present invention has been conceived to solve the above problems, and proposes a method of storing data by a GPU process using GPU resources in a storage device that provides a faster input/output speed.
- An embodiment of the present invention classifies processes executed in a container into a GPU process and a CPU process, and stores data in a storage device providing different input/output speeds depending on the type of process executed in the container.
- Data by the GPU process is stored in a storage device using a high-speed transfer protocol
- data by a CPU process using CPU resources is stored in a storage device using a low-speed transfer protocol.
- the performance speed of the GPU process can be further improved by using a storage device using a high-speed transfer protocol as a cache of the GPU process.
- FIG. 1 is a diagram for explaining a virtualization system in a Kubernetes environment according to an embodiment of the present invention.
- the virtualization system of the Kubernetes environment includes a master node 110 and a worker node 120, and the master node and a plurality of worker nodes can constitute one Kubernetes cluster.
- a worker node is a server that provides container-based virtualization services, and a master node may be a server that manages worker nodes.
- the worker node 120 includes a monitoring module 121, a disk caching for GPU data (DCG) management module 122, an overlay file system 123, a first storage device 124, and a second storage device. device 125 and at least one pod 126 , 127 .
- DCG GPU data
- the monitoring module 121 monitors the resource usage rate of processes created as the applications are executed.
- the monitoring module may monitor a resource usage rate using a Prometheus tool, and may monitor GPU usage and CPU usage among resources provided by the virtualization system.
- the DCG management module 122 classifies the target process executed in the container into one of a GPU process and a CPU process. In addition, flag information indicating a classification result may be generated.
- the GPU process means a process using only GPU resources or mainly using GPU resources
- the CPU process means a process using only CPU resources or mainly using CPU resources.
- the DCG management module 122 may classify processes using various previously learned classification models, and may use a Naive Bayes classification model as an example.
- the DCG management module 122 may classify the target process using the GPU resource usage of the target process and the extension of a file used in the target process.
- the Linux kernel provides a function of monitoring a file used in a process, and the DCG management module 122 can check the extension of a file used in a target process by using this function.
- the DCG management module 122 partitions the first storage device and creates a DCG storage path in which data generated by the GPU process is stored for each partition of the first storage device.
- the overlay file system 123 is a type of union file system, and is a file system that mounts several directories at one directory point to look like a single unified directory.
- the overlay file system 123 checks whether the target process executed in the container is a GPU process or a CPU process using flag information, and maps the GPU process to the DCG storage path. Accordingly, data generated by the GPU process may be stored in the first storage device 124 .
- the overlay file system 123 maps a CPU process and a storage path so that data by the CPU process can be stored in the second storage device 125 .
- the first storage device 124 is a storage device using a high-speed transmission protocol and may be an NVMe SSD
- the second storage device 125 is a storage device using a low-speed transmission protocol and may be a SATA HDD or SATA SSD.
- FIG. 2 is a diagram for explaining a method of storing data in a virtualization environment according to an embodiment of the present invention
- FIG. 3 is a diagram showing a table showing a classification result of a target process
- 4 is a diagram for explaining an overlay file system according to an embodiment of the present invention.
- a data storage method performed in a worker node is described as an embodiment.
- a worker node classifies a target process executed in a container into one of a GPU process and a CPU process (S210).
- the worker node may classify the target process using the GPU resource usage of the target process and the extension of a file used in the target process.
- the worker node checks the extension of the file used in the target process, and among the files used in the process, files processed by GPU resources, such as picture files and graphic files, are included. If the GPU resource usage exceeds the critical amount, the target process can be classified as a GPU process.
- the worker node may classify the target process into one of a GPU process and a CPU process by using a preset ratio of extensions among file extensions used in the target process.
- the worker node may classify the target process as a GPU process when the ratio of extensions of files processed by GPU resources among all extensions of files used in the target process is greater than or equal to a critical ratio.
- the worker node classifies the target process using a threshold value or uses the GPU resource usage of the training process and the extension of the file used for the training process to classify the training process among the GPU process and the CPU process.
- a target process may be classified using a classification model learned to classify as one.
- the worker node may classify the target container using the table shown in FIG. 3 and record the classification result.
- the table includes the GPU resource usage and extension ratio for the target process, and when a new process is created in the container, the worker node records the classification result along with the GPU resource usage and extension ratio for the new target process to open the table. can be renewed These tables can be used as training data for retraining of classification models.
- the worker node uses the classification result of step S210 to store the data generated by the target process in a first storage device using a high-speed transmission protocol or a second storage device using a low-speed transmission protocol.
- 2 Store in the storage device (S220).
- the worker node stores data generated by the GPU process in a first storage device using a high-speed transfer protocol when the target process is a GPU process, and when the target process is a CPU process, the worker node is generated by the CPU process.
- the resulting data may be stored in a second storage device using a low-speed transmission protocol.
- the worker node creates a storage path for data generated by the GPU process so that the data generated by the GPU process can be stored in the first storage device, and converts the storage path to the first storage device. partitions can be mounted. Then, the storage path and ID of the container are mapped.
- the worker node partitions the first storage device according to the number of processes regardless of the type of processes executed in the container, and creates a first storage path for each partition. After checking the classification result of the target process using the flag information, the worker node maps the ID of the container in which the GPU process is running to the first storage path. Accordingly, data generated by the GPU process may be stored in the first storage device through the first storage path. Data generated by the CPU process may be stored in the second storage device through a second storage path mounted in the second storage device.
- the target process may simultaneously use both GPU and CPU resources.
- data generated by the GPU resource may be stored in the first storage device through the first storage path
- data generated by the CPU resource may be stored in the second storage device through the second storage path.
- first and second storage paths may be disposed in an upper directory of the overlay file system, and the second storage path may be disposed in a merged directory of the overlay file system.
- the overlay file system is composed of a merged directory (merged dir) 410, an upper directory (420), and a lower directory (430) located in different layers.
- the subdirectory 430 is a read-only directory, in which a storage path of a read-only file is arranged, and corresponds to an image layer in a container-based virtualization system.
- the upper directory 420 is a writing directory, in which a storage path of a new or updated file is placed, and corresponds to a container layer in a container-based virtualization system.
- the merge directory 410 is a directory that is visible to the user, and the upper directory 420 and the lower directory 430 are shown to the user in a merged form.
- the files processed in the GPU and CPU resources are stored in the first and second storage devices, respectively, but the same storage path for the user. It can be recognized as being stored in the same storage device by
- the technical contents described above may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program commands recorded on the medium may be specially designed and configured for the embodiments or may be known and usable to those skilled in computer software.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks.
- - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like.
- Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.
- a hardware device may be configured to act as one or more software modules to perform the operations of the embodiments and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer Networks & Wireless Communication (AREA)
Abstract
컨테이너 기반의 가상화 환경에서 데이터를 저장하는 방법이 개시된다. 개시된 가상화 환경에서 데이터를 저장하는 방법은 컨테이너에서 수행되는 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계; 및 상기 타겟 프로세스가 GPU 프로세스인 경우, 상기 GPU 프로세스에 의해 생성된 데이터를 고속 전송 프로토콜을 이용하는 제1저장 장치에 저장하고, 상기 타겟 프로세스가 상기 CPU 프로세스인 경우, 상기 CPU 프로세스에 의해 생성된 데이터를 저속 전송 프로토콜을 이용하는 제2저장 장치에 저장하는 단계를 포함한다.
Description
본 발명은 가상화 환경에서 데이터를 저장하는 방법에 관한 것으로서, 더욱 상세하게는 컨테이너 기반의 가상화 환경에서 데이터를 저장하는 방법에 관한 것이다.
오늘날 대표적인 클라우드 플랫폼에서는 기존에 사용하던 가상화 방법인 가상 머신 이외에도 컨테이너(container)라는 가상화 도구가 제공된다. 사용자가 원하는 자원을 요청하면, 클라우드 플랫폼은 요청된 자원이 할당된 컨테이너를 사용자에게 제공한다.
컨테이너 기반의 가상화 방법은, 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템을 실행하기 위한 운영 시스템 레벨 가상화 방법으로서, 운영체제 레벨 가상화라고도 불린다. 컨테이너 기반 가상화를 구현하기 위해, 도커(docker)나 쿠버네티스(kubernetes)와 같은 오픈소스 플랫폼이 이용된다.
쿠버네티스 플랫폼은 마스터 노드(master node)와 워커 노드(worker node)로 이루어진다. 워커 노드의 포드(pod)에 포함된 컨테이너에서 어플리케이션이 실행되며, 마스터 노드는 워커 노드를 관리한다. 포드는 쿠버네티스 플랫폼의 기본 단위로서, 복수의 컨테이너가 하나의 포드를 구성한다.
한편, 최근에는 CPU 자원 뿐만 아니라 보다 빠른 연산을 위해 GPU 자원을 이용하는 어플리케이션이 증가하고 있다. 하지만 CPU 자원에 의해 처리된 데이터와 GPU 자원에 의해 처리된 데이터는, 모두 동일한 저장 장치에 저장되며, 따라서, 저장 장치의 입출력 속도에 의해 CPU 자원의 빠른 연산 속도를 이용하는 이점이 반감될 수 있다.
본 발명은 가상화 환경에서, GPU 프로세스의 수행 속도를 보다 향상시킬 수 있는 데이터 저장 방법을 제공하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 컨테이너에서 수행되는 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계; 및 상기 타겟 프로세스가 GPU 프로세스인 경우, 상기 GPU 프로세스에 의해 생성된 데이터를 고속 전송 프로토콜을 이용하는 제1저장 장치에 저장하고, 상기 타겟 프로세스가 상기 CPU 프로세스인 경우, 상기 CPU 프로세스에 의해 생성된 데이터를 저속 전송 프로토콜을 이용하는 제2저장 장치에 저장하는 단계를 포함하는 가상화 환경에서 데이터를 저장하는 방법이 제공된다.
본 발명의 일실시예에 따르면, GPU 프로세스에 의해 생성된 데이터를 선택적으로 고속 전송 프로토콜을 이용하는 저장 장치에 저장함으로써, GPU 프로세스의 수행 속도를 향상시킬 수 있을 뿐만 아니라, 고속 전송 프로토콜을 이용하는 저장 장치를 효율적으로 이용할 수 있다.
도 1은 본 발명의 일실시예에 따른 쿠버네티스 환경의 가상화 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 가상화 환경에서 데이터를 저장하는 방법을 설명하기 위한 도면이다.
도 3은 타겟 프로세스의 분류 결과를 나타내는 테이블을 도시하는 도면이다.
도 4는 본 발명의 일실시예에 따른 오버레이 파일 시스템을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
전술된 바와 같이, GPU 자원을 통해 빠른 연산이 수행되더라도, 저장 장치의 입출력 속도에 의해, 컨테이너에서 수행되는 프로세스의 수행 속도가 반감될 수 있다. 본 발명은 전술된 문제점을 해결하기 위하 착안된 발명으로서, GPU 자원을 이용하는 GPU 프로세스에 의한 데이터를 보다 빠른 입출력 속도를 제공하는 저장 장치에 저장하는 방법을 제안한다.
본 발명의 일실시예는 컨테이너에서 수행되는 프로세스를 GPU 프로세스와 CPU 프로세스로 분류하고, 컨테이너에서 수행되는 프로세스의 종류에 따라서 서로 다른 입출력 속도를 제공하는 저장 장치에 데이터를 저장한다. GPU 프로세스에 의한 데이터는 고속 전송 프로토콜을 이용하는 저장 장치에 저장되며, CPU 자원을 이용하는 CPU 프로세스에 의한 데이터는 저속 전송 프로토콜을 이용하는 저장 장치에 저장된다.
즉, 본 발명의 일실시예는, 고속 전송 프로토콜을 이용하는 저장 장치를 GPU 프로세스의 캐시로 활용함으로써, GPU 프로세스의 수행 속도를 보다 향상시킬 수 있다.
또한 본 발명의 일실시예에 따르면, 고속 입출력이 필요한 데이터인, GPU 프로세스에 의해 생성된 데이터를 선택적으로 고속 전송 프로토콜을 이용하는 저장 장치에 저장함으로써, 저속 전송 프로토콜을 이용하는 저장 장치에 비해 상대적으로 고가인 고속 전송 프로토콜을 이용하는 저장 장치를 효율적으로 이용할 수 있다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 쿠버네티스 환경의 가상화 시스템을 설명하기 위한 도면이다.
도 1에 도시된 바와 같이, 쿠버네티스 환경의 가상화 시스템은 마스터 노드(110)와 워커 노드(120)를 포함하며, 마스터 노드와 복수의 워커 노드가 하나의 쿠버네티스 클러스터를 구성할 수 있다. 워커 노드는 컨테이너 기반의 가상화 서비스를 제공하는 서버이며, 마스터 노드는 워커 노드를 관리하는 서버일 수 있다.
도 1을 참조하면, 워커 노드(120)는 모니터링 모듈(121), DCG(Disk Caching for GPU data) 관리 모듈(122), 오버레이 파일 시스템(123), 제1저장 장치(124), 제2저장 장치(125) 및 적어도 하나의 포드(126, 127)를 포함한다.
포드(126, 127)에 포함된 컨테이너에서 어플리케이션 등이 실행되며, 모니터링 모듈(121)은 어플리케이션이 실행됨에 따라 생성된 프로세스의 자원 사용률을 모니터링한다. 일실시예로서 모니터링 모듈은 프로메테우스 툴을 이용하여 자원 사용률을 모니터링할 수 있으며, 가상화 시스템에서 제공되는 자원 중 GPU 사용량 및 CPU 사용량을 모니터링할 수 있다.
DCG 관리 모듈(122)은 컨테이너에서 수행되는 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류한다. 그리고 분류 결과를 나타내는 플래그 정보를 생성할 수 있다. 여기서, GPU 프로세스는 GPU 자원만을 이용하거나 GPU 자원을 주로 이용하는 프로세스를 의미하며, CPU 프로세스란 CPU 자원만을 이용하거나 CPU 자원을 주로 이용하는 프로세스를 의미한다. DCG 관리 모듈(122)은 미리 학습된 다양한 분류 모델을 이용하여 프로세스를 분류할 수 있으며, 일실시예로서 나이브 베이즈(Naive Bayes) 분류 모델을 이용할 수 있다.
DCG 관리 모듈(122)은 타겟 프로세스의 GPU 자원 사용량 및 타겟 프로세스에 이용되는 파일의 확장자를 이용하여, 타겟 프로세스를 분류할 수 있다. 리눅스 커널은 프로세스에 이용되는 파일을 모니터링하는 기능을 제공하며, DCG 관리 모듈(122)은 이러한 기능을 이용하여, 타겟 프로세스에 이용되는 파일의 확장자를 확인할 수 있다.
DCG 관리 모듈(122)은 제1저장 장치를 파티셔닝하고, 제1저장 장치의 파티션 별로 GPU 프로세스에 의해 생성된 데이터가 저장되는 DCG 저장 경로를 생성한다.
오버레이 파일 시스템(123)은 유니온 파일 시스템의 한 종류로서, 하나의 디렉토리 지점에 여러 개의 디렉토리를 마운트하여 마치 하나의 통합된 디렉토리처럼 보이도록 하는 파일 시스템이다. 오버레이 파일 시스템(123)은 플레그 정보를 이용하여 컨테이너에서 수행되는 타겟 프로세스가 GPU 프로세스인지 CPU 프로세스인지 여부를 확인하고, GPU 프로세스를 DCG 저장 경로에 매핑한다. 따라서, GPU 프로세스에 의해 생성된 데이터는 제1저장 장치(124)에 저장될 수 있다. 컨테이너에서 수행되는 프로세스가 CPU 프로세스인 경우, 오버레이 파일 시스템(123)은 CPU 프로세스에 의한 데이터가 제2저장 장치(125)에 저장될 수 있도록, CPU 프로세스와 저장 경로를 매핑한다.
제1저장 장치(124)는 고속 전송 프로토콜을 이용하는 저장 장치로서 NVMe SSD일 수 있으며, 제2저장 장치(125)는 저속 전송 프로토콜을 이용하는 저장 장치로서 SATA HDD 또는 SATA SSD일 수 있다.
도 2는 본 발명의 일실시예에 따른 가상화 환경에서 데이터를 저장하는 방법을 설명하기 위한 도면이며, 도 3은 타겟 프로세스의 분류 결과를 나타내는 테이블을 도시하는 도면이다. 그리고 도 4는 본 발명의 일실시예에 따른 오버레이 파일 시스템을 설명하기 위한 도면이다. 도 2에서는 워커 노드에서 수행되는 데이터 저장 방법이 일실시예로서 설명된다.
도 2를 참조하면, 본 발명의 일실시예에 따른 워커 노드는 컨테이너에서 수행되는 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류(S210)한다. 일실시예로서 워커 노드는 타겟 프로세스의 GPU 자원 사용량 및 타겟 프로세스에 이용되는 파일의 확장자를 이용하여, 타겟 프로세스를 분류할 수 있다.
예컨대 워커 노드는 타겟 프로세스에 이용되는 파일의 확장자를 확인하여, 프로세스에 이용되는 파일 중에서 그림 파일, 그래픽 파일과 같이 GPU 자원에 의해 처리되는 파일이 포함되며, GPU 자원 사용량이 임계량 이상인 경우, 타겟 프로세스를 GPU 프로세스로 분류할 수 있다.
또는 워커 노드는 타겟 프로세스에 이용되는 파일의 확장자 중에서 미리 설정된 확장자의 비율을 이용하여, 타겟 프로세스를 GPU 프로세스 및 CPU 프로세스 중 하나로 분류할 수 있다. 워커노드는 타겟 프로세스에 이용되는 파일의 전체 확장자 중에서, GPU 자원에 의해 처리되는 파일의 확장자 비율이 임계 비율 이상인 경우, 타겟 프로세스를 GPU 프로세스로 분류할 수 있다.
워커 노드는 전술된 바와 같이, 임계값을 이용하여 타겟 프로세스를 분류하거나 또는 훈련용 프로세스의 GPU 자원 사용량 및 훈련용 프로세스에 이용되는 파일의 확장자를 이용하여, 훈련용 프로세스를 GPU 프로세스 및 CPU 프로세스 중 하나로 분류하도록 학습된 분류 모델을 이용하여 타겟 프로세스를 분류할 수 있다.
단계 S210에서 워커 노드는 도 3과 같은 테이블을 이용하여, 타겟 컨테이너를 분류 하고 분류 결과를 기록할 수 있다. 테이블은 타겟 프로세스에 대한 GPU 자원 사용량 및 확장자 비율값을 포함하며, 워커 노드는 컨테이너에 새로운 프로세스가 생성될 경우, 새로운 타겟 프로세스에 대한 GPU 자원 사용량 및 확장자 비율값과 함께 분류 결과를 기록하여 테이블을 갱신할 수 있다. 이러한 테이블은 분류 모델의 재학습을 위한 훈련 데이터로 이용될 수 있다.
다시 도 2로 돌아와, 본 발명의 일실시예에 따른 워커 노드는 단계 S210의 분류 결과를 이용하여, 타겟 프로세스에 의해 생성된 데이터를 고속 전송 프로토콜을 이용하는 제1저장 장치 또는 저속 전송 프로토콜을 이용하는 제2저장 장치에 저장(S220)한다. 워커 노드는 일실시예로서, 타겟 프로세스가 GPU 프로세스인 경우, GPU 프로세스에 의해 생성된 데이터를 고속 전송 프로토콜을 이용하는 제1저장 장치에 저장하고, 타겟 프로세스가 CPU 프로세스인 경우, CPU 프로세스에 의해 생성된 데이터를 저속 전송 프로토콜을 이용하는 제2저장 장치에 저장할 수 있다.
본 발명의 일실시예에 따른 워커 노드는 GPU 프로세스에 의해 생성된 데이터가 제1저장 장치에 저장될 수 있도록, GPU 프로세스에 의해 생성된 데이터의 저장 경로를 생성하고, 저장 경로를 제1저장 장치의 파티션에 마운트할 수 있다. 그리고 저장 경로와 컨테이너의 아이디를 매핑한다.
구체적으로 워커 노드는 컨테이너에서 수행되는 프로세스의 종류에 무관하게, 프로세스의 개수에 따라서 제1저장 장치를 파티셔닝하고, 파티션 별로 제1저장 경로를 생성한다. 그리고 워커 노드는 플래그 정보를 이용하여 타겟 프로세의 분류 결과를 확인한 후, GPU 프로세스가 수행중인 컨테이너의 아이디를 제1저장 경로에 매핑한다. 따라서, GPU 프로세스에 의해 생성된 데이터는 제1저장 경로를 통해 제1저장 장치에 저장될 수 있다. CPU 프로세스에 의해 생성된 데이터는, 제2저장 장치에 마운트된 제2저장 경로를 통해 제2저장 장치에 저장될 수 있다.
한편, 타겟 프로세스가 GPU 프로세스로 분류되더라도, 타겟 프로세스는 GPU 자원과 CPU 자원을 동시에 모두 이용할 수 있다. 이 경우, GPU 자원에 의해 생성된 데이터는 제1저장 경로를 통해 제1저장 장치에 저장되고, CPU 자원에 의해 생성된 데이터는 제2저장 경로를 통해 제2저장 장치에 저장될 수 있다.
이 때, 제1 및 제2저장 경로는 오버레이 파일 시스템의 상위 디렉토리에 배치되며, 오버레이 파일 시스템의 병합 디렉토리에는 제2저장 경로가 배치될 수 있다.
오버레이 파일 시스템은 도 4에 도시된 바와 같이, 서로 다른 레이어에 위치하는 병합 디렉토리(merged dir, 410), 상위 디렉토리(upper dir, 420), 하위 디렉토리(lower dir, 430)로 구성된다. 하위 디렉토리(430)는 읽기 전용 디렉토리로서, 읽기 전용 파일의 저장 경로가 배치되며, 컨테이너 기반의 가상화 시스템에서 이미지 레이어에 대응된다. 상위 디렉토리(420)는 쓰기 디렉토리로서 새로운 파일이나 갱신된 파일의 저장 경로가 배치되며, 컨테이너 기반의 가상화 시스템에서 컨테이너 레이어에 대응된다. 병합 디렉토리(410)는 사용자에게 보여지는 디렉토리로서, 상위 디렉토리(420) 및 하위 디렉토리(430)가 병합된 형태로 사용자에게 보여진다.
따라서, 상위 디렉토리(420)에 제1 및 제2저장 경로(401, 402)가 배치됨으로써, GPU 및 CPU 자원에 처리된 파일은 각각 제1 및 제2저장 장치에 저장되지만, 사용자에게는 동일한 저장 경로에 의해 동일한 저장 장치에 저장되는 것으로 인식될 수 있다.
앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
Claims (8)
- 컨테이너에서 수행되는 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계; 및상기 타겟 프로세스가 GPU 프로세스인 경우, 상기 GPU 프로세스에 의해 생성된 데이터를 고속 전송 프로토콜을 이용하는 제1저장 장치에 저장하고, 상기 타겟 프로세스가 상기 CPU 프로세스인 경우, 상기 CPU 프로세스에 의해 생성된 데이터를 저속 전송 프로토콜을 이용하는 제2저장 장치에 저장하는 단계를 포함하는 가상화 환경에서 데이터를 저장하는 방법.
- 제 1항에 있어서,상기 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계는상기 타겟 프로세스의 GPU 자원 사용량 및 상기 타겟 프로세스에 이용되는 파일의 확장자를 이용하여, 상기 타겟 프로세스를 분류하는가상화 환경에서 데이터를 저장하는 방법.
- 제 2항에 있어서,상기 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계는상기 타겟 프로세스에 이용되는 파일의 확장자 중에서 미리 설정된 확장자의 비율을 이용하여, 상기 타겟 프로세스를 분류하는가상화 환경에서 데이터를 저장하는 방법.
- 제 3항에 있어서,상기 미리 설정된 확장자는GPU 자원에 의해 처리되는 파일의 확장자인가상화 환경에서 데이터를 저장하는 방법.
- 제 3항에 있어서,상기 타겟 프로세스를, GPU 프로세스 및 CPU 프로세스 중 하나로 분류하는 단계는미리 학습된 분류 모델을 이용하여, 상기 타겟 프로세스를 분류하며,상기 타겟 프로세스의 분류 결과를 훈련 데이터로 이용하여 상기 분류 모델을 재학습하는가상화 환경에서 데이터를 저장하는 방법.
- 제 1항에 있어서,상기 GPU 프로세스에 의한 데이터의 저장 경로를 생성하고, 상기 저장 경로를 상기 제1저장 장치의 파티션에 마운트하는 단계; 및상기 저장 경로와 상기 컨테이너의 아이디를 매핑하는 단계를 더 포함하는 가상화 환경에서 데이터를 저장하는 방법.
- 제 6항에 있어서,상기 GPU 프로세스가 GPU 자원 및 CPU 자원을 모두 이용하는 경우, 상기 GPU 자원에 의해 생성된 데이터의 제1저장 경로와 상기 CPU 자원에 의해 생성된 데이터의 제2저장 경로는, 오버레이 파일 시스템의 상위 디렉토리에 배치되며, 상기 오버레이 파일 시스템의 병합 디렉토리에는 상기 제2저장 경로가 배치되는가상화 환경에서 데이터를 저장하는 방법.
- 제 1항에 있어서,상기 제1저장 장치는 NVMe SSD이며,상기 제2저장 장치는 SATA HDD 또는 SATA SSD인가상화 환경에서 데이터를 저장하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0162015 | 2021-11-23 | ||
KR1020210162015A KR102484914B1 (ko) | 2021-11-23 | 2021-11-23 | 가상화 환경에서 데이터를 저장하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023096108A1 true WO2023096108A1 (ko) | 2023-06-01 |
Family
ID=84923984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2022/013598 WO2023096108A1 (ko) | 2021-11-23 | 2022-09-13 | 가상화 환경에서 데이터를 저장하는 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102484914B1 (ko) |
WO (1) | WO2023096108A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519613B (zh) * | 2024-01-08 | 2024-06-18 | 之江实验室 | 一种跨k8s集群的存储卷共享方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316940A (ja) * | 2006-05-25 | 2007-12-06 | Sony Computer Entertainment Inc | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 |
KR20110024508A (ko) * | 2009-09-02 | 2011-03-09 | 한양대학교 산학협력단 | 고성능 클러스터를 제공하는 가상화 서비스 관리 시스템 및 방법 그리고 가상화 서비스 시스템 및 가상화 서비스 제공 방법 |
KR20180045347A (ko) * | 2016-10-25 | 2018-05-04 | 에스케이텔레콤 주식회사 | 가상화 환경에서의 자원 관리 방법 및 이를 지원하는 장치 |
KR20190063112A (ko) * | 2017-11-29 | 2019-06-07 | 삼성전자주식회사 | 적어도 두 개의 채널들을 통해 시스템 온 칩과 통신하는 메모리 장치, 이를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 |
KR20200108357A (ko) * | 2018-02-05 | 2020-09-17 | 마이크론 테크놀로지, 인크. | 메모리 시스템에 구현된 메시지 전달 인터페이스를 통한 메모리 액세스 통신 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6749094B2 (ja) * | 2015-12-18 | 2020-09-02 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | コンテナ収容装置、コンテナ作成方法、及びプログラム |
-
2021
- 2021-11-23 KR KR1020210162015A patent/KR102484914B1/ko active IP Right Grant
-
2022
- 2022-09-13 WO PCT/KR2022/013598 patent/WO2023096108A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316940A (ja) * | 2006-05-25 | 2007-12-06 | Sony Computer Entertainment Inc | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 |
KR20110024508A (ko) * | 2009-09-02 | 2011-03-09 | 한양대학교 산학협력단 | 고성능 클러스터를 제공하는 가상화 서비스 관리 시스템 및 방법 그리고 가상화 서비스 시스템 및 가상화 서비스 제공 방법 |
KR20180045347A (ko) * | 2016-10-25 | 2018-05-04 | 에스케이텔레콤 주식회사 | 가상화 환경에서의 자원 관리 방법 및 이를 지원하는 장치 |
KR20190063112A (ko) * | 2017-11-29 | 2019-06-07 | 삼성전자주식회사 | 적어도 두 개의 채널들을 통해 시스템 온 칩과 통신하는 메모리 장치, 이를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 |
KR20200108357A (ko) * | 2018-02-05 | 2020-09-17 | 마이크론 테크놀로지, 인크. | 메모리 시스템에 구현된 메시지 전달 인터페이스를 통한 메모리 액세스 통신 |
Also Published As
Publication number | Publication date |
---|---|
KR102484914B1 (ko) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9582221B2 (en) | Virtualization-aware data locality in distributed data processing | |
JP5592942B2 (ja) | 仮想マシンシステムにおけるショートカット入出力 | |
US9854036B2 (en) | Method for migrating memory data of virtual machine, and related apparatus and cluster system | |
CN102077188B (zh) | 用于虚拟化操作系统的直接存储器访问过滤器 | |
US7380039B2 (en) | Apparatus, method and system for aggregrating computing resources | |
JP5373893B2 (ja) | 異なるサイズを有するデータのブロックを格納し、取り出すための構成 | |
US9189419B2 (en) | Detecting and suppressing redundant input-output operations | |
US8312201B2 (en) | Managing memory allocations loans | |
KR20140005280A (ko) | 가상 디스크 저장 기술 | |
US20150234669A1 (en) | Memory resource sharing among multiple compute nodes | |
US10691477B2 (en) | Virtual machine live migration using intelligent order of pages to transfer | |
US11308230B2 (en) | Direct access to host memory for guests | |
CN104572656A (zh) | 一种磁盘镜像空间回收的方法及装置 | |
CN106778275A (zh) | 基于虚拟化环境下的安全防护方法及系统和物理主机 | |
US10684884B1 (en) | Application containers running inside virtual machine | |
WO2023096108A1 (ko) | 가상화 환경에서 데이터를 저장하는 방법 | |
US9081788B2 (en) | Customizable file-type aware cache mechanism | |
CN106777394B (zh) | 一种集群文件系统 | |
US9128746B2 (en) | Asynchronous unmap of thinly provisioned storage for virtual machines | |
US11176053B2 (en) | Routing traffic of a logical unit to multiple backend data objects based on metadata mapping | |
US11762573B2 (en) | Preserving large pages of memory across live migrations of workloads | |
WO2022107932A1 (ko) | 컨테이너 기반의 가상화 시스템 및 가상화 시스템에서 컨테이너의 자원을 확장하는 방법 | |
US11880309B2 (en) | Method and system for tracking state of cache lines | |
GB2502288A (en) | Modifying the order of checking virtual machines for cached disc data | |
WO2024177187A1 (ko) | 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22898792 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |