您的位置:首页 > 其它

KFS[CloudStore] 使用fuse挂载方法

2010-12-03 15:24 141 查看
1, 下载fuse-2.8.4.tar.gz
2, tar -xzvf fuse-2.8.4.tar.gz
3, ./configure && make && make install
注:需要root权限
4, echo “/usr/local/lib” >> /etc/ld.so.conf
/sbin/ldconfig
5, /sbin/modprobe fuse

6, 修改kfs-0.5中CMakeLists.txt中的
SET(Fuse_LIBRARY_DIR “/usr/local/lib”)
SET(Fuse_INCLUDE_DIR “/usr/local/include”)
7, 重新编译kfs-0.5 会在bin目录下生成kfs_fuse二进制文件

8, 启动kfs

9, 编写kfs.prp
metaServer.name=10.60.1.125
metaServer.port=20000
注:kfs.prp这个配置的路径是在kfs_fuse_main.cc中写的,
注意启动时kfs.prp与kfs_fuse是在同一个目录下

10, ./kfs_fuse /tmp/kfs-fuse -f 启动

cd /tmp/kfs-fuse 就可以看到当前kfs下的所有数据了

注:kfs-0.5版本中存在bug以及可优化的地方

1, 在fuse_read 和fuse_write 中调用Seek, 判断返回值status应该是大于等于0 而不是等于0
因为status 的值应该是seek后的文件偏移


2, 可以优化的地方,在每次fuse_read 和 fuse_write 时,都会进行open 和close 操作,这样会导致效率上的问题,加入读取很大的数据,导致进行多次open 和 close操作。
优化方法:使用client->Fileno(path) 来获得已经打开的fd ,如果fd不存在的话,再进行Open 操作,在函数结束时不进行


Close 操作,而是将close操作放到fuse_flush函数中(新增的函数),具体作用请参考fuse手册
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: