시리즈

[기획/2011 클라우드⑦] 기업에게 대용량 데이터는 공포…“노란 코끼리에게 맡겨라”

백지영 기자

[기획] 클라우드 컴퓨팅 비즈니스 지형을 바꾼다.

2부. 클라우드 컴퓨팅에 필요한 핵심 기술들

①통합과 분배의 핵심 기술…“가상화의 힘”
②클라우드의 양날의 칼…멀티 태넌시
③ “대용량 데이터 저장·분석은 노란 코끼리(하둡)에게 맡겨라”
④관계형DB를 대체한다…NoSQL
⑤클라우드 보안,
정보유출 방지가 핵심

[디지털데일리 백지영기자] 클라우드 서비스는 사용자의 모든 데이터가 클라우드 인프라 내부에 저장되기 때문에 기본적으로 대량의 데이터나 파일을 저장할 수 있는 저장 공간을 반드시 필요로 한다.

기업에 따라서는 이미 처리해야할 데이터의 증가가 거의 공포스러울 정도인 곳도 있다.

일반적으로 대량의 파일을 안전하게 저장하기 위해 대부분의 기업들은 기존의 NAS(Network Attached Storage)와 SAN(Storage Area Network)를 사용한다.

물론 클라우드 컴퓨팅에서의 스토리지 시스템도 SAN, NAS와 같은 전통적인 스토리지 솔루션을 이용할 수도 있다.

하지만 서비스의 동적인 증가와 감소에 대비하고 비용적인 측면을 고려해 분산 파일 시스템을 이용하는 경우도 많아지고 있다.


분산 파일 시스템은 일반적인 파일 시스템과는 달리 분산돼 있는 여러 서버의 로컬 디스크에 파일을 저장하고 저장된 파일에 쉽게 접근할 수 있는 기능을 제공하는 시스템이다.

NAS와 SAN은 많은 기업에서 사용하고 있으며 수십 테라바이트(TB)~페타바이트(PB) 이상으로 확장할 수도 있지만, 대신 가격이 비싸고 추가 확장을 위해서는 많은 비용이 든다.

특히 클라우드 컴퓨팅의 특징 중 하나인 탄력적인 확장성을 보장하기 어려운 경우가 많다. 이는 장비구매와 네트워크 구성 등이 진행돼야 하기 때문.

물론 분산 파일 시스템도 준비한 용량 이외에 추가로 용량을 증설하려면 장비를 구매해야 하지만, 이는 장비 자체가 흔히 구할 수 있는 리눅스 장비에 일반 디스크만 있으면 되기 때문에 상대적으로 빠른 시간 내에 확장할 수 있다.

분산 파일 시스템은 SAN, NAS를 대체하기보다는 다른 형태의 스토리지 솔루션 타입으로 데이터 종류에 따라 이를 저장할 수 있는 솔루션을 선택할 수 있는 대안으로 제시되고 있다.

고성능, 고가용성이 필요한 데이터의 경우에는 SAN, 중간 규모의 데이터 용량에 안정적인 파일 저장이 필요한 경우엔 NAS, 파일저장이나 읽기 같은 단순한 연산만 필요하지만 대규모의 데이터를 저렴한 비용으로 저장하기 위해서는 분산 파일 시스템을 이용할 수 있다.


최근 분산 파일 시스템이라고 하는 것은 주로 동일 서버들로 이뤄진 클러스터 사이에 고속으로 데이터를 공유할 수 있는 클러스터 파일 시스템을 의미한다. 이는 현재 대표적으로 야후에서 적극적으로 지원해 개발한 아파치 재단의 '하둡 파일 시스템'을 꼽을 수 있다.


하둡은 구글이 개발한 파일 시스템의 오픈소스 버전이라고 할 수 있다. 이는 아파치 루씬 프로젝트(http://lucene.apache.org)의 일부분으로 진행됐으며, 대용량 파일 저장과 처리를 위한 솔루션으로서 아파치의 메인 프로젝트로 승격됐다.

하둡은 ‘분산 파일 시스템(HDFS)’과 분산 컴퓨팅을 위한 ‘맵리듀스(MapReduce)’등이 포함돼 있다. 하둡 파일 시스템은 구글 파일 시스템의 설계와 아이디어를 이용해 개발됐기 때문에 많은 부분에서 구글 파일 시스템과 유사하다.



이미 구글이나 페이스북, 아마존 등과 같이 전세계 인터넷 사용자들 대상으로 서비스를 제공하고 있는 인터넷 기업들은 수백만대의 서버를 운영하면서 이같은 기술을 적용하고 있다.


최근에는 IBM과 EMC가 인수한 그린플럼, 테라데이타 등이 하둡을 자사의 분석 솔루션 등과 결합해 비용 효율적으로 대용량 정보들을 처리, 분석할 수 있도록 하겠다는 전략을 내세우고 있다.


하둡 파일 시스템은 하나의 서버에서만 동작하는 파일 시스템이 아니라, 여러 서버에서 설치돼 운영되며, 파일 시스템만을 위한 별도의 하드웨어나 스토리지가 존재하지 않는다.

이는 한 대당 수백만원 수준의 저렴한 x86 서버 위에 리눅스 운영체제(OS)를 올리고, 서버에 탑재돼 있는 로컬 디스크(대부분 SATA나 SAS 디스크)를 이용해 수백~수천대 이상 확장 가능한 구조로 페타바이트 이상의 데이터를 저장할 수도 있다.

SATA, SAS 디스크는 현재 PC에서도 많이 사용하는 디스크다. 일반적으로 하둡 파일 시스템은 하나의 네임 노드 서버와 세컨드리 네임 노드, 다수의 데이터 노드 서버들로 구성된다.

하둡 파일 시스템은 기존 스토리지 솔루션들에 비해 활용범위가 높으며 다양한 장점이 존재한다.

우선 선형적인 확장성 제공이 가능하다는 것이 가장 큰 장점으로 꼽힌다. 일반적인 스토리지는 초기에 애플리케이션에서 사용할 용량을 예측해 미리 스토리지 용량을 확보한 상태에서 시스템이 오픈된다.

그러나 하둡 파일 시스템을 이용할 경우에는 서비스 초기에 필요한 수준으로만 스토리지 용량을 확보해 시스템을 오픈한 후, 스토리지 증가 추이를 보면서 용량을 추가하는 방식으로 진행할 수 있다.

스토리지 용량 증설을 위해선 스토리지로 사용할 리눅스 장비를 추가하고, 하둡의 데이터 노드만 실행해주면 하둡 파일 시스템에서 자동으로 인식한다.

스토리지 용량 증설을 위해 응용 계층에서의 작업은 필요없으며, 서버 측 작업도 마운트 등의 작업이 필요없이 서버만 추가하면 되기 때문이다. 물론 기존 스토리지 솔루션도 이와 같은 방식으로 확장할 수는 있지만, 하둡 파일 시스템에 비해 관리 요소가 많이 필요하다고 할 수 있다.

또한 하둡 파일 시스템을 이용할 경우, 회사 전체의 시스템이나 전체 서비스에 파일에 대한 유일한 식별 단위를 가질 수 있다. 글로벌 네임 스페이스를 이용하면 시스템 간의 파일 시스템에 대한 중복 저장 등 파일 공유 등의 문제를 쉽게 해결할 수 있다.

비용 절감 역시 장점으로 꼽힌다. 실제 하둡과 같은 분산 파일 시스템의 보급으로 경쟁관계에 있는 스토리지 솔루션인 NAS의 가격이 많이 저렴해졌다.

이밖에도 전체 처리 용량이 증가하는 것도 하둡 파일 시스템의 강점이다. NAS와 같이 중앙 집중된 스토리지 솔루션의 가장 큰 단점은 부하 집중에 취약한 구조를 갖는다는 것이다.

응용 계층과 스토리지 계층을 연결하는 네트워크에 병목이 발생할 수도 있으며, 스토리지 자체 디스크 헤더에 병목이 발생할 수도 있다. 그러나 하둡과 같은 분산 파일 시스템은 분산된 서버의 디스크를 이용하기 때문에 네트워크, 디스크 I/O 등이 각 서버로 분산된다. 따라서 동일한 용량의 스토리지 솔루션을 구축할 경우, 전체 처리 용량은 증가한다.

최근 하둡 파일 시스템이 점점 일반 스토리지 서비스에도 많이 사용되고 있기는 하지만, 가장 많이 사용되는 분야는 역시 데이터 분석 분야다. 분석용 데이터를 하둡 파일 시스템에 저장하고 맵리듀스라는 분산/병렬 처리 프레임워크를 이용해 빠르게 분석하는데 주로 활용 중이다.

하둡 파일 시스템을 구성하는 리눅스 장비의 CPU나 메모리 등을 활용함으로써 별도의 분석용 컴퓨팅 자원이 필요없기 때문에 저렴한 비용으로 분석 업무까지 같이 할 수 있다.

그러나 하둡 파일 시스템의 제약 사항이나 단점으로 지적되는 부분들도 분명 있다.

하둡 파일 시스템은 응용 프로그램으로 구성된 파일 시스템이기 때문에, 파일 시스템이라고는 하지만 일반적인 파일 시스템처럼 운영체제에서 제공하는 ls, copy, rm 등과 같은 파일 처리 명령을 이용할 수 없다.

따라서 하둡 분산 파일 시스템을 이용하는 애플리케이션은 하둡에서 제공하는 명령어나 프로그램 API를 이용해야 한다.

또한 파일은 한번 써지면 변경되지 않기 때문에, 파일을 저장하고 저장된 파일에 대해 스트리밍 방식의 읽기 요청 위주인 응용이나 배치 작업 등에 적합하다. 이런 제약 때문에 파일 처리를 주로 하는 기존 솔루션이나 시스템을 수정 없이 하둡 분산 파일 시스템을 적용할 수 없다.

디렉토리명, 파일명 등 파일 시스템의 네임스페이스 정보를 네임 모드의 메모리상에서 관리하기 때문에, 하둡에 저장할 수 있는 파일과 디렉토리 개수는 네임 노드의 메모리에 따라 크게 제한받는다는 점도 약점으로 지적된다.

이같은 특징에 따라 하둡 분산 파일 시스템을 시스템의 파일 및 데이터 저장소로 활용할 경우, 구축하려는 시스템의 요구 사항에 부합되는지를 검증한 이후에 도입을 결정하는 것이 바람직하다.

현재 하둡 파일 시스템이 대용량 분석 데이터를 저장하는 용도로 출발했지만, 최근에는 파일 시스템 자체로 활용하려는 시도도 많아지고 있다. 클라우드 컴퓨팅 환경에서 분산 파일 시스템이 사용되는 용도 중 하나는 클라우드 스토리지 서비스다.

클라우드 스토리지 서비스는 아마존 AWS의 S3(Simple Storage Service)나 국내에서는 네이버의 N드라이브, KT의 유클라우드 서비스 등이 있다.

하둡 파일 시스템도 대용량 스토리지를 구축할 수 있는 솔루션이기 때문에, 클라우드 스토리지를 구축하는 기술로 많이 활용할 수 있을 것으로 보인다.


※이 기사는 에이콘 출판사의 ‘클라우드 컴퓨팅 구현 기술(김형준∙조준호∙안성화∙김병준 지음)’을 참조했습니다.

<백지영 기자>jyp@ddaily.co.kr

백지영 기자
jyp@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널