天翼云应用之-对象存储挂载

     最近学习了使用如何使用天翼云对象存储挂载,通过FUSE实现对将对象存储挂载进用户的空间文件系统。

     用户空间文件系统Filesystem in Userspace,简称FUSE)是一个面向类Unix计算机操作系统的软件接口,它使无特权的用户能够无需编辑内核代码而创建自己的文件系统。当前Linux通过内核模块对此进行支持。一些文件系统如ZFS、glusterfs和lustre使用FUSE实现。Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。Linux从2.6.14版本开始通过FUSE模块支持在用户空间实现文件系统。

    这里我们关注的是如何挂载OOS,对于在云上创建OOS一笔带过,介绍主要流程和挂载思路,并分别介绍两种自动挂载方案。

一、天翼云OOS挂载主要流程

1、在天翼云oos中创建容器桶,创建accesskey,记录下容器名(桶名称)、endpoint、ak及sk信息

2、由于目前不是所有区域都支持oos,默认endpoint指向贵州节点(oos-cn.ctyunapi.cn)

其他地域的endpoint列表如下。

地区 OOS   API Endpoint
北京2 oos-bj2.ctyunapi.cn
内蒙 oos-nm2.ctyunapi.cn
长沙 oos-hncs.ctyunapi.cn
西安 oos-snxa.ctyunapi.cn
杭州 oos-hz.ctyunapi.cn
江苏 oos-js.ctyunapi.cn
广州 oos-gz.ctyunapi.cn
北京 oos-hq-bj.ctyunapi.cn
上海 oos-hq-sh.ctyunapi.cn

3、进入客户主机系统安装fuse、编译安装环境及git

4、通过git克隆s3fs-fuse到本地编译安装

5、尝试手工挂载判断前面的桶名、endpoint、ak、sk等信息是否有误

6、设置自动挂载,两种方式(/etc/rc.local或/etc/fstab)

二、下载安装s3fs-fuse到本地的详细命令

yum install -y automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
cd s3fs-fuse
./autogen.sh && ./configure && make && make install

第一行安装系统所需的编译环境与fuse支持,第二行通过git克隆s3fs-fuse的源码到本地目录,第三行进入本地克隆好的目录,第四行通过四条组合命令完成本地编译安装。

还有一种非常简单的安装方式,通过yum安装

yum install epel-release && yum install s3fs-fuse -y

一条命令搞定s3fs-fuse的安装。

三、了解s3fs-fuse的关键信息

s3fs允许Linux和macOS通过FUSE挂载S3存储桶。s3fs保留文件的本机对象格式,与Amazon S3,Google Cloud Storage和其他基于S3的对象存储兼容,天翼云的对象存储就是兼容S3的。

s3fs密码文件的默认位置:

  • 使用用户主目录中的.passwd-s3fs文件(即$ {HOME} /。passwd-s3fs)
  • 使用系统范围的/ etc / passwd-s3fs文件

在文件中输入您的凭据${HOME}/.passwd-s3fs并设置仅所有者权限:

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs比如当前你使用root用户登陆,就在/root/下建立一个密码文件/root/.passwd-s3fs即可,文件采用纯文本形式,格式是ak:sk

四、手工挂载命令

天翼云应用之-对象存储挂载_第1张图片

桶名:mybucket

endpoint:oos-cn.ctyunapi.cn

ak:2d19d9ef0904a4d5accb

sk:94fd08d6517d43393117ae9ba93da8eb452df431

第一步生成用户认证文件

echo "2d19d9ef0904a4d5accb:94fd08d6517d43393117ae9ba93da8eb452df431" > /root/.password-s3fs && chmod 600 /root/.password-s3fs

第二步生成挂载目录

mkdir /home/bucket

第三步完成命令行挂载

s3fs mybucket /home/bucket -o passwd_file=/root/.passwd-s3fs -o url=http://oos-cn.ctyunapi.cn  -o allow_other

 

五、自动挂载两种方式

1、将挂载命令行加入/etc/rc.local实现开机自动挂载

echo "s3fs mybucket /home/bucket -o passwd_file=/root/.passwd-s3fs -o url=http://oos-cn.ctyunapi.cn" >> /etc/rc.local

注意检查/etc/rc.local必须要有可执行权限。

2、利用/etc/fstab实现磁盘自动挂载

第一步编辑/etc/fstab,最后一行加入下面命令

s3fs#mybucket /home/bucket  fuse _netdev,allow_other,use_path_request_style,url=http://oos-cn.ctyunapi.cn/ 0 0

第二步挂载

mount -a

六、debug挂载信息

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o dbglevel=info -f -o curldbg

七、s3fs参数使用说明

-o allow_other

本参数用于设置挂载目录可以被任意登陆服务器的用户使用,且可以将该挂载目录用于创建NFS/SMB共享。

-o umask=0

本参数用于设置挂载挂载后资源的访问权限,确保挂载后所有用户能够对挂载目录下资源具有访问权限。umask与chmod配套,当设置umask=0时对于文件权限为777,若需要设置权限为755则设置umask=022,以此类推配置所需权限

-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

文件使用完成后及时清理缓存中的数据。

 

你可能感兴趣的:(天翼云总结)