跳至主要内容

存取雲端物件儲存 (COS)

TWSC 台灣杉二號 (命令列介面) (TWNIA2 (HPC CLI)) 除了可使用高速檔案系統 (Hyper File System, HFS) 作為運算的儲存空間外,也可將較少存取的靜態資料存放於 TWCC 雲端物件儲存 (Cloud Object Storage, COS)

本文將介紹 2 種方式,教學 TWNIA2 (HPC CLI) 如何存取 TWCC 雲端物件儲存 (Cloud Object Storage, COS) 空間的資料:

  1. S3 用戶端工具 透過 HTTPS (超級文字傳輸安全協定) 上傳及下載檔案,使用者可以在登入節點,以及提交 job 到計算節點時使用。

  2. 掛載為網路硬碟 採用 FUSE (Filesystem in Userspace) 技術遠端掛載 COS 空間為網路硬碟,僅限掛載於登入節點 (ln01.twcc.ai)。

信息

建議用戶優先考慮使用 S3 用戶端工具

  • 因 FUSE 技術掛載 COS,並非實際本機檔案系統,因此為避免資料流失,用戶僅能上傳單一檔案 (可多檔讀取、下載)。
  • 此外還有諸多限制,因此僅提供用戶在登入節點使用。

您可依需求擇一使用,以下說明如何使用此 2 種方式。


1. S3 用戶端工具

S3 用戶端工具種類繁多,以下介紹的工具以 CLI 操作形式為主,您可依需求選擇使用,範例將採用 TWCC CLIS3cmd 存取 COS 資料:

  • S3cmd
    以 Python 撰寫,開發早且功能完整穩定,為最知名 S3 CLI 工具之一。
  • TWCC CLI
    若已經熟悉 TWCC CLI,可以優先考慮使用,並可操作多項 TWCC 服務。
  • 其他工具
    • Rclone
      可串接多種雲端儲存空間,在 TWCC 台灣杉二號與雲端物件儲存之間,適合小檔案的傳輸。
    • S5cmd
      以 GO 語言撰寫,傳輸速度較 Python 撰寫之工具快,但功能無 S3cmd 完整。

安裝及設定

  • 存取 TWSC 雲端物件儲存服務需輸入 Access KeySecret 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 文件

操作範例

每個範例動作,依序展示使用指令 S3cmdTWCC 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. 掛載

以下將介紹兩種掛載工具:GoofysS3fs,您可依需求選擇。

信息

掛載方式僅能在登入節點 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