ネットワーク時刻協定(Network Time Protocol、NTP)は、ネットワークを介してコンピュータシステム間のクロックを同期させることができます。NTPサーバーにより、組織内のすべてのサーバーの時刻を同期した状態に保つことができます。
OceanBaseデータベースは分散型データベースであるため、クラスタ内の複数のノードおよびOCPノードのクロックには、時刻同期サービスであるNTPまたはchronyを設定し、すべてのノードのクロック偏差を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を起動します。