Một thực tế đơn giản là độ chính xác của đồng hồ trong VM vẫn còn rất tệ. Điều này xuất phát từ một vài điểm, nhưng điều giết người là thời gian trôi không đổi; yếu tố trôi thay đổi từ khoảnh khắc này sang khoảnh khắc khác. NTP là một giao thức có bù đồng hồ được xây dựng bên trong nó, nhưng nó được thiết kế với hệ số trôi tĩnh được tích hợp. Ví dụ, nếu một máy vật lý mất 12 giây cứ sau 30 ngày, NTP có thể bù cho điều đó và làm rất tốt. Nhưng nếu máy đó có thể mất bất cứ nơi nào từ 4 đến 70 giây cứ sau 30 ngày, NTP sẽ không tốt trong việc theo dõi mức độ thay đổi đó.
Điều khiến NTP thực sự khó theo kịp trong môi trường VM là đồng hồ cục bộ mà nó nhìn thấy có thể thay đổi hệ số trôi của nó trong vòng một phút. Tùy thuộc vào tần suất mà nó đang kiểm tra các nguồn thời gian gốc của nó, nó có thể gây ra những thay đổi lớn về yếu tố trôi dạt và khiến nó không đồng bộ thường xuyên hơn. Dòng thời gian không đồng bộ trong toàn bộ tổ chức của bạn.
NTP cho mạng cục bộ là một giao thức tác động tương đối thấp với dung lượng bộ nhớ rất nhỏ và có thể vui vẻ cõng trên các máy chủ cơ sở hạ tầng mạng khác như máy chủ DNS và DHCP của bạn. Một số bộ định tuyến cũng có thể cung cấp chức năng NTP, vì vậy bạn có thể muốn xem xét điều đó.
Lý tưởng nhất là bạn muốn hai máy chủ riêng biệt ở các vị trí riêng biệt, mỗi máy chủ đồng bộ với một nhóm máy chủ phân tầng cao hơn khác nhau. Nó cũng là một ý tưởng rất hay của cả hai máy chủ thời gian được cấu hình để sử dụng máy chủ khác như một 'máy ngang hàng', điều này sẽ giảm thiểu tác động đến dịch vụ thời gian khi một trong những nguồn thời gian ngược dòng bị trục trặc; sẽ có một sự thay đổi địa tầng nhưng ít nhất nó sẽ không báo cáo không đồng bộ. Và cuối cùng, hãy đối xử tốt với các nhà cung cấp thời gian ngược dòng của bạn và định cấu hình máy chủ của bạn để thực hiện một thời gian rất dài giữa các cuộc thăm dò một khi thời gian được thiết lập tốt. Đây là tham số 'maxpoll' trên dòng 'máy chủ' và có sức mạnh hai giây trong các lần thử đồng bộ hóa.
Nếu bạn hoàn toàn phải sử dụng máy ảo cho việc này, tôi sẽ thiết lập không dưới ba máy chủ NTP như vậy. Mỗi trong số chúng cần phải ở trên một máy chủ khác nhau và nếu có thể trong một trung tâm dữ liệu khác nhau. Như với những gì tôi vừa đề xuất, họ cần các nguồn thời gian khác nhau và nên ngang hàng với nhau. Sau đó định cấu hình tất cả các máy khách NTP của bạn để sử dụng cả ba làm nguồn gốc. Đảm bảo giá trị maxpoll của bạn đủ thấp để không bao giờ vượt quá một giờ rưỡi giữa các gói đồng bộ hóa ngoài mạng và 30 phút trên mạng. Rất có thể ít nhất một trong ba sẽ đồng bộ hóa tại bất kỳ thời điểm nào. Đối với các khách hàng chỉ có thể nói chuyện với một máy chủ lưu trữ thời gian, họ sẽ chỉ phải đưa ra sự kiện không đồng bộ thường xuyên. Nhìn chung, chất lượng thời gian trong kịch bản này sẽ không chính xác như với các máy chủ vật lý.
Nếu tôi phải đến công viên bóng, tôi sẽ nói rằng thời gian đồng thuận của bạn trong môi trường VM thuần có lẽ sẽ ở trong, ồ, 30 đến 100ms là đúng. Trong một môi trường hoàn toàn là vật lý, thời gian đồng thuận của bạn có thể sẽ trong vòng 10ms một khi các máy chủ thời gian đã đủ dài để có thời gian giải quyết.