6.7. Ceph Object Gateway
Ceph Object Gateway가 AWS 요청 서명을 올바르게 적용
이전에는 Ceph Object Gateway에서 서명 헤더에 대한 AWS 요청을 제대로 적용하지 않았으며 다음 오류 메시지를 생성했습니다.
SignatureDoesNotMatch
이번 릴리스에서는 Ceph Object Gateway 코드가 헤더에 올바르게 서명하도록 수정되었습니다. 요청 시 서명 요청이 성공적으로 수행됩니다.
radosgw-admin 버킷 검사
명령으로 더 이상 불완전한 다중 파트 업로드가 표시되지 않음
이전에는 radosgw-admin 버킷 검사
명령을 실행하면 불완전한 다중 파트 업로드가 표시되었습니다. 이로 인해 버킷 인덱스가 손상된 것처럼 출력이 표시될 수 있으므로 사이트 관리자에게 혼동이 발생할 수 있습니다. 이번 업데이트를 통해 명령은 오류 및 분리된 오브젝트만 표시하고 불완전한 업로드가 필터링됩니다.
버킷 shard 오브젝트를 사용하여 omap 키의 배포 취소
버전이 지정된 버킷에서 오브젝트 작업을 완전히 삭제할 수 없는 경우가 있었습니다. 이 상태에서 이러한 오브젝트의 버킷 인덱스 항목에는 이름과 인스턴스 문자열이 0이 표시되었습니다. 후속 reshard가 있는 경우 빈 이름과 인스턴스 문자열으로 인해 항목이 shard 0으로 다시 하드링되었습니다. shard 0에 속하지 않은 항목이 여기에 종료되었습니다. 이로 인해 shard 0에 빈 항목 수가 배치되고 서로 다른 shard보다 큽니다. 이번 릴리스에서는 삭제 작업의 이 부분에서 이름 및 인스턴스 문자열이 더 이상 지워지지 않습니다. Reshard가 발생하면 완전히 삭제되지 않은 항목이 올바른 shard에 종료되고 shard 0이 강제 적용되지 않습니다.
Object Gateway 라이프사이클 처리 성능의 전체 처리량 향상
이전에는 지정된 환경에서 버킷 또는 컨테이너가 있는 오브젝트 또는 버킷의 워크로드 증가로 인해 병렬 처리 부족으로 인해 Object Gateway 라이프사이클 처리 성능이 제한되었습니다. 이번 업데이트를 통해 병렬 처리는 2차원이므로 단일 오브젝트 게이트웨이 인스턴스에 여러 라이프사이클 처리 스레드가 있을 수 있으며 각 스레드에는 라이프사이클 작업을 실행하는 여러 개의 작업 풀 스레드가 있습니다. 또한 이번 업데이트에서는 작업자에 대한 shard
할당이 개선되어 전체 처리량이 증가합니다.
rgw_parse_bucket_key
가 호출되면 버킷 테넌트 상태가 올바르게 해석됩니다.
이전 버전에서는 루프에서 키를 처리하는 radosgw-admin 버킷 통계와 같은
의 일부 호출자가 일부 테넌트 버킷이 나열된 경우 테넌트되지 않은 버킷을 테넌트로 잘못 해석할 수 있었습니다. 비어 있지 않은 rgw_rgw 버킷 인수를 사용하여 rgw_parse_bucket
_keyrgw_parse_bucket_key
가 호출되면 키에 테넌트가 없는 경우 bucket::tenant에 빈 값을 올바르게 할당하지 않습니다. Red Hat Ceph Storage 4.1z1에서 테넌트가 적용되지 않고 버킷 테넌트 상태가 올바르게 해석되면 버킷 테넌트 멤버가 지워집니다.
Ceph Object Gateway는 익명 사용자 정보를 캐시하고 액세스하려고 합니다.
이전에는 Ceph Object Gateway에서 인증되지 않은 각 요청에 대한 익명 사용자 정보를 가져오려고 했습니다. 이 인증되지 않은 액세스로 인해 스토리지 클러스터의 단일 Ceph OSD가 로드되었습니다. 이번 릴리스에서는 Ceph Object Gateway가 익명 사용자 정보를 가져오지 않아 대기 시간이 단축되고 단일 Ceph OSD에서 로드됩니다.
오브젝트에 라이프사이클 만료가 올바르게 보고됨
이전에는 접두사 규칙이 있기 때문에 일부 오브젝트에 대해 잘못된 라이프사이클 만료가 보고될 수 있었습니다. 이는 S3 HEAD 및 GET 요청에 사용된 만료 헤더를 생성할 때 라이프사이클 만료 규칙의 선택적 접두사 제한이 무시되었기 때문에 발생했습니다. Red Hat Ceph Storage 4.1z1에서 규칙 접두사가 일치하는 expiration 헤더 규칙의 일부이며 오브젝트의 라이프사이클 만료가 올바르게 보고됩니다.
rgw.none
버킷 통계에서 많은 수의 오브젝트
경우에 따라 통계를 계산하는 코드는 버킷 인덱스 항목이 이미 존재하는 오브젝트를 참조하는지 여부를 확인하지 못했습니다. 이로 인해 버킷 통계가 올바르지 않았습니다. 이번 릴리스에서는 존재를 확인하기 위해 버킷 통계를 수정하기 위해 코드가 추가되었습니다.
정렬된 버킷 목록에 대한 호출이 중단됨
버킷 정렬된 목록 작업의 코드 버그로 인해 특정 상황에서 이 작업이 루프에 고정되고 완료되지 않을 수 있습니다. 이번 릴리스에서는 이 코드 버그가 수정되었으며 결과적으로 정렬된 버킷 목록에 대한 호출이 예상대로 완료됩니다.
라이프 사이클 처리는 NoncurrentVersionExpiration
의 NoncurrentDays
를 무시합니다.
병렬 라이프사이클 처리 중에 오브젝트의 수정 시간이 잘못 초기화되었다고 가정하는 변수입니다. 이로 인해 유효하지 않은 만료 규칙이 있는 버킷의 최신 버전이 아닌 오브젝트 버전이 의도한 만료 시간 전에 만료되었습니다. 이번 릴리스에서는 수정 시간(mtime
)이 올바르게 초기화되어 라이프사이클의 처리 대기열에 전파됩니다. 이렇게 하면 올바른 시간 후에 최신이 아닌 만료가 발생합니다.
일부 오브젝트의 일부가 가비지 컬렉션에 잘못 추가됨
Ceph Object Gateway를 사용하여 오브젝트를 읽을 때 해당 오브젝트의 일부가 rgw_gc_obj_min_wait
옵션에 정의된 값의 절반 이상을 사용하는 경우 해당 tail 개체가 가비지 컬렉션 목록에 추가되었습니다. 가비지 컬렉션 목록의 tail 개체가 삭제되어 데이터가 손실됩니다. 이번 릴리스에서는 삭제된 개체에 대한 가비지 수집을 지연하는 기능이 비활성화되었습니다. 결과적으로 시간이 오래 걸리는 Ceph Object Gateway를 사용하여 오브젝트를 읽는 것은 가비지 컬렉션 목록에 추가되지 않습니다.