存取雲端物件儲存 (COS)
TWSC 台灣杉二號 (命令列介面) (TWNIA2 (HPC CLI)) 除了可使用高速檔案系統 (Hyper File System, HFS) 作為運算的儲存空間外,也可將較少存取的靜態資料存放於 TWCC 雲端物件儲存 (Cloud Object Storage, COS)。
本文將介紹 2 種方式,教學 TWNIA2 (HPC CLI) 如何存取 TWCC 雲端物件儲存 (Cloud Object Storage, COS) 空間的資料:
S3 用戶端工具 透過 HTTPS (超級文字傳輸安全協定) 上傳及下載檔案,使用者可以在登入節點,以及提交 job 到計算節點時使用。
掛載為網路硬碟 採用 FUSE (Filesystem in Userspace) 技術遠端掛載 COS 空間為網路硬碟,僅限掛載於登入節點 (ln01.twcc.ai)。
建議用戶優先考慮使用 S3 用戶端工具:
- 因 FUSE 技術掛載 COS,並非實際本機檔案系統,因此為避免資料流失,用戶僅能上傳單一檔案 (可多檔讀取、下載)。
- 此外還有諸多限制,因此僅提供用戶在登入節點使用。
您可依需求擇一使用,以下說明如何使用此 2 種方式。
1. S3 用戶端工具
S3 用戶端工具種類繁多,以下介紹的工具以 CLI 操作形式為主,您可依需求選擇使用,範例將採用 TWCC CLI
、S3cmd
存取 COS 資料:
安裝及設定
- 存取 TWSC 雲端物件儲存服務需輸入 Access Key 與 Secret Key。請登入至 TWCC 使用者網站 > 雲端物件儲存服務頁面查看。
- 至
雲端物件儲存 (計畫成員共享空間)
或私有雲端物件儲存 (個人空間)
之第三方軟體下載頁面,即可找到 Key 資訊。
S3cmd
- 安裝
# 使用 pip 安裝
pip install s3cmd --user
- 寫入金鑰
# 可自行選擇熟悉 editor 寫入 ~/.s3cfg,這邊以 vim 為例
vim ~/.s3cfg
# 寫入內容
-----------------------
# Setup endpoint
host_base = cos.twcc.ai
host_bucket = cos.twcc.ai
use_https = True
# Setup access keys
access_key = <COS Access Key>
secret_key = <COS Secret Key>
-----------------------
TWCC CLI
- 安裝
# 使用 pip3 安裝
pip3 install TWCC-CLI --user
- 如何加入金鑰、選擇計畫,進入 TWCC CLI 環境,詳情可參考 TWCC CLI 文件。
操作範例
每個範例動作,依序展示使用指令 S3cmd
、TWCC CLI
的操作方式。
- 建立名為
mytwccbucket
的 bucket
# for S3cmd
s3cmd mb s3://mytwccbucket
# for TWCC CLI
twccli mk cos -bkt mytwccbucket
- 上傳檔案
先在 /home 目錄建立一個空檔案,檔名為 myfile
touch ~/myfile
複製檔案到 mytwccbucket
bucket
# for S3cmd
s3cmd put ~/myfile s3://mytwccbucket/
# for TWCC CLI
twccli cp cos -bkt mytwccbucket -fn myfile -sync to-cos
- 查閱檔案
查閱是否上傳成功
# for S3cmd
s3cmd ls s3://mytwccbucket/myfile
# for TWCC CLI
twccli ls cos -bkt mytwccbucket
- 刪除檔案
刪除剛上傳的 myfile
# for S3cmd
s3cmd rm s3://mytwccbucket/myfile
# for TWCC CLI
twccli rm cos -bkt mytwccbucket -okey myfile
- 刪除 bucket
請先確認 bucket 內無檔案,再刪除 bucket
# for S3cmd
s3cmd rb s3://mytwccbucket
# for TWCC CLI
twccli rm cos -bkt mytwccbucket
- S3cmd
可以下
$ s3cmd --help
參考,或是查閱 s3cmd GitHub - TWCC CLI
可以下
$ twccli --help
參考,或是查閱 TWCC CLI 文件
2. 掛載
以下將介紹兩種掛載工具:Goofys 與 S3fs,您可依需求選擇。
掛載方式僅能在登入節點 ln01.twcc.ai 使用。
建立 COS bucket
- 請參考 TWSC 雲端物件儲存手冊,並在使用者網站先建立 1 個 COS bucket。(Bucket 的管理無法透過 TWNIA2 操作)
- 登入 ln01.twcc.ai 後,在自己帳號下創立
~/mount_cos
資料夾:
mkdir -p ~/mount_cos
寫入金鑰
以下將建立資料夾 ~/.aws
,請複製 TWSC 網頁的 COS 金鑰字串,寫入 ~/.aws/credentials
。
可自行選擇熟悉 editor ,範例以 vim
為例:
mkdir -p ~/.aws
vim ~/.aws/credentials
寫入以下內容:
[default]
aws_access_key_id = COS Access Key
aws_secret_access_key = COS Secret Key
Goofys
- 以 Go 語言撰寫,效能佳,可優先考慮使用。
掛載指令:
goofys --endpoint https://cos.twcc.ai mytwccbucket ~/mount_cos
S3fs
- S3fs為知名的 s3 掛載工具。
掛載指令:
s3fs mytwccbucket ~/mount_cos -o url=https://cos.twcc.ai/ -o use_path_request_style
存取方式
掛載完成後,只需在~/mount_cos
路徑之下讀寫,就能存取剛建立的 COS mytwccbucket
資料。
以下示範操作
# 寫入一個空檔案,檔名為 myfile
touch ~/mount_cos/myfile
此時在 TWSC 網頁的雲端物件儲存管理,點選mytwccbucket
,可以查看到內容新增了myfile
檔案。
卸載
請先離開掛載的資料夾,回到 /home 目錄。
cd ~/
再執行卸載指令。
fusermount -u ~/mount_cos
再執行以下指令,資料夾裡無檔案,即卸載完成。
ls ~/mount_cos