多くのソフトウェア システムは、イベントの順序を正確に扱うために、安定して一貫したシステム クロックに依存しています。システムログのタイムスタンプを使って、時刻同期を保ったり、問題発生時にデバッグしたりするためです。Compute Engine の仮想マシン(VM)インスタンスは、システム クロックとの同期を維持するためにネットワーク タイム プロトコル(NTP)を使用するように事前に構成されています。NTP は、時間同期のためのハードウェアとソフトウェアのセットです。正確な時刻同期や、その同期精度をモニタリングすることが目的の達成に重要である場合、VM のクロックをホスト側のクロックと同期させるために、chrony と ptp_kvm を使用して NTP の代わりに「正確な時刻」を構成できます。この構成は、サポートされている設定で 1 ミリ秒以内の精度を実現するように設計されています。
サポートされているマシンタイプ
正確な時刻は次のマシンタイプでサポートされています。
サポートされているオペレーティング システム
正確な時刻は次のオペレーティング システム(OS)でサポートされています。
| OS | バージョン | 画像 |
|---|---|---|
| CentOS Stream | 9 | centos-stream-9 |
| Container-Optimized OS | COS 105 LTS、COS 109 LTS、COS 113 LTS、COS 117 LTS | cos-105-lts、cos-109-lts、cos-113-lts、cos-117-lts |
| Debian | 11(Bullseye)、12(Bookworm) | debian-11、debian-12 |
| Fedora Cloud | 39 | fedora-cloud-39 |
| RHEL | 8、9 | rhel-8-4-sap-ha、rhel-8-6-sap-ha、rhel-8-8-sap-ha、rhel-8-10-sap-ha、rhel-9、rhel-9-0-sap-ha、rhel-9-2-sap-ha、rhel-9-4-sap-ha |
| Rocky Linux | 8、9 | rocky-linux-8、rocky-linux-8-optimized-gcp、rocky-linux-9-optimized-gcp、rocky-linux-9-optimized-gcp |
| SLES | 15 | sles-15、sles-15-sp2-byos、sles-15-sp2-sap、sles-15-sp3-byos、sles-15-sp3-sap、sles-15-sp4-byos、sles-15-sp4-sap、sles-15-sp5-byos、sles-15-sp5-sap |
| Ubuntu | 22.04 LTS(Jammy Jellyfish)、24.04 LTS(Noble Numbat) | ubuntu-2204-lts、ubuntu-2404-lts-amd64 |
| Ubuntu Pro | 2004 | ubuntu-pro-2004-lts、ubuntu-pro-2004-lts-amd64 |
サポートされているゾーン
正確な時刻は次のゾーンでサポートされています。
| ゾーン | 場所 |
|---|---|
europe-west1-b |
サンギスラン(ベルギー、ヨーロッパ) |
europe-west1-c |
サンギスラン(ベルギー、ヨーロッパ) |
europe-west2-b |
ロンドン(イギリス、ヨーロッパ) |
europe-west3-a |
フランクフルト(ドイツ、ヨーロッパ) |
us-central1-a |
アイオワ州カウンシル ブラフス(北米) |
us-central1-b |
アイオワ州カウンシル ブラフス(北米) |
us-central1-c |
アイオワ州カウンシル ブラフス(北米) |
us-central1-f |
アイオワ州カウンシル ブラフス(北米) |
us-east1-b
|
サウスカロライナ州モンクスコーナー(北米) |
us-east1-c
|
サウスカロライナ州モンクスコーナー(北米) |
us-east4-c |
バージニア州アッシュバーン(北米) |
us-east5-a |
オハイオ州コロンバス(北米) |
us-south1-a |
テキサス州ダラス(北米) |
us-west1-b |
オレゴン州ダラス(北米) |
us-west2-a
|
カリフォルニア州ロサンゼルス(北米) |
us-west3-a |
ユタ州ソルトレイクシティ(北米) |
正確な時刻同期を構成する
プロジェクト内の VM に対して正確な時刻同期を構成するには、各 VM ごとに次のタスクを完了します。
ptp-kvmをタイムソースとして使用するようにchronyを構成する。- データの収集と分析用に Google Cloud Ops エージェントを構成する。
両方のタスクを完了すると、プロジェクト内の VM に正確な時刻同期が設定されます。
VM を作成し、両方のタスクを完了して正確な時刻同期を構成するサンプル スクリプトについては、GitHub の VM 作成スクリプトをご覧ください。
ptp-kvm を使用するように chrony を構成する
ptp-kvm をタイムソースとして使用するように chrony を構成するには、各 Google Cloud プロジェクトの VM 内で次のスクリプトを実行します。
VM に Google Cloud Ops エージェントを構成する
データの収集と分析用に Google Cloud Ops エージェントを構成するには、各 Google Cloud プロジェクトの VM 内で次のスクリプトを実行します。
時刻同期のモニタリングを構成する
Google Cloudプロジェクトの VM に対して時刻同期モニタリングを構成するには、Google Cloud プロジェクトに対するロギングとダッシュボードのセットアップ スクリプトを実行します。このスクリプトは、 Google Cloud プロジェクトに対する次のタスクを完了するのに役立ちます。
- VM の Google Cloud プロジェクトに関連付けられたサービス アカウントに適切な権限を設定する。
- VM とそのホストサーバー上のクロック間の精度を確保するために
chronyが使用するログベースの指標を作成する。 - 次の指標を組み合わせて、VM クロックの UTC へのトレーサビリティを測定するダッシュボードを作成する。
- VM ホストのクロックの UTC に対する精度。これはGoogle Cloud 指標
instance/clock_accuracy/ptp_kvm/nanosecond_accuracyとして使用できます。 - VM のクロックのホストクロックに対する精度を測定する
chrony指標。
- VM ホストのクロックの UTC に対する精度。これはGoogle Cloud 指標
上記のタスクを行うには、次のスクリプトを実行します。
スクリプトの実行が完了したら、作成されたダッシュボードを使用して、プロジェクトの VM のクロック精度データを表示します。
次のステップ
- Google Kubernetes Engine のサンプルなど、正確な時刻を設定するための完全なサンプルコードについて、サンプル リポジトリを確認する。
- VM の時刻同期の構成に使用可能なオプションを確認する。