Ceph 설치 및 환경 구성

Ceph 설치 및 환경 구성

1️⃣ Ceph 클러스터 배포 방식 비교

Ceph을 구축하는 방법은 여러 가지가 있으며, 환경에 따라 적절한 배포 방식을 선택해야 합니다.

1. Manual 설치

  • 개별 노드에 직접 패키지를 설치하고 설정 파일을 수동으로 구성
  • 설치 과정에 대한 완전한 제어 가능
  • 복잡하고 유지보수 부담이 큼

2. Ceph-Ansible

  • Ansible을 사용하여 자동화된 설치 및 설정 적용
  • 대규모 환경에서 반복적인 설치 작업을 단순화
  • 설정이 잘못되면 디버깅이 어려울 수 있음

3. Cephadm

  • 최신 Ceph 배포 방식으로, 컨테이너 기반 관리 지원
  • ceph orch 명령을 통해 클러스터를 쉽게 관리 가능
  • 지속적인 유지보수 및 확장에 유리

💡 추천: 신규 설치 환경에서는 Cephadm을 사용하는 것이 가장 쉽고 관리가 편리합니다.


2️⃣ Ceph 설치 전 사전 준비

1. 하드웨어 요구 사항

Ceph 클러스터의 성능과 안정성을 위해 적절한 하드웨어가 필요합니다.

구성 요소 최소 요구 사항 권장 사양
CPU 4코어 이상 8코어 이상
RAM OSD당 2GB 이상 OSD당 4GB 이상
디스크 HDD, SSD 지원 OSD: SSD + HDD 조합
네트워크 1Gbps 최소 10Gbps 이상

💡 NVMe SSD를 WAL/DB 용도로 활용하면 성능이 향상됩니다.


2. 네트워크 구성

Ceph에서는 데이터 트래픽과 관리 트래픽을 분리하는 것이 중요합니다.

  • Public Network: 클라이언트와의 통신 (예: 192.168.1.0/24)
  • Private Network: OSD 간 데이터 복제 (예: 10.0.0.0/24)

💡 고가용성을 위해 VLAN 또는 BGP를 활용한 네트워크 구성 고려


3. 클러스터 사이징 및 스토리지 설계

Ceph 클러스터를 설계할 때 고려해야 할 사항:

  • 데이터 복제(Redundancy): 2-way vs 3-way 복제
  • Erasure Coding 사용 여부
  • OSD당 PG 개수 설정 (권장 PG 수 계산법: OSD 수 × 100 / 복제 수)

💡 데이터 신뢰성을 위해 최소 3개의 MON 노드 필요


3️⃣ Cephadm을 이용한 클러스터 구축

Cephadm은 최신 Ceph 설치 방식으로, 컨테이너 기반으로 Ceph을 쉽게 배포하고 관리할 수 있습니다.

1. Cephadm 다운로드 및 초기화

curl --silent --remote-name --location https://download.ceph.com/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release quincy
./cephadm install ceph-common

2. 클러스터 부트스트랩

cephadm bootstrap --mon-ip 192.168.1.100

💡 --mon-ip 옵션은 초기 Monitor 노드의 IP 주소를 지정하는 데 사용됩니다.

3. 노드 추가

추가적인 노드를 Ceph 클러스터에 포함하려면:

ceph orch host add node1 192.168.1.101
ceph orch host add node2 192.168.1.102

💡 Cephadm을 이용하면 모든 클러스터 노드를 자동으로 관리할 수 있음


4️⃣ Ceph 설정 파일 (ceph.conf) 이해 및 튜닝

Ceph 설정 파일 ceph.conf는 클러스터 동작을 제어하는 주요 구성 요소입니다.

1. 기본 ceph.conf 예제

[global]
fsid = 7f4e14b4-5f6a-4c6b-a9d5-ef14a7b6b9c8
mon_initial_members = mon1, mon2, mon3
mon_host = 192.168.1.100,192.168.1.101,192.168.1.102
public_network = 192.168.1.0/24
cluster_network = 10.0.0.0/24
osd_pool_default_size = 3

2. 튜닝 옵션

설정 옵션 설명 권장 값
osd_pool_default_size 복제본 개수 3
osd_pool_default_min_size 최소 복제본 개수 2
ms_bind_ipv6 IPv6 활성화 여부 false
bluestore_cache_size 블루스토어 캐시 크기 OSD RAM의 50%

💡 네트워크 튜닝 예제

ethtool -K eth0 tx off rx off
sysctl -w net.core.rmem_max=67108864
sysctl -w net.core.wmem_max=67108864

RSS Feed
마지막 수정일자