[发明专利]一种虚拟机machine-id同步的方法在审
申请号: | 202211083929.6 | 申请日: | 2022-09-06 |
公开(公告)号: | CN115437745A | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 张艳军 | 申请(专利权)人: | 中电云数智科技有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京尚钺知识产权代理事务所(普通合伙) 11723 | 代理人: | 王海荣 |
地址: | 430058 湖北省武汉市蔡甸区经济*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟机 machine id 同步 方法 | ||
本发明涉及虚拟机技术领域,提供一种虚拟机machine‑id同步的方法,包括:Linux系统启动首先进入early boot阶段,执行systemd程序;systemd程序启动初始化并调用machine‑id‑setup程序;执行machine‑id‑setup程序,重新生成虚拟机的machine‑id并保存在内存文件/run/machine‑id中;通过执行systemd程序完成switch root,结束early boot阶段;将内存文件/run/machine‑id中保存的值更新到磁盘文件/etc/machine‑id中;执行各项系统服务的初始化,完成系统启动。根据本发明示例性实施例的一种虚拟机machine‑id同步的方法,可以减少系统环境的隐患,提升集群环境运行的稳定性,提高大规模虚拟机部署的效率。
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机machine-id同步的方法。
背景技术
云计算是当前信息产业的重要基础,虚拟化技术是云计算的强有力支撑,因此安装Linux虚拟机在以集群为载体的云计算业务中出现的频率也越来越高。为了提高安装和部署的效率,目前云计算场景多采用克隆虚拟机的方式实现虚拟主机的批量部署,即利用预安装好的虚拟机环境导出固定格式的磁盘镜像文件,再将此磁盘镜像在其他安装环境直接导入,创建出完全相同的Linux虚拟主机,省去了安装系统的复杂过程。
虽然利用克隆虚拟机的磁盘镜像文件可以实现更高效的安装和部署,但同时也会因此引入一些新的问题。由于磁盘镜像是对虚机的整个环境进行克隆,则重新安装的系统上的所有文件与原系统仍是相同的,包括/etc目录下的所有文件,对于由systemd管理用户程序的Linux系统,其中用作单机系统唯一标识的/etc/machine-id的内容(即machine-id,计算机系统唯一ID)已无法体现新安装系统的唯一性。由此会导致本机上其他依赖machine-id唯一性完成初始化的服务,在与其他多主机进行互联互通时将会出现不可避免的冲突,以及某些无法预知的运行时错误。比如,在dhcp模式下,当ipv6本地地址的生成策略为stable-privacy时,地址是通过哈希算法计算得出,而/etc/machine-id是该哈希算法的键值之一,若两个环境的machine-id相同则会导致ip地址冲突。
使用非磁盘镜像文件安装虚拟机时,machine-id由systemd根据qemu-kvm所创建虚拟机domain的唯一标识uuid重新生成并保存到文件/etc/machine-id中。因此,针对使用磁盘镜像构建虚拟机的场景,需要一种有效的实现方法,在系统启动时使用重新创建的domain uuid同步更新系统的machine-id,保证新系统的/etc/machine-id能够标识当前系统环境的唯一性。
在Linux环境中,由于系统启动时systemd程序只校验machine-id的有无,并未对其正确性做出检查,只有在machine-id不存在时才会对其进行同步更新。综合上述问题现状,当前被普遍使用的方法是利用systemd的单元组件程序systemd-machine-id-setup解决该问题。在导入克隆虚拟机的磁盘镜像并启动系统完成后,需要在Linux命令行上先手动将系统文件/etc/machine-id删除或清空内容,再执行命令systemd-machine-id-setup,使用domain uuid更新系统唯一标识machine-id,并保存到文件/etc/machine-id中,整体流程示意如下图1所示。
在实际应用中,图1所示的方法存在以下不足:1.Step2、Step3和Step4都需要在系统启动完成后手动执行,对于需要批量部署虚拟机的云计算业务场景,需要专门定制脚本在启动后自动完成该操作以避免重复操作和人为遗漏,增加了部署复杂性和维护工作量,尤其是要确保Step4对所有依赖machine-id的服务都进行重新初始化则比较困难。2.在Step1和Step4之间,系统启动后各项服务已使用错误的machine-id完成初始化并开始工作,在多主机且业务复杂的云计算集群环境中极可能造成更多无法预知的问题,严重影响系统和集群的稳定性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中电云数智科技有限公司,未经中电云数智科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211083929.6/2.html,转载请声明来源钻瓜专利网。