虚拟机文件系统故障
虚拟机文件系统故障会导致存储系统上虚拟机运行异常。
现象描述
登录存储系统CLI界面,通过show alarm命令查询到“Virtual Machine File System Is Abnormal”的告警信息。同时,通过show vm_fs general命令查询到有文件系统的“Health Status”为“fault”。
可能原因
- 虚拟机文件系统故障。
- 虚拟机文件系统所在的LUN从默认的LUN组中移除。
- 虚拟机文件系统所在LUN的LUN组从映射视图中移除。
- 虚拟机使用的启动器从所在的主机中移除。
- 虚拟机使用的主机从所在的主机组中移除。
- 虚拟机使用的主机组从映射视图中移除。
- 虚拟机文件系统所对应的LUN被删除或故障。
developer模式的进入和使用方法,请参见《高级运维命令参考》。
处理步骤
- 原因1:虚拟机文件系统故障。
- 在develpoer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
- 在develpoer模式下执行restore vm_fs general命令恢复虚拟机文件,通过参数vm_fs_id指定故障的文件系统ID。
- 在develpoer模式下执行change vm_fs general status=mount命令重新加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 原因2:虚拟机文件系统所在的LUN从默认的LUN组中移除。
- 在CLI模式下执行add lun_group lun命令向指定LUN组中添加原来删除的LUN,通过参数lun_group_id和lun_id_list指定LUN组ID和原来删除的LUN成员。
如果移除LUN后重新启动了控制器,则重新添加LUN后,需要重新启动控制器。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 3。
- 在develpoer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
如果该命令执行失败,根据命令提示处理直至命令执行成功。
- 在develpoer模式下执行change vm_fs general status=mount命令重新加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 在CLI模式下执行add lun_group lun命令向指定LUN组中添加原来删除的LUN,通过参数lun_group_id和lun_id_list指定LUN组ID和原来删除的LUN成员。
- 原因3:虚拟机文件系统所在LUN的LUN组从映射视图中移除。
- 在CLI模式下执行add mapping_view lun_group命令,向指定的映射视图中添加原来删除的LUN组,通过参数mapping_view_id和lun_group_id指定映射视图ID和原来删除的LUN组ID。
如果移除LUN组后重新启动了控制器,则重新添加LUN组后,需要重新启动控制器。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 3。
- 在developer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
如果该命令执行失败,根据命令提示处理直至命令执行成功。
- 在developer模式下执行change vm_fs general status=mount命令加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 在CLI模式下执行add mapping_view lun_group命令,向指定的映射视图中添加原来删除的LUN组,通过参数mapping_view_id和lun_group_id指定映射视图ID和原来删除的LUN组ID。
- 原因4:虚拟机使用的启动器从所在的主机中移除。
- 在CLI模式下执行add host vhost_initiator命令,向指定的主机中添加原来删除的启动器,通过参数host_id和wwn指定主机ID和原来删除的启动器wwn。
如果移除启动器后重新启动了控制器,则重新添加启动器后,需要重新启动控制器。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 3。
- 在developer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
如果该命令执行失败,根据命令提示处理直至命令执行成功。
- 在developer模式下执行change vm_fs general status=mount命令加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 在CLI模式下执行add host vhost_initiator命令,向指定的主机中添加原来删除的启动器,通过参数host_id和wwn指定主机ID和原来删除的启动器wwn。
- 原因5:虚拟机使用的主机从所在的主机组中移除。
- 在CLI模式下执行add host_group host命令,向指定的主机组中添加原来删除的主机,通过参数host_group_id和host_id_list指定主机组ID和原来删除的主机ID。
如果移除主机后重新启动了控制器,则重新添加主机后,需要重新启动控制器。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 3。
- 在developer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
如果该命令执行失败,根据命令提示处理直至命令执行成功。
- 在developer模式下执行change vm_fs general status=mount命令加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 在CLI模式下执行add host_group host命令,向指定的主机组中添加原来删除的主机,通过参数host_group_id和host_id_list指定主机组ID和原来删除的主机ID。
- 原因6:虚拟机使用的主机组从映射视图中移除。
- 在CLI模式下执行add mapping_view host_group命令向指定的映射视图中添加原来删除的主机组,通过参数mapping_view_id和host_group_id指定映射视图ID和原来删除的主机组ID。
如果移除主机组后重新启动了控制器,则重新添加主机组后,需要重新启动控制器。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 3。
- 在developer模式下执行change vm_fs general status=umount命令卸载虚拟机文件系统,通过参数vm_fs_id指定卸载的文件系统ID。
如果该命令执行失败,根据命令提示处理直至命令执行成功。
- 在developer模式下执行change vm_fs general status=mount命令加载虚拟机文件系统,通过参数vm_fs_id指定加载的文件系统ID。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。
- 在CLI模式下执行add mapping_view host_group命令向指定的映射视图中添加原来删除的主机组,通过参数mapping_view_id和host_group_id指定映射视图ID和原来删除的主机组ID。
- 原因7:虚拟机文件系统所对应的LUN被删除或故障。
- 以管理员或超级管理员身份登录CLI管理界面。
- 执行命令poweroff virtual_machine,强制关闭虚拟机。
强制关闭虚拟机只能在虚拟机无法正常关闭时使用,否则可能导致虚拟机故障。
- 使用命令delete virtual_machine general,强制删除虚拟机。
强制删除虚拟机只能在虚拟机文件系统故障且无法修复时使用,否则可能导致虚拟机文件系统上,残留该虚拟机的镜像文件。
- 使用命令delete vm_fs general删除对应的虚拟机文件系统。
如果在虚拟机文件系统故障时强制删除了虚拟机,在虚拟机文件系统恢复后,该文件系统上会残留一个虚拟机镜像文件。此时,可以通过命令create virtual_machine general创建一个和前面强制删除的虚拟机同名的虚拟机,再用命令delete virtual_machine general删除此虚拟机,来删除虚拟机残留的文件。
- 查看故障是否解决。
- 是 => 处理完毕。
- 否 => 保持故障环境并联系技术支持工程师进行处理。