参考资料:
源码安装
1. 编译要求
GCC 4.1.2 或更高版本
CMake 3.0 或更高版本
安装过程可参照我之前的文章https://blog.csdn.net/wu2700222/article/details/89023094
2. 安装依赖
sudo yum install fuse fuse-devel libcurl-devel openssl-devel
3. 采用CMake编译源码并安装
从 GitHub 仓库 yunify/qsfs-fuse clone 源码:
git clone https://github.com/yunify/qsfs-fuse.g
建立 build 目录:
cd qsfs-fuse && mkdir bulid && cd bulid
运行 CMake 命令:
cmake ..
编译并安装
make
make install
查看qsfs是否已生效
[root@ossguazai data_baojunoss]qsfs -V
qsfs version: 1.0.10-1
ok,接下去
1. 配置访问密钥
使用 qsfs,需要有一个配置文件来设置你的访问密钥 (注意需要设置密钥文件的权限为 600)
mkdir /data_baojunoss/key -p
echo YourAccessKeyId:YourSecretKey > /data_baojunoss/key/baojunapi
chmod 600 /data_baojunoss/key/baojunapi
注意
- 密钥对需到 青云控制台 申请并按如上格式写入到密钥配置文件,请不要遗忘中间的冒号分隔符, 不需要添加引号. 例如:
CUEGWBMEUXIRMZUZDFD:jPZNMvFAuVPhycoRKu252rGjtwpYpihVOy5AWo9S
- 如果创建密钥文件为默认路径名(
/etc/qsfs.cred
), 则挂载时不需要指定密钥文件路径.
2. 挂载 Bucket 到本地目录
mkdir -p /data_baojunoss/ossfile
#前台启动 查看详细的日志, 将日志打印到控制台, 添加 -f -d -U 挂载选项将调试日志和 curl 日志打印到控制台
qsfs baojun /data_baojunoss/ossfile -z=pek3b -c=/data_baojunoss/key/baojunapi -o allow_other -f -d -U
#查看挂载情况
df -T | grep qsfs
qsfs fuse.qsfs 1099511627776 212 1099511627564 1% /data_baojunoss/ossfile
后端启动
qsfs baojun /data_baojunoss/ossfile -z=pek3b -c=/data_baojunoss/key/baojunapi -o allow_other
查看挂载情况
df -h
3. 卸载
umount /data_baojunoss/ossfile
4. 测试文件系统操作
cd /data_baojunoss/ossfile
mkdir test
5. 配置开机自动挂载 qsfs
第一步,在 /etc/fstab 文件中添加以下命令行并保存:
echo 'qsfs#baojun /data_baojunoss/ossfile fuse _netdev,-z=pek3b,-c=/data_baojunoss/key/baojunapi,allow_other 0 0' >> /etc/fstab
注意
- 第一项 file system 填写格式为
qsfs#BUCKET_NAME
, 其中BUCKET_NAME
为存储桶名. - 在第四项设置 qsfs 挂载选项时需要使用短选项格式,例如
-c
而不是--credentials
,若配置为默认路径/etc/qsfs.cred
则可不必在命令行中再次设置该选项. 私有云还需要通过-H
选项配置 host.
第二步,执行以下命令验证开机挂载 qsfs 配置的正确性:
mount -a
或者 reoot重启测试一下,ok,结束
注意
- 配置正确则执行命令后不会有信息提示,可通过如下命令检查是否挂载成功:
> df -Th | grep qsfs
- 务必确保挂载目录没有被挂载且该目录为空;如果提示如下信息,可能是挂载目录非空或者已经挂载该目录:
fuse: mountpoint is not empty fuse: if you are sure this is safe, use the 'nonempty' mount option [qsfs ERROR] Unable to mount qsfs
- centos6.5 系统还需要执行以下命令:
> chkconfig netfs on
选项列表
short | full | type | required | usage |
---|---|---|---|---|
-z | --zone | string | Y | 指定 Bucket 所在区域 |
-c | --credentials | string | N | 指定密钥文件路径,默认路径 /etc/qsfs.cred |
-l | --logdir | string | N | 指定输出日志路径,默认路径 /tmp/qsfs_log/ |
-L | --loglevel | string | N | 指定日志级别 (INFO,WARN,ERROR 或者 FATAL),默认级别 WARN |
-F | --filemode | octal | N | 指定挂载目录下文件的访问权限位,默认 644 |
-D | --dirmode | octal | N | 指定挂载目录下文件夹的访问权限位,默认 755 |
-u | --umaskmp | octal | N | 指定挂载目录的权限屏蔽字 (umask) ,该选项需要同 fuse 选项 allow_other 一起使用, 默认 0000 |
-r | --retries | integer | N | 指定请求重试次数 |
-R | --reqtimeout | integer | N | 指定请求时限 (秒),默认 30 秒 |
-Z | --maxcache | integer | N | 指定使用内存缓存容量 (MB),默认 200MB |
-k | --diskdir | string | N | 指定本地缓存路径,确保内存缓存不足时文件缓存成功,默认路径 /tmp/qsfs_cache/ |
-t | --maxstat | integer | N | 指定缓存的元数据最大数量 (K),默认值 20 K |
-e | --statexpire | integer | N | 指定缓存的元数据失效时限 (分钟),给定小于零的值则元数据永不失效,默认元数据不失效 |
-i | --maxlist | integer | N | 指定 ls 操作时的最大文件数量,给定零值则打印出所有文件信息,默认值为零 |
-y | --fscap | integer | N | 指定文件系统容量 (GB), 默认值 1 PB |
-n | --numtransfer | integer | N | 指定文件传输时并行传输数,当需要传输大文件时可以增加该值,默认值 5 |
-b | --bufsize | integer | N | 指定文件传输时每单个传输的缓存空间 (MB),该值必须大于 8MB,默认值 10 MB |
-j | --prefetchsize | integer | N | 指定文件预读最大尺寸 (MB), 默认值 20 MB |
-H | --host | string | N | 指定 host name,默认值 qingstor.com |
-p | --protocol | string | N | 指定 protocol,默认值 https |
-P | --port | integer | N | 指定 port,默认值 443 (https) 或 80 (http) |
-J | --prefetch | bool | N | 开启预读 |
-m | --contentMD5 | bool | N | 开启 MD5 校验保证数据完整性 |
-K | --keeplogdir | bool | N | 开启在启动时不清除日志目录 |
-C | --nodatacache | bool | N | 开启清理文件数据缓存 |
-f | --forground | bool | N | 开启前台模式,将日志打印到控制台并开启 FUSE 前台模式 |
-s | --single | bool | N | 开启 FUSE 单线程开关 |
-d | --debug | bool | N | 开启 debug 模式 |
-g | --fusedbg | bool | N | 开启 FUSE debug |
-U | --curldbg | bool | N | 开启 curl 日志 |
-h | --help | bool | N | 打印 qsfs 帮助 |
-V | --version | bool | N | 打印 qsfs 版本 |
你也可以通过 -o opt [,opt...]
指定 FUSE 特定的挂载选项比如 nonempty,allow_other 等。 详情请参见 FUSE 文档。
帮助
可以通过 -h 参数打印简易帮助文件:
> qsfs -h