背景:
位於集團b座6樓的機房已經使用多年,很多硬體條件開始制約公司it的發展。6月中旬一天,由於機房空調進行維修,工人師傅冒然拉斷了電源總閘,導致機房內部分伺服器意外斷電。集團總部的兩台用活動目錄域控制器也不幸遇難。
現象:負責機房的工程師在第一時間進行了及時的處理。恢復供電之後馬上啟動因斷電而停止的伺服器。在絕大部分伺服器啟動執行之後,仍然發現多數客戶端出現各種網路訪問類問題。如某些**無法訪問,但用ping命令測試確能夠返回正確資訊;或者網路共享可以通過ip訪問而無法通過機器名進行。
問題:綜合大部分出現的現象,初步判斷為dns服務不可用。通過命令檢測及日誌分析,發現兩台dc雖然已經啟動,但並沒有正常對外提供服務。
經過仔細分析ad相關日誌發現,由於兩台dc均為突然斷電,在一台dc停止服務時沒有能夠正常通知另外一台dc繼續承擔負載。並且,兩台dc同時開機時,無法獲取另外一台伺服器狀態資訊。導致兩台dc均認為自己是當前ad中最後一台dc,從而使兩台dc之間的複製關係發生了衝突,進而導致最後的整個ad服務的不可用,這裡就包括之前的dns服務不可用。
解決辦法:
由於目前ad服務已經完全中斷,所以考慮重啟dc是否帶來ad服務中斷已經沒有意義。
關閉全部兩台dc之後,先開啟具有五種操作角色的dc-01。待完全啟動之後,檢查ad相關日誌,確保ad各項服務均已正常啟動。如遇到活動目錄複製相關警告或報錯,暫時不管。
待第一台dc成功啟動以後,開啟第二台dc。完全啟動之後,檢查ad相關日誌,確保ad各項服務均已正常啟動。
在dc-01上開啟活動目錄站點管理控制台,在所有的複製關係上手動進行立即複製,並監視事件日誌。
當日誌中已發現站點複製成功完成之後,重啟兩台dc,以確保服務和資料的重新整理。
重啟順序為,在保證dc-01正常工作的同時,先重啟dc-02;等dc-02重啟完全並正常提供服務之後,再重啟dc-01。
如果此時發生站點複製失敗,那問題就大了,這裡還好我沒遇到,所以也暫時排除這個問題。(站點複製失敗,需要另案處理,請參考相關的標準排錯流程,或者直接找微軟gtsc開case處理)
結果:在完成兩台dc重啟之後,從重啟時間點算起,兩台dc在之後的時間內均沒有再次發生活動目錄複製相關警告和錯誤。所有ad相關服務也全部正常啟動。
通過其他伺服器及部分客戶端進行測試,發現dns解析服務已經恢復正常,使用者登陸到域操作正常,使用者之間資料夾共享訪問正常,ad中搜尋印表機、計算機、使用者等ad物件也同樣正常。
在之後的一兩周的執行中,沒有再發生由ad服務引起的系統問題。
至此,我們可以認為ad服務已經完全恢復正常工作。
總結:對於乙個分布式系統而言,各個系統元件之間都存在著相互依賴的關係。整個系統的關閉和開啟,都需要依照一定的順序執行。無論是惡意還是無意,幾乎同時的突然斷電對於乙個分布式系統而言,各元件之間沒有任何的訊息溝通就停止服務,會引起其它元件之間的服務停止,或者服務衝突,這種損害是極大的。
值得慶幸的是,同時的電力中斷,在大部分情況下,不會引起儲存裝置中的資料丟失。在這次事件中,至少ad資料經過檢查之後,沒有發生丟失的情況。但也不是完全絕對,運氣的成分很大。
所以,保證電力系統的高可用,是保證it穩定執行的最為基本的準則。此外,萬一出現電力系統失敗,我們應該按照一定的啟動順序來依次開啟分布式系統中的各個元件,而不能同時開啟所有的伺服器,特別是在某些存在有儲存裝置相連線的環境中顯得尤為重要。
解決由於意外斷電引起的活動目錄服務停止問題
背景 位於集團b座的機房已經使用多年,很多硬體條件開始制約公司it的發展。6月中旬一天,由於機房空調進行維修,工人師傅冒然拉斷了電源總閘,導致機房內部分伺服器意外斷電。集團總部的兩台用活動目錄域控制器也不幸遇難。現象 負責機房的工程師在第一時間進行了及時的處理。恢復供電之後馬上啟動因斷電而停止的伺服...
MySQl的意外斷電後無法啟動
伺服器意外斷電後啟動 mysql 資料庫報錯 another mysql daemon already running withthe same unix socket.error 2002 hy000 can t connect to local mysql server through sock...
MySQl的意外斷電後無法啟動
伺服器意外斷電後啟動 mysql 資料庫報錯 another mysql daemon already running withthe same unix socket.error 2002 hy000 can t connect to local mysql server through sock...