如果virtio驅動版本過舊或存在相容性問題,可能導致ECS執行個體效能下降(如磁碟IOPS降低、網路延遲增加)或功能異常(如裝置無法識別、中繼資料讀取失敗)。為確保ECS執行個體在阿里雲平台穩定運行,建議您及時更新virtio驅動版本。
適用情境
阿里雲會定期更新virtio驅動,舊版驅動可能存在已知漏洞,更新virtio驅動版本可避免潛在風險或提升驅動的效能。
Windows執行個體從舊版本(例如Windows Server 2016)升級到新版本(例如Windows Server 2022),舊版virtio驅動可能不相容新系統,導致裝置無法識別或功能異常,因此需要更新virtio驅動版本,確保與新系統相容。
Windows執行個體某些操作依賴於鏡像的virtio驅動版本,例如,線上擴容雲端硬碟要求virtio驅動版本大於
58011(建立時間早於2019年03月30日的執行個體virtio版本可能不滿足要求),而查詢雲端硬碟序號則要求virtio驅動版本大於58017(建立時間早於2020年05月01日的執行個體virtio版本可能不滿足要求)。如果當前執行個體的virtio驅動版本不滿足要求,則需要先更新驅動版本。
使用限制
僅支援為Windows Server 2008及以上版本的作業系統更新virtio驅動。
操作步驟
準備工作。
建立快照備份資料。
建議您為Windows執行個體建立快照備份資料,以便在更新virtio驅動時出現異常時可以復原資料。
關閉第三方殺毒軟體。
為確保virtio驅動的更新順利進行,建議您臨時關閉已安裝的第三方殺毒軟體(執行個體內建的殺毒軟體無需關閉)。更新完成後,請及時重啟殺毒軟體。
更新virtio驅動。
您可以根據實際情況,選擇以下任一方式手動更新virtio驅動。
使用指令碼更新(執行個體可以訪問公網)
如果您的Windows執行個體能夠訪問公網,可以通過該方式快速更新virtio驅動。
遠端連線Windows執行個體。
具體操作,請參見通過密碼認證登入Windows執行個體。
在Windows PowerShell中,運行以下命令,下載指令碼。
Invoke-WebRequest -Uri "https://windows-driver-cn-beijing.oss-cn-beijing.aliyuncs.com/virtio/InstallVirtIo.ps1" -OutFile "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"運行以下命令,執行指令碼。
powershell -ExecutionPolicy Bypass -File "C:\Users\Administrator\Downloads\InstallVirtIo.ps1"指令碼執行完成後,重啟Windows執行個體使驅動更新生效。
具體操作,請參見重啟執行個體。
通過安裝封裝更新(執行個體不能訪問公網)
在本地主機上,根據實際的作業系統下載對應版本的virtio驅動安裝包。
下載地址:請參見阿里雲virtio驅動介紹。
將安裝包上傳至Windows執行個體。
具體操作,請參見使用遠端桌面或Windows APP向Windows執行個體傳輸檔案。
在Windows執行個體中安裝新版virtio驅動。
圖形化安裝
以安裝58101版本的阿里雲virtio驅動為例。
重要圖形化安裝virtio驅動過程中會更新網卡驅動,因此會有約10秒左右的網路中斷,可能對您的業務造成影響,請您提前做好風險評估和準備工作。
在安裝包上傳路徑中找到並雙擊
AliyunVirtio_58101_WIN2016_x64.exe。按照介面提示完成安裝。

直至出現如下介面,重啟系統使配置生效。
說明如果Windows 7/Windows Server 2008 R2系統在安裝過程中出現
對於Windows 7/Windows Server 2008 R2系統,您必須安裝SHA-2補丁!的提示,表示系統中缺少SHA-2簽名補丁,為避免鏡像匯入後啟動異常,建議您提前安裝簽名補丁。
命令列安裝
在Windows PowerShell中,運行以下命令,切換到軟體包上傳目錄,例如
C:\test。cd C:\test運行以下命令,安裝virtio驅動。
./AliyunVirtio_58101_WIN2016_x64.exe /SILENT /FORCE /NORESTART說明/SILENT:表示靜默模式。/FORCE:表示強制覆蓋(如果已經安裝過virtio驅動)安裝。/NORESTART:表示不自動重啟。
通過雲助手更新(批次更新多台執行個體)
如果您有多台ECS執行個體需要更新virtio驅動,且Windows執行個體能夠訪問公網或者Virtual Private Cloud的內網,可以通過阿里雲的雲助手功能批次更新。
說明通過雲助手更新virtio驅動時,需要下載驅動相關的安裝包,系統會優先訪問VPC內網進行下載,如果VPC內網訪問受限導致下載失敗,系統再訪問公網進行下載。
登入ECS管理主控台。
在左側導覽列,選擇。
在頂部功能表列,選擇地區。
選擇的地區需要與您的ECS執行個體所屬的地區保持一致。
使用雲助手批次更新驅動。
您可以通過雲助手手動設定命令內容,完成驅動更新,也可以通過雲助手的公用命令快速完成驅動更新。本文分別介紹不同的雲助手更新驅動方式。
(推薦)通過公用命令批次更新驅動
在ECS雲助手頁面,單擊公用命令頁簽,搜尋並執行
ACS-ECS-InstallVirtioDriver-windows.ps1。在執行命令面板的選擇執行個體地區,選中需要更新驅動的執行個體ID。
手動設定命令內容批次更新驅動
在ECS雲助手頁面,單擊建立/執行命令。
在建立執行命令面板,完成以下配置。
在命令資訊地區,必填參數說明如下表所示,其他參數保持預設值即可。更多參數資訊,請參見建立並執行命令。
參數
說明
命令來源
選擇輸入命令內容。
命令類型
選擇PowerShell。
命令內容
以下任意一種方式均可完成virtio驅動的更新:
通過InstallVirtIo.ps1指令碼更新virtio驅動。
您需要在本地主機下載InstallVirtIo.ps1指令碼,然後將指令碼的內容完整複製到雲助手的命令內容中。
通過雲助手外掛程式更新virtio驅動。
將以下命令複製到雲助手的命令內容中。
acs-plugin-manager.exe --exec --plugin=UpdateVirtIo
執行計畫
選擇立即執行。
在選擇執行個體地區,選中需要更新驅動的執行個體ID,單擊執行。
大量重啟多台Windows執行個體,使驅動更新生效。
具體操作,請參見重啟執行個體。
在裝置管理員中檢查已安裝的virtio驅動版本。
說明阿里雲大部分新執行個體規格(例如ecs.g8a)使用NVMe協議雲端硬碟,此時儲存控制器表現為NVMe控制器;其他規格執行個體通常採用VirtlO SCSI類比的傳統SCSI控制器。NVMe裝置在更新virtio驅動版本時會存在儲存驅動(viostor)更新不生效的情況(即驅動版本號碼不更新),此時建議以網卡裝置的驅動版本資訊為準。
儲存控制器顯示為Red Hat VirtlO SCSI controller表示virtio塊裝置,virtio塊裝置需根據儲存控制器的驅動程式版本末尾編號來判斷virtio驅動版本。

儲存控制器顯示包含了NVMe字樣(如圖所示的Aibaba NVMe Elastic Block Storage Adapter)表示NVMe裝置,NVMe裝置需根據網路介面卡的驅動程式版本末尾編號來判斷virtio驅動版本。






