검색

1.4. Ceph 파일 시스템 제한 사항 및 POSIX 표준

download PDF

Ceph 파일 시스템은 다음과 같은 방식으로 엄격한 POSIX 의미와 다릅니다.

  • 클라이언트의 파일 쓰기 시도가 실패하면 쓰기 작업이 반드시 원자적이지 않습니다. 즉, 클라이언트는 8MB 버퍼를 사용하여 O_SYNC 플래그로 열린 파일에서 write() 시스템 호출을 호출한 다음 예기치 않게 종료되고 쓰기 작업이 부분적으로만 적용될 수 있습니다. 거의 모든 파일 시스템, 로컬 파일 시스템도 이 동작을 수행합니다.
  • 쓰기 작업이 동시에 발생하는 경우 오브젝트 경계를 초과하는 쓰기 작업이 반드시 원자적이지 않습니다. 예를 들어 작성자 A"aa|aa" 를 작성하고 작성자 B "bb|bb" 를 동시에 씁니다. 여기서 "|" 는 오브젝트 경계이고 "aa|bb" 는 적절한 "aa|aa" 또는 "bb|bb"가 아니라 작성됩니다.
  • POSIX에는 현재 디렉터리 오프셋을 가져오고 다시 검색할 수 있는 telldir()seekdir() 시스템 호출이 포함되어 있습니다. CephFS는 언제든지 디렉터리를 조각화할 수 있으므로 디렉터리에 대한 안정적인 정수 오프셋을 반환하기 어렵습니다. 따라서 제로가 아닌 오프셋에 대한 seekdir() 시스템 호출을 호출하는 것은 종종 작동하지만 그렇게 할 수는 없습니다. seekdir() 을 오프셋 0으로 호출하면 항상 작동합니다. 이는 rewinddir() 시스템 호출과 동일합니다.
  • 스파스 파일은 stat() 시스템 호출의 st_blocks 필드에 잘못 전파됩니다. st_blocks 필드는 항상 블록 크기로 나눈 파일 크기의 quotient에 의해 채워지기 때문에 CephFS는 할당되거나 작성된 파일의 일부를 명시적으로 추적하지 않습니다. 이 동작으로 인해 du 와 같은 유틸리티가 사용된 공간을 과대 평가하게 됩니다.
  • mmap() 시스템 호출이 여러 호스트의 메모리에 파일을 매핑하면 쓰기 작업이 다른 호스트의 캐시로 일관되게 전파되지 않습니다. 즉, 페이지가 호스트 A에 캐시된 후 호스트 B에서 업데이트되면 호스트 A 페이지가 일관되게 무효화되지 않습니다.
  • CephFS 클라이언트에는 스냅샷에 액세스, 생성, 삭제 및 이름을 지정하는 데 사용되는 숨겨진 .snap 디렉터리가 있습니다. 이 디렉터리는 readdir() 시스템 호출에서 제외되지만 이름이 동일한 파일 또는 디렉터리를 생성하려고 하는 모든 프로세스에서 오류를 반환합니다. 이 숨겨진 디렉터리의 이름은 마운트 시 -o snapdirname=.<new_name > 옵션을 사용하거나 client_snapdir 구성 옵션을 사용하여 변경할 수 있습니다.

추가 리소스

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.