YAS3FS 安装教程:在 Amazon Linux 2023 上一键部署的完整步骤

发布时间:2026/8/17 23:09:40
YAS3FS 安装教程:在 Amazon Linux 2023 上一键部署的完整步骤 YAS3FS 安装教程在 Amazon Linux 2023 上一键部署的完整步骤【免费下载链接】yas3fsYAS3FS (Yet Another S3-backed File System) is a Filesystem in Userspace (FUSE) interface to Amazon S3. It was inspired by s3fs but rewritten from scratch to implement a distributed cache synchronized by Amazon SNS notifications. A web console is provided to easily monitor the nodes of a cluster.项目地址: https://gitcode.com/gh_mirrors/ya/yas3fsYAS3FSYet Another S3-backed File System是一款基于 FUSE 的 S3 文件系统挂载工具它能把 Amazon S3 桶直接挂载成 Linux 本地文件夹让应用像读写本地磁盘一样使用对象存储。本教程将带你完成 Amazon Linux 2023 上 YAS3FS 安装的每一步从系统依赖、虚拟环境到 S3 桶挂载全程无需编译源码真正做到一键部署。YAS3FS 是什么为什么值得在 Amazon Linux 2023 上安装YAS3FS 由 AWS 布道师 Danilo Poccia 开发灵感来自 s3fs但从零重写实现了由 Amazon SNS 通知同步的分布式缓存适合在多个 EC2 节点间构建共享文件系统集群。它的核心优势包括 将 S3 桶或桶内指定路径挂载为本地目录普通命令即可操作⚡ 小文件走内存缓存、大文件走磁盘缓存读速更快 大文件支持并行分段上传/下载流式场景下可边下边读 通过 SNS/SQS 通知让集群内所有节点缓存自动失效保持一致️ 提供 Web 控制台YAS3FS Console监控集群各节点状态 支持 IAM 角色、环境变量凭证还可生成带签名的文件 URL在 Amazon Linux 2023 上安装 YAS3FS 非常简单官方已把完整安装流程整理进 README.md本文则将其拆解为可直接照做的分步教程。YAS3FS 安装前的准备工作S3 桶、SNS 主题与 IAM 权限动手安装之前请先确认以下前置条件避免装完才发现用不了准备项说明是否必须AWS 账号与区域在目标区域如 us-east-1创建 S3 桶✅ 必须AWS 凭证配置AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY环境变量或使用 EC2 IAM 角色✅ 必须SNS 主题多节点集群才需要记录完整 Topic ARN⚠️ 集群必选IAM 权限至少包含 S3 的读写权限集群还需 SNS/SQS 权限✅ 必须 提示桶内的初始路径无需预先创建YAS3FS 首次挂载时会自动创建。如果桶主要用作文件仓库而非文件系统可以加--no-metadata参数跳过元数据写入。IAM 角色至少要授权s3:ListBucket、s3:GetObject、s3:PutObject、s3:DeleteObject等操作集群模式还需sns:Publish、sqs:*相关权限具体策略模板可参考 README.md 中的 IAM Policy 段落。Amazon Linux 2023 一键安装 YAS3FS 的完整步骤官方已为 Amazon Linux 2023 定制了优化过的安装路径关键点是系统自带的 Python 3.9 与最新的 Python 3.12 都不可用于 YAS3FS 虚拟环境必须使用Python 3.11因为 YAS3FS 依赖 boto 2.x不兼容 Python 3.12。第一步安装系统依赖包先通过 dnf 一键安装 FUSE、git 与 Python 3.11sudo dnf -y install fuse fuse-libs git python3.11 python3.11-pip第二步创建 Python 3.11 虚拟环境YAS3FS 的推荐安装位置是/opt/yas3fs用专用虚拟环境隔离依赖sudo /usr/bin/python3.11 -m venv /opt/yas3fs sudo /opt/yas3fs/bin/python -m pip install --upgrade pip setuptools wheel⚠️ 如果你之前用 Python 3.9 或 3.12 创建过/opt/yas3fs请先卸载所有挂载中的 YAS3FS 卷再用 Python 3.11 重建虚拟环境。第三步获取源码并安装 YAS3FS⚠️ 注意PyPI 上已不支持直接按名称安装 yas3fs必须通过 git clone 源码后安装sudo mkdir -p /opt/yas3fs/src sudo git clone https://gitcode.com/gh_mirrors/ya/yas3fs /opt/yas3fs/src/yas3fs sudo /opt/yas3fs/bin/python -m pip install /opt/yas3fs/src/yas3fs安装完成后清理源码目录并确认命令可用sudo rm -rf /opt/yas3fs/src /opt/yas3fs/bin/yas3fs -h # 查看全部可用参数第四步启用 FUSE 的 user_allow_other 选项为了让普通用户也能挂载需要取消/etc/fuse.conf中user_allow_other的注释sudo sed -i s/^# *user_allow_other/user_allow_other/ /etc/fuse.conf到这里YAS3FS 安装已经全部完成前后大约只需 2~3 分钟快速挂载 S3 桶单节点部署方法安装完成后创建本地挂载点并执行挂载命令即可mkdir LOCAL-PATH /opt/yas3fs/bin/yas3fs s3://BUCKET/PATH LOCAL-PATH例如把桶mybucket的data目录挂载到/mnt/s3datamkdir -p /mnt/s3data /opt/yas3fs/bin/yas3fs s3://mybucket/data /mnt/s3data挂载成功后/mnt/s3data下的读写操作会透明地映射到 S3。YAS3FS 会使用 S3 用户元数据持久化文件系统的 attr/xattr 信息。多节点集群部署SNS 同步的配置步骤如果多台 EC2 需要访问同一个桶并保持缓存一致就需要 SNS 通知。前提是已创建好 SNS 主题并记下 Topic ARNmkdir LOCAL-PATH /opt/yas3fs/bin/yas3fs s3://BUCKET/PATH LOCAL-PATH --topic TOPIC-ARN --new-queue--new-queue会为当前节点自动创建临时 SQS 队列监听 SNS 通知卸载时自动删除适合 Auto Scaling 场景下快速扩缩容。若 EC2 安全组允许也可改用--ec2-hostname --port N通过 HTTP 端点接收通知。开机自动挂载 S3 桶fstab 配置方法想让 EC2 重启后 S3 桶自动挂载可以借助项目自带的 mount 辅助脚本。Amazon Linux 2023 使用 contrib/mount.yas3fs.amzn1CentOS 6 则用 contrib/mount.yas3fs.centos6。安装脚本sudo cp contrib/mount.yas3fs.amzn1 /usr/local/sbin/mount.yas3fs sudo chmod x /usr/local/sbin/mount.yas3fs sudo ln -sf /usr/local/sbin/mount.yas3fs /sbin/mount.yas3fs然后参考 contrib/fstab.snippet 的格式在/etc/fstab中添加一行并修改桶名、挂载点与 Topic ARNyas3fs#mybucket /mnt/mybucket yas3fs _netdev,allow_other,default_permissions,topicarn:aws:sns:us-east-1:0000000000:mybucket,yas3fslog,yas3fsdebug 0 0保存后执行mount /mnt/mybucket即可测试 fstab 配置是否生效。主机重启时优雅卸载避免数据丢失的保障直接关机可能导致 S3 挂载卷被强制卸载官方专门提供了优雅卸载方案。在 Amazon Linux 2023 上执行sudo cp contrib/unmount-yas3fs.init.d /usr/local/sbin/unmount-yas3fs sudo chmod x /usr/local/sbin/unmount-yas3fs sudo cp contrib/fstab-decode.py /usr/local/sbin/fstab-decode.py sudo chmod x /usr/local/sbin/fstab-decode.py sudo cp contrib/unmount-yas3fs.service /etc/systemd/system/unmount-yas3fs.service sudo systemctl daemon-reload sudo systemctl enable --now unmount-yas3fs.service该 systemd 服务contrib/unmount-yas3fs.service会在关机前自动调用卸载脚本确保缓存数据完整落盘。普通手动卸载则使用fusermount -u LOCAL-PATH # 或 umount LOCAL-PATH验证安装与常见问题排查首次挂载强烈建议用调试模式前台运行方便直接看到错误信息/opt/yas3fs/bin/yas3fs -df s3://BUCKET/PATH LOCAL-PATH一切正常后按CtrlC中断再以默认后台模式启动即可。挂载成功后可用以下命令验证df -h | grep LOCAL-PATH # 查看挂载点 echo test LOCAL-PATH/a.txt cat LOCAL-PATH/a.txt # 读写测试常见问题解决方法报错fuse: device not found检查fuse内核模块是否加载modprobe fuse权限不足无法挂载确认已启用user_allow_other并重读/etc/fuse.conf新区域连接失败使用--s3-use-sigv4配合--s3-endpoint指定签名版本 4与 rsync 配合报 S3 busyrsync 需加--inplace参数总结从安装到挂载只需十分钟通过本教程你已在 Amazon Linux 2023 上完成了 YAS3FS 安装、单机挂载、集群同步与自动挂载的全部配置。YAS3FS 用纯 Python 实现核心逻辑在 yas3fs/fuse.py依赖定义见 setup.py维护成本低是 EC2 集群共享 S3 数据的实用之选。建议先在测试环境用-df模式跑通全流程再平滑迁移到生产环境。祝你的 S3 挂载之旅顺利【免费下载链接】yas3fsYAS3FS (Yet Another S3-backed File System) is a Filesystem in Userspace (FUSE) interface to Amazon S3. It was inspired by s3fs but rewritten from scratch to implement a distributed cache synchronized by Amazon SNS notifications. A web console is provided to easily monitor the nodes of a cluster.项目地址: https://gitcode.com/gh_mirrors/ya/yas3fs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考