本文說明 Google Cloud 如何支援對 Compute Engine 有專屬硬體需求的自備授權 (BYOL)。在嘗試將已授權圖片上傳至 Google Cloud之前,請先詳閱授權條款及細則。
如要使用現有的實體核心或實體處理器授權,且該授權有專屬硬體需求,您必須自備媒體,並在符合授權要求的硬體設定 (例如單一用戶群節點) 上執行該媒體。您可以在任何支援單一租用者節點的區域中,匯入含有現有授權的映像檔。雖然匯入含有現有授權的映像檔不會產生額外費用,但您仍須根據協議支付授權費用。
授權情境 (例如與 RHEL 或 SLE 相關的 Linux BYOS 授權,以及 Microsoft 應用程式) 不需要使用單一租用戶節點。如果您考慮從 SharePoint Server 和 SQL Server 等 Microsoft 應用程式導入授權,請使用 Microsoft 授權行動性。
單一用戶群節點是實體伺服器,專門用於託管專案中的虛擬機器 (VM) 執行個體。您可以設定單租戶節點,以支援各種工作負載需求,例如盡可能減少實體伺服器和核心數量的需求。請參閱授權協議,判斷哪些設定選項最適合您的工作負載。
Google Cloud 提供工具,可用於匯入映像檔、使用單一用戶群節點管理專屬硬體上的 VM、盡量減少實體核心用量,以及追蹤實體核心用量以供報表使用。這有助於支援自備授權,並協助您管理授權相關的法規遵循要求。
如要將具有現有授權的圖片匯入 Google Cloud,您必須執行下列操作:
請根據授權協議準備圖片。
啟用授權。
匯入虛擬磁碟檔案,並使用這些磁碟檔案建立映像檔。
建立單一用戶群節點範本。
使用節點範本建立單一用戶群節點群組。
使用匯入的虛擬磁碟檔案,在節點群組上佈建 VM。
追蹤 VM 的授權使用情形。為協助您回報授權使用量,Google 提供工具協助您追蹤授權使用量、實體核心和處理器使用量。
向供應商回報授權使用情形。
如需授權相關支援或有相關問題,請與授權經銷商聯絡。如需支援或對將具有現有授權的圖片上傳至 Google Cloud有疑問,請與支援團隊聯絡 Google Cloud。
事前準備
-
查看節點群組主機維護政策:BYOL 有兩種主機維護政策可用,可盡量減少用於授權的實體伺服器數量。這些選項為
restart-in-place
和migrate-within-node-group
。 - 要求額外的 CPU 配額:新專案可獲得 72 個 CPU 配額。請確認您有足夠的 CPU 配額可支援節點群組。舉例來說,
n1-node-96-624
節點類型包含 96 個 CPU,如果節點群組使用最少的節點數量 (2),則 CPU 配額至少必須為 192。視您的設定和工作負載需求而定,您可能也需要針對 VM 或 IP 位址要求配額調整。 -
啟用 Cloud Build API:如要匯入 OS 映像檔,您必須啟用 Cloud Build API。啟用此 API 後,Compute Engine 會為您的專案授予適當的 IAM 角色,讓您能夠將映像匯入專案。如要列出授予專案的角色,請使用
gcloud projects get-iam-policy
指令。如要瞭解如何為專案授予角色,請參閱「管理 Compute Engine 資源的存取權」。 - 啟用 Cloud Logging API:如果授權協議要求您追蹤實體伺服器用量,請啟用這個 API。啟用此 API 後,您就可以使用 BigQuery 匯入及查看伺服器用量資訊 (例如實體核心數),這是 Google 強烈建議的做法。如要進一步瞭解如何判斷實體核心數量,請參閱「分析單一用戶群節點用量」。
-
如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
從離線虛擬磁碟匯入及建立映像檔
如要使用現有授權配置 VM,您必須自備媒體。以付費圖片為基礎的圖片不符合 BYOL 資格,因為付費圖片需要 Google 的付費即用授權。如需有關高級圖片的資訊,請參閱「作業系統詳細資料」。
如果您在內部部署環境中擁有虛擬磁碟 (黃金磁碟或黃金映像檔),且這些磁碟具有您需要的軟體設定或授權,則匯入虛擬磁碟工具可協助您執行下列操作:
匯入自訂虛擬磁碟,並使用支援的作業系統,根據這些磁碟建立映像檔。
設定適當的授權設定。
安裝與Google Cloud相容所需的套件和驅動程式。
在匯入 VM 的虛擬磁碟檔案之前,請先在 VM 中下載並執行預先檢查工具,確認檔案中沒有不相容性問題。此外,由於第三方軟體可能會干擾 Compute Engine 驅動程式的安裝作業,因此 Google 建議您在匯入映像檔前移除第三方軟體。
如要使用您自己的授權啟動 VM,請匯入含有您要使用的 OS 的虛擬磁碟。您可以從 Cloud Storage 值區和本機工作站匯入虛擬磁碟。從本機工作站匯入虛擬磁碟檔案時,映像檔匯入工具會將映像檔上傳至 Cloud Storage,並視需要建立新的 Cloud Storage 值區。然後,匯入工具會將檔案複製到 Compute Engine,並透過虛擬磁碟檔案建立可開機映像檔。
儲存在 Cloud Storage 上的檔案與 Compute Engine 中的映像檔會產生費用。確認映像檔已正確匯入且能正確啟動為 VM 後,您就可以從 Cloud Storage 刪除虛擬磁碟檔案。
主控台
前往「Images」(映像檔) 頁面。
按一下「建立映像檔」。
為您的執行個體指定名稱。
在「Source」下方,選擇「Virtual disk (VMDK, VHD)」。
在「Cloud Storage file」(Cloud Storage 檔案) 下方,選擇「Browse」(瀏覽),然後瀏覽要匯入圖片的 Cloud Storage 位置。
在「虛擬磁碟中的作業系統」下方,選擇要匯入的映像檔作業系統。
確認已選取「Install guest packages」,以便匯入的映像檔可啟動。
展開「License key options」。在「OS License」下方,選擇「Use your own license key」。
按一下 [Create] (建立) 即可匯入映像檔。
gcloud
執行 gcloud compute images import
匯入虛擬磁碟檔案,並從虛擬磁碟檔案建立磁碟映像檔:
gcloud compute images import IMAGE_NAME \ --source-file VMDK_NAME \ --byol
更改下列內容:
IMAGE_NAME
:從虛擬磁碟檔案建立的映像檔名稱。VMDK_NAME
:要匯入及建立映像檔的虛擬磁碟名稱。您可以從下列位置匯入 VMDK 檔案:- 本機檔案:如果要從本機檔案匯入,請使用檔案的絕對路徑或相對路徑。視虛擬磁碟的大小和網路連線速度而定,上傳作業可能需要數十分鐘的時間。
- Cloud Storage:如果您要從 Cloud Storage 匯入,Cloud Storage 值區必須位於用於匯入虛擬磁碟的專案中,且您必須以
gs://BUCKET_NAME/OBJECT_NAME
指定檔案的完整路徑。將BUCKET_NAME
替換為 Cloud Storage 值區名稱,並將OBJECT_NAME
替換為 Cloud Storage 物件名稱。
啟用授權
確認您匯入的相容 OS 後,您必須負責檢查授權合約是否允許您自備授權,以及您是否有權使用 Google 提供的客體 OS 映像檔和授權匯入環境。此外,您也必須根據授權協議準備要匯入的訪客 OS 映像檔。
如要啟用授權,請使用啟動指令碼搭配多重啟用金鑰 (MAK),或設定貴機構的 Microsoft 金鑰管理服務存取權。您無法透過 Compute Engine 授權伺服器啟用具有現有授權的映像檔。
匯入映像檔並啟用授權後,請根據匯入的映像檔,在單一用戶群節點上佈建 VM。
建立單一用戶群節點範本
匯入映像檔後,請建立單一用戶群節點範本。您將使用這個節點範本建立單一用戶群節點群組,以便執行映像檔。
節點範本頁面不會列出範本的區域和可用區,但節點群組必須建立在建立節點範本的區域內的某個可用區。如要建立範本,您必須先建立節點群組,但只需完成選擇區域和區域的步驟即可。之後,您可以建立範本,並視需要繼續建立節點群組。
建立單一租用戶節點範本時,您可以在該範本中設定節點相依性標籤。
主控台
前往「Sole-tenant nodes」(單一用戶群節點) 頁面。
按一下「建立節點群組」。
輸入節點群組的名稱。
選取節點群組的「區域」和「可用區」。
請記下您使用的區域和可用區。日後建立以此節點範本為基礎的節點群組時,節點群組必須位於建立節點範本的地區內的可用區。
在「節點範本屬性」下方,選取「建立節點範本」。
在「Create a node template」對話方塊中,指定「Name」、「Node type」、「Local SSD」和「GPU accelerator」。
在「CPU 超額配置」下方,選擇是否要啟用 CPU 超額配置。
選用步驟:點選「相依性標籤」下方的「新增相依性標籤」,將鍵/值組合新增為節點相依性標籤。
按一下 [Create] (建立),完成建立節點範本。
按一下「取消」即可取消建立節點群組。
gcloud
使用 gcloud compute sole-tenancy
node-templates create
建立單一用戶群節點範本。
gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \ --node-type NODE_TYPE \ --region REGION
更改下列內容:
TEMPLATE_NAME
:要建立的節點範本名稱。NODE_TYPE
:節點群組中節點的單一用戶群節點類型。節點群組中的所有節點都相同,且是由節點範本指定的參數建立。REGION
:建立節點範本的區域。
REST
使用 nodeTemplates.insert 建立單一用戶群節點範本。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates { "name": "TEMPLATE_NAME", "nodeType": "NODE_TYPE" "nodeAffinityLabels": { "KEY": "VALUE" } }
更改下列內容:
建立單一用戶群節點群組
如要建立以節點範本為基礎的節點群組,節點群組必須位於建立節點範本的地區內的某個區域。單一用戶群節點群組會繼承單一用戶群節點範本指定的屬性。單一租用戶節點群組有其他必須指定的值。針對 BYOL,請視授權規定而考慮主機維護政策的不同選項:
- 如果授權是依實體核心指派,請使用
restart-in-place
或migrate-within-node-group
主機維護政策,盡可能減少使用的實體伺服器數量。 - 如果授權是根據使用者/裝置指派 (通常用於虛擬桌面授權的模式),請使用
default
主機維護政策。這些授權並未依實體核心指派,因此不需要特殊主機維護政策來限制實體伺服器的使用情形。
主控台
前往「Sole-tenant nodes」(單一用戶群節點) 頁面。
按一下「建立節點群組」。
在「節點群組屬性」下方,輸入節點群組的「名稱」。
選取節點群組的「區域」和「可用區」。
如果該地區或區域有可用的範本,點選「Continue」後,範本會列在「Node template properties」下方。
按一下 [繼續]。
在「Node template properties」(節點範本屬性) 下方,選取要用於節點群組的「Node template」(節點範本) 。節點群組必須位於建立節點範本的地區內的區域,因此在為節點群組選取範本時,請從包含您要建立節點群組的區域內的地區選取範本。如果沒有節點範本,您可以建立一個。
按一下 [繼續]。
在「Configure autoscaling」(設定自動調度資源) 下方,將「Autoscaling mode」(自動調度資源模式) 設為下列任一值。詳情請參閱「自動調度節點群組」。
- 開啟:自動將節點新增至節點群組或從中移除。
- 僅向外擴充:當需要額外容量時,在節點群組中新增節點。
- 關閉:手動管理節點群組的大小。
指定群組的節點數量下限。如果您啟用節點群組自動配置器,請為節點群組大小指定範圍 (節點數量下限和上限),或指定群組的節點數量。您之後可以手動變更這兩個值。
按一下 [繼續]。
選用步驟:在「設定維護設定」下方,將「維護政策」設為下列任一值。您可以透過維護政策,設定節點群組在主機維護事件期間的 VM 行為。詳情請參閱主機維護政策。
- 預設
- 就地重新啟動
- 在節點群組內遷移
按一下 [建立]。
gcloud
使用 gcloud compute sole-tenancy
node-groups create
指令建立單一用戶群節點群組。
gcloud compute sole-tenancy node-groups create GROUP_NAME \ --node-template TEMPLATE_NAME \ --target-size GROUP_SIZE \ --zone ZONE \ --maintenance-policy MAINTENANCE_POLICY
更改下列內容:
GROUP_NAME
:要建立的單一用戶群節點群組名稱。TEMPLATE_NAME
:建立節點群組的節點範本名稱。GROUP_SIZE
:節點群組的初始大小。節點群組自動配置器會自動管理單一用戶群節點群組的大小,您也可以手動管理大小。ZONE
:要建立節點群組的區域。此區域必須與節點範本位於同一個地區。MAINTENANCE_POLICY
:節點群組的維護政策。將維護政策設為下列其中一個值。如果未設定任何值,系統會使用default
做為維護政策。default
migrate-within-node-group
restart-in-place
REST
使用 nodeGroups.insert
建立單一用戶群節點群組。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=GROUP_SIZE { "nodeTemplate": "/regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": "MAINTENANCE_POLICY" }
更改下列內容:
PROJECT_ID
:要建立節點群組的專案 ID。ZONE
:要建立節點群組的區域。此區域必須與節點範本位於同一個地區。GROUP_SIZE
:節點群組的初始大小。節點群組自動配置器會自動管理單一用戶群節點群組的大小,您也可以手動管理大小。REGION
:包含節點範本的區域。TEMPLATE_NAME
:建立節點群組的節點範本名稱。GROUP_NAME
:要建立的單一用戶群節點群組名稱。MAINTENANCE_POLICY
:節點群組的維護政策。將維護政策設為下列其中一個值。如果未設定任何值,系統會使用DEFAULT
做為維護政策。DEFAULT
RESTART_IN_PLACE
MIGRATE_WITHIN_NODE_GROUP
佈建單一用戶群 VM
在節點群組上佈建 VM,並指定主機維護政策。請注意下列規定:
- 如要在採用
restart-in-place
主機維護政策的節點群組中佈建節點,請確認 VM 的「on host maintenance」選項值為TERMINATE
。 - 如要在節點群組中使用
migrate-within-node-group
維護政策進行佈建,請確認 VM 會以node-group-name
相依性標籤指定單一節點群組,且不會以node-name
相依性標籤指定單一節點。任何主機維護選項皆可使用,但建議您使用MIGRATE
。
主控台
如果您在範本中使用節點相依性標籤,可以使用代管執行個體群組 (MIG) 建立多個 VM,並在「Sole-tenant nodes」設定下指定節點相依性標籤,或是透過節點群組詳細資料頁面建立個別 VM:
前往「Sole-tenant nodes」(單一用戶群節點) 頁面。
按一下要為其佈建 VM 的節點群組名稱。
如要在單一用戶群節點上建立 VM,請執行下列任一操作:
- 如要在單一租用戶節點群組的任何位置建立 VM,請按一下「建立執行個體」。
- 如要在特定單一用戶群節點上建立 VM,請依序按一下單一用戶群節點群組的「名稱」,然後按一下單一用戶群節點的「名稱」,接著按一下「建立執行個體」。
設定單一用戶群 VM。由於您已選取節點群組或特定節點,因此範本已指定地區、區域和節點相依性標籤。
指定機器系列、系列和機器類型,選取機器設定。選擇與單一租用者節點類型相對應的「系列叢書」。
為單租戶 VM 選取「Boot disk」,也就是先前匯入的虛擬磁碟映像檔。
選取「管理」分頁標籤:
- 在「可用性政策」>「在主機維護期間」 下方,選取 VM 的重新啟動行為。
- 在「Automatic Restart」(自動重新啟動) 下方,選取「On (recommended)」(啟用 (建議選項)) 或「Off」(關閉)。
按一下 [建立]。
gcloud
使用 gcloud
compute instances create
指令,在單一用戶群節點群組中佈建單一用戶群 VM。
gcloud compute instances create VM_NAME \ --machine-type MACHINE_TYPE --image IMAGE_NAME \ --zone ZONE \ --node-group GROUP_NAME \ RESTART_BEHAVIOR \ --maintenance-policy MAINTENANCE_POLICY
更改下列內容:
VM_NAME
:要建立的 VM 名稱。MACHINE_TYPE
:新 VM 的機器類型。IMAGE_NAME
:要用來建立 VM 的映像檔。這是在匯入程序中建立的映像檔。ZONE
:建立 VM 的可用區。GROUP_NAME
:要用於佈建 VM 的節點群組名稱。RESTART_BEHAVIOR
:這個 VM 的重新啟動行為。將重新啟動行為設為下列其中一個值:--restart-on-failure
--no-restart-on-failure
MAINTENANCE_POLICY
:維護事件期間的 VM 行為。將維護政策設為下列其中一個值:MIGRATE
TERMINATE
REST
使用 instances.insert
方法,在單一用戶群節點群組上佈建單一用戶群 VM。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances { "name": "VM_NAME", "machineType": "/zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "node-group", "operator": "IN", "values": [ "GROUP_NAME" ] } ], "onHostMaintenance": "MAINTENANCE_POLICY", "automaticRestart": "AUTOMATIC_RESTART" }, "networkInterfaces": [ { "network": "/global/networks/NETWORK", "subnetwork": "/regions/region/subnetworks/SUBNETWORK" } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } } ] }
更改下列內容:
PROJECT_ID
:要建立 VM 的專案 ID。VM_ZONE
:建立 VM 的可用區。VM_NAME
:新 VM 的名稱。MACHINE_TYPE_ZONE
:包含機器類型的區域。MACHINE_TYPE
:用於佈建 VM 的機器類型。GROUP_NAME
:要用於佈建 VM 的節點群組名稱。MAINTENANCE_POLICY
:維護事件期間的 VM 行為,可設為MIGRATE
或TERMINATE
。AUTOMATIC_RESTART
:指定在 Compute Engine 停止 VM 時,是否自動重新啟動 VM。預設值為true
。NETWORK
:要連線至 VM 的網路名稱。SUBNETWORK
:要連線至 VM 的子網路名稱。IMAGE_PROJECT
:包含來源圖片的圖片專案。IMAGE_FAMILY
:來源圖片的圖片系列。
後續步驟
如要將自備授權匯入 Google Cloud,請參閱常見問題。