S3fs是一款基于FUSE的文件系统适配器,通过S3fs能够使对象存储直接挂载到云平台虚拟机,如云硬盘一般使用,非常的方便。
本教程教你如何在Linux系统上使用S3fs对于Ubuntu 14.04,执行:
sudo apt-get install automake autotools-dev fuse g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config
对于CentOS7,执行:
sudo yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel
而对于CentOS6.5,需要手动更新fuse包,到libfuse 2.8.4。
安装依赖完成后,接着安装S3fs本体:
git clone https://github.com/s3fs-fuse/s3fs-fuse.gitcd s3fs-fuse/./autogen.sh ./configuremakemake install
为了能够对接上KS3对象存储服务,你还需要配置上你的AK(Access Key)和SK(Secret Key)到S3fs的配置文件中,使用以下命令:
echo AK:SK> ~/.passwd-s3fschmod 600 ~/.passwd-s3fs #AK 和 SK 到云平台获取哦
至此安装和配置完成,可以开始使用。例如我们将S3fs挂载到 /mnt/yourname 这个目录,本例中KS3的域名为(ks3-cn-beijing.ksyun.com),注意你的Bucket域名是否匹配。
s3fs 你的桶名 /mnt/yourname -o url=https://ks3-cn-beijing.ksyun.com -o passwd_file=~/.passwd-s3fs
至此,S3fs挂载完成。
-----------分割线--------------
上文讲了基本的挂载方式, 如果对性能有极致要求,下面有一些参数优化请参考
-o allow_other
本参数用于设置挂载目录可以被任意登陆服务器的用户使用,且可以将该挂载目录用于创建NFS/SMB共享。
-o max_write
本参数用于设置vfs的上传块大小,默认值为4096,可将该数值设置为fuse所支持的最大值128k(即设置-o max_write=131072),以提升性能。
-o use_cache
使用内存作为缓存目录,而非本地磁盘作为cache将提升文件读写性能,即将该值设置为-o use_cache=/dev/shm。如果系统内存使用较高则建议另外挂载一个SSD盘作为缓存目录。
-o enable_noobj_cache
使用本参数后,将减少s3fs发送的列举桶的请求,从而提升性能。
-o big writes
开启本参数后,内核会进行IO合并,对于大块读写,提升性能。
-o sigv2
缺省值为采用V4鉴权,使用V2鉴权效率更高,兼容性更好。
-o del_cache
文件使用完成后及时清理缓存中的数据。
-o multipart_size(default="10"(10MB))
设定上传是单个分段的大小,缺省值为10MB,按照对象存储支持最大1万个分段,最大支持上传约98GB的对象。如果待上传的文件大小超过100,000MB,则需要调大该参数,最大支持5120单位为MB(对象存储支持单个分片最大5GB)
关于S3fs,这里还有另一篇文章可以参考:
华为做的优化参数测试:
s3fs obs-hpc-test /data_obs/ -o passwd_file=/root/.passwd-s3fs -o url=http://obs.cn-north-1.myhwclouds.com/ -o allow_other -o umask=0 -o max_write=131072 -o use_cache=/dev/shm -o big_writes -o enable_noobj_cache -o sigv2 -o del_cache