버전 관리 파일 시스템

Versioning file system

버전 관리 파일 시스템은 컴퓨터 파일을 여러 버전으로 동시에 존재시킬 수 있는 컴퓨터 파일 시스템입니다.따라서 이것은 리비전 제어의 한 형태입니다.대부분의 일반적인 버전 관리 파일 시스템은 파일의 오래된 복사본을 다수 보유하고 있습니다.일부에서는 사소한 변경을 대량으로 저장하지 않기 위해 분당 또는 시간당 변경 수를 제한합니다.대신 일반 파일 액세스와 유사한 시멘틱스를 사용하여 컨텐츠에 액세스할 수 있는 스냅샷을 정기적으로 생성합니다.

유사한 테크놀로지

지원하다

버전 관리 파일 시스템은 정기 백업과 비슷하지만 몇 가지 주요 차이점이 있습니다.

  • 백업은 일반적으로 시간 단위로 트리거되지만 버전 관리는 파일이 변경될 때 수행됩니다.
  • 백업은 일반적으로 시스템 전체 또는 파티션 전체이며 버전 관리는 파일별로 독립적으로 수행됩니다.
  • 백업은 일반적으로 별도의 미디어에 쓰이고 파일 시스템은 동일한 하드 드라이브(일반적으로 동일한 폴더, 디렉터리 또는 로컬 파티션)에 쓰입니다.

리비전 관리 시스템과의 비교

버전 관리 파일 시스템은 리비전 제어 시스템의 일부 기능을 제공합니다.그러나 대부분의 리비전 제어 시스템과 달리 새로운 리비전을 기록하기 위해 별도의 "커밋" 단계가 필요하지 않으므로 사용자에게 투명합니다.

저널링 파일 시스템

버전 관리 파일 시스템을 저널링 파일 시스템과 혼동해서는 안 됩니다.저널링 파일시스템은 파일시스템에 변경을 커밋하기 전에 파일에 대한 변경내용을 로그에 기록하는 것으로 동작하지만 버전 관리 파일시스템은 새로운 변경을 저장할 때 파일의 이전 복사본을 유지합니다.이 두 기능은 서로 다른 용도로 사용할 수 있으며 상호 배타적이지 않습니다.

오브젝트 스토리지

일부 개체 스토리지 구현에서는 Amazon S3과 같은 개체 버전 관리를 제공합니다.

실장

그것의.

아마도 최초의 버전 관리 구현은 MIT의 ITS에서 이루어졌을 것입니다.ITS 에서는, 파일명은 2개의 6 문자의 부분으로 구성되어 있습니다.두 번째 부분이 숫자(숫자만 포함)인 경우, 버전 번호로 취급됩니다.읽기 또는 쓰기를 위해 열 파일을 지정할 때 ">"의 두 번째 부분을 지정할 수 있습니다.읽을 때 이는 파일의 가장 높은 번호의 버전을 여는 것을 의미하며, 쓸 때 가장 높은 기존 버전 번호를 증가시키고 쓰기용 새 버전을 만드는 것을 의미합니다.

버전화의 또 다른 초기 구현은 TENEX로 TOPS-20이 [1]되었습니다.

파일-11(RSX-11 및 OpenVMS)

파일 버전 관리 시스템의 강력한 예는 Digital Equipment Corporation의 RSX-11 및 OpenVMS 운영 체제에 포함되어 있습니다.기본적으로 응용 프로그램이 쓰기 위해 파일을 열 때마다 파일 시스템은 자동으로 파일의 새 인스턴스를 만들고 이름에 버전 번호를 추가합니다.버전 번호는 1부터 시작하여 파일의 새 인스턴스가 생성될 때 위로 카운트됩니다.응용 프로그램이 읽기 위해 파일을 열 때 버전 번호를 포함한 정확한 파일 이름을 지정하거나 버전 번호 없이 파일 이름만 지정할 수 있습니다. 이 경우 파일의 최신 인스턴스가 열립니다."purge" DCL/CCL 명령어는 특정 디렉토리 내의 버전 수를 관리하기 위해 언제든지 사용할 수 있습니다.기본적으로는 현재 디렉토리에서 가장 높은 번호의 파일을 제외한 모든 파일이 삭제됩니다. 이 동작은 /keep=n 스위치 및/또는 디렉토리 경로 및/또는 파일 이름 패턴을 지정하여 재정의할 수 있습니다.VMS 시스템은 통상적인 스케줄에 따라 사용자 디렉토리를 삭제하기 위해 스크립트로 작성되는 경우가 많습니다.최종 사용자는 이를 버전 관리 시스템의 속성으로 오해할 수 있습니다.

리눅스

2004년 2월 8일, Kiran-Kumar Muniswamy-Reddy, Charles P.Wright, Andrew Himmer, Erez Zadok(모두 Stony Brook University 출신)은 앱을 테스트한 많은 사용자에게 사용하기 쉬운 애플리케이션을 제안했다.이 시스템은 리눅스 소프트웨어로 개발되었기 때문에 처음에 [2]리눅스에서 운영되었다.

  • NILFS - 전체 파일 시스템 버전 관리 및 연속 스냅샷 기능을 지원하는 로그 구조 파일 시스템입니다.이 목록에서는 메인라인 커널에 포함된 안정성이 있는 것은 이것뿐입니다.
  • Tux3 - 가장 최근에 변경된 것은 2014년입니다.[1]
  • 다음 3 - 최신 업데이트는 2012년입니다.
  • ext3cow - 최신 릴리즈는 2005년입니다.

LMFS

Lisp Machine File System은 버전 관리를 지원합니다.이는 MIT, LMI, Symbolics 및 Texas Instruments의 구현에 의해 제공되었습니다.이러한 운영체제는 심볼릭스 속(Symbolics Obtries)이었다.

MacOS

Lion(10.7)부터 macOS에는 Time Machine처럼 이전 버전의 문서를 저장하고 버전을 사용하도록 작성된 애플리케이션을 검색할 수 있는 Versions라는 기능이 있습니다.단, 이 기능은 파일 시스템 [3]계층이 아닌 응용 프로그램 계층에서 실행됩니다.Lion 이후의 릴리스에서는 실제 버전 관리 파일 시스템이 포함되어 있지 않습니다.

SCO Open Server

1995년에 SCO OpenServer의 프라이머리 파일시스템으로 채택된HTFS는 파일버전 관리를 지원합니다.하위 디렉터리가 생성될 때 상속되는 디렉터리의 setuid 비트를 설정하여 디렉터리별로 버전 관리를 사용할 수 있습니다.버전 관리를 사용하도록 설정한 경우 파일 또는 디렉토리가 제거되거나 잘라낸 상태로 기존 파일을 열 때 새 파일 버전이 생성됩니다.최신 버전이 아닌 버전은 파일 시스템 이름 공간에 원래 파일 이름으로 남아 있지만 세미콜론과 버전 시퀀스 번호로 구성된 접미사가 첨부되어 있습니다.현재 버전을 제외한 모든 버전은 디렉토리 읽기에서는 숨겨지지만(SHOWVERSION 환경변수가 설정되어 있지 않은 경우), 그 이외의 버전에서는 모든 통상적인 조작에 액세스 할 수 있습니다.환경변수와 일반 접근성을 통해 일반적인 파일 시스템 유틸리티를 사용하여 버전을 관리할 수 있습니다.단, 파일 삭제 및 복원, 디렉토리 버전 관리 활성화 및 비활성화 등에 사용할 수 있는 "unelete" 명령도 있습니다.

다른이들

  • Subversion에는 "autoversioning"이라는 기능이 있습니다.이 기능을 통해 서브버전 백엔드가 있는 WebDAV 소스를 이러한 종류의 마운트를 지원하는 시스템(Linux, Windows 등)에 파일 시스템으로 마운트하고 해당 파일 시스템에 저장하면 리비전 제어 [4]시스템에 새로운 리비전이 생성됩니다.
  • 상용 Clearcase 구성 관리 및 리비전 제어 소프트웨어는 또한 1990년대 초부터 HP-UX, AIX 및 Windows에서 "MVFS"(멀티 버전 파일 시스템)를 지원해왔다.

관련 소프트웨어

다음은 버전 파일 시스템이 아니지만 유사한 기능을 사용할 수 있습니다.

  • APFS[5]ZFS는 즉각적인 스냅샷 및 클론을 지원합니다.
  • Btrfs[6]스냅샷을 지원합니다.
  • DragonFlyBSD의 HAMMER는 파일 시스템에 리비전을 저장할 수 있습니다.
  • 스냅숏지원하는 NILFS.
  • 플랜 9의 Fossil 파일 시스템도 같은 기능을 제공하여 정기적인 스냅샷(대부분 매시간)을 작성하여 다음 사이트에서 사용할 수 있도록 할 수 있습니다./n/snapForse는 스냅샷을 Venti에 영구 아카이브하고(보통 매일 1개의 스냅샷), /n/dump로 사용할 수 있도록 할 수 있습니다.스냅샷 간격 동안 파일을 여러 번 변경하면 다음 스냅샷에 가장 최근의 스냅샷만 기록됩니다.
  • Write Anywhere File Layout - NetApp의 스토리지 솔루션은 WAFL이라는 파일 시스템을 구현합니다. WAFL은 스냅샷 기술을 사용하여 모든 파일의 다양한 버전을 주위에 보관합니다.
  • Satoru Takabayashi가 작성한 pdumpfs는 Ruby로 구현된 Plan 9의 /n/dump와 유사한 간단한 일일 백업 시스템입니다.이것은 스냅숏툴로서 기능합니다.이것에 의해, 하드 링크를 사용해 디렉토리 전체를 다른 장소에 카피할 수 있습니다.정기적으로 사용하면 버전 [7]관리와 유사한 효과를 얻을 수 있습니다.
  • Microsoft Windows
    • 섀도 복사 - Microsoft가 Windows Server 2003에서 도입한 기능입니다.섀도 복사를 사용하면 특정 시점의 특정 볼륨에 있는 파일 또는 폴더의 수동 또는 자동 백업 복사본 또는 스냅샷을 만들 수 있습니다.
    • RollBack Rx - 디스크 파티션의 스냅샷을 만들 수 있습니다.각 스냅샷에는 이전 스냅샷 간의 차이만 포함되어 있으며 생성하는 데 몇 초밖에 걸리지 않습니다.Windows OS를 안정적으로 유지하거나 말웨어로부터 보호할 수 있습니다.
    • GoBack (단종) - Symantec의 Windows용 GoBack 소프트웨어를 사용하면 파일, 디렉토리 또는 디스크를 이전 상태로 되돌릴 수 있습니다.최대 8GB의 변경 내용을 기록할 수 있으며, 높은 I/O 작업이 발생할 경우 각 변경 사항 기록을 일시적으로 중지합니다.
    • Versomatic - Acertant의 Versomatic 소프트웨어는 파일 변경을 자동으로 추적하고 파일 복사본을 수정하기 전에 미리 아카이브합니다.
  • 캐스케이드 파일 시스템은 파일 시스템 드라이버를 통해 Subversion 또는 Perforce 저장소를 표시합니다.사용자는 여전히 변경을 커밋할 시기를 명시적으로 결정해야 합니다.
  • git 구현 문서는 git을 "VCS 사용자 인터페이스가 [8]위에 기록된 컨텐츠 주소 지정 가능 파일 시스템"이라고 부릅니다.또한 마운트 가능한 읽기/쓰기 버전 파일 [9]시스템으로 git를 확장할 수 있는 서드파티 FUSE 구현도 존재합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 대니얼 G. 보브로, 제리 D.버치피엘, 다니엘 L.머피, 레이먼드 STomlinson, TENEX, PDP-10을 위한 페이지별 시간 공유 시스템 (ACM 통신, Vol. 15, 페이지 135-143, 1972년 3월)
  2. ^ Kiran-Kumar Muniswamy-Reddy, Charles P. Wright, Andrew Himmer, and Erez Zadok (8 February 2004). "A Versatile and User-Oriented Versioning File System". FiST: Stackable File System Language and Templates.{{cite web}}: CS1 maint: 여러 이름: 작성자 목록(링크)
  3. ^ "Mac OS X Lion file versions, part 2". 6 August 2011. Retrieved 28 April 2012.
  4. ^ 서브버전을 사용한 버전 관리:차세대 오픈 소스 버전 관리
  5. ^ "About Apple File System". Apple Developer Documentation. Retrieved 2021-06-09.{{cite web}}: CS1 maint :url-status (링크)
  6. ^ http://www.oracle.com/technetwork/articles/servers-storage-admin/advanced-btrfs-1734952.html Snapshots, Clones, and Seed Devices의 서브 글머리 기호.
  7. ^ pDumpFS 홈페이지
  8. ^ "Git Internals". Git is fundamentally a content-addressable filesystem with a VCS user interface written on top of it.
  9. ^ "What is Gitfs". Presslabs. 24 July 2015. Retrieved 2022-03-07.

외부 링크