http://www./blog/?p=66
openstack各個節點時鐘同步,是安裝的時候,重要步驟。我們所有服務器,在自動安裝的時候,在腳本里都設置了自動同步,因為日志、計費等等,都會與時間有關。
一些概念:
1、硬件時鐘(也叫BIOS時鐘、CMOS時鐘)
和CPU和系統無關的,單獨由一個電池和晶振運行的時鐘,即使關機也會走。
硬件時鐘只有當系統啟動的時候才會讀取。
2、系統時間
Linux內核啟動以后的時間,保持一個時間中斷,用1970年1月1日00:00:00開始的秒數計數。這是我們平時看到時間。
3、時區
在某個時刻,世界各地的人,看到的時間都不同的。比如你同樣適用gmail,大陸的人看到是 20:00,北美的人,可能是07:00.時刻還是一樣的,但是由于時區不同,看到的時間顯示就不同。
同樣,我們機器里,可以系統時間一樣的,但是不同的用戶,可以設置不同的時區,看到的時間也不同。當然,系統本身有一個缺省時區。
在Redhat或者CentOS下,是使用 /etc/sysconfig/clock里的 ZONE="Asia/Shanghai" 選項配置的
4、UTC/GMT還是本地時間
系統啟動的時候,使用/sbin/hwclock
從硬件時鐘讀取時間,關機的時候,會回寫硬件時鐘。
這里就有一個問題,讀取和回寫的時候,采用什么標準,是UTC還是本地時間?
一般情況下,都使用UTC/GMT,這樣可以自動處理夏令時間(中國地方太大,已經作廢)。
使用UTC的唯一壞處,是當你的計算機是多系統時,如果啟動Windows,會導致時間不對。
5、時間同步
一般使用 ntp 協議進行同步,可以保持毫秒級的時差。
配置:
1、設置時區和是否UTC
1.1 Redhat或者CentOS下,一個配置文件
/etc/sysconfig/clock
ZONE=”Asia/Shanghai”
UTC=true
ARC=false
1.2 debian/ubuntu,有兩個配置文件:
/etc/timezone
Asia/Shanghai
/etc/default/rcS
# assume that the BIOS clock is set to UTC time (recommended)
UTC=yes
1.3 設置用戶個人的時區
可以使用環境變量 TZ, 比如,設置中國的東八區:
export TZ=PRC
變量的值,參見:
/usr/share/zoneinfo 目錄
2、設置時鐘同步
2.1 Redhat或者CentOS下
yum -y
install
ntpdate ntp
chkconfig ntpdate on
2.2 debian/ubuntu
apt-get
install
-y ntpdate ntp
2.3 注意,如果系統時鐘和標準原子時鐘相差很大,ntp不會同步,第一次的時候,需要使用 ntpdate 進行手工同步一下:
ntpdate time.nist.gov
2.4 兩個重要的ntp服務器
中國國家授時中心:
210.72.145.44
美國 nist 授時中心:
time.nist.gov
參考:
man clock