CN107479942A - 虚拟机的客户操作系统启动方法及装置 - Google Patents
虚拟机的客户操作系统启动方法及装置 Download PDFInfo
- Publication number
- CN107479942A CN107479942A CN201610403352.0A CN201610403352A CN107479942A CN 107479942 A CN107479942 A CN 107479942A CN 201610403352 A CN201610403352 A CN 201610403352A CN 107479942 A CN107479942 A CN 107479942A
- Authority
- CN
- China
- Prior art keywords
- operating system
- read
- positional information
- data
- client operating
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种虚拟机的客户操作系统启动方法,该方法流程包括:在虚拟机的客户操作系统启动时,获取存储的位置信息文件,位置信息文件中存储有启动客户操作系统需要读取的数据在磁盘镜像文件中的位置信息;若获取到位置信息文件,则从磁盘镜像文件中读取位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区;在接收到客户操作系统的读数据请求时,在缓冲区中读取与读数据请求对应的缓存数据;若在缓冲区中读取到与读数据请求对应的缓存数据,则将缓存数据发送至客户操作系统。本发明还提出一种虚拟机的客户操作系统启动装置。本发明解决了由于对磁盘镜像文件的读操作效率低,而导致客户操作系统的启动速度慢的问题。
Description
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种虚拟机的客户操作系统启动方法及装置。
背景技术
在现代计算机技术领域,数据预读技术被广泛的使用,以linux、windows操作系统为例,应用程序读取文件时的预读过程为:应用程序读取文件某个位置的数据时,操作系统会自动预读该位置后面的一部分数据,这部分数据被称为缓存,是供应用程序未来使用,以加快系统在后面的运行速度;当应用程序后面继续读文件,正好读到预读的那部分数据时,就会出现一次缓存命中,这时应用程序直接从缓存获取到数据,不用再从磁盘上读取,从而提升了系统性能。
而操作系统的启动过程首先是系统内核被引导启动,内核紧接着会读取、加载、执行各种系统文件,包括可执行程序、共享库、系统配置、驱动等等,这些文件数量繁多,而且在磁盘上的位置各不相同。
对于一个虚拟机(虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统)而言,客户操作系统在启动时,客户操作系统内核读取各种系统文件的操作会转变为对虚拟机磁盘镜像文件的一系列读操作,而且读操作的位置是随机和离散的,这样就导致虚拟机在启动过程中,hypervisor(一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统)对磁盘镜像文件的读操作效率比较低,导致客户操作系统的启动速度非常慢。
因此,为了提高客户操作系统的启动速度,我们需要hypervisor能够对虚拟机磁盘镜像文件实现预读,会采用现有技术中的数据预读技术,但是,如上所述,现有的数据预读技术一般都是顺序预读,而hypervisor对镜像文件的读操作位置是分散且无规律的,采用顺序预读方式,缓存命中率非常低,预读效果并不理想,客户操作系统的启动速度仍然非常慢。
发明内容
本发明提供一种虚拟机的客户操作系统启动方法及装置,其主要目的在于解决由于对磁盘镜像文件的读操作效率低,而导致客户操作系统的启动速度慢的问题。
为实现上述目的,本发明提供一种虚拟机的客户操作系统启动方法,该虚拟机的客户操作系统启动方法包括:
在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息;
若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区;
在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据;
若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
可选地,在所述虚拟机的客户操作系统启动时,获取存储的位置信息文件的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息;
在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
可选地,所述在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据,并发送至所述客户操作系统。
可选地,所述若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息,并将所述位置信息保存在所述位置信息文件中。
可选地,所述获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息,并将所述位置信息保存在所述位置信息文件中的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
此外,为实现上述目的,本发明还提供一种虚拟机的客户操作系统启动装置,该虚拟机的客户操作系统启动装置包括:
信息获取模块,用于在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息;
数据缓存模块,用于若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区;
数据读取模块,用于在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据;
数据发送模块,用于若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
可选地,所述信息获取模块,还用于若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息;
所述虚拟机的客户操作系统启动装置还包括:
第一存储模块,用于在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
可选地,所述数据读取模块,还用于若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据;
所述数据发送模块,还用于将从所述磁盘镜像文件中读取到的与所述读数据请求对应的数据发送至所述客户操作系统。
可选地,所述信息获取模块,还用于获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息;
所述虚拟机的客户操作系统启动装置还包括:
第二存储模块,用于将所述位置信息保存在所述位置信息文件中。
可选地,所述虚拟机的客户操作系统启动装置还包括:
信息删除模块,用于将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
本发明提出的虚拟机的客户操作系统启动方法及装置,在虚拟机的客户操作系统启动时,先获取存储的位置信息文件,该位置信息文件中存储有启动客户操作系统需要读取的数据在磁盘镜像文件中的存储位置,获取到位置信息文件后,可以对对应位置处的数据进行预读,并将读取到的数据缓存到缓冲区,这样,在接收到客户操作的读数据请求时,可以直接从缓冲区中获取与读数据请求对应的缓存数据,若能够获取到,则将缓存数据发送到客户操作系统,以供其完成启动,本发明极大地提高了在客户操作系统的启动过程中,读取磁盘镜像的缓存命中率,减少了对磁盘镜像文件的读写请求数,加快了虚拟机客户操作系统的启动速度。
附图说明
图1为本发明虚拟机的客户操作系统启动方法第一实施例的流程图;
图2为本发明虚拟机的客户操作系统启动方法第二实施例的流程图;
图3为本发明虚拟机的客户操作系统启动方法第三实施例的流程图;
图4为本发明虚拟机的客户操作系统启动方法第四实施例的流程图;
图5为本发明虚拟机的客户操作系统启动装置第一实施例的功能模块示意图;
图6为本发明虚拟机的客户操作系统启动装置第二实施例的功能模块示意图;
图7为本发明虚拟机的客户操作系统启动装置第四实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种虚拟机的客户操作系统启动方法。参照图1所示,为本发明虚拟机的客户操作系统启动方法第一实施例的流程图。
在本实施例中,该虚拟机的客户操作系统启动方法包括:
步骤S10,在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息。
步骤S20,若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区。
虚拟机的客户操作系统在启动时,需要读取各种系统文件数据,这些数据在磁盘镜像文件中的存储位置是随机和离散的,为了加快客户操作系统的启动速度,则需要对这些数据进行预读,而要想实现预读,则需要先获取这些数据在磁盘镜像文件中的位置。
因此,在本实施例中,预先存储上述位置信息形成位置信息文件,那么客户操作系统在启动时,可以直接获取存储的位置信息文件,根据位置信息来将对应位置处的数据缓存到缓冲区。
关于预先存储位置信息,可以是在首次启动客户操作系统的过程中,hypervisor对镜像磁盘文件的读操作进行监控,记录每一个读操作对应的数据的位置信息,根据位置信息生成上述位置信息文件。
关于所述位置信息文件,在一实施方式中,可以是一种用来标记需要预读的数据的位置信息的位图结构,该位图结构中,用一个比特位代表磁盘镜像文件中的一个数据块,如果某一比特位对应的数据块需要被预读,则将该比特位的值设为1,如果不需要被预读,则将该比特位的值设为0,通过这种标记位图结构中比特位数值的方式,实现对需要预读的数据的位置信息进行记录,形成的位图数据即为位置信息文件,这种表示位置信息的方式,占用的存储空间小,且方式简单,易于操作。在另一实施方式中,位置信息文件也可以是位置列表,根据需要预读的数据的位置信息,建立一个位置列表;或者,在其他的实施例中,也可以其他的记录数据的方式来记录位置信息,形成位置信息文件,例如哈希表等,在此不再一一列举。
步骤S30,在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据。
由于在操作系统启动的过程中,一般是系统内核被引导启动,然后内核才会读取各种系统文件数据,而上述根据位置信息文件将对应的数据缓存到缓冲区的过程可以与系统内核被引导启动的过程同步进行,由于位置信息已知,因此缓存的速度比较快,在内核开始读取系统文件数据时,一般缓存已经完成。由于hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,客户操作系统读取系统文件时,会向hypervisor发送读数据请求,hypervisor在接收到读数据请求时,会先从缓冲区中读取与该读数据请求对应的缓存数据,以加快读数据的速度。
步骤S40,若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
当hypervisor在缓冲区中读取到与所述读数据请求对应的缓存数据时,可以直接返回缓冲区中对应的缓存数据给客户操作系统,则不必向主机操作系统提交读数据请求以从磁盘镜像文件中读取读数据请求对应的数据,极大地加快了客户操作系统的启动速度。
而且,本实施例的方法,对于每一个客户操作系统来说,有一个独立的位置信息文件,可以将每一个位置信息文件与对应的客户操作系统关联,例如添加标识信息,当需要大批量驱动客户操作系统时,即使有多个客户操作同时启动,也可以分别按照各自的位置信息文件进行数据的预读,互不影响,加快虚拟机的批量启动速度。
本实施例提出的虚拟机的客户操作系统启动方法,在虚拟机的客户操作系统启动时,先获取存储的位置信息文件,该位置信息文件中存储有启动客户操作系统需要读取的数据在磁盘镜像文件中的存储位置,获取到位置信息文件后,可以对对应位置处的数据进行预读,并将读取到的数据缓存到缓冲区,这样,在接收到客户操作的读数据请求时,可以直接从缓冲区中获取与读数据请求对应的缓存数据,若能够获取到,则将缓存数据发送到客户操作系统,以供其完成启动,本发明极大地提高了在客户操作系统的启动过程中,读取磁盘镜像的缓存命中率,减少了对磁盘镜像文件的读写请求数,加快了虚拟机客户操作系统的启动速度。
基于第一实施例提出本发明虚拟机的客户操作系统启动方法的第二实施例。参照图2所示,在本实施例中,在步骤S10之后,该虚拟机的客户操作系统启动方法还包括:
步骤S50,若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息。
步骤S60,在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
在虚拟机的客户操作系统启动时,可能会出现获取不到位置信息文件的情况,例如,该客户操作系统是首次启动,或者存储的位置信息文件被误删除或者丢失,当获取不到位置信息文件时,可以在本次的操作系统的启动过程中,在hypervisor对镜像磁盘文件进行读取时,对读操作对应的数据的位置信息进行记录,具体地,在接收到客户操作系统的读数据请求时,hypervisor从磁盘镜像文件中获取与读数据请求对应的数据,同时获取该数据在磁盘镜像文件中的位置信息,在客户操作系统启动的启动过程中,对每一个读操作对应的位置信息都进行记录,在系统启动完成后,根据记录的位置信息生成位置信息文件,例如,以位图结构或者哈希表的形式存储,那么,在下次启动该客户操作系统时,可以根据存储的位置信息文件进行数据的预读。
基于第一实施例或者第二实施例提出本发明虚拟机的客户操作系统启动方法的第三实施例。参照图3所示,以基于图1的实施例为例,在本实施例中,在步骤S30之后,该虚拟机的客户操作系统启动方法还包括:
步骤S70,若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据,并发送至所述客户操作系统。
由于用户在使用虚拟机的过程中,可能会安装新的软件或者驱动,这样会导致在下一次操作系统启动时,需要读取的系统文件数据会发生变化,而由于上次安装的软件或者驱动而产生的新数据对应的位置信息并没有存储在位置信息文件中,因此,在本次启动时,缓冲区中也不会缓存对应的新数据,因此,会出现从缓冲区中读取不到与读数据请求对应的缓存数据的情况,则需要从磁盘镜像文件中读取对应的数据,并返回至客户操作系统,以完成客户操作系统的启动。
基于第三实施例提出本发明虚拟机的客户操作系统启动方法的第四实施例。参照图4所示,在本实施例中,在步骤S70之后,该虚拟机的客户操作系统启动方法还包括:
步骤S80,获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息,并将所述位置信息保存在所述位置信息文件中。
由于用户安装了新的软件或者驱动而导致在虚拟机的客户操作系统启动时需要读取的系统文件数据发生了变化,因此,本实施例中,相应的对位置信息文件进行维护以及更新,当缓冲区没有缓存对应的数据时,在从磁盘镜像文件中读取到对应的数据后,获取该数据在磁盘镜像文件中的存储位置,并将该存储位置保存到位置信息文件中,例如,如果位置信息文件为位图结构,则可以将该位置对应比特位的值修改为1。
进一步地,在步骤S80之后,或者在步骤S70与步骤S80之间,该虚拟机的客户操作系统启动方法还包括:
将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
如果用户安装的软件或者驱动等越来越多,会导致位置信息文件中的数据越来越多,而可能位置信息文件中的一些位置信息对应的数据被预读的次数非常少,因此,为了避免位置信息文件过度膨胀,以及避免因为位置信息过多而影响预读的效率,在本实施例中,对于那些存储时间大于预设时长,且对应的缓存数据被预读的次数小于预设次数的位置信息,可以将其删除,以提高预读的效率,进一步加快客户操作系统的启动速度,其中,对位置信息文件中的每一个位置信息的预读次数进行计数,可以在每次从缓冲区获取到与读数据请求对应的缓存数据时,将缓存数据对应的位置信息的预读次数加1,并且记录每一条位置信息首次添加到位置信息文件中的时间,以根据记录的时间判断该位置信息的存储时间是否大于预设时长,其中,预设时长可以由1用户根据需要设置,例如可以为一周,一个月等,预设次数也可以由用户设置。通过本实施例的方法,可以将那些不经常被读取的数据对应的位置信息从位置信息文件中删除,提高预读效率。
在其他实施例中,用户卸载了一些软件或者删除了一些驱动后,位置信息文件中的对应的一些位置信息对应的数据,可能后续再次启动时,不会再被使用到,因此,可以将预设时间间隔内未被使用到的位置信息从位置信息文件中删除,进一步提高预读效率。
本发明还提出一种虚拟机的客户操作系统启动装置。
参照图5所示,为本发明虚拟机的客户操作系统启动装置第一实施例的功能模块示意图。
在该实施例中,该虚拟机的客户操作系统启动装置包括:
信息获取模块10,用于在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息。
数据缓存模块20,用于若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区。
虚拟机的客户操作系统在启动时,需要读取各种系统文件数据,这些数据在磁盘镜像文件中的存储位置是随机和离散的,为了加快客户操作系统的启动速度,则需要对这些数据进行预读,而要想实现预读,则需要先获取这些数据在磁盘镜像文件中的位置。
因此,在本实施例中,预先存储上述位置信息形成位置信息文件,那么客户操作系统在启动时,信息获取模块10可以直接获取存储的位置信息文件,数据缓存模块20根据位置信息来将对应位置处的数据缓存到缓冲区。
关于预先存储位置信息,可以是在首次启动客户操作系统的过程中,hypervisor对镜像磁盘文件的读操作进行监控,记录每一个读操作对应的数据的位置信息,根据位置信息生成上述位置信息文件。
关于所述位置信息文件,在一实施方式中,可以是一种用来标记需要预读的数据的位置信息的位图结构,该位图结构中,用一个比特位代表磁盘镜像文件中的一个数据块,如果某一比特位对应的数据块需要被预读,则将该比特位的值设为1,如果不需要被预读,则将该比特位的值设为0,通过这种标记位图结构中比特位数值的方式,实现对需要预读的数据的位置信息进行记录,形成的位图数据即为位置信息文件,这种表示位置信息的方式,占用的存储空间小,且方式简单,易于操作。在另一实施方式中,位置信息文件也可以是位置列表,根据需要预读的数据的位置信息,建立一个位置列表;或者,在其他的实施例中,也可以其他的记录数据的方式来记录位置信息,形成位置信息文件,例如哈希表等,在此不再一一列举。
数据读取模块30,用于在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据。
由于在操作系统启动的过程中,一般是系统内核被引导启动,然后内核才会读取各种系统文件数据,而上述根据位置信息文件将对应的数据缓存到缓冲区的过程可以与系统内核被引导启动的过程同步进行,由于位置信息已知,因此缓存的速度比较快,在内核开始读取系统文件数据时,一般缓存已经完成。由于hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,客户操作系统读取系统文件时,会向hypervisor发送读数据请求,hypervisor在接收到读数据请求时,会先从缓冲区中读取与该读数据请求对应的缓存数据,以加快读数据的速度。
数据发送模块40,用于若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
当hypervisor在缓冲区中读取到与所述读数据请求对应的缓存数据时,数据发送模块40可以直接返回缓冲区中对应的缓存数据给客户操作系统,则不必向主机操作系统提交读数据请求以从磁盘镜像文件中读取读数据请求对应的数据,极大地加快了客户操作系统的启动速度。
而且,对于每一个客户操作系统来说,有一个独立的位置信息文件,可以将每一个位置信息文件与对应的客户操作系统关联,例如添加标识信息,当需要大批量驱动客户操作系统时,即使有多个客户操作同时启动,也可以分别按照各自的位置信息文件进行数据的预读,互不影响,加快虚拟机的批量启动速度。
本实施例提出的虚拟机的客户操作系统启动装置,在虚拟机的客户操作系统启动时,先获取存储的位置信息文件,该位置信息文件中存储有启动客户操作系统需要读取的数据在磁盘镜像文件中的存储位置,获取到位置信息文件后,可以对对应位置处的数据进行预读,并将读取到的数据缓存到缓冲区,这样,在接收到客户操作的读数据请求时,可以直接从缓冲区中获取与读数据请求对应的缓存数据,若能够获取到,则将缓存数据发送到客户操作系统,以供其完成启动,本发明极大地提高了在客户操作系统的启动过程中,读取磁盘镜像的缓存命中率,减少了对磁盘镜像文件的读写请求数,加快了虚拟机客户操作系统的启动速度。
基于第一实施例提出本发明虚拟机的客户操作系统启动装置的第二实施例。在本实施例中,信息获取模块10,还用于若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息。
参照图6所示,该虚拟机的客户操作系统启动装置还包括:
第一存储模块50,用于在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
在虚拟机的客户操作系统启动时,可能会出现获取不到位置信息文件的情况,例如,该客户操作系统是首次启动,或者存储的位置信息文件被误删除或者丢失,当获取不到位置信息文件时,可以在本次的操作系统的启动过程中,在hypervisor对镜像磁盘文件进行读取时,对读操作对应的数据的位置信息进行记录,具体地,在接收到客户操作系统的读数据请求时,hypervisor从磁盘镜像文件中获取与读数据请求对应的数据,同时信息获取模块10获取该数据在磁盘镜像文件中的位置信息,在客户操作系统启动的启动过程中,对每一个读操作对应的位置信息都进行记录,在系统启动完成后,第一存储模块50根据记录的位置信息生成位置信息文件并存储,例如,以位图结构或者哈希表的形式存储,那么,在下次启动该客户操作系统时,可以根据存储的位置信息文件进行数据的预读。
基于第一实施例或者第二实施例提出本发明虚拟机的客户操作系统启动装置的第三实施例。在本实施例中,数据读取模块30,还用于若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据;
数据发送模块40,还用于将从所述磁盘镜像文件中读取到的与所述读数据请求对应的数据发送至所述客户操作系统。
由于用户在使用虚拟机的过程中,可能会安装新的软件或者驱动,这样会导致在下一次操作系统启动时,需要读取的系统文件数据会发生变化,而由于上次安装的软件或者驱动而产生的新数据对应的位置信息并没有存储在位置信息文件中,因此,在本次启动时,缓冲区中也不会缓存对应的新数据,因此,会出现从缓冲区中读取不到与读数据请求对应的缓存数据的情况,则需要数据读取模块30从磁盘镜像文件中读取对应的数据,数据发送模块40将其返回至客户操作系统,以完成客户操作系统的启动。
基于第三实施例提出本发明虚拟机的客户操作系统启动装置的第四实施例。在本实施例中,信息获取模块10,还用于获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息;
参照图7所示,虚拟机的客户操作系统启动装置还包括:
第二存储模块60,用于将所述位置信息保存在所述位置信息文件中。
由于用户安装了新的软件或者驱动而导致在虚拟机的客户操作系统启动时需要读取的系统文件数据发生了变化,因此,本实施例中,相应的对位置信息文件进行维护以及更新,当缓冲区没有缓存对应的数据时,在从磁盘镜像文件中读取到对应的数据后,信息获取模块10获取该数据在磁盘镜像文件中的存储位置,第二存储模块60将该存储位置保存到位置信息文件中,例如,如果位置信息文件为位图结构,则可以将该位置对应比特位的值修改为1。
进一步地,在其他实施例中,虚拟机的客户操作系统启动装置还包括:
信息删除模块,用于将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
如果用户安装的软件或者驱动等越来越多,会导致位置信息文件中的数据越来越多,而可能位置信息文件中的一些位置信息对应的数据被预读的次数非常少,因此,为了避免位置信息文件过度膨胀,以及避免因为位置信息过多而影响预读的效率,在本实施例中,对于那些存储时间大于预设时长,且对应的缓存数据被预读的次数小于预设次数的位置信息,信息删除模块可以将其删除,以提高预读的效率,进一步加快客户操作系统的启动速度,其中,对位置信息文件中的每一个位置信息的预读次数进行计数,可以在每次从缓冲区获取到与读数据请求对应的缓存数据时,将缓存数据对应的位置信息的预读次数加1,并且记录每一条位置信息首次添加到位置信息文件中的时间,以根据记录的时间判断该位置信息的存储时间是否大于预设时长,其中,预设时长可以由1用户根据需要设置,例如可以为一周,一个月等,预设次数也可以由用户设置。通过本实施例的装置,可以将那些不经常被读取的数据对应的位置信息从位置信息文件中删除,提高预读效率。
在其他实施例中,用户卸载了一些软件或者删除了一些驱动后,位置信息文件中的对应的一些位置信息对应的数据,可能后续再次启动时,不会再被使用到,因此,信息删除模块可以将预设时间间隔内未被使用到的位置信息从位置信息文件中删除,进一步提高预读效率。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种虚拟机的客户操作系统启动方法,其特征在于,所述虚拟机的客户操作系统启动方法包括:
在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息;
若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区;
在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据;
若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
2.根据权利要求1所述的虚拟机的客户操作系统启动方法,其特征在于,在所述虚拟机的客户操作系统启动时,获取存储的位置信息文件的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息;
在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
3.根据权利要求1或2所述的虚拟机的客户操作系统启动方法,其特征在于,所述在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据,并发送至所述客户操作系统。
4.根据权利要求3所述的虚拟机的客户操作系统启动方法,其特征在于,所述若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息,并将所述位置信息保存在所述位置信息文件中。
5.根据权利要求4所述的虚拟机的客户操作系统启动方法,其特征在于,所述获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息,并将所述位置信息保存在所述位置信息文件中的步骤之后,所述虚拟机的客户操作系统启动方法还包括:
将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
6.一种虚拟机的客户操作系统启动装置,其特征在于,所述虚拟机的客户操作系统启动装置包括:
信息获取模块,用于在虚拟机的客户操作系统启动时,获取存储的位置信息文件,其中,所述位置信息文件中存储有启动所述客户操作系统需要读取的数据在磁盘镜像文件中的位置信息;
数据缓存模块,用于若获取到所述位置信息文件,则从所述磁盘镜像文件中读取所述位置信息文件中的位置信息对应位置处的数据,并将读取到的数据缓存到缓冲区;
数据读取模块,用于在接收到客户操作系统的读数据请求时,在所述缓冲区中读取与所述读数据请求对应的缓存数据;
数据发送模块,用于若在所述缓冲区中读取到与所述读数据请求对应的缓存数据,则将所述缓存数据发送至所述客户操作系统。
7.根据权利要求6所述的虚拟机的客户操作系统启动装置,其特征在于,所述信息获取模块,还用于若获取不到所述位置信息文件,则在接收到客户操作系统的读数据请求时,从所述磁盘镜像文件中获取与所述读数据请求对应的数据以及所述数据在所述磁盘镜像文件中的位置信息;
所述虚拟机的客户操作系统启动装置还包括:
第一存储模块,用于在所述客户操作系统启动完成后,根据获取的所述位置信息生成所述位置信息文件并存储。
8.根据权利要求6或7所述的虚拟机的客户操作系统启动装置,其特征在于,所述数据读取模块,还用于若从所述缓冲区中读取不到与所述读数据请求对应的缓存数据,则从所述磁盘镜像文件中读取与所述读数据请求对应的数据;
所述数据发送模块,还用于将从所述磁盘镜像文件中读取到的与所述读数据请求对应的数据发送至所述客户操作系统。
9.根据权利要求8所述的虚拟机的客户操作系统启动装置,其特征在于,所述信息获取模块,还用于获取与所述读数据请求对应的数据在所述磁盘镜像文件中的位置信息;
所述虚拟机的客户操作系统启动装置还包括:
第二存储模块,用于将所述位置信息保存在所述位置信息文件中。
10.根据权利要求9所述的虚拟机的客户操作系统启动装置,其特征在于,所述虚拟机的客户操作系统启动装置还包括:
信息删除模块,用于将所述位置信息文件中的存储时间大于预设时长、且对应的缓存数据被读取的次数小于预设次数的位置信息删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610403352.0A CN107479942A (zh) | 2016-06-08 | 2016-06-08 | 虚拟机的客户操作系统启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610403352.0A CN107479942A (zh) | 2016-06-08 | 2016-06-08 | 虚拟机的客户操作系统启动方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107479942A true CN107479942A (zh) | 2017-12-15 |
Family
ID=60593773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610403352.0A Pending CN107479942A (zh) | 2016-06-08 | 2016-06-08 | 虚拟机的客户操作系统启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107479942A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255577A (zh) * | 2017-12-20 | 2018-07-06 | 深圳市杉岩数据技术有限公司 | 一种虚拟机启动的加速方法和装置 |
CN112130955A (zh) * | 2020-09-02 | 2020-12-25 | 中国电子科技网络信息安全有限公司 | 一种基于融合架构云平台的虚拟机调度方法 |
CN112597536A (zh) * | 2020-12-23 | 2021-04-02 | 瀚高基础软件股份有限公司 | 数据库表文件被非法删除的实时检测方法及装备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521038A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于分布式文件系统的虚拟机迁移方法和装置 |
CN103067425A (zh) * | 2011-10-20 | 2013-04-24 | 中国移动通信集团公司 | 虚拟机创建方法、虚拟机管理系统及相关设备 |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
CN104050015A (zh) * | 2014-06-27 | 2014-09-17 | 国家计算机网络与信息安全管理中心 | 一种虚拟机镜像存储分发系统 |
CN104239575A (zh) * | 2014-10-08 | 2014-12-24 | 清华大学 | 一种虚拟机镜像文件存储、分发方法及装置 |
CN105205143A (zh) * | 2015-09-18 | 2015-12-30 | 杭州华为数字技术有限公司 | 一种文件存储及处理方法、设备和系统 |
-
2016
- 2016-06-08 CN CN201610403352.0A patent/CN107479942A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067425A (zh) * | 2011-10-20 | 2013-04-24 | 中国移动通信集团公司 | 虚拟机创建方法、虚拟机管理系统及相关设备 |
CN102521038A (zh) * | 2011-12-06 | 2012-06-27 | 北京航空航天大学 | 基于分布式文件系统的虚拟机迁移方法和装置 |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
CN104050015A (zh) * | 2014-06-27 | 2014-09-17 | 国家计算机网络与信息安全管理中心 | 一种虚拟机镜像存储分发系统 |
CN104239575A (zh) * | 2014-10-08 | 2014-12-24 | 清华大学 | 一种虚拟机镜像文件存储、分发方法及装置 |
CN105205143A (zh) * | 2015-09-18 | 2015-12-30 | 杭州华为数字技术有限公司 | 一种文件存储及处理方法、设备和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255577A (zh) * | 2017-12-20 | 2018-07-06 | 深圳市杉岩数据技术有限公司 | 一种虚拟机启动的加速方法和装置 |
CN112130955A (zh) * | 2020-09-02 | 2020-12-25 | 中国电子科技网络信息安全有限公司 | 一种基于融合架构云平台的虚拟机调度方法 |
CN112597536A (zh) * | 2020-12-23 | 2021-04-02 | 瀚高基础软件股份有限公司 | 数据库表文件被非法删除的实时检测方法及装备 |
CN112597536B (zh) * | 2020-12-23 | 2023-01-24 | 瀚高基础软件股份有限公司 | 数据库表文件被非法删除的实时检测方法及装备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100451995C (zh) | 保留虚拟机的高速缓存的系统和方法 | |
JP5736320B2 (ja) | 複製された書き込み要求を伴うコヒーレントメモリコピーのための方法及び装置 | |
US8676809B1 (en) | Method and apparatus for mapping virtual machine incremental images | |
CN108475201B (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
KR20060118393A (ko) | 메시지의 대기 행렬 처리 방법, 갱신 요청 사전 처리 방법,메시지의 대기 행렬 처리 장치 및 컴퓨터 프로그램 | |
CN112947969B (zh) | 一种页面离屏渲染方法、装置、设备和可读介质 | |
US20150378745A1 (en) | Data processing method during boot procedure of smart device and smart device | |
CN107479942A (zh) | 虚拟机的客户操作系统启动方法及装置 | |
US20170371916A1 (en) | Database management device, database management method, and storage medium | |
US10152333B2 (en) | Network boot system | |
CN115639971B (zh) | 数据写入方法、装置、电子设备、存储介质及程序产品 | |
CN112860325B (zh) | 一种无盘环境下硬件驱动自动快速预装方法和系统 | |
CN107077376A (zh) | 帧缓存实现方法、装置、电子设备和计算机程序产品 | |
WO2024022176A1 (zh) | 一种系统运行方法与终端装置 | |
CN105162833A (zh) | 应用于无盘工作站的客户机管理系统及方法 | |
US11216286B2 (en) | Method and device for the accelerated execution of applications | |
CN116048414A (zh) | 一种设备的数据读取方法及电子设备 | |
CN103246544A (zh) | 虚拟硬件驱动终端及驱动方法 | |
CN111399774B (zh) | 分布式存储系统下基于快照的数据处理方法和装置 | |
US9411639B2 (en) | System and method for managing network navigation | |
EP2960778A1 (en) | A storage abstraction layer and a system and a method thereof | |
CN111414130B (zh) | 计算节点系统及其数据获取方法以及电子设备 | |
JP2020135683A (ja) | 制御装置、及び制御プログラム | |
CN111414127B (zh) | 计算集群系统及其数据获取方法以及电子设备 | |
CN110658998B (zh) | 基于qemu的虚拟机磁盘热扩容的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171215 |
|
RJ01 | Rejection of invention patent application after publication |