C3 や X4 などのマシンシリーズで利用可能なベアメタル インスタンスは、標準化されたマルチベンダー PCIe ネットワーク データプレーン関数デバイスである Infrastructure Data Plane Function(IDPF)を使用します。IDPF は物理デバイスです。IDPF ドライバは、Linux オペレーティング システム(OS)イメージのカーネルに含まれています。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
IDPF でサポートされている機能
gVNIC と同様に、IDPF では次の機能がサポートされています。
- VM ごとの Tier_1 ネットワーキング パフォーマンス
- 大きな MTU のサポート(ジャンボ フレーム)
- VPC ネットワークの機能:
- Cloud Next Generation Firewall
- Packet Mirroring
- VPC フローログ
- IPv6 サポート
- VPC ネットワーク ピアリング
- Network Connectivity Center
IDPF ネットワーク インターフェースの制限事項
IDPF ネットワーク インターフェースを使用する場合は、次の制限事項に注意してください。
- インスタンスでは、単一の NIC のみがサポートされます。複数の NIC を含むコンピューティング インスタンスを作成することはできません。
- IDPF を使用するインスタンスで Tier_1 ネットワーキングを有効にする場合は、デフォルトの MTU サイズ(1,460 バイト)を使用して、ネットワーク帯域幅を最大化します。
- IDPF がサポートするのは、NIC ごとに 16 個の受信キューと送信キュー(RX / TX)を持つデフォルトのキュー割り当てのみです。
- ベアメタル インスタンスで DPDK を使用する場合、DPDK は IDPF を物理 NIC のドライバとして置き換えます。DPDK アプリケーションは、TAP インターフェースなどを使用して、パケットをカーネルに転送する必要があります。
ベアメタル インスタンスでの IDPF の使用の概要
IDPF を使用するベアメタル インスタンスを作成する手順は次のとおりです。
- IDPF をサポートする公開 OS イメージを選択するか、IDPF を使用するようにタグ付けされたカスタム OS イメージを作成します。
- 公開 OS イメージまたはカスタム OS イメージを使用して、ベアメタル インスタンスを作成します。インスタンスの作成時に、IDPF を使用するようにネットワーク インターフェースを構成します。
- IDPF が有効になっていることを確認します。
オペレーティング システムのサポート
Compute Engine では、IDPF は、サポートされている公開 OS イメージの数が限られています。
IDPF でサポートされているオペレーティング システムについては、オペレーティング システムの [インターフェース] タブをご覧ください。
サポートされていないオペレーティング システムでの使用
IDPF をサポートしていない OS イメージの場合は、オペレーティング システムの販売業者に IDPF ドライバの追加について確認してください。
IDPF を含むオペレーティング システム イメージを取得したら、カスタマイズされたオペレーティング システムを含むブート可能な仮想ディスクをインポートします。その後、カスタム OS イメージを使用して、そのオペレーティング システムで IDPF を使用するベアメタル インスタンスを作成できます。ベアメタル インスタンスで使用するカスタム OS イメージの作成の詳細については、このページの IDPF をサポートするカスタム OS イメージを作成するをご覧ください。
IDPF をサポートするカスタム OS イメージを作成する
ベアメタル インスタンスに Google Cloud で提供されているものとは異なる OS イメージやバージョンが必要な場合は、Google Cloud CLI または REST を使用して OS イメージを作成できます。カスタム OS イメージの作成の詳細とベスト プラクティスについては、カスタム OS イメージを作成するをご覧ください。
gcloud
Google Cloud 提供のイメージまたはインポートした OS イメージからカスタム イメージを作成する場合は、OS イメージに IDPF
というタグを付ける必要があります。次の例に示すように、gcloud compute images create
コマンドを使用します。
gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=IDPF
次のように置き換えます。
IMAGE_NAME
: カスタム イメージの名前。SOURCE_IMAGE
: IDPF をサポートする特定の OS イメージ。例:sles-15-sp4-sap-v20240208-x86-64
。イメージ ファミリーの最新の OS イメージを使用する場合は、
--source-image
フラグを--source-image-family
フラグに置き換え、その値を IDPF をサポートするイメージ ファミリーに設定します。例:--source-image-family=sles-15-sp4-sap
。SOURCE_IMAGE_PROJECT
: ソース OS イメージまたはイメージ ファミリーを含むプロジェクトの名前。例
Compute Engine
sles-15-sp5-sap
イメージ ファミリーの最新の OS イメージを使用して SUSE Linux Enterprise Server(SLES)OS イメージを作成するには、次のコマンドを実行します。gcloud compute images create my-sles15sp5-metal-os \ --source-image-family=sles-15-sp5-sap \ --source-image-project=suse-sap-cloud \ --guest-os-features=IDPF
イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
REST
IDPF をサポートする OS イメージまたはイメージ ファミリーを選択します。詳細については、オペレーティング システムの詳細をご覧ください。
前の手順で選択した OS イメージまたはイメージ ファミリーを使用して、OS イメージを作成し、この OS イメージに
IDPF
をタグ付けします。OS イメージを作成するには、images.insert
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"IDPF" } ] }
次のように置き換えます。
IMAGE_NAME
: 作成するカスタム イメージの名前。SOURCE_IMAGE_URI
: 使用する特定の OS イメージまたはイメージ ファミリーの URI。例:
- 特定の OS イメージ:
"sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
- イメージ ファミリー:
"sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap"
イメージ ファミリーを指定すると、Compute Engine はそのファミリー内のサポート対象の最新の OS イメージから VM を作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
- 特定の OS イメージ:
IDPF をサポートするベアメタル インスタンスを作成する
ベアメタル インスタンスは、IDPF をサポートする公開 OS イメージのいずれか、または IDPF をサポートするカスタム OS イメージを作成するの手順で作成したカスタム OS イメージ、を使用して作成できます。
公開 OS イメージを使用してベアメタル インスタンスを作成する
IDPF をサポートする公開 OS イメージを使用してベアメタル インスタンスを作成するには、ベアメタル インスタンスを作成するの手順を行います。
カスタム OS イメージを使用してベアメタル インスタンスを作成する
IDPF をサポートする公開 OS イメージを使用していない場合は、まず IDPF をサポートするカスタム OS イメージを作成する必要があります。次に、そのカスタム OS イメージで、Google Cloud CLI または REST を使用してベアメタル インスタンスを作成します。
gcloud
gcloud compute instances create
コマンドを使用して、ベアメタル インスタンスを作成します。ブートディスク イメージには、先ほど作成したカスタム OS イメージを指定します。ネットワーク インターフェースについては、nic-type
フラグの値をIDPF
に設定します。gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=IDPF
次のように置き換えます。
INSTANCE_NAME
: 新しいインスタンスの名前。ZONE
: インスタンスを作成するゾーン。IMAGE_NAME
: 以前に作成したカスタム OS イメージ。YOUR_IMAGE_PROJECT
: カスタム OS イメージを含むプロジェクトの名前。
省略可: Compute Engine によってインスタンスが作成され、
nicType
がIDPF
に設定されていることを確認します。gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE
次のように置き換えます。
INSTANCE_NAME
: インスタンスの名前。ZONE
: インスタンスを作成したゾーン。
例
プロジェクト
my-project-12345
にあるmy-sles15sp5-metal-os
という名前のカスタマイズされた SLES 15 SP5 for SAP OS イメージを使用して、ゾーンeu-west4-b
にベアメタル インスタンスを作成するには、次のコマンドを実行します。gcloud compute instances create test-x4-metal-custom-os \ --zone=eu-west4-b \ --machine-type=x4-megamem-1440-metal \ --image=my-sles15sp5-metal-os \ --image-project=my-project-12345 \ --network-interface=nic-type=IDPF
注意点
--network-interface
フラグには、次のようなサブレベルのフラグがあります。--address
: インスタンスに IP アドレスを割り当てます--network
: インターフェースが属するネットワーク--network-tier
: インターフェースのネットワーク ティア--subnet
: インターフェースが属するサブネット。--network
も指定する場合、サブネットは指定したネットワークの一部であることが必要です。--private-network-ip
: インスタンスに割り当てる RFC 1918 IP を指定します。
完全な一覧については、
--network-interface
のフラグをご覧ください。
REST
instances.insert
メソッドを使用して、ベアメタル インスタンスを作成します。
- ブートディスク イメージには、先ほど作成したカスタム OS イメージを指定します。
- ネットワーク インターフェースについては、
nicType
フィールドの値をIDPF
に設定します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name":"INSTANCE_NAME", "networkInterfaces":[ { "nicType":"IDPF", "network":"NETWORK", "subnet":"SUBNET_NAME" } ], "disks":[ { "initializeParams":{ "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME" }, "boot":true } ] }
次のように置き換えます。
PROJECT_ID
: インスタンスを作成するプロジェクトの ID。ZONE
: インスタンスを作成するゾーン。INSTANCE_NAME
: 新しいインスタンスの名前。NETWORK
: このインスタンスのネットワーク リソースの URL。ネットワークもサブネットワークも指定しない場合、デフォルトのネットワークglobal/networks/default
が使用されます。SUBNET_NAME
: サブネットの名前。ネットワークは指定したサブネットから推測されます。このフィールドは省略できます。YOUR_IMAGE_PROJECT
: OS イメージを含むプロジェクトの名前。IMAGE_NAME
: 前の手順で作成したカスタム OS イメージの名前。
IDPF が有効になっていることを確認する
lshw
ツールを使用すると、ベアメタル インスタンスのハードウェア構成に関する詳細情報を抽出できます。
Linux インスタンスに lshw
ツールをインストールするには、ゲスト OS に SSH 接続を開き、次のコマンドを実行します。
sudo apt-get install lshw -y
インスタンスが IDPF ネットワーク インターフェースを使用しているかどうかを確認するには、次のコマンドを実行します。
sudo lshw -class network
出力の例を次に示します。
*-network description: Ethernet interface product: Intel Corporation vendor: Intel Corporation physical id: 0 bus info: pci@0000:05:00.0 logical name: enp5s0f0 version: 11 serial: 42:01:0a:96:00:02 width: 64 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=idpf driverversion=6.5.0-1023-gcp duplex=full ip=10.150.0.2 latency=0 link=yes multicast=yes resources: iomemory:21ff0-21fef iomemory:21ff0-21fef irq:16 memory:21ffe0000000-21ffefffffff memory:21fff2000000-21fff203ffff
次のステップ
- IDPF の詳細を確認する。
- インスタンスに接続する方法を確認する。
- ジャンボ フレームについて確認する。
- VPC ネットワークの MTU 設定を変更する方法を確認する。