Làm cách nào để đồng bộ hóa thời gian trên các máy ảo ESXi Windows trong vòng một giây?


12

Tôi là nhà phát triển và chúng tôi đang sử dụng Quartz.Net, thư viện lập lịch được sử dụng rộng rãi với kho lưu trữ sao lưu SQL để chạy cụm máy chủ công việc (VM trên cụm ESXI).

Quartz.Net yêu cầu thời gian sẽ được đồng bộ hóa giữa các phiên bản máy chủ công việc và khuyến nghị sử dụng NTP cho nó.

Các đồng hồ phải trong vòng một giây của nhau.

Sysadins của chúng tôi sử dụng windows NTP để đồng bộ hóa thời gian với bộ điều khiển miền. Đồng bộ hóa máy ảo với máy chủ ESXI bị tắt.

Họ luôn khẳng định rằng "trong vòng hai giây" không phải là yêu cầu chính xác và không thể đáp ứng được với các thiết bị đồng bộ hóa phần cứng GPS. SLA và mức độ giám sát của họ là "trong vòng 3 phút".

Chúng tôi đang trải qua các hành vi không đồng bộ định kỳ (một lần trong 2-3 tháng) thạch anh không đồng bộ hóa với thời gian không đồng bộ.

  1. Có đúng không khi chúng tôi yêu cầu "trong vòng hai giây" hoặc chúng tôi cần bỏ hoàn toàn Quartz?
  2. Nếu có, những thay đổi nào được khuyến nghị cho thiết lập của chúng tôi?

11
Đồng bộ hóa trong một giây là không có gì , ngay cả trên các máy chủ ảo (vốn nổi tiếng là kém ổn định thời gian). Ba phút?! Cười. Bạn không thể chạy một mạng theo cách đó.
Cuộc đua nhẹ nhàng với Monica

Câu trả lời:


20

Đây là năm 2018. Windows có khả năng giữ cho các máy chủ được đồng bộ hóa trong vòng 2 ms hoặc lâu hơn, theo yêu cầu của Quy định MIFID II. Vì vậy, vấn đề của bạn là một vấn đề không.

Sysadins của chúng tôi sử dụng windows NTP để đồng bộ hóa thời gian với bộ điều khiển miền. Đồng bộ hóa máy ảo với máy chủ ESXI bị tắt.

Tại sao? Máy chủ có thể xử lý việc này tốt hơn rất nhiều (là phần cứng) và bạn có ít hơn rất nhiều. Sysadmin của bạn tự bắn vào chân mình, sau đó phàn nàn rằng họ đang chảy máu.

Họ luôn khẳng định rằng "trong vòng hai giây" không phải là yêu cầu chính xác và không thể đáp ứng được với các thiết bị đồng bộ hóa phần cứng GPS. SLA và mức độ giám sát của họ là "trong vòng 3 phút".

OLD - cổ đại - Windows được đồng bộ hóa trong khung thời gian đó vì vé Kerberos có giá trị 5 phút.

Nhưng đây là, như tôi đã nói, năm 2018. Ngành công nghiệp tài chính có những yêu cầu khá tàn bạo những ngày này và MS đã xử lý điều đó cho - kể từ năm 2012, tôi nghĩ vậy. Năm 2016 đưa nó vào hiệu lực đầy đủ. Độ chính xác đến một phần nghìn giây qua internet là một vấn đề được giải quyết - thực sự đã được giải quyết 50 năm trước, cho một kết nối tốt. NTP có thể xử lý nó. Bạn có thể phải đưa ra một hộp phần cứng giá rẻ nếu bạn muốn cắt giảm lưu lượng (tức là tạo nguồn thời gian NTP cấp 3 của riêng bạn), nhưng điều đó một lần nữa thậm chí không tốn kém.

Có đúng không khi chúng tôi yêu cầu "trong vòng hai giây" hoặc chúng tôi cần bỏ hoàn toàn Quartz?

Bạn cần lập trình cho các vấn đề thời gian không thường xuyên - như bạn sẽ làm với phần cứng. Nhưng "trong vòng một giây" là một trò đùa của một yêu cầu - thật là tầm thường khi gặp trong những trường hợp bình thường.

Một số tài liệu tham khảo:

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accur-time

Các quy định của chính phủ như: độ chính xác 50 ms đối với FINRA ở Hoa Kỳ 1 ms ESMA (MiFID II) tại EU.

Rất nhiều chi tiết và hướng dẫn ở đó. Đây là một bài đọc tuyệt vời thực sự nếu bạn phải giải quyết vấn đề này. Bạn có thể phải nâng cấp máy ảo hóa của mình - họ nói tất cả về Hyper-V. VMWare có thể làm tương tự, nhưng không chắc phiên bản của bạn bao nhiêu tuổi.


Sự tuân thủ của FWIW, MiFID II trong ngành tài chính [Anh] rất kém (các ngân hàng thà trả tiền phạt nhanh hơn là bận tâm với tất cả những điều đó) nhưng tất nhiên bạn đúng về mặt kỹ thuật.
Cuộc đua nhẹ nhàng với Monica

Đây không phải là về sự tuân thủ, đó là về sự TUYỆT VỜI để tuân thủ. MS đã giải quyết điều đó từ lâu. Như vậy, "3 phút chính xác" mà OP nói về trò đùa khu vực.
TomTom

Tôi đồng ý; đây chỉ là một bên
Cuộc đua nhẹ nhàng với Monica

2
Tôi với bạn rằng NTP là quá đủ nhanh, nhưng VMware không khuyên bạn nên sử dụng các dịch vụ tích hợp để đồng bộ hóa thời gian, trong hầu hết (không phải tất cả) các trường hợp NTP thông thường thực hiện công việc tốt hơn và nhanh hơn.
HoD

Vì mối quan tâm của bạn là thời gian tương đối giữa các máy chủ, bạn có thể sử dụng NTP để đồng bộ hóa chúng với các bộ chuyển mạch mạng, lần lượt đồng bộ hóa với ISP của bạn - không cần thêm phần cứng.
grahamj42

6

Có đúng không khi chúng tôi yêu cầu "trong vòng hai giây" hoặc chúng tôi cần bỏ hoàn toàn Quartz?

Có rất nhiều lý do rất chính đáng để các ngăn xếp ứng dụng khác nhau cần kiểm soát thời gian chặt chẽ và những gì Quartz yêu cầu là không bình thường.

Nếu có, những thay đổi nào được khuyến nghị cho thiết lập của chúng tôi?

Đặt cược tốt nhất là làm cho mọi bộ phận trong hệ thống của bạn sử dụng NTP và trỏ chúng đến cùng một cặp máy chủ NTP. Vì vậy, máy chủ ESXi và máy ảo chạy trên chúng, tất cả đều sử dụng cùng một nguồn NTP, giống nhau cho mọi thứ khác có liên quan. Theo cách này, ngay cả khi các máy chủ NTP 'hết giờ' thì ít nhất mọi bộ phận trong hệ thống của bạn đều được cập nhật với nhau.


4

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-ienary

Hỗ trợ độ chính xác cao cho Windows 8.1 và 2012 R2 (hoặc Ưu tiên)

Các phiên bản trước của Windows (Trước Windows 10 1607 hoặc Windows Server 2016 1607) không thể đảm bảo thời gian chính xác cao. Dịch vụ Windows Time trên các hệ thống này:

  • Cung cấp độ chính xác về thời gian cần thiết để đáp ứng các yêu cầu xác thực của Kerberos phiên bản 5

  • Cung cấp thời gian chính xác một cách lỏng lẻo cho các máy khách và máy chủ Windows được tham gia vào một khu rừng Active Directory chung

Các yêu cầu chính xác chặt chẽ hơn nằm ngoài đặc tả thiết kế của Windows Time Service trên các hệ điều hành này và không được hỗ trợ.

Windows 10 và Windows Server 2016

Độ chính xác về thời gian trong Windows 10 và Windows Server 2016 đã được cải thiện đáng kể, trong khi vẫn duy trì khả năng tương thích NTP ngược hoàn toàn với các phiên bản Windows cũ hơn. Trong điều kiện hoạt động phù hợp, các hệ thống chạy Windows 10 hoặc Windows Server 2016 và các bản phát hành mới hơn có thể cung cấp độ chính xác 1 giây, 50ms (mili giây) hoặc 1ms.

Độ chính xác mục tiêu: 1 giây (1 giây)

Để đạt được độ chính xác 1s cho một máy mục tiêu cụ thể khi so sánh với nguồn thời gian có độ chính xác cao:

  • Hệ thống đích phải chạy Windows 10, Windows Server 2016.

  • Hệ thống đích phải đồng bộ hóa thời gian từ hệ thống phân cấp NTP của máy chủ thời gian, đạt đến đỉnh cao trong nguồn thời gian NTP tương thích với độ chính xác cao của Windows.

  • Tất cả các hệ điều hành Windows trong hệ thống phân cấp NTP được đề cập ở trên phải được định cấu hình như tài liệu trong tài liệu Cấu hình hệ thống cho độ chính xác cao.

  • Độ trễ mạng một chiều tích lũy giữa mục tiêu và nguồn không được vượt quá 100ms. Độ trễ mạng tích lũy được đo bằng cách thêm độ trễ một chiều riêng lẻ giữa các cặp nút máy khách-máy chủ NTP trong cấu trúc phân cấp bắt đầu bằng đích và kết thúc tại nguồn. Để biết thêm thông tin, vui lòng xem lại tài liệu đồng bộ hóa thời gian chính xác cao.

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy


Trên thực tế, chúng tôi đang sử dụng Windows 2012R2. Có vẻ đó là gốc rễ của vấn đề (cùng với việc không đồng bộ hóa với máy chủ ESXI)
Leotsarev

1
@Leotsarev: nếu đây là thành viên tên miền, họ không nên đồng bộ hóa với máy chủ VM.
Greg Askew
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.