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 3 ceph-osd 데몬은 Red Hat Ceph Storage 4로 업그레이드할 때까지 새 OSD를 생성할 수 없습니다.
  • 업그레이드가 진행되는 동안 풀을 생성하지 마십시오.

사전 요구 사항

  • Ceph Monitor, OSD, Object Gateway 노드에 대한 루트 수준 액세스.

절차

  1. Red Hat Ceph Storage 3을 실행하는 동안 클러스터가 모든 PG에 대해 하나 이상의 전체 스크럽을 완료했는지 확인합니다. 이렇게 하지 않으면 모니터 데몬이 시작 시 쿼럼에 대한 참여를 거부하고 작동하지 않게 유지할 수 있습니다. 클러스터가 모든 PG 중 하나 이상의 전체 스크럽을 완료했는지 확인하려면 다음을 실행합니다.

    # ceph osd dump | grep ^flags

    Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드를 진행하려면 OSD 맵에 recovery_deletespurged_snapdirs 플래그가 포함되어야 합니다.

  2. 클러스터가 정상이고 깨끗한 상태인지 확인합니다.

    ceph health
    HEALTH_OK
  3. ceph-monceph-manager 를 실행하는 노드의 경우 다음을 실행합니다.

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-mon-rpms

    Red Hat Ceph Storage 4 패키지가 활성화되면 각 ceph-monceph-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>

    &lt ;mon-hostname > 및 < mgr-hostname >을 대상 호스트의 호스트 이름으로 바꿉니다.

  4. OSD를 업그레이드하기 전에 Ceph Monitor 노드에서 nooutnodeep-scrub 플래그를 설정하여 업그레이드 중에 OSD가 재조정되지 않도록 합니다.

    # ceph osd set noout
    # ceph osd det nodeep-scrub
  5. 각 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가 다시 시작되었는지 확인합니다.

  6. ceph-disk 로 배포된 스토리지 클러스터에 OSD가 있는 경우 ceph-volume 에 데몬을 시작하도록 지시합니다.

    # ceph-volume simple scan
    # ceph-volume simple activate --all
  7. Failure의 기능만 활성화합니다.

    # ceph osd require-osd-release nautilus
    중요

    이 단계를 실행하지 않으면 msgr2 가 활성화된 후 OSD가 통신할 수 없습니다.

  8. 모든 OSD 노드를 업그레이드한 후 Ceph Monitor 노드에서 nooutnodeep-scrub 플래그를 설정 해제합니다.

    # ceph osd unset noout
    # ceph osd unset nodeep-scrub
  9. 기존 NetNamespace 버킷을 최신 버킷 유형 straw2 로 전환합니다.

    # ceph osd getcrushmap -o backup-crushmap
    # ceph osd crush set-all-straw-buckets-to-straw2
  10. Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드한 후 모든 데몬이 업데이트되면 다음 단계를 실행하십시오.

    1. messenger v2 프로토콜, msgr2 를 활성화합니다.

      ceph mon enable-msgr2

      그러면 이전 기본 포트 6789에 바인딩하는 모든 Ceph 모니터가 3300의 새 포트에 바인딩됩니다.

    2. 모니터 상태를 확인합니다.

      ceph mon dump
      참고

      nautilus OSD를 실행하면 v2 주소에 자동으로 바인딩되지 않습니다. 다시 시작해야 합니다.

  11. Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드된 각 호스트에 대해 모니터링 포트를 지정하지 않도록 ceph.conf 파일을 업데이트하거나 v2 및 v1 주소와 포트를 모두 참조합니다.
  12. ceph.conf 파일의 구성 옵션을 스토리지 클러스터의 구성 데이터베이스로 가져옵니다.

    예제

    [root@mon ~]# ceph config assimilate-conf -i /etc/ceph/ceph.conf

    1. 스토리지 클러스터의 구성 데이터베이스를 확인합니다.

      예제

      [root@mon ~]# ceph config dump

    2. 선택 사항: 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

  13. 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 대상으로 바꿉니다.

  14. 관리 노드의 경우 다음을 실행합니다.

    # subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms
    # yum update -y
  15. 클러스터가 정상이고 깨끗한 상태인지 확인합니다.

    # ceph health
    HEALTH_OK
  16. 선택 사항: 클라이언트 노드에서 Ceph 클라이언트 측 라이브러리에 따라 애플리케이션을 다시 시작합니다.

    참고

    QEMU 또는 KVM 인스턴스를 실행하거나 전용 QEMU 또는 KVM 클라이언트를 사용하는 OpenStack Nova 컴퓨팅 노드를 업그레이드하는 경우 이 경우 인스턴스를 다시 시작하지 않기 때문에 QEMU 또는 KVM 인스턴스를 중지하고 시작합니다.