CLOUD

Ceph 클러스터 구축 및 OpenStack multinode 연동 이전 사전 작업

92Hoonhee 2024. 10. 2. 14:15

Ceph 클러스터를 구축하고 OpenStack과 연동하는 방법을 정리하였습니다. SSH 키 설정부터 Ceph 배포, OSD 추가, 풀 생성, OpenStack 서비스 연동까지의 과정을 포함합니다.


1. SSH 키 생성 및 복사

모든 Ceph 노드에서 SSH를 비밀번호 없이 접근할 수 있도록 설정합니다.

ssh-keygen -t rsa
mkdir -p /root/.ssh
echo "<복사한 공개 키>" >> /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

2. Cephadm 설치 및 클러스터 초기화

2.1 Cephadm 설치 (모든 노드)

curl --silent --remote-name --location https://github.com/ceph/ceph/raw/quincy/src/cephadm/cephadm
chmod +x cephadm
./cephadm add-repo --release reef
./cephadm install

2.2 Ceph 부트스트랩

sudo cephadm bootstrap --mon-ip <MON_IP>

설치 완료 후 https://<MON_IP>:8443에서 Ceph 웹 UI 접속 가능.


3. Ceph 클러스터 구성

3.1 호스트 추가

sudo ceph orch host add <hostname> <new-host-ip>

3.2 SSH 키 복사

ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph3

3.3 OSD 추가 전 디스크 초기화

sudo wipefs --all /dev/***
sudo lvremove /dev/ceph--<ID>/osd--block--<ID>

3.4 OSD 추가

ceph orch daemon add osd ceph1:/dev/sdb
ceph orch daemon add osd ceph2:/dev/sdb
ceph orch daemon add osd ceph3:/dev/sdb

3.5 클러스터 상태 확인

ceph -s

4. NTP 설정 (모든 노드)

apt install chrony
systemctl enable chrony
systemctl start chrony

5. Ceph 풀 생성

5.1 기본 풀 생성

ceph osd pool create backups 32 32
ceph osd pool set backups size 3
ceph osd pool application enable backups rbd

ceph osd pool create images 16 16
ceph osd pool set images size 3
ceph osd pool application enable images rbd

ceph osd pool create vms 32 32
ceph osd pool set vms size 3
ceph osd pool application enable vms rbd

ceph osd pool create volumes 32 32
ceph osd pool set volumes size 3
ceph osd pool application enable volumes rbd

5.2 CephFS 관련 풀 생성

ceph osd pool create cephfs_metadata 32 32
ceph osd pool set cephfs_metadata size 3
ceph osd pool application enable cephfs_metadata cephfs

ceph osd pool create cephfs_data 64 64
ceph osd pool set cephfs_data size 3
ceph osd pool application enable cephfs_data cephfs

5.3 CephFS 파일 시스템 생성

ceph fs new mycephfs cephfs_metadata cephfs_data
ceph orch apply mds mycephfs --placement=<node>

5.4 .mgr 풀 생성

ceph osd pool create .mgr 1 1
ceph osd pool set .mgr size 3
ceph osd pool application enable .mgr mgr

6. OpenStack과 Ceph 연동

OpenStack 서비스(Glance, Cinder, Nova, Manila)와 연동하기 위해 각 서비스에 대한 Ceph 키링을 생성합니다.

6.1 Glance (이미지 저장)

sudo ceph auth get-or-create client.glance mon 'allow r' osd 'allow rwx pool=images' -o /etc/ceph/ceph.client.glance.keyring

6.2 Cinder (볼륨 관리)

sudo ceph auth get-or-create client.cinder mon 'allow r' osd 'allow rwx pool=volumes' -o /etc/ceph/ceph.client.cinder.keyring

6.3 Cinder Backup

sudo ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow rwx pool=backups' -o /etc/ceph/ceph.client.cinder-backup.keyring

6.4 Nova (VM 디스크)

sudo ceph auth get-or-create client.nova mon 'allow r' osd 'allow rwx pool=vms' -o /etc/ceph/ceph.client.nova.keyring

6.5 Manila (CephFS 연동)

sudo ceph auth get-or-create client.manila mon 'allow r' osd 'allow rwx pool=cephfs_data' -o /etc/ceph/ceph.client.manila.keyring
ceph auth caps client.manila mds 'allow rw' mon 'allow r' osd 'allow rw pool=cephfs_data'

7. 요약

이 문서는 Ceph 클러스터를 구축하고 OpenStack과 연동하는 절차를 정리한 것입니다. 핵심 과정은 다음과 같습니다:

  1. SSH 키 설정 및 복사 → 모든 노드 간 암호 없는 접근 설정
  2. Cephadm 설치 및 부트스트랩 → 클러스터 초기화
  3. Ceph 노드 및 OSD 추가 → 디스크 초기화 후 OSD 추가
  4. NTP 동기화 → 모든 노드에서 시간 동기화 보장
  5. Ceph 풀 생성 → Glance, Cinder, Nova, Manila에 필요한 풀 설정
  6. CephFS 생성 및 MDS 배포 → CephFS 기반의 파일 시스템 구성
  7. OpenStack과 Ceph 연동 → 각 서비스에 적절한 키링 및 권한 부여

이 과정이 완료되면 OpenStack에서 Ceph 기반 스토리지를 활용할 수 있습니다.