1. 개요
sshfs는 ssh기반의 파일시스템이다.
요즘 거의 대부분의 시스템에서 ssh를 사용하기때문에 서버에서 특별한 작업은 필요가 없다.
단지, 클라이언트에서 ssh 사용하듯이 클라이언트의 특정 마운트포인터를 지정해주고 접속하면 된다.
이런 개념은 LUFS 에서 차용했었고 굉장히 유효하여 nfs가 가지고 있는 고질적인 문제들(보안,권한)을 완전히 대체할 수 있는 획기적인 파일시스템이다.
리눅스에서 sshfs를 사용하기 위해선 FUSE 관련 패키지가 설치되어야 하는데 커널버전 2.6.14 이후엔 자동 포함되어 있다.
그 이전버전이라도 수동으로 설치하면 된다.
2. 현재상황 및 시스템 상태
이런 상황을 가정해 본다.
desktop이 2대 있는데 하나(A 시스템:1.1.1.50)는 리눅스이고 또다른 하나(B 시스템:1.1.1.200)는 윈도우즈/리눅스를 멀티부팅해서 사용한다.(B 시스템은 거의 리눅스로 부팅한다)
A에서 mplayer로 B의 ntfs 파티션에 저장되어 있는 영화를 볼려고 한다.
원래 나의 계획은 B 시스템의 ntfs 를 자동마운트 시켜놓고 A 시스템에서 nfs 로 마운트해서 접근하려고 했지만 nfs로 ntfs 파일시스템에 access 할 수 없었다.
해결책은 있지만(ntfs-3g로 검색) 구질구질한 nfs 말고 다른 방법을 찾다가 sshfs를 적용시키기로 했다.
즉,
B 시스템에서 ntfs로 마운트 시켜놓고 A 시스템에서 sshfs로 마운트해서 A 시스템의 mplayer로 영화를 보는것이다.
3. 구현
영화파일이 있는 시스템 설정(1.1.1.200)
sshd이 구동되어야 한다.
부팅시 ntfs 파티션이 자동 마운트되게 했다.
# cat /etc/conf.d/local.start
/bin/mount -t ntfs -o utf8 /dev/hda5 /mnt/win &> /dev/null
끝이다.
mplayer가 있는 시스템 설정(1.1.1.50)
sshfs 관련 패키지를 emerging한다.
# emerge -pv sshfs-fuse
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] dev-libs/glib-2.12.13 USE="-debug -doc (-hardened)" 0 kB
[ebuild N ] sys-kernel/gentoo-sources-2.6.22-r5 USE="-build -symlink" 44,162 kB
[ebuild N ] sys-fs/fuse-2.6.4-r1 0 kB
[ebuild N ] sys-fs/sshfs-fuse-1.6 0 kB
Total: 4 packages (4 new), Size of downloads: 44,162 kB
# emerge sshfs-fuse
홈디렉토리에 sshfs/ 디렉토리(mount pointer)를 생성한다.
주의할 점은 mount pointer는 자신이 access 가능한 권한이어야 한다는 것이다.
$ sshfs root@1.1.1.200:/mnt/win ~/sshfs/
Password: *****
$ ls ~/sshfs/mnt/win/
...
$ gmplayer ~/sshfs/mnt/win/speed_1.avi
언마운트는 fusermount -u 또는 umount를 사용한다.
$ umount ~/sshfs/ 또는 fusermount -u ~/sshfs/
4. 참조 url
http://fuse.sourceforge.net/sshfs.html
http://coffeenix.net/board_print.php?bd_code=1491
http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/
sshfs는 ssh기반의 파일시스템이다.
요즘 거의 대부분의 시스템에서 ssh를 사용하기때문에 서버에서 특별한 작업은 필요가 없다.
단지, 클라이언트에서 ssh 사용하듯이 클라이언트의 특정 마운트포인터를 지정해주고 접속하면 된다.
이런 개념은 LUFS 에서 차용했었고 굉장히 유효하여 nfs가 가지고 있는 고질적인 문제들(보안,권한)을 완전히 대체할 수 있는 획기적인 파일시스템이다.
리눅스에서 sshfs를 사용하기 위해선 FUSE 관련 패키지가 설치되어야 하는데 커널버전 2.6.14 이후엔 자동 포함되어 있다.
그 이전버전이라도 수동으로 설치하면 된다.
2. 현재상황 및 시스템 상태
이런 상황을 가정해 본다.
desktop이 2대 있는데 하나(A 시스템:1.1.1.50)는 리눅스이고 또다른 하나(B 시스템:1.1.1.200)는 윈도우즈/리눅스를 멀티부팅해서 사용한다.(B 시스템은 거의 리눅스로 부팅한다)
A에서 mplayer로 B의 ntfs 파티션에 저장되어 있는 영화를 볼려고 한다.
원래 나의 계획은 B 시스템의 ntfs 를 자동마운트 시켜놓고 A 시스템에서 nfs 로 마운트해서 접근하려고 했지만 nfs로 ntfs 파일시스템에 access 할 수 없었다.
해결책은 있지만(ntfs-3g로 검색) 구질구질한 nfs 말고 다른 방법을 찾다가 sshfs를 적용시키기로 했다.
즉,
B 시스템에서 ntfs로 마운트 시켜놓고 A 시스템에서 sshfs로 마운트해서 A 시스템의 mplayer로 영화를 보는것이다.
3. 구현
영화파일이 있는 시스템 설정(1.1.1.200)
sshd이 구동되어야 한다.
부팅시 ntfs 파티션이 자동 마운트되게 했다.
# cat /etc/conf.d/local.start
/bin/mount -t ntfs -o utf8 /dev/hda5 /mnt/win &> /dev/null
끝이다.
mplayer가 있는 시스템 설정(1.1.1.50)
sshfs 관련 패키지를 emerging한다.
# emerge -pv sshfs-fuse
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] dev-libs/glib-2.12.13 USE="-debug -doc (-hardened)" 0 kB
[ebuild N ] sys-kernel/gentoo-sources-2.6.22-r5 USE="-build -symlink" 44,162 kB
[ebuild N ] sys-fs/fuse-2.6.4-r1 0 kB
[ebuild N ] sys-fs/sshfs-fuse-1.6 0 kB
Total: 4 packages (4 new), Size of downloads: 44,162 kB
# emerge sshfs-fuse
홈디렉토리에 sshfs/ 디렉토리(mount pointer)를 생성한다.
주의할 점은 mount pointer는 자신이 access 가능한 권한이어야 한다는 것이다.
$ sshfs root@1.1.1.200:/mnt/win ~/sshfs/
Password: *****
$ ls ~/sshfs/mnt/win/
...
$ gmplayer ~/sshfs/mnt/win/speed_1.avi
언마운트는 fusermount -u 또는 umount를 사용한다.
$ umount ~/sshfs/ 또는 fusermount -u ~/sshfs/
4. 참조 url
http://fuse.sourceforge.net/sshfs.html
http://coffeenix.net/board_print.php?bd_code=1491
http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/

댓글을 달아 주세요
저도 예전에 잠깐 쓰다가 쓸일이 없어져서 잊고 있었는데 속도는 어떤가요?
로컬 시스템의 다른 파티션을 마운트하는 느낌이라서 속도가 어떠한 제약을 준다는 느낌은 못받았습니다.
속도도 그렇지만 무엇보다도 사용하기 편리하다는 점과 세팅에 많은 노력이 들지않다는 점이 매력적이지요.