Назад | Перейти на главную страницу

Сдвиг времени гостя KVM при перезагрузке хоста

Я установил сервер Ubuntu 12.04 в качестве узла KVM и создал гостевую систему Ubuntu, на которой также запущен сервер Ubuntu 12.04. Серверы находятся в часовом поясе AST, который составляет UTC + 3 часа. После правильной установки времени в гостях, использующих date -s Я могу перезагружать гостей сколько угодно, сохраняя правильное время между перезагрузками.

Если, однако, хост KVM перезагружается (у хоста нет проблем со временем между перезагрузками), то, как только я запускаю своих гостей KVM, все они отстают ровно на 3 часа от правильного времени. Приведенные ниже выходные данные показывают системное время и время аппаратных часов на хосте и гостевой системе.

root@kvmhost1:~# date
Wed Jan 16 14:10:38 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 02:10:40 PM AST  -0.187899 seconds

root@kvmguest1:~# date
Wed Jan 16 11:10:45 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 02:10:47 PM AST  -0.521226 seconds

После корректировки времени для гостей их можно будет перезагрузить без неправильного переключения времени.

Вещи, которые я пробовал / тестировал

Обновить

Я установил аппаратные часы на местное время, используя --localtime вариант на hwclock команда. Та же проблема все еще сохраняется. Вывод немного яснее, потому что программные и аппаратные часы установлены на одно и то же время.

root@kvmhost1:~# date
Wed Jan 16 15:50:26 AST 2013
root@kvmhost1:~# hwclock 
Wed 16 Jan 2013 03:50:29 PM AST  -0.750378 seconds

root@kvmguest1:~# date
Wed Jan 16 12:50:29 AST 2013
root@kvmguest1:~# hwclock 
Wed 16 Jan 2013 12:50:31 PM AST  -0.849677 seconds

Решение

Ответ Майкла Хэмптона ниже решил проблему. Гость был создан с помощью файла кикстарта, который по умолчанию не устанавливает аппаратные часы на время UTC. Я добавил параметр --utc в параметр часового пояса кикстарта, и он решил эту проблему. Вариант кикстарта теперь выглядит следующим образом:

timezone --utc Asia/Bahrain

Похоже, вы каким-то образом установили гостя таким образом, что он считает, что аппаратные часы показывают местное время. Гости KVM всегда должны учитывать свои аппаратные часы по времени UTC, если они не являются гостями Windows (но даже они могут быть настроены на аппаратные часы UTC) ...

Отредактируйте /etc/default/rcS файл и изменить UTC=no к UTC=yes. Затем сбросьте гостевые часы.