3P by neo 7달전 | favorite | 댓글 1개

BTFS (BitTorrent 파일 시스템)

BTFS 개요

  • BTFS를 사용하면 .torrent 파일이나 magnet link를 마운트하여 읽기 전용 디렉토리로 사용 가능
  • 애플리케이션에서 파일을 읽을 때 필요한 부분만 다운로드 됨
  • ls, cat, cp 등의 일반적인 도구들이 정상 동작함
  • vlc, mplayer 등의 애플리케이션도 수정없이 사용 가능

사용 예제

$ mkdir mnt
$ btfs video.torrent mnt
$ cd mnt
$ vlc video.mp4

마운트 해제 및 종료:

$ fusermount -u mnt

설치 방법

Debian/Ubuntu

# apt-get install btfs

Arch Linux

# pacman -S btfs

Gentoo

# emerge -av btfs

Fedora

# dnf install fuse-btfs

Fedora OSTree

$ rpm-ostree install fuse-btfs

OpenSUSE

# zypper install btfs 

macOS

Homebrew를 이용한 설치:

$ brew install btfs

의존성 패키지 (Linux)

  • fuse (Ubuntu 16.04에서는 "fuse")
  • libtorrent (Ubuntu 16.04에서는 "libtorrent-rasterbar8")
  • libcurl (Ubuntu 16.04에서는 "libcurl3")

최신 Debian/Ubuntu에서 소스로 빌드하기

$ sudo apt-get install autoconf automake libfuse-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make

설치하려면 추가로:

$ make install

macOS에서 빌드하기

Homebrew로 의존성 패키지 설치:

$ brew install Caskroom/cask/osxfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure 
$ make

설치하려면 추가로:

$ make install

GN⁺의 의견

  • BTFS는 토렌트 파일을 가상의 파일시스템처럼 탐색하고 사용할 수 있게 해주는 흥미로운 프로젝트임
  • 주요 OS들에서 쉽게 설치할 수 있는 것이 장점이지만, FUSE 기반이라 성능이 제한적일 수 있음
  • 토렌트의 특성상 모든 파일이 로컬에 다 있지 않아도 되므로, 제한된 스토리지를 가진 기기에서 유용할 듯
  • 하지만 콘텐츠가 불법 공유된 것일 가능성이 높아 저작권 이슈가 있을 수 있음
  • 개인이 제작하고 공유하는 오픈 소스 프로그램이라 안정성이나 보안 측면에서 주의가 필요함
Hacker News 의견
  • 대규모 조직에서 토렌트 파일 빌더, 트래커, 단순 파일 서버 역할을 하는 서버 프로그램이 있다면 방대한 양의 공용 데이터를 저장할 수 있음
  • 예전에 한 은행을 위해 Ubuntu NetBoot 기반의 최소 패키지로 구성된 리눅스 배포판을 만들었는데, 지점에 서버가 없어서 자가 시딩이 가능했음. Wake-on-lan과 PXE 설정만 되어 있으면 짧은 시간 내에 수백 개의 복제본을 만들 수 있었음
  • 이 도구는 BitTorrent v2의 새로운 기능을 사용하도록 업그레이드되어야 함. 특히 머클 해시 트리는 파일별 해시 트리와 디렉토리 구조를 가능하게 함
  • "손상된" 미디어 파일을 복구해 주는 BTFS가 있으면 좋겠음. 예를 들어 미디어 변환 시 디스크에 스크래치가 있거나 코덱 옵션이 좋지 않아 일부가 누락된 경우 손상된 부분을 다운로드하여 원활하게 수정할 수 있음
  • 이것은 Internet Archive 콘텐츠에 접근하기에 완벽한 클라이언트임. 각 IA 항목에는 자동으로 IA의 웹 시드가 있는 토렌트가 있음
  • 이것이 더 많이 사용되지 않는 이유가 궁금함. BTFS를 오버레이로 사용하여 가상 머신/OS를 구축할 수 있지 않을까? 흥미로운 방향으로 보임
  • 또는 전체 텍스트 검색이 인덱싱된 SQLite 파일로 데이터를 저장하는 것이 더 좋음. 그러면 토렌트를 주문형으로 전체 텍스트 검색할 수 있음