logo好方法网

一种虚拟机磁盘在线迁移去冗余方法


技术摘要:
本发明公开了一种虚拟机磁盘在线迁移去冗余方法,包括:首先,根据文件系统组织方式,读取磁盘中的超级块,然后根据超级块中的块组描述信息,读取每个块组中的位图,并确定该位图记录块组中的每个块是已用还是可用,利用获取到的所有块组的位图为整个磁盘构建完整的位  全部
背景技术:
虚拟机迁移技术主要指将虚拟机及其运行状态从一台计算节点传输到另一台计 算节点,保证虚拟机在源计算节点因故障或维护而停机时可以在目的端继续提供服务。传 统的虚拟机迁移工作主要假设在同一个数据中心或集群中迁移虚拟机,然而,为了适应日 益增长的大规模应用部署需求和更高的可靠性需求,跨广域网迁移的需求越来越高。不同 于数据中心内迁移,广域网迁移需要对磁盘进行迁移,然而,磁盘数据量往往很大,消耗大 量网络带宽。 因此,如何减小磁盘在线迁移网络带宽消耗成为一个重要且具有挑战性的问题。 以下文献提供了可供参考的优化虚拟机在线迁移效率的技术解决方案: 文献1.一种广域网虚拟机动态迁移方法及系统-201010570140.4,该文献该方法 在目的主机所在的数据中心中,建立所有运行中虚拟机的内存和外存数据的分布式索引, 形成目的主机环境。在虚拟机的迁移过程中,在目的主机环境中检索源主机上虚拟机内存 和外存数据,只使用广域网传输目的主机环境不存在的内存和外存数据。同时在传输过程 中,源主机虚拟机管理器标记内存和外存脏块,迭代发送内存和外存脏块,直至达到停止条 件,停止内外存数据的传输,源主机上虚拟机进入停机阶段,目的主机启动虚拟机。该方法 能够减少广域网上虚拟机迁移占用的网络带宽,缩短虚拟机动态迁移的时间。 文献2.Jin  H ,Deng  L ,Wu  S ,et  al .Live  virtual  machine  migration  with  adaptive,memory  compression[C].2009IEEE  International  Conference  on  Cluster  Computing  and  Workshops.IEEE,2009:1-10.该文献将内存页面分为三类:1)含有大量0字 节的;2)非常相似的;3)非常不同的。针对第一类内存页,直接进行扫描,只记录其中非零的 信息;针对第二类内存页,论文使用统计技术中的Wkdm算法进行压缩;对最后一类,则采用 了LZO—现代的Lempel-Ziv算法进行压缩。 文献3.Wood  T,Ramakrishnan  K,Van  Der  Merwe  J,et  al.Cloudnet:A  platform  for  optimized  wan  migration  of  virtual  machines[J] .University  of  Massachusetts  Technical  Report  TR-2010-002,2010.该文献的是针对广域网的虚拟机 在线迁移,提出了基于cache的内存去冗余技术,同时使用差分压缩算法,即利用映像数据 的自相似性进行压缩,改进了动态内存压缩算法中解压和压缩过程所带来的时间及CPU开 销,快速有效地减少了迁移中的数据量,有效提升了迁移性能。 然而,上述方法存在许多不足之处: 1 .上述方法使用压缩算法将消耗大量CPU资源,对因资源紧张而进行的虚拟机迁 移有非常大的性能影响;此外,建立索引还将消耗大量存储空间。 2.上述方法在压缩过程中没能有效利用数据的上层语义信息,因此压缩算法是盲 目的,造成大量的资源浪费。 3 CN 111580932 A 说 明 书 2/4 页
技术实现要素:
本发明提供了一种虚拟机磁盘在线迁移去冗余方法。磁盘空间有两种常见状态, 已用状态和可用状态(未使用状态)。在迁移过程中,其实只需迁移已用磁盘块即可。但是目 前的迁移策略迁移所有的磁盘块,而不管它们的状态如何,这将最终导致更长的迁移时间 和更高的网络流量。在本发明中,提出了一种基于虚拟机自省(VMI)的方法来识别磁盘中的 未使用块。该方法利用虚拟机自省技术在迁移进程中扫描虚拟机文件系统元数据(该元数 据记录当前未使用块)。有了这些信息,在后拷贝拉取虚拟机状态的环节,便可以不拷贝这 些未使用的块,从而避免大量不必要的传输。具体的,要获取这些信息,需要扫描虚拟磁盘 文件系统中的所有元数据,包括磁盘中的元数据(Meta-data)和内存缓存中的元数据。注 意,此处需要扫描内存缓存中的元数据是因为现代操作系统在内存中缓存部分文件系统元 数据,而且这些数据是最新的,可能与磁盘中的元数据不一致。 为达到减小磁盘在线迁移网络带宽消耗的目的,本发明采取如下技术方案实现 的: 一种虚拟机磁盘在线迁移去冗余方法,包括以下步骤: 首先,根据文件系统组织方式,读取磁盘中的超级块,然后根据超级块中的块组描 述信息,读取每个块组中的位图,并确定该位图记录块组中的每个块是已用还是可用,利用 获取到的所有块组的位图为整个磁盘构建完整的位图;其次,在虚拟机迁移过程中,根据得 到的磁盘使用信息进行磁盘迁移,此时只传输已用磁盘块;再次,使用虚拟机自省技术从原 始内存数据中提取可能更新过的未使用的块位图,在获取了所有块设备元数据在内存中的 缓存后,用其更新位图信息并将之前未迁移的已用磁盘块用现有方法迁移至目的端。 本发明进一步的改进在于,具体包括以下实现步骤: 步骤一: 在停机迁移阶段之前,开始读取文件系统结构里的可用块;根据文件系统组织方 式,首先读取磁盘中的超级块,它具有每个块组的位置信息;然后根据超级块中的块组描述 信息,读取每个块组中的位图,并确定该位图记录块组中的每个块是已用还是可用;最后, 在获取所有块组的位图后,为整个磁盘构建完整的位图; 步骤二: 在虚拟机迁移过程中,根据步骤一中得到的磁盘使用信息进行磁盘迁移,此时只 传输步骤一中得到的已用磁盘块; 步骤三: 在停机迁移过程中,利用虚拟机自省技术检查内存中是否有可用的元数据缓存; 若有元数据缓存,方法将根据内存中的元数据更新步骤一获得的结果; 步骤四:在获取了所有块设备元数据在内存中的缓存后,用其更新步骤一中的位 图信息,然后将步骤二中未迁移的已用磁盘块用现有方法迁移至目的端。 与现有技术相比,本发明至少具有如下有益的技术效果: 本发明提供的一种虚拟机磁盘在线迁移去冗余方法,主要利用数据自身的语义信 息进行数据压缩,从而引入非常小的对上层应用的开销。具体的,本发明利用虚拟机自省技 术从虚拟机管理程序中还原出虚拟机系统的语义信息,主要包括磁盘已用空间和磁盘可用 空间(未使用空间)的具体位置信息。然后在迁移磁盘时仅迁移已用空间即可。相比于现有 4 CN 111580932 A 说 明 书 3/4 页 方法,该方法可大量节省迁移时间和迁移带宽。该方法的技术难度一方面在于要从虚拟机 管理程序中将代表磁盘信息的编码还原成具有语言的信息;另一方面在于内存中的磁盘信 息和磁盘自身的信息存在不一致,需要根据内存数据和磁盘数据共同还原出最新状态信 息。 附图说明 图1为本发明整体框架示意图。 图2为获取内存中的块设备元数据的虚拟机自省流程图。
分享到:
收藏