시스템이야기2007. 5. 20. 23:27
1. sshfs와 FUSE 개요

얼마전에 'Redhat Enterprise Linux securely mount remote Linux / UNIX directory or file system using SSHFS' 제목의 글을 봤다.
예전에도 sshfs에 대한 글들은 봤으나 사용은 해보지 않다가 scp로 파일 복사를 자주 해야했던 최근 일을 떠올렸다. 좀 더 편하고 나은 방법이 있는데, 굳이 돌아갈 필요가 뭐가 있겠는가. 일상적인 사용을 위해 하나씩 살펴보았다.

ssh를 통해 원격지 파일시스템을 로컬에 마운트하는 sshfs를 사용하기 위해서는 먼저 FUSE가 필요하다.
FUSE(Filesystem in Userspace)은 커널이 아닌 유저공간에서 구현할 수 있는 파일시스템으로 Linux, FreeBSD, Max OSX(MaxFUSE라고 부릅니다.)에서 사용할 수 있다. 이들 OS에서는 FUSE 기반의 다양한 파일시스템을 맛 볼 수 있다.

- 지금 소개하는 sshfs를 비롯하여,
- 리눅스에서 NTFS파일시스템을 사용하기 위한 ntfsmount,
- 리눅스에서 NTFS파일시스템을 읽고 쓸수 있는 Captive NTFS,
  ( Captive NTFS에 대해서는 2003년 11월에 '리눅스에서 NTFS 파일시스템 읽고 쓰기'란 제목의 글을 써둔게 있으니 참고하기 바란다. )
- NTFS파일시스템을 읽고 쓰는 또다른 드라이버인 NTFS-3G,
- BitTorrent 의 파일형식인 .torrent 를 파일시스템으로 마운트하는 BitTorrent File System,
- 오픈솔라리스의 ZFS 파일시스템을 리눅스에서 사용하기 위한 ZFS on FUSE, ( 'Google Summer of Code 2006'의 결과물 중 하나 )
- Gmail을 파일시스템처럼 사용하는 GmailFS

등 FUSE로 인해 파일시스템의 확장은 벽이 없어졌다.
FUSE는 현재 리눅서 커널 2.6.14 이상에 공식적으로 포함되어 있지만, 리눅스 2.6.14이상을 쓰지 않아도 된다. 커널에 포함이 안되어 있을 뿐 FUSE 받아서 설치하면 되니깐.

2. FUSE와 sshfs 설치

FUSE와 sshfs 설치는 너무 쉬우니 간단히 설명한다.

http://fuse.sourceforge.net/ 에서 FUSE 소스를 받는다.
리눅스 커널 2.6.9 이상인 경우는 FUSE 2.6.X 버전을 받고, 커널 2.6.9보다 낮고 2.4.21보다 높으면 FUSE 2.5.x 버전을 받으면 된다.

./configure
make
make install

그리고, /etc/ld.so.conf 에 /usr/local/lib 를 넣고 ldconfig 명령을 내려준다.

sshfs를 설치해보자. sshfs 홈( http://fuse.sourceforge.net/sshfs.html )에서 소스를 받는다.

./configure
make
make install

3. sshfs로 마운트하기

sshfs 명령 사용은 간단하다. ssh와 scp 명령과 비슷하다. 다음 명령을 보면 접속할 서버명과 마운트할 포인트만 지정해주면 끝난다.

$ sshfs truefeel@coffeenix: /home/truefeel/mount/master/
Password: <-- ssh 암호 입력

사용 완료했으면 unmount를 해보자. unmount는 fusermount 명령 또는 umount 명령으로 할 수 있다.

$ fusermount -u /home/truefeel/mount/master/

자세한 글은 http://coffeenix.net/board_view.php?bd_code=1491 에 올려놓았다. (너무 딱딱해지는 블로그가 싫어요. ^^)
Posted by 좋은진호