VirtualBox: Làm thế nào để đồng bộ hóa thời gian của máy chủ và khách?


39

Thời gian trong máy khách VM của tôi nhanh hơn thời gian lưu trữ khoảng 20-30 phút. Tôi có thể làm gì để thời gian trong khách giống như trên máy chủ?

Câu trả lời:


16

Đối với máy chủ Linux, trước tiên hãy cài đặt gói DKMS (Hỗ trợ mô-đun hạt nhân động) trên máy khách ( nguồn ):

$ sudo apt-get install dkms

Sau đó cài đặt Guest Additions vào hệ thống của khách:

$ sudo apt-get install virtualbox-guest-additions

Ngoài ra, đây là mô tả của một số lệnh để điều chỉnh đồng bộ hóa thời gian VirtualBox .


3
Trên các bản phân phối gần đây, bạn sẽ thay đổi các gói đó cho virtualbox-guest-dkmsvirtualbox-guest-utils.
Yvan

aptlà một trình quản lý gói dành riêng cho các bản phân phối dựa trên Debian. Điều này sẽ không hoạt động trên các khách Linux khác.
Kyle Strand

33

Thiết lập sau đây cho phép khách của tôi duy trì thời gian chính xác trong vòng 1 giây từ máy chủ của tôi. Nó được thử nghiệm với máy chủ đang chạy VirtualBox 4.3.26 và khách đang chạy cùng phiên bản VirtualBox Guest Additions. Đối với VirtualBox 5.x, cho đến nay tôi chưa có nhu cầu thực hiện các thay đổi cấu hình này; thời gian đã tự động được đồng bộ hóa.

Tham khảo: https://www.virtualbox.org/manual/ch09.html#changetimesync


Trên máy chủ, liệt kê các VM để xác định tên của VM có liên quan.

$ VBoxManage list vms | awk '{print $1}'
"CentOS6"

Trên máy chủ, định cấu hình các tham số đồng bộ hóa thời gian cho khách bằng cách chạy các lệnh bên dưới. Đầu tiên thiết lập $VMNAMEvới giá trị thích hợp của nó. Nếu giá trị $VMNAMEchứa một khoảng trắng, tất nhiên nó sẽ được trích dẫn.

$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-interval" 10000
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust" 100
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore" 1
$ VBoxManage guestproperty set ${VMNAME} "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold" 1000

Các giá trị của các tham số thời gian ở trên đã bị giới hạn ở bội số 10. timesync-set-thresholdThay vào đó, có thể rất khó để đặt thành 10000, nhưng điều này có thể có nguy cơ thay đổi thời gian khá quyết liệt khi được kích hoạt và do đó có thể phá vỡ các ứng dụng.


Trên máy chủ, xem các giá trị liên quan được cập nhật cho khách. Đây có thể được xác nhận lại bất cứ lúc nào.

$ VBoxManage guestproperty enumerate ${VMNAME} | grep timesync | sort
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-interval, value: 10000, timestamp: 1402110397618554000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-min-adjust, value: 100, timestamp: 1402110777505446000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-on-restore, value: 1, timestamp: 1402110904964050000, flags:
Name: /VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold, value: 1000, timestamp: 1402110660162295000, flags:

Trên máy khách, dừng và vô hiệu hóa tất cả NTP nội bộ và các dịch vụ chấm công liên quan. Chúng không nên được sử dụng vì chúng có khả năng can thiệp vào VirtualBox. Trên một khách CentOS 6:

$ sudo /sbin/chkconfig ntpd off
$ /sbin/chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off

Trên khách, khởi động lại dịch vụ có tên vboxadd-service. Giả sử bổ sung khách đã được cài đặt trước đó, dịch vụ này sẽ được cài đặt và kích hoạt. Trên một khách CentOS 6:

$ /sbin/service vboxadd-service status
Checking for VBoxService ...running
$ sudo /sbin/service vboxadd-service restart
Stopping VirtualBox Guest Addition service                 [  OK  ]
Starting VirtualBox Guest Addition service                 [  OK  ]
$ /sbin/service vboxadd-service status
Checking for VBoxService ...running

Nếu thời gian của khách chưa được đồng bộ hóa, hãy khởi động lại khách.


Cảm ơn! Bước cuối cùng của việc khởi động lại vboxadd-servicedịch vụ là những gì giúp tôi làm việc và dường như không được ghi lại (ít nhất là tại liên kết bạn đưa ra).
j_random_hacker

Khi tôi thử điều này trên máy khách CentOS 7, dịch vụ vboxadd không được tìm thấy? Đây là một cài đặt tối thiểu, không có GUI.
Br.Bill

1

Tôi đưa ra một giải pháp khác để đồng bộ hóa thời gian giữa khách và máy chủ mà không cần cài đặt thêm khách Virtualbox:

  1. Cài đặt NTP cho khách của bạn và bỏ bình luận những dòng này /etc/ntp.conf.
disable auth
broadcastclient
  1. Kích hoạt phát trên máy chủ của bạn. Đối với người dùng linux, chỉnh sửa /etc/ntp.conftệp của bạn và định cấu hình dòng
broadcast 192.168.123.255 

Đối với người dùng Windows, hãy kích hoạt dịch vụ Thời gian Windows của Windows. Sau đó, bạn có thể đọc trang này để định cấu hình thời gian phát sóng


1
Điều gì có ý nghĩa về địa chỉ IP 192.168.123.255?
Br.Bill
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.