[发明专利]升级方法及装置有效
申请号: | 201610951599.6 | 申请日: | 2016-11-01 |
公开(公告)号: | CN108021408B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 田世坤 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/4401;G06F9/455 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 升级 方法 装置 | ||
1.一种升级方法,其特征在于,包括:
安装新的驱动模块,其中,新的驱动模块用于驱动后端服务,所述后端服务为运行在计算设备上用于接收并处理IO请求的服务,所述IO请求为虚拟化平台上的一个或多个虚拟机提交的对虚拟机磁盘进行IO操作的请求,所述虚拟化平台运行在所述计算设备上;
查找所有的虚拟机磁盘对应的虚拟块设备和虚拟字符设备,其中,所述虚拟字符设备用于通知存储设备处理IO请求,所述存储设备用于存储所述IO请求对应的数据;
将查找到的所述虚拟块设备和所述虚拟字符设备与所述新的驱动模块关联,其中,每个查找到的所述虚拟块设备和所述字符设备停止接收新的IO请求;
在确定旧的驱动模块处理完成已经接收到的IO请求,并重新启用所述虚拟块设备和所述虚拟字符设备之后,使用所述新的驱动模块替换所述旧的驱动模块来处理IO请求。
2.根据权利要求1所述的方法,其特征在于,在使用所述新的驱动模块替换所述旧的驱动模块来处理IO请求之前,所述方法还包括:
复制所述新的驱动模块中的函数替换所述旧的驱动模块的函数;
复制所述旧的驱动模块中的数据到所述新的驱动模块中,其中,所述数据至少包括:全局变量。
3.根据权利要求2所述的方法,其特征在于,复制所述新的驱动模块中的函数替换旧的驱动模块的函数包括:
将注册的后端驱动的驱动函数使用所述新的驱动模块中的驱动函数覆盖,所述驱动函数包括以下至少之一:建立连接函数、断开连接函数、事件通知函数。
4.根据权利要求2所述的方法,其特征在于,将查找到的所述虚拟块设备和所述虚拟字符设备与所述新的驱动模块关联,包括:
获取所述新的驱动模块中的所述虚拟块设备和/或所述虚拟字符设备的入口函数;
复制所述新的驱动模块中的驱动入口函数替换所述虚拟块设备和/或所述虚拟字符设备的驱动入口函数。
5.根据权利要求4所述的方法,其特征在于,复制所述新的驱动模块中的函数替换旧的驱动模块的函数包括:
获取所述新的驱动模块中用来表示所述虚拟块设备结构的文件系统的入口函数;
复制所述新的驱动模块中的用来表示所述虚拟块设备结构的文件系统的入口函数,替换所述旧的驱动模块中的所述虚拟块设备对应的入口函数。
6.根据权利要求2所述的方法,其特征在于,
在复制所述旧的驱动模块中的数据到所述新的驱动模块中之前,所述方法还包括:基于所述新的驱动模块分配新的驱动私有数据替代所述旧的驱动模块的私有数据;
复制所述旧的驱动模块中的数据到所述新的驱动模块中包括:复制所述旧的驱动模块中的全局变量到所述新的驱动模块中。
7.根据权利要求1所述的方法,其特征在于,对于每个查找到的所述虚拟机磁盘设备停止接收新的IO请求包括:
关闭事件中断处理使所述后端服务接收不到所述IO请求。
8.根据权利要求1或7所述的方法,其特征在于,确定处理完成所述已经接收到的IO请求包括:
在接收到的IO请求处理完成之后,保持所述后端服务为空闲状态;
停止所述虚拟块设备和所述虚拟字符设备之后,停止所述后端服务中的内核线程。
9.根据权利要求8所述的方法,其特征在于,在复制所述新的驱动模块中的驱动入口函数替换所述虚拟块设备和/或所述虚拟字符设备的驱动入口函数之后,所述方法还包括:
启动所述虚拟块设备;
根据升级后的后端驱动的函数,建立新的内核线程;
启动事件中断处理。
10.根据权利要求9所述的方法,其特征在于,
当升级所述虚拟机的后端驱动的过程中,或升级所述虚拟机的后端驱动之后,出现异常,则采用所述升级方法将所述旧的驱动模块进行恢复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610951599.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种医用术后恢复手扶车
- 下一篇:一种自冷却空压机