검색

4.3. 스토리지 클러스터 업그레이드

download PDF

절차

Ansible 관리 노드의 다음 명령을 사용합니다.

  1. root 사용자로 /usr/share/ceph-ansible/ 디렉터리로 이동합니다.

    [root@admin ~]# cd /usr/share/ceph-ansible/
  2. Red Hat Ceph Storage 버전 3.x에서 최신 버전으로 업그레이드할 때 이 단계를 건너뜁니다. group_vars/all.ymlgroup_vars/osds.yml 파일을 백업합니다.

    [root@admin ceph-ansible]# cp group_vars/all.yml group_vars/all_old.yml
    [root@admin ceph-ansible]# cp group_vars/osds.yml group_vars/osds_old.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml group_vars/clients_old.yml
  3. Red Hat Ceph Storage 버전 3.x에서 최신 버전으로 업그레이드할 때 이 단계를 건너뜁니다. Red Hat Ceph Storage 2.x에서 3.x로 업그레이드할 때 각각 group_vars/all.yml.sample,group_vars/osds.yml.samplegroup_vars/clients.yml.sample 파일의 새 사본을 생성하고 group_vars/all.yml, group_vars/osds.yml.yml,group_vars/osds.yml.yml.ymls .yml 파일의 새 사본을 각각 생성합니다. 를 열고 그에 따라 편집합니다. 자세한 내용은 부록 A. 버전 2와 3의 Ansible 변수 변경1.2절. “컨테이너에 Red Hat Ceph Storage 클러스터 설치” 를 참조하십시오.

    [root@admin ceph-ansible]# cp group_vars/all.yml.sample group_vars/all.yml
    [root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.yml
  4. Red Hat Ceph Storage 버전 3.x에서 최신 버전으로 업그레이드할 때 이 단계를 건너뜁니다. Red Hat Ceph Storage 2.x에서 3.x로 업그레이드하는 경우 group_vars/clients.yml 파일을 열고 다음 줄의 주석을 제거합니다.

    keys:
      - { name: client.test, caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
    1. client.test 를 실제 클라이언트 이름으로 바꾸고 클라이언트 정의 행에 클라이언트 키를 추가합니다. 예를 들면 다음과 같습니다.

      key: "ADD-KEYRING-HERE=="

      이제 전체 예제는 다음과 유사합니다.

      - { name: client.test, key: "AQAin8tUMICVFBAALRHNrV0Z4MXupRw4v9JQ6Q==", caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
      참고

      클라이언트 키를 가져오려면 ceph auth get-or-create 명령을 실행하여 named 클라이언트의 키를 확인합니다.

  5. 2.x에서 3.x로 업그레이드할 때 group_vars/all.yml 파일에서 ceph_docker_image 매개 변수가 Ceph 3 컨테이너 버전을 가리키도록 변경합니다.

    ceph_docker_image: rhceph/rhceph-3-rhel7
  6. fetch_directory 매개변수를 group_vars/all.yml 파일에 추가합니다.

    fetch_directory: <full_directory_path>

    교체:

    • Ansible 사용자의 홈 디렉터리와 같은 쓰기 가능한 위치가 있는 <full_directory_path> 초기 스토리지 클러스터 설치에 사용된 기존 경로를 제공합니다.

    기존 경로가 손실되거나 누락된 경우 다음을 먼저 수행합니다.

    1. 기존 group_vars/all.yml 파일에 다음 옵션을 추가합니다.

      fsid: <add_the_fsid>
      generate_fsid: false
    2. take-over-existing-cluster.yml Ansible 플레이북을 실행합니다.

      [user@admin ceph-ansible]$ cp infrastructure-playbooks/take-over-existing-cluster.yml .
      [user@admin ceph-ansible]$ ansible-playbook take-over-existing-cluster.yml
  7. 업그레이드하려는 클러스터에 Ceph Object Gateway 노드가 포함된 경우 radosgw_interface 매개변수를 group_vars/all.yml 파일에 추가합니다.

    radosgw_interface: <interface>

    교체:

    • Ceph Object Gateway 노드가 수신 대기하는 인터페이스가 <interface> 입니다.
  8. Red Hat Ceph Storage 3.2부터 기본 OSD 오브젝트 저장소는 BlueStore입니다. 기존의 OSD 오브젝트 저장소를 유지하려면 osd_objectstore 옵션을 group_vars/all.yml 파일의 filestore 로 명시적으로 설정해야 합니다.

    osd_objectstore: filestore
    참고

    osd_objectstore 옵션이 filestore 로 설정된 경우 OSD를 교체하면 BlueStore 대신 FileStore를 사용합니다.

  9. /etc/ansible/hosts 에 있는 Ansible 인벤토리 파일에서 [mgrs] 섹션에 Ceph Manager(ceph-mgr) 노드를 추가합니다. Ceph Manager 데몬을 모니터 노드와 분리합니다. 버전 3.x에서 최신 버전으로 업그레이드할 때 이 단계를 건너뜁니다.

    [mgrs]
    <monitor-host-name>
    <monitor-host-name>
    <monitor-host-name>
  10. infrastructure-playbooks 디렉터리의 rolling_update.yml 을 현재 디렉터리로 복사합니다.

    [root@admin ceph-ansible]# cp infrastructure-playbooks/rolling_update.yml .
  11. /var/log/ansible/ 디렉터리를 생성하고 ansible 사용자에게 적절한 권한을 할당합니다.

    [root@admin ceph-ansible]# mkdir /var/log/ansible
    [root@admin ceph-ansible]# chown ansible:ansible  /var/log/ansible
    [root@admin ceph-ansible]# chmod 755 /var/log/ansible
    1. /usr/share/ceph-ansible/ansible.cfg 파일을 편집하여 다음과 같이 log_path 값을 업데이트합니다.

      log_path = /var/log/ansible/ansible.log
  12. Ansible 사용자로 Playbook을 실행합니다.

    [user@admin ceph-ansible]$ ansible-playbook rolling_update.yml

    Ansible 인벤토리 파일의 특정 노드 그룹에만 플레이북을 사용하려면 --limit 옵션을 사용합니다. 자세한 내용은 1.8절. “제한 옵션 이해”의 내용을 참조하십시오.

  13. RBD 미러링 데몬 노드에 root 사용자로 로그인한 동안 rbd-mirror 를 수동으로 업그레이드합니다.

    # yum upgrade rbd-mirror

    데몬을 다시 시작하십시오.

    # systemctl restart  ceph-rbd-mirror@<client-id>
  14. 클러스터 상태가 OK인지 확인합니다.

    1. root 사용자로 모니터 노드에 로그인하고 실행 중인 모든 컨테이너를 나열합니다.

      [root@monitor ~]# docker ps
    2. 클러스터 상태가 OK인지 확인합니다.

      [root@monitor ~]# docker exec ceph-mon-<mon-id> ceph -s

      교체:

      • 첫 번째 단계에서 찾은 Monitor 컨테이너의 이름이 있는 <mon-id> 입니다.

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

      [root@monitor ~]# docker exec ceph-mon-monitor ceph -s
  15. OpenStack 환경에서 작업하는 경우 풀에 RBD 프로필을 사용하도록 모든 KnativeServing 사용자를 업데이트합니다. 다음 명령을 root 사용자로 실행해야 합니다.

    • Glance 사용자

      ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=<glance-pool-name>'

      예제

      [root@monitor ~]# ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=images'

    • Cinder 사용자

      ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=<cinder-volume-pool-name>, profile rbd pool=<nova-pool-name>, profile rbd-read-only pool=<glance-pool-name>'

      예제

      [root@monitor ~]# ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images'

    • OpenStack 일반 사용자

      ceph auth caps client.openstack mon 'profile rbd' osd 'profile rbd-read-only pool=<cinder-volume-pool-name>, profile rbd pool=<nova-pool-name>, profile rbd-read-only pool=<glance-pool-name>'

      예제

      [root@monitor ~]# ceph auth caps client.openstack mon 'profile rbd' osd 'profile rbd-read-only pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images'

      중요

      라이브 클라이언트 마이그레이션을 수행하기 전에 이러한 CAPS 업데이트를 수행합니다. 이를 통해 클라이언트는 메모리에서 실행되는 새 라이브러리를 사용하므로 이전 CAPS 설정이 캐시에서 삭제되고 새 RBD 프로필 설정을 적용할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.