排解 Windows 執行個體上的光伏驅動 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

排解 Windows 執行個體上的光伏驅動

以下是舊版 Amazon EC2 映像和 PV 驅動程式可能遇到的問題的解決方案。

Windows Server 2012 R2 在執行個體重新開機後遺失網路及儲存體連線能力

重要

只有AMIs在 2014 年 9 月之前提供時,才會發生這個問題。

2014 年 9 月 10 日之前提供的 Windows 伺服器 2012 R2 Amazon 電腦映像 (AMIs) 可能會在執行個體重新開機後失去網路和儲存連線能力。 AWS Management Console 系統記錄檔中的錯誤指出:「無法偵測控制台輸出的 PV 驅動程式詳細資料」。連線能力遺失是由「隨插即用清理」功能造成的。此功能會每 30 天掃描並停用非使用中的系統裝置。此功能會錯誤地將EC2網路裝置識別為非作用中,並將其從系統中移除。當發生此狀況時,執行個體便會在重新開機後遺失網路連線能力。

針對您懷疑受到此問題影響的系統,您可以下載及執行就地驅動程式升級。若您無法執行就地驅動程式升級,您可以執行協助程式指令碼。指令碼會判斷您的執行個體是否受到影響。如果受到影響,且尚未移除 Amazon EC2 網路裝置,則指令碼會停用隨插即用清理掃描。若已移除網路裝置,指令碼會修復裝置,停用隨插即用清理掃描,讓您的執行個體重新開機並啟用網路連線能力。

選擇如何修正問題

有兩種方法可以還原受此問題影響執行個體的網路及儲存體連線能力。選擇下列其中一種方法:

方法 必要條件 程序概觀
方法 1 - 增強聯網 增強型聯網只能在需要 C3 執行個體類型的虛擬私有雲 (VPC) 中使用。若伺服器目前使用的並非 C3 執行個體類型,您必須暫時變更它。 您將伺服器執行個體類型變更為 C3 執行個體。增強聯網便可讓您連線到受影響的執行個體並修正問題。在修正問題之後,您再將執行個體變更回原始的執行個體類型。此方法通常比方法 2 更快,也較不容易導致使用者錯誤。執行 C3 執行個體時,您將需要支付額外的費用。
方法 2 - 登錄組態 建立或存取第二個伺服器的能力。變更登錄設定的能力。 您將根磁碟區從受影響的執行個體分離,再將其連接到不同的執行個體、連線,並在登錄中進行變更。執行額外的伺服器時,您將需要支付額外的費用。此方法比方法 1 慢,但此方法可在方法 1 無法解決問題時使用。

方法 1 - 增強聯網

  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 尋找受影響的執行個體。選取執行個體,並依序選取 Instance state (執行個體狀態)Stop instance (停止執行個體)

    警告

    停止執行個體時,在任何執行個體存放區磁碟區的資料都會清除。若要保留執行個體存放區磁碟區的資料,請將資料備份至持久性儲存。

  4. 在執行個體停止後,建立備份。選取執行個體,依序選取 Actions (動作)Image and templates (映像和範本),然後選取 Create image (建立映像)

  5. 將執行個體類型變更為任何 C3 執行個體類型。

  6. 啟動實例。

  7. 使用遠端桌面 Connect 至執行個體,然後將 AWS PV 驅動程式升級套件下載至執行個體。

  8. 解壓縮資料夾的內容,然後執行 AWSPVDriverSetup.msi

    執行之後MSI,執行個體會自動重新開機,然後升級驅動程式。執行個體最多可能會在 15 分鐘內無法使用。

  9. 升級完成且執行個體在 Amazon EC2 主控台中通過兩項運作狀態檢查後,請使用遠端桌面連線至執行個體,並驗證是否已安裝新驅動程式。在裝置管理員中,於 Storage Controllers (儲存控制器) 下,尋找 AWS PV Storage Host Adapter (AWS PV 儲存體主機控制器)。確認驅動程式版本與驅動程式版本歷史記錄表格中列出的最新版本相同。如需詳細資訊,請參閱AWS 光伏驅動器封裝歷史

  10. 停止執行個體,並將執行個體變更回原始的執行個體類型。

  11. 啟動執行個體,繼續一般的使用。

方法 2 - 登錄組態

  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 尋找受影響的執行個體。選取執行個體,並依序選取 Instance state (執行個體狀態)Stop instance (停止執行個體)

    警告

    停止執行個體時,在任何執行個體存放區磁碟區的資料都會清除。若要保留執行個體存放區磁碟區的資料,請將資料備份至持久性儲存。

  4. 選擇 Launch Instance (啟動執行個體),在與受影響的執行個體相同的可用區域中建立暫時性的 Windows Server 2008 或 Windows Server 2012 執行個體。請不要建立 Windows Server 2012 R2 執行個體

    重要

    若您沒有在與受影響的執行個體相同的可用區域內建立執行個體,您將無法將受影響執行個體的根磁碟區連接到新的執行個體。

  5. 在導覽窗格中,選擇 Volumes (磁碟區)

  6. 尋找受影響執行個體的根磁碟區。分開磁碟區,再將磁碟區連接至先前建立的暫時執行個體。使用預設裝置名稱 (xvdf) 連接它。

  7. 使用遠端桌面連接至暫時性執行個體,然後使用 Disk Management 公用程式將磁碟區變成可用

  8. 在暫時性執行個體上,開啟 Run (執行) 對話方塊,輸入 regedit,然後按 Enter 鍵。

  9. 在 [登錄編輯程式] 瀏覽窗格中,選擇 [HKEY_Local_Machine],然後從 [檔案] 功能表選擇 [載入 Hive]。

  10. Load Hive (載入 Hive) 對話方塊中,導覽至 Affected Volume (受影響的裝置)\Windows\System32\config\System 然後在 Key Name (索引鍵名稱) 對話方塊中輸入暫時性的名稱。例如,輸入 OldSys。

  11. 在登錄編輯程式的導覽窗格中,尋找下列索引鍵:

    HKEY_LOCAL_MACHINE\your_temporary_key_name\ ControlSet 001\ 控制項\ 類別\ 類別

    HKEY_LOCAL_MACHINE\your_temporary_key_name\ ControlSet 001\ 控制項\ 類別\ 類別

  12. 針對每個機碼 UpperFilters,連按兩下,輸入值XENFILT,然後選擇 [確定]

    受影響磁碟區的登錄機碼。
  13. 尋找下列索引鍵:

    HKEY_LOCAL_MACHINE\your_temporary_key_name\ ControlSet 001\ 服務\XENBUS\ 參數

  14. 使用名稱 ActiveDevice 和下列值建立新字串 (REG_SZ):

    PCI\ VEN _5853& _0001& DEV SUBSYS REV

  15. 尋找下列索引鍵:

    HKEY_LOCAL_MACHINE\your_temporary_key_name\ ControlSet 001\ 服務項目\ XENBUS

  16. Count 從 0 變更為 1。

  17. 尋找並刪除下列索引鍵:

    HKEY_LOCAL_MACHINE\your_temporary_key_name\ ControlSet 001\ 服務\ 未來\ StartOverride

    HKEY_LOCAL_MACHINE \your_temporary_key_name\ ControlSet 001\ 服務\ 超級文件\ StartOverride

  18. 在登錄編輯程式導覽窗格中,選擇一開始開啟登錄編輯程式時建立的暫時性機碼。

  19. File (檔案) 選單中,選擇 Unload Hive (解除載入 Hive)。

  20. 在磁碟管理公用程式中,選擇先前連接的磁碟機,開啟內容 (按右鍵) 選單,然後選擇 Offline (離線)

  21. 在 Amazon EC2 主控台中,將受影響的磁碟區與暫存執行個體分離,然後使用裝置名稱 /dev/sda1 重新連接到 Windows 伺服器 2012 R2 執行個體。您必須指定此裝置名稱,將磁碟區指定為根磁碟區。

  22. 啟動實例。

  23. 使用遠端桌面 Connect 至執行個體,然後將 AWS PV 驅動程式升級套件下載至執行個體。

  24. 解壓縮資料夾的內容,然後執行 AWSPVDriverSetup.msi

    執行之後MSI,執行個體會自動重新開機,然後升級驅動程式。執行個體最多可能會在 15 分鐘內無法使用。

  25. 升級完成且執行個體在 Amazon EC2 主控台中通過兩項運作狀態檢查後,請使用遠端桌面連線至執行個體,並驗證是否已安裝新驅動程式。在裝置管理員中,於 Storage Controllers (儲存控制器) 下,尋找 AWS PV Storage Host Adapter (AWS PV 儲存體主機控制器)。確認驅動程式版本與驅動程式版本歷史記錄表格中列出的最新版本相同。如需詳細資訊,請參閱AWS 光伏驅動器封裝歷史

  26. 刪除或停止您在此程序中建立的暫時性執行個體。

執行補救指令碼

若您無法執行就地驅動程式升級或遷移至較新的執行個體,您可以執行補救指令碼來修正隨插即用清理任務造成的問題。

執行補救指令碼
  1. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取您要執行補救指令碼的執行個體。依序選擇 Instance state (執行個體狀態)Stop instance (停止執行個體)

    警告

    停止執行個體時,在任何執行個體存放區磁碟區的資料都會清除。若要保留執行個體存放區磁碟區的資料,請將資料備份至持久性儲存。

  4. 在執行個體停止後,建立備份。選取執行個體,依序選取 Actions (動作)Image and templates (映像和範本),然後選取 Create image (建立映像)

  5. 依序選擇 Instance state (執行個體狀態)Start instance (啟動執行個體)

  6. 使用遠端桌面 Connect 至執行個體,然後將 RemediateDriverIssue .zip 資料夾下載至執行個體。

  7. 解壓縮資料夾的內容。

  8. 根據 Readme.txt 檔案中的說明執行補救指令碼。檔案位於您解 RemediateDriverIssue壓縮 .zip 的資料夾中。

TCP卸載

重要

此問題不適用於執行 AWS PV 或 Intel 網路驅動程式的執行個體。

依預設,Windows 中的 Citrix 光伏驅動程式會啟用TCP卸載功能。AMIs如果您遇到傳輸層級錯誤或封包傳輸錯誤 (如 Windows 效能監視器上所見) (例如,當您執行特定SQL工作負載時),您可能需要停用此功能。

警告

停用TCP卸載可能會降低執行個體的網路效能。

若要停用TCP卸載視窗伺服器 2012 年和 2008
  1. 連線到您的執行個體,並以本機管理員登入。

  2. 若您使用 Windows Server 2012,請按 Ctrl+Esc 存取 Start (開始) 畫面,然後選擇 Control Panel (控制台)。若您使用 Windows Server 2008,請選取 Start (開始),然後選取 Control Panel (控制台)

  3. 依序選擇 Network and Internet (網路和網際網路)Network and Sharing Center (網路和共用中心)

  4. 選擇 Change adapter settings (變更介面卡設定)

  5. 以滑鼠右鍵按一下 Citrix PV Ethernet Adapter #0 (Citrix PV 乙太網路卡 #0),然後選取 Properties (屬性)

    區域連線屬性。
  6. Local Area Connection Properties (區域連線屬性) 對話方塊中,選擇 Configure (設定) 以開啟 Citrix PV Ethernet Adapter #0 Properties (Citrix PV 乙太網路卡 #0 屬性) 對話方塊。

  7. 在「進」索引標籤上,停用每個屬性,除了「正確TCP/UDP總和檢查碼值」。若要停用屬性,請從 Property (屬性) 中選取,然後從 Value (值) 選取 Disabled (停用)

  8. 選擇 OK (確定)。

  9. 從命令列視窗中執行下列命令。

    netsh int ip set global taskoffload=disabled netsh int tcp set global chimney=disabled netsh int tcp set global rss=disabled netsh int tcp set global netdma=disabled
  10. 重新啟動執行個體。

時間同步

在 2013.02.13 視窗發行之前AMI,Citrix Xen 客體代理程式可能會錯誤地設定系統時間。這可能會導致您的DHCP租約過期。若您在連線到您的執行個體時發生問題,您可能需要更新代理程式。

若要判斷您是否已具有更新後的 Citrix Xen 客體代理程式,請檢查 C:\Program Files\Citrix\XenGuestAgent.exe 檔案是否來自 2013 年 3 月。若此檔案的日期在該日期之前,請更新 Citrix Xen 客體代理程式服務。如需詳細資訊,請參閱升級您的 Citrix Xen 客體代理程式服務

利用超過 20,000 個磁碟IOPS因CPU瓶頸而降級的工作負載

如果您使用執行 AWS PV 驅動程式運用率超過 20,000 的 Windows 執行個體,並且您遇到錯誤檢查碼IOPS,則可能會受到此問題的影響0x9E: USER_MODE_HEALTH_MONITOR

AWS 光伏驅動程式中的磁碟讀取和寫入 (IOs) 分為兩個階段:IO 準備IO 完成。依預設,準備階段會在單一任意核心上執行。完成階段會在核心 0 上執行。處理 IO 所需的運算量因其大小和其他屬性而有所差異。一些在準備階段IOs使用更多的計算,而另一些則在完成階段。當執行個體磁碟機超過 20,000 個時IOPS,準備或完成階段可能會導致瓶頸,CPU而執行的容量為 100%。準備或完成階段是否成為瓶頸,取決於應用程式所IOs使用的屬性。

從 AWS PV 驅動器 8.4.0 開始,準備階段和完成階段的負載可以分散到多個核心,從而消除瓶頸。每個應用程式使用不同的 IO 屬性。因此,套用下列其中一個組態可能會提升、降低或不會影響應用程式的效能。套用任何這些組態之後,請監控應用程式,以確認其符合您所需的效能。

  1. 必要條件

    開始此疑難排解程序之前,請先確認下列先決條件:

  2. 觀察執行個體的CPU負載

    您可以使用 Windows 工作管理員檢視每個負載,CPU以判斷磁碟 IO 的潛在瓶頸。

    1. 確認您的應用程式正在執行,並處理與生產工作負載類似的流量。

    2. 使用 Connect 至您的執行個體RDP。

    3. 選擇執行個體上的 Start (開始) 功能表。

    4. 請在 Start (開始) 功能表中輸入 Task Manager,以開啟 Task Manager (任務管理員)。

    5. 如果 Task Manager (任務管理員) 顯示 Summary View (摘要檢視),請選擇 More details (更多詳細資訊),以展開詳細檢視。

    6. 選擇 Performance (效能) 索引標籤。

    7. CPU在左窗格中選取。

    8. 在主側窗格中的圖形上按一下滑鼠右鍵,然後選取 Change graph to (將圖形變更為) > Logical processors (邏輯處理器),以顯示每個個別核心。

    9. 根據執行個體上有多少核心,您可能會看到一段時間內顯示CPU負載的線條,或者您可能只會看到一個數字。

      • 如果您看到一段時間內顯示負載的圖表,請查找框幾乎完全著色的CPUs位置。

      • 如果您在每個核心上看到一個數字,請尋找一致顯示 95% 以上的核心。

    10. 請注意核心 0 或不同的核心正在經歷繁重的負載。

  3. 選擇要套用的組態
    組態名稱 套用此組態的時間 備註
    Default configuration 工作負載驅動量低於 20,000IOPS,或其他組態無法改善效能或穩定性。

    針對此組態,IO 會發生在幾個核心上,這可能會藉由增加快取區域性並減少內容切換,從較小工作負載獲益。

    Allow driver to choose whether to distribute completion 工作量驅動超過 20,000IOPS,核心觀察到中等或高負載0 建議所有使用 PV 8.4.0 或更新版本的 Xen 執行個體使用此設定,並利用超過 20,000 個IOPS,無論是否遇到問題。
    Distribute both preparation and completion 工作負載驅動量超過 20,000 個IOPS,要么允許驅動程序選擇分發並沒有提高性能,或者不0是遇到高負載以外的核心。 此組態會啟用 IO 準備和 IO 完成的分發。
    注意

    未同時分發 IO 完成 (設定DpcRedirection 而不設定NotifierDistributed) 的情況下,我們建議您不要分發 IO 準備,因為當準備階段平行執行時,完成階段會對準備階段過載較為敏感。

    登錄金鑰值
    • NotifierDistributed

      0 或不存在 – 完成階段將在核心 0 上執行。

      1 – 驅動程式選擇執行完成階段或核心 0,或者每個連接磁碟有另一個核心。

      2 – 驅動程式會在每個連接磁碟的另一個核心上執行完成階段。

    • DpcRedirection

      0 或不存在 – 準備階段將會在單一、任意核心上執行。

      1 – 準備階段分發在多個核心之間。

    預設組態

    使用 8.4.0 之前的 AWS PV 驅動程式版本套用預設組態,或者如果在套用本節中的其他組態之一後發現效能或穩定性降低,則套用預設組態。

    1. 使用 Connect 至您的執行個體RDP。

    2. 以系統管理員身分開啟新的 PowerShell 命令提示字元。

    3. 執行下列命令以移除 NotifierDistributedDpcRedirection 登錄金鑰。

      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name NotifierDistributed
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name DpcRedirection
    4. 將執行個體重新開機。

    允許驅動程式選擇是否要分配完成

    設定 NotiferDistributed 登錄金鑰,以允許 PV 儲存驅動程式選擇是否要分發 IO 完成。

    1. 使用 Connect 至您的執行個體RDP。

    2. 以系統管理員身分開啟新的 PowerShell 命令提示字元。

    3. 執行下列命令以設定 NotiferDistributed 登錄金鑰。

      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name NotifierDistributed
    4. 將執行個體重新開機。

    分配準備和完成

    設定 NotifierDistributedDpcRedirection 登錄金鑰,以始終分發發準備和完成階段。

    1. 使用 Connect 至您的執行個體RDP。

    2. 以系統管理員身分開啟新的 PowerShell 命令提示字元。

    3. 執行下列命令以設定 NotifierDistributedDpcRedirection 登錄金鑰。

      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000002 -Name NotifierDistributed
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name DpcRedirection
    4. 將執行個體重新開機。