KR101730508B1 - 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치 - Google Patents

스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치 Download PDF

Info

Publication number
KR101730508B1
KR101730508B1 KR1020150182968A KR20150182968A KR101730508B1 KR 101730508 B1 KR101730508 B1 KR 101730508B1 KR 1020150182968 A KR1020150182968 A KR 1020150182968A KR 20150182968 A KR20150182968 A KR 20150182968A KR 101730508 B1 KR101730508 B1 KR 101730508B1
Authority
KR
South Korea
Prior art keywords
priority
request
spark streaming
job
based cloud
Prior art date
Application number
KR1020150182968A
Other languages
English (en)
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 KR1020150182968A priority Critical patent/KR101730508B1/ko
Application granted granted Critical
Publication of KR101730508B1 publication Critical patent/KR101730508B1/ko

Links

Images

Classifications

    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • H04L67/322

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법 및 장치가 개시된다. 스파크 스트리밍 기반 클라우드 시스템에서 I/O 요청 처리 방법은 스파크 스트리밍 기반 클라우드 시스템이 잡에 의한 I/O 요청을 수신하는 단계, 스파크 스트리밍 기반 클라우드 시스템이 잡의 우선 순위를 결정하는 단계와 스파크 스트리밍 기반 클라우드 시스템이 우선 순위에 따라 I/O 요청을 SSD에서 처리할지 여부를 결정하는 단계를 포함할 수 있다.

Description

스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법 및 장치{Method and apparatus for managing selective I/O(input/output) request in cloud server based on Spark Streaming}
본 발명은 선별적 I/O 요청 처리 방법에 관한 것으로서, 보다 상세하게는, 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법 및 장치에 관한 것이다.
아파치 소프트웨어 재단은 빅데이터 처리를 분산 클러스터에서 고속으로 실행할 수 있는 처리 기반의 스파크(Spark) 1.0을 정식으로 공개했다. 스파크는 빅 데이터를 위한 실시간 분산형 컴퓨팅 프로젝트이다. 빅데이터의 대표적인 분산형 저장 프로젝트인 하둡(Haddop)과는 다르게 스파크에는 '실시간'이라는 용어가 따라붙는다.
하둡은 HDFS(Hadoop Distributed File System)를 통해 스토리지를 경유하기 때문에 상호 작용이 많아져 느리다는 단점이 있다. 이에 비해, 스파크는 인-메모리 처리를 기본으로 하기 때문에 좀 더 빠르고 지연 속도가 낮은 분석이 가능해 차세대 빅데이터 처리를 위한 프레임워크로 기대되고 있다.
스파크는 처리 대상이 되는 빅데이터를 HDFS에서 읽을 수 있지만, 이후 처리는 기본적으로 메모리에서 하기 때문에 기계 학습이나 차트 계산처럼 반복 계산이 많은 작업에서는 하둡보다 빠르게 수행될 수 있다. 그래서 스파크는 하둡 맵리듀스 상에서 구동하는 것보다 100배 이상 빠른 데이터 분석 작업을 수행할 수 있게 해 준다는 평가를 받고 있다.
맵리듀스는 배치 모드에서 작업을 실행하기 때문에 하둡 클러스터에서 성능 상의 병목 현상을 일으킨다는 지적을 받아왔다. 이에 비해 스파크는 5초 이하의 짧은 배치 작업을 통해 분석을 처리하기 때문에 맵리듀스의 대안으로 부각되었다.
KR 10-2013-0147167
본 발명의 일 측면은 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 제공한다.
본 발명의 다른 측면은 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 장치를 제공한다.
본 발명의 일 측면에 따른 스파크 스트리밍(Spark Streaming) 기반 클라우드 시스템에서 I/O(input/output) 요청 처리 방법은 스파크 스트리밍 기반 클라우드 시스템이 잡(job)에 의한 I/O 요청을 수신하는 단계, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 잡의 우선 순위를 결정하는 단계와 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 따라 상기 I/O 요청을 SSD(solid state disk)에서 처리할지 여부를 결정하는 단계를 포함할 수 있다.
한편, 스파크 스트리밍 기반 클라우드 시스템에서 I/O 요청 처리 방법은 상기 우선 순위가 노말 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 대한 고려없이 상기 I/O 요청을 상기 SSD 또는 HDD(hard drive disk)에서 처리하는 단계와 상기 우선 순위가 긴급 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 I/O 요청을 상기 SSD에서 처리하는 단계를 더 포함할 수 있다.
또한, 상기 우선 순위가 상기 긴급 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 I/O 요청을 상기 SSD에서 처리하는 단계는 상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 읽기 타입인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템은 상기 I/O 요청을 읽고 상기 SSD에 저장하는 단계와 상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 쓰기 타입인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템은 상기 I/O 요청을 상기 SSD에 저장하는 단계를 포함할 수 있다.
또한, 상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 스파크 스트리밍의 마스터 프로세스(master process)에 의해 결정되고, 상기 우선 순위에 대한 정보는 상기 스파크 스트리밍의 워커 프로세스(worker process)를 통해 OS(operating system)로 전달될 수 있다.
또한, 상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 HDFS(Hadoop Distributed File System)의 네임노드 프로세스(namenode process)에 의해 결정되고, 상기 우선 순위에 대한 정보는 상기 HDFS의 데이터노드 프로세스(datanode process)를 통해 OS(operating system)로 전달될 수 있다.
본 발명의 다른 측면에 따른 I/O(input/output) 요청 처리를 수행하는 스파크 스트리밍(Spark Streaming) 기반 클라우드 시스템은 (job)에 의한 I/O 요청을 수신하도록 구현되는 입력부와 상기 잡의 우선 순위를 결정하도록 구현되는 스파크 스트리밍 계층 및 HDFS(Hadoop Distributed File System) 계층와 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 따라 상기 I/O 요청을 SSD(solid state disk)에서 처리할지 여부를 결정하는 OS 계층을 포함할 수 있다.
한편, 상기 우선 순위가 노말 우선 순위인 경우, 상기 OS 계층은 상기 우선 순위에 대한 고려없이 상기 I/O 요청을 상기 SSD 또는 HDD(hard drive disk)에서 처리하고, 상기 우선 순위가 긴급 우선 순위인 경우, 상기 OS 계층은 상기 I/O 요청을 상기 SSD에서 처리하도록 구현될 수 있다.
또한, 상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 읽기 타입인 경우, 상기 OS 계층은 상기 I/O 요청을 읽고 상기 SSD에 저장하도록 구현되고, 상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 쓰기 타입인 경우, 상기 OS 계층은 상기 I/O 요청을 상기 SSD에 저장하도록 구현될 수 있다.
또한, 상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 스파크 스트리밍의 마스터 프로세스(master process)에 의해 결정되고, 상기 우선 순위에 대한 정보는 상기 스파크 스트리밍의 워커 프로세스(worker process)를 통해 OS(operating system)로 전달될 수 있다.
또한, 상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 HDFS(Hadoop Distributed File System)의 네임노드 프로세스(namenode process)에 의해 결정되고, 상기 우선 순위에 대한 정보는 상기 HDFS의 데이터노드 프로세스(datanode process)를 통해 OS(operating system)로 전달될 수 있다.
본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법 및 장치는 잡(job)의 우선 순위를 OS(operating system)에게 전달하고 이에 기반하여 이기종 스토리지를 관리할 수 있다. 이를 통해 높은 우선 순위를 가지는 잡에 의해 요청된 I/O 블록들은 HDD(hard disk drive)가 아닌 SSD(solid state disk)에서 처리될 수 있다. 이를 통해 클라우드 서버에서 아무리 많은 잡이 수행되더라도 특정 잡의 수행 시간은 짧게 완료되도록 보장될 수 있다.
도 1은 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도 2는 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도4는 본 발명의 실시예에 따른 소프트웨어 계층 구조 상에서의 동작을 나타낸 개념도이다.
도 5는 본 발명의 실시예에 따른 잡의 우선 순위를 고려한 이기종 스토리지 관리 기법에서 I/O 요청이 도착했을 때의 동작 순서를 나타낸 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
수많은 세계적 기관들에 따르면 클라우드 기반 서비스에 관련된 시장이 급격하게 성장될 것으로 예측된다. 스마트카 시장에서의 킬러 서비스들 중 하나는 자율 주행을 주목적으로 하는 스마트 드라이빙이다. 이를 실현하기 위한 SW(software) 플랫폼은 클라우드 HD(high definition) 디지털 맵 데이터에 기반하여 동작할 수 있다. 클라우드에서는 대용량 맵 데이터를 분산된 서버에서 처리하기 위한 데이터 분석 프레임워크가 필수적이며 이러한 데이터 분석 프레임워크는 다양한 스마트 드라이빙 서비스를 지원하기 위해 safety, data security, timeliness, reliability 및 anti-aging과 같은 다양한 요구 사항들을 충족할 필요가 있다.
언급된 서비스의 제공을 위해서는 스트림 프로세싱(stream processing)을 지원하는 데이터 분석 프레임워크가 필수적이다. 현존하는 데이터 분석 프레임워크들 중 인-메모리(in-memory) 처리를 통해 세컨드-스케일 프로세싱(second-scale processing)을 지원하는 스파크 스트리밍(Spark Streaming)이 각광을 받고 있다. 데이터 분석 프레임워크에서 서비스를 제공하기 위한 프로그램인 잡(job)의 레이턴시(latency)를 결정하는 중요 요소들 중 하나는 스토리지의 성능이다. 클라우드 서비스 제공자는 다양한 레이턴시(latency) 요구 사항을 충족시키기 위해 스토리지 구성을 SSD(solid state disk)와 HDD(hard disk drive)가 공존하는 형태로 구축할 수 있다.
스파크 스트리밍(Spark Streaming)과 이기종 스토리지 관리 기법은 아래와 같다. 스파크 스트리밍은 기존의 Apache Hadoop에서 빈번한 스토리지 접근에 의한 느린 잡(job)의 수행 시간을 개선하기 위해 2012년 UC Berkeley에서 제안된 스파크에 기반하여 동작한다. 스파크는 빈번한 스토리지 접근을 줄이기 위해 잡(job)에서 반복적으로 사용될 중간 결과값을 메모리에 저장하여 그 횟수를 줄여 수행 시간을 단축하였다. 그 중간 결과값을 메모리에 저장하여 관리하기 위해 사용되는 데이터 구조는 RDD(resilient distributed dataset)이며 트랜스포메이션(transformation)과 액션(action)이라는 메소드들이 제공될 수 있다. 스파크는 배치 프로세싱(batch processing)이기 때문에 근본적으로는 스트림 프로세싱(stream processing)이 지원되지 않는다.
하지만 다양한 산업에서 스트림 프로세싱(stream processing)을 요구하여 스트림 프로세싱을 위해 개발된 것이 스파크 스트리밍이다. 스파크 스트리밍은 입력으로 전달되는 라이브 스트림 데이터를 주기적으로 마이크로 배치(micro batch) 형태로 스파크에 전달하여 처리할 수 있다. 이러한 스파크 스트리밍이 스토리지에 접근하는 경우는 두 가지 경우가 있다. 두가지 경우는 장애 복구(fault recovery)를 위해 입력 데이터를 저장하는 경우와 RDD에서 ?i겨난 데이터를 다시 읽는 경우이다.
이기종 스토리지 관리 기법은 빠른 그리고 느린 스토리지로 구성된 물리 블록 장치들을 OS(operating system) 사용자에게 하나의 가상 블록 장치로 제공할 수 있다. 이기종 스토리지 관리 기법은 I/O 요청의 패턴에 따라 처리될 블록 장치를 결정할 수 있다.
종래 기술은 이기종 스토리지 구성을 가진 스파크 스트리밍 클러스터에서 잡(job)의 우선 순위에 따른 수행 시간 향상이 어렵다. 다수의 잡(job)들이 클러스터에서 동시에 수행되며 스토리지에 접근하게 되는데, 종래 기술의 이기종 스토리지 관리 메커니즘은 잡(job)의 우선 순위를 고려하지 않고 I/O 요청들을 처리하여 중요한 잡(job)임에도 불구하고 다른 중요하지 않은 잡(job)에 의해 수행 시간이 지연될 수도 있다.
본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적인 I/O 요청 처리 방법은 전술한 종래 기술에서 잡(job)의 우선 순위를 고려하지 않는 이기종 스토리지 관리 기법을 개선하기 위한 방법이다. 구체적으로 스파크 스트리밍 기반 클라우드 클러스터에서 동적으로 잡(job)의 우선 순위를 OS의 이기종 스토리지 관리 기법에 반영하여 I/O요청을 선별적으로 처리함으로써 특정 잡(job)의 수행 시간을 단축시키는 것이 목적일 수 있다.
이하, 본 발명의 실시예에서는 이기종 스토리지 구성을 가진 스파크 스트리밍 기반 클라우드 서버에서 특정 잡(job)의 처리 시간 단축을 위한 선별적 I/O 요청 처리 기법이 제안된다.
본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법은 1) 스파크 스트리밍의 잡(job)의 우선 순위 전달 기법 2) 우선 순위를 고려한 선별적 I/O 요청 처리 기법으로 구성될 수 있다.
1) 스파크 스트리밍의 잡(job)의 우선 순위 전달 기법에서는 스파크 스트리밍에서 동작하는 잡(job)의 우선 순위에 대한 정보가 이기종 스토리지를 직접적으로 관리하는 OS에게 전달될 수 있다. 잡(job)의 우선 순위에 대한 정보의 전달을 위해 잡(job)과 OS에서의 스케줄링 단위인 프로세스 간에 매핑 상태를 파악한 후 해당 프로세스들이 OS에게 우선 순위를 전달할 수 있다.
2) 우선 순위를 고려한 선별적 I/O 요청 처리 기법에서는 전달받은 우선 순위를 토대로 요청된 I/O 블록이 SSD에서 처리될지 또는 HDD에서 처리될지 여부가 결정될 수 있다. 우선 순위는 긴급(urgent) 우선 순위와 일반(normal) 우선 순위로 구분되며 제안된 기법에서는 긴급 우선 순위를 가지는 I/O 블록은SSD에서 처리되는 것이 보장될 수 있다.
도 1은 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도 1에서는 스파크 스트리밍 기반 클라우드 서버 시스템의 계층적 구조가 개시된다.
클라우드 서버 시스템은 크게 SW(software) 계층과 HW(hardware) 계층으로 구분될 수 있다.
SW 계층은 상위단부터 데이터 분석 프레임워크(data analytics framework)(100), 분산 파일 시스템(distributed file system)(110), VM 관리층(VM management)(120), OS(operating system)(130), 서버(server)(140), 스토리지 영역 네트워크(storage area network)(150), 스토리지 서버(storage server)(160)로 구성될 수 있다.
HW 계층은 서버들(150)과 스토리지 서버(160)들로 구성되며 서버와 스토리지 서버(160)는 스토리지 영역 네트워크(150)로 연결될 수 있다.
SW 계층 간에는 미리 정의된 인터페이스를 통해서만 정보를 주고 받을 수 있기 때문에 SW 계층 간에 전달될 수 있는 정보는 제한적이다. 종래 기술에서는 스파크 스트리밍에서의 잡의 우선 순위 정보가 OS로 전달될 수 있고, 잡의 우선 순위 정보를 선별적으로 처리하기 위한 방법은 존재하지 않는다.
데이터 분석 프레임워크인 스파크 스트리밍 계층(100)에서는 다수의 서버에서 잡의 코드를 수행할 프로세스를 어디에 배치할지 여부가 결정될 수 있고, OS는 상위 계층에서 구체적으로 어떤 프로세스가 수행되는지 인지하지 않은 채 프로세스에게 주어진 우선 순위만으로 각종 자원들을 공유하기 위한 스케줄링을 수행할 수 있다.
본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법은 잡의 우선 순위를 OS로 전달하고 이에 기반하여 이기종 스토리지를 관리할 수 있다. 이를 통해 높은 우선 순위를 가지는 잡(job) 에 의해 요청된 I/O 블록들은 HDD가 아닌 SSD에서 처리되는 것이 보장될 수 있다. 이를 통해 클라우드 서버에서 아무리 많은 잡이 수행되더라도 높은 우선 순위를 가지는 특정 잡의 수행 시간은 짧게 완료되는 것이 보장될 수 있다.
*도 2는 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도 2를 참조하면, 스파크 스트리밍의 잡이 분산된 서버들에 분배되어 수행되며 HDFS(Hadoop Distributed File System) 파일 접근을 요청할 수 있다.
스파크 스트리밍 잡(job)이 분산된 서버들에 분배되어 수행될 때, 마스터 프로세스(210)가 잡의 우선 순위를 서버들에 분산되어 배치된 워커 프로세스(worker process)(220)들로 전달하고, 워커 프로세스(220)가 잡의 우선 순위에 대한 정보를 OS(operating system)로 전달할 수 있다. 관련 프로세스가 HDFS 파일 접근을 요청시, 워커 프로세스(220)가 잡의 우선 순위에 대한 정보를 HDFS의 네임노드(NameNode) 프로세스(250)로 전달할 수 있다.
HDFS가 파일 접근 요청을 분산된 서버들에서 처리하고 OS에 스토리지 접근을 요청할 수 있다. HDFS에서 파일 접근 요청이 분산된 서버에서 처리될 때, 네임노드(NameNode) 프로세스(250)가 우선 순위를 서버들에 분산되어 배치된 데이터노드(DataNode) 프로세스(260)들로 전달할 수 있다. 데이터노드 프로세스(260)는 잡의 우선 순위에 대한 정보를 OS(270)로 전달할 수 있다.
스파크 스트리밍은 HDFS와 연계되어 동작할 수 있다. 리눅스는 프로세스를 태스크(task) 단위로 관리하는데, 스파크 스트리밍과 HDFS 각각은 복수개의 태스크로 구성될 수 있다. 스파크 스트리밍과 HDFS는 서로 다른 종류의 I/O 블록에 접근한다. 잡과 관련된 모든 I/O 블록을 우선 순위에 따른 해당 스토리지 관리 메커니즘으로 관리하기 위해서 스파크 스트리밍과 관련된 태스크들의 우선 순위에 대한 정보와 HDFS에 관련된 태스크들의 우선 순위에 대한 정보가 개별적으로 OS로 전달될 수 있다. 즉, 스파크 스트리밍의 워커 프로세스(220)와 HDFS의 데이터노드 프로세스(260)가 서로 다른 종류의 I/O 블록에 접근하기 때문에 워커 프로세스(220) 및 데이터노드 프로세스(260) 각각으로부터 우선 순위가 OS로 모두 내려갈 수 있다.
OS에 전달된 스토리지 접근 요청이 이기종 스토리지 관리 메커니즘에 의해 처리될 수 있다. OS에 전달된 스토리지 접근 요청이 이기종 스토리지 관리 메커니즘에 의해 처리시 높은 우선 순위를 가진 프로세스의 스토리지 읽기/쓰기 요청은 HDD가 아닌 SSD에서 처리되도록 보장될 수 있다.
도 3은 본 발명의 실시예에 따른 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법을 나타낸 개념도이다.
도 3을 참조하면, 잡이 입력되는 경우, 스파크 스트리밍에서 마스터 프로세스가 잡 스케줄링(job scheduling)을 수행할 수 있다(단계 S300).
마스터 프로세스를 기반으로 잡(job)의 우선 순위에 대한 정보가 워커 프로세스들로 전달될 수 있다. 워커 프로세스는 잡 프로세싱(Job processing) 기반으로(단계 S310) 잡의 우선 순위에 대한 정보를 OS로 전달(priority transfer)할 수 있다(단계 S320). 마스터 프로세스는 워커 리스트에 대한 정보 및 잡의 우선 순위에 대한 정보를 HDFS의 네임 노드로 전달할 수 있다.
HDFS의 네임 노드는 HDFS 중재(arbitration)를 수행할 수 있고(단계 S330), HDFS의 데이터 노드는 HDFS 프로세싱(HDFS processing)을 수행하여(단계 S340) 잡의 우선 순위에 대한 정보를 OS로 전달(priority transfer)할 수 있다(단계 S350).
OS에서 전달된 스토리지 접근 요청이 이기종 스토리지 관리 메커니즘(OS I/O MGMT)에 의해 처리될 수 있다(단계 S360). OS에서 전달된 스토리지 접근 요청이 이기종 스토리지 관리 메커니즘에 의해 처리시 스파크 스트리밍의 워커 프로세스 및 HDFS의 데이터노드 프로세스 각각으로부터 전달된 잡에 대한 우선 순위를 기반으로 높은 우선 순위를 가지는 잡의 스토리지 읽기/쓰기 요청은 HDD가 아닌 SSD에서 처리되도록 보장될 수 있다(단계 S370, Heterogeneous storage).
전술한 바와 같이 스파크 스트리밍은 HDFS와 연동되어 동작할 수 있다. 스파크 스트리밍에서는 빅 데이터를 실제로 계산/연산하기 위해 스토리지에 종종 접근할 수 있다. 그리고 연산된 중간 결과값들은 장애 내성(fault tolerant) 파일 시스템인 HDFS(Hadoop Distributed File System)에 저장될 수 있다. HDFS는 서버들 중 한대가 죽어도 그 데이터가 여전히 보존될 수 있도록 지원하는 소프트웨어 계층이다. 예를 들어, HDFS는 데이터의 보존을 위해 서로 다른 서버 3대에 데이터를 복사하여 저장해둘 수 있다. 따라서, 스파크 스트리밍 잡을 수행하는 것은 스파크 스트리밍과 HDFS에 관련된 태스크들이 수행되는 것을 의미할 수 있고, 태스크는 OS에서 스케줄 가능한 개체(schedulable entity)일 수 있다.
스파크 스트리밍과 HDFS는 모두 다수의 서버에서 동작되기 때문에 마스터와 워커의 역할를 가지는 태스크들로 구성될 수 있다. 마스터는 클라이언트의 요청을 받아서 해당 작업을 워커 프로세스들로 분배하는 태스크이고, 워커는 마스터 프로세스로부터 전달받은 작업을 수행하는 태스크일 수 있다.
스파크 스트리밍에서 마스터는 마스터 프로세스이고, 워커는 워커 프로세스이고, HDFS에서 마스터는 네임노드 프로세스이고, 워커는 데이터노드 프로세스일 수 있다.
OS(예를 들어, Linux)에서는 태스크 단위로 우선 순위를 관리하기 때문에 OS에게 우선 순위를 전달할 때는 태스크 단위로 알려줘야 한다. 따라서, 스파크 스트리밍의 워커 프로세스가 우선 순위에 대한 정보를 OS로 전달하고, HDFS 의 데이터노드 프로세스가 우선 순위에 대한 정보를 OS로 전달할 수 있다.
도4는 본 발명의 실시예에 따른 소프트웨어 계층 구조 상에서의 동작을 나타낸 개념도이다.
도 4의 (A)는 스파크 스트리밍에서 잡의 우선 순위의 전달을 개시한다.
전술한 바와 같이 스파크 스트리밍에서 잡에 대한 우선 순위에 대한 정보가 OS로 전달될 수 있다. 잡과 마스터 프로세스/워커 프로세스 간의 매핑 관계가 파악되고, 잡의 우선 순위에 대한 정보가 HDFS로 전달될 수 있다.
도 4의 (B)는 HDFS와 OS 간의 잡에 대한 우선 순위의 전달을 개시한다.
HDFS와 OS 간 잡에 대한 우선 순위의 전달은 HDFS 요청과 HDFS의 네임노드(NameNode)/데이터노드(DataNode) 간 매핑 관계에 대한 결정 및 HDFS에 I/O 요청을 한 잡의 우선 순위의 OS로의 전달을 기반으로 수행될 수 있다.
잡의 우선 순위 개념과 관련 동작은 아래와 같을 수 있다. 잡(job)은 두 가지 우선 순위(긴급 우선 순위, 일반 우선 순위)가 있으며, 두 가지 우선 순위의 의미는 아래와 같을 수 있다.
긴급 우선 순위를 가지는 잡에 대한 I/O(input/output) 요청들은 HDD가 아닌 SSD에서 처리되는 것이 보장될 수 있다. 일반 우선 순위를 가지는 잡에 대한 I/O 요청들은 기존의 이기종 스토리지 관리 기법에 의해 처리될 수 있다.
우선 순위에 관련된 동작은 다음과 같다. 우선 순위는 잡 개발자에 의해 잡마다 결정될 수 있으며, 우선 순위는 OS의 I/O 관리 모듈에 전달되며 이기종 스토리지로의 I/O 요청 처리시 활용될 수 있다. 이하, 도 5에서는 잡의 우선 순위를 고려한 이기종 스토리지 관리 기법에서 I/O 요청이 도착했을 때의 동작 순서가 개시된다.
도 5는 본 발명의 실시예에 따른 잡의 우선 순위를 고려한 이기종 스토리지 관리 기법에서 I/O 요청이 도착했을 때의 동작 순서를 나타낸 순서도이다.
도 5를 참조하면, I/O 요청이 도착한다(단계 S500).
스파크 스트리밍 기반 클라우드 서버의 선별적 I/O 요청 처리 장치로 I/O 요청이 입력될 수 있다.
I/O 요청의 우선 순위를 결정한다(단계 S510).
선별적 I/O 요청 처리 장치는 I/O 요청의 우선 순위를 결정할 수 있다. 전술한 바와 같이 스파크 스트리밍과 HDFS는 서로 다른 종류의 I/O 블록에 접근할 수 있다. 잡과 관련된 모든 I/O 블록을 우선 순위에 따른 해당 스토리지 관리 메커니즘으로 관리하기 위해서 스파크 스트리밍과 관련된 잡들의 우선 순위에 대한 정보와 HDFS에 관련된 잡들의 우선 순위에 대한 정보가 개별적으로 OS로 전달될 수 있다.
I/O 요청의 우선 순위가 일반 우선 순위인 경우, 기존의 이기종 스토리지 관리 기법을 기반으로 I/O 요청이 처리될 수 있다(단계 S520). 기존의 이기종 스토리지 관리 기법은 잡의 우선 순위를 고려하지 않고, I/O 요청을 처리하는 기법일 수 있다.
I/O 요청의 우선 순위가 긴급 우선 순위인 경우, 본 발명의 실시예에 따른 이기종 스토리지 관리 기법을 기반으로 I/O 요청이 처리될 수 있다. 본 발명의 실시예에 따른 이기종 스토리지 관리 기법에서는 긴급 우선 순위를 가지는 I/O 요청이 SSD에서 처리될 수 있다.
구체적으로 긴급 우선 순위를 가지는 I/O 요청의 타입을 읽고(단계 S530), I/O 요청이 읽기 타입인지, 쓰기 타입인지 여부를 결정될 수 있다(단계 S540).
긴급 우선 순위를 가지는 I/O 요청이 읽기 타입인 경우, 요청된 I/O 블록을 읽고 SSD로 이동시킬 수 있다(단계 S550).
긴급 우선 순위를 가지는 I/O 요청이 쓰기 타입인 경우, 요청된 I/O 블록을 SSD에 쓸 수 있다(단계 S560).
이와 같은 스파크 스트리밍 기반 클라우드 서버에서 선별적 I/O 요청 처리 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
100: Data Analytics Frame work (Spark Streaming),
110: Distributed File System (HDFS)
120: VM management
130: Operating System
140: Server
150: Storage Area Network
160: Storage Server
210: Master 프로세스
220: Worker 프로세스
250: NameNode 프로세스
260:DataNode프로세스
S300: Job Scheduling (Master)
S310: Job Processing (Worker)
S320: Priority Transfer (Worker)
S330: HDFS Abitration (NameNode)
S340: HDFS Processing (DataNode)
S350: Priority Transfer (DataNode)
S360: OS I/O MGMT (OS)
S370: Heterogeneous Storage(SSD+HDD)

Claims (10)

  1. 스파크 스트리밍(Spark Streaming) 기반 클라우드 시스템에서 I/O(input/output) 요청 처리 방법은,
    스파크 스트리밍 기반 클라우드 시스템이 잡(job)에 의한 I/O 요청을 수신하는 단계;
    상기 스파크 스트리밍 기반 클라우드 시스템이 상기 잡의 우선 순위를 결정하는 단계; 및
    상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 따라 상기 I/O 요청을 SSD(solid state disk)에서 처리할지 여부를 결정하는 단계를 포함하고,
    상기 우선 순위가 노말 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 대한 고려없이 상기 I/O 요청을 상기 SSD 또는 HDD(hard drive disk)에서 처리하는 단계; 및
    상기 우선 순위가 긴급 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 I/O 요청을 상기 SSD에서 처리하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 우선 순위가 상기 긴급 우선 순위인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템이 상기 I/O 요청을 상기 SSD에서 처리하는 단계는,
    상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 읽기 타입인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템은 상기 I/O 요청을 읽고 상기 SSD에 저장하는 단계; 및
    상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 쓰기 타입인 경우, 상기 스파크 스트리밍 기반 클라우드 시스템은 상기 I/O 요청을 상기 SSD에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 스파크 스트리밍의 마스터 프로세스(master process)에 의해 결정되고,
    상기 우선 순위에 대한 정보는 상기 스파크 스트리밍의 워커 프로세스(worker process)를 통해 OS(operating system)로 전달되는 것을 특징으로 하는 방법.
  5. 제3항에 있어서,
    상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 HDFS(Hadoop Distributed File System)의 네임노드 프로세스(namenode process)에 의해 결정되고,
    상기 우선 순위에 대한 정보는 상기 HDFS의 데이터노드 프로세스(datanode process)를 통해 OS(operating system)로 전달되는 것을 특징으로 하는 방법.
  6. I/O(input/output) 요청 처리를 수행하는 스파크 스트리밍(Spark Streaming) 기반 클라우드 시스템은,
    잡(job)에 의한 I/O 요청을 수신하도록 구현되는 입력부;
    상기 잡의 우선 순위를 결정하도록 구현되는 스파크 스트리밍 계층 및 HDFS(Hadoop Distributed File System) 계층; 및
    상기 스파크 스트리밍 기반 클라우드 시스템이 상기 우선 순위에 따라 상기 I/O 요청을 SSD(solid state disk)에서 처리할지 여부를 결정하는 OS 계층을 포함하고,
    상기 우선 순위가 노말 우선 순위인 경우, 상기 OS 계층은 상기 우선 순위에 대한 고려없이 상기 I/O 요청을 상기 SSD 또는 HDD(hard drive disk)에서 처리하고,
    상기 우선 순위가 긴급 우선 순위인 경우, 상기 OS 계층은 상기 I/O 요청을 상기 SSD에서 처리하도록 구현되는 것을 특징으로 하는 스파크 스트리밍 기반 클라우드 시스템.
  7. 삭제
  8. 제6항에 있어서,
    상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 읽기 타입인 경우, 상기 OS 계층은 상기 I/O 요청을 읽고 상기 SSD에 저장하도록 구현되고,
    상기 우선 순위가 상기 긴급 우선 순위이고 상기 I/O 요청의 타입이 쓰기 타입인 경우, 상기 OS 계층은 상기 I/O 요청을 상기 SSD에 저장하도록 구현되는 것을 특징으로 하는 스파크 스트리밍 기반 클라우드 시스템.
  9. 제8항에 있어서,
    상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 스파크 스트리밍의 마스터 프로세스(master process)에 의해 결정되고,
    상기 우선 순위에 대한 정보는 상기 스파크 스트리밍의 워커 프로세스(worker process)를 통해 OS(operating system)로 전달되는 것을 특징으로 하는 스파크 스트리밍 기반 클라우드 시스템.
  10. 제8항에 있어서,
    상기 우선 순위는 상기 잡을 입력받은 스트리밍 기반 클라우드 시스템의 HDFS(Hadoop Distributed File System)의 네임노드 프로세스(namenode process)에 의해 결정되고,
    상기 우선 순위에 대한 정보는 상기 HDFS의 데이터노드 프로세스(datanode process)를 통해 OS(operating system)로 전달되는 것을 특징으로 하는 스파크 스트리밍 기반 클라우드 시스템.
KR1020150182968A 2015-12-21 2015-12-21 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치 KR101730508B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150182968A KR101730508B1 (ko) 2015-12-21 2015-12-21 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150182968A KR101730508B1 (ko) 2015-12-21 2015-12-21 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101730508B1 true KR101730508B1 (ko) 2017-04-26

Family

ID=58705071

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150182968A KR101730508B1 (ko) 2015-12-21 2015-12-21 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101730508B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273200A (zh) * 2017-06-22 2017-10-20 中国科学院计算技术研究所 一种针对异构存储的任务调度方法
CN109257370A (zh) * 2018-10-22 2019-01-22 武汉极意网络科技有限公司 验证请求的处理系统
CN109918354A (zh) * 2019-03-01 2019-06-21 浪潮商用机器有限公司 一种基于hdfs的磁盘定位方法、装置、设备及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Spark Streaming 기반의 그리드 색인을 이용하는 이동객체를 위한 연속 질의 기법", 한국콘텐츠학회 종합학술대회 논문집(pp. 67-68), 2015.05.*
"SSD 기반 시스템에서 셔플 과정 최적화를 통한 하둡 맵리듀스의 처리속도 향상 기법", 대한전자공학회 학술대회(pp. 1357-1360), 2015.06.
"저장장치 내 처리를 위한 SSD 소프트웨어 플랫폼 시뮬레이터", 정보과학회논문지:컴퓨팅의 실제 및 레터 18(8)(pp. 602-605), 2012.08.*

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273200A (zh) * 2017-06-22 2017-10-20 中国科学院计算技术研究所 一种针对异构存储的任务调度方法
CN107273200B (zh) * 2017-06-22 2020-03-17 中国科学院计算技术研究所 一种针对异构存储的任务调度方法
CN109257370A (zh) * 2018-10-22 2019-01-22 武汉极意网络科技有限公司 验证请求的处理系统
CN109257370B (zh) * 2018-10-22 2020-11-03 武汉极意网络科技有限公司 验证请求的处理系统
CN109918354A (zh) * 2019-03-01 2019-06-21 浪潮商用机器有限公司 一种基于hdfs的磁盘定位方法、装置、设备及介质
CN109918354B (zh) * 2019-03-01 2022-11-04 浪潮商用机器有限公司 一种基于hdfs的磁盘定位方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US10275851B1 (en) Checkpointing for GPU-as-a-service in cloud computing environment
US9756128B2 (en) Switched direct attached shared storage architecture
Rao et al. Performance issues of heterogeneous hadoop clusters in cloud computing
US20160124769A1 (en) Maintaining virtual machines for cloud-based operators in a streaming application in a ready state
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
CN104506589A (zh) 一种基于超融合存储的资源迁移调度方法
CN111722786A (zh) 基于NVMe设备的存储系统
KR101460062B1 (ko) 동영상 파일을 하둡 분산 파일 시스템에 분산 저장하는 시스템, 동영상 맵리듀스 시스템 및 그 제공방법
US8447894B2 (en) Upgrading an elastic computing cloud system
US20150128135A1 (en) Managing a template in an operator graph
US11914894B2 (en) Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
US20170063724A1 (en) Asset arrangement management for a shared pool of configurable computing resources associated with a streaming application
US11681466B2 (en) Proactive storage operation management
US10671438B2 (en) Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex
US10936361B2 (en) Cloud and datacenter migration wave planning using analytics and flow modeling
US11416176B2 (en) Function processing using storage controllers for load sharing
KR101730508B1 (ko) 스파크 스트리밍 기반 클라우드 서버에서 선별적 i/o 요청 처리 방법 및 장치
US10579419B2 (en) Data analysis in storage system
US10171370B1 (en) Distribution operating system
CN106021544B (zh) 数据库分布式连接池管理方法和系统
US20190196880A1 (en) Method for sharing processing modules between pipelines
Thaha et al. Hadoop in openstack: Data-location-aware cluster provisioning
CN105574008A (zh) 应用于分布式文件系统的任务调度方法和设备
US20190250844A1 (en) Efficient data migration in hierarchical storage management system
CN117093335A (zh) 分布式存储系统的任务调度方法及装置

Legal Events

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