Mountpoint for Amazon S3 with openSUSE Leap 15.5 小記
OS: openSUSE Leap 15.5 on GCP
今天要來實作 Mountpoint for Amazon S3 安裝與掛載於 openSUSE Leap 15.5
Mountpoint for Amazon S3 今年已經 GA, 大家可以看 Blog 文章 https://aws.amazon.com/cn/blogs/china/mountpoint-for-amazon-s3-generally-available-and-ready-for-production-workloads/
我想這個也是受到 AI 相關影響, 如果想要知道 Mountpoing for Amazon S3 介紹與 EFS 相關差異, 也可以聽這集AWS官方的 Podcast https://open.spotify.com/episode/2L1lqIGlRQr6idCy3RVuD6?si=00b222cf31504e95&nd=1
這次的 OS 我使用 openSUSE Leap 15.5 on GCP
Mountpoint for Amazon S3 套件安裝的部份, 可以參考官方文件
https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/mountpoint-installation.html
RPM 的部份支援的是 Amazon Linux / Fedora / CentOS / RHEL
DEB 的部份支援 Debian / Ubuntu
另外還支援其他 Linux 發行版本方式
可以顯見的是, openSUSE Leap Linux 沒有在 RPM 支援的 linux 清單內, 如果用上述的 RPM 來進行安裝, 可能會遇到下列的錯誤訊息
Problem: nothing provides 'fuse-libs' needed by the to be installed mount-s3-1.0.1-1.x86_64
Solution 1: do not install mount-s3-1.0.1-1.x86_64
Solution 2: break mount-s3-1.0.1-1.x86_64 by ignoring some of its dependencies
但是不要擔心 openSUSE Leap 15.5 使用 Other Linux distributions 方法 - 安裝OK
下載相關檔案
# wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.tar.gz
建立相關目錄
# mkdir -p /opt/aws/mountpoint-s3
解壓縮到剛剛建立的目錄
# tar -C /opt/aws/mountpoint-s3 -xzf ./mount-s3.tar.gz
因為是實驗的關係, 先用 export 將這個路徑放到指令的路徑變數
# export PATH=$PATH:/opt/aws/mountpoint-s3/bin
測試指令並檢查版本
# mount-s3 --version
mount-s3 1.0.2
驗證的部份與 AWS CLI 相關設定一樣
下載與安裝 AWS CLI
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# unzip awscliv2.zip
# ./aws/install
You can now run: /usr/local/bin/aws --version
進行相關設定
# /usr/local/bin/aws configure --profile default
AWS Access Key ID [None]: YOUR_KEY_ID
AWS Secret Access Key [None]: YOUR_ACCESS_KEY
Default region name [None]: YOUR_WORK_REGION
Default output format [None]:
這邊請填入該帳號的 AKSK, 然後選常用的 Region
會在 ~/.aws/credentials 與 ~/.aws/config 建立相關設定
測試相關指令
使用剛剛裝的 aws cli 列出目前 S3 的目錄
# /usr/local/bin/aws s3 ls --profile default
2022-11-08 01:45:58 sakana-cloudtrail-logs-20210714
建立掛載目錄
# mkdir /mnt/s3-mount-test
沒有掛載前先觀察資訊
# ls /mnt/s3-mount-test/
使用 mount-s3 指令進行掛載 AWS S3
# mount-s3 sakana-cloudtrail-logs-20210714 /mnt/s3-mount-test/ --profile default --allow-delete
bucket sakana-cloudtrail-logs-20210714 is mounted at /mnt/s3-mount-test/
加上 --allow-delete 之後才可以刪除檔案
觀察相關資訊
# ls /mnt/s3-mount-test/
AWSLogs
# mount
mountpoint-s3 on /mnt/s3-mount-test type fuse (rw,nosuid,nodev,noatime,user_id=0,group_id=0,default_permissions)
進行相關測試
# mkdir /mnt/s3-mount-test/sakanatest
# ls /mnt/s3-mount-test/
AWSLogs sakanatest
我仿照 Blog 上面的作法, 到高速公路局的網站截了一些路況圖
透過 cp 指令把他複製到我們掛載的目錄
# cp /home/sakanamax/2023-09-29\ 10-5* /mnt/s3-mount-test/sakanatest/
觀察資訊
# ls /mnt/s3-mount-test/sakanatest
2023-09-29 10-51-29 的螢幕擷圖.png 2023-09-29 10-52-06 的螢幕擷圖.png 2023-09-29 10-52-41 的螢幕擷圖.png
2023-09-29 10-51-48 的螢幕擷圖.png 2023-09-29 10-52-21 的螢幕擷圖.png
觀察 AWS S3 console
果然有同步
# cd /mnt/s3-mount-test/sakanatest/
# ffmpeg -framerate 10 -pattern_type glob -i "*.png" sakana.gif
ffmpeg 指令可以透過 #zypper install ffmpeg 安裝
以下是我得到的結果 :)
最後來解決重開機掛載的問題, 解法就是用 Service 的方式來做
# vi /etc/systemd/system/mount.service
[Unit]
Description=Mountpoint for Amazon S3 mount
Wants=network.target
AssertPathIsDirectory=/mnt/s3-mount-test
[Service]
Type=forking
User=root
Group=root
ExecStart=/opt/aws/mountpoint-s3/bin/mount-s3 sakana-cloudtrail-logs-20210714 /mnt/s3-mount-test --profile default --allow-delete
ExecStop=/usr/bin/fusermount -u /mnt/s3-mount-test
[Install]
WantedBy=default.target
這邊要注意掛載路徑
然後安裝方法不同 mount-s3 的路徑也會不同
user / group 要找時間 Lab
進行測試
# umount /mnt/s3-mount-test
起動服務
# systemctl start mount.service
觀察資訊
# systemctl status mount.service
● mount.service - Mountpoint for Amazon S3 mount
Loaded: loaded (/etc/systemd/system/mount.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2023-09-29 03:15:42 UTC; 9s ago
接下來設定開機啟動服務即可
# systemctl enable mount.service
Created symlink /etc/systemd/system/default.target.wants/mount.service → /etc/systemd/system/mount.service.
# systemctl is-enabled mount.service
enabled
又多學一招
~ enjoy it
Reference:
強大的同事
https://open.spotify.com/episode/2L1lqIGlRQr6idCy3RVuD6?si=00b222cf31504e95&nd=1
https://github.com/awslabs/mountpoint-s3/blob/main/doc/CONFIGURATION.md#aws-credentials
https://docs.aws.amazon.com/zh_tw/AmazonS3/latest/userguide/mountpoint-installation.html
沒有留言:
張貼留言