使用 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 大概會有兩種方式
今天要嘗試的是使用服務帳戶金鑰的方式
建立服務帳戶
登入 GCP console -- > IAM 與管理員
點選 服務帳戶
點選 CREATE SERVICE ACCOUNT
輸入帳戶名稱 / 說明
-- > 建立
選取服務帳戶權限 -- > 繼續
這邊我是給到 Storage Object Admin
點選 建立金鑰
選取金鑰類型, 我這邊選取 JSON
點選 建立
下載金鑰到機器上面
點選 完成
將 key 複製到 openSUSE /root 目錄下
安裝 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.
再次觀察系統資訊
# 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: