星期二, 5月 21, 2019

使用 gcsfuse 掛載 google cloud storage with openSUSE Leap 小記

使用 gcsfuse 掛載 google cloud storage with openSUSE Leap 小記  

OS:  openSUSE Leap 15 in Azure

今天要來實驗 gcsfuse 掛載 google cloud storage

gcsfuse 介紹:

Cloud Storage FUSE 是一種開發原始碼 FUSE 轉接器,可讓您在 Linux 或 macOS 系統上掛接 Cloud Storage 值區做為檔案系統,還可讓應用程式透過標準檔案系統語意上傳和下載 Cloud Storage 物件。Cloud Storage FUSE 可以在連結 Cloud Storage 的任何地方執行,包括 Google Compute Engine VM 或內部部署系統
要掛載 google cloud storage, 首先必須要建立一個 google cloud storage

參考之前的文章

建立 google cloud storage

> gsutil  mb -l asia-east1 gs://test20190521

Creating gs://test20190521/...

要掛載 google cloud storage, 必須要有相關驗證以及權限, 配合 gcsfuse 大概會有兩種方式
  • 使用 google 驗證
  • 使用 服務帳戶金鑰

今天要嘗試的是使用服務帳戶金鑰的方式

建立服務帳戶
登入  GCP console -- > IAM 與管理員
點選 服務帳戶
點選 CREATE SERVICE ACCOUNT


輸入帳戶名稱 / 說明
-- > 建立


選取服務帳戶權限 -- > 繼續
這邊我是給到 Storage Object Admin

點選 建立金鑰


選取金鑰類型, 我這邊選取 JSON
點選 建立


下載金鑰到機器上面
點選 完成

將 key 複製到 openSUSE /root 目錄下
  • 例如 $ scp steadfast-oadmin-adf10.json YOUR_USER@SERVER_IP:/home/YOUR_USER
  • steadfast-oadmin-adf10.json 是剛剛的金鑰

安裝 gcsfuse 套件
在 openSUSE Leap 15 in Azure
參考


> sudo zypper install curl fuse


> sudo rpm --install --nosignature -p gcsfuse-0.17.0-1.x86_64.rpm

觀察系統資訊
> df -h

Filesystem      Size Used Avail Use% Mounted on
devtmpfs        803M 0 803M   0% /dev
tmpfs           820M 0 820M   0% /dev/shm
tmpfs           820M 17M 803M   3% /run
tmpfs           820M 0 820M   0% /sys/fs/cgroup
/dev/sda2        29G 1.6G 28G 6% /
/dev/sda1      1014M 91M 924M   9% /boot
/dev/sdb1        40G 49M 38G 1% /mnt/resource
tmpfs           164M 0 164M   0% /run/user/1000


建立掛載目錄
# mkdir  /mnt/gstorage

掛載 google cloud storage
# gcsfuse --key-file /root/steadfast-oadmin-adf10.json test20190521  /mnt/gstorage/

Using mount point: /mnt/gstorage
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.

  • Bucket 前面不需要加上 gs://

再次觀察系統資訊

# df -h

Filesystem      Size Used Avail Use% Mounted on
devtmpfs        803M 0 803M   0% /dev
tmpfs           820M 0 820M   0% /dev/shm
tmpfs           820M 25M 795M   4% /run
tmpfs           820M 0 820M   0% /sys/fs/cgroup
/dev/sda2        29G 1.7G 28G 6% /
/dev/sda1      1014M 91M 924M   9% /boot
/dev/sdb1        40G 49M 38G 1% /mnt/resource
tmpfs           164M 0 164M   0% /run/user/1000
test20190521    1.0P 0 1.0P   0% /mnt/gstorage

最後就是把 gcsfuse 指令放到類似 rc.local , 做成 systemd  服務或是 利用 crontab 使用 @reboot 方式讓他開啟的時候掛載起來 :)


~  enjoy it

Reference:

沒有留言: