客户端访问天翼云oos(对象存储)的方法

阿里云的oss有自己客户端工具 ossexplort 和对应的命令工具,天翼云的oos 自己没有提供对应的工具,但天翼云的oos兼容亚马逊的 S3存储,所以,可以使用s3fs 工具来直接mount bucket来访问 步骤...

阿里云的oss有自己客户端工具 ossexplort 和对应的命令工具,天翼云的oos 自己没有提供对应的工具,但天翼云的oos兼容亚马逊的 S3存储,所以,可以使用s3fs 工具来直接mount bucket来访问

步骤如下:

1·,git clone https://github.com/s3fs-fuse/s3fs-fuse.git

2,安装依赖库文件 yum install -y yum install libcurl-devel  libxml2-devel fuse-devel autoconf automake

3,cd s3fs-fuse  && ./autogen.sh 产生 configure文件

4,./configure --prefix=/usr/local/s3fs;make;make install

5,把s3fs 命令加入环境变量

6,建立accessID和secrect_key 文件 

echo 9bc1514d2432943ca9e8:5483a95744a36ba8eee984710c539118a5908ae3 > ~/.passwd-s3fs

冒号前面是accessId,后面是secrect_key

7,chmod 600 ~/.passwd-s3fs     否则使用s3fs 挂在时候报 权限错误

8,s3fs dqnfile /mnt -o passwd_file=/root/.passwd-s3fs  -o url=http://oos-gz.ctyunapi.cn -o use_path_request_style

9,卸载的时候,使用 umount /mnt 即可,如果kill 进程会导致:cannot access /mnt: Transport endpoint is not connected

只需要 umount /mnt 目录即可

  • 卸载命令fusermount -u /root/s3fs-test/或umount -l /root/s3fs-test/
  • 10,参数调优
  • 参数调优

    从性能优化的角度,推荐的一组挂载参数

    s3fs bucket_name /root/s3fs-test -o passwd_file=/root/.passwd-s3fs -o url=http://192.168.56.103:7480 -o use_path_request_style -o allow_other -o umask=0 -o use_cache=/dev/shm -o enable_noobj_cache -o sigv2 -o del_cache -o multipart_size=64 -o max_write=131072 -o big_writes -o kernel_cache -o max_background=1000 -o max_stat_cache_size=100000 -o parallel_count=30 -o multireq_max=30 -o dbglevel=warn

     

    -o allow_other

    本参数用于设置挂载目录可以被任意登录服务器的用户使用。

     

    -o umask=0

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

     

    -o use_cache

    使用内存作为缓存目录,而非本地磁盘作为cache将提升文件读写性能,即将该值设置为-o use_cache=/dev/shm。如果系统内存使用较高,则建议另外挂载一个SSD盘作为缓存目录。

     

    -o enable_noobj_cache

    使用本参数后,将减少s3fs发送的列举桶的请求,从而提升性能

     

    -o sigv2

    缺省值为采用V4鉴权,使用V2鉴权效率更高,兼容性更好

     

    -o del_cache

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

     

    -o multipart_size(default=”10”(10MB))

    设定上传是单个分段的大小,缺省值为10MB。

     

    -o max_write

    本参数用于设置vfs的上传块大小,默认值为4096,可将该数值设置为fuse所支持的最大值128k(即设置-o max_write=131072),以提升性能。

     

    -o big_writes

    开启本参数后,内核会进行IO合并,对于大块读写,提升性能。

     

    -o kernel_cache

    支持 s3fs 安装点上的内核缓冲区高速缓存。这意味着对象将仅由 s3fs 读取一次,因为同一文件的重复读取可以通过内核的缓冲区高速缓存进行处理。内核缓冲区高速缓存将仅使用未被其他进程使用的可用内存。如果在存储区安装期间预期存储区对象会被其他进程/机器覆盖,并且您的用例需要实时访问最新的内容,那么建议不要使用此选项。

     

    -o max_background

    可提高 s3fs 并行文件读取性能。缺省情况下,FUSE 支持最多 128 KB 的文件读请求。当要求读取的对象超过此大小时,内核会将大请求拆分为较小的子请求,并允许 s3fs 以异步方式处理这些子请求。max_background 选项用于设置此类并行异步请求的全局最大数目。缺省情况下,此值设置为 12,但将其设置为任意高值 (1000) 可避免读请求被阻止,即使同时读取大量文件。

     

    -o max_stat_cache_size

    可减少 s3fs 发送的冗余 HTTP HEAD 请求数,并缩短列出目录或检索文件属性所用的时间。典型的文件系统用法会通过 stat() 调用频繁访问文件的元数据,该调用将映射到对象存储系统上的 HEAD 请求。缺省情况下,s3fs 会高速缓存最多 1000 个对象的属性(元数据)。每个高速缓存的条目最多需要 0.5 KB 内存。理想情况下,您会希望高速缓存能够保存存储区中所有对象的元数据。但是,您可能需要考虑这种高速缓存对内存使用量的影响。将其设置为 100000 需要的内存不超过 0.5 KB * 100000 = 50 MB。

     

    -o parallel_count

    设置每个文件读/写操作中并行发送给 ZOS 的最大请求数。缺省情况下,此值设置为 5。对于超大对象,可以通过增大此值来获取更多吞吐量。与先前选项一样,如果只读取每个文件的少量数据,请使此值保持较小。

     

    -o multireq_max

    列出目录时,会针对列表中的每个对象发送对象元数据请求 (HEAD),除非在高速缓存中找到元数据。此选项用于限制针对单个目录列示操作发送到 ZOS 的此类并发请求数。缺省情况下,此值设置为 20。请注意,此值必须大于或等于上面的 parallel_count 选项。

     

    -o dbglevel

    将调试级别设置为 warn,而不设置为缺省值 (crit),以将消息记录到 /var/log/messages

  • 发表于 2020-09-10 23:53
  • 阅读 ( 59 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
石天
石天

437 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章