Làm cách nào để đồng bộ hóa chính xác thời gian trong linux chạy với tư cách là khách ảo sau khi máy chủ tiếp tục hoạt động từ chế độ ngủ đông?


19

Tôi sử dụng nhiều hộp ảo để phát triển và ngày giờ chính xác rất quan trọng đối với tôi khi tôi đẩy git cam kết. Tôi không tắt máy chủ của mình - nó chạy trong nhiều tháng mà không khởi động lại. Tôi chỉ ngủ đông cho đêm và cuối tuần. Điều này giới thiệu vấn đề kỳ lạ đối với các hệ điều hành khách của tôi (tất cả các nhà tranh luận từ Turnkeylinux.org) - sau một thời gian, ngày hệ điều hành khách bị tắt vài ngày.

Mặc dù tất cả khách sử dụng NTP nhưng nó không hoạt động nếu phát hiện ngày đó bị tắt bởi một số giá trị lớn (vài giờ dường như là đủ). Có cách nào để buộc đồng bộ hóa NTP ngay cả đối với chênh lệch thời gian lớn không? Hoặc bất kỳ giải pháp nào khác sẽ khôi phục lại ngày giờ chính xác trên các hộp của khách sau khi máy chủ tiếp tục ngủ đông?


1
Xem câu trả lời này để biết chi tiết - về cơ bản, các bổ sung dành cho khách cung cấp cho đồng bộ hóa đồng hồ trực tiếp mà không cần NTP: superuser.com/questions/463106/
mẹo

Câu trả lời:


17

Tóm lại: Cài đặt (gói ntp và) Bổ sung khách VirtualBox :)

  • Máy chủ: Windows 6.1 SP1, x64, 3GB
  • VirtualBox: v4.3.6
  • Khách: Debian 7.3, 32 bit, 768 KB

Từ VirtualBox, đính kèm tệp Oracle\VirtualBox\VBoxGuestAdditions.isovào hệ thống khách (Cài đặt / Lưu trữ) và với quyền root

cd /media/cdrom0
sh ./VBoxLinuxAdditions.run

Trợ giúp VirtualBox ở "9.4. Cấu hình nâng cao cho khách Linux và Solaris" mô tả các bước nhưng trước tiên tôi phải cài đặt gói linux-headers-3.2.0-4-486.
Sau đó, là gốc,

/usr/lib/VBoxGuestAdditions/vboxadd setup
/usr/lib/VBoxGuestAdditions/vboxadd-service setup
/usr/lib/VBoxGuestAdditions/vboxadd setup

Sau đó, khởi động lại khách.

Tôi đã kiểm tra bằng cách thoát khỏi hệ thống khách ( Alt+ F4, sau đó ra lệnh VirtualBox để lưu trạng thái của khách), đợi 5 phút, sau đó khởi động lại hệ thống khách
Lúc đầu, đồng hồ đã được khôi phục từ giá trị trước đó, nhưng sau vài giây tất cả đều ổn (đồng bộ hóa)


Thực tế, đó là những gì tôi đã làm :) Tôi không có thời gian để đăng câu trả lời, vì vậy tín dụng sẽ đến với bạn.
SiliconMind

NTP không bắt buộc đối với đồng bộ hóa bổ sung đồng hồ của khách - nó được thực hiện bởi trình nền bổ sung khách (VBoxService).
pierz

2
Tại sao bạn đề nghị lặp lại lệnh đầu tiên hai lần? Điều đó có thực sự cần thiết?
RDP

@RDP <quote> Có thực sự cần phải lặp lại lệnh đầu tiên hai lần không? </ Quote> Tôi không nhớ và tài liệu đã thay đổi, xem [ virtualbox.org/manual/ch09.html#idm7495]
Pierre

Bạn phải cài đặt gcc và thực hiện, quá. Không có chúng biểu hiện như một lỗi khi bắt đầu dịch vụ vboxadd. Nhưng bạn không nhận được đề xuất hữu ích để cài đặt các gói đó trừ khi bạn chạy vboxadd một cách rõ ràng - VBoxLinuxAdditions.run không để lộ nó.
Harry Tsai

1

Máy chủ NTP không được thiết kế để chạy bên trong máy ảo. Nó đòi hỏi một đồng hồ hệ thống độ phân giải cao, với thời gian đáp ứng với các ngắt đồng hồ được phục vụ với độ chính xác cao. NTP client có thể chạy trong một số giải pháp ảo hóa. Chạy NTP trên hệ điều hành cơ bản của máy và sau đó các hệ điều hành khách khác nhau của bạn tận dụng đồng hồ tốt được tạo trên hệ thống. Thậm chí điều đó có thể không đủ, vì có thể có thêm các công cụ hoặc tùy chọn kernel mà bạn cần kích hoạt để máy khách ảo có thể đồng bộ hóa đầy đủ đồng hồ ảo của chúng với đồng hồ hệ thống vật lý.

Nguồn: Hỗ trợ các vấn đề đã biết của NTP

Từ tuyên bố đó và đọc rằng phần quan trọng của bạn là git commit lần, thì việc viết một hook hook trước để thu thập thời gian từ máy chủ của bạn là điều không quan trọng và bạn có thể nhận được điều đó chỉ bằng cách hỏi máy chủ của bạn:

ssh hostmachine "date +%Y%m%d%H%M%s"


Cảm ơn nhưng đó không hoàn toàn là một câu trả lời :) Tôi đang sử dụng VirtualBox và không có tùy chọn nào để đồng bộ hóa thời gian. Vậy nếu không phải NTP thì sao?
SiliconMind 17/12/13

Xin lỗi, tôi đã thực hiện bước nhảy vọt ... nhưng bây giờ với một chỉnh sửa đã làm rõ suy nghĩ của tôi.
vgoff
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.