So sánh NTPD và ntpdate


23

Những ưu và nhược điểm giữa hai cách này để đồng bộ hóa máy chủ của bạn là gì?

Dường như với tôi rằng máy chủ của bạn có thể sẽ không trôi quá 1 giây mỗi ngày, vì vậy ntpdate trên một crontab sẽ ổn. Nhưng tôi nghe nói bạn có thể sử dụng máy chủ NTP dự phòng ở đây

http://www.pool.ntp.org/en/use.html

để duy trì thời gian đồng bộ trong trường hợp thất bại.

Bạn có đề nghị nào không?

Câu trả lời:


26

Thuật toán NTP bao gồm thông tin để cho phép bạn tính toán và sửa lỗi trôi trong đồng hồ máy chủ của bạn. NTPD bao gồm khả năng sử dụng điều này để giữ cho đồng hồ của bạn được đồng bộ hóa và sẽ chạy chính xác hơn so với đồng hồ trên máy tính không chạy NTPD. NTPD cũng sẽ sử dụng một số máy chủ để cải thiện độ chính xác.

ntpdate không giữ bất kỳ trạng thái nào để thực hiện dịch vụ này cho bạn nên sẽ không cung cấp cùng loại chính xác. Nó sẽ cho phép bạn cung cấp cho nó một danh sách các máy chủ mà nó sẽ sử dụng để cố gắng cung cấp cho bạn một kết quả tốt hơn nhưng điều này không thể thay thế cho các thuật toán tinh vi được cung cấp trong NTPD theo dõi sự trôi dạt của bạn từ mỗi máy chủ theo thời gian.

NTPDATE sửa thời gian hệ thống ngay lập tức, điều này có thể gây ra sự cố với một số phần mềm (ví dụ: phá hủy một phiên hiện đã cũ). NTPD cố tình sửa thời gian hệ thống từ từ, tránh vấn đề đó. Bạn có thể thêm công tắc -g khi khởi động NTPD để cho phép NTPD thực hiện lần đầu tiên cập nhật một công cụ lớn tương đương với việc chạy ntpdate một lần trước khi bắt đầu NTPD, một lần được khuyến nghị thực hành.

Đối với các vấn đề bảo mật, máy chủ ntp không kết nối lại với các kết nối không được chấp nhận, điều đó có nghĩa là tường lửa của bạn sẽ có thể cho biết rằng bạn đã bắt đầu yêu cầu ntp và cho phép lưu lượng truy cập trở lại. Không cần phải để các cổng mở cho các kết nối tùy ý để NTPD hoạt động.

Từ trang người đàn ông ntpdate (8):

ntpdate có thể được chạy thủ công khi cần thiết để đặt đồng hồ máy chủ hoặc có thể chạy từ tập lệnh khởi động máy chủ để đặt đồng hồ khi khởi động. Điều này hữu ích trong một số trường hợp để đặt đồng hồ ban đầu trước khi bắt đầu ntpd NTP daemon. Cũng có thể chạy ntpdate từ tập lệnh cron. Tuy nhiên, điều quan trọng cần lưu ý là ntpdate với các tập lệnh cron bị chiếm đoạt không thể thay thế cho trình nền NTP, sử dụng các thuật toán tinh vi để tối đa hóa độ chính xác và độ tin cậy trong khi giảm thiểu sử dụng tài nguyên. Cuối cùng, vì ntpdate không kỷ luật tần số xung nhịp của máy chủ như ntpd, nên độ chính xác khi sử dụng ntpdate bị hạn chế.


Tốt hơn so với sử dụng ntpdate trước khi bắt đầu ntpd: chỉ cần sử dụng -g!
Alex J

8

ntpd được ưa thích hơn ntpdate vì bạn có được hiệu chỉnh thời gian trơn tru hơn là nhảy trong đồng hồ. Bạn có ý nghĩa gì với các bản ghi của bạn khi có một thời gian nhảy ngược trong chúng? ntpdate cũng sẽ chuyển đổi trong suốt giữa các máy chủ khi cần thiết.

Đối với việc yêu cầu các cổng mở (như được đề cập bởi Kyle), các phiên bản mới hơn của ntpd (ví dụ 4.2.4 trên máy chủ Debian của tôi) có thể được định cấu hình để phát / phát đa hướng tới mạng LAN, với xác thực bằng mật mã.

Chỉnh sửa: xem thêm câu hỏi này .


5

Tôi thường khuyên bạn nên chạy NTPD và đồng bộ hóa máy chủ của mình với máy chủ thời gian được chỉ định trong tổ chức của bạn. Máy chủ nội bộ đó thường sẽ được đồng bộ hóa với một trong các máy chủ NTP công cộng (như bạn đã liên kết với).

Tôi đã sử dụng phương thức ntpdate mà không gặp vấn đề gì, nhưng nó chỉ có vẻ hack hơn là chạy một daemon ntpd thực sự.


3

Tôi đã nghe nói về các vấn đề với đồng hồ lệch trên các máy ảo chạy ntpd. Tôi cũng đã nghe nói về việc mọi người sửa lỗi này bằng cách chạy các công việc định kỳ thông thường gọi ntpdate đối với một số máy chủ nhóm. Tôi đã không có những vấn đề này, nhưng tôi đã nghe về chúng nhiều lần.


1
Họ sẽ muốn chạy một kernel tickless trên VM
goo

1
Phần mềm công cụ VMware trên máy ảo ESX đảm nhiệm việc đồng bộ hóa thời gian, vì vậy đừng sử dụng ntpd trên máy ảo với công cụ VMware. Thay vào đó, thiết lập NTPD trên máy chủ và để các công cụ VMware làm phần còn lại.
dunxd

3

Như đã đề cập ở nơi khác, NTP cung cấp một sự điều chỉnh thời gian trơn tru. Nếu các ứng dụng trên máy chủ của bạn không bị mất toàn bộ giây hoặc làm lại cùng một giây, thì ntpd sẽ không giúp bạn kiếm được nhiều hơn ntpdate.

Mặt khác, nếu bạn có các ứng dụng nhạy cảm với thời gian nhạy cảm với giây hoặc thậm chí tệ hơn là nhạy cảm với một phần giây, thì ntpd cho đến nay là sự lựa chọn tốt hơn. Cập nhật dấu thời gian của Novell eDirectory để xử lý va chạm cập nhật, điều này trở nên quan trọng nếu các bản cập nhật đến rất nhanh (chẳng hạn như trong thời gian đăng nhập vào buổi sáng). Một máy chủ nhật ký hệ thống cần có thời gian chính xác đến ít nhất là nửa giây để giữ nhật ký lành mạnh.

Đối với hộp MythTV của tôi ở nhà, tôi nhận thấy khi nó chỉ còn vài giây so với những gì nhà cung cấp cáp của tôi coi là thời gian, vì vậy tôi sử dụng NTP cho điều đó. Đối với máy chủ giám sát UPS tại nơi làm việc, tôi sử dụng crontabbed ntpdate vì những lý do tương tự Kyle Hodgson đã chỉ ra, vì đây là máy chủ pháo đài mà tôi không muốn cổng đó mở ngay cả khi tôi đã khóa ứng dụng; cho ứng dụng đó là một thứ hai của sự thật không phải là khủng khiếp.

Đối với dự phòng, chúng tôi duy trì ít nhất hai máy chủ thời gian trên mạng của chúng tôi và trỏ tất cả các máy chủ nội bộ của chúng tôi đến hai máy chủ đó. Hai người này sau đó theo dõi các máy chủ NTP internet khác nhau. Hơn nữa, chúng được cấu hình theo cách sắp xếp ngang hàng để chúng có thể giữ thời gian giữa chúng theo kiểu đồng thuận nếu liên kết internet của chúng tôi bị hỏng. NTP mạnh mẽ là chắc chắn có thể kỹ sư.


1

Trên một máy chủ nơi truy cập và làm cứng là rất quan trọng, tôi đã sử dụng lý do rằng xntpd, phiên bản của ntpd mà tôi đang dựa vào, yêu cầu một cổng UDP mở 123. Vì tôi thích chỉ mở tcp 22 và 80, tôi đã sử dụng ntpdate trong một crontab thay thế. Tôi chưa bao giờ nghe một lý do chính đáng cho lý do tại sao nó cần điều đó, hoặc không phải là một lý do mà tôi nhớ lại.

Một trong những nhược điểm của việc sử dụng lệnh gọi ntpdate của crontab là nó không thể xử lý hiệu chỉnh trôi dạt một cách thanh lịch. ntpdate, iirc, cập nhật đồng hồ ngay khi nó có thể cho biết bạn đã hết hạn - ntp daemon thường sửa lỗi trôi nhẹ nhàng. Điều này có lợi ích là các bản ghi của bạn được giữ lành mạnh - chẳng hạn, bạn có thể tưởng tượng, trên một máy chủ web bận rộn, rằng nếu RTC trôi đi vài phút, thì việc đọc nhật ký web vào ngày hôm sau có thể suy ra rằng mọi người có thể truy cập an toàn URL trước khi họ đăng nhập, vì các lần truy cập web sẽ bị lỗi.


1

ntpdate dành cho các bản cập nhật một lần, nếu bạn muốn thời gian được đồng bộ hóa thường xuyên, thì hãy sử dụng dịch vụ cho mục đích đó, ntpd.

Không có lý do thuyết phục nào để không sử dụng ntpd như tôi có thể nói


0

Bạn không cần sử dụng crontab, đó là những gì ntpd dành cho.

Ban đầu khi thời gian của bạn đã hết, một cách đơn giản là dừng ntpd, sau đó chạy ntpdate ntp.server.comđể lấy lại đồng bộ, sau đó bắt đầu lại ntp.

Nếu bạn có một mạng lớn, có lẽ tôi đã thiết lập một vài máy chủ ntp cục bộ và nhận tất cả các máy chủ để sử dụng chúng.


0

Xem cuộc thảo luận này để hiểu lý do tại sao "ntpdate" vẫn được mong muốn và sử dụng.

Tóm lại: ntpd chậm so với khi thực hiện điều chỉnh thời gian lớn, ngay cả với tùy chọn -g.


-3

Đối với sử dụng tại nhà, ntpdate thực sự không phải là vấn đề lớn .. Có một lý do là nó "chậm hơn". Bất cứ ai sử dụng cron với ntpdate trong môi trường DOANH NGHIỆP SẢN XUẤT chỉ là một thằng ngốc.


2
Có công dụng. Chẳng hạn như một máy chủ có nhu cầu có các cổng mở tối thiểu với bất kỳ loại yêu cầu nào và độ phân giải thời gian là +/- 1000ms hoặc hơn, cron + ntpdate là một cách hoàn toàn hợp lệ để duy trì đồng bộ hóa thời gian.
sysadmin1138
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.