분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원 wsjang@nipa.kr 2010.11.25
GFS (Google File System) 목차 Introduction Distributed Platform GFS (Google File System) Architecture Operation CEPH
WIN 클러스터 컴퓨팅 by Google 개요 고용량 확장성 성능 신뢰성 비용 commodity machines (88) CPU : Dual 2GHz Intel x88 = 176 GHz RAM : 2GB x88 = 176 GB Disk : 80GB x88 = 7.04 TB = $278,000 super computer CPU : 8 x 2GHz xeon RAM : 64GB Disk : 8TB = $758,000
분산 플랫폼 계층 구조 분산플랫폼 Application Google Search Yahoo Search Distributed SW Framework MapReduce Hadoop MapReduce Distributed DataBase Bigtable Hadoop HBase Distributed File System GFS Hadoop HDFS Server Cluster Commodity machines 분산 처리 시스템을 구현하기 위해서는 각각 분산 처리 기능이 지원되는 File System , DataBase , SW Framework 이 필요 그 중에서도 가장 기초가 되는 것이 분산 파일 시스템
GFS (Google File System) (2003) Fault Tolerance (무정지) 와 High Performance (성능) 중시 Chunk 라는 파일 데이터의 단위를 사용 (64MB) 사본으로 3 개의 chunk 를 유지 대용량 파일의 빠른 처리를 우선 GFS Server Cluster Client master server 기본 가정 6가지 - fail 이 잦다. - 파일은 매우 크다 - 작업 read 는 두 종류다. 큰 read 와 잦은 random read - 작업 write 는 append 가 대부분이다. change 는 적다. small random write 는 적다 - 하나의 파일에 여럿이 동시 append 를 많이 한다. - 긴박한 read / write 응답 시간을 요하는 것보다는 대용량 데이터의 빠른 처리 chunk servers
Architecture (read operation) GFS Architecture (read operation) client read 요청 : 송신 : 파일 명 , 파일 offset (chunk id) 수신 : chunk 핸들 , chunk server 위치 (CACHE) GFS client GFS master client application MEMORY CACHE LOCAL DISK file name chunk id /data/file0 00001 00002 ... chunk id location1 location2 ... 00001 cs1 cs2 00002 cs4 cs5 namespace mapping table chunk locations client 요청 : - chunk 핸들 - bytes 길이 chunk 데이터 heartbeat 수시 체크 : - chunk location 확인 - chunkserver 동작 확인 - chunk location table 은 저런 형태일지 확실하지 않음 (miss) 2003년도 자료이기 때문에 현재 상태와는 다를 수 있음 GFS chunkserver GFS chunkserver ... 제어 명령 데이터 전송 chunk chunk chunk chunk ... ...
Write Operation GFS GFS client GFS master SECONDARY PRIMARY SECONDARY client write 요청 write 응답 - chunkserver 위치 - lease GFS client GFS master chunkserver lease cs1 (192.168.1.10) SECONDARY cs2 (192.168.1.13) PRIMARY cs3 (192.168.1.25) write lease mechanism : Primary chunkserver 가 write 되는 3개의 chunk 의 Serialization을 제어 ok! SECONDARY PRIMARY SECONDARY GFS cs1 GFS cs2 GFS cs3 PRIMARY 는 몇 분간 계속 유지됨 (by master) 실패할 경우 write 차례부터 몇 번 재시도 (inconsistent) LRU (Last Recent Used) buffer 장점 1. 데이터 전송을 chain 방식으로 진행 , 제어 명령과 분리 2. 가까운 머신부터 전달 3. 수신과 송신을 동시에 Memory LRU buffer buffer buffer buffer Serial No. 1 Serial No. 1 Serial No. 1 Serial No. 2 Serial No. 2 Serial No. 2 DISK chunk chunk chunk
Record Append Operation (Atomic Write) GFS Record Append Operation (Atomic Write) GFS Master 1 3 GFS client GFS client GFS client 2 SECONDARY offset PRIMARY offset SECONDARY GFS cs GFS cs GFS cs record append 의 failure 처리에 대해서는 일단 operation 은 read / write / record append 까지 lock , replica replacement , creation , re-replication , rebalancing , garbage collection 보류 (자료 보충) lock 은 write 발표 도중 언급 - 파일에 대해서 디렉토리 – read lock , 파일 read-write lock buffer buffer buffer 1 chunk 2 3 chunk 1 2 3 chunk 1 2 3
CEPH CEPH (2006) scalability(확장성) , performance(성능), reliability(신뢰성) 우선 Data 와 Metadata 의 분리 동적 Metadata 관리 신뢰성있는 자동 분산 데이터 저장 CRUSH 와 directroy 분할 관리 GFS Server Cluster CEPH Server Cluster MDS (metadata server) master CEPH – University of California Santa Cruz 에서 개발되었음 RAID 기술 – rebundant array of of independent disks 중복 데이터 저장 기술 OSD (object storage device) Client chunk servers Clients
Architecture CEPH CRUSH (x) = (osdn1, osdn2, osdn3) CRUSH - Controlled Replication Under Scalable Hashing x – file -> object -> placement group -> pgid -> osd O_LAZY – write 옵션과 비슷함 OS kernel file system 이 수정됨 file 을 object 단위로 분할하여 object id 로 관리
Dynamically Distributing Metadata CEPH Dynamically Distributing Metadata Ceph 는 디렉토리 구조를 사용량을 기준으로 동적으로 MDS 에 분할 매핑하여 관리한다. hot spot 이 발생할 경우에는 특정 디렉토리만 다른 노드로 재할당된다.
Write Operation CEPH final commit 이 완전히 끝나지 않을 경우 fail 처리됨 write 에는 전부 lock 이 걸림 final commit 이 완전히 끝나지 않을 경우 fail 처리됨
요약 GFS CEPH 구조 특징 장점 단점 용도 Master Server, Chunk Servers Metadata Servers, Object Storage Devices 특징 제어 명령과 데이터 전송을 분리 record append 동작을 통해 다중 atomic write 를 구현 metadata 처리와 I/O 처리를 분리 directory 별로 workloads 를 동적으로 판단하여 metadata 처리를 분할 장점 대용량 데이터 I/O 로서의 성능 대용량 file system 으로서의 확장성 단점 master server 의 부하 failover 및 디렉토리 구조의 변경 등으로 인한 성능 저하 용도 대용량 파일 분할 처리 대용량 파일 저장 및 서비스
Reference The Google File System ~ Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung (2003) CEPH : A Scalable, High-Performance Distributed File System ~ Sage A. Weil, Scott A.Brandt, Ethan L.Miller , Darrell D.E.Long (2006) 기타 분산 파일 시스템 Lustre Panasas 감사합니다