ゲスト環境


Google が提供する公開イメージを使用して仮想マシン(VM)インスタンスを起動すると、ゲスト環境が自動的に VM インスタンスにインストールされます。ゲスト環境は、Compute Engine で VM を適切に実行するために、メタデータ サーバーのコンテンツを読み取る一連のスクリプト、デーモン、バイナリから構成されます。メタデータ サーバーは、クライアントからゲスト オペレーティング システムに情報を転送する通信チャネルです。

このドキュメントでは、ゲスト環境のコンポーネント、サポートされているオペレーティング システムの概要について説明します。また、ゲスト環境のインストールまたは更新を手動で行う方法についても説明します。

ゲスト環境を手動でインストールまたは更新する状況

Google が提供する公開イメージを使用して作成された VM インスタンスには、デフォルトでインストールされるゲスト環境が含まれています。

ゲスト環境がインスタンスで実行されているかどうかを確認するには、ゲスト環境を検証するをご覧ください。

インストールされたゲスト環境が古くなっている場合があります。インスタンスで使用できるゲスト環境が古くなっている場合は、ゲスト環境を更新します。

それ以外の場合は、次の状況でゲスト環境の手動インストールが必要になることがあります。

  • カスタム イメージまたは仮想ディスクを Compute Engine プラットフォームにインポートし、ゲスト環境の自動インストールを許可していない。

    仮想ディスクまたはカスタム イメージをインポートするときに、Compute Engine でゲスト環境のインストールを許可することもできます。ただし、インポート プロセスでゲスト環境をインストールしない場合、ゲスト環境を手動でインストールする必要があります。

  • Migrate for Compute Engine を使用して VM を Compute Engine に移行している

  • ローカル SSD のゲスト環境の最適化を行わないイメージを使用している。

  • v20141218 より前のイメージを使用しているインスタンスがある。

ゲスト環境を手動でインストールする必要がある場合は、ゲスト環境のインストールをご覧ください。

サポートされているオペレーティング システム

Compute Engine で利用可能なサポート対象のオペレーティング システムごとに、固有のゲスト環境パッケージが必要です。こうしたパッケージは、Google またはオペレーティング システムの所有者のいずれかがビルドします。ゲスト環境のパッケージをビルドするユーザーの詳細については、オペレーティング システムの詳細ドキュメントで「標準的なイメージとの大きな違い」のセクションをご覧ください。

Linux ゲスト環境

Linux ゲスト環境がビルドしたのが Google かオペレーティング システムのオーナーかにかかわらず、すべてのビルドに適用される重要なコンポーネントがいくつかあります。

Linux ゲスト環境の基本コンポーネントは、サポートされているディストリビューションに適した構成で作成される deb パッケージまたは rpm パッケージとして提供されます。

Linux ゲスト環境でパッケージ化された主なスクリプト、デーモン、パッケージの概要は次のとおりです。

  • Core Compute Engine のコンポーネント:

    • systemd のシステム初期化スクリプト
    • ホスト名の設定に使用される udev ルール、sysctl ルール、rsyslog 構成、dhcp 構成などのシステム構成。
    • メタデータ スクリプト ランナーとゲスト エージェント バイナリ。このスクリプトは /usr/bin ディレクトリにあります。
    • インスタンスの起動時に実行される bash スクリプト。
  • Compute Engine OS Login パッケージ。OS Login を使用すると、Identity and Access Management(IAM)ロールで VM インスタンスへのアクセスを管理できます。

    • OS Login 機能を有効にする NSS および PAM モジュール。
    • ヘルパー バイナリ。
  • ディスク パーティショニング スクリプト:

    • gce-disk-expand。ルート パーティションのブート時のサイズ変更スクリプト。

Linux ゲスト環境の詳細については、GitHub の compute-image-packages をご覧ください。

Windows ゲスト環境

次のリストは、Windows ゲスト環境の一部であるパッケージをまとめたものです。

  • google-compute-engine-windows パッケージには、ローカル ユーザー アカウントの作成とパスワードの設定 / リセットネットワーク インターフェースの構成Windows フェイルオーバー クラスタのサポートの提供に使用される Windows ゲスト エージェントが含まれています。

    Windows ゲスト エージェントは、次の Compute Engine サービスと通信します。

    • VM メタデータに対するデータの読み取りと書き込み
    • Windows アプリケーション イベントログ、シリアルポート、Cloud Logging へのログの送信

    このエージェントのソースコードを確認するには、GitHub のゲスト エージェントをご覧ください。

  • google-compute-engine-sysprep パッケージには、イメージの作成前に Windows インスタンスを一般化するためのスクリプトが含まれています。また、新しいインスタンスを構成する際に最初に起動する instance_setup.ps1 スクリプトも含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    • VM メタデータに対するデータの読み取りと書き込み
    • Windows アプリケーション イベントログとシリアルポートへのログの送信

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-metadata-scripts パッケージには、Compute Engine、sysprep-specialize、startupshutdown の実行に使用されるスクリプトとバイナリが含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    • VM メタデータに対するデータの読み取りと書き込み
    • sysprep-specialize-script-urlwindows-startup-script-url が使用された場合の Cloud Storage のロケーションからの読み取り
    • Windows アプリケーション イベントログ、シリアルポート、Cloud Logging へのログの送信

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-powershell パッケージには、PowerShell モジュールが含まれています。このモジュールには、PowerShell スクリプトが他の Windows ゲスト環境スクリプトで使用する共通の関数が含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    • デフォルトでは、PowerShell モジュールのロギング関数は Windows アプリケーション イベントログとシリアルポートにログを送信します。

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-auto-updater パッケージには、Compute Engine パッケージを毎日更新するスクリプトが含まれています。このパッケージはデフォルトでインストールされなくなりました。

    スクリプトは、次の Compute Engine サービスと通信します。

    • VM メタデータからのデータの読み取り
    • Windows アプリケーション イベントログとコンソールにログを送信するための Googet エージェントの呼び出し

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-diagnostics パッケージには、インスタンスから診断情報を取得し、その情報を Cloud Storage バケットに保存するバイナリが含まれています。このバイナリは Windows ゲスト エージェントによって実行されます。

    スクリプトは、次の Compute Engine サービスと通信します。

    • Cloud Storage バケットへのデータの保存

    このエージェントのソースコードを確認するには、GitHub の compute-image-tools をご覧ください。

  • certgen パッケージには、インスタンスに証明書を作成するバイナリが含まれています。

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • googet パッケージには、ゲスト環境のインストールとメンテナンスに使用されるパッケージ マネージャーのバイナリが含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    このエージェントのソースコードを確認するには、GitHub の googet をご覧ください。

  • google-compute-engine-vss パッケージは、Microsoft の Volume Shadow Copy Service(VSS)を使用して、永続ディスクのスナップショットの取得に使用する Compute Engine VSS エージェントとプロバイダをインストールします。

    スクリプトは、次の Compute Engine サービスと通信します。

    • Google Cloud スナップショット サービスとの通信

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-osconfig-agent パッケージには、OS Inventory Management、OS Patch Management、VM Manager を使用した OS Configuration Management で使用される OS Config エージェントが含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    このエージェントのソースコードを確認するには、GitHub の osconfig をご覧ください。

Compute Engine の Windows 用ドライバ

次の Compute Engine のドライバが Windows イメージ用に維持されています。

ドライバのタイプ パッケージ名
イーサネット アダプタ google-compute-engine-driver-netkvm
SCSI ディスク google-compute-engine-driver-vioscsi
ディスプレイ アダプタ google-compute-engine-driver-gga
クラッシュ ハンドラ google-compute-engine-driver-pvpanic

各ドライバは GooGet を使用してパッケージ化され、Cloud Repository に公開されます。ドライバのソースコードは、GitHub の compute-windows-drivers にあります。すべての Google Cloud Windows イメージは、GooGet ツールと Cloud Repository を使用してあらかじめ構成されています。GooGet をインストールしてリポジトリを自分で設定する必要がある場合は、パッケージングとパッケージの配布をご覧ください。

特定のドライバをインストールまたはアップグレードするには、次のコマンドを実行します。

googet install DRIVER_PACKAGE_NAME

次のステップ

ゲスト環境のインストールで、ゲスト環境のインストール手順を確認する。