7.2. 업그레이드 준비
Red Hat Ceph Storage 클러스터 업그레이드를 시작하기 전에 완료해야 할 사항이 몇 가지 있습니다. 이 단계는 하나 이상의 다른 항목에 지정하지 않는 한 Red Hat Ceph Storage 클러스터의 베어 메탈 및 컨테이너 배포에 모두 적용됩니다.
최신 Red Hat Ceph Storage 4 버전으로만 업그레이드할 수 있습니다. 예를 들어 버전 4.1을 사용할 수 있는 경우 3에서 4.0으로 업그레이드할 수 없습니다. 4.1로 직접 이동해야 합니다.
Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4로 업그레이드한 후 FileStore 오브젝트 저장소를 사용하는 경우 BlueStore로 마이그레이션해야 합니다.
ceph-ansible
을 사용하여 Red Hat Ceph Storage를 업그레이드하는 동시에 Red Hat Enterprise Linux 7을 Red Hat Enterprise Linux 8로 업그레이드할 수는 없습니다. Red Hat Enterprise Linux 7을 그대로 유지해야 합니다. 운영 체제를 업그레이드하려면 Red Hat Ceph Storage 클러스터 및 운영 체제 수동 업그레이드를 참조하십시오.
Red Hat Ceph Storage 4.2z2 이상 버전에서는 기본적으로 bluefs_buffered_io
옵션이 True
로 설정됩니다. 이 옵션을 사용하면 BlueFS에서 버퍼링된 읽기를 수행할 수 있으며 커널 페이지 캐시가 MigsDB 블록 읽기와 같은 읽기에 대한 보조 캐시 역할을 할 수 있습니다. 예를 들어, OMAP 반복 중에 모든 블록을 보관할 수 있을 만큼 충분히 크지 않은 경우 디스크 대신 페이지 캐시에서 해당 블록을 읽을 수 있습니다. 이로 인해 osd_memory_target
이 블록 캐시의 모든 항목을 유지하기에 너무 작으면 성능이 크게 향상될 수 있습니다. 현재 bluefs_buffered_io
를 활성화하고 시스템 수준 스왑을 비활성화하면 성능이 저하됩니다.
사전 요구 사항
- 스토리지 클러스터의 모든 노드에 대한 루트 수준 액세스.
- 스토리지 클러스터의 모든 노드의 시스템 클럭이 동기화됩니다. 모니터 노드가 동기화되지 않으면 업그레이드 프로세스가 제대로 완료되지 않을 수 있습니다.
- 버전 3에서 업그레이드하는 경우 버전 3 클러스터는 Red Hat Ceph Storage 3의 최신 버전으로 업그레이드 됩니다.
버전 4로 업그레이드하기 전에 Prometheus 노드 내보내기 서비스가 실행 중인 경우 서비스를 중지합니다.
예제
[root@mon ~]# systemctl stop prometheus-node-exporter.service
중요이는 Red Hat Ceph Storage 향후 릴리스에서 수정될 알려진 문제입니다. 이 문제에 대한 자세한 내용은 Red Hat Knowledgebase 문서 를 참조하십시오.
참고업그레이드 중 인터넷에 액세스할 수 없는 베어 메탈 또는 컨테이너 Red Hat Ceph Storage 클러스터 노드의 경우, Red Hat Ceph Storage 노드를 CDN에 등록하고 Red Hat Ceph Storage 설치 가이드 의 서브스크립션 연결 섹션의 절차에 따라 다음 절차를 따르십시오.
절차
-
스토리지 클러스터의 모든 노드에
root
사용자로 로그인합니다. - Ceph 노드가 Red Hat CDN(Content Delivery Network)에 연결되어 있지 않은 경우 ISO 이미지를 사용하여 Red Hat Ceph Storage의 최신 버전으로 로컬 리포지토리를 업데이트하여 Red Hat Ceph Storage를 업그레이드할 수 있습니다.
Red Hat Ceph Storage를 버전 3에서 버전 4로 업그레이드하는 경우 기존 Ceph 대시보드 설치를 제거합니다.
Ansible 관리 노드에서
cephmetrics-ansible
디렉터리로 변경합니다.[root@admin ~]# cd /usr/share/cephmetrics-ansible
purge.yml
플레이북을 실행하여 기존 Ceph 대시보드 설치를 제거합니다.[root@admin cephmetrics-ansible]# ansible-playbook -v purge.yml
Red Hat Ceph Storage를 버전 3에서 버전 4로 업그레이드하는 경우 Ansible 관리 노드에서 Ceph 및 Ansible 리포지토리를 활성화합니다.
Red Hat Enterprise Linux 7
[root@admin ~]# subscription-manager repos --enable=rhel-7-server-rhceph-4-tools-rpms --enable=rhel-7-server-ansible-2.9-rpms
Red Hat Enterprise Linux 8
[root@admin ~]# subscription-manager repos --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms --enable=ansible-2.9-for-rhel-8-x86_64-rpms
Ansible 관리 노드에서 최신 버전의
ansible
및ceph-ansible
패키지가 설치되어 있는지 확인합니다.Red Hat Enterprise Linux 7
[root@admin ~]# yum update ansible ceph-ansible
Red Hat Enterprise Linux 8
[root@admin ~]# dnf update ansible ceph-ansible
infrastructure-playbooks/rolling_update.yml
플레이북을 편집하고health_osd_check_retries
및health_osd_check_delay
값을 각각50
및30
으로 변경합니다.health_osd_check_retries: 50 health_osd_check_delay: 30
각 OSD 노드에서 이러한 값은 Ansible이 최대 25분 동안 기다린 후 30초마다 스토리지 클러스터 상태를 확인하고 업그레이드 프로세스를 계속하기 전에 대기합니다.
참고스토리지 클러스터의 사용된 스토리지 용량에 따라
health_osd_check_retries
옵션 값을 up 또는 down으로 조정합니다. 예를 들어, 436TB 중 218TB를 사용하는 경우 기본적으로 스토리지 용량의 50%를 사용하는 경우health_osd_check_retries
옵션을50
으로 설정합니다.업그레이드하려는 스토리지 클러스터에
배타적 잠금
기능을 사용하는 Ceph Block Device 이미지가 포함된 경우 모든 Ceph 블록 장치 사용자에게 블랙리스트를 지정할 수 있는 권한이 있는지 확인하십시오.ceph auth caps client.ID mon 'allow r, allow command "osd blacklist"' osd 'EXISTING_OSD_USER_CAPS'
Cockpit을 사용하여 스토리지 클러스터를 원래 설치한 경우, Cockpit이 생성한 인벤토리 파일에
/usr/share/ceph-ansible
디렉터리에 심볼릭 링크를 만듭니다./usr/share/ansible-runner-service/inventory/hosts
:/usr/share/ceph-ansible
디렉토리로 변경합니다.# cd /usr/share/ceph-ansible
심볼릭 링크를 만듭니다.
# ln -s /usr/share/ansible-runner-service/inventory/hosts hosts
ceph-ansible
을 사용하여 클러스터를 업그레이드하려면etc/ansible/hosts
디렉터리에hosts
인벤토리 파일로 심볼릭 링크를 생성합니다.# ln -s /etc/ansible/hosts hosts
Cockpit을 사용하여 스토리지 클러스터를 원래 설치한 경우 Cockpit 생성된 SSH 키를 Ansible 사용자의
~/.ssh
디렉터리에 복사합니다.키를 복사합니다.
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/ANSIBLE_USERNAME/.ssh/id_rsa
ANSIBLE_USERNAME 을 일반적으로
admin
의 사용자 이름으로 바꿉니다.예제
# cp /usr/share/ansible-runner-service/env/ssh_key.pub /home/admin/.ssh/id_rsa.pub # cp /usr/share/ansible-runner-service/env/ssh_key /home/admin/.ssh/id_rsa
키 파일에 적절한 소유자, 그룹 및 권한을 설정합니다.
# chown ANSIBLE_USERNAME:_ANSIBLE_USERNAME_ /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chown ANSIBLE_USERNAME:_ANSIBLE_USERNAME_ /home/ANSIBLE_USERNAME/.ssh/id_rsa # chmod 644 /home/ANSIBLE_USERNAME/.ssh/id_rsa.pub # chmod 600 /home/ANSIBLE_USERNAME/.ssh/id_rsa
ANSIBLE_USERNAME 을 일반적으로
admin
의 사용자 이름으로 바꿉니다.예제
# chown admin:admin /home/admin/.ssh/id_rsa.pub # chown admin:admin /home/admin/.ssh/id_rsa # chmod 644 /home/admin/.ssh/id_rsa.pub # chmod 600 /home/admin/.ssh/id_rsa
추가 리소스
- 자세한 내용은 Red Hat Ceph Storage 리포지토리 활성화를 참조하십시오.
- 클럭 동기화 및 클럭 불일치에 대한 자세한 내용은 Red Hat Ceph Storage 문제 해결 가이드의 Clock Skew 섹션을 참조하십시오.