【VMware vSphere】存储提供程序中I/O 筛选器状态显示为脱机以及证书已到期的解决办法。

存储提供程序是由 VMware 提供或由第三方通过 vSphere APIs for Storage Awareness (VASA) 开发的软件组件。存储提供程序也可以称为 VASA 提供程序。存储提供程序可与包含外部物理存储和存储抽象的各种存储实体(例如 vSAN 和 Virtual Volumes)集成。存储提供程序也可以支持软件解决方案,如 I/O 筛选器。

存储提供程序分为内置存储提供程序和第三方存储提供程序,按功能类别分为持久性存储提供程序和数据服务提供程序,比如I/O 筛选器属于内置存储提供程序和数据服务提供程序,vSAN 属于内置存储提供程序和持久性存储提供程序,而Virtual Volumes(vVol)属于第三方存储提供程序和持久性存储提供程序。

I/O 筛选器(I/O Filter)存储提供程序为内置存储提供程序,每个新主机添加到vCenter Server后会自动注册并显示在存储提供程序清单中,无需进行手动注册。在vSphere Client中,展开vCenter-配置-存储提供程序,即可看到所有的存储提供程序清单。

默认情况下,所有正常存储提供程序都显示为联机(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。

点击 Invoke Method 应用,再点击 storageManager 。

点击 Method Name 为 QueryProvider 。

点击 Invoke Method 应用,可以得到如 vasaProvider-XX 的结果,这些vasaProvider就是代表开头存储提供程序中清单。当前环境中,清单中的存储提供程序都是内置存储提供程序有I/O 筛选器和vSAN,一共有4台主机,共4个I/O 筛选器,加上vSAN存储提供程序,所以下图一共可以看到5个vasaProvider。

点击一个vasaProvider进入,比如 vasaProvider-19,再点击名为 QueryProviderInfo 的 Method,查询该Provider信息。

点击  Invoke Method 后,可以看到该vasaProvider的信息,如名字、uid、状态、版本、证书过期日期等等,这里我们需要记住Provider的名称和uid。

我可以在下图这里依次点击不同的vasaProvider,按照上述的方法,查看不同的Provider的信息并记录其名称和uid,或者直接在浏览器地址栏中使用下面的链接,将下图中的vasaProvider的名称替换为下面链接中的名称快速进入 QueryProviderInfo 界面,并 Invoke Method 进行查询。

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

根据在vSphere Client中查看到的存储提供程序清单,确定是哪一个存储提供程序出现了脱机(offline),也可能是多个,再根据上面查询到的vasaProvider的信息并记录对应存储提供程序的uid,在我们了解了这些信息后,下面就可以开始对存储提供程序执行unregister操作了。

重新回到 storageManager 的MOID对象视图下,找到名为 UnregisterProvider_Task 的Method,在这里执行操作。

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

我们以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。

执行上面步骤后,我们到vSphere Client的存储提供程序视图刷新一下,看到I/O筛选器Provider为152esxi8-a2.lab.com已经不在了。

如果环境中有多个存储提供程序出现脱机,则需要重复执行上述步骤。

执行unregister后,不需要使用storageManager 的MOID对象视图下的 RegisterProvider_Task 的Method执行注册操作,只需要重新启动vCenter的VMware vSphere Profile-Driven Storage Service(vmware-sps)服务,即可自动注册连接到vCenter的所有存储提供程序。

以root用户登录vCenter Server 的SHELL命令行,使用下面命令查看服务状态。

service-control --status --all

使用以下命令重新启动 SPS 服务。重启服务对业务系统虚拟机的正常运行不受影响。

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

我们登录到vSphere Client的存储提供程序视图刷新一下,可以看到I/O筛选器Provider为152esxi8-a2.lab.com已经重新注册,并且你应该能看到存储提供程序已经重新联机(online)了。

上述场景可以解决存储提供程序的状态出现脱机的问题。从上图中可以看到每个存储提供程序都有一个证书,并且证书都有有效期,如果存储提供程序出现证书即将到期或已到期,该怎么处理呢?

从上图中可以看到,其实存储提供程序的证书就是该存储提供程序所属主机的主机证书,主机被添加到vCenter Server以后,主机证书由vCenter VMCA管理。

我们可以通过更新主机证书来刷新存储提供程序的证书,比如说以当前环境中的154esxi8-a4.lab.com主机为例,在vSphere Client中更新主机证书。更新主机的证书可能会导致主机与vCenter临时断开连接,但业务系统虚拟机运行不受影响。

成功更新证书后,主机的证书已被刷新。

更新主机证书后,存储提供程序的证书不会立即更新,同时可能还会出现脱机(offline)状态,我们还需要使用同上述中的方法,像处理存储提供程序的脱机状态一样,在MOB中Unregister这个存储提供程序,然后在vCenter中重启SPS服务。

重新注册存储提供程序后,154esxi8-a4.lab.com主机I/O 筛选器存储提供程序的证书已更新。

参考:Certain IOFIlter Providers are showing as offline

热门相关:超能狂兵   我能改变东西颜色   九重神格   重生之神级败家子   从现代飞升以后