進行以下步驟前,請先確認你在建立 Google Compute Engine instance 的時候,有勾選允許使用 Google API 連接其它 Google 服務。
若要在 Google Compute Engine 的 VM 裡掛載 Google Storage 的話,要使用 gcsfuse 套件。
這裡有介紹:Cloud Storage FUSE
參考來源:
GoogleCloudPlatform/gcsfuse
yum Error:rpmdb open failed
以下為 CentOS 6 安裝 gcsfuse 的方式:
下載 rpm
curl -L -O https://github.com/GoogleCloudPlatform/gcsfuse/releases/download/v0.17.0/gcsfuse-0.17.0-1.x86_64.rpm
安裝 rpm
sudo rpm --install -p gcsfuse-0.17.0-1.x86_64.rpm
如果出現了錯誤訊息 yum Error:rpmdb open failed
rpmdb: PANIC: fatal region error detected; run recovery error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm CRITICAL:yum.main: Error: rpmdb open failed
處理方式:
步驟 1. 先備份套件來源 /var/lib/rpm/
mkdir /root/backups.rpm.mm_dd_yyyy/ cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/
步驟 2. 刪除套件來源資料,重建套件來源
rm -f /var/lib/rpm/__db* db_verify /var/lib/rpm/Packages rpm --rebuilddb yum clean all
步驟 3. 更新系統
yum update
注意!!! 以上步驟做完後,重新安裝一次仍會顯示失敗。
最後是重做步驟 2,再重新啟動系統
reboot
重新啟動系統後再安裝就正常了
如何掛載:
先在本機建立一個掛載資料夾
mkdir /mnt/gstorage
用 gsutil ls 來查看 bucket 名稱
gsutil ls gs://bucketName/
但掛載時,不需要使用 gs://,直接使用 bucket name 即可
gcsfuse bucketName /mnt/gstorage Using mount point: /mnt/gstorage Opening GCS connection... Opening bucket... Mounting file system... File system has been successfully mounted.
使用 df 查看
df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.8G 3.1G 6.2G 34% / tmpfs 296M 0 296M 0% /dev/shm bucketName 8.0P 0 8.0P 0% /mnt/gstorage
如何卸載:
下達一般的 umount 指令即可
umount /mnt/gstorage
開機即掛載:
修改 rc.local 開機執行檔
vim /etc/rc.local
在最後一行加入
gcsfuse bucketName /mnt/gstorage
這樣以後重啟系統時就會自動掛載 storage
由於 Google Storage 是透過第3方軟體掛載,所以不是像本機掛載那樣寫在 /etc/fstab 裡面