一种数据访问请求响应方法及装置制造方法

文档序号:6518453阅读:159来源:国知局
一种数据访问请求响应方法及装置制造方法
【专利摘要】本发明实施例提供了一种数据访问请求响应方法及装置,在虚拟化系统中,第一虚拟机挂载服务器的缓冲存储装置,第一虚拟机接收第二虚拟机发出的数据访问请求,并对所述数据访问请求进行响应,第一虚拟机挂载服务器的缓冲存储装置,并用于响应第一虚拟机数据访问请求,为第一虚拟机提供了充分的计算资源处理虚拟机的数据访问请求。
【专利说明】一种数据访问请求响应方法及装置
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种数据访问请求处理方法及装置。
【背景技术】
[0002]使用高速缓冲存储器(Cache)来缓解处理器和主存储器间处理速度不匹配的矛盾,在虚拟化的场景下,Cache驱动通常设置在虚拟机监视器(Virtual Machine Monitor)中,因为虚拟机监视器负责各个虚拟机的管理,虚拟机监视器将运行虚拟机的服务器中的缓冲存储器资源配置给虚拟机监视器管理的虚拟机,从而实现服务器缓冲存储器资源的虚拟机。虚拟机监视器将服务器缓冲存储器资源分配给虚拟机会消耗服务器的计算资源,从而导致没有充分的计算资源处理虚拟机的数据访问请求。

【发明内容】

[0003]有鉴于此,本发明实施例提供了一种数据访问请求响应方法及装置,目的在于解决现有的虚拟化场景下,没有充分的计算资源处理虚拟机的数据访问请求问题。
[0004]本发明实施例的第一方面提供了一种数据访问请求响应方法,所述方法应用于虚拟化系统,所述虚拟化系统包括服务器和外部存储装置,所述服务器上运行至少两台虚拟机,所述服务器包括缓冲存储装置,用于缓存运行在所述服务器上的虚拟机访问所述外部存储装置时的数据访问请求,其中,第一虚拟机挂载所述缓冲存储装置;所述方法包括:
[0005]所述第一虚拟机接收第二虚拟机的数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问;
[0006]所述第一虚拟机响应所述第二虚拟机的数据访问请求。
[0007]在本发明实施例的第一方面的第一种实现方式中,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0008]当所述数据读取请求在所述缓冲存储装置中命中读取请求的数据时,所述第一虚拟机将所述读取请求的数据发送给所述第二虚拟机。
[0009]在本发明实施例的第一方面的第二种实现方式中,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,包括:
[0010]当所述数据读取请求在所述缓冲存储装置中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储装置中查询是否存在第一数据写入请求,所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同;
[0011]如果存在所述第一数据写入请求,所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机,其中,所述写入的地址是指写入所述外部存储装置的地址;
[0012]如果不存在所述第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且将从所述外部存储装置读取的数据返回给所述第二虚拟机。[0013]在本发明实施例的第一方面的第三种实现方式中,如果所述第一数据写入请求存在多个,则所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机包括:
[0014]根据接收到所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据。
[0015]在本发明实施例的第一方面的第四种实现方式中,当所述数据访问请求为数据写入请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0016]所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储装置;
[0017]所述第一虚拟机向所述第二虚拟机返回第一数据写入响应;所述第一数据写入响应用于指示完成所述数据访问请求触发的操作;
[0018]或者,
[0019]所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置;
[0020]所述第一虚拟机向所述第二虚拟机返回第二数据写入响应;所述第二数据写入响应用于指示完成所述数据访问请求触发的操作。
[0021]在本发明实施例的第一方面的第五种实现方式中,在所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置之前,还包括:
[0022]所述第一虚拟机查询所述缓冲存储装置中是否存在第二数据写入请求,所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且接收到所述第二数据写入请求的时间早于接收到所述数据访问请求的时间,并且接收到所述第二数据请求和所述数据访问请求之间的时间范围内不存在对所述数据访问请求写入的地址的数据读取请求;
[0023]如果存在所述第二数据写入请求,则将所述第二数据写入请求从所述缓冲存储装置中删除。
[0024]在本发明实施例的第一方面的第六种实现方式中,所述缓冲存储装置为固态硬盘或者PCIe闪存卡。
[0025]本发明实施例的第二方面提供了一种服务器,所述服务器上包括缓冲存储单元和虚拟机运行单元,所述虚拟机运行单元至少运行两台虚拟机,并且第一虚拟机挂载所述缓冲存储单元,所述虚拟机运行单元中的所述第一虚拟机接收第二虚拟机的数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问;所述第一虚拟机响应所述第二虚拟机的数据访问请求。
[0026]在本发明实施例的第二方面的第一种实现方式中,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0027]当所述数据读取请求在所述缓冲存储单元中命中读取请求的数据时,所述第一虚拟机将所述读取请求的数据发送给所述第二虚拟机。
[0028]在本发明实施例的第二方面的第二种实现方式中,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0029]当所述数据读取请求在所述缓冲存储单元中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储单元中查询是否存在第一数据写入请求,所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同;[0030]如果存在所述第一数据写入请求,所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机,其中,所述写入的地址是指写入所述外部存储装置的地址;
[0031]如果不存在所述第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且将从所述外部存储装置读取的数据返回给所述第二虚拟机。
[0032]在本发明实施例的第二方面的第三种实现方式中,如果第一数据写入请求存在多个,则所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机包括:
[0033]根据接收到所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据。
[0034]在本发明实施例的第二方面的第四种实现方式中,当所述数据访问请求为数据写入请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0035]所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储单元;
[0036]所述第一虚拟机向所述第二虚拟机返回第一数据写入响应;所述第一数据写入响应用于指示完成所述数据访问请求触发的操作;
[0037]或者,
[0038]所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置;
[0039]所述第一虚拟机向所述第二虚拟机返回第二数据写入响应;所述第二数据写入响应用于指示完成所述数据访问请求触发的操作。
[0040]在本发明实施例的第二方面的第五种实现方式中,在所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置之前,还包括:
[0041]所述第一虚拟机查询所述缓冲存储单元中是否存在第二数据写入请求,所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且接收到所述第二数据写入请求的时间早于接收到所述数据访问请求的时间,并且接收到所述第二数据请求和所述数据访问请求之间的时间范围内不存在对所述数据访问请求写入的地址的数据读取请求;
[0042]如果存在所述第二数据写入请求,则将所述第二数据写入请求从所述缓冲存储单元中删除。
[0043]本发明实施例提供的数据访问请求响应方法及装置,在虚拟化系统中,第一虚拟机挂载服务器的缓冲存储装置,第一虚拟机接收第二虚拟机发出的数据访问请求,并对所述数据访问请求进行响应,第一虚拟机挂载服务器的缓冲存储装置,并用于响应第一虚拟机数据访问请求,为第一虚拟机提供了充分的计算资源处理虚拟机的数据访问请求。
【专利附图】

【附图说明】
[0044]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0045]图1为一种虚拟化场景的示意图;[0046]图2为本发明实施例公开的一种数据访问请求方法的流程图;
[0047]图3为本发明实施例公开的又一种数据访问请求方法的流程图;
[0048]图4为本发明实施例公开的又一种数据访问请求方法的流程图;
[0049]图5为本发明实施例公开的又一种数据访问请求方法的流程图;
[0050]图6为本发明实施例公开的一种服务器的结构示意图。
【具体实施方式】
[0051 ] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]本发明的实施例可以应用于虚拟化系统,如图1所示,所述虚拟化系统包括服务器和外部存储装置,所述服务器上运行至少两台虚拟机,所述服务器包括缓冲存储装置(例如Cache ),可选地,所述缓冲存储装置可以为固态硬盘或者PCIe闪存卡,其中,第一虚拟机挂载所述服务器的缓冲存储装置。外部存储装置可以为存储阵列,具体可以为存储区域网络SAN或者网络附加存储NAS等,本发明实施例对此不作具体限定。
[0053]实际中,可以有多个第二虚拟机。通常,第一虚拟机和第二虚拟机的计算资源可以为所述服务器的现有计算资源,各个虚拟机的计算资源和存储资源的大小可以在配置虚拟机时进行配置,也可以在虚拟机配置好后进行调整。
[0054]如图2所示,本发明实施例公开的一种数据访问请求响应方法包括:
[0055]S201:第一虚拟机接收第二虚拟机的数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问;
[0056]S202:所述第一虚拟机响应所述第二虚拟机的数据访问请求。
[0057]而本实施例所述的数据访问请求响应方法,由第一虚拟机接收第二虚拟机发出的数据访问请求并对所述数据访问请求进行响应,因而,由挂载服务器缓冲存储装置的第一虚拟机对第二虚拟机发出的数据访问请求进行响应,为处理虚拟机数据访问请求的第一虚拟机提供了充分的计算资源。
[0058]并且,本实施例中,因为第一虚拟机挂载所述缓冲存储装置,所以,第一虚拟机可以对缓冲存储装置的存储空间进行统一管理,而不必再为各个第二虚拟机分配固定的缓冲存储空间,从而实现缓冲存储空间的动态使用,提升缓冲存储装置的利用率。
[0059]进一步地,本实施例所述的方法,为了解决对数据访问请求的响应速度不高的问题,没有采用重新分配服务器的计算资源的方法,而是特定虚拟机响应数据访问请求,即,原来将通过虚拟机监视器将服务器的缓冲存储资源虚拟化为每台虚拟机分配缓冲存储资源,本发明实施例中,将服务器缓冲存储资源分配给特定一台虚拟机(即第一虚拟机),由该特定虚拟机处理服务器上运行的虚拟机的数据访问请求,为该特定虚拟机提供了充分的计算资源,提高了数据访问请求的处理能力。
[0060]本发明实施例公开的又一种数据访问请求响应方法,如图3所示,包括:
[0061]S301:第一虚拟机接收第二虚拟机发出的数据访问请求,本实施例中,数据访问请求为数据读取请求;[0062]本实施例中,数据访问请求可以由缓冲存储装置的驱动进行转发。
[0063]S302:所述第一虚拟机查询数据读取请求在所述缓冲存储装置(Cache)中是否命中,如果是,执行S303,如果否,执行S304 ;
[0064]第一数据读取请求读取的地址与所述数据访问请求读取的地址相同。
[0065]S303:当数据读取请求在所述缓冲存储装置中命中读取请求的数据时,所述第一虚拟机将所述读取请求读取的数据发送给所述第二虚拟机;
[0066]S304:当数据读取请求在所述缓冲存储装置中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储装置中查询是否存在第一数据写入请求,如果是,执行S305,如果否,执行S306 ;
[0067]所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同。其中,所述写入的地址是指写入所述外部存储装置的地址。
[0068]S305:如果Cache中缓存第一数据写入请求,所述第一虚拟机从Cache中读取所述第一数据写入请求写入的数据,并将所述第一数据写入请求写入的数据发送给第二虚拟机;
[0069]如果第一数据写入请求存在多个,则根据所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据,具体地,可以依据第一数据写入请求的时间戳,返回时间戳最晚的数据写入请求写入的数据。
[0070]S306:如果Cache中没有缓存第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且将从所述外部存储装置读取所述数据访问请求读取的数据返回给所述第二虚拟机。
[0071]本实施例中,第一虚拟机可以将数据读取请求读取的数据发送给Cache的驱动,由Cache的驱动将其转发给第二虚拟机。
[0072]本实施例所述的数据访问请求响应方法,由第一虚拟机在Cache中查询数据读取请求是否命中,因此使得有充分的计算资源的第一虚拟机处理数据读取请求,能够提高查询速度,从而提升对数据读取请求的响应速度。
[0073]在Cache不命中的情况下,将写入地址与数据访问请求读取的地址相同的数据写入请求写入的数据发给第二虚拟机,所以,在Cache不命中的情况下,也无需访问外部存储装置,使得有充分的计算资源的第一虚拟机处理数据读取请求,从而能够提高数据读取请求的性能。并且,本实施例所述的方法,无需等待将数据写入后再进行数据读取操作,所以能够减小数据读取操作的时延。
[0074]本发明实施例公开的又一种数据访问请求响应方法,如图4所示,包括:
[0075]S401:第一虚拟机接收第二虚拟机发出的数据访问请求,所述数据访问请求为数据写入请求;
[0076]S402:所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储装置;
[0077]S403:所述第一虚拟机向所述第二虚拟机返回第一数据写入响应,所述第一数据写入响应用于指示完成所述数据访问请求触发的操作。
[0078]本实施例所述的方法,第一虚拟机将第二虚拟机请求写入的数据写入Cache后即可返回响应,指示完成写入过程,使得有充分的计算资源的第一虚拟机处理数据写入请求,能够缩短写操作的响应时间。
[0079]本发明实施例公开的又一种数据访问请求响应方法,如图5所示,包括:
[0080]S501:第一虚拟机接收第二虚拟机发出的数据访问请求,所述数据访问请求为数据写入请求;
[0081]S502:所述第一虚拟机查询所述缓冲存储装置中是否存在第二数据写入请求;
[0082]本实施例中,第二数据请求满足以下限定:所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且所述第二数据写入请求的第一时间戳早于所述数据访问请求的第二时间戳,以及,所述第一时间戳和所述第二时间戳间隔的时间范围内不存在数据读取请求。
[0083]S503:如果存在所述第二数据写入请求,则将所述第二数据写入请求从Cache中删除;
[0084]S504:依据Cache中缓存的数据写入请求,将Cache中剩余数据写入请求写入的数据写入外部存储装置。
[0085]本实施例所述的方法,在响应数据写入请求时,第一虚拟机先确定Cache中是否存在无用的写请求,如果是,删除无用的写请求,所以,在向外部存储装置写数据时,能够减少写的次数,从而提升磁盘写的性能。
[0086]本发明实施例还公开了一种服务器,如图6所示,所述服务器上包括缓冲存储单元601和虚拟机运行单元602,所述虚拟机运行单元至少运行两台虚拟机,并且第一虚拟机挂载所述缓冲存储单元,所述虚拟机运行单元中的第一虚拟机接收第二虚拟机数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问,所述第一虚拟机响应所述第二虚拟机的数据访问请求。
[0087]可选地,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:当所述数据读取请求在所述缓冲存储单元中命中读取请求的数据时,所述第一虚拟机将所述读取请求的数据发送给所述第二虚拟机。
[0088]可选地,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0089]当所述数据读取请求在所述缓冲存储单元中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储单元中查询是否存在第一数据写入请求,所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同;
[0090]如果存在所述第一数据写入请求,所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机,其中,所述写入的地址是指写入所述外部存储装置的地址;
[0091]如果不存在所述第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且将从所述外部存储装置读取的数据返回给所述第二虚拟机。
[0092]可选地,如果第一数据写入请求存在多个,则所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机包括:
[0093]根据接收到所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据。[0094]可选地,当所述数据访问请求为数据写入请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括:
[0095]所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储单元;
[0096]所述第一虚拟机向所述第二虚拟机返回第一数据写入响应;所述第一数据写入响应用于指示完成所述数据访问请求触发的操作;
[0097]或者,
[0098]所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置;
[0099]所述第一虚拟机向所述第二虚拟机返回第二数据写入响应;所述第二数据写入响应用于指示完成所述数据访问请求触发的操作。
[0100]可选地,在所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置之前,还包括:
[0101]所述第一虚拟机查询所述缓冲存储单元中是否存在第二数据写入请求,所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且接收到所述第二数据写入请求的时间早于接收到所述数据访问请求的时间,并且接收到所述第二数据请求和所述数据访问请求之间的时间范围内不存在对所述数据访问请求写入的地址的数据读取请求;
[0102]如果存在所述第二数据写入请求,则将所述第二数据写入请求从所述缓冲存储单元中删除。
[0103]本实施例所述的服务器,在运行虚拟机时,由第一虚拟机响应数据访问请求,使得第一虚拟机有充分的计算资源处理数据读取请求,能够提升对数据访问请求的响应速度。
[0104]本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0105]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0106]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种数据访问请求响应方法,其特征在于,所述方法应用于虚拟化系统,所述虚拟化系统包括服务器和外部存储装置,所述服务器上运行至少两台虚拟机,所述服务器包括缓冲存储装置,用于缓存运行在所述服务器上的虚拟机访问所述外部存储装置时的数据访问请求,其中,第一虚拟机挂载所述缓冲存储装置;所述方法包括: 所述第一虚拟机接收第二虚拟机的数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问; 所述第一虚拟机响应所述第二虚拟机的数据访问请求。
2.根据权利要求1所述的方法,其特征在于,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括: 当所述数据读取请求在所述缓冲存储装置中命中读取请求的数据时,所述第一虚拟机将所述读取请求的数据发送给所述第二虚拟机。
3.根据权利要求1所述的方法,其特征在于,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,包括: 当所述数据读取请求在所述缓冲存储装置中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储装置中查询是否存在第一数据写入请求,所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同; 如果存在所述第一数据写入请求,所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机,其中,所述写入的地址是指写入所述外部存储装置的地址; 如果不存在所述第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且将从所述外部存储装置读取的数据返回给所述第二虚拟机。
4.如权利要求3所述的方法,其特征在于,如果所述第一数据写入请求存在多个,则所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机包括: 根据接收到所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据。
5.根据权利要求1所述的方法,其特征在于,当所述数据访问请求为数据写入请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括: 所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储装置; 所述第一虚拟机向所述第二虚拟机返回第一数据写入响应;所述第一数据写入响应用于指示完成所述数据访问请求触发的操作; 或者, 所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置; 所述第一虚拟机向所述第二虚拟机返回第二数据写入响应;所述第二数据写入响应用于指示完成所述数据访问请求触发的操作。
6.根据权利要求5所述的方法,其特征在于,在所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置之前,还包括: 所述第一虚拟机查询所述缓冲存储装置中是否存在第二数据写入请求,所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且接收到所述第二数据写入请求的时间早于接收到所述数据访问请求的时间,并且接收到所述第二数据请求和所述数据访问请求之间的时间范围内不存在对所述数据访问请求写入的地址的数据读取请求;如果存在所述第二数据写入请求,则将所述第二数据写入请求从所述缓冲存储装置中删除。
7.根据权利要求1至6任一所述的方法,其特征在于,所述缓冲存储装置为固态硬盘或者PCIe闪存卡。
8.一种服务器,其特征在于,所述服务器上包括缓冲存储单元和虚拟机运行单元,所述虚拟机运行单元至少运行两台虚拟机,并且第一虚拟机挂载所述缓冲存储单元,所述虚拟机运行单元中的所述第一虚拟机接收第二虚拟机的数据访问请求,所述数据访问请求用于所述第二虚拟机向所述外部存储装置进行数据访问;所述第一虚拟机响应所述第二虚拟机的数据访问请求。
9.根据权利要求8所述的服务器,其特征在于,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括: 当所述数据读取请求在所述缓冲存储单元中命中读取请求的数据时,所述第一虚拟机将所述读取请求的数据发送给所述第二虚拟机。
10.根据权利要求8所述的服务器,其特征在于,当所述数据访问请求为数据读取请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括: 当所述数据读取请求在所述缓冲存储单元中没有命中读取请求的数据时,所述第一虚拟机从所述缓冲存储单元中查询是否存在第一数据写入请求,所述第一数据写入请求写入的地址与所述数据访问请求读取的地址相同; 如果存在所述第一数据写入请求,所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机,其中,所述写入的地址是指写入所述外部存储装置的地址; 如果不存在所述第一数据写入请求,所述第一虚拟机从所述外部存储装置读取所述数据访问请求读取的数据并且 将从所述外部存储装置读取的数据返回给所述第二虚拟机。
11.根据权利要求10所述的服务器,其特征在于,如果第一数据写入请求存在多个,则所述第一虚拟机将所述第一数据写入请求写入的数据发送给所述第二虚拟机包括: 根据接收到所述第一数据写入请求的时间,向所述第二虚拟机发送最晚接收到的第一数据写入请求写入的数据。
12.根据权利要求8所述的服务器,其特征在于,当所述数据访问请求为数据写入请求时,所述第一虚拟机响应所述第二虚拟机的数据访问请求,具体包括: 所述第一虚拟机将所述数据访问请求写入的数据缓存至所述缓冲存储单元; 所述第一虚拟机向所述第二虚拟机返回第一数据写入响应;所述第一数据写入响应用于指示完成所述数据访问请求触发的操作; 或者, 所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置; 所述第一虚拟机向所述第二虚拟机返回第二数据写入响应;所述第二数据写入响应用于指示完成所述数据访问请求触发的操作。
13.根据权利要求12所述的服务器,其特征在于,在所述第一虚拟机将所述数据访问请求写入的数据写入所述外部存储装置之前,还包括: 所述第一虚拟机查询所述缓冲存储单元中是否存在第二数据写入请求,所述第二数据写入请求写入的地址与所述数据访问请求写入的地址相同,且接收到所述第二数据写入请求的时间早于接收到所述数据访问请求的时间,并且接收到所述第二数据请求和所述数据访问请求之间的时间范围内不存在对所述数据访问请求写入的地址的数据读取请求;
如果存在所述第二数据写入请求,则将所述第二数据写入请求从所述缓冲存储单元中删除。
【文档编号】G06F12/08GK103631640SQ201310554346
【公开日】2014年3月12日 申请日期:2013年11月8日 优先权日:2013年11月8日
【发明者】葛小宇, 和晓艳, 石佳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1