【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

JUNIOR_MU發表於2024-05-08

儲存提供程式是由 VMware 提供或由第三方透過 vSphere APIs for Storage Awareness (VASA) 開發的軟體元件。儲存提供程式也可以稱為 VASA 提供程式。儲存提供程式可與包含外部物理儲存和儲存抽象的各種儲存實體(例如 vSANVirtual Volumes)整合。儲存提供程式也可以支援軟體解決方案,如 I/O 篩選器。

儲存提供程式分為內建儲存提供程式和第三方儲存提供程式,按功能類別分為永續性儲存提供程式和資料服務提供程式,比如I/O 篩選器屬於內建儲存提供程式和資料服務提供程式,vSAN 屬於內建儲存提供程式和永續性儲存提供程式,而Virtual Volumes(vVol)屬於第三方儲存提供程式和永續性儲存提供程式。

I/O 篩選器(I/O Filter)儲存提供程式為內建儲存提供程式,每個新主機新增到vCenter Server後會自動註冊並顯示在儲存提供程式清單中,無需進行手動註冊。在vSphere Client中,展開vCenter-配置-儲存提供程式,即可看到所有的儲存提供程式清單。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

預設情況下,所有正常儲存提供程式都顯示為聯機(online)狀態,但是當發生某些特殊原因,某些儲存提供程式出現了離線(offline)狀態,這樣的話就沒法使用儲存提供程式所提供的功能了,比如I/O 篩選器出現了離線的話,就無法在虛擬機器儲存策略中引用I/O 篩選器的資料服務來處理客戶機作業系統與虛擬磁碟之間的 I/O 請求以及使用快取 I/O 篩選器在 ESXi 主機的本地快閃記憶體裝置上來快取虛擬機器資料。

針對這種問題,我們可以使用MOB對出現離線的儲存提供程式進行登出(Unregister)並重新進行註冊。參考 使用Managed Object Browser(MOB)瀏覽vSphere相關物件 這篇文章,在瀏覽器中訪問下面的地址進入MOB物件管理器。

https://vcsa8-01.lab.com/sms/mob

點選 Method Name 為 QueryStorageManager。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

點選 Invoke Method 應用,再點選 storageManager 。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

點選 Method Name 為 QueryProvider 。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

點選 Invoke Method 應用,可以得到如 vasaProvider-XX 的結果,這些vasaProvider就是代表開頭儲存提供程式中清單。當前環境中,清單中的儲存提供程式都是內建儲存提供程式有I/O 篩選器和vSAN,一共有4臺主機,共4個I/O 篩選器,加上vSAN儲存提供程式,所以下圖一共可以看到5個vasaProvider。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

點選一個vasaProvider進入,比如 vasaProvider-19,再點選名為 QueryProviderInfo 的 Method,查詢該Provider資訊。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

點選 Invoke Method 後,可以看到該vasaProvider的資訊,如名字、uid、狀態、版本、證書過期日期等等,這裡我們需要記住Provider的名稱和uid。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

我可以在下圖這裡依次點選不同的vasaProvider,按照上述的方法,檢視不同的Provider的資訊並記錄其名稱和uid,或者直接在瀏覽器位址列中使用下面的連結,將下圖中的vasaProvider的名稱替換為下面連結中的名稱快速進入 QueryProviderInfo 介面,並 Invoke Method 進行查詢。

https://vcsa8-01.lab.com/sms/mob/?moid=vasaProvider-19&method=QueryProviderInfo

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

根據在vSphere Client中檢視到的儲存提供程式清單,確定是哪一個儲存提供程式出現了離線(offline),也可能是多個,再根據上面查詢到的vasaProvider的資訊並記錄對應儲存提供程式的uid,在我們瞭解了這些資訊後,下面就可以開始對儲存提供程式執行unregister操作了。

重新回到 storageManager 的MOID物件檢視下,找到名為 UnregisterProvider_Task 的Method,在這裡執行操作。

https://vcsa8-01.lab.com/sms/mob?moid=storageManager

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

我們以vSphere Client儲存提供程式清單中的I/O篩選器Provider為152esxi8-a2.lab.com的主機為例,假如該儲存提供程式已出現離線,透過上面的MOB操作該I/O篩選器vasaProvicer為vasaProvider-19,uid為a7e1b56e-fbc5-47c6-900a-6931d155d076。

在點選 UnregisterProvider_Task 後,如下圖所示,我們需要在VALUE中填入儲存提供程式名稱所對應的providerId,也就是uid,並點選 Invoke Method。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

執行上面步驟後,我們到vSphere Client的儲存提供程式檢視重新整理一下,看到I/O篩選器Provider為152esxi8-a2.lab.com已經不在了。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

如果環境中有多個儲存提供程式出現離線,則需要重複執行上述步驟。

執行unregister後,不需要使用storageManager 的MOID物件檢視下的 RegisterProvider_Task 的Method執行註冊操作,只需要重新啟動vCenter的VMware vSphere Profile-Driven Storage Service(vmware-sps)服務,即可自動註冊連線到vCenter的所有儲存提供程式。

以root使用者登入vCenter Server 的SHELL命令列,使用下面命令檢視服務狀態。

service-control --status --all

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

使用以下命令重新啟動 SPS 服務。重啟服務對業務系統虛擬機器的正常執行不受影響。

service-control --stop vmware-sps
service-control --start vmware-sps

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

我們登入到vSphere Client的儲存提供程式檢視重新整理一下,可以看到I/O篩選器Provider為152esxi8-a2.lab.com已經重新註冊,並且你應該能看到儲存提供程式已經重新聯機(online)了。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

上述場景可以解決儲存提供程式的狀態出現離線的問題。從上圖中可以看到每個儲存提供程式都有一個證書,並且證書都有有效期,如果儲存提供程式出現證書即將到期或已到期,該怎麼處理呢?

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

從上圖中可以看到,其實儲存提供程式的證書就是該儲存提供程式所屬主機的主機證書,主機被新增到vCenter Server以後,主機證書由vCenter VMCA管理。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

我們可以透過更新主機證書來重新整理儲存提供程式的證書,比如說以當前環境中的154esxi8-a4.lab.com主機為例,在vSphere Client中更新主機證書。更新主機的證書可能會導致主機與vCenter臨時斷開連線,但業務系統虛擬機器執行不受影響。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

成功更新證書後,主機的證書已被重新整理。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

更新主機證書後,儲存提供程式的證書不會立即更新,同時可能還會出現離線(offline)狀態,我們還需要使用同上述中的方法,像處理儲存提供程式的離線狀態一樣,在MOB中Unregister這個儲存提供程式,然後在vCenter中重啟SPS服務。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

重新註冊儲存提供程式後,154esxi8-a4.lab.com主機I/O 篩選器儲存提供程式的證書已更新。

【VMware vSphere】儲存提供程式中I/O 篩選器狀態顯示為離線以及證書已到期的解決辦法。

參考:Certain IOFIlter Providers are showing as offline

相關文章