GN⁺: BTFS: 비트토렌트 파일 시스템
(github.com/johang)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 파일로 데이터를 저장하는 것이 더 좋음. 그러면 토렌트를 주문형으로 전체 텍스트 검색할 수 있음