ネットワーク時刻協定(Network Time Protocol、NTP)は、ネットワークを介してコンピュータシステム間の時刻を同期するプロトコルです。NTPサーバーにより、組織内のすべてのサーバーの時刻が同期されます。
OceanBaseデータベースは分散型データベースであるため、クラスタ内の複数ノードおよびOCPノードのクロックには、時刻同期サービスであるNTPまたはchryを設定し、すべてのノードのクロック偏差を2秒以内に保つ必要があります。
OBServerを実行するサーバーでは、システム時刻はNTPサービスによって同期されます。しかし、時刻のずれが大きすぎる場合、NTPサービスはシステム時刻を変更・修正しません。クラスタの時刻が同期されていないと、クラスタの可用性に影響します。本記事では、OBServerのOS時刻を調整する方法について説明します。
NTPオフセットの確認
以下の方法でNTPオフセットを確認できます:
ホストから確認する
以下のコマンドを実行して、クロックオフセットを確認できます。
[root@hostname /]# ntpq -p|grep -E "\*|\=|remote"
remote refid st t when poll reach delay offset jitter
==========================================================================
xxxxxxxxxxx xxxxx 2 u 16 64 377 1.333 0.046 0.033
NTPオフセットの設定
判断基準
NTPオフセット値が2秒を超える場合、設定が必要です。
OBServerノードのシステム時刻が標準時刻より遅い場合
OBServerノードのシステム時刻が標準時刻より遅い場合、サーバーのシステム時刻を標準時刻に直接変更できます。例えば、現在の標準時刻が20:00で、OBServerの時刻が1時間遅れて19:00の場合です。
OBServerを停止します。
OBServerが停止した後、SSHを使用してホストにログインし、手動でシステム時刻を変更します。
ここで、
ntp_server_ipは時刻サーバーのIPアドレスです。[root@hostname /]# ntpdate <ntp_server_ip>OBServerを起動します。
OBServerノードのシステム時刻が標準時刻より速い場合
OBServerノードのシステム時刻が標準時刻より速い場合、システム時刻を直接戻すことはできません。停止してシステム時刻が標準時刻と同期されるのを待った後に変更する必要があります。例えば、現在の標準時刻が20:00で、OBServerの時刻が1時間進んで21:00の場合です。
OBServerを停止します。
プロセスが停止した後、標準時刻が21:00を超えるまで待機します。例えば、標準時刻が21:05の場合、SSHを使用してホストマシンにログインし、手動でシステム時刻を変更します。
ここで、
ntp_server_ipは時刻サーバーのIPアドレスです。[root@hostname /]# ntpdate ntp_server_ipOBServerを起動します。