문서 목차
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 -
사전 준비 단계에서 기록한 내용이 업그레이드 후에도 그대로 조회되면 데이터 무손실이 확인된 것입니다.
kube_cri: "docker")를 쓰는 환경에서는 Ceph 설치 문서에 설명된 podman-runc 버전 충돌이 이 업그레이드 과정에서도 동일하게 적용됩니다 — 코드가 자동으로 우회하므로 별도 조치는 필요 없습니다.