概述
Google Compute Engine
讓你在 Google 的基礎設施上建立以及運行虛擬機。 你可以在建立運行著不同作業系統的虛擬機,包含不同偏好的 Linux (Debian, Ubuntu, Suse, Red Hat, CoreOS) 以及 Windows Server
Google Compute Engine
提供 persistent disks, 這是虛擬機上的主要儲存空間。 就像是實體的硬碟一樣, persistent disks 可獨立存在於你的虛擬機 - 如果一台虛擬機被刪除了,附加的 persistent disk 將可以持續將資料留住,並且可以附加到其他的虛擬機上。
Persistent disks
有兩種:
一般persistent disk
SSD persistent disk
更多兩者差異的資訊,可以參考 Storage Options 。 兩種類型的 persistent type 有其不同的容量限制,更多資訊請參考 Persistent Disk 官方文件
本篇將會做什麼?
- 建立一個新的 VM instance ,然後在其新增 persistent disk
- 掛載並格式化 persistent disk
前言
本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
原文請參閱
Refer to official link
設定及要求
在你按下 Start Lab 按鈕之前
詳讀所有的教學。 Labs 是有時間限制的, 而且你不可以停止時間倒數。 倒數計時器在你按下 Start Lab 按鈕後開始倒數, 上面顯示的時間為你還能使用 Cloud 資源的時間。
Qwiklabs 的手把手環境, 讓你可以在真實環境中來操作進行 Qwiklabs 上提供的課程, 而不是在一個模擬或是展示的環境。 我們透過提供你一個全新的、暫時的帳號密碼, 在計時器歸零之前, 你可以用來登入並存取 Google Cloud Platform。
你需要什麼?
要完成這個 lab, 你需要:
- 一個一般的網路瀏覽器(推薦 Chrome)
- 完成這個 lab 的時間
備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab
現在你已經開始你的 lab
, 你將會登入 Google Cloud Shell
主控台, 然後開啟命令列工具
如何開始你的 lab, 然後登入 Console?
- 按下 Start Lab 按鈕。 如果你需要付費, 會有一個彈出視窗來讓你選擇付費的方式。 在左方你會看到一個面板, 上面有暫時的帳號密碼, 你必須使用這些帳號密碼在此次 lab
- 複製
username
, 然後點擊Open Google Console
。 Lab 會開啟另外一個視窗, 顯示選擇帳號
的頁面
tip: 開啟一個全新的視窗,然後跟原本的頁面並排
- 在
選擇帳號
頁面, 點擊Use Another Account
- 登入頁面開啟, 貼上之前複製的
username
以及password
, 然後貼上
重要: 必須使用之前於 Connection Details 面板
取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號, 請不要用在這裡(避免產生費用)
- 點擊並通過接下來的頁面:
- 接受
terms
以及conditions
- 不要增加
recovery optoins
或two factor authentication
(因為這只是一個臨時帳號) - 不要註冊免費體驗
- 接受
稍待一些時候, GCP 控制台將會在這個視窗開啟。
注意: 按下左上方位於 Google Cloud Platform
隔壁的 Navigation menu
, 你可以瀏覽選單, 裡面有一系列的 GCP 產品以及服務
啟動 Google Cloud Shell
Google Cloud Shell
是載有開發工具的虛擬機器。 它提供了5GB的 home 資料夾, 並且運行在 Google Cloud
上。 Google Cloud Shell
讓你可以利用 command-line 存取 GCP
資源
- 在
GCP 控制台
, 右上的工具列,點擊Open Cloud Shell
按鈕
- 在打開的對話框裡, 按下
START CLOUD SHELL
:
你可以立即按下 START CLOUD SHELL
當對話視窗打開。
連結並提供環境會需要一點時間。 當你連結成功, 這代表你已成功獲得授權, 且此專案已被設為你的專案ID, 例如:
gcloud 是 Google Cloud Platform
的 command-line 工具, 他已事先被安裝在 Cloud Shell
並且支援自動補齊
使用這個 command, 你可以列出有效帳戶名稱:
gcloud auth list |
輸出:
Credentialed accounts: |
範例輸出:
Credentialed accounts: |
你可以使用以下 command 來列出專案 ID
gcloud config list project |
輸出:
[core] |
範例輸出:
[core] |
gcloud
的完整文件可以參閱 Google Cloud gcloud Overview
建立 VM instance
- 建立一個名為 ‘gcelab’ 的新虛擬機 instance
gcloud compute instances create gcelab --zone us-central1-c
- 新建的VM instance將有內建10GB的初始化disk
建立新的 persistent disk
- 在 Cloud Shell 中輸入以下指令,注意 zone 參數需與 VM instance 一致
gcloud compute disks create mydisk --size=200GB --zone us-centrall-c
在運轉中的 VM instance 上新增剛建立的 persistent disk
gcloud compute instances attach-disk gcelab --disk mydisk --zone us-central1-c |
在 VM instance 上找到剛剛新增的 persistent disk
SSH 到 virtual machine
gcloud compute ssh gcelab --zone us-central1-c
輸入y繼續
如果需要設定密碼,可以輸入密碼
在 /dev/disk/by-id/ 下找到 disk 裝置
ls -l /dev/disk/by-id/
找到預設裝置名稱如下:
scsi-0Google_PersistentDisk_persistent-disk-1.
如果你想要一個不一樣的裝置名稱,當你在新增 disk 時,你可以加入裝置名稱參數
gcloud compute instances attach-disk gcelab --disk mydisk --device-name yourDeviceName --zone us-central1-c
格式化,並且掛載 persistent disk
- 在找到裝置後,我們可以將 disk 分區,格式化,並且掛載
- 建立一個掛載點
sudo mkdir /mnt/mydisk
- 使用
mkfs
工具,格式化 disk 為 ext4 格式,這個指令將會刪除指定 disk 下的所有資料sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1
- 利用
mount
工具,掛載 disksudo mount -o discard,defaults /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk
設定自動掛載
- 預設值中,在 VM instance 重新啟動之後, persistent disk 並不會自動掛載,我們需要在/etc/fstab檔案中增加一些輸入
sudo vim /etc/fstab
- 在開頭是
UUID
那段程式碼之後,加入:/dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
- 此時,你的 /etc/fstab 應該看起來要像這樣:
UUID=e084c728-36b5-4806-bb9f-1dfb6a34b396 / ext4 defaults 1 1
/dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
按
:wq |
小習題:
- Can you prevent the destruction of an attached persistent disk when the instance is deleted?
- No, attached persistent disks are always associated with the lifetime of the instance.
- Yes, deselect the option
Delete boot disk when instance is deleted
when creating an instance - Yes, use the
-keep-disks
option with thegcloud compute instances delete
command
- For migrating data from a persistent disk to another region, reorder the following steps in which they should be performed:
Attach disk
Create disk
Create snapshot
Create instance
Unmount file system(s)
- (4, 1, 2, 3, 5)
- (2, 3, 1, 4, 5)
- (1, 3, 2, 4, 5)
- (5, 3, 2, 4, 1)
非必要指令
- 顯示活躍中帳戶
gcloud auth list
- 顯示project id
gcloud config list project
留言