KR102141158B1 - 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법 - Google Patents

분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법 Download PDF

Info

Publication number
KR102141158B1
KR102141158B1 KR1020180138848A KR20180138848A KR102141158B1 KR 102141158 B1 KR102141158 B1 KR 102141158B1 KR 1020180138848 A KR1020180138848 A KR 1020180138848A KR 20180138848 A KR20180138848 A KR 20180138848A KR 102141158 B1 KR102141158 B1 KR 102141158B1
Authority
KR
South Korea
Prior art keywords
parity
data
scheduler
gpu
target storage
Prior art date
Application number
KR1020180138848A
Other languages
English (en)
Other versions
KR20200055319A (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 KR1020180138848A priority Critical patent/KR102141158B1/ko
Publication of KR20200055319A publication Critical patent/KR20200055319A/ko
Application granted granted Critical
Publication of KR102141158B1 publication Critical patent/KR102141158B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)

Abstract

분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법이 제시된다. 일 실시예에 따른 GPU(Graphics Processing Unit) 스케줄링 방법은, 이니시에이터 서버의 인코딩 스케줄러는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하는 단계; 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키는 단계; 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록들을 패리티 HDD로 스트라이프하는 단계; 및 상기 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시키는 단계를 포함할 수 있다.

Description

분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법{LOW-POWER GPU SCHEDULING METHOD FOR DISTRIBUTED STORAGE APPLICATION}
아래의 실시예들은 분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법에 관한 것으로, 더욱 상세하게는 빅 데이터 처리를 위한 하이브리드 클라우드 스토리지 시스템에 대한 에너지 인식 GPU-RAID 스케줄링 방법에 관한 것이다.
최근 스토리지 동향은 클라우드 스토리지 시스템의 성능, 신뢰성 및 에너지 소비라는 관점에서 연구자들 및 SSD(Solid State Disk) 제조자들이 돌파구를 생각해야 할 필요성이 있다는 점을 알린다. HDD(Hard Disk Drives), SSD 및 하이브리드 클라우드 스토리지 시스템의 에너지 소비를 감소시키기 위해 많은 방법들이 제안되었다. 이 방법들은 에너지 비용 프로파일링(profiling energy cost), 그래픽 처리 장치(Graphics Processing Unit, GPU) 기반 파일 시스템(GPUfs), 에너지 절약 RAID(Redundant Array of Inexpensive Disks) 구조 및 전력 모드 스케줄링을 포함한다.
클라우드 스토리지 시스템에서, RAID는 에너지 소비가 크고 데이터와 패리티를 스토리지에 스트라이프(stripe)하기 위해 이레이저 코딩을 적용해야 한다. 이 성질은 스토리지 시스템이 디스크 실패에 강인하도록(resist) 만든다.
그러나, 입력/출력(Input/Output, I/O) 연산은 CPU를 사용하는 코딩과 스케줄링을 동반하기 때문에, 기존 RAID 시스템의 성능은 중앙 처리 장치(Central Processing Unit, CPU)의 순차적인 성질에 의해 제한된다.
A.Kadav, M. Balakrishnan, V. Prabhakaran, D. Malkhi," Differential RAID: rethinking RAID for SSD reliability," ACMTrans. Operating Systems Review, pp. 55-59. 2010.
실시예들은 분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법에 관하여 기술하며, 보다 구체적으로 클라우드 스토리지 시스템을 위한 새로운 에너지 인식 GPU 기반의 이레이저(erasure) 코딩 스케줄러에 관한 기술을 제공한다.
실시예들은 GPU를 사용해 패리티를 생성하며, 이니시에이터 서버에 패리티를 스트라이프하고, 목표 스토리지 서버에 데이터를 스트라이프함으로써, 코딩 시간 및 GPU 사이클의 수를 감소시킬 수 있는 분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법을 제공하는데 있다.
일 실시예에 따른 GPU(Graphics Processing Unit) 스케줄링 방법은, 이니시에이터 서버의 인코딩 스케줄러는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하는 단계; 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키는 단계; 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록들을 패리티 HDD로 스트라이프하는 단계; 및 상기 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시키는 단계를 포함할 수 있다.
목표 스토리지 서버의 인코딩 스케줄러는 복수의 SSD를 포함하는 SSD 프로파일러를 생성하는 단계; 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당하는 단계; 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환하는 단계; 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프하는 단계; 및 상기 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환하는 단계를 더 포함할 수 있다.
다른 실시예에 따른 GPU(Graphics Processing Unit) 스케줄링 시스템은, GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하고, 생성된 상기 패리티 블록들을 HDD로 스트라이프하는 이니시에이터 서버; 및 데이터 블록을 읽어 CPU 메모리로 할당하고, 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프하는 목표 스토리지 서버를 포함하여 이루어질 수 있다.
상기 이니시에이터 서버는, 상기 이니시에이터 서버의 인코딩 스케줄러가 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하고, 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키며, 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록들을 패리티 HDD로 스트라이프한 후, 상기 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시킬 수 있다.
상기 목표 스토리지 서버는, 상기 목표 스토리지 서버의 인코딩 스케줄러가 복수의 SSD를 포함하는 SSD 프로파일러를 생성하고, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당하며, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환하고, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프한 후, 상기 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환할 수 있다.
실시예들에 따르면 GPU를 사용해 패리티를 생성하며, 이니시에이터 서버에 패리티를 스트라이프하고, 목표 스토리지 서버에 데이터를 스트라이프함으로써, 코딩 시간 및 GPU 사이클의 수를 감소시킬 수 있는 분산 스토리지 어플리케이션의 저전력 GPU 스케줄링 방법을 제공할 수 있다.
또한, 실시예들에 따르면 병렬성(parallelism)을 증가시키며, 패리티 생성 시 어떠한 CPU 병목 현상도 해결할 수 있다.
도 1은 종래의 클라우드 스토리지 시스템의 구조를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 이니시에이터 서버의 GPU 스케줄링 방법을 나타내는 흐름도이다.
도 3은 일 실시예에 따른 목표 스토리지 서버의 GPU 스케줄링 방법을 나타내는 흐름도이다.
도 4는 일 실시예에 따른 GPU 스케줄링 시스템을 나타내는 블록도이다.
도 5는 일 실시예에 따른 클라우드 스토리지 시스템의 구조를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 에너지 소비 결과를 나타내는 도면이다.
이하, 첨부된 도면을 참조하여 실시예들을 설명한다. 그러나, 기술되는 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시예들에 의하여 한정되는 것은 아니다. 또한, 여러 실시예들은 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
RAID(Redundant Array of Inexpensive Disks) 기반 스토리지 시스템은 중앙 처리 장치(Central Processing Unit, CPU)의 순차적인 성질에 의해 성능에 한계가 있으며, 데이터와 패리티(parity)를 스토리지 장치에 스트라이프(stripe)하기 위해 이레이저(erasure) 코딩을 필요로 하기 때문에 많은 에너지를 소비한다.
아래의 실시예들은 에너지 인식 GPU 기반 스케줄링을 제공하는 것으로, 빅 데이터 처리를 위한 하이브리드 클라우드 스토리지 시스템에 대한 에너지 인식 GPU-RAID 스케줄링 기술을 제공한다. 제안하는 하이브리드 클라우드 스토리지 시스템은 하나의 이니시에이터 서버(initiator sever), 하나의 목표 스토리지 서버(target storage server) 및 10G 고속 스토리지 네트워크로 구성될 수 있다. 제안하는 하이브리드 클라우드 스토리지 시스템은 목표 서버(목표 스토리지 서버)에 데이터를 스트라이프하고, GPU를 사용해 패리티를 생성하며, 이니시에이터 서버에 패리티를 스트라이프할 수 있으며, 이를 GPU-RAID라고 할 수 있다.
제안하는 GPU-RAID는 CPU 사이클의 수 및 코딩 시간을 감소시킬 수 있다는 점에서 기존의 RAID와 차이가 있다. 또한, CPU의 순차적 성질에 기인한 패리티 및 데이터 스트라이핑 병목 현상(striping bottleneck)을 해결하여 IO 성능을 향상시킬 수 있다. 또한, 새로운 에너지 인식 스케줄링 방식이 이니시에이터 서버 및 목표 서버(목표 스토리지 서버)에 적용될 수 있다.
에너지 소비의 관점에서, 클라우드 스토리지 시스템의 IO 성능은 패리티를 생성하기 위한 CPU 사이클의 수와 초당 IO 연산의 수와 관련된다. 이레이저 코딩 기술은 클라우드 스토리지 내의 데이터 실패에 대한 강인성(resistance)을 제공한다. 그러나, CPU의 순차적인 성질 및 비탄력적인 전력 스케줄링 방식에 기인하여 기존의 이레이저 코딩 성능은 낮아진다. 결과적으로, 데이터를 인코딩하고 디코딩하는 것은 많은 에너지와 시간을 필요로 한다.
에너지 효율의 관점에서, SSD가 ON, OFF, 슬립(sleep), 활성(active) 및 유휴(idle)와 같은 다양한 전력 모드를 갖고 있고 HDD는 슬립(드라이브가 꺼짐), 대기(standby)(저전력 모드, 드라이브가 느리게 회전함), 활성 및 유휴(일반적인 연산)와 같은 또 다른 전력 모드를 갖기 때문에, 다양한 IO 스케줄링 방식들이 제시되었다. CPU 기반 인코딩의 총 에너지 비용 E encoding 은 수학식 1 및 수학식 2를 기초로 계산될 수 있다.
[수학식 1]
Figure 112018112514085-pat00001
[수학식 2]
Figure 112018112514085-pat00002
여기서, t idle , t coding t active 는 각각 유휴 시간, 패리티 생성 시간 및 읽기/쓰기 시간으로 표현된다. 코딩, 활성 모드 및 유휴 모드를 위한 전력 소비는 각각 e coding , e active e idle 로 표현된다. 따라서, 각 CPU 사이클에 대한 전력 소비는 e CPU cycle 라고 표현된다. 디스크, 쓰레드(threads) 및 CPU 코어의 개수는 N disk , N thread 및 N core 라고 표현된다.
도 1은 종래의 클라우드 스토리지 시스템의 구조를 설명하기 위한 도면이다.
도 1을 참조하면, 종래의 플래시 배열 클라우드 스토리지(flash array cloud storage) 시스템(10)의 구조를 확인할 수 있다. 인코딩 요청은 이니시에이터 서버(initiator server)(11)의 쓰기 연산을 통해 발생한다.
이니시에이터 서버(11)에서 데이터 청킹 방법(data chunking method)은 파일들을 청크들로 분류한다.
그리고, 목표 스토리지 서버(target storage server)(12)에서 리눅스 다중 장치(multiple devices, MD) RAID는 데이터와 패리티 청크들을 플래시 배열 스토리지 시스템에 스트라이프(stripe)한다. 리눅스 MD RAID는 데이터 D를 k 개의 데이터 원소로 스트라이프하여
Figure 112018112514085-pat00003
이며, 여기서 n이 디스크의 수이고
Figure 112018112514085-pat00004
(= k /n)이 스트라이프의 수라고 가정한다. 패리티 원소를 생성하기 위한 일련의 배타적 논리합(exclusive or, XOR) 연산은 다음 식과 같이 나타낼 수 있다.
[수학식 3]
Figure 112018112514085-pat00005
XOR 연산은 하나의 스트라이프 내 데이터 원소들 간에 수행된다. 모든 패리티 데이터는 데이터 벡터의 XOR 연산을
Figure 112018112514085-pat00006
번 반복함으로써 생성되며, 각 XOR 연산은 다음 XOR 연산이 수행되기 전에 끝나야 한다. 결과적으로, 총
Figure 112018112514085-pat00007
번의 지연이 CPU의 순차적 성질에 의해 발생한다.
도 2는 일 실시예에 따른 이니시에이터 서버의 GPU 스케줄링 방법을 나타내는 흐름도이다.
도 2를 참조하면, 일 실시예에 따른 GPU(Graphics Processing Unit) 스케줄링 방법은, 이니시에이터 서버의 인코딩 스케줄러는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하는 단계(S110), 이니시에이터 서버의 인코딩 스케줄러는 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키는 단계(S120), 이니시에이터 서버의 인코딩 스케줄러는 패리티 블록들을 패리티 HDD로 스트라이프하는 단계(S130), 및 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시키는 단계(S140)를 포함할 수 있다.
도 3은 일 실시예에 따른 목표 스토리지 서버의 GPU 스케줄링 방법을 나타내는 흐름도이다.
도 3을 참조하면, GPU 스케줄링 방법은, 목표 스토리지 서버의 인코딩 스케줄러는 복수의 SSD를 포함하는 SSD 프로파일러를 생성하는 단계(S210), 목표 스토리지 서버의 인코딩 스케줄러는 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당하는 단계(S220), 목표 스토리지 서버의 인코딩 스케줄러는 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환하는 단계(S230), 목표 스토리지 서버의 인코딩 스케줄러는 CPU 메모리의 데이터 블록들을 복수의 데이터 SSD로 스트라이프하는 단계(S240), 및 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환하는 단계(S250)를 더 포함할 수 있다.
도 2 및 도 3에서 설명한 일 실시예에 따른 GPU 스케줄링 방법은 아래에서 하나의 예를 들어 설명하기로 한다.
일 실시예에 따른 GPU 스케줄링 방법은 일 실시예에 따른 GPU 스케줄링 시스템을 이용하여 보다 구체적으로 설명할 수 있다.
도 4는 일 실시예에 따른 GPU 스케줄링 시스템을 나타내는 블록도이다.
도 4를 참조하면, 일 실시예에 따른 GPU 스케줄링 시스템은 이니시에이터 서버 및 목표 스토리지 서버를 포함하여 이루어질 수 있다.
이니시에이터 서버는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하고, 생성된 패리티 블록들을 HDD로 스트라이프할 수 있다.
보다 구체적으로, 단계(S110)에서, 이니시에이터 서버의 인코딩 스케줄러는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성할 수 있다.
단계(S120)에서, 이니시에이터 서버의 인코딩 스케줄러는 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시킬 수 있다.
단계(S130)에서, 이니시에이터 서버의 인코딩 스케줄러는 패리티 블록들을 패리티 HDD로 스트라이프할 수 있다.
단계(S140)에서, 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시킬 수 있다.
한편, 목표 스토리지 서버는 데이터 블록을 읽어 CPU 메모리로 할당하고, CPU 메모리의 데이터 블록들을 복수의 데이터 SSD로 스트라이프할 수 있다.
보다 구체적으로, 단계(S210)에서, 목표 스토리지 서버의 인코딩 스케줄러는 복수의 SSD를 포함하는 SSD 프로파일러를 생성할 수 있다.
단계(S220)에서, 목표 스토리지 서버의 인코딩 스케줄러는 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당할 수 있다.
단계(S230)에서, 목표 스토리지 서버의 인코딩 스케줄러는 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환할 수 있다.
단계(S240)에서, 목표 스토리지 서버의 인코딩 스케줄러는 CPU 메모리의 데이터 블록들을 복수의 데이터 SSD로 스트라이프할 수 있다.
단계(S250)에서, 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환할 수 있다.
아래에서 GPU 스케줄링 방법 및 시스템을 계속하여 설명한다.
도 5는 일 실시예에 따른 클라우드 스토리지 시스템의 구조를 설명하기 위한 도면이다.
도 5를 참조하면, 일 실시예에 따른 하이브리드 클라우드 스토리지 시스템 은 에너지 인식 GPU 기반 플래시 배열 클라우드 스토리지(energy-aware GPU-based flash array cloud storage)의 구조를 나타낸다. 이는, 도 4에서 설명한 GPU 스케줄링 시스템(100)을 포함하거나 포함될 수 있으며, 아래에서는 GPU 스케줄링 시스템(100)을 중심으로 설명한다.
일 실시예에 따른 GPU 스케줄링 시스템(100)은 하나의 이니시에이터 서버(110) 및 목표 스토리지 서버(120)를 포함할 수 있다. 실시예에 따라 10G 고속 스토리지 네트워크를 더 포함하여 이루어질 수 있다.
인코딩은 실제 데이터에서 패리티 데이터를 생성하여 데이터와 패리티를 데이터 디스크에 스트라이프하는 과정이다(비특허문헌 1). 일 실시예에 따른 GPU 스케줄링 시스템(100)은 목표 스토리지 서버(120) 및 이니시에이터 서버(110)에 에너지 인식 GPU-RAID 스케줄링을 제공할 수 있다. 제안하는 방법은 패리티를 생성하고 이를 패리티 서버에 스트라이프하기 위해 GPU를 사용하며, 목표 스토리지 서버(120)에 데이터를 스트라이프할 수 있다. 이는 코딩 시간과 에너지 소비를 감소시키고 스토리지 네트워크의 부담을 경감시킬 수 있다. 데이터와 패리티 스토리지 양측에 대해, 에너지 인식 스케줄링 방식을 적용할 수 있다.
이니시에이터 서버(110)에서, 데이터 사전 청킹 모듈(data pre-chunking module)은 파일은 청크들로 분류하고, GPU 패리티 생성자(parity generator)는 GPU 패리티 계산 모듈(GPU parity computing module), 메모리 할당자(memory allocator) 및 주소 변환 함수(address translation function)를 사용해 패리티 데이터를 생성할 수 있다.
GPU 패리티 생성자는 메인 메모리로부터 GPU 메모리까지의 주소 변환을 필요로 한다. 그리고, 패리티는 이니시에이터 서버(110) 측 HDD 스토리지에 쓰인다. 전력 소비를 감소시키기 위해, 제안하는 스케줄러는 활성 모드 및 대기 모드 사이에서 HDD 전력 모드를 전환시킨다.
목표 스토리지 서버(120)에서, 데이터 사후 청킹 모듈(data post-chunking module)은 사전 청킹 모듈에 의해 정의된 것과 동일한 크기로 청크들을 분류한다. 제안하는 스케줄러는 SSD 프로파일 및 IO 스케줄러 함수를 사용하여 플래시 배열 기반 데이터 스토리지의 전력 모드를 전환시킨다. 에너지 인식 스케줄러 모듈은 SSD 전력 모드를 활성 모드와 유휴 모드 사이에서 전환함으로써 전력 소비를 감소시키는 데 사용된다. 마지막으로, IO 리디렉터(IO redirector)는 에너지 인식 스케줄러 방식을 사용하여 데이터를 플래시 배열 스토리지에 쓴다.
표 1은 이니시에이터 서버 및 목표 스토리지 서버 측 인코딩 스케줄러의 슈도 코드(pseudo-code)를 나타낸다.
[표 1]
Figure 112018112514085-pat00008
표 1을 참조하면, 라인 (1)에서, 데이터 블록은 CPU 메모리에 저장될 수 있다. 라인 (2)에서, 이니시에이터 서버(110)에 있는 인코딩 스케줄러는 GPU_parity_compute 함수를 호출하여 데이터 블록으로부터 패리티 블록을 생성할 수 있다. 라인 (3)에서, 패리티 블록을 HDD 스토리지에 쓰기 위하여, HDD를 대기 모드에서 활성 전력 모드로 전환할 필요가 있다. 라인 (4)에서, 이니시에이터 서버(110) 스케줄러는 패리티 블록들을 패리티 HDD에 스트라이프할 수 있다. 마지막으로, 라인 (5)에서, 전력 소비를 감소시키기 위하여, 스케줄러는 HDD를 활성 모드에서 대기 전력 모드로 전환시킬 수 있다.
라인 (6)에서, 목표 스토리지 서버(120) 측 인코딩 스케줄러는 n개의 SSD를 포함하는 SSD 프로파일러(profiler)를 생성할 수 있다. 라인 (7)에서, 데이터 블록은 목표 스토리지 서버(120) 측에서 iSCSI 목표(target)로부터 CPU 메모리로 저장될 수 있다. 라인 (8)에서, 데이터 블록을 SSD에 스트라이프하기 위하여, SSD 전력 모드를 유휴 모드에서 활성 모드로 바꿔야 한다. 라인 (9)에서, 목표 스토리지 서버(120) 측 인코딩 스케줄러는 데이터 블록들을 n개의 데이터 SSD로 스트라이프할 수 있다. 마지막으로, 라인 (10)에서, 전력 소비를 감소시키기 위해, 스케줄러는 SSD 전력을 활성 모드에서 유휴 모드로 바꿀 수 있다.
이상과 같이, 실시예들은 에너지 인식 GPU 기반 스케줄링 기술을 제안하는 것으로, 제안하는 스케줄러는 CPU 사이클의 수와 코딩 시간을 감소시킬 수 있다는 점에서 기존의 RAID와 차이가 있다. 실시예들에 따르면 GPU를 사용하여 패리티를 생성하고, 이니시에이터 서버에 패리티를 스트라이프하며, 목표 스토리지 서버에 데이터를 스트라이프할 수 있다. 여기서 데이터 스토리지인 SSD(Solid State Disk)와 패리티 스토리지인 HDD(Hard Disk Drive)를 기반으로 하는 에너지 인식 스케줄링 방식을 적용할 수 있다.
에너지 인식 GPU 기반 플래시 배열 클라우드 스토리지에 대해 제안하는 구조는 오픈 소스인 Jerasure 소프트웨어를 사용하는 CentOS 운영 체제에서 구현될 수 있다. 하이브리드 클라우드 스토리지에 대한 SSD 및 HDD 사양은 다음과 같이 나타낼 수 있다.
표 2는 하이브리드 클라우드 스토리지에 대한 SSD와 HDD 사양을 나타낸다.
[표 2]
Figure 112018112514085-pat00009
제안하는 에너지 인식 특징들을 가능하게 하기 위하여, CentOS 6.2 운영 체제에서 hdparm tool이 사용되었다. Linux-RAID 6이 기존의 RAID 6 구조로서 사용되는 반면, GPU-RAID 6은 제안하는 RAID 6 구조로서 사용될 수 있다.
도 6은 일 실시예에 따른 에너지 소비 결과를 나타내는 도면이다.
도 6을 참조하면, Linux-RAID 6 및 GPU-RAID 6의 에너지 소비를 보여준다. GPU-RAID 6의 평균적인 에너지 소비는 Linux-RAID 6과 비교했을 때 45% 향상되는 것을 확인할 수 있다. 이는, 청크 사이즈가 증가할 때 Linux-RAID 6에서 보다 GPU-RAID 6에서 tactive 및 tcoding가 더 급격히 감소하기 때문이다.
실시예들에 따르면 목표 스토리지 서버 및 이니시에이터 서버에 있는 GPU-RAID를 위한 에너지 인식 스케줄링에 더 높은 입력/출력 성능을 제공할 수 있다. GPU-RAID는 GPU를 사용해 패리티를 생성하고 이를 이니시에이터 서버에 스트라이프하여, 목표 스토리지 서버에 데이터를 스트라이프 함으로써 코딩 시간 및 GPU 사이클의 수를 감소시킨다는 점에서 기존의 RAID와 차이가 있다. 이는, 병렬성(parallelism)을 증가시키며, 패리티 생성 시 어떠한 CPU 병목 현상도 해결할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (5)

  1. GPU(Graphics Processing Unit) 스케줄링 방법에 있어서,
    이니시에이터 서버의 인코딩 스케줄러는 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하는 단계;
    상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키는 단계;
    상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록들을 패리티 HDD로 스트라이프하는 단계; 및
    상기 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시키는 단계
    를 포함하고,
    목표 스토리지 서버의 인코딩 스케줄러는 복수의 SSD를 포함하는 SSD 프로파일러를 생성하는 단계;
    상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당하는 단계;
    상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환하는 단계;
    상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프하는 단계; 및
    상기 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환하는 단계
    를 더 포함하며,
    상기 이니시에이터 서버의 데이터 사전 청킹 모듈(data pre-chunking module)은 데이터를 청크들로 분류하고, GPU 패리티 생성자(parity generator)는 GPU 패리티 계산 모듈(GPU parity computing module), 메모리 할당자(memory allocator) 및 주소 변환 함수(address translation function)를 사용하여 패리티 블록을 생성하며,
    상기 목표 스토리지 서버의 데이터 사후 청킹 모듈(data post-chunking module)은 상기 데이터 사전 청킹 모듈에 의해 정의된 것과 동일한 크기로 청크들을 분류하고, SSD 프로파일 및 IO 스케줄러 함수를 사용하여 플래시 배열 기반으로 데이터 SSD의 전력 모드를 전환하는 것
    을 특징으로 하는, GPU 스케줄링 방법.
  2. 삭제
  3. GPU(Graphics Processing Unit) 스케줄링 시스템에 있어서,
    GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하고, 생성된 상기 패리티 블록들을 HDD로 스트라이프하는 이니시에이터 서버; 및
    데이터 블록을 읽어 CPU 메모리로 할당하고, 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프하는 목표 스토리지 서버
    를 포함하고,
    상기 이니시에이터 서버는,
    상기 이니시에이터 서버의 인코딩 스케줄러가 GPU 패리티 계산 함수를 호출하여 CPU 메모리에 저장된 데이터 블록으로부터 패리티 블록을 생성하고, 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록을 HDD 스토리지에 스트라이프하기 위하여, HDD의 전력 모드를 대기 모드에서 활성 모드로 전환시키며, 상기 이니시에이터 서버의 인코딩 스케줄러는 상기 패리티 블록들을 패리티 HDD로 스트라이프한 후, 상기 이니시에이터 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위하여, HDD의 전력 모드를 활성 모드에서 대기 모드로 전환시키며,
    상기 목표 스토리지 서버는,
    상기 목표 스토리지 서버의 인코딩 스케줄러가 복수의 SSD를 포함하는 SSD 프로파일러를 생성하고, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 목표 스토리지 서버에서 데이터 블록을 읽어 CPU 메모리로 할당하며, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 데이터 블록을 SSD에 스트라이프하기 위하여, SSD의 전력 모드를 유휴 모드에서 활성 모드로 전환하고, 상기 목표 스토리지 서버의 인코딩 스케줄러는 상기 CPU 메모리의 상기 데이터 블록들을 복수의 데이터 SSD로 스트라이프한 후, 상기 목표 스토리지 서버의 인코딩 스케줄러는 전력 소비를 감소시키기 위해, SSD의 전력 모드를 활성 모드에서 유휴 모드로 전환하고,
    상기 이니시에이터 서버의 데이터 사전 청킹 모듈(data pre-chunking module)은 데이터를 청크들로 분류하고, GPU 패리티 생성자(parity generator)는 GPU 패리티 계산 모듈(GPU parity computing module), 메모리 할당자(memory allocator) 및 주소 변환 함수(address translation function)를 사용하여 패리티 블록을 생성하며,
    상기 목표 스토리지 서버의 데이터 사후 청킹 모듈(data post-chunking module)은 상기 데이터 사전 청킹 모듈에 의해 정의된 것과 동일한 크기로 청크들을 분류하고, SSD 프로파일 및 IO 스케줄러 함수를 사용하여 플래시 배열 기반으로 데이터 SSD의 전력 모드를 전환하는 것
    을 특징으로 하는, GPU 스케줄링 시스템.
  4. 삭제
  5. 삭제
KR1020180138848A 2018-11-13 2018-11-13 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법 KR102141158B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180138848A KR102141158B1 (ko) 2018-11-13 2018-11-13 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180138848A KR102141158B1 (ko) 2018-11-13 2018-11-13 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20200055319A KR20200055319A (ko) 2020-05-21
KR102141158B1 true KR102141158B1 (ko) 2020-08-04

Family

ID=70910676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180138848A KR102141158B1 (ko) 2018-11-13 2018-11-13 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR102141158B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110451A (ja) * 2007-10-31 2009-05-21 Masaru Kiregawa 計算機システム省電力化方法及び計算機
KR101616347B1 (ko) * 2015-04-16 2016-05-13 인하대학교산학협력단 범용 그래픽 프로세서 기반 클라우드 스토리지의 소거 코딩 방법
KR101893655B1 (ko) 2016-10-20 2018-08-31 인하대학교 산학협력단 다중 가상머신 환경에서의 패스쓰루 gpu를 이용한 계층적 raid의 패리티 생성 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5331192B2 (ja) * 2011-11-07 2013-10-30 株式会社スクウェア・エニックス・ホールディングス 描画サーバ、センタサーバ、符号化装置、制御方法、符号化方法、プログラム、及び記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110451A (ja) * 2007-10-31 2009-05-21 Masaru Kiregawa 計算機システム省電力化方法及び計算機
KR101616347B1 (ko) * 2015-04-16 2016-05-13 인하대학교산학협력단 범용 그래픽 프로세서 기반 클라우드 스토리지의 소거 코딩 방법
KR101893655B1 (ko) 2016-10-20 2018-08-31 인하대학교 산학협력단 다중 가상머신 환경에서의 패스쓰루 gpu를 이용한 계층적 raid의 패리티 생성 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Deok-Hwan Kim 외 1명. 'Reliable Energy-Aware SSD based RAID-6 System'. 2012.01., pp.1-2.*

Also Published As

Publication number Publication date
KR20200055319A (ko) 2020-05-21

Similar Documents

Publication Publication Date Title
US20150193154A1 (en) Data Migration Method, Data Migration Apparatus, and Storage Device
US10540206B2 (en) Dynamic virtual processor manager
Akiyama et al. Miyakodori: A memory reusing mechanism for dynamic vm consolidation
US20150363134A1 (en) Storage apparatus and data management
US9984091B2 (en) Reducing decompression latency in a compression storage system
US20180364922A1 (en) Dynamic caching mode based on utilization of mirroring channels
US20150201016A1 (en) Methods and system for incorporating a direct attached storage to a network attached storage
Hu et al. {QZFS}:{QAT} Accelerated Compression in File System for Application Agnostic and Cost Efficient Data Storage
JP5962621B2 (ja) ストレージ装置及びその制御方法、並びにストレージ制御プログラム
KR20180059197A (ko) 총 플래시 어레이 기반 오픈스택 클라우드 블록 스토리지에서의 패리티 데이터 중복제거 방법
Naveenkumar et al. Performance Impact Analysis of Application Implemented on Active Storage Framework
WO2022007225A1 (zh) 数据存储方法、存储系统、存储设备及存储介质
KR102141158B1 (ko) 분산 스토리지 어플리케이션의 저전력 gpu 스케줄링 방법
JP2012248177A (ja) 複数のオペレーションモードがあるコンピュータ・システムとそのスイッチ方法
US9645740B2 (en) Self-detecting storage bottleneck while handling sequential I/O operations
KR102197379B1 (ko) 분산스토리지 어플리케이션의 저전력 raid 스케쥴링 기법
US10768844B2 (en) Internal striping inside a single device
Pirahandeh et al. Energy-aware GPU-RAID scheduling for reducing energy consumption in cloud storage systems
Heo et al. Parity data de-duplication in all flash array-based openstack cloud block storage
Dong Coop-u: a cooperative update scheme for erasure-coded storage systems
WO2017122263A1 (ja) 管理計算機及び管理方法
Qiao et al. ACTOR: active cloud storage with energy-efficient on-drive data processing
US10664448B2 (en) Streamlined padding of deduplication repository file systems
US8990523B1 (en) Storage apparatus and its data processing method
Deng et al. Fast saving and restoring virtual machines with page compression

Legal Events

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