お客様所有ライセンスの使用

このページでは、お客様所有ライセンスの使用(BYOL)を Google Cloud に移行する方法について説明します。既存のライセンスを持つイメージを使用する前に、お客様所有ライセンスの使用の概要をお読みください。

専用のハードウェア要件を持つ物理コアまたは物理プロセッサのライセンスを Google Cloud に移行するには、単一テナントノードを使用します。単一テナントノードでは、VM はプロジェクト専用のハードウェアで実行され、物理コアの使用は制限されます。

既存のライセンスでイメージを使用するには、以下が必要です。

  1. 仮想ディスク ファイルをインポートし、イメージを作成する
  2. 単一テナントノード テンプレートを作成する
  3. ノード テンプレートに基づいて単一テナントノード グループを作成する
  4. インポートした仮想ディスク ファイルを使用してノードグループ内の VM をプロビジョニングする

ライセンスに関してサポートが必要な場合やご質問がある場合は、ライセンスの販売元にお問い合わせください。既存のライセンスを含むイメージを Google Cloud に移行する方法についてサポートが必要な場合、またはご不明な点がある場合は、Google Cloud サポートにお問い合わせください。

始める前に

  1. 追加の CPU 割り当てをリクエストする: ノードグループをサポートするのに十分な CPU 割り当てがあることを確認します。ノードタイプごとに追加の割り当てをリクエストします。確約利用割引を購入した場合は、確約した CPU について割り当ての増加をリクエストする必要があります。設定とワークロードのニーズによっては、VM または IP アドレスの割り当て調整をリクエストする必要があります。

  2. Cloud Build API を有効にする: OS イメージをインポートするには、Cloud Build API を有効にする必要があります。この API を有効にすると、Compute Engine がプロジェクトに適切な IAM ロールを付与し、プロジェクトにイメージをインポートできるようになります。プロジェクトに付与されているロールを一覧表示するには、gcloud projects get-iam-policy コマンドを使用します。プロジェクトにロールを付与する方法については、Compute Engine リソースへのアクセスの管理をご覧ください。

  3. Cloud Logging API を有効にする: ライセンス契約で物理サーバーの使用状況を追跡する必要がある場合は、この API を有効にします。この API を有効にして、BigQuery を使用し、物理コア数などのサーバー使用状況に関する情報をインポートして表示することを、強くおすすめします。物理コア数を確認する方法については、サーバーの使用量の判断をご覧ください。

仮想ディスク ファイルをインポートし、イメージを作成する

VM の仮想ディスク ファイルをインポートする前に、VM 内から事前チェックツールをダウンロードして、実行し、ファイルに互換性の問題がないことを確認します。

独自のライセンスで VM を起動するには、使用する OS で仮想ディスクをインポートします。gcloud コマンドライン ツールを使用してファイルをインポートできます。このコマンドライン ツールでは、Cloud Storage バケットとローカル ワークステーションから仮想ディスクをインポートできます。

仮想ディスク ファイルをインポートすると、イメージ インポート ツールによってイメージ ファイルが Cloud Storage にアップロードされ、必要に応じて新しい Cloud Storage バケットが作成されます。次に、インポート ツールがファイルを Compute Engine にコピーし、仮想ディスク ファイルからイメージを作成します。

ローカル ワークステーションで仮想ディスク ファイルをホストしている場合は、イメージ インポート ツールによってファイルが Cloud Storage バケットにアップロードされ、続いてイメージが Compute Engine にインポートされます。

イメージ インポート ツールの詳細については、仮想ディスクのインポートをご覧ください。

gcloud

  1. 次のコマンドを実行して仮想ディスク ファイルをインポートし、イメージを作成します。

    gcloud compute images import image-name  --source-file file-name  --os os
    

    以下を置き換えます。

    • image-name: イメージに付ける名前。

    • file-name: ローカルでホストされている、または Cloud Storage に保存されている仮想ディスク ファイル。

      • 仮想ディスクがローカル ファイルの場合: 絶対パスまたは相対パスを使用します。この場合、仮想ディスクのサイズとネットワーク接続の速度によっては、アップロード オペレーションに数十分かかることがあります。

      • 仮想ディスク ファイルが Cloud Storage に保存されている場合: ファイルのフルパスを gs://bucket-name/object-name 形式で指定します。ファイルは、インポート プロセスで使用されるものと同じプロジェクト内のストレージ バケットに存在する必要があります。

    • os: source-file のオペレーティング システム。次のいずれかの値を設定する必要があります。

      • rhel-6-byol
      • rhel-7-byol
      • rhel-8-byol
      • sles-12-byol
      • sles-15-byol
      • windows-2012-byol
      • windows-2012r2-byol
      • windows-2016-byol
      • windows-2019-byol
      • windows-7-x64-byol
      • windows-7-x86-byol
      • windows-8-x64-byol
      • windows-8-x86-byol
      • windows-10-x64-byol
      • windows-10-x86-byol
  2. イメージを作成したら、プロジェクトまたは組織外のユーザーとイメージを共有できます。

    gcloud projects add-iam-policy-binding project-id  --member user:user-email  --role roles/compute.imageUser
    

    以下を置き換えます。

    • project-id: アクセスを許可するイメージを含むプロジェクトのプロジェクト ID。
    • user-email: イメージを共有するユーザーのメールアドレス。

    共有イメージにアクセスする方法については、共有イメージへのアクセスをご覧ください。

  3. Cloud Storage に保存されているファイルと Compute Engine のイメージには料金が発生します。イメージがインポートされ、VM として正常に起動することを確認したら、Cloud Storage から仮想ディスク ファイルを削除できます。

単一テナントノード テンプレートを作成する

ノードグループのベースとなるノード テンプレートを作成します。

gcloud

gcloud compute sole-tenancy node-templates create template-name --node-type node-type --region region --server-binding server-binding

以下を置き換えます。

  • template-name: 作成するノード テンプレートの名前。
  • node-type: このテンプレートのノードタイプ。たとえば、80 個の vCPU と 624 GB のメモリを備えたノードを作成するには、n2-node-80-640 ノードタイプを選択します。

  • region: ノード テンプレートを作成するリージョン。

  • server-binding: このテンプレートを使用するノードのサーバー バインディング ポリシー。ライセンスの種類に応じて、次のいずれかに設定します。

    • restart-node-on-any-server
    • restart-node-on-minimal-servers

API

POST https://www.googleapis.com/compute/beta/projects/project-id/regions/region/nodeTemplates

{
   "name": "template-name",
   "nodeType": "node-type"
   "nodeAffinityLabels": {
      "key": "value"
   },
   "serverBinding":
   {
     "type": "server-binding"
   }
}

以下を置き換えます。

  • project-id: プロジェクトの ID。
  • template-name: 作成するノード テンプレートの名前。
  • node-type: このテンプレートのノードタイプ。たとえば、80 個の vCPU と 624 GB のメモリを備えたノードを作成するには、n2-node-80-640 ノードタイプを選択します。

  • key:value: アフィニティ ラベルのカンマ区切りリスト。アフィニティ ラベルは、ノード テンプレートの作成時にのみ設定されます。

  • region: ノード テンプレートを作成するリージョン。

  • server-binding: このテンプレートを使用するノードのサーバー バインディング ポリシー。ライセンスの種類に応じて、次のいずれかに設定します。

    • RESTART_NODE_ON_ANY_SERVER
    • RESTART_NODE_ON_MINIMAL_SERVER

ノード テンプレートからノードグループを作成する

以前作成したノード テンプレートからノードグループを作成し、VM メンテナンス ポリシーを指定します。

gcloud

gcloud beta 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: ノードグループのメンテナンス ポリシー。次のいずれかに設定します。
    • migrate-within-node-group
    • restart-in-place
    • default

API

POST https://www.googleapis.com/compute/beta/projects/project-id/zones/zone/nodeGroups?initialNodeCount=target-size

{
  "nodeTemplate": "/regions/region/nodeTemplates/template-name",
  "name": "group-name",
  "maintenancePolicy": "maintenance-policy"
}

以下を置き換えます。

  • project-id: ノードグループを作成するプロジェクトの ID。
  • zone: ノードグループを作成するゾーン。使用しているノード テンプレートと同じリージョンにある必要があります。
  • target-size: グループ内に作成するノードの数。
  • region: ノード テンプレートが配置されているリージョン。
  • template-name: このグループを作成するために使用するノード テンプレートの名前。
  • group-name: 新しいノードグループの名前。
  • maintenance-policy: ノードグループのメンテナンス ポリシー。次のいずれかに設定します。
    • MIGRATE_WITHIN_NODE_GROUP
    • RESTART_IN_PLACE
    • DEFAULT

ノードグループの VM をプロビジョニングする

ノードグループの VM をプロビジョニングし、VM の再起動動作を指定します。メンテナンス イベント中に同じノードグループ内でホストされた VM を再起動するようにノードグループに指定したことがある場合、そのノードグループに新しい VM インスタンスを作成する際に、新しい VM インスタンスが次のいずれかを行うように指定します。

  • メンテナンス イベントによる再起動後に移行する。
  • 同じホスト上で終了して再起動する。同じホストが使用できない場合、新しいサーバーがプロビジョニングされ、以前のホストの物理 ID は再利用されません。

gcloud

gcloud compute instances create vm-name  --custom-cpu num-cpus  --custom-memory gb-memory  --image image-name  --zone zone  --node-group group-name  restart-behavior  --maintenance-policy maintenance-policy

以下を置き換えます。

  • vm-name: 作成する VM の名前。
  • num-cpus: 新しい VM の CPU の数。
  • gb-memory: 新しい VM のメモリ量(GB)。
  • image-name: この VM の作成元のイメージの名前。
  • zone: VM を作成するゾーン。
  • group-name: VM をプロビジョニングするノードグループの名前
  • restart-behavior: この VM の再起動動作。次のいずれかを指定します。
    • --restart-on-failure
    • --no-restart-on-failure
  • maintenance-policy: メンテナンス イベント中の VM の動作。シナリオに応じて、次のいずれかを指定します。
    • MIGRATE
    • TERMINATE

API

POST https://www.googleapis.com/compute/v1/projects/project-id/zones/vm-zone/instances

{
  "machineType": "/zones/machine-type-zone/machineTypes/custom-num-cpus-mb-memory",
  "name": "vm-name",
  "scheduling": {
    "nodeAffinities": [
      {
        "key": "node-group",
        "operator": "IN",
        "values": [
        "group-name"
        ]
      }
    ],
    "onHostMaintenance": "maintenance-policy",
    "automaticRestart": "restart-behavior"
  },
  "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 を作成するゾーン。
  • machine-type-zone: マシンタイプを含むゾーン。
  • num-cpus: 新しい VM の CPU の数。
  • mb-memory: 新しい VM のメモリ容量(MB)。
  • vm-name: 新しい VM の名前。
  • group-name: この VM を作成するノードグループの名前。
  • maintenance-policy: この VM のメンテナンス動作。シナリオに応じて、次のいずれかに設定します。
    • MIGRATE
    • TERMINATE
  • restart-behavior: この VM の再起動動作。デフォルト値は true です。
  • network: VM を接続するネットワークの名前。
  • subnetwork: VM を接続するサブネットワークの名前。
  • image-project: ソースイメージを含むイメージ プロジェクト。
  • image-family: ソースイメージのイメージ ファミリー。

次のステップ