CN109426548A - 防止在不期望的主机服务器上运行脏虚拟机的方法和系统 - Google Patents

防止在不期望的主机服务器上运行脏虚拟机的方法和系统 Download PDF

Info

Publication number
CN109426548A
CN109426548A CN201810684935.4A CN201810684935A CN109426548A CN 109426548 A CN109426548 A CN 109426548A CN 201810684935 A CN201810684935 A CN 201810684935A CN 109426548 A CN109426548 A CN 109426548A
Authority
CN
China
Prior art keywords
host server
hard disk
virtual
virtual hard
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810684935.4A
Other languages
English (en)
Other versions
CN109426548B (zh
Inventor
S.维什诺伊
K.维诺德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109426548A publication Critical patent/CN109426548A/zh
Application granted granted Critical
Publication of CN109426548B publication Critical patent/CN109426548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • G06F2212/286Mirrored cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

Abstract

本公开描述了用于防止脏虚拟机(VM)在不期望的主机服务器上的运行的方法和系统。根据一个实施例,存在于第一主机服务器中的高速缓存模块接收要在第一主机服务器上高速缓存的VM的写入数据。VM由支撑超V虚拟硬盘(VHDX)文件格式和虚拟硬盘(VHD)的文件格式或具有唯一地可识别的元数据的任何虚拟文件格式的虚拟硬盘组成。响应于写入数据的接收,在迁移到第二主机服务器之前,高速缓存模块将虚拟硬盘文件的元数据改变为自定义格式,并且因此VM变脏。当脏虚拟机向第二主机服务器发送迁移请求时,存在于第二主机服务器中的高速缓存模块检查虚拟硬盘文件的自定义格式是否是可识别的。如果不是,则第二主机服务器拒绝由VM发起的迁移请求。

Description

防止在不期望的主机服务器上运行脏虚拟机的方法和系统
相关交叉引用
本申请要求于2017年8月28日提交给印度专利局的印度专利申请第201741030436号的印度专利申请的优先权,其全部内容通过引用并入本文中。
技术领域
本公开总体涉及高速缓存存储器,并且更具体地涉及用于防止在虚拟化集群环境中不期望的主机服务器上运行脏虚拟机(dirty virtual machine)的方法和系统。
背景技术
本领域中存在不同形式的计算机存储器,即最慢的存储器和最快的存储器。最慢的存储器可能以虚拟存储器(诸如,硬盘驱动器或远程储存器)的形式呈现出离中央处理单元(central processing unit,CPU)最远。最快的存储器以主存储器、高速缓存和多个寄存器的形式呈现出离CPU非常近。在这些当中,主存储器是最慢的。高速缓存存储器用于存储两种类型的数据,即只读数据和读取/写入数据。当只读数据被高速缓存时,从主存储器读取的数据可以被存储在高速缓存中,以便下次需要读取数据时,其可以从更快的高速缓存而不是从更慢的主存储器被读取。从主存储器被高速缓存读取的只读数据的示例是对程序的指令。大多数情况下,只读数据不易于数据丢失,因为在高速缓存中损坏的任何数据总是可以从存储器中读取。
当读取/写入数据被高速缓存时,要被写入到主存储器的数据可以改为被写入到高速缓存。高速缓存处理写入的方式被称为高速缓存的“写入策略”。有不同的写入策略,其中两个在下面描述。
一个这样的写入策略是写回式高速缓存。当在当前被高速缓存的位置处向主存储器进行写入数据时,新数据仅被写入到高速缓存而不被写入到主存储器。相应地,如果另一存储器位置需要使用该数据被存储的高速缓存行,则当前存储的数据需要被保存-即被写回-到主存储器,以便该行可以被新的存储器位置使用。另一写入策略是直写式高速缓存。在该方法中,不论处理器何时写入到高速缓存的存储器位置,高速缓存和底层存储器(underlying memory)位置两者都被更新。高速缓存写入的数据可能包括任何数据,例如用户修改的文档。因为写回策略冒着存储器完整性的风险提供更好的性能,并且因此由于高速缓存错误其易于数据丢失。
在图1中显示的示例性场景中使用了一种这样的写回式高速缓存解决方案即,固态驱动(solid state drive,SSD)高速缓存解决方案。图1示出了虚拟化集群生态系统/环境的示例性高级视图。虚拟化集群环境提供了用于运行虚拟机(virtual machines,VM)以及其他特征(如高可用性、共享储存、故障迁移等)的基础设施。虚拟化集群生态系统中的一些是超V、基于内核的虚拟机(kernel-based virtual machine,KVM)Esxi等。如图1所示,虚拟化集群生态系统由N个主机服务器、一个或多个虚拟机(VM和VM’)、一个或多个固态驱动器(SSD)和远程储存器组成。所有N个主机服务器都被超V启用,并且在连接到主机服务器的一个或多个虚拟机中支持超V虚拟硬盘(Hyper-V virtual hard disk,VHDX)和VHD文件格式。N个主机服务器可以具有任何虚拟平台支持,该虚拟平台支持可以针对任何文件格式进行基于元数据的检测。
有时,由于资源授权或连接失败,虚拟机从第一主机服务器迁移到第二主机服务器。在连接失败的情况下,主机服务器不会知道关于VM迁移的情况。在虚拟机显示为“已启动”之前,SSD中的写回式高速缓存解决方案会刷新脏数据。还有集群环境中的VM可以迁移并在高速缓存解决方案不存在或未被启用的主机上运行的情况。如果脏VM在没有高速缓存解决方案的主机上启动,并且如果脏数据被未刷新,则用户将看到损坏的虚拟机。
本领域存在用于解决上述问题的几个解决方案。一个这样的解决方案叙述了一个保持轮询新主机的集群,无论这些主机是否具有高速缓存解决方案,并且没有高速缓存解决方案的主机最终都会被集群移除。然而,轮询可能会挂起集群或者可能有轮询时间窗口,在该时间窗口中脏VM在轮询检测到它之前选择这个主机。另一解决方案讨论了关于虚拟化平台,它通过改变他们的虚拟化集群生态系统来提供内置支持以创建模块依赖性。然而,一些平台不会向虚拟机提供这种支持。
然而,目前在没有任何平台支持的情况下不存在防止在不期望的主机服务器上运行脏VM的解决方案。
因此,需要方法和系统来防止脏VM在超虚拟环境中在不期望的主机服务器上运行。
以上提到的不足、劣势和问题在本文中得到解决,并且将通过阅读和研究以下说明书被理解。
发明内容
防止在虚拟化集群环境中在不期望的主机服务器上运行具有脏数据的虚拟机的方法。根据一个实施例,该方法由以下组成:通过第一主机服务器的高速缓存模块接收要在第一主机服务器上被高速缓存的虚拟机(VM)的写入数据,其中该VM由支持超V虚拟硬盘(VHDX)文件格式和虚拟硬盘(virtual hard disk,VHD)文件格式中的至少一个的虚拟硬盘组成;在接收到写入数据后由第一主机服务器的高速缓存模块将虚拟硬盘文件的元数据改变为自定义格式;当VM失去与第一主机服务器的连接时,由VM发起迁移请求以建立与第二主机服务器的通信;由第二主机服务器检查虚拟硬盘文件的自定义格式是否是可识别的、并且如果虚拟硬盘文件的自定义格式是不可识别的,则被第二主机服务器拒绝由VM发起的迁移请求。
根据一个实施例,当第一主机服务器不能授予资源或不能提供到VM的连接时,VM从第一主机服务器迁移到第二主机服务器VM。
根据一个实施例,虚拟硬盘文件的元数据包括至少一个签名。
根据一个实施例,虚拟硬盘文件的签名由指定的唯一字符串组成。
根据一个实施例,该方法还包括将虚拟硬盘文件的签名元数据转换成自定义格式,其中自定义格式包括由高速缓存模块识别的字符的集合。
根据一个实施例,在接收到拒绝迁移请求之后,VM执行以下操作中的至少一个:尝试与第一主机服务器重新相连接以及尝试与具有由集群识别的高速缓存模块的主机服务器相连接。
根据一个实施例,该方法进一步包括:将自定义格式的虚拟硬盘文件的签名转换回到脏VM的虚拟硬盘文件,并且如果虚拟硬盘文件的自定义格式可由第二台主机服务器识别,则在第二主机服务器上同步VM的脏数据。
根据一个实施例,VM的脏数据的同步包括从作为用于VM的高速缓存数据的复制服务器的不同服务器获得VM的脏数据。
根据一个实施例,主机服务器能够在支持针对任何文件格式的基于元数据的检测的任何虚拟平台上操作。
根据一个实施例,该方法还包括:由第二主机服务器尝试读取与虚拟机的读取操作相关联的数据,其中第二服务器不具有高速缓存模块;由第二服务器读取VM的虚拟硬盘(VHD)的签名;由第二主机服务器检查虚拟硬盘格式是否是可识别的;以及如果虚拟硬盘格式是不可识别的,则由主机服务器停止读取与虚拟机的读取操作相关联的数据。
本文中的各种实施例还公开了主机服务器。根据一个实施例,主机服务器由处理器组成,具有高速缓存模块的存储器适于:接收要被高速缓存在第一主机服务器上的、虚拟机(VM)的写入数据,其中该VM由支持超V虚拟硬盘(VHDX)文件和虚拟硬盘(VHD)文件的虚拟硬盘组成;在接收到写入数据后将虚拟硬盘文件的元数据改变为自定义格式;并使VM能够迁移到具有虚拟硬盘文件的改变后的元数据的另一主机服务器。
附图说明
根据以下优选实施例和附图的描述,本领域技术人员将会想到其他对象、特征和优点,其中:
图1示出了虚拟化集群生态系统/环境的示例性高级视图。
图2是示出根据一个实施例的防止在不期望的主机服务器上运行脏虚拟机的方法的流程图。
图3是示出根据一个实施例的用于防止脏数据在不期望的主机服务器上运行虚拟机的虚拟化集群环境的系统图。
图4A至4D是示出根据一个实施例的用于运行使用本公开的虚拟机的读取/写入操作的主机服务器的示例性方法的流程图。
图5是示出了根据一个实施例的图1中使用的主机服务器的一个或多个组件的框图。
具体实施方式
本公开提供了用于防止在不期望的主机服务器上运行脏虚拟机的方法和系统。在以下本公开的实施例的详细描述中,参考形成本公开的一部分的附图,并且其中通过图示的方式示出了可以在其中实施本公开的特定实施例。足够详细地描述这些实施例以使得本领域技术人员能够实施本公开,并且要理解的是可以利用其它实施例,并且可以在不脱离本公开的范围的情况下做出改变。因此,不能以限制的意义来采取以下详细描述,并且本公开的范围仅由所附权利要求限定。
本说明书可以指代若干位置处的“一”、“一个”或“一些”实施例。这不一定意味着每个这样的参考是针对相同的(多个)实施例,或者该特征仅适用于单一实施例。不同实施例的单一特征也可以被组合以提供其他实施例。
如本文中所使用的,除非另有明确说明,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。应进一步理解的是,当术语“包括”、“包含”、“包括的”和/或“包含的”在本说明书中使用时,指定了陈述的特征、整体、步骤、操作、元件和/或组件的存在,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组合。如本文中所使用的,术语“和/或”包括相关联的所列项目的一个或多个的任意和全部组合和排列。
除非另外定义,否则本文中使用的所有术语(包括技术的和科学的术语)具有与由本公开所属领域的普通技术人员通常理解的相同的含义。应该进一步理解的是,诸如在常用字典中定义的那些术语的术语应该被解释为具有与其在相关领域的上下文中的含义一致的含义,并且不会以理想化或过度形式化的意义被解释,除非本文中明确如此定义。
参考在附图中示出并在以下描述中详细化的非限制性实施例来更全面地解释本文中的实施例及其各种特征和优点细节。熟知的组件和处理技术的描述被省略,以免不必要地模糊本文中的实施例。本文中使用的示例仅旨在便于理解本文中的实施例可以实践的方式,并且进一步使得本领域技术人员能够实践本文中的实施例。因此,这些示例不应该被解释为限制本文中的实施例的范围。
在整个文档中,术语“不期望的主机服务器”是指不具有写回式高速缓存解决方案或平台支持的主机服务器。此外,在整个文档中,术语“主机机器”和“主机服务器”可互换地使用。
本公开描述了用于防止在虚拟化集群环境中在不期望的主机服务器上运行具有脏数据的虚拟机(VM)的方法。在一个实施例中,主机服务器由诸如用于高速缓存与VM相关联的数据的固态驱动器(SSD)的高速缓存存储器组成。SSD采用写回式高速缓存解决方案,其中与VM相关联的数据首先被写入到高速缓冲存储器中,然后写入到VM的主存储器中的存储器位置。在一些实施例中,SSD可以驻留在主机服务器的外部。在一些其他实施例中,SSD可以在主机服务器上形成整体组件。在与VM的一个主存储器中的对应的存储器位置中的数据相匹配的高速缓冲存储器(SSD)中的数据被称为干净的数据并且在与主存储器中的对应的存储位置中的数据不相匹配的高速缓存中的数据是称为脏数据。换句话说,存储在VM的高速缓冲存储器中的最近的存储器数据被称为脏数据。
有时,具有脏数据的VM可能由于第一主机机器的资源授权或与第一主机机器的连接失败而从第一主机机器迁移到第二主机机器。在一些实施例中,主机机器是计算设备和服务器中的至少一个。
图2是示出根据一个实施例的防止在不期望的主机服务器上运行脏虚拟机的方法的流程图。根据该实施例,可以添加额外的步骤,其他步骤可以被移除,并且步骤的顺序可以被改变。在步骤202处,要被高速缓存的与虚拟机相关联的写入数据由第一主机服务器的高速缓存模块接收。高速缓存模块然后将与虚拟机相关联的写入数据高速缓存。在一个实施例中,高速缓存模块可能以诸如用于虚拟机的高速缓存输入/输出(input/output,I/O)操作的固态驱动器的高速缓存设备呈现。在本实施例中,高速缓存设备可能在外部呈现给主机服务器。I/O操作包括读取操作和写入操作中的至少一个。I/O操作被存储在虚拟机(VM)的虚拟硬盘中并且支持超V虚拟硬盘(VHDX)和VHD文件格式两者。因此,在步骤202中接收的写入数据被高速缓存为在SSD的高速缓存模块中的VHDX和VHD文件中一个。在步骤204处,当写入命令被接收到时,VHDX和VHD文件的元数据被第一主机服务器的高速缓存模块改变为自定义格式。HDX和VHD文件的元数据被改变为自定义格式使得其能被具有高速缓存模块的任何主机服务器识别。在一个实施例中,虚拟机可以支持具有基于元数据的检测技术的任何类型的文件格式。
现在,考虑与第一台主机服务器和虚拟机的连接丢失。因此,虚拟机倾向于从第一主机服务器迁移到第二主机服务器。因为与虚拟机相关联的写入数据在迁移之前未被刷新到虚拟机的主存储器中,所以虚拟机变脏。在步骤206处,迁移请求由脏虚拟机发起以建立与第二主机服务器的通信。第二主机服务器由诸如SSD的高速缓存设备组成以高速缓存虚拟机的I/O操作。高速缓存设备还包括高速缓存模块以识别VHDX和VHD文件的自定义格式。因此,在步骤208处,检查虚拟机的VHDX和VHD文件的自定义格式是否可由第二主机服务器识别。如果虚拟机的VHDX和VHD文件的自定义格式是不可识别的,则在步骤210处,由虚拟机发起的迁移请求被第二主机服务器拒绝,从而防止在第二主机服务器上运行虚拟机。
图3是示出根据一个实施例的用于防止在不期望的主机服务器上脏数据运行虚拟机的虚拟化集群环境的系统图。虚拟化集群环境300由具有固态驱动器(SSD)306、306’的一个或多个主机服务器302、302’、一个或多个虚拟机304、304’和共享远程储存器308组成。虚拟集群环境为运行虚拟机提供基础设施,并提供诸如高可用性、共享储存、主机上的迁移失败等的特征。如果与当前主机的连接失败,则高可用性特征使虚拟机可以在另一主机机器上运行。虚拟化集群环境的一些包括但不限于超V、基于内核的虚拟机(kernel-basedvirtual machine,KVM)、Esxi等。
在一个实施例中,将有多个虚拟机(VM)在集群上运行,并且基于集群管理策略来管理多个虚拟机的移动。虚拟机304和304’由用于为虚拟机提供存储空间的虚拟硬盘(VHD)组成,并且单一虚拟机可以由多个VHD组成。虚拟机304和304’支持超虚拟硬盘(VHDX)和VHD文件格式,并且针对虚拟机304和304’中存在的所有VHD启用高速缓存。VHDX和VHD文件是适用于虚拟机304和304’的Window的文件格式。虚拟机304还能够支持可以使用基于元数据的检测技术来识别的任何类型的文件格式,诸如VMware上的raw、qcow、vmdk等。这些文件格式中的每一个都可以具有其自己的唯一可识别的元数据,如签名、字符串等,以将I/O操作存储在虚拟机的VHD中。在一个实施例中,高速缓存设备被附加到主机服务器302用于增加对于虚拟机304的每秒输入/输出操作(input/output operations per second,IPOS)。
高速缓存模块存在于高速缓存设备(SSD 306)中,用于高速缓存虚拟机(VM)304的一个或多个I/O操作。高速缓存模块将写回式高速缓存解决方案用于高速缓存虚拟机的I/O操作。高速缓存模块还适于当具有写入数据的写入命令被接收到时,改变与VHDX和VHD文件相关联的元数据,该元数据是签名和字符串中的至少一个。因此,当写入命令被接收时,VHDX和VHD文件的元数据被改变为自定义格式。执行此操作是为了确保具有缓存模块的主机服务器能够识别虚拟化自定义环境中的VHDX和VHD文件的自定义格式。
在这种情景下,考虑到在高速缓存模块将写入数据刷新到VM的VHD/VHDX文件之前,VM 304从超V主机1 302迁移到超V主机302’。由于写入数据未被刷新,所以VM 304变脏并且高速缓存模块将VHDX和VHD文件的元数据改变为自定义格式。如图3中所示,当VM 304向超V主机2 302’发起迁移请求时。作为响应,超V主机2 302’检查它是否可以识别VHDX和VHD文件的自定义格式。由于超V主机2没有写回式高速缓存,所以超V主机2 302’不理解VM304并拒绝从VM 304接收到的迁移请求。
现在,VM 304在虚拟化集群环境300中进行下一次迁移尝试。VM 304搜索下一个主机服务器,并最终找到超V主机3 302’。超V主机3 302’检查VHDX和VHD文件的自定义格式是否是可识别的。由于超V主机3 302’正在写回式高速缓存,所以超V主机3 302’理解VM 304并接受从VM 304接收到的迁移请求。在一个实施例中,自定义格式的VHDX和VHD文件的签名被转换回到脏VM的VHDX和VHD文件。然后,VM 304的脏数据在超V主机3 302’上同步。在一个实施例中,存在于超V主机3 302’中的高速缓存模块从作为用于VM的高速缓存数据的复制服务器的不同服务器获得VM的脏数据。图3中示出了相同操作。
图4A至图4D是示出根据一个实施例的用于执行使用本公开的虚拟机的读取/写入操作的主机服务器的示例性方法的流程图。图4A示出了根据一个实施例的用于运行虚拟机(VM)的读取操作的主机服务器的示例性方法。在本实施例中,考虑到主机服务器没有高速缓存解决方案/模块。本文中如下解释了在防止脏VM运行中开展的逐步过程。在步骤402处,主机服务器尝试读取与虚拟机(VM)的读取操作相关联的数据。读取操作被存储为VM的虚拟硬盘(VHD)中的VHDX和VHD文件格式中的一个。在步骤404处VM首先读取VHDX和VHD文件的签名。由于主机服务器没有高速缓存模块,所以主机服务器的平台检查VHDX/VHD文件是否脏的。换句话说,主机服务器的平台检查VHDX/VHD文件是否具有要被刷新的任何数据。在步骤406处执行相同的操作。如果VHDX/VHD文件是脏的,则在步骤408处,主机服务器停止读取与VM相关联的读取操作。另外,如果VHDX/VHD文件不是脏的,则在步骤410处,主机服务器读取与VM相关的读取操作。应该注意的是,主机服务器能够访问使用基于元数据的检测可以检测其签名的任何文件格式。
图4B示出了根据另一实施例的用于运行虚拟机(VM)的写入操作的主机服务器的示例性方法。在该实施例中,考虑到主服务器具有高速缓存解决方案/模块。本文中如下解释了在防止脏虚拟机运行中开展的逐步过程。在步骤432处,具有高速缓存模块的主机服务器接收与虚拟机(VM)相关联的写入操作。主机服务器将写入操作写入到诸如固态驱动器(SSD)的高速缓存设备中。该操作在步骤434处执行。写入操作以VHDX和VHD文件的形式被写入到SSD。此外,在步骤436处,SSD中的高速缓存模块标记VHDX/VHD文件是脏的并且将VHX/VHD文件的签名改变到自定义格式。图4B中示出了相同操作。
图4C是示出根据另一实施例的用于运行虚拟机(VM)的读取操作的主机服务器的示例性方法的流程图。在该实施例中,考虑到即使VHDX/VHD文件的签名被改变,具有高速缓存模块的主机服务器也尝试读取如图4B中执行的写入操作。因此,在步骤452处,具有高速缓存模块的主机服务器对VM的VHDX/VHD文件执行读取操作。在步骤454处,检查主机服务器的高速缓存模块是否正在读取VHDX/VHD文件的或其他一些数据文件的签名。如果读取了VHDX/VHD文件的签名,则高速缓存模块搜索VHDX/VHD文件的元数据所在的签名偏移量,并将签名更正回到VHDX/VHD文件格式。该操作在步骤456处执行。需要注意的是,主机服务器可以具有任何虚拟平台支持,该虚拟平台支持进行用于除VHDX和VHD文件格式以外的任何文件格式的基于元数据的检测。
图4D是示出根据一个实施例的当VM被主机服务器关闭时防止脏虚拟机运行的主机服务器的示例性方法的流程图。在步骤472处,主服务器尝试关闭虚拟机。在关闭VM时,主机服务器在步骤474处检查VM中存在的VHDX/VHD文件是否是脏的。为了检查这一点,高速缓存模块验证VHDX/VHD文件的签名是否为自定义格式。如果是,则在步骤476处,主机服务器的高速缓存模块将数据同步到VM,并将签名的自定义格式改变回到VHDX/VHD特定的文件格式。在实施例中,高速缓存模块从作为用于VM的高速缓存数据的复制服务器的不同服务器获取VM的脏数据,并将所获得的脏数据与VM当前连接到的主机服务器进行同步。图4D中示出了相同操作。
图5是示出了根据一个实施例的图1中使用的主机服务器的一个或多个组件的框图。如图5中所示,主服务器500由处理器502和存储器504组成。存储器504还包括用于高速缓存虚拟机的一个或多个输入/输出操作的高速缓存模块506。
处理器502适用于执行存储在存储器504中的一个或多个指令。在一个实施例中,处理器502可以包括微处理器、控制器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或等效离散或集成逻辑电路系统中的任何一个或多个。此外,在本公开中属于处理器502的功能可以体现为软件、固件、硬件或其任何组合。
在一些示例中,存储器504可以被描述为计算机可读的存储介质。存储器可以被描述为易失性存储器,这意味着当计算机关闭时存储器306不保存存储的内容。易失性存储器的示例包括随机存取存储器(random access memories,RAM)、动态随机存取存储器(dynamic random access memoriesDRAM)、静态随机存取存储器(static random accessmemories,SRAM)以及本领域已知的其他形式的易失性存储器。在一些示例中,存储器504可以被用于存储由处理器502运行的程序指令。例如,存储器504包括以由处理器502运行的程序指令的形式存储的高速缓存模块。
高速缓存模块506适用于高速缓存虚拟机的一个或多个输入/输出操作。高速缓存模块506还适于当接收到写入数据时将VHDX和VHD文件的元数据改变为自定义格式。高速缓存模块506执行将VHDX和VHD文件的元数据改变到自定义格式,以确保禁止在虚拟化集群环境中在任何不期望的主机服务器上运行虚拟机。因此,本公开确保了虚拟机的安全直到脏数据被刷新。本公开还防止集群上的回写式高速缓存环境中的数据损坏。
为了示出和描述的目的已提供了本公开的前述描述。它并不意在穷举或将本发明限制于所公开的精确形式。许多修改和变化对于本领域技术人员将是显而易见的。为了最好地解释本公开的原则及其实际应用,选择并描述了实施例,因此使得本领域其他技术人员能够理解用于各种实施例并具有适合于预期的特殊使用的各种修改的本公开。意图是本公开的范围由以下权利要求及其等同物限定。

Claims (12)

1.一种防止虚拟化集群环境中在不期望的主机服务器上运行具有脏数据的虚拟机的方法,所述方法包括:
由第一主机服务器的高速缓存模块接收要在第一主机服务器上高速缓存的虚拟机VM的写入数据,其中,所述VM包括支持超V虚拟硬盘VHDX和虚拟硬盘VHD文件格式中的至少一个文件格式的虚拟硬盘;
由第一主机服务器的高速缓存模块在接收写入数据后将所述虚拟硬盘文件的元数据改变为自定义格式;
当所述VM丢失与第一主机服务器的连接时,由所述VM发起迁移请求以建立与第二主机服务器的通信;
由第二主机服务器检查虚拟硬盘文件的自定义格式是否是可识别的;以及
如果虚拟硬盘文件的自定义格式不是可识别的,则由第二主机服务器拒绝由VM发起的迁移请求。
2.根据权利要求1所述的方法,其中当第一主机服务器不能授权资源或不能提供到VM的连接时,所述VM从第一主机服务器迁移到第二主机服务器。
3.根据权利要求1所述的方法,其中所述虚拟硬盘文件的元数据包括至少一个签名。
4.根据权利要求3所述的方法,其中所述虚拟硬盘文件的签名包括指定的唯一字符串。
5.根据权利要求3所述的方法,还包括:
将所述虚拟硬盘文件的签名元数据转换为自定义格式;其中所述自定义格式包括由所述高速缓存模块识别的字符的集合。
6.根据权利要求1所述的方法,其中所述VM在接收到拒绝迁移请求之后,执行以下中的至少一个:
尝试与第一主机服务器重新连接;以及
尝试与具有由集群识别的高速缓存模块的主机服务器连接。
7.根据权利要求1所述的方法,还包括:
将以自定义格式的虚拟硬盘文件的签名转换回脏VM的虚拟硬盘文件;以及
如果所述虚拟硬盘文件的自定义格式是可由第二主机服务器识别的,则同步第二主机服务器上的VM的脏数据。
8.根据权利要求7所述的方法,其中所述VM的脏数据的同步包括:
从作为用于VM的高速缓存数据的复制服务器的不同服务器获得VM的脏数据。
9.根据权利要求1所述的方法,其中所述主机服务器能够在支持针对任何文件格式的基于元数据的检测的任何虚拟平台上操作。
10.根据权利要求1所述的方法,还包括:
由第二主机服务器尝试读取与所述虚拟机的读取操作相关联的数据,其中第二主机服务器不具有所述高速缓存模块;
由第二主机服务器读取所述VM的虚拟硬盘VHD的签名;
由第二主机服务器检查虚拟硬盘格式是否是可识别的;以及
如果虚拟硬盘格式不是可识别的,则由第二主机服务器停止读取与虚拟机的读取操作相关联的数据。
11.一种主机服务器,包括:
处理器;
存储器,具有高速缓存模块,所述高速缓存模块适用于:
接收要在第一主机服务器上被高速缓存的虚拟机VM的写入数据,
其中所述VM包括支持超V虚拟硬盘VHDX和虚拟硬盘VHD文件的虚拟硬盘;
在接收到写入数据后,将虚拟硬盘文件的元数据改变为自定义格式;
以及
使所述VM能够迁移到具有虚拟硬盘文件的改变后的元数据的另一主机服务器。
12.根据权利要求11所述的主机服务器,其中所述高速缓存模块还适用于:
当所述VM失去与第一主机服务器的连接时,接收所述VM的迁移请求以建立与第二主机服务器的通信;
检查虚拟硬盘文件的自定义格式是否是可识别的;以及
如果虚拟硬盘文件的自定义格式不是可识别的,则拒绝由所述VM发起的迁移请求。
CN201810684935.4A 2017-08-28 2018-06-28 防止在不期望的主机服务器上运行脏虚拟机的方法和系统 Active CN109426548B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201741030436 2017-08-28
IN201741030436 2017-08-28

Publications (2)

Publication Number Publication Date
CN109426548A true CN109426548A (zh) 2019-03-05
CN109426548B CN109426548B (zh) 2023-11-28

Family

ID=65435938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810684935.4A Active CN109426548B (zh) 2017-08-28 2018-06-28 防止在不期望的主机服务器上运行脏虚拟机的方法和系统

Country Status (3)

Country Link
US (1) US10983818B2 (zh)
KR (1) KR102474582B1 (zh)
CN (1) CN109426548B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877771B2 (en) * 2018-11-26 2020-12-29 Red Hat, Inc. Virtual machine booting using disk metadata
KR20230108841A (ko) 2022-01-12 2023-07-19 주식회사 썬플라워즈 해양사고에 따른 구명동의 추적 네트워크 시스템

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
CN102387197A (zh) * 2010-09-30 2012-03-21 微软公司 从服务器到主机的流虚拟机技术
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
CN102521063A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种适用于虚拟机迁移和容错的共享存储方法
US20120179874A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US8230475B2 (en) * 2007-11-16 2012-07-24 At&T Intellectual Property I, L.P. Methods and computer program products for subcontent tagging and playback
CN102646064A (zh) * 2011-02-16 2012-08-22 微软公司 支持迁移的增量虚拟机备份
CN102741820A (zh) * 2010-02-08 2012-10-17 微软公司 虚拟存储器的后台迁移
US8443077B1 (en) * 2010-05-20 2013-05-14 Gogrid, LLC System and method for managing disk volumes in a hosting system
US20130282653A1 (en) * 2012-04-24 2013-10-24 Microsoft Corporation Initializing replication in a virtual machine
CN103544045A (zh) * 2013-10-16 2014-01-29 南京大学镇江高新技术研究院 一种基于hdfs的虚拟机镜像存储系统及其构建方法
US20140059292A1 (en) * 2012-08-27 2014-02-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US8719933B1 (en) * 2012-03-13 2014-05-06 Bromium, Inc. Safe printing
US20150269031A1 (en) * 2014-03-21 2015-09-24 Ca, Inc. Instant virtual machines
US20150324217A1 (en) * 2014-05-12 2015-11-12 Netapp, Inc. Techniques for virtual machine shifting
US20170003990A1 (en) * 2015-06-30 2017-01-05 International Business Machines Corporation Virtual machine migration via a mobile device
US9565202B1 (en) * 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2954888C (en) 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
KR101485803B1 (ko) * 2007-12-11 2015-01-26 삼성전자주식회사 Dlna 네트워크 환경에서의 데이터 전송 시스템 및 전송방법
US8365169B1 (en) 2008-01-10 2013-01-29 Hewlett-Packard Development Company, L.P. Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support
US8910156B1 (en) 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency
US9280378B2 (en) * 2011-11-30 2016-03-08 Red Hat, Inc. Adjustment during migration to a different virtualization environment
US8930947B1 (en) 2011-12-30 2015-01-06 Emc Corporation System and method for live migration of a virtual machine with dedicated cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US8839031B2 (en) 2012-04-24 2014-09-16 Microsoft Corporation Data consistency between virtual machines
US9081686B2 (en) 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
US9032157B2 (en) 2012-12-11 2015-05-12 International Business Machines Corporation Virtual machine failover
US10684876B2 (en) * 2015-05-14 2020-06-16 Netapp, Inc. Migration of virtual machine data using native data paths

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US8230475B2 (en) * 2007-11-16 2012-07-24 At&T Intellectual Property I, L.P. Methods and computer program products for subcontent tagging and playback
CN102741820A (zh) * 2010-02-08 2012-10-17 微软公司 虚拟存储器的后台迁移
US8443077B1 (en) * 2010-05-20 2013-05-14 Gogrid, LLC System and method for managing disk volumes in a hosting system
CN102387197A (zh) * 2010-09-30 2012-03-21 微软公司 从服务器到主机的流虚拟机技术
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US20120179874A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
CN102646064A (zh) * 2011-02-16 2012-08-22 微软公司 支持迁移的增量虚拟机备份
CN102521063A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种适用于虚拟机迁移和容错的共享存储方法
US8719933B1 (en) * 2012-03-13 2014-05-06 Bromium, Inc. Safe printing
US20130282653A1 (en) * 2012-04-24 2013-10-24 Microsoft Corporation Initializing replication in a virtual machine
US20140059292A1 (en) * 2012-08-27 2014-02-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US9565202B1 (en) * 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
CN103544045A (zh) * 2013-10-16 2014-01-29 南京大学镇江高新技术研究院 一种基于hdfs的虚拟机镜像存储系统及其构建方法
US20150269031A1 (en) * 2014-03-21 2015-09-24 Ca, Inc. Instant virtual machines
US20150324217A1 (en) * 2014-05-12 2015-11-12 Netapp, Inc. Techniques for virtual machine shifting
US20170003990A1 (en) * 2015-06-30 2017-01-05 International Business Machines Corporation Virtual machine migration via a mobile device

Also Published As

Publication number Publication date
CN109426548B (zh) 2023-11-28
US10983818B2 (en) 2021-04-20
KR20190024576A (ko) 2019-03-08
KR102474582B1 (ko) 2022-12-05
US20190065233A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
US10599535B2 (en) Restoring distributed shared memory data consistency within a recovery process from a cluster node failure
US8875133B2 (en) Migration of virtual machines
US9342248B2 (en) Techniques for reducing read I/O latency in virtual machines
US20140123138A1 (en) Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
KR101729097B1 (ko) 복수의 가상 머신에서 수행되는 응용 프로그램들간 참조 데이터를 공유하는 방법 및 이를 위한 참조 데이터 관리 장치 및 시스템
US10216455B1 (en) Systems and methods for performing storage location virtualization
CN108701048A (zh) 数据加载方法及装置
US9183130B2 (en) Data control system for virtual environment
CN109426548A (zh) 防止在不期望的主机服务器上运行脏虚拟机的方法和系统
CN103207817A (zh) 虚拟机自动还原方法
US20140310488A1 (en) Logical Unit Management using Differencing
US20150026683A1 (en) Data control system for virtual environment
US11263183B2 (en) Integrating virtual machine file system into a native file explorer
US10802741B2 (en) Pre-zeroing blocks in files using automatic file unmap framework
US9575658B2 (en) Collaborative release of a virtual disk
US20120059794A1 (en) Software, systems, and methods for enhanced replication within virtual machine environments
US20170262462A1 (en) Correcting a volume chain after a volume creation failure is detected
US10712952B1 (en) Metadata caches in a reliable distributed computing system
US10452638B2 (en) Atomically moving data elements between or within linked data structures having no support for atomic moves
US20220317987A1 (en) Hybrid approach to performing a lazy pull of container images
US11977785B2 (en) Non-volatile memory device-assisted live migration of virtual machine data
US20230131706A1 (en) Two-Hierarchy File System
US20230176889A1 (en) Update of virtual machines using clones
Kamei et al. A Method of Shared File Cache for File Clone Function to Improve I/O Performance for Virtual Machines
US9524190B1 (en) Systems and methods for caching data on virtualization servers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant