4장. 버그 수정

이 섹션에서는 이 Red Hat Ceph Storage 릴리스에서 수정된 사용자에게 상당한 영향을 미치는 버그에 대해 설명합니다. 또한 섹션에는 이전 버전에서 발견된 수정된 알려진 문제에 대한 설명이 포함되어 있습니다.

4.1. Cephadm 유틸리티

PID 제한이 제거되고 컨테이너의 워크로드가 더 이상 충돌하지 않음

이전에는 Red Hat Enterprise Linux 9 배포에서 pid 제한이 적용되어 컨테이너 내에서 실행할 수 있는 프로세스 수를 제한했습니다. 이로 인해 Ceph Object Gateway 동기화와 같은 특정 작업이 충돌합니다.

이번 수정을 통해 모든 Ceph 컨테이너에서 pid 제한이 무제한 으로 설정되어 컨테이너의 워크로드가 충돌하지 않습니다.

(BZ#2165644)

cephadm이 더 이상 임의로 구성 및 키링 파일을 일시적으로 제거하지 않음

이전 버전에서는 클라이언트 conf 및 인증 키를 계산할 때 잘못된 타이밍으로 인해 cephadm 에서 호스트에 구성 및 인증 키가 없어야 하고 나중에 모든 키를 제거해야 함을 계산했습니다.

이번 수정으로 계산 타이밍이 변경되어 계산에 대한 최신 정보가 보장됩니다. cephadm 은 더 이상 임의로 실행되지 않으며, 구성 및 키링 파일을 임시로 제거합니다.

(BZ#2125002)

Ceph Object Gateway 데몬이 루프백 주소에 올바르게 바인딩

이전에는 Ceph Object Gateway 데몬을 바인딩할 호스트에서 유효한 IP 주소를 찾을 때 cephadm 이 제외되어 데몬이 루프백 주소에 바인딩되지 않았습니다.

이번 수정을 통해 명시적으로 검사를 수행하여 Ceph Object Gateway 데몬을 루프백 주소에 바인딩할 수 있습니다. 루프백 인터페이스가 감지되면 127.0.0.1 주소가 IPv4에 사용되며 ::1 은 루프백 주소로 IPv6에 사용됩니다.

(BZ#2018245)

Ceph 모니터 저장소 크기 제한을 초과한 후 cephadm에서 장치 정보를 여러 항목으로 분할

이전에는 호스트 를 새로 고칠 수 없어 장치 정보가 모니터 저장소의 기본 최대 크기 제한을 64K를 초과하면 대부분의 작업을 완료했습니다. 이로 인해 항목 크기 오류가 발생했습니다. 결과적으로 디스크 수가 많은 호스트가 있는 경우 사용자가 기본 제한을 늘려야 했습니다.

이번 수정을 통해 이제 크기 제한보다 더 많은 공간이 필요한 경우 cephadm 은 장치 정보를 여러 항목으로 분할합니다. 디스크 수가 많은 호스트가 있는 경우 사용자는 더 이상 모니터 저장소 항목 크기 제한을 늘릴 필요가 없습니다.

(BZ#2053276)

크래시 데몬에서 크래시 이벤트를 올바르게 기록하고 스토리지 클러스터에 보고

이전에는 스토리지 클러스터에 크래시 보고서를 보낼 때 크래시 데몬이 제대로 인증되지 않아 클러스터에 전송할 크래시 이벤트가 올바르게 기록되지 않았습니다.

이번 수정으로 크래시 데몬은 이제 크래시 보고서를 보낼 때 인증 정보를 올바르게 사용합니다. 이제 충돌 이벤트를 올바르게 기록하고 클러스터에 보고합니다.

(BZ#2062989)

cephadm.log 의 로그 교체로 인해 더 이상 문제가 발생하지 않아야 합니다.

이전 버전에서는 /var/log/ceph 디렉터리가 cephadm (예: ceph-common 또는 ceph-ansible )이 아닌 다른 방법으로 생성된 경우 logrotate 명령이 문제가 발생했습니다. 결과적으로 cephadm.log 를 순환할 수 없었습니다.

이번 수정을 통해 root 사용자로 교체되도록 su root root 가 logrotate 구성에 추가되었습니다. logrotate 명령은 더 이상 var/log/ceph 디렉터리의 소유권에 문제가 발생하지 않으므로 cephadm.log 가 예상대로 순환됩니다.

(BZ#2099670)

cephadm 로깅 구성이 업데이트됩니다.

이전에는 cephadm 스크립트가 모든 출력을 stderr 에 로깅했습니다. 그 결과, 성공적인 배포를 나타내는 cephadm 부트스트랩 로그도 stdout 대신 stderr 로 전송되었습니다.

이번 수정으로 cephadm 스크립트에는 특정 명령에 대해 다른 로깅 구성이 있으며 부트스트랩에 사용된 로깅 구성은 이제 stderr 에 오류를 기록합니다.

(BZ#2103707)

네트워크 검사로 인해 더 이상 호스트가 모니터 네트워크에서 제외되지 않음

이전에는 cephadm 이 호스트 네트워크와 구성된 일부 공용 네트워크 간에 정확히 일치하는 항목을 찾기 때문에 네트워크 검사가 실패했습니다. 이로 인해 유효한 네트워크 구성이 있는 호스트는 public_network 에 속하는 인터페이스가 있는 호스트이며 모니터 네트워크에서 제외되었습니다.

이번 수정을 통해 정확히 일치하는 항목을 찾는 대신 호스트 네트워크가 구성된 공용 네트워크와 겹치는지 확인하므로 유효한 호스트가 더 이상 모니터 네트워크에서 제외되지 않습니다.

(BZ#2104947)

cephadm no longer remove osd_memory_target config settings at host level

이전 버전에서는 osd_memory_target_autotune 이 전역적으로 꺼져 있는 경우 cephadm 에서 사용자가 호스트 수준에서 osd_memory_target 에 설정한 값을 제거했습니다. 또한 FQDN 이름이 있는 호스트의 경우 crush 맵에서 짧은 이름을 사용하지만 cephadm 은 FQDN을 사용하여 구성 옵션을 설정했습니다. 이로 인해 호스트 수준에서 osd_memory_target 을 수동으로 설정할 수 없고 osd_memory_target 자동 튜닝이 FQDN 호스트에서 작동하지 않습니다.

이번 수정을 통해 osd_memory_target _ autotune이 false 로 설정된 경우 호스트 수준에서 osd_memory_target 구성 설정이 cephadm 에서 제거되지 않습니다. 또한 호스트 수준 osd_memory_target 을 설정할 때 항상 호스트에 짧은 이름을 사용합니다. 호스트 수준 osd_memory_target_autotunefalse 로 설정된 경우 사용자는 osd_memory_target 을 수동으로 설정하고 cephadm 에서 옵션을 제거하지 않도록 할 수 있습니다. 또한 자동 튜닝은 이제 FQDN 이름을 사용하여 cephadm 에 추가된 호스트에서 작동해야 합니다.

(BZ#2107849)

cephadm 은 Ceph OSD 구성 파일을 다시 작성합니다.

이전 버전에서는 OSD를 재배포하는 동안 cephadm 은 Ceph OSD에 사용되는 구성을 작성하지 않았기 때문에 Ceph Monitor 데몬을 추가하거나 제거할 때 OSD에서 구성 파일에서 업데이트된 모니터 구성을 가져오지 않았습니다.

이번 수정으로 OSD를 재배포할 때 cephadm 은 구성 파일을 자동으로 다시 작성하고 OSD 구성 파일이 업데이트되어 모니터가 사용자 개입 없이 추가되거나 삭제될 때 모니터의 새 위치를 표시합니다.

(BZ#2111525)

사용자가 명시적 배치에 나열된 호스트를 드레이닝할 수 있습니다.

이전 버전에서는 명시적 배치의 일부로 나열된 호스트를 드레이닝하면 드레이닝이 중지되거나 호스트가 명시적 배치에서 제거될 때까지 호스트가 제대로 드레이닝되지 않고 역추적이 기록되었습니다.

이번 수정을 통해 명시적 배치 처리가 내부적으로 구현되고 cephadm 은 호스트에서 데몬을 제거해야 하는지 확인할 수 있습니다. 결과적으로 사용자는 먼저 배치에서 호스트를 제거하지 않고도 명시적 배치의 일부로 나열된 호스트를 드레인할 수 있습니다.

그러나 사용자는 호스트를 완전히 제거하거나 호스트를 명시적으로 나열하기 전에는 호스트를 명시적 배치에서 제거해야 합니다.

(BZ#2112768)

--apply-spec 옵션이 부트스트랩 중에 실패하는 경우 cephadm 은 0이 아닌 코드를 반환합니다.

이전에는 작업이 완료된 경우 cephadm bootstrap에서 항상 코드 0 을 반환했습니다. --apply-spec 옵션을 사용하여 배포에 오류가 있는 경우 반환 코드의 오류를 반영하지 않습니다.

이번 수정을 통해 부트스트랩 중에 사양을 적용할 때 cephadm 은 0이 아닌 값을 반환합니다.

(BZ#2116689)

공유 DB 장치로 복잡한 OSD 배포 또는 교체는 한 번에 모두 수행할 필요가 없습니다.

이전에는 cephadm 이 OSD를 생성할 때 이전 OSD의 db 장치로 이미 사용된 장치가 사용 불가능한 장치로 필터링되었습니다. 결과적으로 장치를 DB로 사용하지만 한 번에 배포되지 않은 모든 OSD가 OSD 사양에 부합하지 않더라도 후속 OSD를 생성할 때 DB 장치가 필터링되므로 작동하지 않는 복잡한 OSD 배포입니다.

이번 수정으로 공유 DB 장치가 포함된 복잡한 OSD 배포를 한 번에 모두 수행할 필요가 없습니다. 사용자가 사양에 이미 나열된 db 장치와 결합할 추가 데이터 장치를 포함하도록 OSD 사양을 업데이트하는 경우 cephadm 은 이러한 새 OSD를 생성할 수 있어야 합니다.

(BZ#2119715)

cephadm에서 잘못된 tuned-profile 사양이 감지된 경우 적절한 오류가 발생합니다.

이전에는 cephadmtuned-profile 에 대한 YAML 사양을 확인하지 않아 잘못된 tuned-profile 사양에 유효하지 않고 누락된 데이터를 적용하는 동안 오류 또는 경고가 반환되지 않았습니다.

이번 수정을 통해 tuned-profile 사양을 검증하기 위해 몇 가지 검사가 추가되었습니다. cephadm:에서 잘못된 tuned-profile 사양이 감지되면 적절한 오류가 발생합니다.

  • 잘못된 튜닝 가능 항목은 YAML 사양의 "설정"에 설명되어 있습니다.
  • YAML 사양의 "설정" 섹션이 비어 있습니다.
  • 잘못된 배치가 감지됩니다.

(BZ#2123609)