web-dev-qa-db-ja.com

RHEL6でクロックスルーを使用してNTP

Oracleデータベースを実行しているRHEL6サーバーがあります。サーバーが構築されたとき、NTPは有効化または構成されていませんでした。私の仕事は、データベースに影響を与えずにそれを行うことです。いくつかの調査を行った後、RHEL6でNTPを有効にすると、同期するまで時間がドリフトするだろうと思いました。ただし、テストマシンでこれを実行すると、クロックされたシステムはすぐにNTP時間にジャンプしました。 NTPを有効にするまでの時間は約2分半でした。 ntpstatコマンドを実行すると、しばらく同期が解除されましたが、同期されています。

では、NTPを有効にして、同期に「ブルートフォース」するのではなく、正しい時間にドリフトさせるにはどうすればよいですか?ご協力いただきありがとうございます!!

[root@Host etc]# service ntpd status
ntpd is stopped
[root@Host etc]#
[root@Host etc]# ntpdate -q time.mydomain.com
server 1.1.1.1, stratum 2, offset 154.573234, delay 0.02890
 2 May 15:47:59 ntpdate[21584]: step time server 1.1.1.1 offset 154.573234 sec
[root@Host etc]#
[root@Host etc]# service ntpd start
Starting ntpd:                                             [  OK  ]
[root@Host etc]# ntpdate -q time.mydomain.com
server 1.1.1.1, stratum 2, offset -0.000118, delay 0.02876 
 2 May 15:50:47 ntpdate[21606]: adjust time server 1.1.1.1 offset -0.000118 sec
[root@Host etc]# date
Tue May  2 15:51:01 EDT 2017
[root@Host etc]# ntpstat
unsynchronised
polling server every 64 s
[root@Host etc]# ntpstat
synchronised to NTP server (1.1.1.1) at stratum 3
 time correct to within 80 ms
 polling server every 1024 s
2
bzinger

NTPDは、クロックがオフの場合、クロックを回転させながら、ゆっくりとクロックを調整できます。その背後にある考え方は、遅いステップはソフトウェアタイマー、ログファイルとデータの奇妙なギャップなどの問題を引き起こさないということです。

可能な最大スルーレートは、Unixカーネルによって500 ppm(parts-per-million)に制限されています。その結果、クロックが許容範囲外になると、クロックは1秒あたり2000秒かかる可能性があります。

マニュアルページによると、時計が1000秒以上ずれていると、ntpdは機能しません。 (-gスイッチを使用して、1000秒のオフセットをゆっくりと補正することで調整できますが、すでに3週間以上かかります。)

次に、ntpdを開始したときに観察されたタイムジャンプは、ntpdの起動時にオフセットが128ミリ秒を超える場合にクロックをスルーするのではなく、デフォルトのntpdの動作の結果です。これは、ntpdが起動時に開始されたときに意味がありますが、実行中のシステムで必要なものではありません。

Ntpdの起動オプションに-xスイッチを追加することで、これを防ぐことができます。マニュアルから:

-x
通常、オフセットがステップしきい値(デフォルトでは128ミリ秒)よりも小さい場合、時間はスルーされ、しきい値を超える場合はステップされます。このオプションは、しきい値を600秒に設定します。これは、時計を手動で設定するための精度ウィンドウ内に十分収まります。注:一般的なUnixカーネルのスルーレートは0.5 ms/sに制限されているため、調整の1秒ごとに2000秒の償却間隔が必要です。したがって、600秒もの調整が完了するまでに約14日かかります。このオプションは、-gおよび-qオプションとともに使用できます。

Ntpdサービスを開始する前に/etc/sysconfig/ntpd構成ファイルで調整されるRHELシステムでは:

# /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -x" 
2
HBruijn