web-dev-qa-db-ja.com

適切なVPSタイムキーピングを行う方法は?

時系列のオンラインデータをログに記録するようにVPSを構成していますが、時間がずれていることに気付きました。これについては、10秒以上の精度が必要です。

システムの負荷などによってエラーが異なるため、VPSの時間管理がネイティブ(x86)システムとは異なることをどこかで読みましたか?そのため、ntpdはVPS内での操作に適していない可能性がありますか?

伝聞で十分ですが、知りたいのですが、VPSで適切なシステム時間を維持するにはどうすればよいですか?これは、仮想化テクノロジーまたはVPSプロバイダーごとにまったく異なりますか?そして、なぜntpdはVPS内の操作に適していないのでしょうか?

4
Xunie

短いバージョン:コンテナー内の時間管理(ほとんどのVPSはこれです)はホストの責任です。これを修正するには、おそらくVPSプロバイダーに働きかける必要があります。

:このアドバイスは適用されませんVPSがXen(AWSなど)の場合、KVM(GCEなど)、またはHyper-V(Azureなど)仮想マシン。その場合、カーネルとそのクロックドライバーは仮想化されているため、ベアメタルマシンと同じように扱い、ntpdchronyd、またはsystemd-timesyncd

長いバージョン:VPSが一般的なコンテナである場合、NTPはローカルクロックを制御できません。カーネルクロックはコンテナ化(名前空間化)されておらず、ほとんどのコンテナマネージャー(OpenVZ、Docker、LXC/LXDなど)はカーネル時間機能をコンテナーに付与しません。 (UbuntuとChronyのコンテキストでのこれについての説明は、 https://bugs.launchpad.net/ubuntu/+source/chrony/+bug/158978 を参照してください。)

一般的なプロバイダーからVPSをレンタルしている場合は、VPSがNTPの構成にまったく失敗しているか、構成が不十分で監視されていないようです。

https://Gist.github.com/kuzetsa/4a64cd1a95260d0bc5cc1b8aeaba1878 のような構成を使用して、ローカルクロックを変更せずにコンテナーでntpdを実行できます(disable kernel行は重要な部分)。これにより、ホストのNTPサーバー(存在する場合)を監視できます。 VPSホストのクロックをいくつかの外部ソースと比較する場合は、pool.ntp.orgまたは別のパブリックNTPサービスを追加します。

3
Paul Gear

ハードウェア、仮想(VM)、または物理(ベアメタル/ハイパーバイザー)にアクセスできる場合は、NTP)を使用して同期できます。

Ntpdを構成し、さまざまなホストで統計を有効にして、独自の実験を行います。お気に入りの基準時計と比較して、それらがどのように機能するかを確認してください。

非常に正確な計時とVMには運用上の課題があります。ただし、これらは1桁の秒よりも桁違いに問題になる傾向があります。

3
John Mahowald