問題現(xiàn)象
- 客戶的服務器已部署好平臺,放入了機房,運行正常。服務器系統(tǒng)時間設置東八區(qū)(
CST
),時間日期也已修改正確 - 客戶是我省的某小縣城,某臺晚上,他們大樓停電斷電了,包括機房(就幾臺機器,沒做應急電源)
- 等來電后,服務器重啟,我們的平臺也通過開機自啟動運行的腳本,正確完成了重啟,但訪問平臺時發(fā)現(xiàn)日期時間不對
- 當?shù)鼐S護人員,手動修改了時間(裝的是有界面的
CentOS
系統(tǒng)),重啟了我們平臺(修改日期時間后,部署在docker
服務要重啟,時間才會跟著改對),然后將問題反饋給了我 - 因為他們當?shù)責o法避免再次的斷電情況,不能每次都手動修改配置
排查與解決
- 和維護人員溝通了下,問他時間不對,是什么情況,是快了還是慢了,但是遺憾的是他記不清了
- 如果時間是為
1990年1月1日
或2000年1月1日
,應該是時鐘固件電池沒電了,還是要根據(jù)具體的時間來排查 - 今天中午,讓他再次模擬下斷電現(xiàn)象(去機房把服務器關機,然后拔掉電源線,等一會再開機),協(xié)助排查問題
- 首先使用
timedatectl
命令查看系統(tǒng)時間,發(fā)現(xiàn)時區(qū)設置是對的,時間則剛好差8小時,實際應該是2023-05-23 13:55:51
- 先手動將時間設置正確(使用
date -s
或timedatectl set-time
),再繼續(xù)排查
date -s "2023-05-23 13:56:00"
timedatectl set-time "2023-05-23 13:56:00"
- 然后,輸入命令
hwclock --show
查看硬件時鐘時間,果然硬件時間不對,存儲的是+8
后的時間 - 最后,使用命令
hwclock --systohc
把系統(tǒng)時間寫入硬件,再使用命令hwclock --show
查看,發(fā)現(xiàn)已經生效 - 此時系統(tǒng)時間和硬件時間統(tǒng)一,顯示也都沒問題了,繼續(xù)斷電重啟一次,時間顯示正常,問題解決
- 一句話總結下,系統(tǒng)時間與硬件時間不一致,硬件時間存儲了
CST
時間(應該存儲UTC
),導致斷電重啟后增加了8小時。將系統(tǒng)時間同步到硬件時間后,生效解決
時間同步與設置
- 系統(tǒng)時間誤差八小時,一般都是時區(qū)設置錯誤導致的,可以參考我這篇博客:【已解決】CentOS7等linux系統(tǒng)時區(qū)時間不對顯示誤差8小時
- 時區(qū)設置完成后,將時間設置正確。如果是聯(lián)網的機器,可以獲取網絡時間校時,再設置一個聯(lián)網自動校時
- 如果是內網或者局域網,看有沒有時間服務器,如果有一臺時間服務器,也可以設置下與時間服務器同步,參考我這篇博客:CentOS7.9設置ntp時間同步
- 如果無法連接互聯(lián)網,也沒有時間同步服務器,就只能依賴機器的時鐘固件了。服務器斷電后,服務內內置的
BIOS
芯片的小電池會繼續(xù)供電,繼續(xù)持續(xù)記錄時間(需要電池有電)。這次遇到的問題,一開始問了當?shù)剡\維是新機器,應該不會沒電。
服務器時鐘介紹
- 服務器時鐘通常是通過全球衛(wèi)星定位系統(tǒng)(
GPS
)或者時間服務器同步的。時鐘同步是非常關鍵的,因為如果服務器上的時鐘不準確,會導致許多問題,比如日志記錄不準確、安全證書失效等等 - 主板
BIOS
電池是一種小型的電池,通常被用來存儲主板上的系統(tǒng)設置和時鐘時間。在某些情況下,如果服務器無法連接到時間服務器或者GPS
信號不穩(wěn)定等問題,時鐘同步可能會失敗,這時候主板BIOS
電池就會發(fā)揮作用,可以保證服務器時鐘不會出現(xiàn)太大的偏差 - 服務器通常具有內置的實時時鐘(
RTC
),其主要作用是提供精確的時間戳來記錄系統(tǒng)事件、備份和還原數(shù)據(jù)以及控制計劃任務等。在斷電時,RTC電池可以提供電源來維護時鐘和日歷芯片,確保在斷電后系統(tǒng)時間仍然能夠精確地被維護,這樣可以避免數(shù)據(jù)損失和系統(tǒng)崩潰等問題 - BIOS電池是指主板上的一塊可更換,負責提供電源給
BIOS
芯片的小電池。這玩意更換成本很低,電池好像就幾塊錢,就是更換時需要注意靜電損壞設備,可以提前摸下金屬放電
BIOS電池的作用是為了讓BIOS芯片保持一些重要的設置,如系統(tǒng)時間、啟動順序、CPU電壓等。如果沒有這個電池,每次電腦斷電后這些設置都會被清空,需要重新設置。因此,BIOS電池非常重要,一旦電池失效則會導致系統(tǒng)出現(xiàn)各種異常。文章來源:http://www.zghlxwxcb.cn/news/detail-457199.html
- 斷電時鐘是指在電腦斷電后依然能夠保持系統(tǒng)時間的功能。服務器在斷電后,依靠主板可以保持內部時鐘的精度和準確性。
斷電時鐘則是一種通過硬件設計實現(xiàn)的功能,它可以讓系統(tǒng)在斷電狀態(tài)下保持時間,這樣開機后系統(tǒng)時間就不會出現(xiàn)錯誤。斷電時鐘是由主板、BIOS和操作系統(tǒng)三者共同實現(xiàn)的,其中主板和BIOS負責提供硬件和基本的系統(tǒng)時間管理功能,操作系統(tǒng)負責根據(jù)斷電時鐘提供的時間進行更為精確的時間管理。文章來源地址http://www.zghlxwxcb.cn/news/detail-457199.html
- 維護服務器時,需要定期檢查
RTC
電池的狀態(tài)和健康狀況,確保其功能和性能,以保證服務器能夠正常工作 - 如果
BIOS
芯片電池已耗盡或完全失效,斷電重啟后,日期和時間將被重置為固定的默認值。每個計算機的默認日期和時間可能有所不同,但通常為1990年1月1日
或2000年1月1日
。在這種情況下,您需要手動調整日期和時間,否則這可能會影響計算機的正確運行。
到了這里,關于linux服務器斷電重啟后,發(fā)現(xiàn)時間誤差八小時的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!