熱點推薦:
您现在的位置: 電腦知識網 >> 電腦故障 >> 正文

Windows Server崩潰的三大常見誘因與避免方式

2013-11-12 00:05:32  來源: 電腦故障 
    Windows Server崩潰的方式有很多種但絕大多數都屬於三大類舊版殺毒軟件不兼容的存儲驅動程序和過多的過濾驅動在分析了來自世界各地近十年差不多次的系統崩潰後我可以確認這些都是你想要避免的隱患
  下面讓我們來詳細看一下這三種服務器系統崩潰的細節並分別介紹一下避免它們的最佳方法
  殺毒軟件
  到目前為止最常見的Windows Server崩潰是由舊版殺毒軟件所致所有的殺毒軟件都是使用設備驅動程序更具體地說是過濾驅動來攔截I / O(讀/寫)請求並執行額外的檢查殺毒軟件驅動程序將檢查的內容與已知的病毒定義文件進行對比以確保沒有感染病毒
  過濾驅動包含內核模式的代碼它們會與操作系統底層的內核函數和數據結構相互作用這些函數和數據結構包括那些預期會在相應設備驅動調用時呈現的預定義參數和數據類型如果函數傳遞的數據類型錯誤或參數數目不對就會發生導致內核模式中系統崩潰的錯誤
  當開發人員在不同版本的操作系統之間(如服務包更新或新版本操作系統發布)修改這些內核函數或數據結構時問題就出現了雖然微軟在測試設備驅動程序對所有操作系統改變的兼容性方面做得很好但它顯然沒有測試第三方設備驅動程序來確保它們可兼容因此當舊版殺毒驅動程序偶然遭遇了這些更改最終就會導致系統崩潰其它過濾驅動也容易受到這種問題影響但是殺毒軟件驅動程序是最容易受影響的一個
  讓我們來看一個例子
  下面是一個Stop xE bugcheck KERNEL_MODE_EXCEPTION_NOT_HANDLED的系統崩潰在Windows debugger中用命令!analyze –v顯示了它的堆棧模式從下往上讀我們就看到一個NtCreateFile的函數調用最終引入了buggydrv從而導致bugcheck使用命令!lmi buggydrv可以顯示出驅動程序的日期是而操作系統Windows Server SP年發布的現在我們就知道舊版的殺毒驅動程序並沒有對新版的操作系統進行測試


  在這個例子中此種系統崩潰已經被廠商標識為已知問題並文檔化新版殺毒軟件已經可以用來避免系統崩潰事實上絕大多數你遇到的Windows Server崩潰都曾在別人身上發生過它們的解決方法通常已經記錄在互聯網上的某個地方因此很重要的一點是一定要記住即使只是一個服務包更新在更新操作系統時也該第一時間與第三方廠商確認是否有相應的軟件更新
 存儲驅動程序不兼容
  另一種最常見的系統崩潰是由不兼容的存儲驅動程序所致如你所知第三方存儲廠商提供設備驅動程序來控制它們的主機總線適配器(HBA)並用於訪問存儲設備像QlogicEmulex和惠普(HP)等廠商都有不同的設備驅動程序但它們都依賴於微軟的Storport驅動程序Storport驅動程序提供一套通用程序這些特定的廠商驅動程序在執行I / O操作時使用它們
  這種問題的出現方式與殺毒軟件驅動程序的不兼容性很相似當廠商修改其專用的驅動程序時它們必須重新與當前版本的Storport進行測試以確保仍然兼容同樣的道理當更新Storport版本時所有的HBA驅動程序也必須重新測試以保證它們仍然與新版的Storport驅動程序兼容在Windows Server 中當你需要考慮Storport的多個修補程序時這才是一個真正的挑戰
  經驗法則是在更新Storport驅動之前與你的第三方廠商確認HBA驅動程序是否有相應的更新反之亦然如何才能知道哪個存儲驅動程序依賴於Storport?幸運的是有一個叫Dependency Walker(dependsexe)的免費工具可以揭示驅動程序間的依賴關系
  下載並解壓縮後運行dependsexe使用文件下拉菜單選擇你所關注的驅動程序在這個例子中我選擇了驅動程序Hpcissssys它應用於HP的磁盤陣列正如你下面可以看到的該工具顯示驅動程序Hpcisss依賴於STORPORTSYS和Ntoskrnlexe

  


                               圖一Dependency Walker
 過多的過濾驅動
  第三種最常見的Windows Server崩潰類型與安裝了太多的過慮驅動時的堆棧溢出條件相關任何可以攔截I / O請求並執行額外功能的驅動程序都被認為是一個過濾驅動我們已經知道殺毒驅動程序就是一個過濾驅動其它過慮驅動包括磁盤配額管理磁盤鏡像和備份代理等在這裡我只列舉了幾個
  雖然安裝多個過濾驅動本身不會有問題但是在當這些驅動程序以遞歸的方式相互調用並因此耗盡了有限的內核堆棧空間時情況就會發生改變根據計算機體系結構((x= KBx= KB)所有設備驅動程序使用的內核堆棧空間是有限的當內核堆棧空間耗盡時就會出現一個Stop xF bugcheck導致系統崩潰就像微軟數百篇文檔的描述一樣
  根本沒有辦法提供額外的內核堆棧空間來容納更多的過慮驅動唯一的選擇是識別這些過濾驅動禁用或卸載其中不需要的那些有一個內置在Windows Server操作系統中的工具叫FLTMC(過濾器管理器控制程序)它可以讓你識別出安裝的過濾驅動

                                                  圖二FLTMC工具
  正如你看到的有很多原因會導致Windows Server崩潰但是絕大多數服務器停機都是由上述的原因造成的你完全可以通過兩種方式解決這些問題它們是在升級Windows操作系統或更新相關的熱修補程序的同時更新第三方驅動程序和限制未使用的過濾驅動的數量


From:http://tw.wingwit.com/Article/Fault/201311/10653.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.