Top

Ceph 마스터하기 [스토리지 시스템 환골탈태]

  • 원서명Mastering Ceph: Deep dive into the unified, distributed storage system in order to provide excellent performance (ISBN 9781785888786)
  • 지은이닉 피스크(Nick Fisk)
  • 옮긴이김세영, 정윤선
  • ISBN : 9791161751016
  • 25,000원
  • 2017년 12월 28일 펴냄
  • 페이퍼백 | 292쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

요약

Ceph를 사용하기 전에 요구사항을 탐색하고 이에 맞는 기획과 구축 후에 발생할 수 있는 문제점을 해결하기 위한 방법을 모두 다룬다. 여기에는 배포 방법, 새롭게 적용되는 블루스토어의 개념, 스토리지 효율성을 위한 이레이저 코딩, 애플리케이션 작성을 위한 RADOS 라이브러리 사용법, OSD를 이용한 분산 컴퓨팅 수행, 상태 확인을 위한 모니터링, 캐시를 위한 티어 사용법, 성능 향상을 위한 튜닝이 포함된다. Ceph를 사용할 때 꼭 알아둬야 할 내용만을 담았다.

이 책에서 다루는 내용

■ Ceph의 고급 기능을 사용할 때와 그 방법
■ 버추얼박스 및 베이그런트를 이용한 가상 머신과 앤서블을 통한 테스트 클러스터 구축
■ librados와 공유 객체 클래스를 사용해서 방대한 문제를 해결하기 위한 솔루션 구축
■ 이레이저 코드 풀의 올바른 매개변수 선택과 설정
■ 블루스토어를 구축하고 서로 다른 하드웨어와 상호작용하기 위한 방법
■ 튜닝, 모니터링, 피해 복구 장치의 강약 조절을 통한 지속적인 Ceph 운영

이 책의 대상 독자

이 책의 내용을 활용하기 위해서는 Ceph에 대한 기본적인 사전 지식이 있어야 한다. 자세한 내용을 알고 싶다면 언제나 Ceph 공식 문서 http://docs.ceph.com/docs/master/에서 주요 구성 요소에 대한 내용을 읽어 기본적인 것들을 빠르게 따라 잡을 수 있다.
이 책은 기본적으로 Ceph 클러스터 관리자를 대상으로 한다. Ceph 클러스터를 이미 사용하고 있다면 이 책은 더 나은 이해를 얻는 데 도움을 줄 것이다.

이 책의 구성

1장, 'Ceph 사용 기획'에서는 Ceph의 기본 동작 방식, 기본 구조, 훌륭한 사용 사례를 알아본다. 또한 Ceph를 실제로 구현하기 전에 설계 목적, 개념 증명 및 인프라 설계를 포함한 계획 수립 단계에 대해 알아본다.
2장, 'Ceph 배포'에서는 Ceph 클러스터의 설정 방법에 대한 간단명료한 단계별 지침을 제공한다. 테스트를 위한 ceph-deploy 도구를 다루고, 앤서블(Ansible)까지 알아본다. 변경 관리에 대한 내용도 포함돼 있으며, 대규모 Ceph 클러스터의 안정성을 위해 필수적인 부분에 대해 설명한다. 또한 이 책의 후반에 예제로 사용할 공용 플랫폼을 제공한다.
3장, '블루스토어'에서는 Ceph가 데이터 및 메타데이터에 대한 원자적 연산을 제공할 수 있어야 하며, 표준 파일 시스템 위에서 이러한 보장을 제공하기 위해 파일스토어가 어떻게 빌드되는지를 설명하고, 이런 접근 방식에 대한 문제점을 다룬다. 그다음 블루 스토어(BlueStore)를 소개하고 동작 방식과 이것으로 해결 가능한 문제를 설명한다. 이에는 구성 요소와 다른 종류의 스토리지 장치와 상호작용하는 방식을 포함한다. 또한 RocksDB를 포함해 블루스토어가 사용하는 키-값 스토어(key-value store)에 대해 개괄적으로 설명한다. 일부 블루스토어 설정과 다른 하드웨어 설정과의 소통 방식에 대해서도 알아본다.
4장, '더 나은 스토리지 효율성을 위한 이레이저 코딩'에서는 RADOS 풀(pool) 매개변수와 이레이저 코딩(erasure code) 프로파일에 대한 설명을 포함해 이레이저 코딩 동작 방식 및 Ceph 구현 방식에 대해 다룬다. 크라켄(Kraken) 배포판에서의 변경 사항을 보면 이레이저 코드 풀에 RBD가 직접 작용할 수 있게 하는 이레이저 풀에 대한 추가 덮어쓰기 가능성을 제공하는 것을 알 수 있다. 성능 고려 사항도 설명하는데, 요구되는 성능을 만족하게 하는 블루스토어에 관한 내용을 포함한다. 마지막으로 풀에 이레이저 코드를 실제로 설정하는 방법에 대한 단계적 지침을 제공하며, 이 지침은 시스템 관리자를 위한 기계 참조로 사용될 수 있다.
5장, 'librados를 통한 개발'에서는 librados가 Ceph 클러스터와 직접 소통하는 애플리케이션을 빌드하기 위해 어떻게 사용되는지를 설명한다. 그런 다음 원자적 처리를 포함해 사용 방식에 대한 아이디어를 제공하기 위해 다른 언어로 librados를 사용하는 몇 가지 예제를 살펴본다.
6장, 'Ceph RADOS 클래스를 통한 분산 컴퓨팅'에서는 분산 컴퓨팅을 효율적으로 수행하기 위해 처리 절차를 직접 OSD로 옮기는 경우의 이점에 대해 알아본다. 그런 다음 루아(Lua)로 간단한 클래스를 제작해 RADOS 클래스로 시작하는 방법을 다룬다. 그리고 자신만의 C++ RADOS 클래스를 Ceph 소스 트리에 빌드하는 방법을 다루고, 클라이언트와 OSD의 처리에 대한 벤치마크를 수행한다.
7장, 'Ceph 모니터링'에서는 모니터링이 중요한 이유에 대한 설명으로 시작해 경고와 모니터링의 차이점을 알아본다. 그런 다음 모든 Ceph 구성 요소에서 성능 카운터를 얻는 방법을 다루고, 일부 주요 카운터의 의미와 사용 가능한 값으로 변경하는 방법을 알아본다.
8장, 'Ceph 티어 구축'에서는 Ceph에서 RADOS 티어(tier)가 동작하는 방식, 사용 위치 및 위험성에 대해 알아본다. Ceph 클러스터에서 티어를 설정하기 위한 단계를 살펴보고, 마지막으로 이 티어를 위해 최고 성능을 내는 튜닝 옵션을 다룬다. 그라파이트(Graphite)를 사용하는 예제에서는 그래프 형태로 더 의미 있는 결과를 제공하기 위해 캡처된 데이터를 처리하는 데 대한 가치를 입증한다.
9장, 'Ceph 튜닝'에서는 Ceph와 운영체제를 튜닝하는 방법에 대한 간략한 개요로 시작한다. 병목현상이 아닌 것을 튜닝하려는 시도를 피하기 위한 기본 개념도 다룬다. 또한 튜닝할 수 있는 영역을 다루고, 튜닝의 성공 여부를 판단하는 방법도 설명한다. 마지막으로 Ceph를 벤치마크하는 방법과 기준 측정 방식을 보여줌으로써 달성된 결과가 의미 있음을 확인한다. 여러 도구와 벤치마크가 실제 성능과 어떻게 관련돼 있는지도 알아본다.
10장, '문제 해결'에서는 Ceph가 스스로를 관리하고 실패에서 회복하는 데 대체로 자율적이지만 경우에 따라 인간의 개입이 필요하므로, 일반적인 오류와 실패에 대한 문제 해결을 통해 건강하게 Ceph를 회복시키는 방법을 알아본다.
11장, '피해 복구'에서는 Ceph가 서비스나 데이터의 완전한 손실이 발생할 정도의 상태에 있는 상황을 다룬다. 클러스터로의 접근 권한을 복원하고, 데이터를 복구하는 데 익숙하지 않은 복구 기술이 필요하므로, 이런 상황에서 회복을 시도하기 위한 지식으로 무장시켜준다.

저자/역자 소개

지은이의 말

Ceph는 블록, 객체 및 파일 접근을 제공하는 통일되고 고도로 탄력적인 분산 스토리지 시스템으로, 최근 몇 년 동안 인기가 급상승했다. Ceph는 오픈소스로 잘 알려진 여러 회사가 프로젝트에 참여하고, 개발자와 최종 사용자들 모두에게 빠르게 채택됐다. 새로운 배포가 있을 때마다 성능과 기능 셋의 규모가 지속적으로 커져 Ceph의 상태가 더욱 향상되고 있다.
현재 계속 증가하고 있는 데이터 스토리지 요구 사항과 레거시(legacy) RAID 기반 시스템이 직면한 문제들에 대해 Ceph는 충분한 답을 제시해준다. 전 세계가 새로운 클라우드 기술과 객체 기반 스토리지 채택으로 나아가고 있기에, Ceph는 스토리지 기술의 새 시대에 일환으로 추진력을 갖추고 기다리고 있었다. 이 책에서는 Ceph 클러스터를 설치하고 관리하는 것부터 직면할 수 있는 문제를 극복하는 방법까지 매우 다양한 주제를 다룬다. Ceph와 직접 상호작용하는 애플리케이션에 관심 있는 사람들을 위해 Ceph의 라이브러리를 사용하는 애플리케이션 개발 방법과 자신만의 코드를 Ceph에 삽입해 분산 컴퓨팅을 수행하는 방법도 보여준다. 이 책을 다 보고 나면, Ceph를 완벽하게 다루는 사람이 돼 있을 것이다.

지은이 소개

닉 피스크(Nick Fisk)

엔터프라이즈 스토리지 분야에서 오랜 이력을 가진 IT 전문가다. 오랜 경력을 쌓으면서 다양한 역할을 수행하고 방대한 기술을 접해왔다. 2012년에는 오픈소스 기술에 더 집중할 수 있는 기회를 얻었으며, Ceph를 처음 접하게 됐다. 스토리지 플랫폼으로 Ceph의 잠재력과 전통적인 폐쇄형 스택 스토리지 플랫폼에서 벗어나는 것의 장점을 찾았기 때문에 강한 흥미를 갖고 Ceph를 공부했다. 그 후 몇 년 동안, 여러 클러스터 배포를 하면서 Ceph 경험을 쌓았고, Ceph 커뮤니티에서 시간을 보내면서 다른 사람들을 돕고 Ceph의 특정 영역을 발전시켰다.

옮긴이의 말

Ceph는 오픈스택과 함께 폭발적으로 성장한 대표적인 분산 스토리지 솔루션이다. 초기의 오픈스택부터 Ceph와 잘 결합돼 발전했기 때문에 세계의 많은 개발자가 오픈스택의 개발과 함께 Ceph에도 많은 기여를 해 왔다. 현재, 초기보다 안정성이 많이 향상되고, 통합되는 플랫폼도 오픈스택뿐 아니라 여러 플랫폼을 지원한다. 물론 플랫폼에 통합해 사용하지 않더라도 객체 스토리지, 블록 스토리지, 파일 시스템을 모두 지원해 단독으로 사용할 수도 있다. 성능도 개선되고 있어 현재 개발되고 있는 분산 스토리지 솔루션 제품에서도 사용할 만한 오픈소스 스토리지 솔루션 중 하나다. 이 책은 상대적으로 적은 지면 수에 비해 Ceph를 구축하는 데 미리 생각해둬야 할 것부터 실 운용 시 맞닥뜨릴 수 있는 몇 가지 문제 상황을 해결 방법까지 폭넓게 다루고 있다. 이뿐만 아니라 몇 가지 핵심 기능의 개념 및 라이브러리 사용에 대해서 설명하고, 풍부한 예제 및 스크린샷을 통해 실제 환경에서 어떻게 보이는지를 고려한다. 따라서 이 책은 Ceph를 구축하기를 원하는 엔지니어뿐 아니라, Ceph를 이용하고자 하는 애플리케이션 개발자, Ceph의 구성 요소에 관심 있는 엔지니어 및 학생에게도 좋은 내용이다. .

옮긴이 소개

김세영

성균관대학교 정보통신공학부와 기계공학부를 졸업했으며 웹, 서버, 커널 등 넓은 분야에 관심을 갖고 있다. 어떻게 하면 지식을 효율적으로 습득, 저장, 관리할 수 있을지 고민하고 있다. 현재 캐노니컬에서 근무하며, 우분투를 발전시키고 클라우드 환경의 버그를 잡는 데 집중하고 있다.

정윤선

성균관대학교 정보통신공학부를 졸업했으며, 웹 기술과 서버 API, 하이퍼바이저에 관심이 있다. 아헴스, KT클라우드웨어, A2C를 거쳐 웹, 가상화 등의 업무를 수행했다. 현재 육아를 하면서 단기 웹 프로젝트를 진행하거나 번역에 참여하고 있으며, 다시 개발자로 돌아가는 날을 손꼽아 기다리고 있다.

목차

목차
  • 1장 Ceph 사용 계획
    • Ceph란?
    • Ceph 동작 방식
    • Ceph 사용 사례
      • 기존 스토리지 어레이를 Ceph로 교체
      • 성능
      • 신뢰성
      • 상용 하드웨어 사용
    • 구체적인 사용 사례
      • 오픈스택 또는 KVM 기반 가상화
      • 대용량 벌크 블록 스토리지
    • 인프라 설계
      • SSD
      • 메모리
      • CPU
      • 디스크
      • 네트워크
      • 10G 네트워킹 요구 사항
    • 네트워크 설계
      • OSD 노드 크기
      • 비용
      • 전력 공급
    • 성공적인 Ceph 구축을 위한 방법
      • 요구 사항 이해와 Ceph에 적용
      • 목표 설정을 통한 성공적인 프로젝트 점검
      • 하드웨어 선택
      • Ceph 사용 준비
      • Ceph가 요구 사항을 잘 만족하고 있는지 PoC 수행
      • 클러스터 구축을 위한 최적 예제 따르기
      • 변경점 관리 절차 정의
      • 백업의 생성과 복구 계획
    • 요약

  • 2장. Ceph 배포
    • 베이그런트와 버추얼박스를 이용한 환경 준비
  • 오케스트레이션
  • 앤서블
    • 앤서블 설치
    • 인벤토리 파일 생성
    • 변수
    • 테스트
  • 매우 간단한 플레이북
  • Ceph 앤서블 모듈 추가
    • 앤서블로 테스트 클러스터 배포
  • 변경점 및 환경설정 관리
  • 요약

  • 3장. 블루스토어
    • 블루스토어란?
  • 블루스토어가 필요한 이유
    • Ceph의 요구 사항
    • 블루스토어가 해결책인 이유
  • 블루스토어 동작 방식
    • RocksDB
    • 지연 쓰기
    • BlueFS
  • 블루스토어 사용 방법
    • 테스트 클러스터의 OSD 업그레이드
  • 요약

  • 4장. 더 나은 스토리지 효율성을 위한 이레이저 코딩
    • 이레이저 코딩이란?
      • K+M
    • Ceph에서 이레이저 코드 동작 방식
    • 알고리즘과 프로파일
      • Jerasure
      • ISA
      • LRC
      • SHEC
    • 이레이저 코드를 사용하는 곳
    • 이레이저 코드 풀 생성
      • 크라켄에서 이레이저 코드 풀 덮어쓰기
      • 시연
      • 2147483647 오류 해결
    • 요약

  • 5장. librados를 통한 개발
    • librados란?
    • librados 사용 방법
    • librados 애플리케이션 예제
      • 원자적 연산을 수행하는 librados 애플리케이션 예제
      • 와처와 노티파이어를 사용하는 librados 애플리케이션 예제
    • 요약

  • 6장. Ceph RADOS 클래스를 통한 분산 컴퓨팅
    • 예제 애플리케이션 및 RADOS 클래스 사용의 장점
    • Lua로 작성하는 간단한 RADOS 클래스
    • 분산 컴퓨팅을 시뮬레이션하는 RADOS 클래스 작성
      • 빌드 환경 준비
      • RADOS 클래스
      • librados 애플리케이션 클라이언트
      • 테스트
    • RADOS 클래스 주의사항
    • 요약

  • 7장. Ceph 모니터링
    • Ceph 모니터링이 중요한 이유
    • 모니터링이 필요한 요소
      • Ceph 활력
      • 운영체제 및 하드웨어
      • Smart stats
      • 네트워크
      • 성능 카운터
    • PG 상태: 좋은, 나쁜, 이상한
      • 좋은 상태
      • 나쁜 상태
      • 이상한 상태
    • collectd를 이용한 Ceph 모니터링
      • 그라파이트
      • 그라파나
      • collectd
      • 앤서블을 통한 colledctd 배포
      • Ceph를 위한 그라파이트 쿼리 예제
      • 커스텀 ceph collectd 플러그인
    • 요약

  • 8장. Ceph 티어 구축
    • 티어와 캐시
      • Ceph 티어 기능 동작 방식
    • 블룸 필터
    • 티어 모드
      • 지연 쓰기
      • 포워드
      • 프록시
    • 사용 예
    • Ceph에서 티어 생성
    • 티어 튜닝
      • 플러시와 퇴거
      • 승급
    • 승급 쓰로틀링
      • 모니터링 매개변수
      • 이레이저 코드 풀 티어 구축
      • 대체적인 캐시 기재
    • 요약

  • 9장. Ceph 튜닝
    • 지연시간
    • 벤치마크
      • 벤치마크 도구
      • Fio
      • Sysbench
      • Ping
      • iPerf
      • 네트워크 벤치마크
      • 디스크 벤치마크
      • RADOS 벤치마크
      • RBD 벤치마크
    • 추천하는 튜닝
      • CPU
      • 파일스토어
      • PG 분리
    • 스크럽
    • OP 우선순위
    • 네트워크
    • 일반적인 시스템 튜닝
    • 커널 RBD
      • 큐 깊이
      • 미리읽기
      • PG 분산
    • 요약

  • 10장. 문제 해결
    • 비일관성 객체 고치기
    • OSD 가득 참
    • Ceph 로깅
    • 느린 성능
      • 원인
      • 모니터링
      • 진단
    • 극도로 느린 성능 또는 IO 처리 불가
      • OSD 플래핑
      • 점보 프레임
      • 디스크 고장
      • 느린 OSD
    • 다운 상태의 PG 분석
    • 커진 모니터 데이터베이스
    • 요약

  • 11장. 피해 복구
    • 피해란?
    • 데이터 손실 피하기
    • 운영 중지나 데이터 손실이 발생하는 원인
    • RBD 미러링
      • 저널
      • rbd-mirror 데몬
      • RBD 미러링 설정
      • RBD 장애 극복 실행
    • RBD 복구
    • 사라진 객체와 비활성 PG
    • 완전한 모니터 실패로부터 복구
    • Ceph 객체 스토어 도구 사용
    • 어썰트 분석
      • 어썰트의 예
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안