본문 바로가기

IT 노트

클라우드 컴퓨팅을 위한 분산 파일 시스템

클라우드 컴퓨팅을 위한 분산 파일 시스템




클라우드 컴퓨팅 구현에는 대표적으로 두 가지의 기술이 반드시 필요 합니다.


그 첫 번째는 컴퓨터 리소스의 추상화를 광범위하게 일컫는 가상화 입니다.

가상화 기술을 이용하면 물리적 서버를 통합/분할해서 자원을 효율적으로 사용할 수 있기에

클라우드 컴퓨팅를 구현하기 위한 핵심이라고 할 수 있겠죠.




 

또 하나의 빠질 수 없는 클라우드 컴퓨팅의 기반은 분산 처리 기술입니다.

클라우드와 빅데이터는 꼬리표처럼 따라오는 관계.

그 막대한 양의 데이터를 수많은 서버들에 분산 저장하고 관리하는 기술이

분산 파일 시스템(distributed file system, DFS)입니다.

 

수많은 분산 파일 시스템들이 존재하지만 클라우드 컴퓨팅에 활용되고 있는 분산 파일 시스템은 그리 많지 않습니다.

대표적인 구글과 아파치 하둡 파일 시스템에 대해 간단히 설명 드려보겠습니다~

 

 


 

GFS (Google File System)

구글은 웹 페이지 정보를 크롤링해 저장하기 위해 클라우드 서비스가 필요했습니다.

그렇게 자체 개발한 분산 파일 시스템인 GFS를 사용하고 있습니다.

GFS는 여러 클라이언트에 의해 접근되는 단일 마스터와 여러 청크 서버들로 구성 됩니다.

하드웨어 안정성이나 자료들의 유실에 대해서 고려해 저가 서버에서도 사용 되도록 설계 되었으며, 레이턴시가 조금 길더라도 데이터의 높은 스루풋에 중점을 두었습니다.



* 레이턴시 (latency) : 드라이버가 지연되는 시간 



Google File System Architecture (위키백과 출처)





HDFS (Hadoop Distributed File System)

아파치 하둡 분산 파일 시스템은 GFS를 모델로 해서 만들어진 Open source 입니다.

HDFS는 대용량의 파일을 청크 단위로 분할해 효과적으로 분산 저장할 수 있습니다.

뿐만 아니라 청크 위치 정보를 기반으로 맵리듀스 프레임워크를 이용해 연산마저 분산 처리할 수 있죠.

  

* 청크 (chunk) : 규칙 기반 시스템에서 단일 단위로서 저장·검색되는 사실의 집합체.


* 맵리듀스 (MapReduce) : 구글에서 분산 컴퓨팅을 지원하기 위한 목적으로 제작한 소프트웨어 프레임워크. 함수형 프로그래밍에서 일반적으로 사용되는 Map Reduce라는 함수 기반으로 주로 구성된다. 현재 MapReduce Java C++, 그리고 기타 언어에서 적용이 가능하도록 작성되었다.



Apache Hadoop Architecture (www.apache.org)





GFSHDFS는 공통적으로, 다수의 범용 서버로 구성된 컴퓨터 클러스터에서 대규모의 데이터 처리를 실행하는데 적합합니다.

그렇기에 막대한 데이터를 운용해야만 하는 클라우드 컴퓨팅 환경에서 DFS가 필수 기술력이라고 할 수 있겠죠.