更新Windows實(shí)例的virtio驅(qū)動(dòng)
Windows實(shí)例某些操作依賴于鏡像的virtio驅(qū)動(dòng)版本,在線擴(kuò)容云盤要求virtio驅(qū)動(dòng)版本大于58011
(創(chuàng)建時(shí)間早于2019年03月30日的實(shí)例virtio版本可能小于58011
),或查詢?cè)票P序列號(hào)要求virtio驅(qū)動(dòng)版本大于58017
(創(chuàng)建時(shí)間早于2020年05月01日的實(shí)例virtio版本可能小于58017
)。如果當(dāng)前實(shí)例的virtio驅(qū)動(dòng)版本不滿足要求,則需要先更新virtio驅(qū)動(dòng)版本才能進(jìn)行相關(guān)操作。本文介紹如何查看并更新Windows實(shí)例的virtio驅(qū)動(dòng)版本。
使用限制
僅支持為Windows Server 2008及以上版本的操作系統(tǒng)更新virtio驅(qū)動(dòng)。
操作步驟
(可選)創(chuàng)建快照備份數(shù)據(jù)。
建議您為Windows實(shí)例創(chuàng)建快照備份數(shù)據(jù),如果更新virtio驅(qū)動(dòng)時(shí)造成實(shí)例異常,可通過(guò)快照回滾實(shí)例中的數(shù)據(jù)。具體操作,請(qǐng)參見創(chuàng)建快照。
關(guān)閉第三方殺毒軟件。
為確保virtio驅(qū)動(dòng)的更新腳本或云助手插件順利執(zhí)行,建議您登錄Windows實(shí)例,臨時(shí)關(guān)閉實(shí)例中已安裝的第三方殺毒軟件(實(shí)例自帶的殺毒軟件無(wú)需關(guān)閉)。如果您確認(rèn)您的Windows實(shí)例無(wú)需更新virtio驅(qū)動(dòng)或者驅(qū)動(dòng)已成功更新,請(qǐng)及時(shí)重啟第三方殺毒軟件。
查看當(dāng)前實(shí)例的virtio驅(qū)動(dòng)版本,根據(jù)場(chǎng)景判斷是否需要更新virtio驅(qū)動(dòng)。
通過(guò)PowerShell查看
遠(yuǎn)程連接Windows實(shí)例。
具體操作,請(qǐng)參見通過(guò)密碼認(rèn)證登錄Windows實(shí)例。
打開運(yùn)行對(duì)話框。
輸入powershell進(jìn)入PowerShell命令行。
運(yùn)行以下命令,查看virtio驅(qū)動(dòng)的版本信息。
[System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Windows\System32\drivers\viostor.sys")
說(shuō)明viostor.sys
是一個(gè)與虛擬化環(huán)境存儲(chǔ)設(shè)備驅(qū)動(dòng)相關(guān)的系統(tǒng)文件,特別是用于Microsoft Hyper-V虛擬機(jī)上的虛擬磁盤控制器。當(dāng)一個(gè)操作系統(tǒng)在Hyper-V平臺(tái)上作為虛擬機(jī)運(yùn)行時(shí),viostor.sys驅(qū)動(dòng)會(huì)與主機(jī)的虛擬化層協(xié)同工作,確保客戶機(jī)操作系統(tǒng)能夠像操作物理硬盤一樣對(duì)虛擬硬盤進(jìn)行讀寫操作。它是確保虛擬機(jī)磁盤I/O性能和兼容性的重要組件之一。命令行回顯信息如下圖所示。
根據(jù)ProductVersion末尾編號(hào)是否小于
58011
或58017
,判斷是否需要更新驅(qū)動(dòng)。操作場(chǎng)景
virtio版本
操作
在線擴(kuò)容云盤
大于等于58011
可以直接在線擴(kuò)容云盤,無(wú)需更新virtio驅(qū)動(dòng)。具體操作,請(qǐng)參見步驟一:擴(kuò)容云盤容量。
小于58011
無(wú)法在線擴(kuò)容,需繼續(xù)執(zhí)行后續(xù)操作更新virtio驅(qū)動(dòng)。
查詢序列號(hào)
大于等于58017
可以直接查看磁盤序列號(hào),無(wú)需更新virtio驅(qū)動(dòng)。具體操作,請(qǐng)參見查看磁盤序列號(hào)。
小于58017
無(wú)法直接查詢序列號(hào),需繼續(xù)執(zhí)行后續(xù)操作更新virtio驅(qū)動(dòng)。
通過(guò)系統(tǒng)文件查看
遠(yuǎn)程連接Windows實(shí)例。
具體操作,請(qǐng)參見通過(guò)密碼認(rèn)證登錄Windows實(shí)例。
進(jìn)入系統(tǒng)目錄C:\Windows\System32\drivers。
右鍵單擊viostor.sys文件,選擇屬性,在詳細(xì)信息頁(yè)簽下查看文件版本號(hào)。
說(shuō)明viostor.sys
是一個(gè)與虛擬化環(huán)境存儲(chǔ)設(shè)備驅(qū)動(dòng)相關(guān)的系統(tǒng)文件,特別是用于Microsoft Hyper-V虛擬機(jī)上的虛擬磁盤控制器。當(dāng)一個(gè)操作系統(tǒng)在Hyper-V平臺(tái)上作為虛擬機(jī)運(yùn)行時(shí),viostor.sys驅(qū)動(dòng)會(huì)與主機(jī)的虛擬化層協(xié)同工作,確保客戶機(jī)操作系統(tǒng)能夠像操作物理硬盤一樣對(duì)虛擬硬盤進(jìn)行讀寫操作。它是確保虛擬機(jī)磁盤I/O性能和兼容性的重要組件之一。根據(jù)文件版本末尾編號(hào)是否小于
58011
或58017
,判斷是否需要更新驅(qū)動(dòng)。操作場(chǎng)景
virtio版本
操作
在線擴(kuò)容云盤
大于等于58011
可以直接在線擴(kuò)容云盤,無(wú)需更新virtio驅(qū)動(dòng)。具體操作,請(qǐng)參見步驟一:擴(kuò)容云盤容量。
小于58011
無(wú)法在線擴(kuò)容,需繼續(xù)執(zhí)行后續(xù)操作更新virtio驅(qū)動(dòng)。
查詢序列號(hào)
大于等于58017
可以直接查看磁盤序列號(hào),無(wú)需更新virtio驅(qū)動(dòng)。具體操作,請(qǐng)參見查看磁盤序列號(hào)。
小于58017
無(wú)法直接查詢序列號(hào),需繼續(xù)執(zhí)行后續(xù)操作更新virtio驅(qū)動(dòng)。
說(shuō)明您也可以登錄云安全中心控制臺(tái),在漏洞公告列表中查看是否存在Windows virtio驅(qū)動(dòng)BUG導(dǎo)致磁盤數(shù)據(jù)丟失風(fēng)險(xiǎn)更新漏洞,來(lái)判斷是否需要更新virtio驅(qū)動(dòng)。
如果不存在該漏洞公告,說(shuō)明您的阿里云賬號(hào)下沒(méi)有需要更新virtio驅(qū)動(dòng)的Windows實(shí)例,無(wú)需再執(zhí)行后續(xù)更新驅(qū)動(dòng)操作。
如果存在該漏洞公告:
如果您的云安全中心版本支持檢測(cè)并一鍵修復(fù)漏洞,按照界面提示修復(fù)漏洞即可,無(wú)需再執(zhí)行后續(xù)更新驅(qū)動(dòng)操作。更多信息,請(qǐng)參見查看和處理漏洞。
如果您的云安全中心版本僅支持檢測(cè)漏洞,但不支持修復(fù)漏洞,您需要繼續(xù)執(zhí)行后續(xù)操作更新virtio驅(qū)動(dòng)。
更新virtio驅(qū)動(dòng)。
重要手動(dòng)更新virtio驅(qū)動(dòng)時(shí)涉及到網(wǎng)卡驅(qū)動(dòng)的更新,因此會(huì)有約10秒左右的網(wǎng)絡(luò)中斷,可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)您提前做好風(fēng)險(xiǎn)評(píng)估和準(zhǔn)備工作。
如果ECS實(shí)例的數(shù)據(jù)盤數(shù)量較多,可能需要1~2分鐘才能完成virtio驅(qū)動(dòng)的更新。
您可以根據(jù)實(shí)際情況,選擇以下任一方式手動(dòng)更新virtio驅(qū)動(dòng):
使用腳本更新(實(shí)例可以訪問(wèn)公網(wǎng))
如果您的Windows實(shí)例能夠訪問(wèn)公網(wǎng),可以通過(guò)該方式快速更新virtio驅(qū)動(dòng)。
遠(yuǎn)程連接待更新驅(qū)動(dòng)的Windows實(shí)例。
具體操作,請(qǐng)參見通過(guò)密碼認(rèn)證登錄Windows實(shí)例。
在Windows實(shí)例中,下載用于更新virtio驅(qū)動(dòng)的腳本。
下載地址:InstallVirtIo.ps1
執(zhí)行InstallVirtIo.ps1腳本更新virtio驅(qū)動(dòng)。
例如,您將腳本InstallVirtIo.ps1下載到了C:\test目錄下。
打開C:\test文件夾。
您需要打開InstallVirtIo.ps1的實(shí)際下載目錄。
選中InstallVirtIo.ps1文件,單擊鼠標(biāo)右鍵,然后單擊使用 PowerShell 運(yùn)行。
說(shuō)明如果您當(dāng)前Windows實(shí)例的登錄用戶為普通用戶,需要以管理員權(quán)限執(zhí)行腳本。如果是系統(tǒng)用戶,則可以直接執(zhí)行腳本。
如果您在手動(dòng)執(zhí)行腳本時(shí),系統(tǒng)提示您禁止執(zhí)行腳本,則需要您先修改PowerShell的腳本執(zhí)行策略。具體操作,請(qǐng)參見常見問(wèn)題。
腳本執(zhí)行完成后,請(qǐng)重啟Windows實(shí)例。重啟實(shí)例后,virtio驅(qū)動(dòng)更新才會(huì)生效。
具體操作,請(qǐng)參見重啟實(shí)例。
通過(guò)安裝包更新(實(shí)例不能訪問(wèn)公網(wǎng))
如果您的Windows實(shí)例沒(méi)有公網(wǎng)訪問(wèn)能力,可以通過(guò)該方式更新virtio驅(qū)動(dòng)。
在本地主機(jī)上,根據(jù)實(shí)際的操作系統(tǒng)下載對(duì)應(yīng)版本的virtio驅(qū)動(dòng)安裝包,并進(jìn)行解壓。
下載地址:請(qǐng)參見安裝virtio驅(qū)動(dòng)。
將220915.0953.0953_bin.zip安裝包上傳至Windows實(shí)例。
具體操作,請(qǐng)參見上傳或下載文件(Windows)。
在Windows實(shí)例中安裝新版virtio驅(qū)動(dòng)。
安裝方法,請(qǐng)參見安裝virtio驅(qū)動(dòng)。
通過(guò)云助手更新(批量更新多臺(tái)實(shí)例)
如果您有多臺(tái)ECS實(shí)例需要更新virtio驅(qū)動(dòng),且Windows實(shí)例能夠訪問(wèn)公網(wǎng)或者專有網(wǎng)絡(luò)VPC的內(nèi)網(wǎng),可以通過(guò)阿里云的云助手功能批量更新。
說(shuō)明通過(guò)云助手更新virtio驅(qū)動(dòng)時(shí),需要下載驅(qū)動(dòng)相關(guān)的安裝包,系統(tǒng)會(huì)優(yōu)先訪問(wèn)VPC內(nèi)網(wǎng)進(jìn)行下載,如果VPC內(nèi)網(wǎng)訪問(wèn)受限導(dǎo)致下載失敗,系統(tǒng)再訪問(wèn)公網(wǎng)進(jìn)行下載。
在左側(cè)導(dǎo)航欄,選擇 。
在頂部菜單欄,選擇地域。
選擇的地域需要與您的ECS實(shí)例所屬的地域保持一致。
使用云助手批量更新驅(qū)動(dòng)。
您可以通過(guò)云助手手動(dòng)設(shè)置命令內(nèi)容,完成驅(qū)動(dòng)更新,也可以通過(guò)云助手的公共命令快速完成驅(qū)動(dòng)更新。本文分別介紹不同的云助手更新驅(qū)動(dòng)方式。
(推薦)通過(guò)公共命令批量更新驅(qū)動(dòng)
在ECS云助手頁(yè)面,單擊公共命令頁(yè)簽,然后在搜索欄中輸入
ACS-ECS-InstallVirtioDriver-windows.ps1
進(jìn)行搜索。在公共命令
ACS-ECS-InstallVirtioDriver-windows.ps1
區(qū)域框中單擊執(zhí)行。在執(zhí)行命令面板的選擇實(shí)例區(qū)域,選中需要更新驅(qū)動(dòng)的實(shí)例ID。
手動(dòng)設(shè)置命令內(nèi)容批量更新驅(qū)動(dòng)
在ECS云助手頁(yè)面,單擊創(chuàng)建/執(zhí)行命令。
在創(chuàng)建執(zhí)行命令面板,完成以下配置。
在命令信息區(qū)域,必填參數(shù)說(shuō)明如下表所示,其他參數(shù)保持默認(rèn)值即可。更多參數(shù)信息,請(qǐng)參見創(chuàng)建并執(zhí)行命令。
參數(shù)
說(shuō)明
命令來(lái)源
選擇輸入命令內(nèi)容。
命令類型
選擇PowerShell。
命令內(nèi)容
以下任意一種方式均可完成virtio驅(qū)動(dòng)的更新:
通過(guò)InstallVirtIo.ps1腳本更新virtio驅(qū)動(dòng)。
您需要在本地主機(jī)下載InstallVirtIo.ps1腳本,然后將腳本的內(nèi)容完整復(fù)制到云助手的命令內(nèi)容中。
通過(guò)云助手插件更新virtio驅(qū)動(dòng)。
將以下命令復(fù)制到云助手的命令內(nèi)容中。
acs-plugin-manager.exe --exec --plugin=UpdateVirtIo
執(zhí)行計(jì)劃
選擇立即執(zhí)行。
在選擇實(shí)例區(qū)域,選中需要更新驅(qū)動(dòng)的實(shí)例ID。
單擊執(zhí)行。
您可以在命令執(zhí)行結(jié)果頁(yè)簽查看命令的執(zhí)行結(jié)果。具體操作,請(qǐng)參見通過(guò)控制臺(tái)查看執(zhí)行結(jié)果。多臺(tái)ECS實(shí)例中的一臺(tái)實(shí)例內(nèi)命令執(zhí)行結(jié)果信息如下圖所示,表示該實(shí)例成功更新virtio驅(qū)動(dòng)。
批量重啟多臺(tái)Windows實(shí)例。重啟實(shí)例后,virtio驅(qū)動(dòng)更新才會(huì)生效。
具體操作,請(qǐng)參見重啟實(shí)例。
常見問(wèn)題
解決方案:部分Windows操作系統(tǒng)版本中,PowerShell為保證安全性,默認(rèn)禁止運(yùn)行腳本。您可以修改PowerShell的腳本執(zhí)行策略,使PowerShell支持運(yùn)行腳本。具體操作如下:
運(yùn)行以下命令,使PowerShell支持運(yùn)行腳本。
Set-ExecutionPolicy Unrestricted
在命令行輸入
A
,然后按下Enter鍵,更改策略。再次手動(dòng)運(yùn)行腳本。
PowerShell為保證系統(tǒng)安全,將在命令行中回顯安全警告,您需要在命令行輸入
R
,然后按下Enter鍵,運(yùn)行一次腳本。當(dāng)腳本成功運(yùn)行后,建議運(yùn)行以下命令,恢復(fù)PowerShell的默認(rèn)配置,以保證系統(tǒng)安全。
Set-ExecutionPolicy Restricted
在命令行輸入
A
,然后按下Enter鍵,更改策略。
解決方案:您可以手動(dòng)下載最新的Windows驅(qū)動(dòng)程序包,替換存在問(wèn)題的網(wǎng)卡驅(qū)動(dòng),以解決該問(wèn)題。具體操作如下:
遠(yuǎn)程連接目標(biāo)Windows實(shí)例。
具體操作,請(qǐng)參見通過(guò)密碼認(rèn)證登錄Windows實(shí)例。
- 說(shuō)明
如果您的Windows實(shí)例不能成功下載該驅(qū)動(dòng)包,您可以先將驅(qū)動(dòng)包下載至本地物理主機(jī),然后通過(guò)遠(yuǎn)程桌面連接工具、FTP等方式將驅(qū)動(dòng)包上傳至Windows實(shí)例。搭建FTP站點(diǎn)的具體操作,請(qǐng)參見手動(dòng)搭建FTP站點(diǎn)(Windows)。
成功下載后,您可以查看到名為new_virtio.zip的驅(qū)動(dòng)程序包。
解壓Windows驅(qū)動(dòng)程序包,然后打開new_virtio文件夾進(jìn)行查看。
打開文件夾后,您可以查看到不同Windows操作系統(tǒng)版本對(duì)應(yīng)的文件夾。
各個(gè)文件夾中保存不同操作系統(tǒng)適用的驅(qū)動(dòng)。您只需關(guān)注以下文件夾:
win10目錄中保存的驅(qū)動(dòng)適用于:Windows Server 2016、Windows Server 2019以及Windows 10。
Win8目錄中保存的驅(qū)動(dòng)適用于:Windows Server 2012 R2、Windows 8.1。
win7目錄中保存的驅(qū)動(dòng)適用于:Windows Server 2008 R2、Windows 7。
卸載Windows實(shí)例中的網(wǎng)卡驅(qū)動(dòng)。
本示例以Windows Server 2019 64位為例,介紹具體的操作步驟,其他Windows操作系統(tǒng)版本的操作步驟與之類似。
打開Windows控制面板,在搜索控制面板文本框,輸入
設(shè)備管理器
進(jìn)行搜索。單擊設(shè)備管理器,打開設(shè)備管理器。
單擊網(wǎng)絡(luò)適配器,然后右鍵單擊Red Hat VirtIO Ethernet Adapter。
單擊卸載設(shè)備(U)。
在卸載設(shè)備對(duì)話框,選中刪除此設(shè)備的驅(qū)動(dòng)程序軟件前的復(fù)選框,然后單擊卸載。
成功卸載后,設(shè)備管理器中將不再顯示Red Hat VirtIO Ethernet Adapter。
安裝最新版Windows網(wǎng)卡驅(qū)動(dòng)。
在Windows PowerShell中,運(yùn)行以下命令,選擇打開對(duì)應(yīng)的Windows驅(qū)動(dòng)程序文件夾。
例如,本示例中Windows實(shí)例的操作系統(tǒng)版本為Windows Server 2019 64位,且Windows驅(qū)動(dòng)程序保存在C:\test文件夾中,則需要打開的文件夾路徑為C:\test\new_virtio\win10\amd64。
cd C:\test\new_virtio\win10\amd64
在PowerShell中,運(yùn)行以下命令,安裝最新版Windows網(wǎng)卡驅(qū)動(dòng)。
pnputil -i -a netkvm.inf
如下圖所示,表示網(wǎng)卡驅(qū)動(dòng)成功安裝。
返回或重新打開設(shè)備管理器,右鍵單擊主機(jī)名稱,然后單擊掃描檢測(cè)硬件改動(dòng)(A)。
例如,本示例中Windows實(shí)例的主機(jī)名稱為
test
,則操作示例如下圖所示:掃描檢測(cè)完成后,您可以在設(shè)備管理器中查看到新增的網(wǎng)絡(luò)適配器。
查看最新版的網(wǎng)卡驅(qū)動(dòng)信息。
單擊網(wǎng)絡(luò)適配器,然后右鍵單擊Red Hat VirtIO Ethernet Adapter。
單擊屬性(R)。
在Red Hat VirtIO Ethernet Adapter 屬性對(duì)話框,單擊驅(qū)動(dòng)程序頁(yè)簽,查看驅(qū)動(dòng)信息。
重啟Windows實(shí)例。重啟實(shí)例后,新版的驅(qū)動(dòng)才會(huì)生效。
具體操作,請(qǐng)參見重啟實(shí)例。
相關(guān)文檔
如果需要在線擴(kuò)容云盤,請(qǐng)參見步驟一:擴(kuò)容云盤容量。
如果需要查詢磁盤序列號(hào),請(qǐng)參見查看磁盤序列號(hào)。