Linux
本文介绍如何使用Rclone工具,将对象存储MOS挂载到Linux系统。
挂载步骤¶
安装依赖软件:FUSE¶
执行以下命令安装依赖软件:
BC-Linux, CentOS:
sudo yum install -y fuse
sudo apt install -y fuse
MacOS: macfuse-4.4.2.dmg
安装Rclone¶
-
二进制安装 浏览器访问:https://rclone.org/downloads/,找到对应的版本下载
-
自动安装脚本
sudo -v ; curl https://rclone.org/install.sh | sudo bash
配置MOS连接信息¶
创建用于配置MOS连接信息的文本文件,模板如下:
[MOS]
type = s3
provider = Minio
access_key_id = XXXXXXXX
secret_access_key = XXXXXXXXXXXXXXXX
endpoint = http://s3.mediacloud.imgo.tv
location_constraint =
acl = private
配置项说明
名称 | 说明 | 是否必选 | 备注 |
---|---|---|---|
MOS | 配置项名称,由用户自定义 | 是 | |
type | 存储类型 | 是 | 值固定为:s3 |
provider | 服务提供商 | 是 | 值固定为:Minio |
env_auth | 是否开启验证 | 否 | 默认值为:false |
access_key_id | 用户API认证信息中的AccessID | 是 | 获取方式参见【附录】-【如何获取用户API认证信息】 |
secret_access_key | 用户API认证信息中的AccessSecretKey | 是 | 获取方式参见【附录】-【如何获取用户API认证信息】 |
endpoint | 对象存储服务接口地址 | 是 | 获取方式参见【附录】-【如何获取对象存储服务接口地址】;默认采用HTTPS协议。如果需使用不支持HTTPS协议的内网地址,需要在地址前加上:http:// |
location_constraint | 对象存储服务的Location,必须与接口地址相匹配 | 否 | 获取方式参见【附录】-【如何获取对象存储服务接口地址】;该设置仅在创建桶时使用,如无需创建桶,可不设置。 |
acl | 默认权限 | 否 | 默认值:private,可选值: private、public-read、public-read-write、authenticated-read。 |
storage_class | 上传对象时的存储类型 | 否 | 默认值:空(使用桶的默认存储类型),可选值:空、STANDARD、GLACIER、STANDARD_IA。 |
挂载MOS¶
挂载的命令如下:
sudo mkdir -p /mnt/mos
sudo rclone mount MOS:test-bucket /mnt/mos --daemon --allow-other --config /opt/rclone/rclone.conf --cache-dir /tmp/rclone --vfs-cache-mode writes
- /mnt/mos:挂载到本地的文件夹路径,该文件夹必须存在,且必须为空;
- MOS:自定义的连接别名;
- test-bucket:需要挂载的桶名;
- 挂载命令的参数,详细说明请参考【附录】-【挂载命令参数说明】。
- 挂载成功后,用户即可浏览桶中的文件,并且可以进行上传、下载、新建和删除等常用操作。
提示
- 需要挂载的桶名可以不设置。此时用户所有的桶都将以文件夹的形式列出。
- 全局资源池不支持此模式,每个桶都需要单独挂载;
- 若对存储桶对应的文件夹进行删除操作,无论存储桶是否存在文件,桶都将会被删除,请谨慎操作。
- 若对存储桶对应的文件夹进行改名操作,会导致MOS存储桶名称发生改变,并且桶的设置会丢失,请谨慎操作。
- 如果执行挂载命令的进程(包括重启电脑)结束,挂载操作就会终止。
- 如果挂载操作是以后台进程的方式执行(–daemon),可通过以下命令结束挂载:
sudo fusermount -u /mnt/mos
,其中“/mnt/mos”为挂载的路径。
设置开机自动挂载¶
由于执行挂载命令的进程一旦被结束后(包括重启电脑),挂载将会终止。
因此可以通过设置自启动,实现服务器启动后自动挂载的目的。
设置步骤如下:
- 创建配置文件
在目录"/etc/systemd/system/"下创建挂载配置文件(mnt-mos.mount),模板如下:
[Unit]
After=network-online.target
[Mount]
Type=rclone
What=MOS:test-bucket
Where=/mnt/mos
Options=rw,allow_other,args2env,vfs-cache-mode=writes,config=/opt/rclone/rclone.conf,cache-dir=/tmp/rclone
注意
- What:需要挂载的MOS配置别名和桶名;
- Where:挂载路径,并且文件名mnt-mos.mount必须和挂载路径匹配(路径中的"/"替换成"-");
- Options:挂载命令的参数,详细说明请参考【附录】-【挂载命令参数说明】。
在目录"/etc/systemd/system/"下创建挂载自动配置文件(mnt-mos.automount),模板如下:
[Unit]
After=network-online.target
Before=remote-fs.target
[Automount]
Where=/mnt/mos
TimeoutIdleSec=600
[Install]
WantedBy=multi-user.target
注意
- Where:挂载路径;自动挂载配置的文件名必须和挂载配置的文件名相同。
-
开启自动挂载:
sudo ln -s /usr/bin/rclone /sbin/mount.rclone sudo mkdir -p /mnt/mos sudo systemctl --now enable mnt-mos.automount
-
查看挂载状态:
systemctl status mnt-mos.automount
如需停止自动挂载:
sudo systemctl stop mnt-mos.automount
sudo systemctl disable mnt-mos.automount
挂载参数说明¶
挂载命令的详细参数如下:
-
--attr-timeout 文件/文件夹的属性的缓存时长 1s
-
--allow-other 允许其它用户访问 无
- --allow-root 允许root用户访问 无
- --config 指定配置文件的路径,未指定时将使用默认路径下的配置文件 无 可通过命令"rclone config paths"查看默认值
- --cache-dir 指定缓存路径 无 可通过命令"rclone config paths"查看默认值
- --daemon 是否在后台运行 无
- --dir-cache-time 文件夹结构的缓存时长 5m0s
- --dir-perms 文件夹的权限 0777
- --file-perms 文件的权限 0666
- --log-file 指定日志文件路径 无
- --no-checksum 上传/下载时不对比 未设置
- --no-modtime 不读取/写入文件的修改时间 未设置 设置后能够提高性能
- --no-seek 不允许对文件执行seek操作 未设置
- --poll-interval 轮询时间,必须和--dir-cache-time保持一致 1m0s 设置为0时关闭
- --read-only 以只读的方式挂载 未设置
- --transfers 文件并发上传/下载数目 4 仅当缓存模式为“writes”或“full”时有效
- --vfs-cache-max-age 文件最大缓存时长 1h0m0s
- --vfs-cache-max-size 缓存中所有文件最大的总大小 off
- --vfs-cache-mode 缓存模式,支持:off|minimal|writes|full off off:不使用缓存,文件上传失败后不会重试; minimal:使用最少的缓存,文件上传失败后不会重试; writes:仅上传文件使用缓存,上传失败后会重试; full:读写文件均使用缓存,上传失败后会重试。
- --vfs-cache-poll-interval 缓存中旧对象的轮询间隔 1m0s
- --vfs-case-insensitive 匹配文件时,忽略大小写 未设置
- --vfs-read-ahead 当缓存模式设置为full时,预读可使用的额外缓存大小 无
- --vfs-read-chunk-size 分块读取文件 128Mi
- --vfs-read-chunk-size-limit 当设置的值大于--vfs-read-chunk-size时,读取文件时,每个分块使用双倍大小,直到达到该设置的值。 off
- --vfs-read-wait 开始读文件的等待时长 20ms
- --vfs-used-is-size 使用rclone的算法计算已使用的大小 未设置
- --vfs-write-back 使用缓存后,回写文件的时间 5s
- --vfs-write-wait 开始写文件的等待时长 1s
- --s3-chunk-size 设置分块上传的单个块大小 80M 使用默认值上传大文件可能会超过最大的1000个块
推荐的参数:¶
- --allow-other:允许其它用户访问挂载的目录;
- --s3-chunk-size: 设置分块上传的单个块大小;
- --no-modtime:如果不需要关注文件的修改时间,建议打开此选项,以提高网关性能;
- --vfs-cache-mode:建议开启缓存(设置为“writes”或者“full”),可有效提高网关性能;
- --cache-dir:缓存目录,当同时执行多个rclone挂载进程时,请设置为不同的目录。