부록 G. Red Hat Ceph Storage 2에서 3으로 수동 업그레이드


클러스터가 실행되는 동안 Ceph Storage 클러스터를 롤링 방식으로 2에서 3으로 업그레이드할 수 있습니다. 클러스터의 각 노드를 순차적으로 업그레이드하고 이전 노드가 완료된 후 다음 노드로만 이동합니다.

다음과 같은 순서로 Ceph 구성 요소를 업그레이드하는 것이 좋습니다.

  • 노드 모니터링
  • OSD 노드
  • Ceph Object Gateway 노드
  • 기타 모든 Ceph 클라이언트 노드

Red Hat Ceph Storage 3에는 새로운 데몬 Ceph Manager(ceph-mgr)가 도입되었습니다. Monitor 노드를 업그레이드한 후 ceph-mgr 을 설치합니다.

Red Hat Ceph Storage 2를 3으로 업그레이드하는 방법은 다음 두 가지가 있습니다.

  • Red Hat CDN(Content Delivery Network) 사용
  • Red Hat 제공 ISO 이미지 파일 사용

스토리지 클러스터를 업그레이드한 후 기존 튜닝 가능 항목을 사용하여 CRUSH 맵에 대한 상태 경고를 받을 수 있습니다. 자세한 내용은 Red Hat Ceph Storage 3용 스토리지 전략 가이드의 CRUSH Tunables 섹션을 참조하십시오.

예제

$ ceph -s
    cluster 848135d7-cdb9-4084-8df2-fb5e41ae60bd
     health HEALTH_WARN
            crush map has legacy tunables (require bobtail, min is firefly)
     monmap e1: 1 mons at {ceph1=192.168.0.121:6789/0}
            election epoch 2, quorum 0 ceph1
     osdmap e83: 2 osds: 2 up, 2 in
      pgmap v1864: 64 pgs, 1 pools, 38192 kB data, 17 objects
            10376 MB used, 10083 MB / 20460 MB avail
                  64 active+clean

중요

Red Hat은 모든 Ceph 클라이언트가 Ceph 스토리지 클러스터와 동일한 버전을 실행하도록 권장합니다.

사전 요구 사항

  • 업그레이드하려는 클러스터에 exclusive-lock 기능을 사용하는 Ceph Block Device 이미지가 포함된 경우 모든 Ceph Block Device 사용자에게 클라이언트를 블랙리스트로 지정할 수 있는 권한이 있는지 확인하십시오.

    ceph auth caps client.<ID> mon 'allow r, allow command "osd blacklist"' osd '<existing-OSD-user-capabilities>'

모니터 노드 업그레이드

이 섹션에서는 Ceph Monitor 노드를 최신 버전으로 업그레이드하는 단계를 설명합니다. 홀수의 모니터가 있어야 합니다. 모니터 하나를 업그레이드하는 동안 스토리지 클러스터에는 쿼럼이 있습니다.

절차

스토리지 클러스터의 각 모니터 노드에서 다음 단계를 수행합니다. 한 번에 하나의 Monitor 노드만 업그레이드합니다.

  1. 소프트웨어 리포지토리를 사용하여 Red Hat Ceph Storage 2를 설치한 경우 리포지토리를 비활성화합니다.

    # subscription-manager repos --disable=rhel-7-server-rhceph-2-mon-rpms --disable=rhel-7-server-rhceph-2-installer-rpms
  2. Red Hat Ceph Storage 3 Monitor 리포지토리를 활성화합니다.

    [root@monitor ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-mon-els-rpms
  3. root 로 monitor 프로세스를 중지합니다.

    구문

    # service ceph stop <daemon_type>.<monitor_host_name>

    예제

    # service ceph stop mon.node1

  4. rootceph-mon 패키지를 업데이트합니다.

    # yum update ceph-mon
  5. root 로서 소유자 및 그룹 권한을 업데이트합니다.

    구문

    # chown -R <owner>:<group> <path_to_directory>

    예제

    # chown -R ceph:ceph /var/lib/ceph/mon
    # chown -R ceph:ceph /var/log/ceph
    # chown -R ceph:ceph /var/run/ceph
    # chown ceph:ceph /etc/ceph/ceph.client.admin.keyring
    # chown ceph:ceph /etc/ceph/ceph.conf
    # chown ceph:ceph /etc/ceph/rbdmap

    참고

    Ceph Monitor 노드가 OpenStack 컨트롤러 노드와 함께 배치되는 경우 Glance 및 Cinder 인증 키 파일을 각각 glancecinder 에서 소유해야 합니다. 예를 들면 다음과 같습니다.

    # ls -l /etc/ceph/
    ...
    -rw-------.  1 glance glance      64 <date> ceph.client.glance.keyring
    -rw-------.  1 cinder cinder      64 <date> ceph.client.cinder.keyring
    ...
  6. SELinux가 강제 모드 또는 허용 모드인 경우 다음 재부팅 시 SELinux 컨텍스트의 레이블을 다시 지정합니다.

    # touch /.autorelabel
    주의

    SELinux가 모든 파일 시스템을 트래버스하고 레이블이 잘못 지정된 파일을 수정해야 하므로 레이블을 다시 지정하는 데 시간이 오래 걸릴 수 있습니다. 디렉터리의 레이블을 다시 레이블로 지정하지 않도록 하려면 재부팅하기 전에 /etc/selinux/fixfiles_exclude_dirs 파일에 디렉토리를 추가합니다.

  7. rootceph-mon 프로세스를 활성화합니다.

    # systemctl enable ceph-mon.target
    # systemctl enable ceph-mon@<monitor_host_name>
  8. root 로서 Monitor 노드를 재부팅합니다.

    # shutdown -r now
  9. Monitor 노드가 가동되면 다음 Monitor 노드로 이동하기 전에 Ceph 스토리지 클러스터의 상태를 확인합니다.

    # ceph -s

G.1. 수동으로 Ceph Manager 설치

일반적으로 Ansible 자동화 유틸리티는 Red Hat Ceph Storage 클러스터를 배포할 때 Ceph Manager 데몬(ceph-mgr)을 설치합니다. 그러나 Ansible을 사용하여 Red Hat Ceph Storage를 관리하지 않는 경우 Ceph Manager를 수동으로 설치할 수 있습니다. Red Hat은 동일한 노드에서 Ceph Manager 및 Ceph Monitor 데몬을 배치하는 것이 좋습니다.

사전 요구 사항

  • 작동하는 Red Hat Ceph Storage 클러스터
  • root 또는 sudo 액세스
  • rhel-7-server-rhceph-3-mon-els-rpms 리포지토리 활성화
  • 방화벽이 사용되는 경우 공용 네트워크에서 포트 6800-7300

절차

ceph-mgr 가 배포되는 노드에서 및 root 사용자로 또는 sudo 유틸리티를 사용하여 다음 명령을 사용합니다.

  1. ceph-mgr 패키지를 설치합니다.

    [root@node1 ~]# yum install ceph-mgr
  2. /var/lib/ceph/mgr/ceph-호스트 이름/ 디렉터리를 생성합니다.

    mkdir /var/lib/ceph/mgr/ceph-hostname

    hostnameceph-mgr 데몬이 배포될 노드의 호스트 이름으로 교체합니다. 예를 들면 다음과 같습니다.

    [root@node1 ~]# mkdir /var/lib/ceph/mgr/ceph-node1
  3. 새로 생성된 디렉터리에서 ceph-mgr 데몬에 대한 인증 키를 생성합니다.

    [root@node1 ~]# ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
  4. /var/lib/ceph/mgr/ 디렉터리의 소유자 및 그룹을 ceph:ceph 로 변경합니다.

    [root@node1 ~]# chown -R ceph:ceph /var/lib/ceph/mgr
  5. ceph-mgr 대상을 활성화합니다.

    [root@node1 ~]# systemctl enable ceph-mgr.target
  6. ceph-mgr 인스턴스를 활성화하고 시작합니다.

    systemctl enable ceph-mgr@hostname
    systemctl start ceph-mgr@hostname

    hostnameceph-mgr 이 배포할 노드의 호스트 이름으로 교체합니다. 예를 들면 다음과 같습니다.

    [root@node1 ~]# systemctl enable ceph-mgr@node1
    [root@node1 ~]# systemctl start ceph-mgr@node1
  7. ceph-mgr 데몬이 시작되었는지 확인합니다.

    ceph -s

    출력에는 services: 섹션 아래의 다음 행과 유사한 행이 포함됩니다.

        mgr: node1(active)
  8. 현재 활성 데몬이 실패하는 경우 더 많은 ceph-mgr 데몬을 설치하여 대기 데몬으로 작동합니다.

OSD 노드 업그레이드

이 섹션에서는 Ceph OSD 노드를 최신 버전으로 업그레이드하는 단계를 설명합니다.

사전 요구 사항

OSD 노드를 업그레이드할 때 OSD가 다운되거나 다시 시작될 수 있으므로 일부 배치 그룹이 성능이 저하됩니다. Ceph가 복구 프로세스를 시작하지 못하도록 하려면 Monitor 노드에서 nooutnorebalance OSD 플래그를 설정합니다.

[root@monitor ~]# ceph osd set noout
[root@monitor ~]# ceph osd set norebalance

절차

스토리지 클러스터의 각 OSD 노드에서 다음 단계를 수행합니다. 한 번에 하나의 OSD 노드만 업그레이드합니다. Red Hat Ceph Storage 2.3에 대해 ISO 기반 설치를 수행한 경우 이 첫 번째 단계를 건너뜁니다.

  1. root 로서 Red Hat Ceph Storage 2 리포지토리를 비활성화합니다.

    # subscription-manager repos --disable=rhel-7-server-rhceph-2-osd-rpms --disable=rhel-7-server-rhceph-2-installer-rpms
  2. Red Hat Ceph Storage 3 OSD 리포지토리를 활성화합니다.

    [root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms
  3. root 로 실행 중인 OSD 프로세스를 중지합니다.

    구문

    # service ceph stop <daemon_type>.<osd_id>

    예제

    # service ceph stop osd.0

  4. rootceph-osd 패키지를 업데이트합니다.

    # yum update ceph-osd
  5. root 로서 새로 생성된 디렉터리 및 파일에 대한 소유자 및 그룹 권한을 업데이트합니다.

    구문

    # chown -R <owner>:<group> <path_to_directory>

    예제

    # chown -R ceph:ceph /var/lib/ceph/osd
    # chown -R ceph:ceph /var/log/ceph
    # chown -R ceph:ceph /var/run/ceph
    # chown -R ceph:ceph /etc/ceph

    참고

    다음 find 명령을 사용하면 다수의 디스크가 많은 Ceph 스토리지 클러스터에서 chown 명령을 병렬로 사용하여 소유권을 변경하는 프로세스를 빠르게 수행할 수 있습니다.

    # find /var/lib/ceph/osd -maxdepth 1 -mindepth 1 -print | xargs -P12 -n1 chown -R ceph:ceph
  6. SELinux가 강제 모드 또는 허용 모드로 설정된 경우 다음 재부팅을 위해 파일에서 SELinux 컨텍스트 재지정을 설정합니다.

    # touch /.autorelabel
    주의

    SELinux는 모든 파일 시스템을 트래버스하고 레이블이 잘못 지정된 파일을 수정해야 하므로 레이블을 다시 지정하는 데 시간이 오래 걸립니다. 디렉터리의 레이블 재지정을 제외하려면 재부팅하기 전에 /etc/selinux/fixfiles_exclude_dirs 파일에 디렉토리를 추가합니다.

    참고

    배치 그룹(PG)당 많은 개체가 있는 환경에서는 디렉터리 열거 속도가 감소하여 성능에 부정적인 영향을 미칩니다. 이는 SELinux 컨텍스트를 확인하는 xattr 쿼리의 추가로 인해 발생합니다. 마운트 시 컨텍스트를 설정하면 컨텍스트에 대한 xattr 쿼리가 제거되고 특히 느린 디스크에서 전체 디스크 성능이 도움이 됩니다.

    /etc/ceph/ceph.conf 파일의 [osd] 섹션에 다음 행을 추가합니다.

    +

    osd_mount_options_xfs=rw,noatime,inode64,context="system_u:object_r:ceph_var_lib_t:s0"
  7. root 로서 커널에서 장치 이벤트를 재생합니다.

    # udevadm trigger
  8. rootceph-osd 프로세스를 활성화합니다.

    # systemctl enable ceph-osd.target
    # systemctl enable ceph-osd@<osd_id>
  9. root 로서 OSD 노드를 재부팅합니다.

    # shutdown -r now
  10. 다음 OSD 노드로 이동합니다.

    참고

    nooutnorebalance 플래그가 설정된 경우 스토리지 클러스터는 HEALTH_WARN 상태입니다.

    $ ceph health
    HEALTH_WARN noout,norebalance flag(s) set

Ceph Storage 클러스터를 업그레이드한 후 이전에 설정한 OSD 플래그를 설정 해제하고 스토리지 클러스터 상태를 확인합니다.

모니터 노드에서 및 모든 OSD 노드가 업그레이드된 후 nooutnorebalance 플래그를 설정 해제합니다.

# ceph osd unset noout
# ceph osd unset norebalance

또한 ceph osd require-osd-release <release> 명령을 실행합니다. 이 명령을 사용하면 더 이상 Red Hat Ceph Storage 2.3이 있는 OSD를 스토리지 클러스터에 추가할 수 없습니다. 이 명령을 실행하지 않으면 스토리지 상태가 HEALTH_WARN 이 됩니다.

# ceph osd require-osd-release luminous

추가 리소스

  • 스토리지 클러스터에 새 OSD를 추가하여 스토리지 용량을 확장하려면 Red Hat Ceph Storage 3 관리 가이드OSD 추가 섹션을 참조하십시오.

Ceph Object Gateway 노드 업그레이드

이 섹션에서는 Ceph Object Gateway 노드를 이후 버전으로 업그레이드하는 단계를 설명합니다.

사전 요구 사항

  • Red Hat은 HAProxy 와 같은 로드 밸런서 뒤에 Ceph 오브젝트 게이트웨이를 두는 것이 좋습니다. 로드 밸런서를 사용하는 경우 요청이 제공되지 않으면 로드 밸런서에서 Ceph Object Gateway를 제거합니다.
  • rgw_region_root_pool 매개변수에 지정된 리전 풀에 사용자 지정 이름을 사용하는 경우 Ceph 구성 파일의 [global] 섹션에 rgw_zonegroup_root_pool 매개변수를 추가합니다. rgw_zonegroup_root_pool 의 값을 rgw_region_root_pool 과 동일하게 설정합니다. 예를 들면 다음과 같습니다.

    [global]
    rgw_zonegroup_root_pool = .us.rgw.root

절차

스토리지 클러스터의 각 Ceph Object Gateway 노드에서 다음 단계를 수행합니다. 한 번에 하나의 노드만 업그레이드합니다.

  1. Red Hat Ceph Storage를 설치하기 위해 온라인 리포지토리를 사용한 경우 2 리포지토리를 비활성화합니다.

    # subscription-manager repos --disable=rhel-7-server-rhceph-2.3-tools-rpms --disable=rhel-7-server-rhceph-2-installer-rpms
  2. Red Hat Ceph Storage 3 툴 리포지토리를 활성화합니다.

    [root@gateway ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-els-rpms
  3. Ceph Object Gateway 프로세스(ceph-radosgw)를 중지합니다.

    # service ceph-radosgw stop
  4. ceph-radosgw 패키지를 업데이트합니다.

    # yum update ceph-radosgw
  5. 새로 생성된 /var/lib/ceph/radosgw//var/log/ceph/ 디렉터리에 대한 소유자 및 그룹 권한을 ceph 로 변경합니다.

    # chown -R ceph:ceph /var/lib/ceph/radosgw
    # chown -R ceph:ceph /var/log/ceph
  6. SELinux가 강제 또는 허용 모드에서 실행되도록 설정된 경우 다음 부팅 시 SELinux 컨텍스트의 레이블을 다시 지정하도록 지시합니다.

    # touch /.autorelabel
    중요

    SELinux는 모든 파일 시스템을 통과하고 레이블이 잘못 지정된 파일을 수정해야 하므로 레이블을 다시 지정하는 데 시간이 오래 걸립니다. 디렉터리의 레이블이 다시 지정되지 않은 경우 재부팅하기 전에 /etc/selinux/fixfiles_exclude_dirs 파일에 추가합니다.

  7. ceph-radosgw 프로세스를 활성화합니다.

    # systemctl enable ceph-radosgw.target
    # systemctl enable ceph-radosgw@rgw.<hostname>

    <hostname> 을 Ceph Object Gateway 호스트의 이름으로 바꿉니다(예: gateway-node ).

    # systemctl enable ceph-radosgw.target
    # systemctl enable ceph-radosgw@rgw.gateway-node
  8. Ceph Object Gateway 노드 재부팅

    # shutdown -r now
  9. 로드 밸런서를 사용하는 경우 Ceph Object Gateway 노드를 다시 로드 밸런서에 추가합니다.

예를 들면 다음과 같습니다.

Ceph 클라이언트 노드 업그레이드

Ceph 클라이언트는 다음과 같습니다.

  • Ceph 블록 장치
  • OpenStack Nova Compute 노드
  • QEMU/KVM 하이퍼바이저
  • Ceph 클라이언트 측 라이브러리를 사용하는 사용자 정의 애플리케이션

Red Hat은 모든 Ceph 클라이언트가 Ceph 스토리지 클러스터와 동일한 버전을 실행하도록 권장합니다.

사전 요구 사항

  • 예기치 않은 오류가 발생하지 않도록 패키지를 업그레이드하는 동안 Ceph 클라이언트 노드에 대한 모든 I/O 요청을 중지합니다.

절차

  1. 소프트웨어 리포지토리를 사용하여 Red Hat Ceph Storage 2 클라이언트를 설치한 경우 리포지토리를 비활성화합니다.

    # subscription-manager repos --disable=rhel-7-server-rhceph-2-tools-rpms --disable=rhel-7-server-rhceph-2-installer-rpms
    참고

    Red Hat Ceph Storage 2 클라이언트에 대해 ISO 기반 설치를 수행한 경우 이 첫 번째 단계를 건너뜁니다.

  2. 클라이언트 노드에서 Red Hat Ceph Storage Tools 3 리포지토리를 활성화합니다.

    [root@gateway ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-tools-els-rpms
  3. 클라이언트 노드에서 ceph-common 패키지를 업데이트합니다.

    # yum update ceph-common

ceph-common 패키지를 업그레이드한 후 Ceph 클라이언트 측 라이브러리에 종속된 애플리케이션을 다시 시작합니다.

참고

QEMU/KVM 인스턴스를 실행하거나 전용 QEMU/KVM 클라이언트를 사용하는 OpenStack Nova 컴퓨팅 노드를 업그레이드하는 경우 이 경우 인스턴스를 다시 시작할 수 없으므로 QEMU/KVM 인스턴스를 중지 및 시작합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.