Nutanixは、分散アーキテクチャーを採用しているため、 NTPによる時刻同期は、非常に重要です。NTPサーバーは、必ず用意をする必要があります。
NutanixのコンポーネントであるCVMやAHVは、いずれもLinuxベースのOSで動作していることもあり、Nutanixクラスターが指定するNTPサーバーは、Windows OS以外のものを指定することが推奨されています。
(参考)Recommendations for Time Synchronization
https://portal.nutanix.com/page/documents/details?targetId=Web-Console-Guide-Prism-v6_8:wc-ntp-server-time-sync-recommendations-c.html
Synchronizing a Nutanix cluster with a Windows time source is known to cause issues over a period of time, so Nutanix recommends that you not synchronize a cluster’s time with Windows NTP sources. Use reliable non-Windows time sources instead. In an Active Directory domain, the best practice (a design that both works around and improves upon having to include domain controllers in the list of NTP sources) is to bypass the domain controllers and to synchronize the Nutanix hosts and CVMs directly with the NTP sources with which the domain controllers synchronize their time. Specify a common list of at least five reliable non-Windows NTP sources for both the domain controllers and the Nutanix cluster.
ADがNTPとして動作している場合、ADに設定されている上位のNTPサーバーを、設定することを推奨とされていますが、ネットワークセキュリティの観点から、自由にNTPサーバーを指定することが難しいケースや、わざわざLinuxやBSDでNTPサーバーを立てるのも手間がかかります。
今回は、Windows ベースのNTPで、可能な限りCVMで時刻同期ができる環境を作る情報をご紹介します。ただし、どうしてもNTPサーバを用意できない場合の参考情報であり、実際の本番環境で利用する場合は、Windows以外のNTPサーバー環境をご用意いただくことを強く推奨します。
WindowsのNTPサーバーになるマシンで、NTPサーバー側で以下のレジストリを設定します。
場所:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters
値:
NTPServer = "上位のNTPServer,0x8"
Type = "NTP"
場所:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
値:
LocalClockDispersion = dowrd:0
AnnounceFlags = dword:5
MinPollInterval = dowrd:6
MaxPollInterval = dowrd:a
場所:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
値:
Enabled = dword:1
この設定の後、Windows Timeサービスを再起動します。
イベントログを確認し、WindowsのNTPが上位のNTPを正常に参照できているかを確認します。
あとは、Prism側にNTPサーバーの登録を行います。
登録したのち、実際に反映されるまで15分程度かかります。
その後、CVMで「sudo chronyc -n sources -v」で、NTPサーバー登録が正常に行われて降り、同期対象になっているかを確認します。
nutanix@NTNX-aca83545-A-CVM:~$ sudo chronyc -n sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.54.1 3 6 377 21 +378us[ -982us] +/- 113ms
^+ 192.168.54.2 3 6 377 22 -641us[-2002us] +/- 122ms
時刻同期が行われているNTPを「sudo chronyc -n」で確認します。
nutanix@NTNX-aca83545-A-CVM:~$ sudo chronyc -n
racking|grep Ref
erence
Reference ID : C0A83601 (192.168.54.1)
同期ステータスを「sudo chronyc tracking」確認します。
nutanix@NTNX-aca83545-A-CVM:~$ sudo chronyc tracking
Reference ID : C0A83601 (192.168.54.1)
Stratum : 4
Ref time (UTC) : Sat Jul 27 05:16:22 2024
System time : 0.000760825 seconds slow of NTP time
Last offset : -0.001093699 seconds
RMS offset : 0.000706507 seconds
Frequency : 4.807 ppm slow
Residual freq : -0.459 ppm
Skew : 4.433 ppm
Root delay : 0.071808040 seconds
Root dispersion : 0.061855555 seconds
Update interval : 65.2 seconds
Leap status : Normal
なお、AOS6.8から、RockyLinuxベースになったこともあり、ntpも、chronydに変更されています。従来の「ntpq」コマンドは利用できなくなっていることも注意してください。
WindowsのNTPであっても、同期が可能な限り取れる方法をご紹介しましたが、よりクリティカルが環境での利用は、推奨される非Windows環境のNTPサーバーを指定することをお勧めします。
(参考)Chronyd: Troubleshooting Guide
https://portal.nutanix.com/kb/16363
(参考)
https://qiita.com/fukuchan-senpai/items/1fa755ffaffe6a25a2f2