LHC 실험의 데이터 그리드 요구 사항LHC 컴퓨팅 그리드(LHC Computing Grid)를 구축하면서 해결해야 했던 중요한 문제 중 하
첫번째로, 컴퓨팅 노드가 전 세계의 고에너지 물리 연구소 데이터센터에 분산되어 있듯이, 실험 데이터를 저장하기 위한 저장 장치 자원도 전 세계의 데이터센터에 분산되어 있고, LHC 컴퓨팅 그리드의 계층적 계산 모델에 따라 저장 장치 자원들도 전세계적인 스케일로 계층화되어 있다는 것이었다.
LHC 컴퓨팅 그리드가 전 지구적으로 자원이 계층적으로 분산되어 있는 시스템이었기 때문에 스토리지도 자연스럽게 계층화될 수밖에 없었다. 이 스토리지 자원 계층화는 CERN에 모든 실험 데이터를 저장해두고 분석할 수 없는 문제 때문이기도 했지만, 여러 공동 연구 기관이 동시에 데이터 분석 작업을 하려다 보니 생기는 문제이기도 했다. LHC 컴퓨팅 그리드 구축 당시의 네트워크 기술이, 대륙을 넘나드는 원거리 지역의 데이터를 가지고 계산을 효과적으로 하기에는 WAN의 대역폭(bandwidth)과 지연(latency) 제약이 컸기 때문에 분석하려는 데이터를 미리 분석하려는 컴퓨팅 그리드 자원 근처로 옮겨 놓을 수밖에 없었기 때문이다. 데이터 분석 작업이 분석할 데이터가 작업이 실행되는 기관의 스토리지 자원에 전송되어 있어야 하는 데이터 지역성(data locality)을 확보해야 했다.
LHC 컴퓨팅 그리드의 저장 장치 자원 티어링(tiering)은 이렇게 그리드 사이트 수준의 계층화뿐만 아니라, 각 데이터센터 내의 데이터 활용 빈도에 따라서도 구성되었다. CERN Tier-0센터에서도 영구 보관하기 위한 원시 데이터는 분석에 자주 활용이 되지 않고 보존(archiving)이 목적인 콜드 데이터(cold data; 사용 빈도가 낮은 데이터)였기 때문에 원시 데이터는 대용량 로봇 테이프 스토리지 장치에 저장되었다. 테이프 스토리지는 I/O 속도가 매우 느리지만, LHC 컴퓨팅 그리드 구축 당시에는 저장 용량당 단가가 가장 쌌고 디스크 어레이나 SAN 스토리지에 비해서 저렴했기 때문에 영구 보존(archiving) 용도로 사용했다.
이렇게 LHC 컴퓨팅 그리드의 계층 구조와 데이터 접근 빈도에 따른 저장 장치 자원의 티어링(tiering)을 고려하여 계층화된 이종(heterogeneous) 저장 장치 자원들을 성능 요구 사항에 맞게 LAN, WAN을 통해 통합하고, 적절하게 데이터를 분배, 배치하는 기술적인 난제를 해결해야 했다.
두번째로, 전지구적으로 계층화된 저장 장치 자원을 하나의 거대한 저장 장치 시스템으로 통합하면서도 데이터 I/O 성능과, 실험하면서 쌓이는 데이터 용량 증가와 함께 스케일 아웃(scale-out) 형태로 데이터 그리드의 용량을 확장할 수 있는 자원 확장성(scalability)이 보장되어야 했다.
LHC 컴퓨팅 그리드의 계층화된 데이터 그리드 모델에서 기관별로 저장 장치 자원을 손쉽게 확장할 수도 있어야 했다. 이에 더해서, 네트워크 인프라의 구조와 정책이 다른 다양한 기관의 저장 장치 자원을 WAN을 통해 원거리로 통합했을 때에도 전체 데이터 그리드의 저장 용량이 확장성 있게 증가되어야 했다. WAN을 통해 컴퓨팅 그리드에서 실행되는 작업의 계산 성능에 영향을 받지 않을 수 있도록 데이터 I/O 성능 또한 보장되어야 했기 때문에 데이터 지역성(data locality)을 적절하게 유지할 수 있는 데이터 관리 모델 또한 필요했다.
세번째로, 각 기관의 데이터센터별로 서로 다른 분산 파일 시스템 기술로 통합된 분산 스토리지 시스템을 단일 인터페이스를 통해 데이터에 접근하고 관리해야 할 필요성이 생겼다. 또한, 데이터의 접근 빈도와 특성별로 Tiering되어 있는 LHC 컴퓨팅 그리드의 저장 장치 자원들을 사용자의 필요에 따라 손쉽게 찾아보고 사용할 수 있도록 하는 열람(lookup) 서비스가 지원되어야 했다.
LHC 컴퓨팅 그리드에 참여하는 기관별로 각 기관의 사정에 따라 저장 장치 자원을 운영하기 위한 분산 파일 시스템이나 저장 장치 미들웨어는 다양한 기술과 제품이 쓰였다. 기관별로 저장 장치 서버에 접근하기 위해 각기 다른 분산 파일 시스템이나 파일 시스템 클라이언트 소프트웨어를 사용하기 때문에, 각 기관에 분산되어 저장된 데이터에 접근하기 위해서는 이렇게 다양한 파일 시스템 클라이언트들을 사용하면서 오는 복잡성을 단순화할 필요가 있었다.
기관별로 저장 장치 자원을 통합하기 위해 디자인하고 구축한 네트워크 패브릭은 수년간의 디자인, 구축 작업과 투자를 통해 만들어진 것이라 LHC 컴퓨팅 그리드 서비스만을 위해서 쉽게 변경되거나 새롭게 구축될 수 없었다. 이렇게 기관별로 다른 네트워크 패브릭의 구조와 네트워크 보안 정책을 존중하면서 WAN을 통해 각 기관에 분산 저장되어 있는 LHC 실험 데이터에 접근하고 사용하려면 추상화된 새로운 계층이 필요하였다.
네번째로, LHC 연구자들은 CERN에 소속된 연구자들도 있지만, 각 국가의 고에너지 물리 연구소나 국립 과학기술 데이터센터에 소속되어 공동 연구를 하는 연구자들이 많았는데, 각 연구자들이 속한 데이터센터의 보안 정책이나 저장 장치 자원 관리 정책이 달라서 오는 접근성 문제가 있었다.
LHC 연구자들이 데이터 분석을 수행할 때는 각 기관 단위로 분석을 하지 않고 각 기관이나 개인이 속한 LHC 실험, 즉 ATLAS, CMS, ALICE, LHCb의 네 개의 검출장치 실험 데이터를 기준으로 가상 조직(virtual organization)을 이루어 데이터를 분석하게 된다. 각 실험에 속한 연구자들이 전 세계의 다양한 지역에 위치한 연구기관에서 일하고 있기 때문에, LHC 컴퓨팅 그리드의 데이터에 접근하는 사람이 적절한 가상 조직에 속하여 접근 권한이 있는 적법한 사용자가 맞는지 인증하는 문제와 함께 데이터 보안을 유지하기 위해서도 많은 정책적, 기술적 문제가 있었다.
LHC 실험의 대용량 데이터 스토리지 기술 – LCG SE, SRM, CASTOR, dCache, DPM, StoRM
이제 LHC 컴퓨팅 그리드에서 사용되는 분산 스토리지 시스템 기술이 어떤 것들이 있는지, 그리고 이 분산 스토리지 시스템 기술들이 어떻게 다양한 그리드 사이트의 저장 장치 자원을 통합하는지 같이 살펴보도록 하자.
LHC 컴퓨팅 그리드 구축 당시에 가장 확장성 있는 스토리지 기술은 SAN 스토리지였지만, SAN 스토리지 장비는 저장 용량당 단가가 가장 비쌌고 구축 비용이 많이 들었기 때문에 분석용 데이터를 위한 모든 스토리지를 SAN으로 구축할 수 없었다. LHC 컴퓨팅 그리드에 참여하는 기관별로 컴퓨팅 및 스토리지 자원에 투자할 수 있는 예산이 달랐기 때문에, 예산이 넉넉하지 않은 공동 연구 기관의 데이터센터에서 SAN으로 그리드 스토리지 시스템을 구성하는 것은 어려웠다.
LHC 컴퓨팅 그리드 구축 당시에는 요즘 기업들이 저지연(low latency) 데이터 I/O를 위해 도입하는 SSD나 플래시 스토리지 시스템이 없었기 때문에, 가장 빠른 데이터 I/O 성능을 보이는 스토리지 제품은 하드 디스크 어레이 스토리지였다. 당시 EMC 및 넷앱 등의 기업은 고성능 디스크 어레이 스토리지 제품을 내놓고 있었다. 예산과 컴퓨팅 시스템의 투자에 여유가 있는 데이터센터에서는 IBM의 HPSS(High-Performance Storage System)와 같은 고가의 스토리지 시스템을 사용하기도 하였다.
디스크 어레이나 서버의 로컬 디스크들을 묶어서 대용량 스토리지를 만들기 위해 당시에는 병렬 클러스터 컴퓨팅을 지원하기 위한 병렬 파일 시스템이 많이 쓰였다. 1994년부터 클러스터 병렬 컴퓨팅 기술이 발전하기 시작하면서 네트워크로 연결된 컴퓨팅 노드에 있는 로컬 스토리지들을 묶어 하나의 대용량 스토리지 시스템으로 만들고, 여러 노드에서 동시에 파일에 접근해도 연산 성능이 보장되도록 하는 병렬 파일 시스템 소프트웨어 기술이 발전하고 있었다. 당시 가장 확장성과 성능이 좋았던 IBM의 상용 병렬 파일 시스템인 GPFS(현재의 스펙트럼 스케일)와 오픈소스로 공개되었던 루스트르(Lustre)가 클러스터 병렬 컴퓨터에서의 병렬 파일 시스템으로 많이 쓰였다.
LHC 실험과 같이 영상 빅데이터가 많은 고에너지 물리학, 천문학, 지구과학 등의 데이터 집중(data-intensive) 과학 실험에서는, 일반 고성능 컴퓨팅과는 다른 저장 장치 요구 사항을 가지고 있었다. 이 때문에 GPFS와 같은 상용 병렬 파일 시스템과 Lustre와 같은 오픈소스 병렬 파일 시스템으로 해결할 수 없는, 데이터 보관의 신뢰성과 확장성(scalability) 요구 사항을 만족하기 위해 고에너지 물리학 연구소 및 국립 데이터센터들을 중심으로 확장성 있는 대용량 분산 파일 시스템 소프트웨어 기술이 개발되었다.
미국 로렌스 버클리 국립 연구소의 과학 데이터 관리 연구그룹(Scientific Data Management Research Group)에서는 확장성 있는(scalable) 데이터 관리를 위한 버클리 스토리지 매니저(Berkeley Storage Manager; BeStMan)를 개발하였다[3]. 로렌스 버클리 연구소의 과학 데이터 관리 연구 그룹은 아래에 설명할 그리드 저장 장치 인터페이스 표준인 저장 자원 관리 인터페이스(Storage Resource Manager; SRM) 표준 제정을 그리드 컴퓨팅 커뮤니티 내에서 주도하기도 했다.
미국의 페르미 국립 연구소(Fermilab), 독일의 국립 전자 싱크로트론 연구소(DESY)와 노르웨이 데이터 그리드 서비스(Nordic DataGrid Facility; NDGF)에서는 단일화된 네임공간(namespace)에서 이종(heterogeneous) 저장 장치 자원에서의 디스크 자원을 통합하고 관리할 수 있도록 하기 위한 분산 저장 장치 관리 시스템인 dCache를 공동 연구개발하였다[5].
dCache는 POSIX API를 비롯한 FTP, Kerberos GSSFTP, GSIFTP, HTTP, dCap, 그리고xRootD등의 다양한 프로토콜을 지원하여, 디스크 어레이 스토리지를 자주 쓰이는 핫 데이터(hot data; 데이터 I/O 빈도가 높은 파일)를 위한 저장 장치 자원으로, OSM, Enstore[6], TSM, HPSS[7], DMF, Castor[4]와 같은 테이프 저장 장치 시스템을 자주 쓰이지 않는 콜드 데이터(cold data; 데이터 I/O 빈도가 낮은 파일들을 말함)의 저장 장치로 하는 계층화된 저장 장치 시스템 구성이 가능하도록 만들어졌다. 이 때문에 LHC 컴퓨팅 그리드에서 다양한 저장 장치 시스템 통합을 위해 새로운 서비스나 데이터 접근 프로토콜을 추가하기에 알맞은 확장성 있는 아키텍처를 가지고 있다.
dCache는 또한 데이터 집중 과학(data-intensive science)에서 자주 요구되는 데이터 저장의 신뢰성(reliability)과 고가용성(high-availability)을 보장하기 위해 부하 분산(load balancing)과 데이터 복제(replication)를 지원한다. 하둡의 분산 파일 시스템인 HDFS가 데이터 복제 기능과 네임 노드 이중화를 통해 신뢰성과 고가용성을 지원하기 시작한 것을 생각해보면 dCache의 데이터 신뢰성, 고가용성 보장 기술은 하둡보다 앞선 것이다.
LHC 컴퓨팅 그리드를 기초로 범유럽 그리드 인프라를 만드는 EGEE 프로젝트에서는 Tier-2 데이터센터에서 디스크 저장 장치 자원을 대용량 저장 장치로 손쉽게 통합할 수 있는 DPM(Disk Pool Manager)이라는 분산 저장 장치 관리 시스템을 개발했다. DPM은 그 이름에서도 알 수 있듯이 테이프 저장 장치가 포함된 계층화된 저장 장치 시스템 구성을 지원하지는 않고, 디스크 저장 장치 자원만을 통합할 수 있다.
DPM은 계층화된 네임공간(hierarchical namespace)을 구성할 수 있도록 지원하며, 물리적인 파일 이름과 경로를 DPM에 저장된 파일의 사이트 파일 이름과 경로(Site File Name)와 매핑하여 관리한다. Globus 그리드 미들웨어의 파일 전송 프로토콜인 GSIFTP를 이용해 데이터를 전송하며, RFIO를 이용해 POSIX 파일 시스템 규약에 준하는 파일 접근과 조작이 가능하다. Xrootd 프로토콜을 지원하여 ROOT에서 DPM 기반의 분산 저장 장치 자원을 손쉽게 통합하여 데이터에 접근할 수 있도록 한다.
StoRM(Storage Resource Manager)은 이탈리아 국립 핵물리 연구소(Istituto Nazionale di Fisica Nucleare(Italian Institute for Nuclear Physics); INFN)와 UN 산하 UNESCO와 IAEA의 후원을 받는 압두스 살람 국제 이론 물리 연구소(The Abdus Salam International Centre for Theoretical Physics; ICTP)에서 경제학과 재무 연구를 위한 EGRID 프로젝트를 지원하기 위해 만든 SRM 2.2 표준을 구현한 분산 저장 장치 관리 소프트웨어이다. Storm은 IBM의 GPFS와 루스트르(Lustre)와 같은 최신 병렬 파일 시스템 기술을 지원할 수 있도록 개발되었다.
StoRM의 특징은 시작부터 그리드용 분산 저장 장치 소프트웨어로 만들어졌기 때문에 GFAL과 VOMS 등의 LHC 컴퓨팅 그리드 미들웨어 서비스와의 통합이 쉽다는 것이다. SRM 2.2 표준을 만족하는 프론트엔드 서버와 분산 저장 장치 자원과 데이터를 관리하는 백엔드 서버의 두 계층의 레이어로 개발되어 있어서 사용자의 데이터 I/O 요청이 증가할 때 안정적으로 요청을 수용하고 처리할 수 있는 아키텍처이다. 백엔드 서버는 지원하는 분산 파일 시스템을 플러그인 형식으로 통합할 수 있도록 되어 있어서 다양한 분산 파일 시스템으로 구성된 이종(heterogeneous) 저장 장치 자원을 SRM 2.2 표준으로 통합하기 용이하게 디자인되었다.
마지막으로 CASTOR(CERN Advanced Storage System)는 CERN Tier-0 데이터센터의 대용량 테이프 스토리지 시스템을 운영하기 위해 만든 분산 저장 장치 관리 소프트웨어다. CASTOR는 대용량 테이프 저장 장치를 운영하기 위해 주로 사용되기 때문에, dCache와 DPM 등의 다른 분산 저장 장치 관리 시스템과는 다른 요구 사항을 가지고 있다.
CASTOR는 테이프 저장 장치에 데이터를 빠르고 안전하게 전달, 저장하는 것을 최우선의 목표로 삼고 있기 때문에, 테이프 저장 장치에 데이터를 저장하기 전에 버퍼링하여 보관하는 디스크 캐시 저장 장치에 데이터를 빠르고 안전하게 캐싱한 후, 디스크 캐시에서 다시 테이프 저장 장치로 빠른 전송률로 데이터를 전송하도록 만들어져 있다. 이 때문에 다른 디스크 풀 저장 장치를 지원하는 분산 저장 장치 관리 시스템과는 달리 동적인 저장 공간 할당(dynamic space allocation)이 지원되지 않고 기존의 데이터를 옮긴 후 삭제하는 식으로 테이프 저장 공간이 관리된다.
CASTOR는 다른 분산 저장 장치 관리 소프트웨어와는 요구 사항과 목적이 다른 시스템이기 때문에, SRM 표준을 만족하는 인터페이스를 구현하는 방식도 많이 달랐다. 테이프 저장 장치는 디스크 저장 장치보다 I/O 속도가 느리기 때문에, 클라이언트의 요청을 받는 데이터 요청 처리기(request handler)가 데이터베이스를 통해 CASTOR 시스템 전체 상태와 사용자 요청의 진행상황을 관리한다. 데이터베이스에 저장된 사용자의 데이터 접근 요청의 진행상황과 CASTOR 시스템 내의 데이터 저장 상태 정보를 이용해 비동기적으로 데이터 I/O를 수행하여 사용자가 요청이 끝날 때까지 다른 작업을 수행하지 못하고 기다리는 일이 없도록 데이터 I/O를 수행한다. 사용자가 작업을 기다려도 되는 배치 데이터 I/O의 경우에는 요청 처리기가 직접 CASTOR와 통신하여 동기적으로 데이터 I/O를 처리한다.
LHC 컴퓨팅 그리드의 이종 데이터 저장 장치 통합 표준 – SRM
LHC 컴퓨팅 그리드에 자원을 제공하고 참여하는 전 세계 연구기관들의 저장 장치 자원과 네트워크 아키텍처, 보안 정책의 차이를 극복하고, 각 기관의 저장 장치 자원을 하나의 단일화된 데이터 그리드 시스템으로 통합하기 위해 LHC 컴퓨팅 그리드의 데이터 그리드 서비스인 SE(Storage Element)가 디자인, 구현되었다. LHC 컴퓨팅 그리드의 데이터 접근을 위한 단일화된 인터페이스인 SRM(Storage Resource Manager) 표준이 미국의 로렌스 버클리 국립 연구소의 과학 데이터 관리 연구 그룹의 주도로 LHC 컴퓨팅 그리드 커뮤니티 내에서 제안되고 정의되었다.
LHC 컴퓨팅 그리드에서 계산 노드를 통합하여 사용하기 위해 Open Grid Forum을 통해 표준화된 JSDL, DRMAA 등의 인터페이스를 통해 이종(heterogeneous) 계산 자원 통합을 했듯이, 저장 장치 자원은 SRM 표준을 통해 표준화된 그리드 저장 장치 데이터 접근과 자원 관리 인터페이스를 정의하고 이를 각 저장 장치 관리 소프트웨어에 추가로 구현하여 통합하였다(그림 6).
위에서 소개한 BeStMan, dCache, DPM, StoRM, CASTOR가 상용으로 많이 쓰이는 IBM GPSS, HPSS, Lustre 등의 분산 파일 시스템과 함께 LHC 컴퓨팅 그리드(Computing Grid)의 저장 장치 통합에 사용되었던 분산 저장 장치 관리 소프트웨어들이다. StoRM을 제외하고는 SRM 표준을 지원하지 않고 각 실험의 필요에 의해 개발되었던 분산 저장 장치 관리 소프트웨어들이었지만, LHC 컴퓨팅 그리드로 각 공동 연구기관들의 저장 장치 자원들을 통합하게 되면서 SRM 표준을 적용한 레이어와 소프트웨어 모듈을 추가하여 개선하게 되었다.
SRM 표준이 적용된 다양한 분산 스토리지 소프트웨어 기술 덕분으로 LHC 실험을 수행하는 과학자들은 전 세계에 걸쳐 985PB에 달하는 저장 장치를 자신의 연구실에서 편리하게 사용할 수 있게 되었다[10]. LHC 데이터 그리드의 전 세계에 걸친 저장 장치 용량의 확장성과 SRM 표준을 이용한 데이터 접근 및 관리 조작의 편리성은 LHC 실험 데이터 분석 과정을 가속하고 전 세계 LHC 연구자들의 협업을 효과적으로 조직, 자동화할 수 있도록 하여 힉스 입자 발견을 비롯한 고에너지 물리학 현상 분석과 발견에 크게 기여하고 있다.
빅데이터를 담는 그릇 – 대용량 확장형 스토리지
1994년에 개발된 베오울프(Beowulf) 클러스터 병렬 컴퓨팅 기술은 컴퓨팅 자원의 확장성을 크게 높이는 혁신만을 일으킨 것이 아니라, 저장 장치 노드의 수에 비례해 저장할 수 있는 데이터의 양을 선형적으로 늘려갈 수 있는 스케일-아웃형 저장 장치 기술의 발전에도 크게 기여하였다. 베오울프 클러스터 병렬 컴퓨팅 기술 때문에 분산 파일 시스템 기술의 발전이 촉진되었다. 분산 파일 시스템 기술이 발전하면서 저장, 보관할 수 있는 데이터의 양이 기하급수적으로 많아져 오늘날의 빅데이터 기술이 발전했다고 해도 과언이 아니다.
여러 노드에 걸친 스토리지 서버 노드에 대용량 데이터를 분산시켜 저장하고 관리할 수 있도록 하는 분산 파일 시스템 기술은 하둡과 같은 병렬 처리 프레임워크 소프트웨어 기술과 함께 빅데이터를 다루는 데 필요한 가장 기본적인 기술이라고 할 수 있다. 우선 빅데이터가 저장, 관리되어야 이를 분석하거나 가공할 수 있기 때문이다.
최근 고용량 하드디스크와 SSD가 개발되면서 1TB 저장 용량당 저장 장치 단가가 싸지고 있는 기술 트렌드와 함께 스케일-아웃형 분산 파일 시스템 소프트웨어 기술의 발전으로 저장 장치 용량 확장이 쉬워지고 빅데이터 저장 시스템 통합 비용이 많이 감소한 것이, 하둡과 같은 오픈소스 병렬 처리 프레임워크 기술의 발전과 함께 빅데이터에 대한 관심과 활용을 확산하는 주 요인이라고 볼 수 있다.
분산 파일 시스템 발전 초반에는, 베오울프 클러스터 컴퓨팅 시스템의 여러 노드에서 클러스터 각 노드의 로컬(local) 스토리지에 데이터를 일일이 복사하는 수고와, NFS 등의 원격 파일 시스템 프로토콜로 통합된 원격 파일 시스템 저장 공간에 저장된 데이터에 병렬화된 복수의 컴퓨팅 작업들이 동시에 접근하면서 생기는 성능 병목을 해결하고 데이터 I/O 성능을 높이기 위해 병렬 데이터 I/O를 효과적으로 지원하는 파일 시스템 기술로서 분산 파일 시스템이 발전했다. 요즘은 대용량의 데이터를 노드 수만 늘려 선형확장적으로 데이터의 용량을 늘리는 스케일-아웃 분산 파일 시스템이 많다.
이런 분산 파일 시스템으로 대표적인 것이 여러분들이 잘 알고 있는 하둡의 분산 파일 시스템인 HDFS이다. 클라우드용으로 많이 쓰이는 오픈스택의 스위프트(Swift), 세프(Ceph)와 같은 객체 저장 스토리지 시스템(Object Storage System) 기술도 일종의 분산 파일 시스템으로 볼 수 있다. 최근 클라우드와 함께 GlusterFS와 같은 오픈소스 분산 파일 시스템도 많이 쓰인다. IBM의 GPFS와 WekaIO와 같은 상용 분산 파일 시스템은 수십 페타바이트 수준에 이르는 저장 장치 용량 확장성을 보여주기도 한다.
과거 분산 파일 시스템의 확장성은 노드를 연결하는 네트워크 성능에 의해 확장성의 정도와 성능이 제약을 많이 받았고, 확장성의 제약 때문에 분산 파일 시스템에서 제공할 수 있는 총 스토리지 용량도 제약이 있을 수밖에 없었다. 하지만, 최근 SSD 및 비휘발성 메모리 하드웨어 기술의 급격한 발전으로 분산 파일 시스템 기술을 이용하여 사용할 수 있는 총 저장 용량의 한계가 점점 늘어나고 있다.
올해 2월 20일 삼성전자가 발표한 SSD는 SSD 한 개의 용량이 벌써 30TB를 넘어서고 있다[11-14]. 삼성전자의 이 SSD 스토리지 서버 한 대에서 확보할 수 있는 저장 용량의 한계를 페타바이트 스케일까지 끌어올렸을 뿐만 아니라, I/O 속도도 기존 SSD의 4배까지 향상되어 저장된 데이터에 대해 하둡이나 스파크를 이용한 병렬 처리 연산 성능까지 향상시킬 수 있게 되었다. SSD 기술의 급격한 발전은 분산 파일 시스템으로 확장할 수 있는 스토리지 용량의 한계를 페타바이트 스케일에서 페타바이트의 1,000배인 엑사바이트 스케일까지 확장시키고 있다. 분산 스토리지 시스템의 저장 장치 확장성이 엑사바이트의 1,000배인 제타바이트 스케일로 향상되는 것은 최근 실리콘 포토닉스 기술을 이용한 광 트랜시버 기술과 100G 이더넷 등의 고성능 네트워크 기술의 발전으로 오래 걸리지 않을 것으로 보인다.
삼성전자의 30TB SAS SSD는 512GB 3비트(TLC) V-NAND 기술로 만들어졌는데, 이런 고용량 SSD와 차세대 저장 장치 기술을 가능하게 하는 기술들이 대용량 확장형 스토리지의 저장 용량 및 I/O 성능 한계를 더 높일 수 있을 것으로 보인다. 가장 대표적인 기술은 인텔의 3D XPoint 기술, IBM을 비롯한 많은 메모리 기업들이 차세대 메모리로 연구하고 있는 상변화 메모리 기술(Phase-Change Memory; PCM)이다. 비록 HP에서 ‘더 머신(The Machine)’의 핵심 기술로 발표했다가 철회하기는 했지만 여전히 유망한 차세대 메모리 기술로 꼽히고 있고 활발히 연구되고 있는 멤리스터(memrister) 기술도 데이터 처리 연산과 빅데이터 스토리지 시스템의 저장 용량을 획기적으로 향상시킬 수 있는 기술이다.
이런 새로운 비휘발성 메모리 소자 기술의 급격한 발전으로 빅데이터 저장 용량의 한계가 크게 높아지고 있을 뿐만 아니라, 빅데이터 가공, 분석 연산 성능까지 향상되고 있다는 사실은 빅데이터 문제가 어느 한 소프트웨어 프레임워크 기술로 해결되는 문제가 아니라는 사실을 다시 확인할 수 있게 해준다.
빅데이터를 위한 대용량 확장형 스토리지 구축을 위해 분산 파일 시스템 소프트웨어, 비휘발성 메모리 및 저장 장치 기술과 함께 중요한 또 하나의 기술 요소가 네트워크이다. 네트워크의 경우 네트워크 대역폭과 지연 등의 기술적인 요소도 중요하지만, 전체 빅데이터 처리 프로세스에 따른 데이터 이동 경로와 가공 과정, 분산 파일 시스템 소프트웨어와 병렬 처리 프레임워크 소프트웨어의 아키텍처를 고려한 네트워크 디자인의 요소도 매우 중요하다.
인텔의 옴니패스(OmniPath)와 같은 고성능 네트워크 기술이나 차세대 이더넷 네트워크 기술인 100Gbps 이더넷 기술은 빅데이터 저장, 이동, 연산 성능을 물리적으로 향상시키고 비즈니스 요구사항에 맞는 확장형 빅데이터 스토리지 시스템을 구성하기 위해 가장 기본적으로 고려되어야 할 사항이다. 이런 고성능 네트워크 기술 제품 도입에는 비용이 많이 들기 때문에, 적절한 네트워크 토폴로지 디자인을 통해서 대용량 확장형 스토리지 시스템 구축의 비용과 성능을 최적화할 필요가 있다.
빅데이터를 위한 대용량 확장형 스토리지를 구축할 때, 노드 수의 증가에 따른 저장 용량과 데이터I/O의 선형 확장성을 보장하도록 네트워크를 설계하는 것은 기본적인 요구 사항이다. 스토리지 시스템 내부의 확장성을 보장하는 네트워크 설계와 함께 빅데이터 스토리지 시스템으로 데이터 수집 시스템에서 데이터를 전송하는 경로, 빅데이터 스토리지 시스템에서 데이터의 가공 및 처리를 위한 빅데이터 병렬 처리 시스템으로의 데이터 전송, 데이터 분석과 가시화 시스템으로의 데이터 전송, 분석 및 가시화 과정에서의 데이터 I/O를 고려한 네트워크 설계가 같이 이뤄져야 한다(그림 8).
대규모 가시화를 동원하는 탐색적 데이터 분석을 할 때는 데이터 과학자, 분석가와 가시화된 데이터와의 상호작용(interaction)의 응답성(response time), 또는 지연이 매우 중요하게 된다. 빅데이터 스토리지 시스템에서 데이터를 불러오는 과정에서 분산 파일 시스템을 통한 데이터 I/O 과정의 지연, 데이터 분석 및 가시화 시스템으로의 데이터 전송 과정에서 발생하는 지연, 병렬 데이터 가시화를 위한 데이터 변환, 병렬 가시화 시스템의 메모리로 가시화용 데이터를 적재(load)하고 실제 데이터 가시화를 수행하는 과정에서 발생하는 지연을 모두 고려했을 때, 데이터 과학자나 분석가가 데이터 탐색과 분석에 어려움을 느끼지 않게끔 빅데이터 스토리지 시스템으로부터 데이터 분석 및 가시화 시스템까지의 네트워크를 최적의 비용과 노력으로 설계하는 것은 빅데이터 시스템 구축에서 흔하게 만날 수 있는 중요한 기술적인 문제다.
특히 빅데이터를 수집하는 과정에서 요즘 많이 구축하게 되는 데이터 레이크(data lake)의 경우 그 근본 인프라가 대용량 확장형 스토리지 시스템이다. 데이터 레이크 시스템으로 다양한 데이터가 병목 없이 흘러들어오게 하기 위해서는 데이터 소스로부터 데이터 레이크로 이르는 네트워크에 병목이 없도록 데이터 소스의 종류와 위치에 따른 확장성도 같이 고려해주어야 한다.
데이터 레이크에서는 빅데이터의 활용을 위한 데이터 가공과 처리도 일부 겸하게 되는데, 데이터 레이크에서의 데이터 가공, 처리가 적절하게 이루어진 경우 데이터 수집 이후 단계에서의 네트워크 확장성에 대한 부담을 많이 줄일 수 있어서 데이터 수집을 위한 네트워크 설계는 데이터 레이크 구축에서 신중하게 고려하고 디자인하는 것이 좋다. 특히 수집할 데이터 소스가 분명하게 정해지지 않고 앞으로 계속해서 추가되고 확장될 가능성이 높다면 데이터 레이크로의 데이터 유입량의 증가에 쉽게 대처할 수 있는 확장성 있는 네트워크 설계가 매우 중요하다.
대용량 확장형 스토리지 시스템은 빅데이터 병렬 처리 시스템과 함께 빅데이터 시스템의 가장 중요한 영역이다. 특히, 빅데이터 수집, 가공, 처리, 분석, 가시화의 모든 단계가 대용량 확장형 스토리지 시스템에 저장된 빅데이터에서 시작되기 때문에 대용량 확장형 스토리지 시스템은 빅데이터 비즈니스를 위해 가장 기본이 되면서 중요한 시스템이라고 볼 수 있다. 최근 영구 저장 장치 소자 기술의 발전으로 인한 노드당 저장 용량의 증가와 네트워크의 물리적 대역폭의 증가, 분산 파일 시스템 소프트웨어와 데이터 레이크 솔루션 기술의 발전으로 한 조직이 모아둘 수 있는 빅데이터 양의 한계가 빠르게 높아지고 있다. 빅데이터 저장 기술의 발전으로 빅데이터 문제는 이제 모든 조직과 기업이 맞닥뜨려 해결해야 하는 기본적인 IT 인프라 문제가 되어가고 있다.
[참고문헌]
[1] 김진철, “LHC에서 배우는 빅데이터와 machine learning 활용 방안”, 2016년 9월 28일, A CIO Conversation for Technology Leadership – Breakfast Roundtable 발표 자료
[2] B. Bellenot, R. Brun, G. Ganis, J. Iwaszkiewicz, F. Rademakers, M. Ballintijn, “PROOF: Parallel ROOT Facility – Poster Presentation.“
[3] Lana Abadie, Paolo Badino, Jean-Philippe Baud, Ezio Corso, Matt Crawford, Shaun De Witt, Flavia Donno, Alberto Forti, Ákos Frohner, Patrick Fuhrmann, Gilbert Grosdidier, Junmin Gu, Jens Jensen, Birger Koblitz, Sophie Lemaitre, Maarten Litmaath, Dmitry Litvinsev, Giuseppe Lo Presti, Luca Magnoni, Tigran Mkrtchan, Alexander Moibenko, Rémi Mollon, Vijaya Natarajan, Gene Oleynik, Timur Perelmutov, Don Petravick, Arie Shoshani, Alex Sim, David Smith, Massimo Sponza, Paolo Tedesco, Riccardo Zappi, “Storage Resource Managers: Recent International Experience on Requirements and Multiple Co-Operating Implementations, “, in the Proceedings of the 24th IEEE Conference on Mass Storage Systems and Technologies (MSST 2007), 2007.
[4] CASTOR Storage System, http://castor.web.cern.ch/castor/ .
[5] dCache distributed storage software, http://www.dcache.org/ .
[6] Enstore tape archive system, http://www-ccf.fnal.gov/enstore/ .
[7] HPSS Consortium, http://www.hpss-collaboration.org/hpss/index.jsp .
[8] Corso, E. and Cozzini, S. and Donno, F. and Ghiselli, A. and Magnoni,, L. and Mazzucato, M. and Murri, R. and Ricci, P.P. and Stockinger, H. and Terpin, A. and Vagnoni, V. and Zappi, R., “StoRM, an SRM Implementation for LHC Analysis Farms Computing in High Energy Physics”, CHEP’06, Feb. 13-17, 2006, Mumbai, India, http://indico.cern.ch/contributionDisplay.py?contribId=373&sessionId=13&confId=048.
[9] StoRM: a Manager for Storage Resource in Grid, http://italiangrid.github.io/storm/documentation/functional-description/1.11.2/ .
[10] Ian Collier, on behalf of Ian Bird, “WLCG Workshop – Introduction,” Presentation at the WLCG Workshop Manchester, 19th June 2017. (https://goo.gl/a3RvKD)
[11] 삼성전자, 30TB 고속•초대용량 기업용 SSD 출시, 전자신문, 2018.02.20일자. (http://www.etnews.com/20180220000076)
[12] 삼성전자, 세계 최초 ‘30.72TB SAS SSD’ 양산, Samsung Newsroom, 2018/02/20. (https://goo.gl/xGYPfL)
[13] Richard Lawler, “Samsung has the world’s largest SSD, again, at 30TB,” Engadget, 2018/02/20. (https://goo.gl/7bPy1N)
[14] Brad Chacos, “Samsung’s 30TB SSD crams massive capacity into an ultra-fast 2.5-inch drive,” PC World, 2018/02/20. (https://goo.gl/fb9Q2B)
*김진철 박사는 1997년 한국과학기술원에서 물리학 학사, 1999년 포항공과대학교에서 인공신경망에 대한 연구로 석사 학위를, 2005년 레이저-플라즈마 가속기에 대한 연구로 박사 학위를 받았다. 2005년부터 유럽입자물리학연구소(CERN)의 LHC 데이터 그리드 구축, 개발에 참여, LHC 빅데이터 인프라를 위한 미들웨어 및 데이터 분석 기술을 연구하였다. 이후 한국과학기술정보연구원(KISTI), 포항공과대학교, 삼성SDS를 거쳐 2013년부터 SK텔레콤에서 클라우드 컴퓨팅과 인공지능 기술을 연구하고 있다. 빅데이터와 인공지능 기술의 기업 활용 방안에 대해 최근 다수의 초청 강연 및 컨설팅을 수행하였다. dl-ciokorea@foundryco.com