使用文件存储

环境依赖

  • 插入内核FUSE模
  • 安装libfuse
modprobe fuse
yum install -y fuse

挂载文件系统

成功创建副本卷后,通过执行如下的命令来挂载卷:

cfs-client -c client.json

执行成功后,可通过df -h命令查看挂载点。如果执行失败,可根据日志目录下的output.log内容进行判断。

配置文件的示例如下:

{
    "mountPoint":"/mnt/cfs",
    "subdir":"/",
    "volName":"vol_test",
    "owner":"test",
    "accessKey":"**********",
    "secretKey":"*********",
    "masterAddr":"192.168.0.1",
    "rdonly":"false",
    "logDir":"/home/service/var/logs/cfs/log",
    "logLevel":"warn",
    "profPort":"192.168.1.1"
}

配置文件中各参数的含义如下表所示:

参数类型含义必需
mountPointstring挂载点是
subdirstring挂载子目录否
volNamestring slice卷名称是
ownerstring卷所有者是
accessKeystring卷所属用户的鉴权密钥是
secretKeystring卷所属用户的鉴权密钥是
masterAddrstringmaster节点地址是
rdonlybool以只读方式挂载,默认false否
logDirstring日志存放路径否
logLevelstring日志级别:debug, info, warn,error否
profPortstringgolang pprof调试端口否

其他配置参数可根据实际场景需要进行设置:

参数类型含义必需
exporterPortstringprometheus获取监控数据端口否
consulAddrstring监控注册服务器地址否
lookupValidstring内核FUSE lookup有效期,单位:秒否
attrValidstring内核FUSE attribute有效期,单位:秒否
icacheTimeoutstring客户端inode cache有效期,单位:秒否
enSyncWritestring使能DirectIO同步写,即DirectIO强制数据节点落盘否
autoInvalDatastringFUSE挂载使用AutoInvalData选项否
writecachebool利用内核FUSE的写缓存功能,需要内核FUSE模块支持写缓存,默认为false否
keepcachebool保留内核页面缓存。此功能需要启用writecache选项,默认为false否
tokenstring如果创建卷时开启了enableToken,此参数填写对应权限的token否
readRateint限制每秒读取次数,默认无限制否
writeRateint限制每秒写入次数,默认无限制否
followerReadbool从follower中读取数据,默认为false否
disableDcachebool禁用Dentry缓存,默认为false否
fsyncOnClosebool文件关闭后执行fsync操作,默认为true否
maxcpusint最大可使用的cpu核数,可限制client进程cpu使用率否
enableXattrbool是否使用xattr,默认是false否
enableBcachebool是否开启本地一级缓存,默认false否
maxStreamerLimitstring开启本地一级缓存时,文件元数据缓存数目否
bcacheDirstring开启本地一级缓存时,需要开启读缓存的目标目录路否

卸载文件系统

执行如下命令卸载副本卷:

umount -l /path/to/mountPoint

/path/to/mountPoint 为客户端配置文件中的挂载路径

开启一级缓存

部署在用户客户端的本地读cache服务,对于数据集有修改写,需要强一致的场景不建议使用。 部署缓存后,客户端需要增加以下挂载参数,重新挂载后缓存才能生效。

./cfs-bcache -c bcache.json

配置文件中各参数的含义如下表所示:

{
   "cacheDir":"/home/service/var:1099511627776",
   "logDir":"/home/service/var/logs/cachelog",
   "logLevel":"warn"
}
参数类型含义必需
cacheDirstring缓存数据的本地存储路径:分配空间(单位Byte)是
logDirstring日志路径是
logLevelstring日志级别是
在github上编辑