[Oracle Cloud] NTPサービス構成に関するメモ(Compute Instance編)

本記事の目的

OCIの Compute Instanceの時刻同期サービスとして利用されているChronyサービスの設定を確認してみました。

 

OCI Compute Instanceにおける時刻同期

OCI Compute Instanceではユーザが利用可能な時刻同期の仕組みとして「Oracle Cloud Infrastructure NTPサービス」が提供されています。

また、パブリックのNTPサービスや、オンプレミスのNTPサービスを利用することも出来ます。

マニュアル「インスタンス用のOracle Cloud Infrastructure NTPサービスの構成」
https://docs.oracle.com/cd/E97706_01/Content/Compute/Tasks/configuringntpservice.htm
より、

Oracle Cloud Infrastructureは、完全に管理され、セキュアで可用性の高いNTPサービスを提供します。このサービスを使用すると、仮想クラウド・ネットワーク(VCN)内から、コンピュートおよびデータベース・インスタンスの日時を設定できます。 Oracle Cloud Infrastructure NTPサービスでは、すべての可用性ドメインに冗長なバージョンの1デバイスを使用しています。 Stratum 1デバイスは、すべてのホストが同期を行う専用のStratum 2デバイスに同期されます。 このサービスはすべてのリージョンで使用可能です。

このトピックでは、このNTPサービスを使用するようにコンピュート・インスタンスを構成する方法について説明します。

また、パブリックNTPサービスを使用するようにインスタンスを構成するか、FastConnectを使用してオンプレミスのNTPサービスを利用することもできます。

なお、Oracle提供の標準イメージであるOracle 7.xおよびCentOS7.xの場合は、Chronyサービスがデフォルトで設定されているため自分でNTPサービスを構成する必要はありません。

Oracle提供のOracle 7.xおよびCentOS 7.xイメージは2018年2月以降にリリースされたものにはChronyサービスがデフォルトで含まれているため、これらのインスタンスに対してOracle Cloud Infrastructure NTPサービスを構成する必要はありません。

 

逆にいうと、それ以外の環境では自分でNTPサービスの設定を要確認。

 

Chronyとは?

Linux OSにおいて従来から広く利用されていたNTPDデーモンに代わる新しい時刻同期の実装であり、一部の環境を除いて今後はchronyの利用が推奨されている模様。

ChronyとNTPDの違いに関しては、RedHatの以下の記事にまとまってました。

・第17章 CHRONY スイートを使用した NTP 設定
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

一部抜粋で紹介

17.1. chrony スイートの概要

  • システムクロックを NTP サーバーと同期する
  • システムクロックを GPS レシーバーなどの基準クロックと同期する
  • システムクロックをマニュアルの時間入力と同期する
  • ネットワーク内の他のコンピューターにタイムサービスを提供する NTPv4(RFC 5905)サーバーまたはピアとして

17.1.1. ntpd と chronyd の違い

chronyd が ntpd よりも優れている点として、以下が挙げられます。
  • chronyd は、時間参照へのアクセスが途切れやすい環境でも良好に機能します。一方 ntpd は、良好に機能するためには時間参照の定期的なポーリングを必要とします。
  • chronyd はネットワークの混雑が長時間にわたる場合でも機能します。
  • chronyd は通常、クロックをより高速に、より高い精度で同期できます。

 

17.1.2. NTP デーモンの選択

Chrony は、chrony に対応していないツールで管理または監視されているシステムや、chrony と互換性のないハードウェア基準クロックを搭載しているシステムを除いた、すべてのシステムに推奨されます。

 

 

Linux 7.x環境での設定確認

Oracle標準イメージのOracle Linux 7.6にて構築した Compute Instanceでの設定を実際に確認してみました。

 

パッケージインストール状況

⇒デフォルトでインストール済

 

デーモンステータス確認

⇒デフォルトで起動

 

 

同期NTPサーバの確認

⇒*が現在同期しているNTPサーバ。「169.254.169.254」が利用されている。

 

 

トラッキング情報の確認

⇒★の部分がNTPサーバと自サーバの時刻差異。ここの差異が大きい場合は要確認。

 

 

chrony設定ファイル

⇒NTPサーバとして「169.254.169.254」のみが指定されている
⇒時刻同期はStepモードとなっている

 

Slewモードへの変更

時間の逆戻りを避けるために、slewモードのみが動くよう/etc/chrony.confを以下のように修正

 

・設定を反映するために再起動

※時刻同期モードを直接確認できるコマンドは確認できず。設定ファイルで確認するしかない?

 

 

Oracle 7.xおよびCentOS 7.xイメージ以外の環境の場合

前述のマニュアルにOracle 6.xおよびWindowsの場合のガイド記載あり。

また、以下のDocも参考にできそう。
・OCI-How to configure and troubleshoot NTP Client in Oracle Linux 6/7 instances in Oracle Cloud Infrastructure (Doc ID 2490573.1)
https://support.oracle.com/knowledge/Oracle%20Cloud/2490573_1.html

 

なお、OCI Database(DBaaS)に関しては、以下の記事を参照。
[Oracle Cloud] NTPサービス構成に関するメモ(DBaaS編)

 

 

NTPサービスの設定に関する(当たり前すぎる)注意事項

何れのNTPサービスを利用する場合でも、該当インスタンスからNTPサーバに対してネットワーク的に疎通ができる必要がある点に注意。当たり前だが、該当のNTPサーバと通信できないと時刻同期は出来ない。

特にセキュリティ・リスト(Egressルール)を厳しく設定した環境では、NTPサーバとの通信ができておらず時間がずれていた、なんてことが起こりがちなので十分に注意したい。

 

参考情報

・マニュアル「インスタンス用のOracle Cloud Infrastructure NTPサービスの構成」(再掲)https://docs.oracle.com/cd/E97706_01/Content/Compute/Tasks/configuringntpservice.htm

・RedHat 第17章 CHRONY スイートを使用した NTP 設定(再掲)
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

・RedHat 17.3. CHRONY の使用
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-using_chrony

・5分でできる!NTP(chrony)の設定方法【CentOS7】
https://hackers-high.com/linux/easy-chrony-settings/

・NTPに変わるChronyって何が変わったの?
https://legitwhiz.github.io/technology_memo/What_changed_to_chrony_instead_of_NTP.html

・chrony公式ページ
https://chrony.tuxfamily.org/

 

 

おまけ:最近読んだお奨めのLinux本

スポンサードリンク

1 Trackback / Pingback

  1. [Oracle Cloud] NTPサービス構成に関するメモ(DBaaS編) - IT Edge Blog

Leave a Reply

Your email address will not be published.


*