FUSE是定义在用户空间(userspace)一组实现文件系统功能的程序,他包括的功能有:
- 简单API实现
- 简单安装
- 用户空间
- 非特权用户可以使用
- kernel 2.4和2.6均可以使用
- 目前比较稳定
其实FUSE只是一个框架(framework),我比较喜欢的是基于它的各种文集系统的实现,比如
bluetooth filesystem
ghoto2 file system
ssh filesystem
flickr filesystem
blog filesystem
gmail filesystem
等。
我测试了一下ssh filesystem,觉得不错。下面是我的安装和测试手记
2)编译安装
$tar -vxzf fuse-2.5.3.tar.gz
$cd fuse-2.5.3 $
./configure --with-kernel=/usr/src/linux
$make && sudo make install
$sudo ldconfig
4)编译安装
$tar -vxzf ssfs-fuse-1.6.tar.gz
$cd sshfs-fuse-1.6
$./configure && make && make instll
5)测试
你可以使用通常的挂载分区的方式挂载远程服务器上的某一个目录,而通过的协议是ssh,比如
#sshfs mlsx@172.16.81.196:/home/mlsx /misc
[root@wgzhao ~]# df -h
Filesystem 容量 已用 可用 已用% 挂载点
/dev/hda5 5.8G 4.6G 987M 83% /
none 248M 0 248M 0% /dev/shm
/dev/hda6 17G 4.1G 13G 25% /home
/dev/hda7 7.9G 4.5G 3.0G 61% /mnt/suse
sshfs#mlsx@172.16.81.196:/home/mlsx 7.5T 0 7.5T 0% /misc
不过它对大小的识别就有点问题了。不管是哪个分区,哪个目录挂载上来,它都识别为7.5T(如果是真的,那该多好)。
这也挂载上来的读写权限是远程机器帐号的uid和gid对应的本地机器的帐号,比如如果远程机器mlsx帐号的uid是500,而我的机器上uid是500的帐号是work,那么/misc的读写权限属于work,其他帐号都没有权限。
你可以这样来挂载
#sshfs mlsx@172.16.81.196:/home/mlsx /misc -o uid=1000,gid=100
uid,gid是对应你本地机器帐号的id号,这样你就可以指定某个帐号来读写了。
卸载的时候,使用下面的命令
#fusermount -u /misc
是不是觉得比scp,sftp要方便很多呢?
同样的,你可以使用它提供的gmail filesystem,blog filesystem等。
而接下来,我要关心的是基于fuse的ZFS,这是sun公司基于solaris提出的一种文件系统,在我的blog中提到过它,而ZFS-FUSE就是基于FUSE来在linux实现ZFS的特性,不过目前还没有实质性的成果,我也下载了它现在推出的最新版本,也能编译通过,但是目前还不知道如何使用,solaris上有专门的视频来告诉你如何使用ZFS,可惜那些功能目前在ZFS-FUSE还没有实现。
让我们期待。