Google Code Prettify

2023年1月7日 星期六

GCP: Create a Persistent Disk

目標
  1. 建立一個 VM 及一個 Disk

  2. format 和掛載 Disk 到 VM

建立 VM
  • 開啟 Cloud Shell
這一篇都將使用 Cloud Shell 的 command line 完成所有事項,首先打開 Cloud Shell,如下圖,click 右上角紅色,即可開啟 Cloud Shell。

用以下指令檢查一下環境,看看帳號對不對? 是否在正確的 project 裡?
gcloud auth list
gcloud config list project
  • create a new instance
gcloud compute instances create gcelab3 --zone asia-east1-a

如上指令建立了一個 VM,一切都用預設的,AZ 指定在 asia-east1-a,是台灣彰濱機房三個 AZ 之一。要特別注意,VM 和 Disk 必須在同一個 AZ 才可以將 Disk 掛載到 VM 上

建立&掛載 Disk
  • create a new persistent disk
gcloud compute disks create mydisk --size=100GB --zone asia-east1-a
注意看上面紅框裡的說明,Disk 最好要 200GB 以上,否則會有效能低下的問題。

  •  attaching a disk

gcloud compute instances attach-disk gcelab3 --disk mydisk --zone asia-east1-a
VM 的名稱是 gcelab3,disk 的名稱是 mydisk,都位於 asia-east1-a 這個 AZ,出現如上訊息表示成功將 VM 和 Disk 連結在一起! 要怎麼檢查呢? ssh 進 VM !
gcloud compute ssh gcelab3 --zone asia-east1-a

檢查 /dev/disk/by-id/ 目錄,看到最下面的 sdb 那一行,就是剛剛連結上去的 Disk,預設名稱就是 scsi-0Google_PersistentDisk_persistent-disk-1

上面的名稱不好認,可以自己命名,那麼在 attach-disk 時要指出 device-name,如下:
gcloud compute instances attach-disk gcelab3 --disk mydisk --device-name <YOUR_DEVICE_NAME> --zone asia-east1-a
  • formatting and mounting the persistent disk
上面的磁碟空間還沒有 format,也沒有 mount 到 OS。
sudo mkdir /mnt/mydisk  
sudo mkfs.ext4 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1
第一行,先在 /mnt 下建一個目錄,是接下來要掛載的; 第二行將 disk format,注意看,最後一個參數是 device name。

sudo mount -o discard,defaults /dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk
接著掛載到 OS,如下,算一下它的大小,差不多 100 GB 沒錯!

  • automatically mount the disk on restart
上面掛載成功,但是 VM 重啟,又得重新掛載,如果要 VM 重啟會自動掛載,要做一些設定。
sudo vi /etc/fstab
在最後一行加上如下內容:
UUID=/dev/disk/by-id/scsi-0Google_PersistentDisk_persistent-disk-1 /mnt/mydisk ext4 defaults 1 1
整個檔案內容如下,最後一行是新加上去的,這樣 VM 重啟 Disk 也不需重新掛載了!


沒有留言:

張貼留言