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
마지막 수정일자