Ceph 노드 재시작하기
노드 한 대 재시작
for _option in noout; do
kubectl rook-ceph ceph osd set ${_option}
done
kubectl cordon <node>
kubectl drain <node> --ignore-daemonsets --delete-emptydir-data
해당 노드에 접속하거나 IPMI 등을 통해 노드를 재시작합니다.
kubectl uncordon <node>
for _option in noout; do
kubectl rook-ceph ceph osd unset ${_option}
done
전체 노드 재시작
Reference
스토리지를 사용하는 모든 서비스 scale down
Ceph OSD 설정
for _option in noout nodown norebalance nobackfill norecover pause; do
kubectl rook-ceph ceph osd set ${_option}
done
노드 재시작 전에 ceph이 OSD 상태를 체크하거나 복구하려는 시도를 위의 명령어로 막아야합니다.
Rook 컴포넌트 scale down
- Rook Operator
- CephFS plugin provisioner
- RBD plugin provisioner
- OSD
- MON
- MGR
- Etc.
kubectl -n rook-ceph scale deployment rook-ceph-operator --replicas=0
for _category in rook-ceph-rgw csi-cephfsplugin-provisioner csi-rbdplugin-provisioner rook-ceph-osd rook-ceph-mon rook-ceph-mgr rook-ceph-exporter rook-ceph-crashcollector; do
for _item in $(kubectl get deployment -n rook-ceph | awk '/^'"${_category}"'/{print $1}'); do
kubectl -n rook-ceph scale deployment ${_item} --replicas=0;
while [[ $(kubectl get deployment -n rook-ceph ${_item} -o jsonpath='{.status.readyReplicas}') != "" ]]; do
sleep 5;
done;
done;
done