29
2013. 08.8 글러스터 파일 시스템 설정 가이드 v1.0 주식회사 오픈소스컨설팅

Glusterfs 구성제안 v1.0

  • Upload
    sprdd

  • View
    196

  • Download
    5

Embed Size (px)

Citation preview

2013. 08.8

글러스터 파일 시스템 설정 가이드 v1.0

주식회사 오픈소스컨설팅

1.GlusterFS 개요

글러스터는 레드햇에서 지원하는 오픈소스 파일시스템 으로써 수천 PetaByte 급의 대용량에 수천개의 클라이언트가 접속하여

사용 가능한 scale-out 방식 분산파일 시스템입니다.

GlusterFS는 기존의 분산 파일 시스템에 비해 비교적 구성이 간단하며 , 대용량 및 대규모의 I/O처리 능력이 뛰어납니다.

2.GlusterFS 표준 아키텍쳐

레드햇의 글러스터 파일 시스템의 경우 네트워크의 capability가 중요합니다.

Client Side에서 사용하는 프로토콜의 경우에는 CIFS, NFS 프로토콜을 사용하여 Brick에 연결하게 됩니다.

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

일반적 구성 ( General Configuration)

- 중앙에 있는 Time Server를 이용한 노드간이 시간 동기화 설정 (ex : ntp 설정)

파일 시스템 구성 (Filesystem Requirement)

- Brick에 사용되는 파일 시스템의 경우 XFS 파일 시스템을 사용하는 것을 권장

- XFS 파일 시스템의 경우 저널링 파일 시스템이기 때문에 신속한 복구가 가능하며, 대용량 디스크를 지원

- XFS 파일 시스템은 온라인 상태 또는 마운트된 상태에서도 de-fragmented 또는 확장이 가능

네트워크 구성 (Network Configuration)

- 글러스터 파일 시스템은 고속의 네트워크 환경이 요구됨, (ex: Infiniband. 10G, 1G)

- 클라이언트와 서버간의 통신에 있어서는 최대한 네트워크 대역폭을 확보해 주는것을 권장하고 있음

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

글러스터 파일 시스템을 사용하기 위해서는 하드웨어 사양 및 구성에 대한 Requirement 반영이 중요합니다.

Red Hat Storage Server Compatibility

- RHS 제품은 운영체제 형태의 설치 이미지를 제공하기 때문에 하드웨어 정합성에 대한 체크가 요구된다.

하드웨어 도입전 아래의 사이트에서 지원 하드웨어에 대한 정합성을 확인을 먼저 진행한다.

(H/W Compatibility List : https://hardware.redhat.com)

General Requirement H/W for Red Hat Storage Server

- H/W Compatibility에 부합되는 하드웨어를 도입 (RHEL6 또는 그 이상 되는 버전의 호환성과 부합)

- 2소켓 서버 (4-core, 6-core or 8-core) 를 권장하고 있다. (no 1-socket, 4-socket, 8-socket)

- Super Micro Storage Server for Use Case

(Use Case 별 (HPC, General Fileserver, Archival backup) 도입 가능한 스토리지 리스트)

SuperStorage Server 2027R-E1R24N for High Performance Computing.

SuperStorage Server 6027R-E1R12N for General Purpose File Serving.

SuperStorage Server 6047R-E1R36N for Archival and backup.

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

시스템 용도별 (Use Case) 글러스터를 적용하기 위해서 요구되어 지는 스토리지에 대한 사양은 아래와 같습니다 .

High-Performance Computing

- 2u/24 (JBODs may be attached except for Supermicro, not to exceed 24 drives per server even with JBOD(s))

- 15000 RPM 600GB drives(2.5" inch SAS)

- Minimum RAM 48 GB

General Purpose File Serving

- 2u/12 (JBODs may be attached except for Supermicro, not to exceed 12 drives per server even with JBOD(s))

- 7200 or 10000 RPM 2/3 TB drives (3.5" SAS or SATA)

- Minimum RAM 32 GB

Archival use-case

- 4u/36 (JBODs may be attached except for Supermicro, not to exceed 36 drives per server even with JBOD(s))

- 7200 or 10000 RPM 2/3 TB drives (3.5" SAS or SATA)

- Minimum RAM 16 GB

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

3.1.1 Server Requirements

HP, Dell, Fujitsu, IBM, Cisco, NEC, Hitachi에서 출시된 대부분의 2socket 서버 지원

3.1.2 Storage Requirement

• OS 용 디스크 구성: 200GB 이상 * 2EA, Raid 1(mirroring)

• Data 저장용 디스크 구성

- 12개 디스크 그룹의 Raid 6

- battery-backed H/W Raid Array

- write-back option 을 Raid Array Interface or API로 제공해야 함(성능 보장을 위해 write-back 옵션 권고)

3.1 Hardware Compatibility

Usable 180TB Usable 180TB Usable 180TB Usable 180TB

Usable 180TB Usable 180TB Usable 180TB Usable 180TB

Usable 180TB Usable 180TB Usable 180TB Usable 180TB

Usable 180TB Usable 180TB Usable 180TB Usable 180TB

Service 10G Network

Replication 10Gb Ethernet

L3 Backbone

H/W Mgmt. Server (HP SIM)

Red Hat Storage Mgmt. Console

Initial capacity (2.6 PB) 10g 10g

Mgmt. 1G Network

Aggregation switch

Aggregation switch

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

• Trusted Peer Network: Ethernet(1Gb 와 10Gb), *Infiniband

• NIC: 서버에는 10Gb * 2EA port 장착 권고, 10Gb 불가시 1Gb * 2EA port

3.2 Network Requirement

* Infiniband: Infiniband 사용시에는 별도 Red Hat Review 필요

* tcp tuning: 10Gb 이더넷 환경에서 sequential read 젂송 했을 때, tcp 별도 튜닝 불필요.

오히려 튜닝했을 때 성능이 저하되거나 동일한 성능을 제공했었음

GlusterFS 는 확장에 대한 제약이 없으나 차후에 원활한 기술지원과 성능을 보장하기 위해

아래의 제약 사항을 두고 있음

• 최소 노드수: 4 nodes

• 최대 노드수: 64 nodes

• 스토리지 풀 최대 용량: 8 Petabytes( 2 replica 구성 시, 4 Petabytes)

• 스토리지 볼륨 요구 사항

- 약 20%의 볼륨 여유 공간 권고

- 복제 및 self healing 기능을 위해 필요

- 최소 15% 여유 공간

3.4 Server Pool Requirements

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

클라이언트 접속 방식은 GlusterFS Native Client, NFS or CIFS를 제공. Server Pool의 Node당

최대 16 Client 접속 허용

3.5.1 GlusterFS Native Client

• 높은 동시접속, 성능, 빠른 failover 기능 제공

• POSIX export 방식을 사용하기 때문에 일반 파일시스템처럼 mount 하여 사용

• Client OS에 별도 native client 설치 필요

• 지원 Client OS

- RHEL 5.8 이상

- RHEL 6.0 이상

3.5.2 NFS Support

• 커널단의 NFS가 아닌 Gluster NFS Translator에서 제공하는 NFS 서비스 이용

• CTDB를 통한 접속 이중화 지원

• 지원 Client OS

- Fedora, Debian 기반 리눅스 배포판

- Unix(Solaris 10+)

- Microsoft Windows Server 2008, Windows 7

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

3.5 Client Compatibility

3. 글러스터 파일 시스템 사전 요구 사항 (Prerequisites)

3.5 Client Compatibility

클라이언트 접속 방식은 GlusterFS Native Client, NFS or CIFS를 제공. Server Pool의 Node당

최대 16 Client 접속 허용

3.5.3 CIFS Support

• Storage Pool의 어느 서버에 접속해도 동일한 파일시스템 공유 가능

• CIFS 서비스는 스토리지 소프트웨어와 독립적으로 작동

• 지원 Client OS

- Fedora, Debian 기반 리눅스 배포판

- Unix(Solaris 10+)

- Microsoft Windows Server 2008, Windows 7

4. 글러스터 파일 시스템 복제 방식

Distributed

- 분산 파일시스템이 필요하고 데이터 안전성이 요구되지 않을 때 사용

Replicated

- 분산 파일시스템은 사용하지 않고 데이터 안전성이 매우 중요할 때 사용

Striped

- 큰 파일의 동시접속이 매우 높을 때 사용

Distributed Striped

- 확장성을 필요로 하고 파일이 크고 동시접속이 높을 때 사용

Distributed Replicated

- 분산 파일시스템을 사용하면서 동시에 데이터 안전성을 요구할 때 사용. 대부분의 환경에서 Read 속도가 매우 좋음

Distributed Striped Rplicated

- 파일에 대한 동시접속이 많고 성능이 중요할 때 사용 - map reduce 업무에만 지원

Striped Replicated

- 큰 파일에 대한 동시 접속이 많고 성능이 중요할 때 사용 - map reduce 업무에만 지원

글러스터 파일 시스템에 대한 복제 방식은 아래와 같이 7가지의 동작 형태로 데이터를 복제합니다.

4. 글러스터 파일 시스템 복제 방식

Replicated 복제 방식

여러 개의 브릭(Brick) 볼륨을 거쳐서 데이타틀 저장하는 방식입니다.

운영하는 데이터의 안정성이 보장되어야 할때 사용되는 복제 방식으로써 Brick 볼륨이 서로 다른 서버에

존재할때 안전하게 데이터가 복제될수 있습니다.

4. 글러스터 파일 시스템 복제 방식

Stripe 복제 방식

파일의 사이즈가 크고 동시 접속가 많은 경우 적합한 데이터 복제 방식 입니다.

하나의 파일을 여러 개의 Brick에 분산하여 데이터를 저장함으로 데이터의 안전성을 보장할수 없습니다.

4. 글러스터 파일 시스템 복제 방식

Distributed Stripe 복제 방식

파일의 사이즈가 크고 동시 접속가 많은 경우 적합한 데이터 복제 방식 입니다.

기존의 Stripe 방식에서 분산파일 시스템을 사용하기 위해서 구성하는 복제 방식입니다.

4. 글러스터 파일 시스템 복제 방식

Distributed replicated 복제 방식

분산파일 시스템을 사용하면서 동시에 데이터의 안전성을 보장받기 위한 복제 방식입니다.

일반적으로 많이 사용되는 구성 방식이며 Read Performance가 좋습니다.

데이터의 안전성을 위해서 복제에 사용된은 Brick은 각각 다른 서버에 위치하고 있어야 합니다.

4. 글러스터 파일 시스템 복제 방식

Distributed stripe replicated 복제 방식

파일에 대한 동시 접속이 많고 전체적인 성능이 중요하다고 판단되어 질때 구성하는 복제방식입니다.

일반적으로 Mapreduce 를 사용할때 구성하는 방식으로 권장하고 있습니다..

복제를 통한 데이터의 안전성을 보장하기 위해서 구성하는 복제 방식입니다

4. 글러스터 파일 시스템 복제 방식

stripe replicated 복제 방식

파일에 대한 동시 접속이 많고 전체적인 성능이 중요하다고 판단되어 질때 구성하는 복제방식입니다.

일반적으로 Mapreduce 를 사용할때 구성하는 방식으로 권장하고 있습니다..

4. 글러스터 파일 시스템 복제 방식

Geo replicated 복제 방식

Geo Replication 복제 방식을 통해서 원격지 볼륨과 복제하여 데이터의 안전성을 보장합니다.

기본 Master/ Slave 모드로 동작.

동기식/비동기식/증분복제 방식으로 데이터를 전송

LAN / WAN /INTERNTE 구간에서 복제.

데이터의 동기화를 위해서 반드시 NTP 설정.

5. 글러스터 파일 시스템 물리적 확장

노드에 대한 scale-up 확장

디스크 추가

이더넷 추가

메모리 추가

CPU 추가

GlusterFS를 사용하기 위한 노드 시스템들의 물리적인 Resource를 확장해 나가는 방식입니다.

5. 글러스터 파일 시스템 노드 확장

노드에 대한 scale-out 확장

GlusterFS를 사용하기 위한 노드 시스템들을 기준으로 확장해 나가는 것입니다.

Scale-Out capacity 확장의 목적은 전체적인 Performance에 대한 증가를 목적으로 합니다.

6. 글러스터 파일 시스템 데이터 정합성

GlusterFS의 Self Healing 기능은 Replication을 구성했을때 복제된 데이타들에 대한 정합성을 검증할때

사용하는 기능으로 복제가 정상적이지 않을 경우 자동으로 Sync를 진행합니다.

Self-Healing 기능을 통한 데이터 Sync

• Self-Healing 특징

- Pro-active self-heal daemon이 백그라운드로 수행

- 10분 간격으로 정합성 검사

- 정합성이 맞지 않는 데이터는 자동으로 Sync 작업 수행됨

6. 글러스터 파일 시스템 데이터 정합성

GlusterFS의 Self Healing 기능은 Replication을 구성했을때 복제된 데이타들에 대한 정합성을 검증할때

사용하는 기능으로 복제가 정상적이지 않을 경우 자동으로 Sync를 진행합니다.

Self-Healing 기능을 통한 데이터 Sync

*Self healing & rebalancing을 위해 전체 볼륨의 20%를 여유공간으로 확보하는 것을 권장

6. 글러스터 파일 시스템 데이터 정합성

GlusterFS의 Re-Balancing 기능은 새로운 노드가 추가 되었을 경우 저장된 데이터를 Hashing Algorithm에

맞게 데이터를 분배해 주는 것입니다.

Re-Balancing 기능을 통한 데이터 Sync

• Rebalancing 특징

- 신규 노드가 추가/제거되었을 때 데이터를 분산하여 적재하는 기능

- Rebalancing 작업이 진행되지 않으면 신규 노드가 추가되더라도 그 노드의 Brick에는

데이터가 쌓이지 않음

- 두 가지 타입의 rebalancing 기능 제공

• Fix Layout: Hashing table만 변경하여 신규로 들어오는 데이터들이 신규 노드로

저장될 수 있도록 함

• Fix Layout and Migrate Data: Hashing table을 변경하고 기존 데이터들을 변경된

Table에 맞게 재분배시킴

6. 글러스터 파일 시스템 데이터 정합성

GlusterFS의 Re-Balancing 기능은 새로운 노드가 추가 되었을 경우 저장된 데이터를 Hashing Algorithm에

맞게 데이터를 분배해 주는 것입니다.

Re-Balancing 기능을 통한 데이터 Sync

*Self healing & rebalancing을 위해 전체 볼륨의 20%를 여유공간으로 확보하는 것을 권장

6. 글러스터 파일 시스템 성능 향상 제시

Server Considerations

• 필수 구성 요건

- Filesystem: XFS

- Volume Manager: LVM

- inode size: 512B (예, mkfs –t xfs –f –I size=512 /dev/vdb1)

• 추가 구성 요건

- RAID Stripe size: default 64K 이나 필요에 따라 변경 가능

• Networking Consideration

- Traffic Shaping

- Storage Network 와 Application Network 분리

- jumbo framework 사용(패킷 오버헤드와 network latency를 줄이기 위해 필요

• Topology

- NFS 서버와 클라이언트들을 동일한 스위치에 연결 - 네트워크 hop수를 줄임으로써 네트워크 지연을 줄이고 스토리지 성능 향상 가능

6. 글러스터 파일 시스템 성능 향상 제시

Glusterfs 클라이언트 성능 향상을 위한 프로토콜 제시

NFS (Network Filesystem)

NFS 접속 방식은 하나의 노드를 접속하고 그 노드를 통해서 다른 노드들의 데이터를 가져와야

하기 때문에 distributed 또는 striped 방식으로 구성된 환경에서는 성능이 저하될 수 있음

FUSE (Native Client)

크기가 작은 파일들을 처리하고, 클라이언트 수가 많은 환경에서는 native client를 사용하는 것이

적합native client는 파일의 경로를 client가 가지고 있고, brick에 직접 연결하여 데이터를 가져오기

때문에 많은 파일을 처리하는데 큰 성능 향상을 볼 수 있음

Tuned (Red Hat Storage 에서 제공)

Red Hat Storage 가 제공하는 tuned-profile인 “rhs-high-throughput” 을 적용할 경우, 대 용량

파일이 많은 환경에서 성능 향상을 볼 수 있음

6. 글러스터 파일 시스템 성능 향상 제시

Red Hat Storage 제품을 사용하게 되는 경우 아래와 깉이 tuning profile 적용할수 있습니다