본문 바로가기
문서 목차
ORKESTRIX설치

Ceph 클러스터 업그레이드

운영 중인 Ceph 분산 스토리지 클러스터를 저장된 데이터 손실 없이 업그레이드 합니다. cephadm 오케스트레이터가 mon → mgr → osd → mds → rgw 순서로 데몬을 하나씩 롤링 재배포하며, 각 데몬이 안전하게 내려도 되는 상태( ok to stop )를 확인한 뒤에만 다음 데몬으로 진행합니다.

QUANTUM C&S

운영 중인 Ceph 분산 스토리지 클러스터를 저장된 데이터 손실 없이 업그레이드합니다. cephadm 오케스트레이터가 mon → mgr → osd → mds → rgw 순서로 데몬을 하나씩 롤링 재배포하며, 각 데몬이 안전하게 내려도 되는 상태(ok-to-stop)를 확인한 뒤에만 다음 데몬으로 진행합니다.

사전 준비

업그레이드 전, 데이터 무손실을 실측으로 증명하기 위해 테스트 오브젝트를 하나 기록해둡니다:

echo "업그레이드 전 테스트 $(date)" > /tmp/ceph-upgrade-test.txt
sudo rados -p qks-block put ceph-upgrade-test-object /tmp/ceph-upgrade-test.txt
sudo rados -p qks-block get ceph-upgrade-test-object -

마지막 명령으로 방금 쓴 내용이 그대로 조회되는지 확인합니다.

설정값

ubuntu.yaml:

qks_cephadm_ceph_version: 20.2.4

목표 버전 사전 점검 (필수)

Ceph 공식 저장소(download.ceph.com)는 각 릴리즈 라인의 최신 패치 하나만 제공합니다(지난 패치는 정리됨). 목표 버전을 정하기 전에 실제 설치 가능한 버전을 확인합니다:

apt-cache madison ceph-common

목표 버전이 이 목록에 없으면(예: 이미 지난 patch), 목록에 있는 버전으로 qks_cephadm_ceph_version을 다시 정합니다.

실행

cd /home/ubuntu/k8s
./install.sh ubuntu plays/qks-ceph-upgrade.yaml

업그레이드 흐름

1. 업그레이드 전 클러스터 헬스 체크(HEALTH_ERR면 중단)
2. cephadm/ceph-common/ceph-volume 패키지를 목표 버전으로 업그레이드
   (apt 저장소의 "최신(candidate)"이 아닌 버전을 지정해도 의존 패키지가
    같이 맞춰지도록 allow_downgrade 적용)
3. ceph orch upgrade start --ceph-version <목표버전>
   → cephadm이 mon → mgr → osd → mds → rgw 순서로 데몬을 하나씩 재배포
   → 각 데몬 교체 전 ok-to-stop(안전하게 내려도 되는 상태) 확인
4. 업그레이드 완료 대기(ceph orch upgrade status)
5. 업그레이드 후 클러스터 헬스 체크
6. 전 데몬이 목표 버전을 보고하는지 확인(ceph versions)

설치 확인

ceph -s
ceph versions

health: HEALTH_OK(또는 무관한 기존 경고만), ceph versions의 overall에 목표 버전 하나만 나오는지 확인합니다.

실제 동작 확인

sudo rados -p qks-block get ceph-upgrade-test-object -

사전 준비 단계에서 기록한 내용이 업그레이드 후에도 그대로 조회되면 데이터 무손실이 확인된 것입니다.

Docker CRI(kube_cri: "docker")를 쓰는 환경에서는 Ceph 설치 문서에 설명된 podman-runc 버전 충돌이 이 업그레이드 과정에서도 동일하게 적용됩니다 — 코드가 자동으로 우회하므로 별도 조치는 필요 없습니다.

다음 단계