Linuxのchronydの設定解除 ~Oracle RACのCTSSを有効化~
Linux7からはデフォルトのNTPサービスとしてntpdに代わりchronydがインストールされています。
今回はOracle RAC構築の際にCTSS (Cluster Time Synchronization Service)を利用しようとして詰まった「chronydの設定解除」について書いていきます。
(ntpdとほぼ同じだったので、常識なのかもしれない...)
前提
- Linux7のデフォルトのNTPサービスがchronydであることを知らなかった
- OUIがNTPの設定を判別する方法を知らなかった
上記の前提でのお話ですので、生暖かい目で読んでください
参考にした手順
Oracleが出しているインストールガイド
https://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/racdb12201-inst-linux-x64-3795525-ja.pdf
(サクッと構築できるようにRPMをガンガン使って最小手数で構築する手順です。)
NTPに悩まされて解決に至るまで
サーバー間のLANを2重化してみたところ以外は差分なく反映していきました。
しかし、CTSSを有効にするためにNTPの設定を解除するところで予想外の出来事に遭遇しました。
そもそもntpdのサービスもなければconfファイルもいないのです。
[root@node1 ~]# service ntpd status Redirecting to /bin/systemctl status ntpd.service Unit ntpd.service could not be found. [root@node1 ~]# [root@node1 ~]# cat /etc/ntp.conf cat: /etc/ntp.conf: そのようなファイルやディレクトリはありません
※Linuxは不勉強な私にもやさしくsystemctlへとリダイレクトしてくれるんです。
そのやさしさ、好きです(/ω\)
この時の不勉強な私はまだchronydの存在など知らずにのん気なものでした。
「なんだ、最小構成にしたからntpdいないんじゃん(´-ω-`)」
...ところが、インストールする際にOUI先生は「NTPどうのこうのが...」とおっしゃってきたのです。
何やらNTPどうのこうのの下に「chrony demon ...」なるものがいるではありませんか。
そして調べると、chronydは、Linux7のデフォルトのNTPクライアントであることがわかりました。
qiita.com
さらに調べると、以下のマニュアルにたどり着きました。
18cのInstallation and Upgrade Guide for Linux
docs.oracle.com
以下のコマンドを実行すればchronydサービスを無効化できるんだなとのことで実行!
[root@node1 ~]# systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled) Active: active (running) since 土 2019-03-16 10:02:21 JST; 1h 21min ago Docs: man:chronyd(8) man:chrony.conf(5) Process: 3472 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS) Process: 3438 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 3451 (chronyd) CGroup: /system.slice/chronyd.service mq3451 /usr/sbin/chronyd 3月 16 10:02:21 node1.oracle12c.jp systemd[1]: Starting NTP client/server... 3月 16 10:02:21 node1.oracle12c.jp chronyd[3451]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK ...UG) 3月 16 10:02:21 node1.oracle12c.jp chronyd[3451]: Frequency 4.518 +/- 0.097 ppm read from /var/lib/chro...ift 3月 16 10:02:21 node1.oracle12c.jp systemd[1]: Started NTP client/server. Hint: Some lines were ellipsized, use -l to show in full. [root@node1 ~]# [root@node1 ~]# systemctl stop chronyd [root@node1 ~]# [root@node1 ~]# systemctl disable chronyd Removed symlink /etc/systemd/system/multi-user.target.wants/chronyd.service. [root@node1 ~]# [root@node1 ~]# systemctl status chronyd ● chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:chronyd(8) man:chrony.conf(5) 3月 16 10:02:21 node1.oracle12c.jp systemd[1]: Starting NTP client/server... 3月 16 10:02:21 node1.oracle12c.jp chronyd[3451]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK ...UG) 3月 16 10:02:21 node1.oracle12c.jp chronyd[3451]: Frequency 4.518 +/- 0.097 ppm read from /var/lib/chro...ift 3月 16 10:02:21 node1.oracle12c.jp systemd[1]: Started NTP client/server. 3月 16 11:24:38 node1.oracle12c.jp chronyd[3451]: chronyd exiting 3月 16 11:24:38 node1.oracle12c.jp systemd[1]: Stopping NTP client/server... 3月 16 11:24:38 node1.oracle12c.jp systemd[1]: Stopped NTP client/server. Hint: Some lines were ellipsized, use -l to show in full.
「よし、これでOUI先生も許してくれるだろう...(メモリとスワップは無視しよう)」
そんな甘い考えのもと再度チェックをしてもらったところ、OUI先生は許してくれませんでした。
「何でですか!?」と画面に問いかけても返事はありません。
(「こちとらちゃんとchronyd停止させてんだぞ!」と半ギレ)
(20190701追記:19cのGIインストールするときにまた引っ掛かりましたが(成長しない)、ちゃんと見ると/etc/chrony.confが残っているよっていう表示出てました。)
とりあえず、後でCTSSは設定しようと無視してインストール(よい子はマネしないでね!)
OUI先生から2つほど×を頂きつつも、インストール完了。
クラスタリソースを確認しても異常なし。(よかった...)
[grid@node1 ~]$ crsctl status res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.ASMNET2LSNR_ASM.lsnr ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.DATA.dg ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.LISTENER.lsnr ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.chad ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.net1.network ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE ora.ons ONLINE ONLINE node1 STABLE ONLINE ONLINE node2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE node2 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE node1 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE node1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE node1 169.254.89.232 192.1 68.100.101 192.168.2 00.101,STABLE ora.asm 1 ONLINE ONLINE node1 Started,STABLE 2 ONLINE ONLINE node2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE node1 STABLE ora.mgmtdb 1 ONLINE ONLINE node1 Open,STABLE ora.node1.vip 1 ONLINE ONLINE node1 STABLE ora.node2.vip 1 ONLINE ONLINE node2 STABLE ora.qosmserver 1 ONLINE ONLINE node1 STABLE ora.scan1.vip 1 ONLINE ONLINE node2 STABLE ora.scan2.vip 1 ONLINE ONLINE node1 STABLE ora.scan3.vip 1 ONLINE ONLINE node1 STABLE -------------------------------------------------------------------------------- [grid@node1 ~]$
しかし、CTSSは有効になっていませんでした。
[grid@node1 ~]$ crsctl check ctss CRS-4700: The Cluster Time Synchronization Service is in Observer mode. [grid@node1 ~]$
やっぱり時刻同期してないのは気持ち悪いので何とかCTSSを有効にしたいと思い、改めて手順を見直すと、ntpdのほうではサービス止めるだけじゃなくて「/etc/ntpd.conf」を消していたなと思い至りました。
探してみると「/etc/chronyd.conf」がいました。(上記引用した記事に書いてあった通り)
[grid@node1 ~]$ ls -l /etc/chrony.conf -rw-r--r--. 1 root root 1080 9月 26 21:38 /etc/chrony.conf
それでは、消してみることに...
[root@node1 ~]# mv /etc/chrony.conf ./backup [root@node1 ~]#
※本当に消すのではなくて「/root/backup/」に移動させています。
そして、クラスタを再起動してCTSSが有効になっているか確認すると
[grid@node1 ~]$ crsctl check ctss CRS-4701: The Cluster Time Synchronization Service is in Active mode. CRS-4702: Offset (in msec): 0 [grid@node1 ~]$
「やった!無事切り替わっている(*^▽^*)」
そんなこんなで、無事Grid Infrastructureのインストールが完了しましたとさ。
めでたしめでたし♪
(↑いやいや、OUIのチェック時に気づけよ!)
結論
今回分かったこと、Grid InfrastructureでNTPの設定を解除するには次の2つが必要であるということです。
(え、これって常識なの...?)
1. NTPのサービスを止めて起動しないようにする
2. NTPの設定ファイルを消す
1は気づいても、2は忘れがち。
注意しよう( ..)φメモメモ
最後に
手順書の隅々まで意味を理解しているかどうかが難しいけれどとても大事なことです。改めにそのことが身に沁みました。
そして、こういうトラブルシューティングはいい経験になります。
今後も検証環境でトラブルと闘っていきたいと思います。
終わり