4.3. Ceph 파일 시스템
잘못된 헤더로 인해 더 이상 저널 가져오기
중에 세그먼트 오류가 발생하지 않음
이전에는 cephfs-journal-tool
에서 저널 가져오기
작업 중에 헤더를 확인하지 않았습니다. 이로 인해 세그먼트 오류가 발생합니다.
이번 수정을 통해 journal import
명령을 실행할 때 헤더를 확인하고 누락된 헤더를 사용하여 세그먼트 오류가 더 이상 발생하지 않습니다.
재해 복구 중에 CephFS-data-scan
이 예상대로 완료됨
이전 버전에서는 재해 복구 중에 cephfs-data-scan
이 실행되었지만 백추적에서 누락된 디렉터리 조각을 생성하지 않았거나 중복 링크를 생성하지 않은 경우도 있었습니다. 그 결과 디렉터리에 액세스할 수 없거나 MDS가 충돌했습니다.
이번 수정으로 cephfs-data-scan
은 이제 누락된 디렉터리 조각을 올바르게 다시 생성하고 예상대로 중복 링크를 수정합니다.
inode 무효화 작업이 더 빨리 완료됨
이전에는 inode에 대한 추가 참조가 릴리스되지 않은 경우에 사용되었습니다. 결과적으로 inode 무효화가 필요한 작업이 시간 초과가 만료될 때까지 지연되어 속도가 매우 느려졌습니다.
이번 수정을 통해 추가 참조를 방지하여 불필요한 지연 없이 이러한 작업을 훨씬 더 빠르게 완료할 수 있습니다.
NFS 내보내기 디스크 크기보다 큰 공간을 더 이상 할당할 수 없습니다.
이전에는 스토리지 블록이 할당되지 않은 상태에서 빈 파일을 생성할 수 있었습니다. 이러한 빈 파일로 인해 fallocate
와 같은 명령을 사용하여 원하는 파일 영역에 작성할 때 쓰기 작업이 실패할 수 있습니다.
이번 수정으로 "작업이 지원되지 않음" 오류가 있는 NFS 마운트 지점에서 fallocate
명령이 실패하고 스토리지 블록이 할당되지 않은 빈 파일이 생성되지 않습니다.
프록시 데몬 로그가 즉시 업데이트됨
이전에는 프록시 데몬의 로그 메시지가 glibc 라이브러리에 의해 버퍼링되어 로그 파일 업데이트가 지연되었습니다. 결과적으로 크래시 발생 시 일부 로그 항목이 손실되어 문제 해결 및 디버깅이 더 어려워질 수 있었습니다.
이번 수정을 통해 glibc 버퍼링을 우회하여 로그 파일에 직접 메시지를 작성하여 로그가 즉시 표시됩니다.
OSD 전체 조건에서 async 쓰기 교착 상태가 수정됨
이전에는 비동기 쓰기가 진행 중이고 OSD가 가득 차면 클라이언트는 쓰기를 취소하기 위한 알림을 수신했습니다. 쓰기가 취소된 후 호출되는 취소 방법과 콜백은 모두 동일한 잠금을 취득하려고 시도했습니다. 이로 인해 상태가 교착 상태가 되어 OSD 전체 시나리오 중에 클라이언트가 무기한 중단되었습니다.
이번 수정으로 클라이언트 코드의 교착 상태가 해결되었습니다. 결과적으로 OSD 전체 시나리오의 비동기 쓰기로 인해 더 이상 클라이언트가 중단되지 않습니다.
CephFS 가상 확장 속성에 대한 확장된 removexattr
지원
이전에는 적절한 Ceph 가상 확장 속성에서 removexattr
이 지원되지 않아 "No such attribute" 오류와 함께 확장된 속성을 제거하려고 했습니다.
이번 수정으로 removexattr
에 대한 지원이 모든 관련 CephFS 가상 확장 속성을 포함하도록 확장되었습니다. 이제 removexattr
을 올바르게 사용하여 속성을 제거할 수 있습니다. 루트 inode에서 레이아웃을 제거할 수도 있습니다. 레이아웃을 제거하면 구성이 기본 레이아웃으로 복원됩니다.
이제 fail 명령에 대한 상태 경고 검사 중에 MDS 및 FS ID를 확인합니다.
이전에는 ceph mds fail
및 ceph fs fail
명령을 실행할 때 MDS 및 FS ID를 확인하지 않았습니다. 결과적으로 클러스터의 다른 인스턴스에 상태 경고가 표시될 때 정상 MDS 또는 FS 인스턴스에 대한 "권한 거부" 오류와 함께 이러한 명령이 실패합니다.
이번 수정으로 상태 경고 확인 중에 시스템이 MDS 및 FS ID를 검증합니다. 이번 변경으로 클러스터의 다른 MDS 또는 FS 인스턴스에 상태 경고가 있더라도 ceph mds fail
및 ceph fs fail
명령이 정상 인스턴스에 성공합니다.
오류 매핑에 특정 오류 메시지가 표시됨
이전에는 오류 코드를 사용자 메시지에 잘못 매핑하면 일반 메시지가 표시되었습니다. 결과적으로 사용자에게 오류에 대한 특정 세부 정보가 표시되지 않았습니다.
이번 수정을 통해 오류 관련 메시지를 표시하도록 매핑이 수정되어 사용자에게 오류에 대한 자세한 피드백을 받을 수 있습니다.
FSCRYPT는
긴 파일 이름을 해독합니다.
이전에는 원시 암호화된 파일 이름을 보유한 대체 이름이 모든 암호 해독 사례에서 제공되지 않았습니다. 그 결과 긴 파일 이름이 올바르게 해독되지 않았으며 불완전한 디렉터리 항목 데이터가 생성되었습니다.
이번 수정을 통해 암호 해독 중에 대체 이름이 제공되므로 fscrypt
에서 긴 파일 이름을 올바르게 해독할 수 있습니다.
스냅샷 이름이 일반 텍스트로 저장됨
이전에는 fscrypt
키가 있는지 여부와 관계없이 스냅샷을 생성할 수 있었습니다. 키 없이 mgr subvolume snapshot create
명령을 사용하여 스냅샷을 만든 경우 생성 중에 스냅샷 이름이 암호화되지 않았습니다. 결과적으로 일반 텍스트 이름을 해독하려고 하면 읽을 수 없는 출력이 생성되었습니다.
이번 수정으로 스냅샷 이름은 암호화 없이 일반 텍스트로 저장됩니다. 이 변경으로 fscrypt
키가 있는지 여부에 관계없이 스냅샷 이름을 읽을 수 있도록 합니다.