ky818smKy818sm  2022-06-13 21:31 旷野小屋_123ppp资源网 隐藏边栏 |   抢沙发  59 
文章评分 0 次,平均分 0.0

使用限制

ossfs使用有以下限制:

  1. 不支持挂载归档型Bucket。
  2. 编辑已上传文件会导致文件被重新上传。
  3. 元数据操作,例如**list directory**,因为需要远程访问OSS服务器,所以性能较差。
  4. 重命名文件/文件夹可能会出错。若操作失败,可能会导致数据不一致。
  5. 不适合高并发读/写的场景。
  6. 不支持hard link。

注意事项

  1. 在服务器上执行读写操作时,web端可执行删除操作,服务器保存则存在,不保存则删除
  2. 在web端开始下载后,web和服务器执行的删除转移修改内容操作不影响下载,及数据内容

 

1、快速安装
1.下载安装包

以下载CentOS 7.0 (x64)版本为例:

wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm

 

2.CentOS系统安装命令:

sudo yum localinstall your_ossfs_package #你下载的包的名字

 

3.配置账号访问信息。

将Bucket名称以及具有此Bucket访问权限的AccessKeyId/AccessKeySecret信息存放在/etc/passwd-ossfs文件中。注意这个文件的权限必须正确设置,建议设为640。

  1. echo bucket-test:LTAI4GJdAsK6ky****:xuoOmluoxif4R**** > /etc/passwd-ossfs
  2. chmod 640 /etc/passwd-ossfs

 

4.将Bucket挂载到指定目录。

  1. ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
  2. # my-bucket 根据你的bucket更改名字
  3. # my-mount-point 根据您的挂载目录更改
  4. # my-oss-endpoint 根据你的ossfs所在的区域选择不同的Endpoint 对照ecs服务器与ossfs的区域选择外网Endpoint或者内网Endpoint
  5. # 例如香港ossfs与杭州ECS服务器挂载就需要使用香港的外网Endpoint:oss-cn-hongkong.aliyuncs.com 同为香港的ossfs和ECS则可以使用内网Endpoint:oss-cn-hongkong-internal.aliyuncs.com

可以通过此链接访问阿里云域名与数据中心根据自己的oss和ECS去选择url地址

访问域名和数据中心

  1. echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
  2. chmod 640 /etc/passwd-ossfs
  3. mkdir /tmp/ossfs
  4. ossfs bucket-test /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com

 

5.如果你不要继续挂载此Bucket,则可以将其卸载

fusermount -u /opt/ossfs

2、高级操作
配置账号信息

账号配置文件的默认路径为/etc/passwd-ossfs,您也可以通过**-opasswd_file=passwd-path**选项指定配置文件。两者的区别在于:默认路径的权限可以是640,其他路径下的配置文件权限必须是600。

同一个账号配置文件里可以保存多条账号信息,一条记录一行。ossfs会根据挂载的存储空间名称匹配到正确的账号上。

配置文件内格式$bucket_name:$access_key_id:$access_key_secret

  1. echo bucket-test-1:AAAIbZcdVCmQ****:AAA8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
  2. echo bucket-test-2:BBBIbZcdVCmQ****:BBB8x0y9hxQ31coh7A5e2MZEUz**** >> /etc/passwd-ossfs
  3. chmod 640 /etc/passwd-ossfs
  4. mkdir /opt/ossfs-1
  5. mkdir /opt/ossfs-2
  6. ossfs bucket-test-1 /opt/ossfs-1 -ourl=http://oss-cn-hangzhou.aliyuncs.com
  7. ossfs bucket-test-2 /opt/ossfs-2 -ourl=http://oss-cn-hangzhou.aliyuncs.com

 

当需要同时挂载多个存储空间时,您可以将所有的配置信息写到同一个账号配置文件里,也可以将不同的账号信息写到不同的账号配置文件中,通过**-opasswd_file=xxx**

  1. echo bucket-test-3:CCCIbZcdVCmQ****:CCC8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs-3
  2. chmod 600 /etc/passwd-ossfs-3
  3. mkdir /opt/ossfs-3
  4. ossfs bucket-test-3 /opt/ossfs-3 -ourl=http://oss-cn-hangzhou.aliyuncs.com -opasswd_file=/etc/passwd-ossfs-3
  5. echo bucket-test-3:DDDIbZcdVCmQ****:DDD8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs-4
  6. chmod 600 /etc/passwd-ossfs-4
  7. mkdir /opt/ossfs-4
  8. ossfs bucket-test-4 /opt/ossfs-4 -ourl=http://oss-cn-hangzhou.aliyuncs.com -opasswd_file=/etc/passwd-ossfs-4

 

3、配置访问权限

ossfs挂载的目录访问权限默认为挂载点的所有者,即执行挂载命令的用户,其他用户无法访问。如果要修改默认的权限设置,例如允许其他用户或用户组访问挂载点,可以在运行ossfs的时候使用如下参数,做到期望的权限设置。

配置示例:

允许所有用户访问,即权限为777。

  1.     ossfs bucket_name mount_point -ourl=endpoint -oallow_other

 

只允许同组用户访问,即权限为770。

  1.     ossfs bucket_name mount_point -ourl=endpoint -oallow_other -omp_umask=007

 

挂载时指定为其他用户和组,同时只允许同组的用户访问,即权限为770。

以www用户为例说明,先通过id命令获取用户的uid和gid信息,之后在挂载时指定uid和gid参数。

  1.     id www
  2.     uid=1000(www) gid=1000(web) groups=1000(web)
  3.     ossfs bucket_name mount_point -ourl=endpoint -oallow_other -ouid=1000 -ogid=1000 -omp_umask=007

 

4、挂载指定文件目录

ossfs除了可以把整个存储空间挂载到本地文件系统外,还可以通过设置前缀,把存储空间下的某个文件目录挂载到本地文件系统。命令格式如下:

  1. ossfs bucket:/prefix mount_point -ourl=endpoint
  2. 例:将位于杭州地域的存储空间bucket-ossfs-test下的folder目录挂载到/tmp/ossfs-folder下
  3. ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -ourl=http://oss-cn-hangzhou.aliyuncs.com

 

5、开机自动挂载目录

在/etc/init.d/目录下建立文件ossfs,将以下内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。

  1.     #! /bin/bash
  2.     #
  3.     # ossfs      Automount Aliyun OSS Bucket in the specified direcotry.
  4.     #
  5.     # chkconfig: 2345 90 10
  6.     # description: Activates/Deactivates ossfs configured to start at boot time.
  7.     ossfs your_bucket your_mountpoint -ourl=your_url -oallow_other

 

为新建立的ossfs脚本赋予可执行权限:

  1.     chmod a+x /etc/init.d/ossfs

 

命令执行完成后,您可以尝试执行该脚本,如果脚本文件内容无误,那么此时OSS中的Bucket已经挂载到您指定的目录下了。

 

把ossfs启动脚本作为其他服务,开机自动启动:

  1.     chkconfig ossfs on

 

执行上述步骤后,ossfs就可以开机自动挂载了。

6、使用Supervisor启动ossfs
1、安装supervisor。

  1. yum -y install supervisor

 

2、创建ossfs的启动脚本。

创建start_ossfs.sh文件。

  1.     mkdir /root/ossfs_scripts
  2.     vim /root/ossfs_scripts/start_ossfs.sh

 

以下内容写入启动脚本。

  1.     # 卸载
  2.     fusermount -u mount_point    ### mount_point 挂载地址
  3.     # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行。
  4.     exec ossfs bucket_name mount_point -ourl=endpoint -f

 

3、编辑/etc/supervisor/supervisord.conf文件,在最后加入如下内容:

  1. [program:ossfs]
  2. command=bash /root/ossfs_scripts/start_ossfs.sh   ## 脚本地址
  3. logfile=/var/log/ossfs.log
  4. log_stdout=true
  5. log_stderr=true
  6. logfile_maxbytes=1MB
  7. logfile_backups=10

 

4、运行Supervisor。

  1. systemctl start supervisord

 

5、确认运行正常。

  1. ps aux | grep supervisor # 应该能看到Supervisor进程。
  2. ps aux | grep ossfs # 应该能看到ossfs进程。
  3. kill -9 ossfs # 关闭ossfs进程,Supervisor应该会重启它。不要使用killall,因为killall发送SIGTERM,进程正常退出,Supervisor不再去重新运行ossfs。
  4. ps aux | grep ossfs # 应该能看到ossfs进程。

 

7、开启调试日志

在使用ossfs的过程中,可能会遇到一些问题。这个时候需要开启调试日志,通过日志信息分析和定位问题。您可以通过如下方式开启调试日志:

  1. 在挂载目录时添加-d -odbglevel=debug -ocurldbg 日志保存在/var/log/messages中
  2. ossfs wangchentest:/test/ /opt/oss -ourl=oss-cn-hangzhou-internal.aliyuncs.com -oallow_other -d -odbglevel=debug -ocurldbg
  3. 在挂载目录时使用-d -odbglevel=debug -ocurldbg -f选项,ossfs会把日志输出到屏幕上。
  4. ossfs wangchentest:/test/ /opt/oss -ourl=oss-cn-hangzhou-internal.aliyuncs.com -oallow_other -d -odbglevel=debug -ocurldbg -f

 

 

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

声明:如果本站发布的内容侵犯到您的权益,请通过邮件【[email protected]】联系本站,我们将及时删除!

发表评论

表情 格式 链接 私密 签到