• Like
Glusterfs 소개 v1.0_난공불락세미나
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Glusterfs 소개 v1.0_난공불락세미나

  • 1,764 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,764
On SlideShare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
85
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 2014. 04.19 분산 파일 시스템 GlusterFS 소개 및 특징 주식회사 오픈소스컨설팅
  • 2. Table of Content  GlusterFS 소개 및 특징  GlusterFS의 구성을 위한 사전 요구 사항  GlusterFS 복제 방식  성능향상을 위한 고려사항  별첨 : GlusterFS설정을 위한 기본 구성 가이드
  • 3. 3 1. 전통적 엔터프라이즈 스토리지 선택 고려 요소 부정적 측면 1) CAPEX: 기업이 고정자산을 구매하거나, 유효수명이 당회계 년도를 초과하는 기존의 고정자산에 대한 투자에 돈이 사용될 때 발생 비용(Cost)1 종속성(Vendor Lock-in)2 확장성(Not Multi-Tenant)3 성능 측면 응답 시간 처리량 IOPS(IO per Second) 저장 효율성 중복 제거 서비스 가용성 비즈니스 연송성 데이터 마이그레이션 서비스 측면 The InfoPro Storage Study 1H12 – 451 Research
  • 4. 4 2. 기존 방식의 스토리지 확장 업무 요구사항을 달성하기 위한 스토리지 용량 및 서비스 품질 수준(QoS) 정의 Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem
  • 5. 5 2. 기존 방식의 스토리지 확장 Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem 업무 요구사항을 달성하기 위한 스토리지 용량 및 서비스 품질 수준(QoS) 정의 업무 기능이 지속적으로 추가되어, 더 많은 스토리지가 필요 Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem
  • 6. 6 2. 기존 방식의 스토리지 확장 업무 요구사항을 달성하기 위한 스토리지 용량 및 서비스 품질 수준(QoS) 정의 업무 기능이 지속적으로 추가되어, 더 많은 스토리지가 필요 신규 서비스를 위한 새로운 업무 영역이 추가되어 다른 스토리지가 필요 Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller NIC NIC NIC CPU CPU CPU CPU 32G Mem Data Controller CPU CPU CPU CPU 256G Mem Data Controller CPU CPU CPU CPU 256G Mem NIC NIC NIC NIC NIC NIC NIC NIC NIC NIC CPU CPU CPU CPU
  • 7. 7 3. IT 환경의 변화 Web ITEnterprise IT Cloud IT 1990 20102000  전용 Network  Appliance HW  License SW  확장성  Open API  고집적화  Open Source SW  Platform화  IOPS 예측 가능  IOPS 예측 불가  교환망/전송망 중심  IP망(Shared Network)  내부전용(Silo)  Service용(외부판매) 구축형, Manual  Commodity HW  종량제, 자동화  Expert only  Everyone 사용환경HW/SWNetwork  표준화/통합화  CDN  소용량 Data  대용량 데이터  System Network 중요App에서 Network 이슈 없음  SDN Data Traffic 210X ↑ 모바일, 서비스 다양화 등으로 인한 데이터 트래픽이 기존에 비해 210X 증가
  • 8. 8 4. 데이터 격리 증가되는 업무 데이터의 동적 확장 문제 - 데이터 격리(Silo) 형태 데이터 관리가 어려워지고, 활용도(수집, 분석 등) 및 효율성 저하
  • 9. 9 5. 멀티 테넌트 확장 아키텍처 NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM NIC CPU MEM High Bandwidth Backplane 요구 사항 클라우드 전환 손쉬운 스토리지 확장 형태의 구조 스토리지 노드 실패에 대비한 데이터 보장 이기종 스토리지 노드 지원 멀티 테넌트 환경으로의 전환 요구 사항 솔 루 션 저비용 하드웨어 스토리지 다양한 종류의 스토리지 리소스 관리 스토리지 풀에 대한 클라우드 오케스트레이션 스택 엔터프라이즈 기반 블록/파일/객체 지원
  • 10. 10 6. SDDC(Software Defined Data Center) IDC Definition A software-defined data center is „...a loosely coupled set of software components that seek to virtualize and federate datacenter-wide hardware resources such as storage, compute, and network resources.... The goal for a software-defined datacenter is to....make the datacenter available in the form of an integrated service....“ 출처: IDC‘s Worldwide Software-Based (Software-Defined) Storage Taxonomy, May. 2013“
  • 11. 11 7. SDS(Software Defined Storage) • 서비스 통합 레이어 (Orchestration Layer) • 서비스 품질 (Service Quality) • 데이터 이동성 및 연계 (Data Mobility and Federation) • 메타 데이터 및 속성 관리 (Metadata and Attribute Management) • 데이터 인터페이스 (Data Interface) 스토리지 서비스 • 파일 기반 레이아웃(File-based Layout) • 객체 기반 레이아웃(Object-based Layout) • 블록 기반 레이아웃(Block-based Layout) 데이터 레이아웃 • Scale-up • Scale-out • GEO-dispersed scale-out 스케일링 • 내부 서버 기반 리소스(Internal Server-based Resource) • 외부 디스크 스토리지 시스템(External Disk Storage System) • 객체 플랫폼(Object Platform) • 클라우드 기반 리소스(Cloud-based Resource) 저장소 • 물리적 어플라이언스 기반(Physical Appliance) • 가상 어플라이언트 기반(Virtual Appliance) • 데이터 이동성 및 연계(Data Mobility and Federation) • 메타 데이터 및 속성 관리(Metadata and Attribute Management) • 데이터 인터페이스(Data Interface) 구현 방법 출처: IDC‘s Worldwide Software-Based (Software-Defined) Storage Taxonomy, May. 2013“
  • 12. 12 1. GlusterFS 소개 및 특징 스케일 아웃 확장성 • Petabytes 단위 클러스터 • 데이터 분산을 위한 Geo-replication 비용 효과 • 저가의 x86 서버 활용 • 가상머신 환경에서 스토리지 용량 확보 유연성 • 물리서버, 가상화, 클라우드, 하이브리드 클라우드 환경에서 유연한 데이터 공유 • 파일과 오브젝트 접속 프로토콜 다양한 구성 환경 지원 • 물리서버, 가상화, 클라우드 환경에서 구성 가능 오픈 & 표준 기반 • NFS, CIFS, HTTP 오픈소스 기반의 소프트웨어 스토리지 (http://www.gluster.org) 2011년 10월 레드햇에서 인수 Red Hat Storage 제품으로 소개
  • 13. 13 1. GlusterFS 소개 및 특징
  • 14. 14 1. GlusterFS 소개 및 특징 (기본 아키텍쳐) 참조 :http://blog.csdn.net/che84157814/article/details/19158109
  • 15. 15 1. GlusterFS 소개 및 특징 (Object Storage 아키텍쳐) Account Proxy Container object GlusterFS swift memcached GlusterFS Service Httpd client
  • 16. 16 1. GlusterFS 소개 및 특징 (Object Storage 아키텍쳐)
  • 17. 17 참조: https://www.gluster.org/2013/09/enabling-apache-hadoop-on-glusterfs-glusterfs-hadoop-2-1-released/ 1. GlusterFS 소개 및 특징 (하둡과 공존)
  • 18. 18 1. GlusterFS 소개 및 특징 (No Metadata) • Meta 서버 문제점 - 메타서버에 클라이언트가 집중되게 되어 성능 저하 현상 발생 - 메타서버 장애시 전체 클라이언트의 스토리지 데이터 접근 불가 • Elastic Hashing Algorithm - 각 저장되는 파일들의 위치 경로 저장 - 각 노드 별로 hashing tag 를 가지고 있기 때문에 하나의 노드가 장애 발생하더라도 서비스 영향도 없음(replica 구성시) - 노드가 증가할 때 성능도 선형적으로 증가할 수 있도록 하는 핵심 기술 - 노드 추가 시 data를 rebalancing을 함으로서 성능 향상 가능
  • 19. 19 1. GlusterFS 소개 및 특징 (데이터 접근 방법 : NFS) 작은 파일들을 접근하고자 할 경우 nfs Cache를 사용하기 때문에 read 속도가 빠르다. 최초 접속한 Storage 서버가 장애가 발생할 경우 해당 볼륨에 접근이 불가능 하게 된다.
  • 20. 20 1. GlusterFS 소개 및 특징 (데이터 접근 방법 : Native Client) FUSE 모듈은 Userspace에서 동작함으로 커널 영역에 대한 무리를 주지 않는다. 다양한 스토리지 노드로 접근이 가능하며, 클라이언트가 스토리지에 직접 접근 함으로 속도가 빠르다 볼륨간 Replication이 정상 구성되어 있으면 노드 장애시에도 다른쪽 노드로 볼륨을 접근할수 있다.
  • 21. 21 1. GlusterFS 소개 및 특징 (Geo-Replication)  기본 Master/ Slave 모드로 동작.  동기식/비동기식/증분복제 방식으로 데이터를 전송  LAN / WAN /INTERNTE 구간에서 복제.  데이터의 동기화를 위해서 반드시 NTP 설정. Geo-Replication 복제 방식을 통해서 원격지에 있느 데이터의 정합성을 보장한다
  • 22. 22 1. GlusterFS 소개 및 특징 (scale-out 노드확장) 디스크 추가 이더넷 추가 메모리 추가 CPU 추가 GlusterFS를 사용하기 위한 노드 시스템들의 물리적인 Resource를 확장해 나가는 방식
  • 23. 23 2. GlusterFS 소개 및 특징 (scale-up 노드확장) GlusterFS를 사용하기 위한 노드 시스템들을 기준으로 확장해 나가는 방식. Scale-Out capacity 확장의 목적은 전체적인 Performance 및 용량을 증설 하기 위한 목적.
  • 24. 24 1. GlusterFS 소개 및 특징 (Re-Balancing) 글러스터 파일 시스템 데이터 정합성  GlusterFS의 Re-Balancing 기능은 새로운 노드가 추가 되었을 경우 저장된 데이터를 Hashing Algorithm에 맞게 데이터를 분배해 주는 것입니다.  Re-Balancing 기능을 통한 데이터 Sync • Rebalancing 특징 - 신규 노드가 추가/제거되었을 때 데이터를 분산하여 적재하는 기능 - Rebalancing 작업이 진행되지 않으면 신규 노드가 추가되더라도 그 노드의 Brick에는 데이터가 쌓이지 않음 - 두 가지 타입의 rebalancing 기능 제공 • Fix Layout: Hashing table만 변경하여 신규로 들어오는 데이터들이 신규 노드로 저장될 수 있도록 함 • Fix Layout and Migrate Data: Hashing table을 변경하고 기존 데이터들을 변경된 Table에 맞게 재분배시킴
  • 25. 25 1. GlusterFS 소개 및 특징 (Self-healing)  GlusterFS의 Self Healing 기능은 Replication을 구성했을때 복제된 데이타들에 대한 정합성을 검증할때 사용하는 기능으로 복제가 정상적이지 않을 경우 자동으로 Sync를 진행함.  Self-Healing 기능을 통한 데이터 Sync • Self-Healing 특징 - Pro-active self-heal daemon이 백그라운드로 수행 - 10분 간격으로 정합성 검사 - 정합성이 맞지 않는 데이터는 자동으로 Sync 작업 수행됨
  • 26. 26 1. GlusterFS 소개 및 특징 (Self-healing) 글러스터 파일 시스템 데이터 정합성  GlusterFS의 Self Healing 기능은 Replication을 구성했을때 복제된 데이타들에 대한 정합성을 검증할때 사용하는 기능으로 복제가 정상적이지 않을 경우 자동으로 Sync를 진행합니다.  Self-Healing 기능을 통한 데이터 Sync *Self healing & rebalancing을 위해 전체 볼륨의 20%를 여유공간으로 확보하는 것을 권장
  • 27. 27 2. GlusterFS 구성을 위한 사전 요구사항  일반적 구성 ( General Configuration) - 중앙에 있는 Time Server를 이용한 노드간이 시간 동기화 설정 (ex : ntp 설정)  파일 시스템 구성 (Filesystem Requirement) - Brick에 사용되는 파일 시스템의 경우 XFS 파일 시스템을 사용하는 것을 권장 - XFS 파일 시스템의 경우 저널링 파일 시스템이기 때문에 신속한 복구가 가능하며, 대용량 디스크를 지원 - XFS 파일 시스템은 온라인 상태 또는 마운트된 상태에서도 de-fragmented 또는 확장이 가능  네트워크 구성 (Network Configuration) - 글러스터 파일 시스템은 고속의 네트워크 환경이 요구됨, (ex: Infiniband. 10G, 1G) - 클라이언트와 서버간의 통신에 있어서는 최대한 네트워크 대역폭을 확보해 주는것을 권장하고 있음
  • 28. 28 2. GlusterFS 구성을 위한 사전 요구사항  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.
  • 29. 29 2. GlusterFS 구성을 위한 사전 요구사항  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
  • 30. 30 2. GlusterFS 구성을 위한 사전 요구사항 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 옵션 권고) Hardware Compatibility
  • 31. 31 2. GlusterFS 구성을 위한 사전 요구사항 Network Requirement 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 • Trusted Peer Network: Ethernet(1Gb 와 10Gb), *Infiniband • NIC: 서버에는 10Gb * 2EA port 장착 권고, 10Gb 불가시 1Gb * 2EA port * Infiniband: Infiniband 사용시에는 별도 Red Hat Review 필요 * tcp tuning: 10Gb 이더넷 환경에서 sequential read 젂송 했을 때, tcp 별도 튜닝 불필요. 오히려 튜닝했을 때 성능이 저하되거나 동일한 성능을 제공했었음
  • 32. 32 2. GlusterFS 구성을 위한 사전 요구사항 Server Pool Requirement GlusterFS 는 확장에 대한 제약이 없으나 차후에 원활한 기술지원과 성능을 보장하기 위해 아래의 제약 사항을 두고 있음 • 최소 노드수: 4 nodes • 최대 노드수: 64 nodes • 스토리지 풀 최대 용량: 8 Petabytes( 2 replica 구성 시, 4 Petabytes) • 스토리지 볼륨 요구 사항 - 약 20%의 볼륨 여유 공간 권고 - 복제 및 self healing 기능을 위해 필요 - 최소 20% 여유 공간
  • 33. 33 2. GlusterFS 구성을 위한 사전 요구사항 Client Compatibility 클라이언트 접속 방식은 GlusterFS Native Client, NFS or CIFS를 제공. Server Pool의 Node당 최대 16 Client 접속 허용 > GlusterFS Native Client • 높은 동시접속, 성능, 빠른 failover 기능 제공 • POSIX export 방식을 사용하기 때문에 일반 파일시스템처럼 mount 하여 사용 • Write Performance의 향상을 요구되거나 동시 사용율이 높을때 • Client OS에 별도 native client 설치 필요 • 지원 Client OS : RHEL5.8 이상, RHEL6.0 이상 > NFS Support • 커널단의 NFS가 아닌 Gluster NFS Translator에서 제공하는 NFS 서비스 이용 • NFSv3 클라이언트 구성 권장 • NFS를 마운트 할때 vers=3 옵션을 추가. • Standard AutoMount 를 지원 • 작은 파일들이 많을때 Read 성능이 좋다. • 글러스터내에 NLM (Networ Lock Manager) 이 노드별 Locking를 관리
  • 34. 34 2. GlusterFS 구성을 위한 사전 요구사항 Client Compatibility 클라이언트 접속 방식은 GlusterFS Native Client, NFS or CIFS를 제공. Server Pool의 Node당 최대 16 Client 접속 허용 > CIFS Support • Storage Pool의 어느 서버에 접속해도 동일한 파일시스템 공유 가능 • CIFS 서비스는 스토리지 소프트웨어와 독립적으로 작동 • Native mount point는 SAMBA를 통해서 공유가 가능 • 먼저 Native로 mount 한후에 CIFS를 연결 • 지원 Client OS - Fedora, Debian 기반 리눅스 배포판 - Unix(Solaris 10+) - Microsoft Windows Server 2008, Windows 7
  • 35. 35 3. GlusterFS 데이터 복제 방식  Distributed - 분산 파일시스템이 필요하고 데이터 안전성이 요구되지 않을 때 사용  Replicated - 분산 파일시스템은 사용하지 않고 데이터 안전성이 매우 중요할 때 사용  Striped - 큰 파일의 동시접속이 매우 높을 때 사용  Distributed Striped - 확장성을 필요로 하고 파일이 크고 동시접속이 높을 때 사용  Distributed Replicated - 분산 파일시스템을 사용하면서 동시에 데이터 안전성을 요구할 때 사용. 대부분의 환경에서 Read 속도가 매우 좋음  Distributed Striped Rplicated - 파일에 대한 동시접속이 많고 성능이 중요할 때 사용 - map reduce 업무에만 지원  Striped Replicated - 큰 파일에 대한 동시 접속이 많고 성능이 중요할 때 사용 - map reduce 업무에만 지원  글러스터 파일 시스템에 대한 복제 방식은 아래와 같이 7가지의 동작 형태로 데이터를 복제합니다.
  • 36. 36 3. GlusterFS 데이터 복제 방식 (Distributed)  Distributed 복제 방식  여러 개의 브릭(Brick) 볼륨을 거쳐서 데이타틀 저장하는 방식  분산파일 시스템을 사용하기 위한 기본 구  디스크나, 노드의 장애시 데이터의 안전성을 보장할수 없음
  • 37. 37 3. GlusterFS 데이터 복제 방식 (Replicated)  Replicated 복제 방식  여러 개의 브릭(Brick) 볼륨을 거쳐서 데이타틀 저장하는 방식  운영하는 데이터의 안정성이 보장되어야 할때 사용되는 복제 방식으로써 Brick 볼륨이 서로 다른 서버에 존재할때 안전하게 데이터가 복제 가능
  • 38. 38 3. GlusterFS 데이터 복제 방식 (Stripe)  Stripe 복제 방식  파일의 사이즈가 크고 동시 접속가 많은 경우 적합한 데이터 복제 방식.  하나의 파일을 여러 개의 Brick에 분산하여 데이터를 저장함으로 데이터의 안전성을 보장할수 없음
  • 39. 39 3. GlusterFS 데이터 복제 방식 (Distributed Stripe)  Distributed Stripe 복제 방식  파일의 사이즈가 크고 동시 접속가 많은 경우 적합한 데이터 복제 방식.  기존의 Stripe 방식에서 분산파일 시스템을 사용하기 위해서 구성하는 복제 방식
  • 40. 40 3. GlusterFS 데이터 복제 방식 (Distributed Replicated)  Distributed replicated 복제 방식  분산파일 시스템을 사용하면서 동시에 데이터의 안전성을 보장받기 위한 복제 방식  일반적으로 많이 사용되는 구성 방식이며 Read Performance가 좋다  데이터의 안전성을 위해서 복제에 사용된은 Brick은 각각 다른 서버에 위치하고 있어야 함
  • 41. 41 3. GlusterFS 데이터 복제 방식 (Distributed Striped Replicated)  Distributed stripe replicated 복제 방식  파일에 대한 동시 접속이 많고 전체적인 성능이 중요하다고 판단되어 질때 구성하는 복제방식.  일반적으로 Mapreduce 를 사용할때 구성하는 방식으로 권장하고 있다.  복제를 통한 데이터의 안전성을 보장하기 위해서 구성하는 복제 방식.
  • 42. 42 4. GlusterFS 데이터 복제 방식 (Striped Replicated)  stripe replicated 복제 방식  파일에 대한 동시 접속이 많고 전체적인 성능이 중요하다고 판단되어 질때 구성하는 복제방식.  일반적으로 Mapreduce 를 사용할때 구성하는 방식으로 권장하고 있음
  • 43. 43 분산 파일 시스템 비교 참조: http://www.yet.org/2012/12/staas/
  • 44. Performance 향상을 위한 고려사항
  • 45. 45 4. 성능 향상을 위한 고려 사항 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수를 줄임으로써 네트워크 지연을 줄이고 스토리지 성능 향상 가능
  • 46. 46 4. 성능 향상을 위한 고려 사항  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” 을 적용할 경우, 대 용량 파일이 많은 환경에서 성능 향상을 볼 수 있음
  • 47. 47 4. 성능 향상을 위한 고려 사항
  • 48. 48 4. 성능 향상을 위한 고려 사항 Native Client Work load avoid  Direct I/O - Direct I/O에 대한 처리는 아직 glusterfs에서는 Tech-preview 상태  Small write transfer sizes – 4 KB I/O size 5x slower - 파일 사이즈가 작은 경우에는 속도 저하가 나타날수 있다. - can use NFS client to aggregate writes  High directory count + high number of bricks - 디렉토리의 개수가 많거나 브릭이 많은 경우 속도 저하가 나타날수 있다.
  • 49. 49 4. 성능 향상을 위한 고려 사항 기본 튜닝 설정 (RHS,RedHat Storage 기준) ● Dirty_background_ratio 10%-> 1% ● Block device max I/O size 128 KB -> 512 KB ● Block device I/O queue size 128 -> 256 ● many drives behind each block device ● Deadline scheduler ● default Linux CFQ I/O scheduler is irrelevant ● Additional tuning one command away (tuned-adm)  Glusterfs를 사용하기 위한 노드단의 필요한 모든 튜닝 요소는 아래와 같이 적용하는 것이 좋다. 하지만 RHS (Red Hat Storage)의 경우에는 아래의 튜닝 옵션들이 기본으로 설정되어 있음.
  • 50. 50 4. 성능 향상을 위한 고려 사항  Brick의 구성 - 각 노드의 Brick에 대한 Limitation은 XFS 파일 시스템의 Limitation을 따릅니다. - 각 노드에 할당되어지는 Brick 의 개수는 제한을 두지 않습니다. - Operation은 Brick단위로 진행되지 않고 Node 단위로 진행이 됩니다. - 일반적으로 클러스터의 Brick의 사이즈는 모두 동일하게 구성하는 것이 좋습니다. - Brick은 노드와 파일 시스템의 조합으로 구성하는 것이 좋습니다. : hostname:/dir
  • 51. 51 4. 성능 향상을 위한 고려 사항  Volume 의 구성 - 서로 다른 볼륨의 데이터는 서로 다른 Brick에 존재하는 것이 좋습니다. - Distribute로 구성할때는 아래와 같이 볼륨의 Brick 의 개수를 맞춰주고 Liner하게 구성하는 것이 일반적입니다
  • 52. 감사합니다.
  • 53. GlusterFS 설정을 위한 기본 GUIDE
  • 54. 6. 글러스터 파일 시스템 운영 가이드  볼륨 준비 및 노드 (Peer) 추가/삭제 gluster> peer probe 192.168.0.6. gluster> peer probe 192.168.0.7 “ Hostname으로 진행해도 가능” gluster> peer probe 192.168.0.8 # lvcreate –L +100G –n lv_brick1 vg_server1 # mkfs –t xfs –i size=512 /dev/vg_server1/lv_brick1 # mkdir brick1 # mount /dev/vg_server1/lv_brick1 /brick1 # echo `/dev/vg_server1/lv_brick1 /brick1 xfs default 1 2` >> /etc/fstab  노드 (Peer)에 대한 추가는 어느 노드에서 진행해도 문제없이 가능합니다 gluster> peer detach 192.168.0.6.  노드 (Peer) 제거
  • 55. 6. 글러스터 파일 시스템 운영 가이드 gluster> peer status Number of Peers: 3 Hostname: 192.168.0.6 Uuid: 4e911d81-6ccd-495a-b64c-4a383ceb42ff State: Peer in Cluster (Connected) Hostname: 192.168.0.7 Uuid: 3d65ce0f-55ed-409d-8bc0-b1de0b857443 State: Peer in Cluster (Connected) Hostname: 192.168.0.8 Uuid: a7bbdb6a-114b-4807-8226-70b686bbf104 State: Peer in Cluster (Connected)  노드 정보 확인 (Peer Status)  아래와 같이 명령어를 수행하여 현재 등록되어 있는 Peer들에 대한 정보를 확인할 수 있습니다.
  • 56. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 타입 (Distributed Volume)  GlusterFS의 볼륨의 구성원을 브릭(Brick)이라는 단위로 묶어서 클라이언트에 제공하게 됩니다.  기본적으로 글러스터에서 사용하는 볼륨타입 입니다.  파일을 여러 개의 Brick에 나눠서 데이터를 저장하는 방식입니다. gluster> volume create NEW-VOLUME 192.168.0.5:/brick1 192.168.0.6:/brick1 192.168.0.7:/brick1 192.168.0.8:/brick1 .
  • 57. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 타입 (Replicated Volume)  데이터를 안전하게 이중화 하여 구성하고 싶다면 Replicated 방식을 구현 합니다.  디스크 i/O 성능은 저하될수 있으나 전체적인 데이터의 안전성은 보장할수 있습니다.  데이터의 불일치가 일어나도 self-healing 을 통해서 데이터 sync를 맞추게 됩니다. gluster> volume create NEW-VOLUME replica 4 192.168.0.5:/brick1 192.168.0.6:/brick1 192.168.0.7:/brick1 192.168.0.8:/brick1 .
  • 58. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 타입 (Striped volume)  Stripe 방식으로 구현하면 하나의 파일을 블록 단위로 분리하여 각각의 Brick에 분산 저장하게 됩니다.  사이즈가 큰 파일의 경우 효과적인 성능을 나타낼수 있습니다. (디스크 I/O가 좋아짐)  하지만 Brick 또는 노드가 하나라도 문제가 발생이 되면 데이터의 안전성을 보장할수 없습니다. gluster> volume create NEW-VOLUME stripe 4 192.168.0.5:/brick1 192.168.0.6:/brick1 192.168.0.7:/brick1 192.168.0.8:/brick1 .
  • 59. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 타입 (Replicate volume + Distribute Volume)  Replicate 방식과 Distribute 방식의 혼합 구성입니다.  아래의 방식은 RAID (0+1) 방식과 유하며 Brick 2개는 이중화 되고 나머지 Brick 2개는 Distribute 됩니다 gluster> volume create NEW-VOLUME replica 2 transport tcp 192.168.0.5:/brick1 192.168.0.6:/brick1 192.168.0.7:/brick1 192.168.0.8:/brick1 .
  • 60. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 타입 (Striped volume + Distribute Volume)  Striped 방식과 Distribute 방식의 혼합 구성입니다.  Brick 2개씩 Striped으로 구성됩니다 gluster> volume create NEW-VOLUME stripe 2 transport tcp 192.168.0.5:/brick1 192.168.0.6:/brick1 192.168.0.7:/brick1 192.168.0.8:/brick1 .
  • 61. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨에 대한 정보 확인 (Gluster info) Gluster> volume info test-volume // all을 입력하면 모든 볼륨 정보를 확인할 수 있다. Volume Name: test-volume Type: Distributed-Replicate Status: Created Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: 192.168.0.5:/brick1 Brick2: 192.168.0.6:/brick1 Brick3: 192.168.0.7:/brick1 Brick4: 192.168.0.8:/brick1
  • 62. 6. 글러스터 파일 시스템 운영 가이드 gluster> volume start test-volume gluster> volume stop test-volume  볼륨 준비가 완료 된후 에는 볼륨을 online/offline 상태로 전환 할수 있습니다.  볼륨 제거 : online 상태의 볼륨을 offline으로 전환한후 볼륨을 제거합니다. gluster> volume stop test-volume gluster> volume delete test-volume  볼륨추가 : Replicated 구성이 않된 상태에서는 아래와 같이 볼륨을 추가 할수 있습니다. gluster> volume add-brick test-volume 192.168.0.9:/brick1
  • 63. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 replicate volume 추가  Replicate + Distributed 볼륨 또는 Stripe + Distributed 방식으로 묶여 있는 볼륨의 경우 Replication 또는 Stripe 방식으로 묶은 단위 만큼 볼륨을 추가 해야 합니다. gluster> volume add-brick test-volume 192.168.0.9:/brick1 192.168.10:/brick1  글러스터 볼륨 replicate volume 삭제  Brick을 제거할 경우 데이터의 손실이 발생할수 있기 때문에 권장하지는 않습니다. Stripe 으로 구성된 볼륨의 경우 Brick을 제거 할수 없습니다.  Replicate + Distribute 또는 Stripe + Distribute 방식으로 묶여 있는 볼륨을 삭제 할경우에는 볼륨이 묶여 있는 단위 만큼 볼륨을 삭제 해야 합니다. gluster> volume remove-brick test-volume 192.168.0.9:/brick1 192.168.10:/brick1
  • 64. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 Brick 교체 (Migration)  기존에 사용하던 Brick 볼륨이 문제가 생길 경우 새로운 Brick으로 교체를 진행 해야 합니다.  아래의 절차에 따라서 새로운 Brick으로 교체를 진행 할수 있습니다. gluster> peer probe 192.168.0.9  노드추가 : 아래와 같이 Peer를 추가하여 Storage Pool에 볼륨을 추가 합니다  글러스터 마이그레이션 옵션 - start : 새로운 Brick으로 데이터 이전 - stop : 마이그레이션 정지 - abort : 마이그레이션 명령 취소 - commit : 마이그레이션 완료 gluster> volume replace-brick test-volume 192.168.0.9:/brick1 [옵션]
  • 65. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 데이터 분배 (rebalancing)  새로운 Brick이 추가된 경우에는 데이터가 고르게 분산되지 않은 상태입니다.  데이터가 고르게 분산되지 않은 경우에는 성능저하가 나타날수 있습니다. 이런경우 데이터 분배 (Rebalancing) 기능을 이용하여 데이터를 고르게 분배를 진행하게 됩니다.  볼륨 Rebalancing 옵션 - start : 분배 시작 - stop : 분배 정지 - status : 상태 확인 gluster> volume rebalance test-volume 192.168.0.8:/brick1 192.168.0.9:/brick1 [옵션]
  • 66. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 Native Client 연결 ( RedHat Subscription 의 경우) # rhn_register 1. RHN Subscription 을 등록합니다. # rhn-channel –add –channel=rhel_x86_64-server-rhsclient-6 2. Red Hat Storage Native Client 채널을 등록합니다. # yum install glusterfs glusterfs-fuse 3. Yum을 이용한 Native Client 설치를 진행합니다. # mount –t glusterfs –o log-level=WARNING,log-file=/var/log/gluster.log 192.168.0.5:/brick1 /mnt/glusterfs 4. Native Client 마운트를 진행합니다.
  • 67. 6. 글러스터 파일 시스템 운영 가이드  글러스터 볼륨 NFS 연결  NFS 방식으로 글러스터 파일 시스템의 Brick을 매뉴얼로 구성하기 접속하기 위해서는 아래와 같이 진행한다. # mount –t nfs –o vers=3 <HOSTNAME-OR –IPADDR>:/<VOLNAME> <MOUNTDIR>  글러스터 파일 시스템에 자 자동으로 연결하기 위한 방법은 아래와 같이 진행합니다.  /etc/fstab 파일에 아래의 형식대로 입력합니다. # <HOSTNAME-OR-IPADDR>:/<VOLNAME> <MOUNTDIR> nfs defaults, _netdev, vers=3 0 0