4.6. RADOS
스택 오버플로로 인해 rgw
데몬이 더 이상 충돌하지 않음
이전에는 스택 기반 배열이 할당되는 10,000개 이상의 데몬의 대규모 클러스터에서 스택 오버플로가 발생했습니다. 그 결과 Ceph Object Gateway 데몬이 충돌했습니다.
이번 수정을 통해 Ceph Object Gateway 데몬이 예상대로 작동하므로 변수 길이 배열의 스택 기반 할당이 더 이상 사용되지 않고 스택 오버플로를 방지할 수 있습니다.
풀 제거에서 이제 OSDMap에서 pg_upmap_primary
매핑 제거
이전에는 풀을 삭제해도 OSDMap에서 pg_upmap_primary
매핑이 제거되지 않았습니다. 그 결과 pg_upmap_primary
매핑이 표시되지만 풀과 pgid
가 더 이상 존재하지 않기 때문에 제거할 수 없었습니다.
이번 수정을 통해 이제 OSDMap에서 pg_upmap_primary
매핑이 삭제될 때마다 자동으로 제거됩니다.
삭제된 OSD는 더 이상 ceph node ls
명령으로 나열되지 않습니다.
이전에는 상태를 표시하지 않고 삭제된 OSD가 나열되어 사용자 혼동이 발생하여 cephadm이 스트레이로 잘못 보고했습니다.
이번 수정으로 명령은 제거된 OSD를 표시하기 전에 상태를 확인하여 정확하고 안정적인 출력을 보장합니다.
이제 ISA-L 삭제 코드 플러그인에 대한 AVX512 지원이 활성화되었습니다.
이전 버전에서는 빌드 스크립트의 문제로 인해 플러그인이 AVX512 명령 세트를 활용하지 못했으며 성능 저하로 인해 CPU에서도 AVX512 명령 세트를 사용하지 않았습니다.
이번 수정으로 빌드 스크립트는 AVX512 지원을 올바르게 활성화하여 플러그인이 사용 가능한 CPU 기능을 사용하여 성능을 향상시킬 수 있습니다.
bluefs -- ceph_assert(delta.offset == fnode.allocated)
를 재생하는 동안 여러 OSD가 충돌합니다.
이전에는 RocksDB의 SST 파일이 확장되지 않도록 수정 사항이 구현되었지만 버그가 포함되었습니다. 결과적으로 BlueFS 로그가 손상되어 무시해도 OSD 부팅을 방해하는 오류가 발생했습니다.
이번 수정을 통해 플래그가 오류를 건너 뛰고 BlueFS는 오류가 발생하지 않도록 업데이트됩니다. 이제 RocksDB 디스크 공간 초과 기능을 의도한 대로 방지하기 위한 원본 수정입니다.
경쟁 조건으로 인해 BlueFS 로그가 더 이상 손상되지 않음
이전에는 BlueFS의 truncate 작업과 unlink 작업 간에 드문 조건으로 인해 로그가 삭제된 파일을 참조했습니다. 이로 인해 BlueFS 로그가 손상되어 OSD 시작 중에 어설션 실패를 트리거하여 크래시 루프가 발생했습니다.
이번 수정을 통해 적절한 잠금을 사용하여 작업이 올바르게 정렬되어 로그 손상을 방지하고 어설션 실패를 제거합니다.