ESX および ESXi 4.x/5.x での NTP のトラブルシューティング
search cancel

ESX および ESXi 4.x/5.x での NTP のトラブルシューティング

book

Article ID: 322063

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

この記事では、ESX および ESXi ホストでの NTP 時刻同期の問題を特定して切り分けるためのトラブルシューティング手順を説明します。

Symptoms:
免責事項: これは英文の記事Troubleshooting NTP on ESX and ESXi 4.x / 5.x (1005092)の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Environment

VMware vSphere ESXi 7.0.x
VMware vSphere ESXi 8.0.x

Resolution

ESXi/ESX ホスト上で NTP をトラブルシューティングするには次の方法を使用します。
 

ping を使用して接続を検証する

ping コマンドを使用して ESXi/ESX ホストと NTP サーバ間のネットワーク接続を検証します。 詳細については、「ping コマンドによるネットワーク接続のテスト (2078545)」を参照してください。
 

ntpq を使用して ntpd サービスをクエリする

NTP クエリ ユーティリティ プログラム ntpq を使用して ESXi/ESX ホストの ntpd サービスをリモートでクエリします。

Linux クライアントには一般に ntpq ユーティリティがインストールされており、これは ESX サービス コンソールおよび vSphere Management Assistant でも使用することができます。 特定の Linux デストリビューションでの ntpq ユーティリティ プログラムのインストールと使用の詳細については、該当する Linux ディストリビューションのドキュメントを参照してください。

ESXi 5.x ホストの場合、ntpq ユーティリティはデフォルトで含まれており、インストールの必要はありません。 ESXi 5.x ホストからローカルに実行できます。

ntpq ユーティリティは、ESXi 3.x/4.x では使用できません。 ESXi ホストの NTP サービス ntpd をクエリするには、リモート Linux クライアントに ntpq をインストールし、Linux クライアントから ESXi ホストの ntpd サービスをクエリします。

  • ESXi/ESX 4.0 では、出荷時のリモート クエリ権限はデフォルトで制限されています。 NTP デーモンのリモート クエリを有効にする方法については、「Enabling remote query of NTP service on ESXi/ESX 4.0 (1036357)」を参照してください。
  • 特定のバージョンの ESXi 5.x には NTP サーバの同期について既知の問題があります。 これらの問題は ESXi 5.x のパッチ リリースで解決されました。 パッチを適用し、ホストが正しいバージョンであることを確認してください。 詳細については、「ESXi ホストで時刻が NTP サーバと同期されない (2100620)」を参照してください。
  • ESXi 5.5 および 5.1 の場合、ntpq はすでにインストールされており、Linux クライアントは不要です。 SSH シェルまたはローカルのコンソール セッションでこれらのコマンドを入力します。
  • Linux クライアントに NTP クライアント ツールがインストールされていることを確認します。 詳細については、Linux ディストリビューションのドキュメントを参照するか、vSphere Management Assistant のインスタンスをデプロイします。
NTP クエリ ユーティリティ ntpq を使用してリモートで ESX ホストの NTP サービスをクエリ (ntpd) し、アップストリーム NTP サーバと正常に同期していることを確認するには次の手順を実行します。
  1. Linux クライアントを使用している場合は、ntpq がインストールされているクライアントでコンソール セッションを開きます。
  2. 次のコマンドを実行します。

    ESXi 5.5 および 5.1 上で SSH シェルまたはローカル コンソール セッションを使用するには次の手順を実行します。

    "watch ntpq -p localhost_or_127.0.0.1"

    ESXi/ESX 4.x で Linux クライアントを使用するには次の手順を実行します。

    watch "ntpq -p ESX_host_IP_or_domain_name"
     
  3. 出力を 30 秒間監視し、キーボードの Ctrl+C を押して watch コマンドを停止します。

    watch コマンドからは次のような出力が表示されます。

    2 秒間隔: ntpq -p ESX_host_IP_or_domain_name

    : ESXi 5.5 および 5.1 では、表示される出力は localhost または loopback (127.0.0.1) です。

    remote refid st t when poll reach delay offset jitter
    ==============================================================================
    *10.11.12.130 1.0.0.0 1 u 46 64 377 43.76 5.58 40000


    : メッセージ「No association ID's returned」が表示された場合、ESXi/ESX ホストは構成された NTP サーバに到達できていません。 メッセージ 「***Request timed out」 が表示された場合、ntpq コマンドが ESXi/ESX ホストのデーモンから応答を受信していません。 以下の「ネットワーク トラフィックのキャプチャ」セクションに進みます。

    ntpq によって返されるフィールドには以下の意味があります。
     
    remote構成されたアップストリームの NTP サーバのホスト名または IP アドレス。
    refidNTP サーバの同期先である時刻ストリームの ID。 「.INIT.」の refid が表示された場合、ESXi/ESX ホストは、構成された NTP サーバから応答を受信したことがありません。
    st層は、アップストリームの NTP サーバの階層を表す値です。 値が大きいほど、NTP サーバが元の時刻ソースから離れていることを示します。 値は相対的で、NTP サーバごとに手動で設定できます。
    tNTP 通信に使用するパケット交換のタイプ。 通常、「u」はユニキャスト UDP を示します。
    when構成されたアップストリームの NTP サーバに最後にポーリングを試みてから経過した秒数。
    poll構成された NTP サーバを ESXi/ESX ホストがポーリングする間隔。
    reach8 進数の 8 ビット シフト レジスタ。各ビットは、構成された NTP サーバへの接続が成功 (1) か、失敗 (0) かを表します。 値 377 は 2 進数の 11111111 で、過去 8 回のポーリング間隔ですべてのクエリが成功したことを示します。
    delay構成された NTP サーバと ESXi/ESX ホスト間の通信の往復遅延時間(ミリ秒)。
    offset構成された NTP サーバと ESXi/ESX ホスト間の時間オフセット (ミリ秒)。 値は、0 に近いほど良好になります。
    jitter構成された NTP サーバによる時間のクロック パルス間で観察された時間の変動。 値は、0 に近いほど良好になります。
詳細については、「NTP.org Troubleshooting documentation」、および「NTP Query Program documentation」を参照してください。

このリンクは 2013 年 10 月 3 日時点のものです。 リンクが切れているのに気づいた場合はご連絡ください。VMware の担当者がリンクをアップデートします。

ntpd ログ エントリを確認する

/var/log/messages ログ ファイル内の ntpd ログ エントリを確認して、NTP デーモンがリモート NTP サーバと同期しているかどうかを判別します。
  1. ESXi/ESX ホストのコンソールを開きます。 詳細については、「セキュア シェル (SSH) を使用して ESX ホストへ接続できない (2078491)」または「ESXi 4.1 および ESXi 5.x での Tech Support モードの使用 (2053295)」を参照してください。
     
  2. 次のコマンドを実行して /var/log/messages ログ ファイルを確認します。

    : ESXi 5.0 では、NTP サービスは /var/log/syslog.log ファイルに記録します。

    less /var/log/messages
  • 次のようなメッセージは、ntpd が正常にリモート NTP サーバに接続していることを示します。

    ntpd[263140]: synchronized to <ntp.server.ip.address>, stratum <X>
     
  • 次のようなメッセージは、ESXi/ESX ホストとリモート NTP サーバ間の時間オフセットが自動修正するには大きすぎることを示します。 ESXi/ESX ホストの時間を手動で設定し、再度 NTP デーモンを起動します。

    ntpd[263140]: time correction of <NNNN> seconds exceeds sanity limit (1000); set clock manually to the correct UTC time.

    さらに、ESXi 5.x の hostd.log ファイルには次のようなメッセージが表示されます。

    [info 'ha-eventmgr'] Event 91 : NTP daemon stopped. Time correction 1206 > 1000 seconds. Manually set the time and restart ntpd.
     
  • 次のようなメッセージは、ESXi/ESX ホストとリモート NTP サーバ間の時間エラーが、ステップのしきい値を超えていることを示します。 NTP デーモンが、NTP サーバと一致するように ESXi/ESX ホストの時刻を大幅に修正しました。 アクションは必要ありません。

    ntpd[263140]: time reset "+/- <xxx.yyyyyy s>"
     
  • 次のようなメッセージは、ESXi/ESX ホストとリモート NTP サーバ間の時間エラーが、ステップのしきい値を超えていることを示します。 NTP デーモンが、NTP サーバと一致するように ESXi/ESX ホストの時刻を徐々に修正しました。 アクションは必要ありません。

    ntpd[263140]: time slew "+/- <xxx.yyyyyy s>"

ネットワーク トラフィックを取得する

ESXi/ESX ホストと NTP サーバ間を流れるネットワーク トラフィックを取得して、パケットが送受信されているかどうか判定します。

ESXi の場合
  1. ESXi ホストのコンソールを開きます。 詳細については、「ESXi 4.1 および ESXi 5.x での Tech Support モードの使用 (2053295)」を参照してください。
     
  2. 次のコマンドを使用して、使用可能な VMkernel ネットワーク インターフェイスのリストを取得します。

    esxcfg-vmknic -l
     
  3. 次のコマンドを使用して、NTP サーバとの間を流れる ポート 123 の NTP ネットワーク トラフィックを取得して、

    tcpdump-uw -c 5 -n -i network_interface host ntp_server_ip_address and port 123

    10.11.12.13 で VMkernel インターフェイス vmk0 と NTP サーバを使用するには次の手順を実行します。

    tcpdump-uw -c 5 -n -i vmk0 host 10.11.12.13 and port 123
     
  4. 出力を 30 秒間監視します。 次のようなメッセージは NTP の同期を示します。

    21:04:45.446566 172.16.24.16.ntp > 192.168.38.127.ntp: v4 client strat 2 poll 10 prec -16 (DF) [tos 0x10]
     
  5. キーボードで Ctrl+C を押して tcpdump-uw を停止します。
     
ESX の場合
  1. ESX ホストのコンソールを開きます。 詳細については、「セキュア シェル (SSH) を使用して ESX ホストへ接続できない (2078491)」を参照してください。
     
  2. 次のコマンドを使用して、使用可能なサービス コンソール ネットワーク インターフェイスのリストを取得します。

    esxcfg-vswif -l
     
  3. 次のコマンドを使用して、NTP サーバとの間を流れる ポート 123 の NTP ネットワーク トラフィックを取得して、

    tcpdump -c 5 -n -i network_interface host ntp_server_ip_address and port 123

    10.11.12.13 でサービス コンソール インターフェイス vswif0 と NTP サーバを使用するには次の手順を実行します。

    tcpdump -c 5 -n -i vswif0 host 10.11.12.13 and port 123
     
  4. 出力を 30 秒間監視します。 次のようなメッセージは NTP の同期を示します。

    21:04:45.446566 172.16.24.16.ntp > 192.168.38.127.ntp: v4 client strat 2 poll 10 prec -16 (DF) [tos 0x10]

    : NTP トラフィックへの応答が ESX ホストに返されない場合、外部ファイアウォールがポート 123 で UDP トラフィックをブロックしている可能性があります。
     
  5. キーボードで Ctrl+C を押して tcpdump を停止します。

    NTP から発生している遅延のログ ファイルを作成します。 これによって、一日の終わりに発生したオフセットを調べることができます。

ログとネットワーク トラフィックを調べる

ESXi/ESX ホストと NTP サーバ間でネットワーク通信が正常に確立されたら、ログとネットワーク トラフィックを調べて、NTP 同期が行われ、差異が縮小していることを確認します。

: ESXi/ESX ホストでパケットが正しく送受信された後、時刻が同期されるまで 1 ~ 15 分ほどかかります。

Additional Information

デフォルトでは、ESXi/ESX は NTPv4 を使用しますが、一部の NTP ソースは NTPv3 を使用します。 この種のバージョン不一致があると、同期が失敗します。 この問題を解決するには、/etc/ntp.conf ファイルを更新して使用するバージョンを含める必要があります。

/etc/ntp.conf ファイルを更新するには:
  1. /etc/ntp.conf ファイルをバックアップします。 この手順はスキップしないでください。
  2. テキスト エディタで /etc/ntp.conf ファイルを開きます。 詳細については、「VMware ESXi / ESX の設定ファイルの編集 (2033234)」を参照してください。
     
  3. NTPv3 サーバの行を追加します。

    server x.x.x.x version 3

    たとえば、変更後の ntp.conf ファイルの内容は次のようになります。

    restrict 127.0.0.1
    restrict default kod nomodify notrap
    driftfile /etc/ntp.drift
    server 192.168.0.10 version 3

     
  4. ファイルを保存して閉じます。
  5. NTP サービスを再起動して変更内容を有効にします。

    ESXi の場合:
    # /etc/init.d/ntpd restart

    ESX の場合:
    # service ntpd restart

: 一日の終わりに ntpq オフセットの遅延を調べるには、次のコマンドを使用して /var/log/ntp という名前のフォルダを作成します。
mkdir /var/log/ntp
 
以下の 4 行を ntp.conf ファイルに追加します。
statistics loopstats
statsdir /var/log/ntp/
filegen peerstats file peers type day link enable
filegen loopstats file loops type day link enable
 
新しい ntp ディレクトリにログが作成されます。

: 時間サービスは 1 つのみ構成することをお勧めします(netlogond または ntp)。 ただし、NTP を Active Directory (AD) と併用する必要がある場合は、信頼できる時間ソースを使用するように AD サーバを構成し、AD サーバまたは AD が使用しているのと同じ NTP サーバを使用するように ESXi/ESX ホストの NTP サーバを構成します。

NTP および NetLogond の詳細については、「VMware documentation」を参照してください。

詳細については、「ESX ホスト上での NTP のインストールと構成 (2052076)」および「Microsoft ドメイン コントローラを使用して ESXi/ESX の時刻を同期する (2077149)」を参照してください。Troubleshooting NTP on ESX and ESXi 4.x / 5.x / 6.x