7.4. 명령줄 인터페이스를 사용하여 스토리지 클러스터 업그레이드
스토리지 클러스터가 실행되는 동안 Red Hat Ceph Storage 3.3에서 Red Hat Ceph Storage 4로 업그레이드할 수 있습니다. 이러한 버전의 중요한 차이점은 Red Hat Ceph Storage 4는 기본적으로 msgr2
프로토콜을 사용하므로 포트 3300
을 사용한다는 것입니다. 열려 있지 않으면 클러스터에서 HEALTH_WARN
오류가 발생합니다.
스토리지 클러스터를 업그레이드할 때 고려해야 할 제약 조건은 다음과 같습니다.
-
Red Hat Ceph Storage 4는 기본적으로
msgr2
프로토콜을 사용합니다. Ceph Monitor 노드에서 포트3300
이 열려 있는지 확인합니다. -
ceph-monitor
데몬을 Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드한 후 Red Hat Ceph Storage 3ceph-osd
데몬은 Red Hat Ceph Storage 4로 업그레이드할 때까지 새 OSD를 생성할 수 없습니다. - 업그레이드가 진행되는 동안 풀을 생성하지 마십시오.
사전 요구 사항
- Ceph Monitor, OSD, Object Gateway 노드에 대한 루트 수준 액세스.
절차
Red Hat Ceph Storage 3을 실행하는 동안 클러스터가 모든 PG에 대해 하나 이상의 전체 스크럽을 완료했는지 확인합니다. 이렇게 하지 않으면 모니터 데몬이 시작 시 쿼럼에 대한 참여를 거부하고 작동하지 않게 유지할 수 있습니다. 클러스터가 모든 PG 중 하나 이상의 전체 스크럽을 완료했는지 확인하려면 다음을 실행합니다.
# ceph osd dump | grep ^flags
Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드를 진행하려면 OSD 맵에
recovery_deletes
및purged_snapdirs
플래그가 포함되어야 합니다.클러스터가 정상이고 깨끗한 상태인지 확인합니다.
ceph health HEALTH_OK
ceph-mon
및ceph-manager
를 실행하는 노드의 경우 다음을 실행합니다.# subscription-manager repos --enable=rhel-7-server-rhceph-4-mon-rpms
Red Hat Ceph Storage 4 패키지가 활성화되면 각
ceph-mon
및ceph-manager
노드에서 다음을 실행합니다.# firewall-cmd --add-port=3300/tcp # firewall-cmd --add-port=3300/tcp --permanent # yum update -y # systemctl restart ceph-mon@<mon-hostname> # systemctl restart ceph-mgr@<mgr-hostname>
<
;mon-hostname
> 및 <mgr-hostname
>을 대상 호스트의 호스트 이름으로 바꿉니다.OSD를 업그레이드하기 전에 Ceph Monitor 노드에서
noout
및nodeep-scrub
플래그를 설정하여 업그레이드 중에 OSD가 재조정되지 않도록 합니다.# ceph osd set noout # ceph osd det nodeep-scrub
각 OSD 노드에서 다음을 실행합니다.
# subscription-manager repos --enable=rhel-7-server-rhceph-4-osd-rpms
Red Hat Ceph Storage 4 패키지가 활성화되면 OSD 노드를 업데이트합니다.
# yum update -y
노드에서 실행되는 각 OSD 데몬에 대해 다음을 실행합니다.
# systemctl restart ceph-osd@<osd-num>
&
lt;osd-num&
gt;을 재시작할 osd 번호로 바꿉니다. 다음 OSD 노드로 진행하기 전에 노드의 모든 OSD가 다시 시작되었는지 확인합니다.ceph-disk
로 배포된 스토리지 클러스터에 OSD가 있는 경우ceph-volume
에 데몬을 시작하도록 지시합니다.# ceph-volume simple scan # ceph-volume simple activate --all
Failure의 기능만 활성화합니다.
# ceph osd require-osd-release nautilus
중요이 단계를 실행하지 않으면
msgr2
가 활성화된 후 OSD가 통신할 수 없습니다.모든 OSD 노드를 업그레이드한 후 Ceph Monitor 노드에서
noout
및nodeep-scrub
플래그를 설정 해제합니다.# ceph osd unset noout # ceph osd unset nodeep-scrub
기존 NetNamespace 버킷을 최신 버킷 유형
straw2
로 전환합니다.# ceph osd getcrushmap -o backup-crushmap # ceph osd crush set-all-straw-buckets-to-straw2
Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드한 후 모든 데몬이 업데이트되면 다음 단계를 실행하십시오.
messenger v2 프로토콜,
msgr2
를 활성화합니다.ceph mon enable-msgr2
그러면 이전 기본 포트 6789에 바인딩하는 모든 Ceph 모니터가 3300의 새 포트에 바인딩됩니다.
모니터 상태를 확인합니다.
ceph mon dump
참고nautilus OSD를 실행하면 v2 주소에 자동으로 바인딩되지 않습니다. 다시 시작해야 합니다.
-
Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드된 각 호스트에 대해 모니터링 포트를 지정하지 않도록
ceph.conf
파일을 업데이트하거나 v2 및 v1 주소와 포트를 모두 참조합니다. ceph.conf
파일의 구성 옵션을 스토리지 클러스터의 구성 데이터베이스로 가져옵니다.예제
[root@mon ~]# ceph config assimilate-conf -i /etc/ceph/ceph.conf
스토리지 클러스터의 구성 데이터베이스를 확인합니다.
예제
[root@mon ~]# ceph config dump
선택 사항: Red Hat Ceph Storage 4로 업그레이드한 후 각 호스트에 대해 최소
ceph.conf
파일을 생성합니다.예제
[root@mon ~]# ceph config generate-minimal-conf > /etc/ceph/ceph.conf.new [root@mon ~]# mv /etc/ceph/ceph.conf.new /etc/ceph/ceph.conf
Ceph Object Gateway 노드에서 다음을 실행합니다.
# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
Red Hat Ceph Storage 4 패키지가 활성화되면 노드를 업데이트하고
ceph-rgw
데몬을 다시 시작하십시오.# yum update -y # systemctl restart ceph-rgw@<rgw-target>
&
lt;rgw-target&
gt;을 재시작할 rgw 대상으로 바꿉니다.관리 노드의 경우 다음을 실행합니다.
# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms # yum update -y
클러스터가 정상이고 깨끗한 상태인지 확인합니다.
# ceph health HEALTH_OK
선택 사항: 클라이언트 노드에서 Ceph 클라이언트 측 라이브러리에 따라 애플리케이션을 다시 시작합니다.
참고QEMU 또는 KVM 인스턴스를 실행하거나 전용 QEMU 또는 KVM 클라이언트를 사용하는 OpenStack Nova 컴퓨팅 노드를 업그레이드하는 경우 이 경우 인스턴스를 다시 시작하지 않기 때문에 QEMU 또는 KVM 인스턴스를 중지하고 시작합니다.