Compute Engine 執行個體擁有高效能的企業級記憶體,可供您執行應用程式。您可以分配部分記憶體以建立極低延遲和高總處理量的 RAM 磁碟。當應用程式預期使用檔案系統結構,但無法僅將結構資料儲存在記憶體中時,RAM 磁碟很適合。單獨的 RAM 磁碟不會提供任何儲存空間備援功能或靈活性,因此,建議將 RAM 磁碟與執行個體儲存空間選項一起使用。
RAM 磁碟會與應用程式共用執行個體記憶體。如果執行個體的記憶體不足,無法容納 RAM 磁碟和應用程式,請使用 highmem 機型 (例如 N2) 建立執行個體,或升級現有執行個體,以增加記憶體。
事前準備
- 瞭解 RAM 磁碟與其他 Compute Engine 儲存空間選項之間的差異。
-
如果尚未設定驗證,請先完成設定。驗證機制會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。
gcloud
-
安裝 Google Cloud CLI。 安裝完成後, 請執行下列指令,初始化 Google Cloud CLI:
gcloud init如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果採用外部識別資訊提供者 (IdP),必須先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
建立 RAM 磁碟
您可以使用 tmpfs 檔案系統建立 RAM 磁碟,大多數 Linux 發行版本預設都包含該檔案系統。
如果執行個體沒有足夠的可用記憶體,您可以選擇變更執行個體機器類型,採用具備較多記憶體的機器類型。
透過 SSH 連線至執行個體。在本範例中,請前往「VM instances」(VM 執行個體) 頁面,然後在要新增 RAM 磁碟的執行個體名稱旁,按一下「SSH」SSH按鈕。
建立 RAM 磁碟的掛接點。
$ sudo mkdir /mnt/ram-disk建立並掛接新
tmpfsRAM 磁碟。您必須決定符合儲存空間需求的size屬性值,而不與應用程式競爭記憶體,或耗盡所有可用記憶體。在這個範例中,執行個體有具備 208 GB 記憶體的n1-highmem-32機器類型,因此適合使用50g的 RAM 磁碟大小。$ sudo mount -t tmpfs -o size=50g tmpfs /mnt/ram-disk將 RAM 磁碟新增至
/etc/fstab檔案,這樣在您重新啟動執行個體時,裝置可自動再次掛接:$ echo 'tmpfs /mnt/ram-disk tmpfs nodev,nosuid,noexec,nodiratime,size=50G 0 0' | sudo tee -a /etc/fstab
刪除 RAM 磁碟
您可以像其他任何磁碟區一樣卸載 tmpfs RAM 磁碟。這樣會刪除 RAM 磁碟以及其中儲存的任何資料。在這個範例中,請移除掛接在 /mnt/ram-disk 中的 RAM 磁碟:
$ sudo umount /mnt/ram-disk
在重新啟動執行個體期間自動備份 RAM 磁碟資料
您可以在重新啟動執行個體之前,先備份 RAM 磁碟,以保留 RAM 磁碟資料,直到執行個體再次啟動為止。將資料備份至 Google Cloud Hyperdisk 磁碟區,如果 VM 的機型不支援 Hyperdisk,則備份至永久磁碟磁碟區。
建立並掛接 Hyperdisk 磁碟區,做為 RAM 磁碟的備份磁碟。請確認磁碟夠大,足以容納 RAM 磁碟中的資訊。
使用
rsync指令為執行個體建立關閉指令碼,這個指令碼可將 RAM 磁碟內容寫入備份磁碟區。在本範例中,請使用 gcloud CLI 將shutdown-script中繼資料新增至執行個體,並將 RAM 磁碟掛接在/mnt/ram-disk,Hyperdisk 磁碟區掛接在/mnt/ram-disk-backup。gcloud compute instances add-metadata example-instance --metadata shutdown-script="#! /bin/bash rsync -a --delete --recursive --force /mnt/ram-disk/ /mnt/ram-disk-backup/ EOF"您也可以選擇建立開機指令碼,這個指令碼可在執行個體再次啟動時將檔案還原至 RAM 磁碟。使用 gcloud CLI 將
startup-script中繼資料新增至執行個體。gcloud compute instances add-metadata example-instance --metadata startup-script="#! /bin/bash rsync -a --recursive --force /mnt/ram-disk-backup/ /mnt/ram-disk/ EOF"