파일 수준 스냅샷 호스트가 무엇인지 이해하려고 합니다. 어떤 파일 시스템이 이 기능을 지원하는지 아는 사람이 있어서 시도해 볼 수 있습니까?
답변1
먼저, 오픈 소스 프로젝트에 기여하는 데 관심을 가져주신 것을 환영하고 감사드립니다. 아직 보셨는지 모르겠네요https://ceph.com/irc/그리고https://ceph.com/contribute/그렇지 않다면 Ceph 프로젝트에 문의하는 것이 좋은 시작점이 될 수 있습니다.
설명은 꽤 개략적이지만 Dropbox 스타일 버전 제어와 같은 사용 사례가 무엇인지 설명합니다. 안타깝게도 Dropbox(무료 소프트웨어가 아님)는 사용자가 업로드한 파일의 오래된 복사본을 보관합니다. 따라서 파일을 편집하고 실수를 한 경우 실수하기 전의 버전을 복원할 수 있습니다. Dropbox가 수동으로 커밋하는 대신 자동으로 커밋한다는 점을 제외하면 소스 코드 버전 제어와 유사합니다.
btrfs에는 각 하위 볼륨 수준에서 빠르고 저렴한 스냅샷을 생성하는 유사한 기능이 있습니다(하위 볼륨은 단일 디렉터리일 수 있음). 스냅샷은 데이터를 공유하며 수정된 블록만 공유 해제됩니다(기록 중 복사라고도 함).도미나는 그것을 사용해 본 적이 없으며 그 위에 구축된 사용자 친화적인 도구라는 것을 인정합니다. Reflink(버그 차단)는 개별 파일의 쓰기 시 복사 복사본을 만들 수 있는 btrfs의 유사한 기능입니다.
거의 다른 것파일 시스템스냅샷은 비슷한 기능을 제공해야 하며 ZFS도 비슷한 기능을 제공할 수 있다고 생각합니다.
나는 Ceph의 내부를 전혀 모르지만, 경고의 말씀을 드립니다. 이 버그는 아마도 매우 중요한 버그일 것입니다. 잠재적인 노력은 필요에 따라 쓰기가 복제되도록 하는 것뿐만 아니라 효율성을 유지하는 것입니다. 예를 들어 4GB 파일을 덮어쓰고 백만 개의 4K 블록이 장치 전체에서 조각화되는 것을 원하지 않습니다.
답변2
"파일 버전 관리"는 Ceph 문제에서 논의되는 내용에 대한 보다 일반적인 용어입니다. Windows 10의 파일 기록 기능과 Dropbox의 버전 관리 기능은 이전에 접했을 수 있는 좋은 예입니다(두 가지 모두 파일 시스템에서 수행되지는 않지만).
실제로 이 기능을 구현하는 파일 시스템은 다음과 같습니다.
- 파일-11: 클래식 Vax/VMS 및 OpenVMS 파일 시스템. 파일 버전 관리는 VMS 설계의 필수적인 부분이므로 VMS에서 사용하는 기본 파일 시스템이 자연스럽게 이를 지원합니다. 버전 관리가 활성화되면 파일 경로에 대한 특수 구문을 사용하여 이전 버전의 파일에 액세스할 수 있습니다.
- Fossil: Bell Labs에서 200년이 지난 후 Plan 9의 기본 파일 시스템입니다. files-11과 마찬가지로fossil은 처음부터 버전 제어를 위해 설계되었지만 이전 버전에 액세스하는 방법은 files-11과 다릅니다. Fossil에는 이전 버전을 외부 스토리지 시스템(보통 WORM 스타일 파일 시스템인 Venti 실행)에 푸시하는 추가 기능도 있습니다. Plan 9의 기본 파일 시스템은 버전 제어도 지원하고 데이터를 아카이브 스토리지로 푸시할 수도 있었지만 Fossil이 이를 널리 사용할 수 있게 되자 빠르게 사용되지 않게 되었습니다.
- GitFS: GitFS는 특별한 FUSE 기반 Git 버전 제어 시스템 인터페이스입니다. 이를 통해 로컬 파일 시스템과 같은 git 저장소를 마운트하고 변경 사항을 자동으로 커밋할 수 있습니다. 다른 VCS 소프트웨어에서도 비슷한 프로젝트를 본 적이 있습니다. 공식 저장소는여기.
제가 개인적으로 아는 것은 이 세 가지뿐입니다. 일부 분산 파일 시스템도 이것을 지원한다고 생각하지만 이에 대한 경험이 많지 않습니다.
또한 BTRFS나 ZFS 모두 실제로 이를 지원하지 않는다는 점도 주목할 가치가 있습니다. 둘 다 스냅샷을 지원하지만 개별 파일의 스냅샷을 생성할 수는 없습니다(두 가지 모두에 대한 스냅샷은 더 높은 수준으로 작동함). 그러나 둘 다 참조 링크를 지원합니다. 즉, 이 기능을 위에 구현할 수 있지만 기본적으로 수행되는 작업은 아닙니다(OCFS2 및 XFS도 참조 링크를 지원합니다).