6장. 버그 수정
이 섹션에서는 이 Red Hat Ceph Storage 릴리스에서 수정된 사용자에게 상당한 영향을 미치는 버그에 대해 설명합니다. 또한 섹션에는 이전 버전에서 발견된 수정된 알려진 문제에 대한 설명이 포함되어 있습니다.
6.1. Ceph Ansible 유틸리티
이제 Ceph 클러스터 배포 후 복제 풀의 크기를 수정할 수 있습니다.
이전에는 director를 사용하여 Ceph 클러스터를 배포한 후 복제 풀의 크기를 늘리지 못했습니다. 이 문제는 풀 크기를 사용자 정의하는 작업의 문제로 인해 플레이북을 재실행할 때 실행되지 않았습니다. 이번 업데이트를 통해 이제 클러스터 배포 후 풀 크기를 수정할 수 있습니다.
(BZ#1743242)
Ceph Ansible은 Ceph 대시보드 배포 중에 여러 grafana
인스턴스를 지원
이전 버전에서는 다중 노드 환경에서 ceph-ansible
가 하나의 노드만 지원되어 나머지 노드가 구성되지 않은 상태로 여러 grafana
인스턴스를 구성할 수 없었습니다. 이번 업데이트를 통해 ceph-ansible
은 여러 인스턴스를 지원하며 Ceph 대시보드 배포 중에 모든 Ceph Monitor 노드에 Ceph별 레이아웃을 삽입합니다.
대시보드 기능이 비활성화되면 Ansible purge-cluster.yml
플레이북을 실행하면 더 이상 실패하지 않음
이전에는 다음 오류 메시지와 함께 대시보드 기능이 비활성화되면 purge-cluster-yml
플레이북을 사용하여 클러스터를 제거하는 데 실패했습니다.
registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.1 msg: '[Errno 2] No such file or directory'
이는 dashboard_enabled
변수가 무시되었기 때문에 발생했습니다. 이번 업데이트를 통해 dashboard_enabled
변수가 올바르게 처리되고 purge-cluster.yml
이 성공적으로 실행됩니다.
Red Hat OpenStack Platform의 Red Hat Ceph Storage 설치가 더 이상 실패하지 않음
이전에는 Red Hat OpenStack Platform 16을 사용하여 Red Hat Ceph Storage를 설치하려고 할 때 ceph-ansible
유틸리티가 응답하지 않고 다음과 유사한 오류가 발생했습니다.
'Error: unable to exec into ceph-mon-dcn1-computehci1-2: no container with name or ID ceph-mon-dcn1-computehci1-2 found: no such container'
ceph-ansible
이 handler_osds.yml의 잘못된 노드에서 팩트 container_exec_cmd
값을 읽기 때문에 발생했습니다.
이번 업데이트를 통해 ceph-ansible
은 올바른 노드에서 container_exec_cmd
값을 읽고 설치가 성공적으로 진행됩니다.
Ansible이 완료된 후 norebalance
플래그를 설정 해제합니다.
이전에는 Ansible에서 norebalance
플래그를 설정하지 않았으며 수동으로 설정 해제해야 했습니다. 이번 업데이트를 통해 rolling-update.yml
Ansible 플레이북에서는 완료된 후 norebalance
플래그를 자동으로 설정 해제하고 수동 설정되지 않습니다.
대시보드가 활성화되면 Ansible에서 다중 사이트 Ceph Object Gateway 업그레이드
이전 버전에서는 Red Hat Ceph Storage 대시보드가 활성화되고 Ansible을 사용하여 Red Hat Ceph Storage의 최신 버전으로 업그레이드하려고 하면 다중 사이트 설정에서 보조 Ceph Object Gateway 사이트로 업그레이드할 수 없었습니다. 이 업데이트를 Red Hat Ceph Storage로 업그레이드하면 보조 사이트 업그레이드가 예상대로 작동합니다.
Ceph Ansible은 Ansible 2.9에서 작동합니다.
이전에는 ceph-ansible
버전 4.0 이상에서 Ansible 버전 2.9에서 작동하지 않았습니다. 이 문제는 ceph-validate
역할에서 Ansible 2.9에 대해 ceph-ansible
을 실행할 수 없기 때문에 발생했습니다. 이번 업데이트를 통해 ceph-ansible
은 Ansible 2.9에서 작동합니다.
사용자 지정 소프트웨어 리포지토리를 사용한 Ceph 설치에 더 이상 실패하지 않음
이전에는 사용자 지정 리포지토리를 사용하여 Ceph를 설치할 수 없었습니다. 이 문제는 redhat_custom_repository.yml
파일이 제거되었기 때문에 발생했습니다. 이번 업데이트를 통해 redhat_custom_repository.yml
파일이 포함되고 사용자 지정 리포지토리를 사용하여 Red Hat Ceph Storage를 설치할 수 있습니다.
Red Hat 서명된 패키지만 사용자 지정 소프트웨어 리포지토리를 사용하여 Ceph를 설치할 수 있습니다. 사용자 지정 타사 소프트웨어 리포지토리는 지원되지 않습니다.
(BZ#1808362)
대시보드가 설치되지 않은 경우 ceph-ansible
purge Playbook이 실패하지 않음
이전 버전에서는 대시보드가 배포되지 않은 경우 존재하지 않는 대시보드 관련 리소스를 제거하려고했기 때문에 클러스터를 제거할 때 제거 플레이북이 실패했습니다. 결과적으로 제거 플레이북은 대시보드가 배포되어 제거에 실패했습니다. 이번 업데이트를 통해 배포에 없는 경우 ceph-ansible
이 대시보드 관련 리소스를 제거하지 않고 제거가 성공적으로 완료됩니다.
(BZ#1808988)
외부 Ceph 스토리지 클러스터에서 독립 실행형 nfs-ganesha
데몬을 사용하면 더 이상 배포 중에 인증 키를 복사하지 못합니다.
이전 버전에서는 독립 실행형 nfs-ganesha
데몬과 외부 Ceph 스토리지 클러스터로 구성된 구성에서 Ceph 인증 키가 Ceph Ansible 배포 중에 /etc/ceph에 복사되지 않았습니다.
이번 업데이트를 통해 Ceph 인증 키가 /etc/ceph/ 디렉터리에 복사됩니다.
Ceph Ansible은 초기 설치 후 대시보드 관리자 사용자의 권한을 업데이트
이전에는 ceph-ansible
이 처음 생성된 경우에만 대시보드 사용자의 권한을 설정할 수 있었습니다. 설치 중 원래 설정에서 dashboard_admin_user_ro: false
를 변경한 후 플레이북을 실행하면 사용자의 권한이 업데이트되지 않습니다. Red Hat Ceph Storage 4.1z1 ceph-ansible
은 플레이북의 연속 실행에 대한 대시보드 사용자 권한 변경을 지원하도록 업데이트되었습니다.
docker-to-podman.yml
Playbook은 이제 대시보드 컨테이너를 마이그레이션합니다.
이전 버전에서는 docker-to-podman.yml
플레이북을 실행하면 grafana-server
및 대시보드 컨테이너를 제외하고 docker
에서 podman
으로 모든 데몬을 마이그레이션했습니다. 이번 릴리스에서는 docker-to-podman.yml
을 실행하여 모든 데몬을 성공적으로 마이그레이션합니다.
이전 컨테이너의 스토리지 디렉터리 제거
이전에는 이전 컨테이너의 스토리지 디렉터리가 제거되지 않았습니다. 이로 인해 디스크 사용량이 증가할 수 있습니다. 이는 Red Hat Ceph Storage를 설치하고 제거하고 다시 설치하는 경우 확인할 수 있습니다. Red Hat Ceph Storage 4.1z1에서는 더 이상 사용되지 않는 컨테이너의 스토리지 디렉터리가 제거되고 과도한 디스크 사용량이 발생하지 않습니다.
Red Hat Enterprise Linux 8.1에서 컨테이너화된 클러스터를 4.0에서 4.1로 업그레이드해도 더 이상 실패하지 않음
이전 버전에서는 Red Hat Ceph Storage 클러스터를 4.0에서 4.1로 업그레이드할 때 set_fact ceph_osd_image_repodigest_before_pulling
오류와 함께 업그레이드가 실패할 수 있었습니다. 컨테이너 이미지 태그 업데이트 방법에 문제가 발생하여 ceph-ansible
이 실패할 수 있었습니다. Red Hat Ceph Storage 4.1z1 ceph-ansible
이 업데이트되어 더 이상 실패하지 않고 업그레이드가 예상대로 작동하지 않습니다.
기존 OpenStack 환경에서 Ceph 대시보드 활성화 실패
기존 OpenStack 환경에서 Ceph Manager 대시보드 모듈이 활성화된 후 Ceph 대시보드의 IP 주소 및 포트를 구성할 때 HAProxy 구성과 충돌했습니다. 이 충돌을 방지하려면 Ceph Manager 대시보드 모듈을 활성화하기 전에 Ceph 대시보드의 IP 주소와 포트를 구성합니다.
Ceph Object Gateway 보조 사이트를 배포할 때 Red Hat Ceph Storage 대시보드가 실패합니다.
이전에는 Ceph Ansible에서 radosgw-admin 사용자 create
명령을 실행한 경우 명령에서 오류를 반환했기 때문에 Red Hat Ceph Storage 대시보드가 Ceph Object Gateway 다중 사이트 배포에 보조 사이트를 배포하지 못했습니다. 이번 릴리스에서는 배포 프로세스의 Ceph Ansible 작업이 두 가지 작업으로 나뉩니다. 이렇게 하면 Red Hat Ceph Storage 대시보드가 Ceph Object Gateway 보조 사이트를 성공적으로 배포할 수 있습니다.
--limit
옵션으로 플레이북을 실행할 때 Ceph File System Metadata Server 설치가 실패합니다.
일부 사실은 첫 번째 Ceph 모니터에 설정되지 않았지만 이러한 사실은 모든 Ceph 모니터 노드에 설정되었습니다. Ceph Monitor가 배치에 포함되지 않은 경우 --limit
옵션을 사용하여 플레이북을 실행할 때 Ceph Monitor에 이러한 팩트가 설정되지 않았습니다. 이로 인해 Ceph 모니터에 작업에서 사용되는 이러한 팩트가 있는 경우 플레이북이 실패합니다. 이번 릴리스에서는 플레이북이 --limit
옵션을 사용하는지 여부를 Ceph Monitor에서 설정합니다.
업그레이드에 실패할 때 새 Ceph Ojbect Gateway 인스턴스 추가
radosgw_frontend_port
옵션은 두 개 이상의 Ceph Object Gateway 인스턴스를 고려하지 않았으며 모든 인스턴스에 포트 8080
을 구성했습니다. 이번 릴리스에서는 각 Ceph Object Gateway 인스턴스에 대해 radosgw_frontend_port
옵션이 증가하여 Ceph Object Gateway 인스턴스를 두 개 이상 사용할 수 있습니다.
컨테이너화된 환경에서 FileStore를 사용하는 경우 Ceph Ansible의 shrink-osd.yml
플레이북이 실패합니다.
Ceph Ansible의 shrink-osd.yml
플레이북에 기본값이 누락되어 컨테이너화된 환경에서 FileStore가 지원하는 Ceph OSD를 축소할 때 오류가 발생했습니다. ceph-disk
및 dmcrypt
를 사용하여 이전에 준비된 Ceph OSD는 해당 Ceph OSD 파일에 정의되지 않은 암호화된
키를 남겨 두었습니다. 이번 릴리스에서는 기본값이 추가되어 컨테이너화된 환경에서 dmcrypt
를 사용하여 준비된 Ceph OSD에서 Ceph Ansible shrink-osd.yml
플레이북을 실행할 수 있습니다.
HTTPS를 사용하면 Prometheus 및 경고 관리자에 대한 액세스 권한이 중단됩니다.
dashboard_protocol
옵션을 https
로 설정하면 Red Hat Ceph Storage 대시보드가 TLS를 기본적으로 지원하지 않는 Prometheus API를 시도하고 액세스했습니다. 이번 릴리스에서는 dashboard_protocol
옵션을 https
로 설정할 때 Prometheus 및 경고 관리자가 HTTP 프로토콜을 사용하도록 강제 적용합니다.
Ceph Ansible shrink-osd.yml
플레이북은 Ceph OSD를 올바르게 정리하지 않습니다.
ceph_volume
모듈에서 수행한 zap
작업은 osd_fsid
매개변수를 처리하지 않습니다. 이로 인해 논리 볼륨을 기본 장치에 두어 Ceph OSD가 부적절하게 적용되었습니다. 이번 릴리스에서는 zap
작업이 osd_fsid
매개변수를 올바르게 처리하고 축소 후 Ceph OSD를 올바르게 정리할 수 있습니다.
여러 스토리지 클러스터가 있는 경우 Red Hat Ceph Storage 롤링 업데이트가 실패합니다.
여러 스토리지 클러스터가 구성된 경우 Ceph Ansible rolling_update.yml
플레이북을 실행하면 스토리지 클러스터 이름을 지정할 수 없기 때문에 롤링 업데이트가 실패합니다. 이번 릴리스에서는 rolling_update.yml
플레이북에서는 --cluster
옵션을 사용하여 특정 스토리지 클러스터 이름을 허용합니다.
롤링 업데이트를 수행할 때 hosts
필드에 잘못된 값이 있습니다
Red Hat Ceph Storage 롤링 업데이트는 Ceph Ansible rolling_update.yml
플레이북의 hosts
값 평가에서 변경된 구문으로 인해 실패합니다. 이번 릴리스에서는 hosts
필드가 플레이북에 지정되면 코드에 대한 수정으로 구문을 올바르게 업데이트합니다.
rolling_update.yml
플레이북을 실행해도 스토리지 클러스터 fsid
가 검색되지 않습니다.
rolling_update.yml
플레이북을 실행하고 Ceph Ansible 인벤토리에 Ceph Monitor 노드가 정의되어 있지 않은 경우(예: 외부 시나리오에서는 스토리지 클러스터 fsid
가 검색되지 않습니다. 이로 인해 rolling_update.yml
플레이북이 실패합니다. 이번 릴리스에서는 인벤토리에 Ceph Monitor가 없는 경우 fsid
검색을 건너뛰어 Ceph Monitor가 없는 경우 rolling_update.yml
플레이북을 실행할 수 있습니다.