Windows
伺服器/服務重啟順序
我有幾台執行多種服務的伺服器。這些服務取決於其他伺服器上服務的可用性。
例子
ServerA/webservice 依賴於 ServerB/sqlservice 和 ServerC/blobservice
在安排更新/重新啟動時,我想確保伺服器和服務以正確的順序啟動。
在這個例子中
ServerA、B、C都可以同時重啟,但服務必須按以下順序啟動:
- 伺服器C/blobservice
- 伺服器B/sqlservice
- 伺服器A/網路服務
我知道服務可以依賴於其他本地服務,以確保它們以正確的順序啟動。如何跨多個伺服器實現這一點?
沒有開箱即用的工具可以做到這一點。我認識的每個人都這樣做。在 Stack Overflow,我們有自己的軟體,稱為(非常有創意的)“patcher”,它會為我們解決這個問題。
您不太可能找到通用的交鑰匙解決方案的原因是每個人的需求都如此不同。例如:
重新啟動電腦之前是否需要檢查服務的健康狀況?
- 如果您取出集群中的最後一台電腦會怎樣?
- 如果服務在您重新啟動之前不健康怎麼辦。當它回來時,您可能不知道是否因為最近的更新檔而被破壞,或者它是否已經被破壞
- 如果您的主機被禁用,但由於啟動腳本而在重新啟動後會自動重新啟用,該怎麼辦?
- 您如何在重啟後驗證服務和伺服器的執行狀況?
在重新啟動之前是否需要採取特殊步驟?
- 如果需要調整負載均衡器怎麼辦?
- 您是否需要在重新啟動之前將虛擬 IP 翻轉到另一台主機?
- 是否有從集群中安全移除伺服器的特定流程?
如果您修補集群中的一台機器並且它不能很好地執行,您會怎麼做?
- 你是否盲目地繼續修補並交叉手指它不是破壞它的更新檔?
- 您是否停止所有修補,即使這是一個孤立的事件?
- 您是否提出異常並要求輸入?
您正在使用哪些作業系統?
- 您是否需要執行異構修補計劃?
- 你在做什麼樣的更新檔發布?更新檔一上市就打更新檔嗎?你等著看有沒有被撤回嗎?
- 您是否需要排除某些軟體包/軟體的更新檔?
如果修補伺服器需要修補和重新啟動會發生什麼?
- 如果修補程序伺服器停止執行,您是否會一起停止修補?
- 你如何自測?
哪些機器屬於哪些集群/節奏/隊列?
- 有些機器可以並行修補。有些需要串列
- 有些可以在其他人之後很快修補
- 其他服務可能需要幾個小時才能重新平衡(elasticsearch),因此每天修補更少的機器
這只是我們通過修補/重啟解決方案努力克服的問題的簡短列表,其他人的列表看起來會完全不同。