릴리스 노트
Red Hat Ceph Storage 4.2 릴리스 노트
초록
1장. 소개
Red Hat Ceph Storage는 Ceph 스토리지 시스템의 안정적인 버전을 Ceph 관리 플랫폼, 배포 유틸리티 및 지원 서비스와 결합하는 대규모 확장이 가능한 오픈 소프트웨어 정의 스토리지 플랫폼입니다.
Red Hat Ceph Storage 문서는 https://access.redhat.com/documentation/en/red-hat-ceph-storage/ 에서 확인할 수 있습니다.
2장. 감사 인사
Red Hat Ceph Storage 버전 4.2에는 Red Hat Ceph Storage 팀의 많은 기여가 포함되어 있습니다. 또한 Ceph 프로젝트는 Ceph 커뮤니티의 개인 및 조직의 기여도와 품질 및 수량에서 놀라운 성장을 경험하고 있습니다. Red Hat Ceph Storage 팀의 모든 구성원, Ceph 커뮤니티의 개별 기여자, 그리고 다음과 같은 조직의 기여에 국한되지는 않지만 이에 국한되지는 않습니다.
- Intel
- Fujitsu
- UnitedStack
- Yahoo
- Ubuntu Kylin
- Mellanox
- CERN
- Deutsche Telekom
- Mirantis
- SanDisk
- SUSE
3장. 새로운 기능
이 섹션에는 Red Hat Ceph Storage 릴리스에 도입된 모든 주요 업데이트, 개선 사항 및 새로운 기능이 나열되어 있습니다.
3.1. Ceph Ansible 유틸리티
Ceph-ansible Playbook 은 여러 노드에서 로그를 수집합니다.
이번 릴리스에서는 Playbook이 대규모 클러스터의 여러 노드에서 자동으로 로그를 수집합니다.
Ceph-ansible 은 두 사이트 간에 추가 연결 확인을 수행합니다.
이번 업데이트를 통해 ceph-ansible 은 영역 가져오기 전에 두 사이트 간에 추가 연결 확인을 수행합니다.
제거 플레이북은 사용되지 않는 Ceph 파일 제거
이번 릴리스에서는 Red Hat Ceph Storage 클러스터를 제거한 후 제거 클러스터 Playbook은 grafana-server 노드에서 사용되지 않은 Ceph 관련 파일을 모두 제거합니다.
--skip-tags wait_all_osds_up 옵션을 사용하여 모든 OSD가 가동될 때까지 검사를 건너뜁니다.
이번 릴리스에서는 Ansible 런타임에서 --skip-tags wait_all_osds_up 옵션을 사용하여 스토리지 클러스터를 업그레이드하는 동안 이 검사를 건너뛰어 디스크 장애가 발생할 때 rolling_update.yml 플레이북이 실패하지 않도록 할 수 있습니다.
기존 풀의 crush_rule 을 업데이트할 수 있습니다.
이전에는 특정 풀에 대한 crush_rule 값이 풀을 만드는 동안 설정되었으며 나중에 업데이트할 수 없었습니다. 이번 릴리스에서는 기존 풀에 대해 crush_rule 값을 업데이트할 수 있습니다.
RADOS Gateway 풀에 사용자 정의 crush_rule 를 설정할 수 있습니다.
이 릴리스에서는 RADOS 게이트웨이 풀에 OpenStack, MDS, Client와 같은 다른 풀 외에도 사용자 정의 crush_rule 값을 가질 수 있습니다.
HTTP 프록시 뒤의 컨테이너 레지스트리의 프록시 문제를 해결하기 위해 ceph_docker_http_proxy 및 ceph_docker_https_proxy 를 설정합니다.
이전에는 /etc/profile.d 디렉토리에 정의된 환경 변수가 로드되지 않아 로그인 및 가져오기 레지스트리 작업이 실패했습니다. 이번 업데이트를 통해 ceph_docker_http_proxy 및/또는 ceph_docker_https_proxy 환경 변수를 설정하면 HTTP 프록시 뒤의 컨테이너 레지스트리가 예상대로 작동합니다.
Ceph Ansible은 Ansible 2.9에서만 작동합니다.
이전에는 ceph-ansible 이 마이그레이션 솔루션으로 Ansible의 2.8 및 2.9 버전을 지원했습니다. 이번 릴리스에서는 ceph-ansible 이 Ansible 2.9만 지원합니다.
대시보드는 기본적으로 HTTPS로 설정
이전에는 대시보드가 http 로 설정되었습니다. 이번 릴리스에서는 대시보드가 기본적으로 https 로 설정됩니다.
플레이북을 종료하기 전에 ceph-mon 서비스가 마스킹되지 않음
이전 버전에서는 오류가 발생하는 동안 ceph-mon systemd 서비스가 마스킹되어 플레이북이 실패하여 서비스가 수동으로 다시 시작되지 않았습니다. 이번 릴리스에서는 오류가 발생한 동안 플레이북을 종료하기 전에 ceph-mon 서비스가 마스킹되지 않으며, 이제 롤링 업데이트 플레이북을 재시작하기 전에 ceph-mon 서비스를 수동으로 다시 시작할 수 있습니다.
3.2. Ceph 관리 대시보드
Red Hat Ceph Storage 대시보드에서 사용자의 버킷 할당량 사용량 보기
이번 릴리스에서는 Red Hat Ceph Storage Dashboard에 현재 크기, 사용된 백분율, 오브젝트 수를 포함하여 사용자 버킷 할당량 사용이 표시됩니다.
3.3. Ceph 파일 시스템
mgr/volumes CLI를 사용하여 vGPU 인증 ID를 나열할 수 있습니다.
이전 버전에서는 ceph_volume_client 인터페이스를 사용하여 vGPU 인증 ID를 나열합니다. 이 인터페이스는 이제 더 이상 사용되지 않습니다.
이번 릴리스에서는 Manila와 같은 소비자에서 mgr/volume 인터페이스를 사용하여 하위 볼륨에 대한 액세스 권한이 부여된 RuntimeClass 인증 ID를 나열할 수 있습니다.
구문
ceph fs subvolume authorized_list _VOLUME_NAME_ _SUB_VOLUME_NAME_ [--group_name=_GROUP_NAME_]
3.4. Ceph Manager 플러그인
내부 python to C++ 인터페이스가 Ceph 관리자 성능을 개선하도록 수정
이전에는 pg_dump 가 모든 정보를 제공했기 때문에 Ceph 관리자의 성능에 영향을 미쳤습니다. 이번 릴리스에서는 내부 python to C++ 인터페이스가 수정되고, 모듈은 pg_ready,pg_stats,pool_stats, 'osd_ping_times'에 대한 정보를 제공합니다.
progress 모듈을 해제할 수 있습니다.
이전에는 always-on 관리자 모듈이므로 progress 모듈을 해제할 수 없었습니다. 이번 릴리스에서는 에서 ceph 진행 상황을 사용하여 ceph 진행 상황을 끄고 켜서 progress 모듈을 해제할 수 있습니다.
3.5. Ceph Object Gateway
버킷 인덱스의 기본 shard 요청인 rgw_bucket_index_max_aio 에서 Ceph Object Gateway의 기본 shard 요청이 128으로 증가했습니다.
이전에는 버킷 인덱스의 미해결 shard 요청이 8개로 제한되어 목록 버킷을 사용하여 성능이 저하되었습니다. 이번 릴리스에서는 버킷 인덱스의 기본 shard 요청 수인 rgw_bucket_index_max_aio 가 8에서 128으로 증가하여 버킷 목록 성능이 향상되었습니다.
이제 클러스터 로그 정보에는 버킷의 대기 시간 정보가 포함됩니다.
이전에는 로그의 클러스터 정보가 버킷 요청에 대한 대기 시간을 제공했지만 각 버킷에 대한 대기 시간 정보를 지정하지 않았습니다. 이번 릴리스에서는 로그의 각 행에 버킷 이름, 오브젝트 이름, 요청 ID, 작업 시작 시간, 작업 이름이 포함됩니다.
이번 개선된 기능을 통해 고객은 로그를 구문 분석할 때 이 정보를 더 쉽게 수집할 수 있습니다. 작업의 대기 시간을 계산하려면 awk 스크립트를 사용하여 작업이 시작된 시점부터 로그 메시지 시간을 뺀 것입니다.
Ceph Object Gateway 로그에 Beast의 액세스 로그가 포함되어 있습니다.
이번 릴리스에서는 프런트 엔드 웹 서버 Beast에 이제 Ceph Object Gateway 로그에 Apache 스타일 액세스 로그 줄이 포함됩니다. 이 로그 업데이트는 연결 및 클라이언트 네트워크 문제를 진단하는 데 도움이 됩니다.
Beast 프론트 엔드에 대한 명시적 요청 시간 초과
이전에는 대기 시간이 많은 네트워크를 통해 연결된 클라이언트와 같은 느린 클라이언트 연결이 유휴 상태로 유지되면 삭제될 수 있었습니다.
이번 릴리스에서는 /etc/ceph.conf 의 새 request_timeout_ms 옵션에 Beast 프런트 엔드에 대한 명시적 타임아웃을 설정하는 기능이 추가되었습니다. request_timeout_ms 의 기본값은 65초입니다.
더 큰 요청 시간 제한을 설정하면 Ceph Object Gateway가 속도가 느린 클라이언트의 허용성을 높이며 연결이 줄어들 수 있습니다.
누락된 데이터가 있는 RGW 오브젝트 나열
이전 버전에서는 데이터가 잘못 삭제 된 RGW 개체가 관리자에게 알 수 없으므로이 문제를 해결하는 가장 좋은 방법을 결정할 수 없었습니다. 이번 릴리스에서는 클러스터 관리자가 rgw-gap-list 를 사용하여 누락된 데이터가 있을 수 있는 후보 RGW 오브젝트를 나열할 수 있습니다.
3.6. 다중 사이트 Ceph 개체 게이트웨이
데이터 동기화 로깅 처리 지연
이전에는 데이터 동기화 로깅이 로그 항목의 큰 백로그 처리를 지연할 수 있었습니다.
이번 릴리스에서는 데이터 동기화에 버킷 동기화 상태에 대한 캐싱이 포함됩니다. 백로그가 있을 때 캐시를 추가하면 중복된 datalog 항목을 처리할 수 있습니다.
데이터 동기화 로깅 처리 지연
이전에는 데이터 동기화 로깅이 로그 항목의 큰 백로그 처리를 지연할 수 있었습니다.
이번 릴리스에서는 데이터 동기화에 버킷 동기화 상태에 대한 캐싱이 포함됩니다. 백로그가 있을 때 캐시를 추가하면 중복된 datalog 항목을 처리할 수 있습니다.
이제 다중 사이트 동기화 로깅을 사용하여 RADOS 데이터 오브젝트에 로깅을 오프로드할 수 있습니다.
이전에는 다중 사이트 메타데이터 및 데이터 로깅 구성에서는 OMAP 데이터 로그를 사용했습니다. 이번 릴리스에서는 FIFO 데이터 로깅을 사용할 수 있습니다. 녹색 필드 배포와 함께 FIFO를 사용하려면 config 옵션 rgw_default_data_log_backing을 fifo로 설정합니다.
구성 값은 대소문자를 구분합니다. fifo 를 소문자로 사용하여 구성 옵션을 설정합니다.
사이트에서 사용하는 데이터 로그 백업을 변경하려면 rados gw-admin --log-type fifo datalog 유형.
3.7. RADOS
Ceph directorenger 프로토콜이 msgr v2.1로 수정되었습니다.
이번 릴리스에서는 새로운 버전의 Ceph directorenger 프로토콜인 msgr v2.1이 구현되어 있으며 이는 이전 버전인 msgr v2.0과 함께 제공된 여러 보안, 무결성 및 잠재적인 성능 문제를 해결합니다. 데몬 및 클라이언트 모두 모든 Ceph 엔티티는 기본적으로 msgr v2.1입니다.
Ceph 상태 세부 정보는 클러스터 로그에 기록됩니다.
이전에는 클러스터 로그에 Ceph 상태 세부 정보가 없으므로 문제의 근본 원인을 확인하기 어려웠습니다. 이번 릴리스에서는 Ceph 상태 세부 정보가 클러스터 로그에 기록되어 클러스터에서 발생할 수 있는 문제를 검토할 수 있습니다.
PG 제거 코드의 효율성 개선
이전에는 모든 전달의 배치 그룹(PG)에서 마지막으로 삭제된 오브젝트에 대한 포인터를 유지하지 않아 코드가 비효율적이어서 모든 개체에 대한 불필요한 반복이 발생했습니다. 이번 릴리스에서는 클라이언트 I/O에 미치는 영향을 줄인 PG 삭제 성능이 향상되었습니다. osd_delete_sleep_sd 및 osd_delete_sleep_hybrid 매개변수의 기본값은 1 초입니다.
3.8. RADOS 블록 장치(RBD)
새로운 옵션 -o noudev 를 사용하여 rbd 커널 클라이언트의 사용자 지정 네트워크 네임스페이스에서 명령을 실행
이전 버전에서는 rbd 맵과 rbd 와 같은 명령이 rbd 커널 클라이언트의 사용자 지정 네트워크 네임스페이스에서 매핑되지 않은 경우 수동 개입까지 중단되었습니다. 이번 릴리스에서는 rbd map -o noudev 및 rbd unmap -o noudev 와 같은 명령에 o -noudev 옵션을 추가하면 예상대로 작동합니다. 이는 OCP의 네트워킹에 기본 OpenShift SDN 대신 Multus를 사용할 때 특히 유용합니다.
4장. 기술 프리뷰
이 섹션에서는 Red Hat Ceph Storage 릴리스에 소개되거나 업데이트된 기술 프리뷰 기능에 대해 설명합니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원하지 않으며, 기능상 완전하지 않을 수 있어 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능 지원 범위에 대한 자세한 내용은 https를 참조하십시오.
4.1. 블록 장치(RBD)
RBD 이미지를 NBD 이미지에 매핑
rbd-nbd 유틸리티는 RADOS Block Device(RBD) 이미지를NBD(Network Block Device)에 매핑하고 Ceph 클라이언트가 Kubernetes 환경의 볼륨 및 이미지에 액세스할 수 있도록 합니다. rbd-nbd 를 사용하려면 rbd-nbd 패키지를 설치합니다. 자세한 내용은 rbd-nbd(7) 매뉴얼 페이지를 참조하십시오.
4.2. 오브젝트 게이트웨이
개체 게이트웨이 아카이브 사이트
이번 릴리스에서는 아카이브 사이트가 기술 프리뷰로 지원됩니다. 아카이브 사이트를 사용하면 아카이브 영역과 연결된 게이트웨이를 통해서만 제거할 수 있는 S3 오브젝트 버전 기록을 보유할 수 있습니다. 다중 영역 구성에 아카이브 영역을 포함하면 하나의 영역에서 S3 오브젝트 기록의 유연성을 유지하면서 버전 S3 오브젝트의 복제본이 나머지 영역에서 사용하는 공간을 절약할 수 있습니다.
5장. 사용되지 않는 기능
이 섹션에서는 Red Hat Ceph Storage의 이번 릴리스까지 모든 마이너 릴리스에서 더 이상 사용되지 않는 기능에 대한 개요를 제공합니다.
우분투는 더 이상 지원되지 않습니다.
Ubuntu에 Red Hat Ceph Storage 4 클러스터를 설치하는 것은 더 이상 지원되지 않습니다. Red Hat Enterprise Linux를 기본 운영 체제로 사용하십시오.
ceph-ansible 을 사용하여 iSCSI 게이트웨이 구성은 더 이상 지원되지 않습니다.
ceph-ansible 유틸리티를 사용하여 Ceph iSCSI 게이트웨이를 구성하는 것은 더 이상 지원되지 않습니다. ceph-ansible 을 사용하여 게이트웨이를 설치한 다음 의 gwcli 유틸리티를 사용하여 Ceph iSCSI 게이트웨이를 구성합니다. 자세한 내용은 Red Hat Ceph Storage 블록 장치 가이드의 CephiSCSI 게이트웨이 장을 참조하십시오.
Ceph-disk 가 더 이상 사용되지 않음
이번 릴리스에서는 ceph-disk 유틸리티가 더 이상 지원되지 않습니다. 대신 ceph-volume 유틸리티를 사용합니다. 자세한 내용은 Red Hat Ceph Storage 4 관리 가이드 의 ceph-volume replace 'ceph-disk' 섹션을 참조하십시오.
프로덕션에서는 파일 저장소가 더 이상 지원되지 않습니다.
새로운 BlueStore 백엔드가 이제 프로덕션 환경에서 완전히 지원되므로 FileStore OSD 백엔드는 더 이상 사용되지 않습니다. 자세한 내용은 Red Hat Ceph Storage 설치 가이드 의 FileStore에서 BlueStore로 오브젝트 저장소를 마이그레이션하는 방법을 참조하십시오.
Ceph 구성 파일이 더 이상 사용되지 않음
Ceph 구성 파일(ceph.conf)은 더 이상 사용되지 않으며 Ceph Monitor에 저장된 새로운 중앙 집중식 구성을 사용합니다. 자세한 내용은 Red Hat Ceph Storage 구성 가이드의 Ceph 구성데이터베이스 섹션을 참조하십시오.
5.1. Ceph 볼륨 유틸리티
dm-cache 의 장치 설정에 OSD를 배포하는 것은 지원되지 않습니다.
dm-cache 를 사용하여 OSD 배포는 더 이상 지원되지 않습니다. dm-cache 대신 Bluestore 백엔드를 사용합니다.
자세한 내용은 Red Hat Ceph Storage 설치 가이드 의 FileStore에서 BlueStore로 오브젝트 저장소를 마이그레이션하는 방법을 참조하십시오.
6장. 버그 수정
이 섹션에서는 Red Hat Ceph Storage 릴리스에서 수정된 사용자에게 상당한 영향을 미치는 버그를 설명합니다. 또한 이 섹션에는 이전 버전에서 발견된 수정된 알려진 문제에 대한 설명이 포함되어 있습니다.
6.1. Ceph Ansible 유틸리티
/targets URL에 Prometheus가 down으로 표시
이전에는 Prometheus 대상 URL이 localhost 값으로 구성되었습니다. 대상 상태가 중단된 경우 Prometheus 서비스가 주소에서 수신 대기하지 않게 되었습니다. 이번 릴리스에서는 대상 URL 값에 대한 IP 주소를 사용하도록 Prometheus 구성 파일이 업데이트되었습니다. 결과적으로 Prometheus 대상 상태가 올바르게 보고됩니다.
localhost
Ceph 배포 중에 OSD를 생성할 때 Ceph -volume 에서 메타데이터 손상이 발생할 수 있습니다.
이전 버전에서는 ceph-volume 에서 볼륨 그룹 생성, 논리 볼륨, 태그 설정 등의 LVM 명령을 발행하면 Ceph 배포 중에 OSD를 생성할 때 손상된 메타데이터가 발생할 수 있었습니다. 이번 릴리스에서는 호스트의 group_vars/all.yml 파일에서 매개변수를 lvmetad _disabledtrue 로 설정하여 lvmetad 서비스를 조건부로 비활성화할 수 있으므로 메타데이터 손상을 방지할 수 있습니다.
ceph-ansible 의 ceph-dashboard 역할은 자체 서명된 인증서의 일반 이름을 ceph-dashboard에 적용
이전 버전에서는 ceph-ansible 에서 생성한 자체 서명 인증서를 사용할 때 CN(일반 이름)을 ceph-dashboard 에 적용했기 때문에 인증서가 클라이언트에 인증서를 보내는 노드의 호스트 이름이 일치하지 않아 Prometheus와 같은 애플리케이션이 오류가 발생했습니다.
이번 릴리스에서는 ceph-ansible 이 적절한 값으로 CN을 설정하고 Prometheus가 예상대로 작동합니다.
Ceph 컨테이너가 배치되면 롤링 업그레이드가 실패합니다.
Ceph Monitor 및 Ceph Object Gateway 데몬이 컨테이너와 함께 배치되고 다중 사이트 Ceph Object Gateway가 활성화되면 rolling_update.yml Ansible 플레이북이 실패합니다. 이 오류는 업그레이드 프로세스 중에 Ceph Monitor 컨테이너가 중지되어 radosgw-admin 명령을 실행할 수 없기 때문에 발생했습니다. 이번 릴리스에서는 업그레이드 프로세스 중에 ceph-handler 역할의 다중 사이트 Ceph Object Gateway 코드를 건너뜁니다. 그 결과 rolling_update.yml Ansible 플레이북이 성공적으로 실행됩니다.
컨테이너화된 데몬으로 전환할 때 Ceph Monitor 쿼럼 검사가 실패합니다.
회귀 버그는 switch-from-containerized-to-containerized-ceph-daemons.yml Ansible 플레이북에서 도입되었습니다. 이 회귀 버그로 인해 현재 노드의 호스트 이름이 테스트되지 않았기 때문에 Ceph Monitor 쿼럼 검사가 실패했습니다. 이번 릴리스에서는 현재 Ceph Monitor 노드의 ansible_hostname 팩트가 올바르게 사용됩니다. 그 결과 Ceph Monitor 쿼럼 검사가 성공적으로 수행됩니다.
업그레이드 실패 시 새 Ceph Object Gateway 인스턴스 추가
radosgw_frontend_port 옵션은 두 개 이상의 Ceph Object Gateway 인스턴스를 고려하지 않았으며 모든 인스턴스에 포트 8080 을 구성했습니다. 이번 릴리스에서는 각 Ceph Object Gateway 인스턴스에 대해 radosgw_frontend_port 옵션이 증가하여 Ceph Object Gateway 인스턴스를 두 개 이상 사용할 수 있습니다.
Ceph Ansible은 소켓 파일을 제거하고 클러스터 재배포를 활성화합니다.
이전 버전에서는 *.asok 파일이 제거 플레이북이 완료되어 클러스터를 재배포하는 동안 오류가 발생했습니다. 이번 업데이트를 통해 ceph-ansible 은 존재할 수 있는 소켓 파일을 제거하고 클러스터를 안전하게 재배포할 수 있습니다.
컨테이너화된 Red Hat Ceph Storage 배포에서 tcmu-runner 프로세스에 대한 로그 순환 지원 추가
이전에는 iSCSI가 있는 Red Hat Ceph Storage를 컨테이너에 배포할 때 tcmu-runner 프로세스에 대한 로그 회전이 없어 컨테이너의 모든 공간을 소비했습니다. 이번 릴리스에서는 tcmu-runner 프로세스에 로그 회전 지원이 추가되고 로그 파일은 주기적으로 공간 사용량을 줄입니다.
FileStore to BlueStore 마이그레이션 프로세스에서는 FileStore OSD와 BlueStore OSD가 혼합된 OSD 노드에 실패할 수 있습니다.
이전에는 3.2 미만의 Red Hat Ceph Storage 버전을 실행하는 배포에 group_vars,host_vars 또는 인벤토리 에서 osd_objectstore 가 명시적으로 설정되지 않은 경우 배포에 FileStore OSD가 있었습니다. 파일 저장소는 Red Hat Ceph Storage 3.2 이전의 기본값입니다.
배포된 스토리지 클러스터를 Red Hat Ceph Storage 3.2로 업그레이드한 후 기존 OSD 노드에 추가된 새 OSD는 BlueStore 백엔드를 사용합니다. 이로 인해 동일한 노드에서 FileStore 및 BlueStore OSD가 혼합되었습니다. 특정 경우 파일 저장소 OSD는 BlueStore OSD와 저널 또는 DB 장치를 공유할 수 있습니다. 이러한 경우 모든 OSD를 재배포하면 파티션을 lvm 배치 또는 GPT 헤더로 전달할 수 없기 때문에 ceph-volume 오류가 발생합니다.
이번 릴리스에서는 여러 FileStore 및 BlueStore 구성을 사용하여 OSD를 마이그레이션하는 두 가지 옵션이 있습니다.
-
filestore-to-bluestore.yml플레이북을 실행할 때 추가 변수force_filestore_to_bluestore를true로 설정합니다. 이 설정은 플레이북이 이미 BlueStore를 사용하는 OSD를 모두 자동으로 마이그레이션하도록 강제 적용합니다. -
force_fileto-bluestore를 실행합니다(기본값은store_to_bluestore를 설정하지 않고 filestore-false임). 이로 인해 플레이북이 FileStore 및 BlueStore OSD가 혼합된 노드에서 자동으로 마이그레이션을 건너뜁니다. FileStore OSD만 있는 노드를 마이그레이션합니다. 플레이북 실행이 끝나면 어떤 노드를 건너뛰었다는 보고서가 표시됩니다.
Red Hat Ceph Storage 3에서 4로 업그레이드하기 전에 OSD 마이그레이션을 위한 최상의 방법을 결정하기 위해 건너뛰었던 각 노드를 수동으로 검사합니다.
Docker 레지스트리 암호로 특수 문자를 설정할 수 있습니다.
이전에는 Docker 레지스트리 암호에 설정된 특수 문자가 올바르게 처리되지 않았습니다. 이번 릴리스에서는 Docker 레지스트리 암호에 특수 문자가 설정된 경우 Ansible 플레이북이 실패하지 않습니다. 이제 Docker 레지스트리 암호에서 특수 문자를 사용할 수 있으며 Ansible 플레이북이 예상대로 작동합니다.
Ceph-volume Ansible 모듈은 논리 볼륨 및 볼륨 그룹에 대한 올바른 정보를 보고합니다.
이전에는 OSD에서 Red Hat Enterprise Linux 8 기반 컨테이너를 사용하여 Red Hat Enterprise Linux 7 호스트에서 ceph-volume lvm zap --destroy 명령을 적용할 때 호스트의 경우 lvm 캐시가 새로 고쳐지지 않았으며 여전히 존재하는 논리 볼륨 및 볼륨 그룹을 보고했습니다. 이번 릴리스에서는ceph_volume Ansible 모듈을 통해 호스트에서 명령을 트리거하여 lvm 캐시가 새로 고쳐지고 논리 볼륨 및 볼륨 그룹에 대한 올바른 정보를 보고합니다.
journalctl 명령을 사용하여 Ceph 컨테이너 로그를 볼 수 있습니다.
이전 버전에서는 Ceph 컨테이너 로그가 journald에 없었습니다. Podman은 분리된 모드에서 컨테이너를 실행할 때 Kubernetes 파일을 기본 로그 드라이버로 사용하고 systemd 유형 forking을 사용했습니다. 이번 릴리스에서는 Ceph 컨테이너가 journald 로그 드라이버로 구성되며 journalctl 명령을 사용하여 로그를 사용할 수 있습니다.
Ceph Ansible은 파일 및 디렉터리 소유권 값을 nobody:nobody로 설정합니다.
이전에는 Ceph Ansible에서 파일 및 디렉터리 소유권 값을 root:root 로 설정했습니다. 이로 인해 alertmanager 및 prometheus 서비스에 대한 권한 문제가 발생했습니다.
이번 릴리스에서는 Ceph Ansible에서 소유권을 nobody:nobody 로 설정합니다. 이렇게 하면 권한 문제가 제거됩니다.
6.2. Cockpit Ceph 설치 프로그램
Cockpit을 통한 Ceph 설치가 더 이상 실패하지 않습니다.
이전에는 사용자가 호스트 선택 페이지에서 localhost 를 호스트 선택 페이지에서 제공하는 경우 Cockpit을 통한 Ceph 설치 가 Systemd 오류와 함께 실패했습니다. 이번 릴리스에서는 호스트 페이지 UI에 적절한 오류 메시지가 표시되고 사용자가 계속 사용할 호스트 이름으로 localhost 를 사용하지 않도록 합니다.
Cockpit 설치 프로그램에서 rgws.yml에서 버킷 수에 대한 잘못된 값을 생성합니다.
이전에는 Cockpit 설치 프로그램을 사용하여 rgws.yml 파일을 생성하여 defaults.rgw.buckets.data:pgnum 및 rgw_override_bucket_index_max_shards.
이번 릴리스에서는 Cockpit 설치 프로그램에서 rgws.yml 에 올바른 값을 생성합니다.
6.3. Ceph 관리 대시보드
prometheus 쿼리는 대시보드의 CPU 사용량에 대한 실시간 메트릭을 보고하도록 수정되었습니다.
이전에는 Red Hat Ceph Storage 대시보드의 호스트 화면에 부정확한 prometheus 쿼리로 인해 클러스터의 노드의 CPU 사용량에 대한 잘못된 데이터가 표시되었습니다. 이번 릴리스에서는 prometheus 쿼리가 수정되었으며 CPU 사용량의 데이터는 거의 실시간 지표를 제공합니다.
Red Hat Ceph Storage 대시보드에 포함된 Grafana 대시보드의 향후 데이터를 예상하는 삭제된 옵션
이전에는 전체 성능 그래프에서 "this week" 옵션에서 선택한 경우 Grafana 지표에 몇 가지 기록 데이터 옵션으로 지표가 표시되지 않았습니다. 이번 릴리스에서는 향후 데이터를 예상하는 기록 데이터 옵션이 제거되고 지표가 예상대로 표시됩니다.
CherryPy는 더 이상 헤더 및 오류 페이지에 버전을 표시하지 않습니다.
이전에는 cherrypy가 헤더 및 오류 페이지에서 버전을 공개했습니다. 이 정보를 노출하면 잠재적인 보안 취약점이 발생했습니다. 이번 릴리스에서는 대시보드 및 Prometheus 서버 둘 다의 헤더에 cherrypy 버전 대신 Ceph-Dashboard 및 Ceph-Prometheus가 표시됩니다. 이러한 변경으로 인해 보안 취약점이 제거됩니다.
6.4. Ceph 파일 시스템
AttributeError' exception로 Ceph fs status 명령이 더 이상 실패하지 않습니다.
이전 버전에서는 다시 조인하는 동안 메타데이터를 잘못 처리하여 Ceph fs status 명령이 AttributeError 예외로 실패했습니다. 이번 릴리스에서는 NoneType이 메타데이터 오브젝트 유형인 경우 Ceph fs status 명령이 이제 알 수 없는 오브젝트로 예상 상태를 반환합니다.
6.5. Ceph Manager 플러그인
Ceph 관리자의 경고 모듈은 상태 경고 없이 예상대로 작동합니다.
이전 버전에서는 Ceph 관리자가 일부 모듈별 구성 옵션을 기본값으로 재정의하여 ALERTS_SMTP_ERROR가 기본 값을 계속 사용하기 때문에 경고 이메일을 보낼 수 없었습니다. 이번 릴리스에서는 Ceph 관리자의 기본값 처리가 수정되어 경고 모듈이 상태 경고 없이 예상대로 작동합니다.
restful 모듈 API 끝점에 액세스할 수 있습니다.
이전 버전에서는 restful 모듈에서는 python 3에서 더 이상 사용할 수 없는 dict.iteritems 를 사용했습니다. 그 결과 많은 restful 모듈 API 엔드포인트에 액세스할 수 없었습니다. 이번 릴리스에서는 dic.items 을 사용하도록 restful 모듈이 업데이트되어 API 엔드포인트에 액세스할 수 있습니다.
ceph-mgr Prometheus 내보내기기에서 IPv6 주소가 올바르게 처리되지 않았습니다.
이전 버전에서는 ceph-mgr Prometheus 내보내기 관리자 출력의 일부 메타데이터 지표에 불완전하거나 잘못된 형식의 IPv6 주소가 표시되었습니다. 이번 릴리스에서는 내보내기에서 IPv6 주소를 올바르게 처리합니다.
6.6. Ceph 볼륨 유틸리티
ceph-volume 명령을 실행하여 /var/log/ceph/ceph-volume.log로 디버깅 출력을 전송했습니다.
이전 버전에서는 ceph-volume 명령을 실행하면 --log-level 옵션에 설정된 수준에 관계없이 항상 디버깅 수준 출력을 /var/log/ceph/ceph-volume.log 로 전송했습니다. 이번 릴리스에서는 ceph-volume 명령을 실행하면 --log-level 옵션이 지정하는 수준으로 출력을 보냅니다.
Ceph volume lvm batch 에서 SSD 장치를 올바르게 보고하고 올바른 구성을 배포합니다.
이전 버전에서는 ceph-volume lvm batch 명령으로 udev 를 사용하여 경쟁 상태가 발생하여 SSD 장치가 HDD로 잘못 보고되어 예기치 않은 배포 구성이 발생했습니다. 이번 릴리스에서 코드 업데이트를 통해 ceph-volume lvm batch 명령은 SSD를 올바르게 보고하고 클러스터의 예상 구성을 배포합니다.
스토리지 클러스터에 새 SSD OSD를 추가한 후 스택 업데이트가 실패합니다.
이전 버전에서는 스택 업데이트를 사용하여 새 SSD OSD를 스토리지 클러스터의 동일한 볼륨 그룹(VG)에 추가하여 스택 업데이트가 실패했습니다. 스택 업데이트는 동일한 LV에 속하지 않고 다른 논리 볼륨(LV)에 속하는 새 SSD를 잘못 보기 때문에 발생했습니다. 이번 릴리스에서는 동일한 LS에 속하는 OSD가 새로 추가된 스택 업데이트 뷰는 더 이상 실패하지 않습니다.
(BZ#1892441)
6.7. Ceph Object Gateway
업그레이드된 OSD에 대한 set-lifecycle 및 delete-lifecycle 작업이 예상대로 작동합니다.
이전 버전에서는 Red Hat Ceph Storage 3에서 Red Hat Ceph Storage 4.2z2로 업그레이드하는 동안 업그레이드된 OSD에 대한 기존 라이프사이클 정책을 설치하면 set-lifecycle 작업이 성공하더라도 구조 디코딩 오류가 발생했습니다. 이번 릴리스에서는 버킷 라이프사이클 상태 항목을 디코딩하는 데 필요한 변경 사항이 수정되고 데몬 업그레이드가 예상대로 작동합니다.
--reset-stats 옵션은 버킷이 많은 사용자의 그룹 버킷을 업데이트합니다.
이전에는 radosgw-admin 사용자 --reset-stats 옵션이 동시에 사용자가 소유한 모든 버킷에 대한 통계를 업데이트했습니다. 버킷이 매우 많은 사용자의 경우 업데이트를 수행하는 데 필요한 시간은 연결된 RADOS 작업의 길이를 초과할 수 있습니다. 이로 인해 Ceph에서 OSD를 down으로 표시하고 OSD가 축소될 수 있었습니다.
이번 릴리스에서는 --reset-stats 옵션이 1000개의 버킷 그룹의 통계를 업데이트합니다. 이를 통해 OSD 플러핑 없이 많은 수의 버킷을 업데이트할 수 있습니다.
gc 항목이 시스템에서 제거되면 GC perf 카운터 증가
이전에는 gc 항목이 시스템에서 제거되었을 때 gc perf 카운터가 증가하지 않았습니다. 이 코드 업데이트를 통해 시스템에서 삭제된 gc 항목 수에 따라 올바른 gc perf 카운터 값이 확인됩니다.
마지막 GC 오브젝트의 항목 목록은 루프에 포함되지 않습니다.
이전 버전에서는 마지막 GC 오브젝트의 항목 목록이 마지막 GC 오브젝트에 대해 마커가 재설정될 때마다 초기화되었기 때문에 루프가 입력되었습니다. 이번 릴리스에서는 마커가 재설정되지 않고 목록이 예상대로 작동하는 잘린 플래그가 업데이트됩니다.
Ceph Object Gateway는 버킷 생성 프로세스 중에 버킷 캐시 정보를 동기화합니다.
이전에는 Ceph Object Gateway가 버킷 생성 시 버킷 정보의 캐시를 동기화하지 않았습니다. 이로 인해 사용자가 하나의 RGW에서 존재하지 않는 버킷에 액세스한 다음 다른 Ceph Object Gateway에서 버킷을 만들 때 조건이 발생하여 첫 번째 Ceph Object 게이트웨이에서 버킷에 액세스하면 404 오류가 발생하여 버킷이 존재하지 않았습니다. 이번 업데이트를 통해 RGW는 버킷 생성 프로세스 중에 캐시를 동기화하여 각 Ceph Object Gateway가 버킷에 액세스할 수 있습니다.
KafkaConnect는 Kafka 주제에서 RGW S3 버킷으로 오브젝트를 보냅니다.
이전에는 chunked-encoding 오브젝트 서명이 올바르게 계산되지 않았기 때문에 Kafka 주제에서 RGW S3 버킷으로 오브젝트를 보내는 데 실패했습니다.
이로 인해 RADOS 게이트웨이 로그에 다음과 같은 오류가 발생했습니다.
20 AWSv4ComplMulti: ERROR: 청크 서명 불일치
이번 릴리스에서는 chunked-encoding 오브젝트 서명이 올바르게 계산되어 KafkaConnect가 오브젝트를 성공적으로 보낼 수 있습니다.
6.8. 다중 사이트 Ceph 개체 게이트웨이
버킷의 동기화가 비활성화된 후 버킷 인덱스에서 항목을 수집하지 않습니다.
이전 버전에서는 다중 사이트 동기화가 비활성화된 버킷에서 radosgw-admin 버킷 검사 --fix … 변수를 사용하면 동기화가 비활성화되었음을 나타내는 잘못된 플래그를 설정했습니다. 사용 또는 트리밍되지 않은 버킷 인덱스 로그에 데이터가 추가되어 시간이 지남에 따라 더 많은 스토리지가 사용됩니다. 이번 릴리스에서는 rados gw-admin 버킷 검사 --fix … 명령을 실행할 때 동기화 플래그가 올바르게 복사됩니다. 버킷의 동기화가 비활성화된 후 버킷 인덱스 로그에서 항목을 수집하지 않습니다.
6.9. RADOS
Progress 모듈은 더 이상 무해한 시간 동안 고착되지 않습니다.
이전에는 Ceph 상태의 진행 상태가 정의되지 않은 시간 동안 중단되었습니다. 이는 PG 상태를 조기에 확인하고 OSDMap의 epoch와 동기화하지 않기 때문에 Progress 모듈 때문입니다. 이번 릴리스에서는 진행 중인 이벤트가 예상대로 표시됩니다.
Ceph Monitor 충돌로 인한 progress 모듈
백필(backfill) 및 복구 작업 중에 progress 모듈은 음수 진행 이벤트를 생성할 수 있습니다. 대규모 스토리지 클러스터를 사용하면 Ceph Monitor 노드에서 너무 많은 부정적인 진행 이벤트가 발생하여 Ceph Monitor가 충돌할 수 있습니다. 이번 릴리스에서는 코드는 진행 중인 이벤트가 음수가 아닌 것을 확인합니다. 결과적으로 progress 모듈에서 Ceph 모니터가 충돌하지 않습니다.
전달된 OSD 실패 보고서를 처리할 때 Ceph Monitor에 주의가 표시됩니다.
이전에는 Ceph Monitor가 관리자 및 로깅 시스템에 느린 작업을 잘못 보고했습니다. 이번 릴리스에서는 Ceph Monitor가 전달된 OSD 오류 보고서를 신중하게 처리하므로 부정확한 속도가 많은 작업이 발생할 수 있습니다.
trims osdmaps를 적절하게 모니터링
이전 버전에서는 모니터가 osdmaps를 트리밍할 때 "in" 및 "out" OSD 둘 다 고려되었기 때문에 모니터가 오래된 osdmaps를 트리밍하지 못했습니다. 이번 릴리스에서는 "out" OSD가 고려되지 않고 osdsmap이 적절하게 트리밍됩니다.
bluestore 및 FileStore OSD는 혼합 클러스터에서 동일한 순서로 오브젝트를 나열합니다.
이전에는 BlueStore 및 FileStore OSD가 모두 있는 클러스터에서 딥 스크러브 및 백필이 있는 클러스터에서 백엔드의 정렬 메커니즘 불일치로 인해 누락된 오브젝트를 보고할 수 있었습니다. 이 업그레이드를 통해 BlueStore의 collection_list 메서드가 FileStore와 동일한 순서로 나열되도록 OSD_FIXED_COLLECTION_LIST 기능 플래그가 추가되었습니다.
잘못된 권한으로 로그 파일이 생성됨
이전에는 코드 추가에서 관련 함수가 호출된 순서가 변경되었습니다. 이로 인해 일부 데몬이 잘못된 권한이 있는 로그 파일을 생성할 수 있었습니다. 이번 릴리스에서는 함수를 올바른 순서로 호출하고 데몬에서 올바른 권한으로 로그 파일을 생성합니다.
bluefs_buffered_io 를 활성화하면 성능 저하가 방지
이전 버전에서는 bluefs_buffered_io 옵션이 비활성화되어 특정 시나리오에서 backsDB 및 OMAP 상호 작용 속도가 느려졌습니다. 이 릴리스에서는 bluefs_buffered_io 옵션이 True 로 설정되어 성능이 저하되지 않았습니다.
onodes가 제어됨으로 인해 메모리 증가
이전에는 bluestore_cache_trim_max_skip_pinned 옵션의 기본값은 대규모 클러스터의 경우 매우 낮은 64개였습니다. 이 옵션은 트리밍 onodes의 속도를 제어했기 때문에 현재 기본값을 사용하여 onodes의 빌드로 인해 메모리 증가가 발생할 수 있었습니다. 이번 릴리스에서는 bluestore_cache_trim_max_skip_pinned'의 기본값이 1000이고 메모리 증가가 제어됩니다.
6.10. RADOS 블록 장치(RBD)
클라이언트 측 QoS 제한이 활성화된 경우 librbd 작업을 사용하는 애플리케이션
이전에는 librbd에서 클라이언트 측 QoS 제한을 활성화하면 데이터 경로가 잠금으로 올바르게 보호되지 않았기 때문에 충돌할 수 있었습니다. 이번 릴리스에서는 누락된 잠금이 추가되고 IO에 librbd를 사용하는 애플리케이션이 클라이언트 측 QoS 제한이 활성화되어 있을 때 예상대로 작동합니다.
6.11. NFS Ganesha
READDIR 반환 결과의 모든 파일 레이아웃
이전 버전에서는 일부 파일 레이아웃으로 인해 READDIR에서 루프가 발생하고 결과를 반환하지 않았습니다. 이번 업데이트를 통해 READDIR이 예상대로 작동하고 결과를 올바르게 반환합니다.
7장. 확인된 문제
이 섹션에서는 Red Hat Ceph Storage 릴리스에 있는 알려진 문제에 대해 설명합니다.
7.1. Ceph Ansible 유틸리티
배치 그룹 자동 스케일러를 배포하면 CephFS 관련 풀에서만 작동하지 않습니다.
이 문제를 해결하기 위해 플레이북을 실행한 후 CephFS 관련 풀에서 배치 그룹 자동 스케일러를 수동으로 활성화할 수 있습니다.
systemd 장치 템플릿에서 매개변수의Restart=always'를 적용하므로 Ceph OSD에서 osd_max_markdown_count 매개변수를 사용하지 못했습니다.
OSD 데몬의 systemd 장치 템플릿은 Restart=always 매개변수를 적용하여 osd_max_markdown_count 매개 변수를 사용하면 서비스를 다시 시작합니다. 이 문제를 해결하려면 ceph_osd_systemd_overrides 변수를 사용하여 OSD systemd 템플릿의 Restart= 매개 변수를 덮어씁니다. 즉,
[osds]
osd0 ceph_osd_systemd_overrides="{'Service': {'Restart': 'no'}}"filestore-to-bluestore 플레이북에서'osd_auto_discovery의 시나리오를 지원하지 않습니다.
osd_auto_recovery 시나리오를 기반으로 하는 Red Hat Ceph Storage 4 배포는 BlueStore 마이그레이션을 용이하게 하기 위해 filestore-to-bluestore 플레이북을 사용할 수 없습니다.
이 문제를 해결하려면 shrink-osd 플레이북을 사용하고 osd_objectstore: bluestore 를 사용하여 축소된 OSD를 재배포합니다.
업그레이드 프로세스에서 ceph-crash 컨테이너 데몬을 자동으로 중지하지 않습니다.
업그레이드 프로세스에서 ceph-crash 역할 호출을 실행했지만 호출은 ceph-crash 서비스만 시작합니다. 업그레이드 프로세스 중에 ceph-crash 컨테이너 데몬이 계속 실행 중인 경우 업그레이드가 완료되면 재시작되지 않습니다.
이 문제를 해결하려면 업그레이드 후 ceph-crash 컨테이너를 수동으로 다시 시작합니다.
7.2. Ceph 볼륨 유틸리티
사용자가 osd.yml 또는 site.yml 플레이북을 실행하면 ceph-ansible에서 새 장치에 OSD를 생성하지 않습니다.
사용자가 db 장치 세트를 명시적으로 전달하는 경우--db-devices 또는 wal 장치 --wal-devices --wal-devices --wal-devices를 ceph-volume lvm 일괄 처리 에서 사용할 수 없는 경우 필터링되고 결과가 예상과 결과가 달라집니다. 현재 ceph-volume lvm 일괄 처리 구현에서는 예상 OSD 토폴로지를 방지하기 위해 전달된 db 또는 wal 장치를 사용할 수 없는 경우 비대화형 모드에서 새 OSD를 추가하는 것을 허용하지 않습니다. 이 ceph-volume 제한으로 인해 ceph-ansible은 장치 및 dedicated_devices의 배치 시나리오에 새 OSD를 추가할 수 없습니다.
7.3. 다중 사이트 Ceph 개체 게이트웨이
Ceph Object Gateway 다site set-up에서 오브젝트를 동기화하지 못했습니다.
일부 오브젝트는 동기화에 실패할 수 있으며 사용자가 Ceph Object Gateway 다중 사이트 설정에서 radosgw-admin sync status 명령을 실행하면 상태 불일치가 있을 수 있습니다.
현재는 이 문제에 대한 해결방법이 없습니다.
8장. 소스
업데이트된 Red Hat Ceph Storage 소스 코드 패키지는 다음 위치에서 사용할 수 있습니다.
- Red Hat Enterprise Linux 7의 경우: http://ftp.redhat.com/redhat/linux/enterprise/7Server/en/RHCEPH/SRPMS/
- Red Hat Enterprise Linux 8의 경우: http://ftp.redhat.com/redhat/linux/enterprise/8Base/en/RHCEPH/SRPMS/