人気ブログランキング |
タグ:NTP ( 6 ) タグの人気記事
Windows端末で時刻同期を即時に行う
ドメイン環境で、ドメインコントローラとの時刻同期に失敗するとも若干関連がありますが、Windows端末をNTPプロトコルを使って今すぐ時刻同期したい場合は、w32tm コマンドを使って /resync /nowait オプションをつけるといいようです。

>w32tm /resync /nowait


また、NTPプロトコルではなくSMBプロトコルでも時刻同期できるようです。(ドメイン環境)
その場合は、以下のコマンドを実行します。

>net time /set


参考:
時刻を手動で直ちに同期させる - @IT
by Jehoshaphat | 2012-12-06 00:40 | 豆知識
(Linux)Hyper-V環境でntpdによる時刻同期がうまく動かない
(Linux)ntpdを使った時刻同期方法で、ntpdによる時刻同期方法を書きました。

しかし、Hyper-V上で動いているLinux(CentOS5.6)でntpdがうまく動かないのです。
(Hyper-V自体にもホストOSとゲストOSの時刻同期機能があり、Linux-IS2.1でも対応してるらしいですがはやり狂ってしまいます。なので、ntpによる同期は必要です)

ntpq で ntpd の状況をみると下記のようになります。

# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
ntpsvhogehoge.c 10.10.1.100 4 u 4 128 377 0.386 -3419.5 1233.04
*LOCAL(0) .LOCL. 10 l 48 64 377 0.000 0.000 0.001

NTPサーバに同期せず自分自身に同期しようとしています。

で、いろいろ調べた結果、VMwareの時刻あわせ 2008年冬版 - SH2の日記で原因を見つけました。
どうやら、LinuxKernel 2.6.18 ではタイマー割り込みが秒間1000回(1msおき)に走っているようです。
このタイマー割り込みによって時刻も進んでいるわけですが、割り込み回数が多すぎてHyper-Vが割り込みを取りこぼしてしまうことが原因のようです。

補足ですが割り込み回数はvmstatで分かるようです。

# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 60 14840 86640 705432 0 0 26 4 16 32 0 1 99 0 0
0 0 60 14840 86640 705432 0 0 0 0 1033 31 0 1 99 0 0
0 0 60 14840 86640 705432 0 0 0 0 1013 27 0 0 100 0 0

system の in のところ(太字)が割り込み回数のようです。

ということで、タイマー割り込みのタイミングを広くしてやればいいということですね。
カーネル再構築しなくても、ブートローダーのカーネル起動オプションで設定できるようです。

# vi /boot/grub/grub.conf

title CentOS (2.6.18-238.9.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-238.9.1.el5 ro root=/dev/VolGroup00/LogVol00 hda=noprobe hdb=noprobe divider=10 clocksource=acpi_pm
initrd /initrd-2.6.18-238.9.1.el5.img

カーネル起動パラメータにdivider=10 clocksource=acpi_pmを追加してやればいいようです。
divider で指定した間隔でタイマー割り込みが入るようです。(10なら10msおきに割り込み、つまり秒間100回となる)
clocksource=acpi_pm とすることで、divider指定時のハングする問題を回避できるようです。

これで再起動して、しばらくしてからntpqで確認するとちゃんと動いていました。

# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntpsvhogehoge.c 10.10.1.100 4 u 182 256 377 0.274 -58.869 19.775
LOCAL(0) .LOCL. 10 l 7 64 377 0.000 0.000 0.002


いざ探すと、結構情報が見つかったので、Hyper-VでLinux運用する上では常識のことなのかもしれません。

参考:
EZ-NET: Hyper-V 上の Linux でシステム時刻を同期する (CentOS 5.4) - Linux の使い方
Hyper-V と NTP(Linux ntpd) 時刻同期の問題 - nekohamawalker's Blog - MASUDAQ.COM Blogger
by Jehoshaphat | 2011-09-26 01:40 | Linux
(Linux)ntpdを使った時刻同期方法

(Linux)ntpdateを使った時刻同期方法では、ntpdate コマンドを使って時刻同期してました。
ntpdateは一気に時間を変える方法なので、サーバにはあまり望ましく有りません。

ということで、CentOS5.5で徐々に時刻をあわせる ntpd を使った時刻同期をしてみました。

ntp パッケージが必要になります。
入ってない場合は、下記コマンドでインストールします。

yum install -y ntp


大幅に時刻がズレている場合、先に、ntpdate で同期したほうがいいです。

ntpdate ntp.nict.jp
hwclock --systohc ←ハードウェアクロックも同期


/etc/ntp.conf を編集し、同期するサーバを追加します。


# vi /etc/ntp.conf

## 時刻問い合わせのみ答える
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
 ↓
#サーバの設定(nictは3回同じを書かないといけないらしい)
server -4 ntp.nict.jp
server -4 ntp.nict.jp
server -4 ntp.nict.jp
server -4 ntp.jst.mfeed.ad.jp
server -4 ntp.asahi-net.or.jp
server -4 192.0.0.10 iburst

-4はIPv4を使うというオプションのようです。
"iburst" は起動時に多数ポーリングし、初期化時間を短縮します。

設定が終われば ntpd を起動します。また、Linux起動時に動くようにしておけばいいでしょう。

# service ntpd start
# chkconfig ntpd on


ntpq コマンドを使うと、ntpdの状態を確認できます。

# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
210.171.226.40 .NICT. 1 u 83d 1024 0 20.669 1.707 0.000
*ntp2.jst.mfeed. 210.173.160.86 2 u 721 1024 377 20.007 3.282 2.579
+orion.asahi-net 210.171.225.76 2 u 125 1024 377 20.763 1.184 0.219
+hogehogeserve.c 202.224.32.4 3 u 657 1024 377 0.279 -9.904 0.694
LOCAL(0) .LOCL. 10 l 6 64 377 0.000 0.000 0.001

"*" が付いていれば時刻同期出来ているようです。
ntpq での結果の見方は、ntpq出力内容の説明のくす牧場 : linux/ntpd [ntp, ntpd(Linuxでの時計の合わせ方)] - ゐ記が参考になります。



参考:

Linux NTP クライアントによる時刻同期の設定 - nekohamawalker's Blog - MASUDAQ.COM Blogger

気の向くままに ~備忘録@wiki~ - NTP
日本標準時プロジェクト 公開NTP FAQ
by Jehoshaphat | 2011-09-26 01:36 | Linux
ドメイン環境で、ドメインコントローラとの時刻同期に失敗する
Windows ドメイン環境で、クライアントPCの時刻がずれていたので、コマンドから強制的に同期を試みました。
すると下記のようにエラーとなります。

C:\Documents and Settings\Administrator>w32tm /resync
再同期のコマンドを送信: local computer...
時刻データが利用できなかったため、コンピュータは同期をとり直しませんでした。


で、ActiveDirectory環境で時間の同期失敗に解決策が載ってました。
Windows Time サービスの設定をし直してやればいいようです。

>w32tm /config /syncfromflags:DOMHIER
>net stop w32time
>net start w32time
>w32tm /resync

ただ、普通はドメインメンバなら自動的にこの設定になってると思うんですが。。。


補足:
即時に時刻同期するには、/nowait オプションを加えます。
Windows端末で時刻同期を即時に行う参考。
by jehoshaphat | 2010-09-28 01:19 | サーバがらみ
サーバOSの時刻狂いが異常
最近サーバOS(Windows Server 2008)の時刻が異常なほど狂ってます。
NTPで時刻合しても1分数秒ほど誤差が出る始末。
原因はわかりませんが(マザボの内蔵クロックかも)このままじゃ運用に支障をきたすので、NTPで時刻を合わす間隔を短くすることにしました。

NTPクライアントは別途入れてもいいのですが、面倒なのでOSの機能を用います。
OSのNTPクライアントはデフォルト(ワークグループ環境)だと7日なので、それを 1分毎にしてみました。

触るのは下記のレジストリです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
SpecialPollInterval 項目の値を10進数で 60 に。

これで、Windows Time サービスを再起動すればOKです。
結果、なんとか誤差は縮まりました。


参照:
@IT:Windows OSにおける時刻同期サービスとNTP
by jehoshaphat | 2009-06-16 21:35 | サーバがらみ
(Linux)ntpdateを使った時刻同期方法
Hyper-V上のCentOSの時刻がかなりとち狂っていたので(1日で10分弱ほど)、定期的にNTPサーバに時刻補正することにしました。
(おそらくβ版のSeLinux用統合コンポーネントをいれてるから、時刻が狂うのではないかと思います。RedHat用の正式版統合コンポーネントがでれば、そちらを入れたほうが、ホストOSと時刻同期取れるはず(?))

まず、Linuxの時刻同期には ntpd を使う方法と、ntpdate を使う方法があります。
前者はntpのクライアントの機能に加えサーバとしての機能もあります。時刻が狂っていれば、正しい時刻に徐々に近づけていく方式みたいです。(Windowsのドメイン環境のクライアントの時刻同期方法とほぼ同じ)
後者は瞬時に指定したntpサーバの時刻に修正します。

本来はサーバと役割を考えると ntpd を使ったほうがいいのですが、FWの設定にミスがあるらしく、時刻同期ができませんでした。
ということで、ntpdateをつかった補正の方法です。
(ntpdを使った方法については、(Linux)ntpdを使った時刻同期方法を参照。)

ます、ntpdate は ntpd サービスが稼働中だと

18 Aug 11:01:14 ntpdate[25758]: the NTP socket is in use, exiting

という風に、時刻同期できないようなので、サービスを落としておきます。
ついでに

# chkconfig ntpd off

で、次回起動時に上がらないようにします。

ntpdate のコマンドはいたって簡単で、引数に時刻同期したいntpサーバを指定するだけです。

あとは定期的に ntpdate で時刻同期するように、シェルスクリプトを作り、cronに登録するだけです。
まず、シェルスクリプトです。

#!/bin/sh
ntpsv="ntpサーバ名"
/usr/sbin/ntpdate $ntpsv

いたってシンプルなスクリプトです。
が、詰まってしまいました。
原因はコマンドを /usr/sbin/ntpdate とフルパスに書かないといけないのを ntpdate とだけ書いていたからです。

あと、cronに10分お気に実行するに登録します。
cronの使い方はhttp://jehupc.exblog.jp/3063146/

ハードウェアクロックのほうは仮想マシンということであんまり関係なさそうなので、今回は設定なしです。

参考:
時刻合わせに、過程や…!方法なぞ…!どうでもよいのだァーッ
Vine Linux - 時刻合わせ
by jehoshaphat | 2008-08-18 22:54 | Linux