1.9. 업그레이드 프로세스


스토리지 관리자는 Ansible 플레이북을 사용하여 Red Hat Ceph Storage 4 스토리지 클러스터를 Red Hat Ceph Storage 5로 업그레이드합니다. rolling_update.yml Ansible Playbook은 Red Hat Ceph Storage 배포를 위해 업그레이드를 수행합니다. ceph-ansible 은 Ceph 노드를 다음 순서로 업그레이드합니다.

  • Ceph Monitor
  • Ceph Manager
  • Ceph OSD 노드
  • MDS 노드
  • Ceph Object Gateway(RGW) 노드
  • Ceph RBD-mirror 노드
  • Ceph NFS 노드
  • Ceph iSCSI 게이트웨이 노드
  • Ceph 클라이언트 노드
  • Ceph-crash 데몬
  • 모든 노드의 node-exporter
  • Ceph 대시보드
중요

스토리지 클러스터를 Red Hat Ceph Storage 4에서 Red Hat Ceph Storage 5로 업그레이드한 후 Grafana UI에 두 개의 대시보드가 표시됩니다. 이는 Red Hat Ceph Storage 4의 Prometheus 포트는 9092이고 Red Hat Ceph Storage 5의 경우 9095이기 때문입니다. grafana를 제거할 수 있습니다. cephadm 은 서비스와 데몬을 재배포하고 Grafana UI에서 이전 대시보드를 제거합니다.

참고

Red Hat Ceph Storage 5는 컨테이너화된 배포만 지원합니다.

현재 Red Hat Ceph Storage 5에서는 Ceph -ansible 이 지원되지 않습니다. 즉, 스토리지 클러스터를 Red Hat Ceph Storage 5로 마이그레이션했으면 cephadm 을 사용하여 후속 업데이트를 수행해야 합니다.

중요

단일 영역과 여러 영역을 사용하여 다중 사이트 Ceph Object Gateway를 배포하려면 all.yml 파일을 편집합니다. 자세한 내용은 Red Hat Ceph Storage 4 설치 가이드의 다중 사이트 Ceph Object Gateway 구성 을 참조하십시오.

참고

Red Hat Ceph Storage 5에는 스토리지 클러스터의 데몬이 여러 버전의 Red Hat Ceph Storage를 실행하는 경우 DAE jenkinsfile_OLD_VERSION 경고를 반환하는 상태 점검 기능도 포함되어 있습니다. 데몬은 mon_warn_older_version_delay 옵션에 설정된 시간 값 이외의 여러 버전의 Red Hat Ceph Storage를 계속 실행할 때 트리거됩니다. 기본적으로 mon_warn_older_version_delay 옵션이 1 주로 설정됩니다. 이 설정을 사용하면 대부분의 업그레이드가 경고를 잘못 보지 않고 진행할 수 있습니다. 업그레이드 프로세스가 장기간 일시 중지되면 상태 경고를 음소거할 수 있습니다.

ceph health mute DAEMON_OLD_VERSION --sticky

업그레이드가 완료되면 상태 경고를 음소거합니다.

ceph health unmute DAEMON_OLD_VERSION

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • 스토리지 클러스터의 모든 호스트에 대한 루트 수준 액세스.
  • 유효한 고객 서브스크립션.
  • Ansible 관리 노드에 대한 루트 수준 액세스.
  • Red Hat Ceph Storage 5에서 사용 가능한 최신 Ansible 및 ceph- anible 버전입니다.
  • Ansible 애플리케이션과 함께 사용할 ansible 사용자 계정입니다.
  • 스토리지 클러스터 노드가 Red Hat Enterprise Linux 8.4 EUS 이상으로 업그레이드됩니다.
중요

Ansible 인벤토리 파일은 ceph-ansible 디렉터리에 있어야 합니다.

절차

  1. Ansible 관리 노드에서 Ceph 및 Ansible 리포지토리를 활성화합니다.

    Red Hat Enterprise Linux 8

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms

    Red Hat Enterprise Linux 9

    subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms

  2. Ansible 관리 노드에서 최신 버전의 ansibleceph-ansible 패키지가 설치되어 있는지 확인합니다.

    구문

    dnf update ansible ceph-ansible

  3. /usr/share/ceph-ansible/ 디렉터리로 이동합니다.

    예제

    [root@admin ~]# cd /usr/share/ceph-ansible

  4. Red Hat Ceph Storage 4에서 Red Hat Ceph Storage 5로 업그레이드하는 경우 group_vars/osds.yml.samplegroup_vars/clients.sample 파일의 복사본을 각각 만들고 이를 group_vars/osds.yml, group_vars/clients.yml 로 변경합니다.

    예제

    [root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml
    [root@admin ceph-ansible]# cp group_vars/mdss.yml.sample group_vars/mdss.yml
    [root@admin ceph-ansible]# cp group_vars/rgws.yml.sample group_vars/rgws.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.yml

  5. Red Hat Ceph Storage 4에서 Red Hat Ceph Storage 5로 업그레이드하는 경우 group_vars/all.yml 파일을 편집하여 Red Hat Ceph Storage 5 세부 정보를 추가합니다.
  6. 위의 두 단계를 완료하면 이전 yaml 파일의 설정을 새 yaml 파일로 복사합니다. 이러한 구성 매개변수의 값이 Red Hat Ceph Storage 5의 값으로 ceph_rhcs_version,ceph_docker_imagegrafana_container_image 값을 변경하지 마십시오. 이렇게 하면 클러스터와 관련된 모든 설정이 현재 yaml 파일에 있습니다.

    예제

    fetch_directory: ~/ceph-ansible-keys
    monitor_interface: eth0
    public_network: 192.168.0.0/24
    ceph_docker_registry_auth: true
    ceph_docker_registry_username: SERVICE_ACCOUNT_USER_NAME
    ceph_docker_registry_password: TOKEN
    dashboard_admin_user: DASHBOARD_ADMIN_USERNAME
    dashboard_admin_password: DASHBOARD_ADMIN_PASSWORD
    grafana_admin_user: GRAFANA_ADMIN_USER
    grafana_admin_password: GRAFANA_ADMIN_PASSWORD
    radosgw_interface: eth0
    ceph_docker_image: "rhceph/rhceph-5-rhel8"
    ceph_docker_image_tag: "latest"
    ceph_docker_registry: "registry.redhat.io"
    node_exporter_container_image: registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.6
    grafana_container_image: registry.redhat.io/rhceph/rhceph-5-dashboard-rhel8:5
    prometheus_container_image: registry.redhat.io/openshift4/ose-prometheus:v4.6
    alertmanager_container_image: registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.6

    참고

    Red Hat Ceph Storage 5 컨테이너 이미지가 기본값으로 설정되어 있는지 확인합니다.

  7. group_vars/osds.yml 파일을 편집합니다. 다음 옵션을 추가하고 설정합니다.

    구문

    nb_retry_wait_osd_up: 50
    delay_wait_osd_up: 30

  8. group_vars/all.yml 파일을 열고 이전 all.yml 파일에서 다음 값이 있는지 확인합니다.

    1. fetch_directory 옵션은 이전 all.yml 파일과 동일한 값으로 설정됩니다.

      구문

      fetch_directory: FULL_DIRECTORY_PATH

      FULL_DIRECTORY_PATH 를 Ansible 사용자의 홈 디렉터리와 같은 쓰기 가능한 위치로 바꿉니다.

    2. 업그레이드하려는 클러스터에 Ceph Object Gateway 노드가 포함된 경우 radosgw_interface 옵션을 추가합니다.

      radosgw_interface: INTERFACE

      INTERFACE 를 Ceph Object Gateway 노드에서 수신 대기하는 인터페이스로 교체합니다.

    3. 현재 설정에 SSL 인증서가 구성된 경우 다음을 편집합니다.

      구문

      radosgw_frontend_ssl_certificate: /etc/pki/ca-trust/extracted/CERTIFICATE_NAME
      radosgw_frontend_port: 443

    4. upgrade_ceph_packages 옵션의 주석을 제거하고 True 로 설정합니다.

      구문

      upgrade_ceph_packages: True

    5. 스토리지 클러스터에 노드당 Ceph Object Gateway 인스턴스가 두 개 이상 있는 경우 radosgw_num_instances 설정의 주석 처리를 해제하고 클러스터의 노드당 인스턴스 수로 설정합니다.

      구문

      radosgw_num_instances : NUMBER_OF_INSTANCES_PER_NODE

      예제

      radosgw_num_instances : 2

    6. 스토리지 클러스터에 Ceph Object Gateway 다중 사이트가 정의되어 있는 경우 all.yml 의 다중 사이트 설정을 확인하여 이전 all.yml 파일에서와 동일한 값이 포함되어 있는지 확인합니다.
  9. 버킷이 생성되거나 num_shards = 0 인 경우 Red Hat Ceph Storage 5.3으로 업그레이드하기 전에 버킷을 수동으로 다시 정렬합니다.

    주의

    bucket_index_max_shards0 인 경우 이전 릴리스에서 Red Hat Ceph Storage 5.3으로 업그레이드하면 Ceph Object Gateway 버킷의 메타데이터가 손실되어 버킷에 액세스하지 못할 수 있습니다. 따라서 bucket_index_max_shards11 shard로 설정되어 있는지 확인합니다. 그렇지 않은 경우 영역 그룹 수준에서 이 구성을 수정합니다.

    구문

    radosgw-admin bucket reshard --num-shards 11 --bucket BUCKET_NAME

    예제

    [ceph: root@host01 /]# radosgw-admin bucket reshard --num-shards 11 --bucket mybucket

  10. Ansible 관리 노드에 ansible-user 로 로그인합니다.
  11. --extra-vars 옵션을 사용하여 infrastructure-playbooks/rolling_update.yml 플레이북을 업데이트하고 health_osd_check_retrieshealth_osd_check_delay 값을 각각 5030 으로 변경합니다.

    예제

    [root@admin ceph-ansible]# ansible-playbook -i hosts infrastructure-playbooks/rolling_update.yml --extra-vars "health_osd_check_retries=50 health_osd_check_delay=30"

    각 OSD 노드에서 이러한 값은 ceph- anible이 30초(최대 50번)마다 스토리지 클러스터 상태를 확인합니다. 즉 ceph-ansible 은 각 OSD에 대해 최대 25분 정도 기다립니다.

    스토리지 클러스터의 사용된 스토리지 용량에 따라 health_osd_check_retries 옵션 값을 up 또는 down으로 조정합니다. 예를 들어 436TB 중 218TB 또는 스토리지 용량의 50%를 사용하는 경우 health_osd_check_retries 옵션을 50 으로 설정합니다.

    /etc/ansible/hosts 는 Ansible 인벤토리 파일의 기본 위치입니다.

  12. rolling_update.yml 플레이북을 실행하여 스토리지 클러스터를 Red Hat Ceph Storage 4에서 Red Hat Ceph Storage 5로 변환합니다.

    구문

    ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i INVENTORY_FILE

    -vvv 옵션은 업그레이드 프로세스의 자세한 로그를 수집합니다.

    예제

    [ceph-admin@admin ceph-ansible]$ ansible-playbook -vvvv infrastructure-playbooks/rolling_update.yml -i hosts

    중요

    rolling_update.yml 플레이북에 --limit Ansible 옵션을 사용하는 것은 지원되지 않습니다.

  13. Ansible 플레이북 로그 출력을 검토하여 업그레이드 상태를 확인합니다.

검증

  1. 실행 중인 컨테이너를 모두 나열합니다.

    예제

    [root@mon ~]# podman ps

  2. 클러스터의 상태를 확인합니다. MONITOR_ID 를 이전 단계에서 찾은 Ceph Monitor 컨테이너의 이름으로 교체합니다.

    구문

    podman exec ceph-mon-MONITOR_ID ceph -s

    예제

    [root@mon ~]# podman exec ceph-mon-mon01 ceph -s

  3. Ceph 클러스터 데몬 버전을 확인하여 모든 데몬 업그레이드를 확인합니다. MONITOR_ID 를 이전 단계에서 찾은 Ceph Monitor 컨테이너의 이름으로 교체합니다.

    구문

    podman exec ceph-mon-MONITOR_ID ceph --cluster ceph versions

    예제

    [root@mon ~]# podman exec ceph-mon-mon01 ceph --cluster ceph versions

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.