2007年11月29日 星期四

WindowsServer2003升級到SP2後,可能會失去網路功能

WindowsServer2003升級到SP2後,可能會失去網路功能
公司裡一台安裝 Windows Server 2003 的伺服器從 SP1 升級到 SP2 後,發現網路服務功能全部失效,不僅相關的 Web App 和 FTP 都無法從客端連線,在內部網路上這台伺服器就像是消失了一般。原本以為是防火牆的設定問題,硬體設備負責人員向微軟詢問後才得知,此為 Windows Server 2003 升級到 SP2 後可能會產生的狀況。
出問題的伺服器使用的網路卡廠牌是Boradcom。已知部分HP的機器使用這個張網路卡,當它們由 Windows Server 2003 SP1 升級到SP2時,可能因為驅動程式相容問題而導致網路服務失效。根據台灣微軟技術支援工程師所寄來的信件中指出, Windows Server 2003 SP2 包含了幾項新的網路功能:『 TCP Chimney Offload 』、『 Receive Side Scaling (RSS) 』以及『 Network Direct Memory Access (NetDMA) 』。
如果用戶在升級到 SP2 後產生網路問題,除了升級新的網路卡驅動程式外,也需要使用登錄編輯程式去修改登錄檔機碼,來取消 RSS 和 TCP Chimney Offload 的功能。以下列出登錄檔機碼處理步驟:1. 在修改機碼之前,先備份登錄檔機碼。2. 參考文件KB 927695,新增以下機碼來關閉RSS。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableRSS,將值設為「0」。3. 參考文件KB 904946,新增機碼DisableTaskOffload。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DisableTaskOffload,將值設為「1」。4. 參考文件KB 927695,新增以下機碼來關閉TCP Chimney Offload 。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPChimney,將值設為「0」。5. 重開機來讓所有更改產生作用。(其中,TCP Chimney Offload也可以透過以下的方法來關閉或是啟動,在命令提示字元下輸入「netsh int ip set chimney DISABLED」或是「netsh int ip set chimney ENABLED」。)
關於SNP 與 NDIS 5.2 Miniport 驅動程式架構TCP Chimney Offload (TCP煙囪卸載)、 Receive Side Scaling (RSS,接收端調整)以及 Network Direct Memory Access (NetDMA) 技術,是微軟在2004年4月發表的 Windows Scalable Networking 初步概念所包含的功能,並在2006年3月正式成為可免費下載的 Scalable Networking Pack(SNP) 與 NDIS 5.2 Miniport 驅動程式架構,其強調不需購買新的伺服器與硬體,以有效利用現有網路卡內建的硬體卸載功能與日趨普及的多核心處理器運算資源,藉此提高整體服務效能。關於Receive Side ScalingRSS(接收端調整)允許網路從網路卡加載並在多處理器之間平均分配,可將傳入的流量分散給所有的處理器負責,動態平衡每一個處理器的負載。假如網路卡支援接收端調整,就可以在不增加伺服器的情況下,處理更多傳入流量。
關於TCP Chimney OffloadTCP Chimney Offload(TCP煙囪卸載)就是一條從網路卡驅動程式直達應用程式介面的資料傳輸管道,分離TCP封包處理流程,藉由共通的高階裝置介面,將其轉移給任何可支援TOE的網路卡,便於釋出處理器的運算資源供作他用,如服務更多的用戶端或加快服務反應時間。
關於Network Direct Memory AccessNetDMA資料處理單元,當網路晶片接收封包時,就立刻分離封包標頭與資料區域,直接搬移資料至記憶體,記憶體至記憶體的資料傳輸處理就毋需處理器插手,大幅降低處理器執行單元利用率,一旦網路埠數越多,如利用大量GbE埠增加頻寬時,效益就越明顯。