OceanBase関連プロダクト間には時間に関していくつかの暗黙の関連性があるため、OceanBaseプロダクトの全サーバーの物理時刻を同期させ、誤差を2秒以内、できればそれ以下に抑える必要があります。そのため、クラスタの複数のノードとOCPノードのクロックは、クロック同期サービスNTPまたはchronyを設定し、すべてのノードのクロックのずれを2秒以内にする必要があります。本記事では、クラスタ内の複数マシンにNTPクロックソースを設定する方法について説明します。
OceanBaseデータベースをスタンドアロンにインストールする場合は、設定は不要です。
前提条件
NTPクロックソースを設定する前に、すべてのマシンで root ユーザー権限を持っていることを確認してください。
操作手順
以下の手順に従ってNTPクロック同期を設定します。
説明
通常、Linux標準のNTPサービスを使用して時刻を同期できます。現在のマシン環境に安定していて信頼性の高いNTPサーバーが存在する場合は、それをすべてのサーバーのNTPソースとして選択します。存在しない場合は、特定のサーバーを1台選択し、NTPソースとして使用します。
各マシンにYUMパッケージマネージャーを用いてNTPをインストールします。
[root@xxx /]# yum install ntp ntpdate -yntp.confファイルを設定します。[root@xxx /]# vi /etc/ntp.conf restrict default ignore restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid #logfile /var/log/ntp.log # local clock server 127.127.1.0 fudge 127.127.1.0 stratum 10 server 192.168.XX.XX iburst minpoll 4 maxpoll 6パラメータの説明:
restrictは、IP関連の時刻同期コマンドの権限を指定するために使用します。restrict [IP] mask [netmask_IP] [parameter]parameterにはignore、nomodify、noquery、notrap、notrustなどがあります。ignoreは、デフォルトですべてのタイプのNTP同期を拒否します。serverは上位のNTPサーバーを指定するために使用します。server [IP or hostname] [prefer]上位NTPソースサーバーがない場合は、127.127.1.0に設定できます。これは、ローカルマシンをNTPソースサーバーとして使用することを意味します。
NTP同期サービスを再起動します。
[root@xxx /]# systemctl restart ntpd [root@xxx /]# systemctl status ntpdNTPの同期ステータスを確認します。
説明
NTPサービスが起動直後の場合は、しばらく待ってからntpstatコマンドを実行する必要があります。
[root@xxx /]# ntpstat [root@xxx /]# ntpq remote refid st t when poll reach delay offset jitter ======================================================================== LOCAL(0) .LOCL. 10 l 589 64 0 0.000 0.000 0.000 *192.168.XX.XX xxx.xxx.xxx.xxx 2 u 18 64 377 1.591 0.249 0.054ntpqコマンドの結果パラメータの説明:
remote:使用中のNTPサーバーを示します。*は現在選択されているNTPサーバーを示します。LOCALはローカルを意味します。xは使用されなくなったサーバーを示します。-は使用されなくなったサーバーを示します。+は良好で優先的に考慮されるサーバーを示します。#は良好だが使用されていないサーバーを示します。refid:リモートNTPサーバーが使用している上位のNTPサーバー。INITは取得中であることを示します。st:リモートNTPサーバーのStratum (レベル)。when:最終同期からの経過時間(デフォルトは秒、hは時間、dは日を表します)。poll:同期の頻度、単位:秒。delay:ローカルマシンからリモートNTPサーバーまでの往復時間(単位:ミリ秒)。offset:ローカルマシンとリモートNTPサーバー間の時間オフセット(単位:ミリ秒)。jitter:ローカルマシンとリモートNTPサーバー間の時間オフセットの平均偏差(単位:ミリ秒)。
最終的なチェック方法。
最終的な同期遅延のチェックは以下の方法で行います:
[root@xxx /]# clockdiff 192.168.XX.XX .................................................. host=192.168.XX.XX rtt=1(0)ms/1ms delta=0ms/0ms Sat Apr 18 14:41:40 2020(オプション)手動で同期する方法。
時刻に大きなずれが常にある場合は、
ntpdateコマンドを使用して手動で時刻を修正できます。これは自動同期サービスと競合するため、NTPサービスを事前に停止する必要があります。[root@xxx /]# systemctl stop ntpd [root@xxx /]# ntpdate -u 192.168.XX.XX 18 Apr 14:54:20 ntpdate[108001]: adjust time server 192.168.XX.XX offset -0.000180 secこの方法が有効であれば、システムのcrontabに設定します。
[root@xxx /]# crontab -e * * * * * /sbin/ntpdate -u 192.168.XX.XX 2>&1 1>>/tmp/ntpupdate.log(オプション)ファイアウォールルール。
標準化された環境ではファイアウォールをオフにする必要があります。サーバー環境でファイアウォールを有効にする必要がある場合は、以下のルールを参考にします。
[root@xxx /]# iptables --A INPUT --p udp --i eth0 --s 192.168.1.0/16 --dport 123 --j ACCEPT [root@xxx /]# systemctl restart ntpd