详情页标题前

腾讯云对象存储GooseFS-Lite 工具

详情页1

功能说明

GooseFS-Lite 工具支持将对象存储(Cloud Object Storage,COS)存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象,相比于 COSFS 工具,GooseFS-Lite 可提供更高的大文件读写速度,不受本地磁盘的性能限制。GooseFS-Lite 支持 POSIX 文件系统的主要功能,例如文件顺序/随机读,顺序写、目录操作等功能。

局限性

GooseFS-Lite 仅适合挂载后对文件进行简单的管理,不支持本地文件系统的一些功能用法。请注意以下不适用的场景:不支持对文件进行随机写和 truncate 操作。多个客户端挂载同一个 COS 存储桶时,依赖用户自行协调多个客户端的行为。例如避免多个客户端写同一个文件等。文件/文件夹的 rename 操作非原子操作。不支持读取和 rename 当前挂载点正在写入的文件。元数据操作。例如 list directory,性能较差,因为需要远程访问 COS 服务器。不支持 soft/hard link。追加写性能较差,涉及服务端数据拷贝和下载被追加文件。注意 外网挂载和非低频存储的追加写操作,会产生下载流量费用。

使用环境

JDK 11。Linux 系统:libfuse 2.9.3及以上。

使用方法

步骤1:安装依赖

执行如下命令,安装依赖。

yum install -y fuse-devel java-11-openjdk-devel

步骤2:下载 GooseFS-Lite 安装包

1. 执行如下命令,获取 GooseFS-Lite 安装包:

curl -LO https://downloads.tencentgoosefs.cn/goosefs-lite/goosefs-lite-1.0.3.tar.gz

2. 执行如下命令,获取 GooseFS-Lite 的 Md5 文件:

curl -LO https://downloads.tencentgoosefs.cn/goosefs-lite/goosefs-lite-1.0.3-md5.txt

3. 执行如下命令,验证文件的完整性。

md5sum --check goosefs-lite-1.0.3-md5.txt

执行以上三步后,当看到如下图所示,则表示文件完整性验证通过。

腾讯云对象存储GooseFS-Lite 工具



步骤3:解压 GooseFS-Lite 安装包

tar -xvf goosefs-lite-1.0.3.tar.gz

您可以将上述命令中的 ${version} 替换为使用的 GooseFS-Lite 版本,例如 1.0.2。当看到如下图所示,则表示解压成功,并生成了一个 goosefs-lite-${version}的目录。

腾讯云对象存储GooseFS-Lite 工具



步骤4:初始化

将goosefs-lite安装到/usr/bin/goosefs-lite,方便后续可以直接使用goosefs-lite命令,而不需要进入到goosefs-lite目录。使用sudo或者root用户执行如下命令。

sudo bash bin/init.sh



腾讯云对象存储GooseFS-Lite 工具



步骤5:配置密钥文件

进入goosefs-lite-1.0.3 目录下,修改配置文件 conf/core-site.xml 中的配置项,如下图所示:

腾讯云对象存储GooseFS-Lite 工具


将 fs.cosn.userinfo.secretKey 配置为腾讯云密钥 Key。将 fs.cosn.userinfo.secretId 配置为腾讯云密钥 ID。将 fs.cosn.bucket.region 配置为存储桶地域。注意建议用户尽量避免在配置中使用永久密钥,采取配置子账号密钥或者临时密钥的方式有助于提升业务安全性。为子账号授权时建议按需授权子账号可执行的操作和资源,避免发生预期外的数据泄露。如果您一定要使用永久密钥,建议对永久密钥的权限范围进行限制,可通过限制永久密钥的可执行操作、资源范围和条件(访问 IP 等),提升使用安全性。示例:

          fs.cosn.impl    org.apache.hadoop.fs.CosFileSystem        fs.cosn.userinfo.secretId    ******        fs.cosn.userinfo.secretKey    ****        fs.cosn.bucket.region    ap-guangzhou        fs.cosn.read.ahead.queue.size    16        fs.cosn.upload_thread_pool    32        fs.cosn.tmp.dir    /data/goosefs-lite-tmp/        fs.cosn.posix_extension.enabled    false        fs.cosn.posix_extension.tmp.dir.quota    10737418240        fs.cosn.filestatus.list.recursive.enabled    true  

如果您挂载的是 元数据加速 存储桶,则需要您先对元数据加速存储桶进行如下配置:1. 性能配置 > HDFS 权限配置 > HDFS 用户配置,添加超级用户,例如 root。2. 性能配置 > HDFS 权限配置 > HDFS 权限配置,添加访问 COS 存储桶的 VPC 和 IP 地址信息。3. 在本机执行如下命令,添加 hadoop 用户和 supergroup 组。

useradd hadoopgroupadd supergroup

4. 修改配置信息:

       fs.cosn.impl org.apache.hadoop.fs.CosFileSystem     fs.cosn.userinfo.secretId AKIDnQxxxxx     fs.cosn.userinfo.secretKey YYYY     fs.cosn.bucket.region ap-guangzhou     fs.cosn.trsf.fs.ofs.bucket.region ap-guangzhou     fs.cosn.trsf.fs.ofs.plugin.info.log true     fs.cosn.trsf.fs.ofs.user.appid 1250000000     fs.cosn.trsf.fs.ofs.tmp.cache.dir /data/tmp/ofs  

步骤5:运行工具

执行如下命令,将密钥文件中配置的存储桶挂载到指定目录:

 ./bin/goosefs-lite mount <MountPoint> cosn://<BucketName>/

其中: 为本地挂载目录(例如 /mnt/goosefs-lite-mnt-dir)。 为存储桶名称(例如 examplebucket-1250000000)。示例:

mkdir -p /mnt/gooosefs-lite-mnt./bin/goosefs-lite mount /mnt/goosefs-lite-mnt/ cosn://examplebucket-1250000000/

查看本地挂载点和对应的 COS 存储桶,输出信息依次为进程 ID、本地挂载点和 COS 路径:

$ ./bin/goosefs-lite statpid     mount_point     cos_path13815   /mnt/goosefs-lite-mnt/  cosn://examplebucket-1250000000/

如果您需要在命令行中,同时指定多个挂载参数,可以使用逗号分隔多个参数,例如,下面的命令设置挂载点只读,且允许除其他用户访问挂载点:

./bin/goosefs-lite mount -o"ro,allow_other"  mnt/ cosn://examplebucket-1250000000/

其中:-oallow_other:如果要允许其他用户访问挂载文件夹,可以在运行 GooseFS-Lite 的时候指定该参数。-oro:将挂载点设置为只读,不允许写入和删除操作。说明单个参数可通过 -o 指定,例如 -oro;多个参数可通过逗号分割,例如 -o"ro,allow_other"

步骤6:卸载存储桶

卸载存储桶示例:

$./bin/goosefs-lite umount /mnt/goosefs-lite-mntUnmount fuse at /mnt/goosefs-lite-mnt/ (PID: 17206).

步骤7:参数调优

GooseFS-Lite 包含两个配置文件,分别为 conf/core-site.xml 及 conf/goosefs-lite.properties。
您可以通过修改 conf/core-site.xml 调优上传下载带宽。常用参数如下,更多参数可参见
Hadoop-COS 文档

属性键 说明 默认值 必填项
fs.cosn.useHttps 配置是否使用 HTTPS 作为与 COS 后端的传输协议。 true
fs.cosn.upload. part.size 分块上传的每个 part size 的大小。由于 COS 的分块上传最多只能支持10000块,因此需要预估最大可能使用到的单文件大小。 例如,part size 为8MB时,最大能够支持78GB的单文件上传。 part size 最大可以支持到2GB,即单文件最大可支持19TB。 8388608(8MB)
fs.cosn. upload_thread_pool 文件流式上传到 COS 时,并发上传的线程数目。 10
fs.cosn. read.ahead.block.size 预读块的大小。 1048576(1MB)
fs.cosn. read.ahead.queue.size 预读队列的长度。 8
fs.cosn.trsf.fs.ofs.tmp.cache.dir 元数据加速存储桶的临时文件目录。
fs.cosn.trsf.fs.ofs.user.appid 元数据加速存储桶的 Appid。
fs.cosn.trsf.fs.ofs.bucket.region 元数据加速存储桶所在的地域,如 ap-shanghai,ap-beijing。

您可以通过修改 conf/goosefs-lite.properties 对 GooseFS-Lite 的行为进行调整。常用参数如下:

属性 说明 默认值 必填项
goosefs.fuse.list.entries.cache.enabled 是否开启客户端 List 缓存 true
goosefs.fuse.list.entries.cache.max.size 客户端 List 最大缓存的条目数,单位:条 100000
goosefs.fuse.list.entries.cache.max.expiration.time 客户端 List 缓存的有效时间,单位:ms 15000
goosefs.fuse.async.release.wait_time.max.ms open 和 rename 操作的文件正在被写入时,等待写入操作完成的时间,单位:ms 5000
goosefs.fuse.umount.timeout 卸载文件系统时,等待未完成操作的时间,单位:ms 120000

当您的读取和写入并发度较大,您可以通过如下方式,调整 GooseFS-Lite 最大 JVM 运行内存,避免 FullGC 和 OutOfMemoryError。JVM 默认值为 -Xms2G -Xmx2G -XX:MaxDirectMemorySize=4G -XX:+UseG1GC,调整方式如下:

export JAVA_OPTS=" -Xms16G -Xmx16G  -XX:MaxDirectMemorySize=16G -XX:+UseG1GC"./bin/goosefs-lite mount /mnt/goosefs-lite-mnt/ cosn://examplebucket-1250000000/ps -ef|grep goosefs-lite|grep -v grep

常见问题

缺少 libfuse 库文件,该如何处理?



腾讯云对象存储GooseFS-Lite 工具


需要安装 libfuse,请参照以下方式进行操作:方式一 1. 执行如下命令,安装 fuse-devel。如果是 CentOS 或者 TencentOS 系统,执行如下命令:

yum install fuse-devel

如果是 Ubuntu 系统,执行如下命令:

apt install libfuse-dev

2. 安装完成后,执行如下命令,查看安装是否成功。

find / -name libfuse.so*

方式二
更新旧版本 libfuse.so.2.9.2,安装步骤如下:
说明 CentOS 7默认安装的是 libfuse.so.2.9.2。1. 下载 libfuse 源码,并编译生成 libfuse.so.2.9.7。

tar -zxvf fuse-2.9.7.tar.gzcd fuse-2.9.7/ && ./configure && make && make installecho -e '\n/usr/local/lib' >> /etc/ld.so.confldconfig

2. 编译及生成 libfuse.so.2.9.7 后,可按照以下步骤进行替换:2.1 执行以下命令,查找旧版本 libfuse.so.2.9.2 库链接。

find / -name libfuse.so*

2.2 执行以下命令,将 libfuse.so.2.9.7拷贝至旧版本库 libfuse.so.2.9.2 所在位置。

cp /usr/local/lib/libfuse.so.2.9.7 /usr/lib64/

2.3 执行以下命令, 删除旧版本 libfuse.so 库的所有链接。

rm -f /usr/lib64/libfuse.sorm -f /usr/lib64/libfuse.so.2

2.4 执行以下命令,建立与被删除旧版本链接类似的 libfuse.so.2.9.7 库链接。

ln -s /usr/lib64/libfuse.so.2.9.7 /usr/lib64/libfuse.soln -s /usr/lib64/libfuse.so.2.9.7 /usr/lib64/libfuse.so.2

如何配置开机挂载?

1. 编辑文件 /usr/lib/systemd/system/goosefs-lite.service,追加如下内容,您可以将 examplebucket-1250000000 换为您的存储桶:

[Unit]Description=The Tencent Cloud GooseFS Lite for COSRequires=network-online.targetAfter=network-online.target
[Service]Type=forkingUser=rootEnvironment="JAVA_OPTS=-Xms16G -Xmx16G -XX:MaxDirectMemorySize=16G -XX:+UseG1GC"ExecStart=/usr/local/goosefs-lite-1.0.0/bin/goosefs-lite mount /mnt/goosefs-mnt cosn://examplebucket-1250000000/ExecStop=/usr/local/goosefs-lite-1.0.0/bin/goosefs-lite umount /mnt/goosfs-mnt
[Install]WantedBy=multi-user.target

2. 执行如下命令,执行挂载命令和查看后台 Daemon 进程状态:

# 让 goosefs-lite 的 systemd 配置生效systemctl daemon-reload# 启动后台 Fuse 进程systemctl start goosefs-lite# 查看后台 Daemon 进程状态systemctl status goosefs-lite# 查看挂载点列表/usr/local/goosefs-lite-1.0.0/bin/goosefs-lite stat

设置为开机启动时尝试挂载:

systemctl enable goosefs-lite

3. 卸载挂载点,重启机器,并查看 Fuse 进程状态:

# 执行卸载,注意:请勿在数据写入的时卸载,否则会导致数据不完整systemctl stop goosefs-lite# 重启操作系统,请谨慎操作,不要影响业务reboot -h now# 查看后台 Daemon 进程状态systemctl status goosefs-lite# 查看挂载点列表/usr/local/goosefs-lite-1.0.0/bin/goosefs-lite stat

GooseFS-Lite 每天在某个时间段里 CPU 使用率较高,且向 COS 发出大量 Head、List 请求,产生大量请求次数费用,该怎么处理?

这通常是由于您机器上存在定时扫盘任务导致的,Linux 系统上常见的扫盘程序是 updatedb,您可以将 GooseFS-Lite 挂载点目录,添加到 updatedb 的配置文件 /etc/updatedb.conf 文件的 PRUNEPATHS 配置项中,避免该程序的扫盘行为。此外,您可以使用 Linux 工具 auditd,查找访问 GooseFS-Lite 挂载点的程序。操作步骤如下:1. 安装 auditdUbuntu:

ap-get install auditd -y

CentOS:

yum install audit audit-libs

2. 启动 auditd 服务

systemctl start auditdsystemctl enable auditd

3. 监控挂载目录说明-w 指定 GooseFS-Lite 挂载目录,-k 为输出在 audit 日志中的 key。

auditctl -w /usr/local/service/mnt/ -k goosefs_lite_mnt

4. 根据日志确定访问程序audit 的日志目录: /var/log/audit,查询命令如下:

ausearch -i|grep 'goosefs_lite_mnt'

5. 停止 auditd 服务如果您需要停止 auditd 服务,可以使用如下命令:

/sbin/service auditd stop

注意如果访问挂载点的程序一直在运行,新启动的 auditd,并不会监控到该程序的访问行为;程序中关于挂载目录的多次调用,只会记录第一次。

GooseFS-Lite 安装时报“cannot allocate memory”错误



腾讯云对象存储GooseFS-Lite 工具


该报错主要是因为 GooseFS-Lite 运行过程时分配内存异常报错,一般为申请内存小于实际可用内存。您可以进入 ./bin/goosefs-lite 文件中修改 JAVA_OPT 参数配置为合理内存数值,至少需要保证申请的内存数量小于实例可用内存数量。


对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144282.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器服务CPU 超线程隔离同尘科技

    功能介绍 常见的 SMP 处理器存在多个层级,包含线程、物理核、处理器等结构,在开启超线程的情况下,一个物理核上一般会包含2个线程,且同核上的2个线程共享 L2 Cache。 当高优先级容器与低优先级容器同时运行时,可能会出现高优先级容器的线程与低优先级容器的线程在同一个物理核甚至在同一个超线程 CPU 上执行的情况,在这种情况下,虽然 CPU 使用优先…

    2023年12月9日
  • 函数计算中,函数计算设置了oss触发器,有什么办法可以等文件上传完再一次性执行的?-云小二-阿里云

    函数计算中,函数计算设置了oss触发器,文件上传到OSS触发函数执行多次,这种有什么办法可以等文件上传完再一次性执行的?配置触发器的时候可以选择支持哪些操作的。 以下为热心网友提供的参考意见 在函数计算中,您可以创建并配置原生OSS触发器,当在OSS上发生特定事件时会自动触发函数执行。这可以让您轻松响应如文件上传等事件,无需在代码中增加监听事件逻辑即可快速实…

    阿里云 2024年1月3日
  • 腾讯云Serverless应用中心开发项目-同尘科技

    操作场景 本文以 tencent-express 组件部署一个 Express 网站为例, 模拟 Serverless Cloud Framework 开发项目、管理项目和部署发布上线全流程。示例链接 >>开发项目过程可能会涉及以下分支: 分支类型 说明 master 用于生产环境部署 testing 用于测试环境测试 dev 用于日常开发 fe…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储提交图片处理任务

    简介 本文档提供关于提交图片处理任务相关的 API 概览以及 SDK 示例代码。 API 操作描述 提交图片处理任务 提交图片处理任务 SDK API 参考 SDK 所有接口的具体参数与方法说明,请参考 SDK API。 提交图片处理任务 功能说明 提交图片处理任务注意 COS Android SDK 版本需要大于等于 v5.9.14。 示例代码 // …

    腾讯云 2023年12月9日
  • 请问下视觉智能平台申请了视频人脸融合api,能加快审批吗?-云小二-阿里云

    你好 请问下申请了视频人脸融合api,能加快审批吗? 以下为热心网友提供的参考意见 您好,视觉智能开放平台的视频人脸融合API接口调用需要提交申请,申请提交之后耐心等待即可,如果您着急想要使用的话,您可以通过搜索群号23109592加入钉钉群,届时会有专属的产品、运营和技术人员为您的接入进行答疑和指引,咨询一下管理员看是否可以加快审批 以下为热心网友提供的参…

    2023年12月17日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。