俗話說“失之毫厘,謬以千里”,時間的精準度對于我們的工作、生活都非常重要。2000年的千年蟲事件以及2017年元旦全球多一秒事件,都引起了人們的高度關注,尤其是數據中心行業。數據中心里很多系統都依賴時間來正常運行,人們要認真評估這一時間變化對內部運行設備的影響,如果設備不能夠自行調整時間,則就會與實際時間產生偏差,因此而帶來一系列誤判,導致問題。所以,時間精準度對于數據中心來講是非常重要的參量。
數據中心的時間有兩個維度含義,一個是相對時間。比如很多的網絡設備要啟用OSPF、ARP、MAC等各種協議,每種協議都有各種各樣的定時器,以便實時判斷協議狀態是否有變化。OSPF鄰居要通過一定間隔時間收發Hello報文保持鄰居狀態為Full,一旦超過三個Hello報文的發送時間間隔,一個Hello報文也沒有收到,就認為這個鄰居狀態發生了變化,鄰居狀態由Full切換到Init或Down,記錄Hello報文超時的時間定時器要準確,周期性地記錄每個Hello報文的收時間,以便統計準確;另一個是絕對時間,就是北京標準時間,每天我們在新聞聯播時看到的時間,2000年的千年蟲事件以及2017年元旦全球多一秒事件都說的是這個時間。數據中心有很多設備,這些設備運行中會產生很多的日志和告警信息,所有的信息都有時間紀錄,只有這個時間準確,才能通過這些時間來進行分析問題。比如數據中心發生了業務中斷,我們首先要知道是什么時候中斷的,持續多長時間,與哪些設備有關,然后再去查找這個時間點,設備上留下的相關紀錄,時間的準確性對于分析業務中斷原因非常關鍵,如果沒有各個設備的準確運行時間,就無法判斷哪些信息是中斷時報出的,哪些信息與故障有關,故障將很難分析出結果,所以絕對時間也非常重要。
無論是相對時間,還是絕對時間,對于數據中心運行都非常重要,同時也要保證兩個時間的準度,如果精度太差,也會產生不少問題。上面也有介紹,會導致網絡協議的各種定時器判斷不準確,發生故障時無法明確哪些是故障時間報出的,這只是舉個示例,其實還有更多的方面。如果相對時間不準,誤差大,服務器上的應用系統也會出問題,如果要是銀行的存取款業務系統,每存一筆錢時間都慢慢將誤差拉大,可能到最后,連儲戶上的錢數數據記錄都出現錯誤,甚至出現丟失的情況。如果相對時間不準,二三層轉發網絡,表項老化的時間都不一致,有長有短,導致表項學習不穩定,流量轉發出現丟包,嚴重的會導致表項無法學習,造成網絡中斷;如果是絕對時間不準,數據中心所有設備記錄的信息都是不準確的,各個設備之間的信息也沒有可對比性,相互之間的影響和作用就無法從時間軸上分得清楚。在一些重要變更和操作時,由于絕對時間的不準確,會導致操作的時機不是最優的,在變更和設備準確上不同步,從而會產生這樣那樣的問題。
既然時間準度對數據中心這么重要,那就要提升時間準度了。不過,提升時間準度可不是一件輕松的事兒。首先,對于相對時間,這個和北京時間無關,與個體設備有關,這個只能靠設備內部的實現來保證。很多網絡設備在內部會設定很多定時器,這些定時器專門記錄各種協議的運行時間,以便判斷協議的狀態是否正常,這個時間一般通過CPU的晶振頻率計算獲得。這樣相對時間的準確度和設備的CPU性能有很大關系,往往是越高端的設備采用的CPU晶振頻率越準,當然這類設備的價格也要高很多。其次,對于絕對時間,為保證數據中心內部所有設備的時間一致,可以通過將所有設備的時間對一遍,盡量做到時間同步,不過每個設備的時間準度不同,有的設備運行個一年半載,偏差可能達到數十秒,而有的設備偏差卻很小,這樣雖然當初時間都對過,不同設備的運行時間是一致的,隨著運行時間越來越長,誤差變得越來越大,所以這種方式不可行。更多的數據中心是通過設定一個NTP服務器,這個服務器可以是網絡設備也可以服務器,甚至是專用的授時設備,然后數據中心里所有設備都通過這臺設備來獲取時間,從而整個數據中心里的設備運行時間是完全一致的。如果采用一般的網絡設備做NTP服務器,運行個幾個月,這些服務器運行時間與實際時間偏差可能達到數十秒,雖然這些時間偏差比較大,但仍能保證這些設備之間的相對時間是一致的,并不妨礙各種工作的開展,包括問題定位。不過,有的時候數據中心業務對時間要求比較高,這時就需要使用專用的授時設備做NTP服務器。授時設備運行時間誤差小,精度可以達到毫秒甚至微秒級,與北京時間保持完全一致,即使運行時間久了,偏差也在微秒級,這就保證了數據中心里所有設備與實際北京時間完全一致,避免因為時間不準確,導致這樣那樣的問題。除了授時系統,還有時間頻率基準,守時用原子鐘,星載原子鐘等技術,采用這些技術都可以大幅提升數據中心的時間準度。
時間準度已經成為數據中心運行中至關重要的參量,一切的數據中心活動都和時間準度有密切關系。數據中心對高精度時間頻率的需求越來越強烈,需要一系列精度越來越高的計時器具,同時要在各個設備之間做好時間同步工作,保持設備之間時間的一致性,以便于開展各種數據中心運維工作。