사용자 공간의 파일 시스템

Filesystem in Userspace
사용자 공간의 파일 시스템
안정된 릴리스
3.11.0[1] / 2022년 5월 2일; 3개월 전 (2022년 5월 2일)
저장소
기입처C
운영 체제Unix, Unix 유사
유형파일 시스템 드라이버
면허증.Linux 커널용 GPL, Libfuse용 LGPL, FreeBSD에서의 Simplified BSD, OpenB에서의 ISC 라이선스SD, MacOS 전용
웹 사이트github.com/libfuse/libfuse

Filesystem in USErspace(Filesystem in USE)는 Unix 및 Unix유사한 컴퓨터 운영 체제용 소프트웨어 인터페이스로, 권한이 없는 사용자가 커널 코드를 편집하지 않고 자신의 파일 시스템을 만들 수 있도록 합니다.이는 FUSE 모듈이 실제 커널 인터페이스로의 브리지만 제공하는 동안 사용자 공간에서 파일시스템 코드를 실행함으로써 실현됩니다.

FUSE는 Linux, FreeBSD, OpenBSD, NetBSD(퍼프), OpenSolaris, Minix 3, macOS [2][3]Windows에서 사용할 수 있습니다.

FUSE는 원래 GNU General Public License 및 GNU Lesser General Public License 조건에 따라 출시된 무료 소프트웨어입니다.

역사

FUSE 시스템은 원래 GNU Hurd의 번역기 개념에 크게 영향을 받는 파일 시스템 구현인 AVFS(A Virtual [4]Filesystem)의 일부였습니다.Linux Userland Filesystem을 대체하고 다음 기능을 사용하여 번역 인터페이스를 제공합니다.lufislibfuse1에 있습니다.

FUSE는 원래 GNU General Public LicenseGNU Lesser General Public License의 조건에 따라 출시되었으며, 나중에 FreeBSD 기반 시스템의[5] 일부로 다시 구현되어 Simplified BSD License의 조건에 따라 출시되었습니다.Sylvestre Gallon에 의한 ISC 라이선스 재실장은 2013년 [6]3월에 출시되어 2013년 [7]6월에 OpenBSD에 통합되었습니다.

FUSE는 커널 버전 2.6.[8]14의 메인스트림 Linux 커널 트리에 통합되었습니다.

FUSE의 사용자 공간 측,libfuse 라이브러리는 일반적으로 Linux 커널 개발 속도를 따르면서 BSD 후속 제품과의 "best effort" 호환성을 유지합니다.이는 커널 FUSE가 자체 "기능 수준" 또는 버전을 보고하기 때문에 가능합니다.단,[9] MacOS용 FUSE 포크인 OSXFUSE는 라이브러리를 공유하기에는 너무 많은 차이가 있습니다.libfuse 이력의 단점은 libfuse3입니다.이러한 기능에는 현재 유지보수 모드로 되어 있는 [10]오래된 libfuse2와 비교하여 인터페이스와 퍼포먼스가 몇 가지 비호환적으로 향상되었습니다.

FUSE의 커널 사용자 공간 프로토콜이 버전화되고 공개됨에 따라 프로그래머는 libfuse 대신 다른 코드를 사용하면서도 커널의 FUSE 설비와 통신할 수 있습니다.한편 libfuse와 그 많은 포트는 "FUSE" 기능이 없는 시스템에 구현될 수 있는 높은 수준의 휴대용 인터페이스를 제공합니다.

조작 및 사용방법

FUSE의 구조를 나타내는 흐름도 다이어그램: 사용자 공간에서 파일 목록 요청(ls -l / tmp/fuse)은 커널에서 VFS를 통해 FUSE로 리디렉션됩니다. 그런 다음 FUSE는 등록된 핸들러 프로그램(./hello)을 실행하여 요청을 전달합니다(ls -l /tmp/fuse).핸들러 프로그램은 FUSE로 응답을 반환하고 FUSE는 요청을 처음 수행한 사용자 공간 프로그램으로 리디렉션됩니다.

새 파일 시스템을 구현하려면 제공된 파일에 연결된 처리기 프로그램libfuse라이브러리가 작성되어야 합니다.이 프로그램의 주요 목적은 파일 시스템이 읽기/쓰기/상태 요청에 응답하는 방법을 지정하는 것입니다.이 프로그램은 새 파일 시스템을 마운트하는 도 사용됩니다.파일 시스템이 마운트되면 핸들러는 커널에 등록됩니다.사용자가 새로 마운트된 파일 시스템에 대해 읽기/쓰기/상태 요청을 발행하면 커널은 이러한 IO 요청을 핸들러로 전송하고 핸들러의 응답을 사용자에게 반환합니다.

FUSE 기반의 파일시스템 마운트 해제fusermount명령어

FUSE는 가상 파일 시스템을 쓰는 데 특히 유용합니다.기본적으로 대용량 스토리지의 데이터와 함께 작동하는 기존 파일 시스템과 달리 가상 파일 시스템은 실제로 데이터 자체를 저장하지 않습니다.이들은 기존 파일 시스템 또는 스토리지 디바이스의 보기 또는 번역 역할을 합니다.

원칙적으로 FUSE 구현에 사용할 수 있는 리소스는 파일 시스템으로 내보낼 수 있습니다.

적용들

온디스크 파일 시스템

기존의 온디스크 파일 시스템은 호환성이나 라이선스 등의 이유로 FUSE를 사용하여 사용자 공간에서 구현할 수 있습니다.

  • 리니어 테이프 파일 시스템:자기 테이프에 저장된 파일에 디스크 또는 이동식 플래시 드라이브와 유사한 방식으로 액세스할 수 있습니다.
  • NTFS-3G Captive NTFS 파일 시스템에 액세스할 수 있습니다.
  • retro-fuse: retro-fuse는 사용자 공간의 파일 시스템으로, 오래된 UNIX 시스템에서 만든 파일 시스템을 최신 OS에 마운트하는 방법을 제공합니다.최신 버전의 레트로 퓨즈는 2.9뿐만 아니라 5, 6, 7 Edition의 Research Unix가 BTL에서 작성한 파일 시스템의 마운트를 지원합니다.BSD 및 2.11BSD 기반 시스템

파일 시스템 계층화

FUSE 파일 시스템은 기본 파일 시스템의 뷰를 생성하여 어떤 방식으로든 파일을 변환할 수 있습니다.

  • EncFS: 암호화된 가상 파일 시스템
  • FuseCompress, gzipfs, Fuse-ZIP, CompFUSEd: 압축된 가상 파일 시스템
  • 아카이브 파일 시스템에서도 이 작업을 수행할 수 있습니다.

아카이브 및 백업 파일 시스템

FUSE 파일 시스템은 아카이브 또는 백업 세트의 내용을 먼저 추출할 필요 없이 노출시킬 수 있습니다.

  • 아카이브 마운트
  • Atlas(Rubrik 백업 소프트웨어):Rubrik 클라우드 데이터 관리 데이터 보호 애플리케이션에서 사용하는 불변의 분산 파일 시스템
  • Borg(백업 소프트웨어):백업 아카이브를 FUSE 파일 시스템으로 마운트할 수 있는 중복 제거 백업 프로그램.
  • 레스틱: FUSE를 사용하여 모든 백업 스냅샷을 일반 파일 시스템으로 참조할 수 있는 무료 고속 보안 백업 소프트웨어
  • SPFS Spectrum Protect용 파일 시스템.서버상의 임의의 장소에 백업 서버의 파일 공간을 마운트 해, 백업 서버의 기능(암호화, 중복 배제, 압축, 필터링 등)을 사용합니다.이것은 WORM 파일시스템입니다

원격/분산 파일 시스템 클라이언트

  • CernVM-FS: HTTP 전송을 사용하여 사용자 공간(FUSE)에서 POSIX 파일 시스템으로 구현된 분산 읽기 전용 소프트웨어 배포 시스템. 소프트웨어를 글로벌 규모로 빠르고 안정적으로 제공합니다.
  • CloudStore(구 Kosmos 파일 시스템):FUSE를 통해 마운트함으로써 기존 Linux 유틸리티는 CloudStore와 상호 작용할 수 있습니다.
  • ExpanDrive: FUSE를 사용하여 SFTP/FTP/S3/Swift를 구현하는 상용 파일 시스템
  • FTPFS
  • GlusterFS: 수 페타바이트까지 확장할 수 있는 클러스터 분산 파일 시스템.
  • gofys: 성능에 중점을 두고 Amazon S3/Microsoft Azure 스토리지에 액세스할 수 있는 FUSE 파일 시스템입니다.
  • IPFS: 모든 컴퓨팅 디바이스를 동일한 파일 시스템으로 연결하는 피어 투 피어 분산 파일 시스템.
  • JuiceFS: Redis 및 S3를 기반으로 구축된 분산 POSIX 파일 시스템.
  • KBFS: 엔드 투 엔드의 암호화와 Keybase 기반의 글로벌 네임스페이스를 갖춘 분산 파일 시스템.FUSE를 사용하여 암호화된 보안 파일 마운트를 생성하는 io 서비스입니다.
  • Lustre Cluster 파일 시스템은 FUSE를 사용하여 사용자 공간에서 실행할 수 있도록 하고 FreeB는SD 포트 가능.[11]그러나 Lustre의 ZFS-Linux 포트는 사용자 [12]공간에서 ZFS의 DMU(Data Management Unit)를 실행합니다.
  • MinFS: MinFS는 Amazon S3 호환 객체 스토리지 서버용 퓨즈 드라이버입니다.MinFS를[13] 사용하면 리모트버킷을 (S3 호환 객체스토어에서) 로컬디렉토리와 같이 마운트 할 수 있습니다.
  • MooseFS: FUSE를 구현한 모든 OS(Linux, FreeBSD, NetBSD, OpenSolaris, OS X)에서 사용할 수 있는 오픈 소스 분산 폴트 톨러런스 파일 시스템으로, 1개의 리소스로 표시되는 여러 서버에 걸쳐 페타바이트 단위의 데이터를 저장할 수 있습니다.
  • Nexfs: Block, File 및 S3 호환 Cloud & Object 스토리지를 단일 POSIX 호환 스토리지 풀에 결합한 상용 Linux 파일 시스템.
  • 목적FS: FUSE를 사용한 객체 스토어 백엔드(Amazon S3, Google Cloud Storage 또는 S3 호환 객체 스토어)가 있는 분산 파일 시스템
  • RClone은 FUSE를 사용하여 다양한 원격/클라우드 스토리지를 마운트할 수 있습니다.
  • s3fs: S3 버킷을 로컬 파일 시스템처럼 마운트할 수 있습니다.
  • 섹터 파일 시스템:섹터는 대량의 상용 컴퓨터용으로 설계된 분산 파일 시스템입니다.섹터는 FUSE를 사용하여 마운트 가능한 로컬 파일 시스템 인터페이스를 제공합니다.
  • SSHFS: SSH를 통해 원격 파일 시스템에 액세스할 수 있습니다.
  • 송신:또한 MacFUSE를 통해 WebDAV, SFTP, FTP 및 Amazon S3 서버를 Finder에 디스크로 마운트하는 기능을 추가하는 상용 FTP 클라이언트입니다.
  • WebDrive: WebDAV, SFTP, FTP, FTPS 및 Amazon S3구현하는 상용 파일 시스템
  • 위키백과FS: Wikipedia 문서를 실제 파일처럼 보고 편집합니다.
  • Wuala: 멀티플랫폼, Java 기반의 완전한 OS 통합형 분산 파일 시스템입니다.파일 시스템 통합에 각각 FUSE, MacFUSE 및 CBFS Connect를 사용하고 Java 지원 웹 브라우저에서 액세스할 수 있는 Java 기반 앱(2015년 서비스 중단)을 사용합니다.
  • IndexFS: 분산 파일에 대한 투과적 CURL 액세스를 가진 파일 시스템을 집약하는 원격 파일입니다.

다른.

  • GVfs: GNOME 데스크톱용 가상 파일 시스템
  • rvault: 1회성 패스워드(OTP) 인증을 사용한 봉투 암호화를 사용한 비밀 및 소규모 문서용 안전한 인증 스토어.FUSE를 사용하여 볼트를 파일 시스템으로 노출합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Release libfuse 3.11.0".
  2. ^ "Home - FUSE for OS X".
  3. ^ Zissimopoulos, Bill (2021-02-14), billziss-gh/winfsp, retrieved 2021-02-16
  4. ^ "Some technical advantages of the Hurd". May 15, 2011. Retrieved March 28, 2016.
  5. ^ "WhatsNew/FreeBSD10 - FreeBSD Wiki".
  6. ^ "openbsd dev - tech - Fuse (and sshfs) support for OpenBSD". Archived from the original on 2020-10-26. Retrieved 2013-07-14.
  7. ^ "'CVS: cvs.openbsd.org: src' - MARC".
  8. ^ "file-systems.fuse.devel - FUSE merged to 2.6.14! - msg#00021 - Recent Discussion OSDir.com". Archived from the original on 2016-04-20.
  9. ^ "libfuse/libfuse, the reference implementation of the Linux FUSE (Filesystem in Userspace) interface". libfuse. 9 January 2020. Retrieved 9 January 2020.
  10. ^ "libfuse3 ChangeLog". GitHub. Retrieved 9 January 2020.
  11. ^ "Lustre FreeBSD". Archived from the original on 2008-03-12. Retrieved 2008-03-02.
  12. ^ "Architecture ZFS for Lustre". Sun Microsystems. Archived from the original on 2009-01-22. Retrieved 2008-03-02.
  13. ^ "minio/minfs". GitHub. Retrieved 12 April 2018.

외부 링크