【教程】使用S3fs让ECS虚拟机直接挂载OBS对象存储桶

阿里云服务器优惠

S3fs是一款基于FUSE的文件系统适配器,通过S3fs能够使对象存储直接挂载到ECS虚拟机,如云硬盘一般使用,非常的方便。
本教程教你如何在Linux系统上使用S3fs

首先需要在操作系统上装好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.git<br/>cd s3fs-fuse<br/>./autogen.sh<br/>./configure<br/>make<br/>sudo make install

为了能够对接上OBS对象存储服务,你还需要配置上你的AK(Access Key)和SK(Secret Key)到S3fs的配置文件中,使用以下命令:
sudo echo 你的AK:你的SK > /etc/passwd-s3fs<br/>sudo chmod 600 /etc/passwd-s3fs

至此安装和配置完成,可以开始使用。例如我们将S3fs挂载到 /mnt/yourname 这个目录,本例中OBS的域名为(obs.myhwclouds.com),注意你的桶的OBS域名是否匹配。
s3fs 你的桶名 /mnt/yourname -o url=http://obs.myhwclouds.com -o passwd_file=/etc/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,这里还有另一篇文章可以参考:http://aliyun.yundashi168.com/669.html