
YAS3FS 安裝教程在 Amazon Linux 2023 上一鍵部署的完整步驟【免費(fèi)下載鏈接】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.項(xiàng)目地址: https://gitcode.com/gh_mirrors/ya/yas3fsYAS3FSYet Another S3-backed File System是一款基于 FUSE 的 S3 文件系統(tǒng)掛載工具它能把 Amazon S3 桶直接掛載成 Linux 本地文件夾讓應(yīng)用像讀寫本地磁盤一樣使用對象存儲。本教程將帶你完成 Amazon Linux 2023 上 YAS3FS 安裝的每一步從系統(tǒng)依賴、虛擬環(huán)境到 S3 桶掛載全程無需編譯源碼真正做到一鍵部署。YAS3FS 是什么為什么值得在 Amazon Linux 2023 上安裝YAS3FS 由 AWS 布道師 Danilo Poccia 開發(fā)靈感來自 s3fs但從零重寫實(shí)現(xiàn)了由 Amazon SNS 通知同步的分布式緩存適合在多個(gè) EC2 節(jié)點(diǎn)間構(gòu)建共享文件系統(tǒng)集群。它的核心優(yōu)勢包括 將 S3 桶或桶內(nèi)指定路徑掛載為本地目錄普通命令即可操作? 小文件走內(nèi)存緩存、大文件走磁盤緩存讀速更快 大文件支持并行分段上傳/下載流式場景下可邊下邊讀 通過 SNS/SQS 通知讓集群內(nèi)所有節(jié)點(diǎn)緩存自動失效保持一致? 提供 Web 控制臺YAS3FS Console監(jiān)控集群各節(jié)點(diǎn)狀態(tài) 支持 IAM 角色、環(huán)境變量憑證還可生成帶簽名的文件 URL在 Amazon Linux 2023 上安裝 YAS3FS 非常簡單官方已把完整安裝流程整理進(jìn) README.md本文則將其拆解為可直接照做的分步教程。YAS3FS 安裝前的準(zhǔn)備工作S3 桶、SNS 主題與 IAM 權(quán)限動手安裝之前請先確認(rèn)以下前置條件避免裝完才發(fā)現(xiàn)用不了準(zhǔn)備項(xiàng)說明是否必須AWS 賬號與區(qū)域在目標(biāo)區(qū)域如 us-east-1創(chuàng)建 S3 桶? 必須AWS 憑證配置AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY環(huán)境變量或使用 EC2 IAM 角色? 必須SNS 主題多節(jié)點(diǎn)集群才需要記錄完整 Topic ARN?? 集群必選IAM 權(quán)限至少包含 S3 的讀寫權(quán)限集群還需 SNS/SQS 權(quán)限? 必須 提示桶內(nèi)的初始路徑無需預(yù)先創(chuàng)建YAS3FS 首次掛載時(shí)會自動創(chuàng)建。如果桶主要用作文件倉庫而非文件系統(tǒng)可以加--no-metadata參數(shù)跳過元數(shù)據(jù)寫入。IAM 角色至少要授權(quán)s3:ListBucket、s3:GetObject、s3:PutObject、s3:DeleteObject等操作集群模式還需sns:Publish、sqs:*相關(guān)權(quán)限具體策略模板可參考 README.md 中的 IAM Policy 段落。Amazon Linux 2023 一鍵安裝 YAS3FS 的完整步驟官方已為 Amazon Linux 2023 定制了優(yōu)化過的安裝路徑關(guān)鍵點(diǎn)是系統(tǒng)自帶的 Python 3.9 與最新的 Python 3.12 都不可用于 YAS3FS 虛擬環(huán)境必須使用Python 3.11因?yàn)?YAS3FS 依賴 boto 2.x不兼容 Python 3.12。第一步安裝系統(tǒng)依賴包先通過 dnf 一鍵安裝 FUSE、git 與 Python 3.11sudo dnf -y install fuse fuse-libs git python3.11 python3.11-pip第二步創(chuàng)建 Python 3.11 虛擬環(huán)境YAS3FS 的推薦安裝位置是/opt/yas3fs用專用虛擬環(huán)境隔離依賴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 創(chuàng)建過/opt/yas3fs請先卸載所有掛載中的 YAS3FS 卷再用 Python 3.11 重建虛擬環(huán)境。第三步獲取源碼并安裝 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安裝完成后清理源碼目錄并確認(rèn)命令可用sudo rm -rf /opt/yas3fs/src /opt/yas3fs/bin/yas3fs -h # 查看全部可用參數(shù)第四步啟用 FUSE 的 user_allow_other 選項(xiàng)為了讓普通用戶也能掛載需要取消/etc/fuse.conf中user_allow_other的注釋sudo sed -i s/^# *user_allow_other/user_allow_other/ /etc/fuse.conf到這里YAS3FS 安裝已經(jīng)全部完成前后大約只需 2~3 分鐘快速掛載 S3 桶單節(jié)點(diǎn)部署方法安裝完成后創(chuàng)建本地掛載點(diǎn)并執(zhí)行掛載命令即可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 用戶元數(shù)據(jù)持久化文件系統(tǒng)的 attr/xattr 信息。多節(jié)點(diǎn)集群部署SNS 同步的配置步驟如果多臺 EC2 需要訪問同一個(gè)桶并保持緩存一致就需要 SNS 通知。前提是已創(chuàng)建好 SNS 主題并記下 Topic ARNmkdir LOCAL-PATH /opt/yas3fs/bin/yas3fs s3://BUCKET/PATH LOCAL-PATH --topic TOPIC-ARN --new-queue--new-queue會為當(dāng)前節(jié)點(diǎn)自動創(chuàng)建臨時(shí) SQS 隊(duì)列監(jiān)聽 SNS 通知卸載時(shí)自動刪除適合 Auto Scaling 場景下快速擴(kuò)縮容。若 EC2 安全組允許也可改用--ec2-hostname --port N通過 HTTP 端點(diǎn)接收通知。開機(jī)自動掛載 S3 桶fstab 配置方法想讓 EC2 重啟后 S3 桶自動掛載可以借助項(xiàng)目自帶的 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中添加一行并修改桶名、掛載點(diǎn)與 Topic ARNyas3fs#mybucket /mnt/mybucket yas3fs _netdev,allow_other,default_permissions,topicarn:aws:sns:us-east-1:0000000000:mybucket,yas3fslog,yas3fsdebug 0 0保存后執(zhí)行mount /mnt/mybucket即可測試 fstab 配置是否生效。主機(jī)重啟時(shí)優(yōu)雅卸載避免數(shù)據(jù)丟失的保障直接關(guān)機(jī)可能導(dǎo)致 S3 掛載卷被強(qiáng)制卸載官方專門提供了優(yōu)雅卸載方案。在 Amazon Linux 2023 上執(zhí)行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 服務(wù)contrib/unmount-yas3fs.service會在關(guān)機(jī)前自動調(diào)用卸載腳本確保緩存數(shù)據(jù)完整落盤。普通手動卸載則使用fusermount -u LOCAL-PATH # 或 umount LOCAL-PATH驗(yàn)證安裝與常見問題排查首次掛載強(qiáng)烈建議用調(diào)試模式前臺運(yùn)行方便直接看到錯誤信息/opt/yas3fs/bin/yas3fs -df s3://BUCKET/PATH LOCAL-PATH一切正常后按CtrlC中斷再以默認(rèn)后臺模式啟動即可。掛載成功后可用以下命令驗(yàn)證df -h | grep LOCAL-PATH # 查看掛載點(diǎn) echo test LOCAL-PATH/a.txt cat LOCAL-PATH/a.txt # 讀寫測試常見問題解決方法報(bào)錯fuse: device not found檢查fuse內(nèi)核模塊是否加載modprobe fuse權(quán)限不足無法掛載確認(rèn)已啟用user_allow_other并重讀/etc/fuse.conf新區(qū)域連接失敗使用--s3-use-sigv4配合--s3-endpoint指定簽名版本 4與 rsync 配合報(bào) S3 busyrsync 需加--inplace參數(shù)總結(jié)從安裝到掛載只需十分鐘通過本教程你已在 Amazon Linux 2023 上完成了 YAS3FS 安裝、單機(jī)掛載、集群同步與自動掛載的全部配置。YAS3FS 用純 Python 實(shí)現(xiàn)核心邏輯在 yas3fs/fuse.py依賴定義見 setup.py維護(hù)成本低是 EC2 集群共享 S3 數(shù)據(jù)的實(shí)用之選。建議先在測試環(huán)境用-df模式跑通全流程再平滑遷移到生產(chǎn)環(huán)境。祝你的 S3 掛載之旅順利【免費(fèi)下載鏈接】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.項(xiàng)目地址: https://gitcode.com/gh_mirrors/ya/yas3fs創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考