本发明专利技术公开了一种基于本地缓存的网络盘的实现及维护方法,涉及数据存储技术领域,包括步骤:创建两个本地缓存文件A和B,将服务器镜像文件数据缓存到文件A,将对网络盘修改的数据缓存到文件B;修改网络盘扇区数据时,将数据写入文件B,更新文件B缓存数据,提交文件B的缓存数据到服务器,更新服务器镜像文件数据;读取网络盘扇区数据时,检测到文件A/B中存在缓存记录,则读取文件A/B中缓存数据;否则从服务器上获取数据并缓存数据到文件A中。本发明专利技术解决虚拟系统部署的问题,按需下载数据,更加快捷方便,用户体验更好,使网络盘数据始终和服务器上保持一致,且能临时修改网络盘数据,简单、高效地更新服务器镜像文件数据。
【技术实现步骤摘要】
本专利技术涉及数据存储
,特别是涉及一种。
技术介绍
传统的网络盘包括以下两种(I)网络盘可以被读取和修改,但是修改的数据会回写到服务器上,其他机器也能看到被修改后的数据。(2)网络盘一般情况下只能被读取,不能被修改。上述两种网络盘都难以解决虚拟系统部署的问题,如果将虚拟系统数据放置在传统网络盘中,虚拟系统启动的过程中会去修改网络盘扇区数据,且一般会有多台机器同时使用该虚拟系统,会出现网络盘数据不一致或者虚拟系统无法启动的问题。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种,解决虚拟系统部署的问题,将虚拟系统数据放置在网络盘中,采用按需下载所需扇区数据的方式,更加快捷方便,用户体验更好,使网络盘数据始终和服务器上保持一致,且能临时修改网络盘数据,简单、高效地更新服务器镜像文件数据。本专利技术提供的,包括以下步骤a、创建两个本地缓存文件A和B,将服务器上的镜像文件数据缓存到文件A中,将对网络盘修改的数据缓存到文件B中;b、修改网络盘扇区的数据时,先将数据写入到文件B中,更新文件B 中的缓存数据,再将文件B中的缓存数据提交到服务器上,更新服务器上的镜像文件数据; C、读取网络盘扇区的数据时,若检测到文件Α/B中存在缓存记录,则读取文件Α/B中缓存的数据;否则从服务器上获取数据并将数据缓存到文件A中。在上述技术方案中,步骤a中还包括初始化本地缓存的步骤获取服务器镜像文件的大小,按照512字节对服务器镜像文件进行管理,分别生成文件A和B的索引信息。在上述技术方案中,生成文件Α/B的索引信息时,若判定文件Α/B中存在缓存,则将该文件索引信息中的bit位标为I ;否则将该文件索引信息中的bit位标为O。在上述技术方案中,步骤c中通过检测文件A和B的索引信息,来检测文件Α/B中是否存在缓存记录。在上述技术方案中,所述本地缓存文件A和B的格式相同。在上述技术方案中,所述本地缓存文件A和B均包括索引信息头和空数据。在上述技术方案中,步骤b中还包括步骤将数据写入到文件B中后,更新文件B 的缓存索引信息头。在上述技术方案中,步骤c中还包括步骤加载本地虚拟盘,读取虚拟盘数据时, 对读取请求的偏移和长度进行检查,首先,如果判定文件B中存在相应位置的缓存数据,则由文件B提供该缓存数据;其次,如果判定存在未处理的读取请求,则由文件A提供缓存数据;最后,如果判定还存在未处理的读取请求,则由网络盘驱动通过网络向服务器获取数据,并将获取的数据缓存到文件A中。在上述技术方案中,每次加载虚拟盘时先清空文件B的缓存数据。与现有技术相比,本专利技术的优点如下(I)本专利技术解决虚拟系统部署的问题,将虚拟系统数据放置在网络盘中,创建了两个本地缓存文件,将与服务器上一致的数据缓存在一个文件中,被修改的数据缓存在另一个文件中,与传统网络盘相比,本专利技术提供本地缓存机制,虚拟系统启动过程中修改的网络盘数据缓存到本地,不提交到服务器上,通过网络盘的方式来交付虚拟系统,虚拟系统启动时不会修改服务器上镜像文件数据,不仅能使网络盘数据始终和服务器上保持一致,而且可临时修改网络盘数据,能更加简单、高效地更新服务器镜像文件数据,更好的配合虚拟系统使用。(2)本专利技术在使用过程中不需将整个虚拟系统的数据都准备好,采用按需下载所需扇区数据的方式,即只有需要的扇区数据才会从网络上下载,与传统网络盘只能下载整个文件相比,本专利技术更加快捷方便,用户体验更好。附图说明图I是本专利技术实施例中基于本地缓存的网络盘的实现流程图。图2是本专利技术实施例中基于本地缓存的网络盘的维护流程图。具体实施例方式下面结合附图及实施例对本专利技术作进一步的详细描述。本专利技术实施例提供的,包括以下步骤a、创建两个本地缓存文件A和B,初始化本地缓存获取服务器镜像文件的大小, 按照512字节对服务器镜像文件进行管理,分别生成文件A和B的索引信息。生成文件A/ B的索引信息时,若判定文件Α/B中存在缓存,则将该文件索引信息中的bit位标为I ;否则将该文件索引信息中的bit位标为O。本地缓存文件A和B的格式相同,均包括索引信息头和空数据。将服务器上的镜像文件数据缓存到文件A中,将对网络盘修改的数据缓存到文件B中。b、修改网络盘扇区的数据时,先将数据写入到文件B中,更新文件B中的缓存数据,并更新文件B的缓存索引信息头,再将文件B中的缓存数据提交到服务器上,更新服务器上的镜像文件数据。C、读取网络盘扇区的数据时,通过检测文件A和B的索引信息,来检测文件Α/B中是否存在缓存记录。若检测到文件Α/B中存在缓存记录,则读取文件Α/B中缓存的数据;否则从服务器上获取数据并将数据缓存到文件A中。具体过程如下加载本地虚拟盘(每次加载虚拟盘时先清空文件B的缓存数据),读取虚拟盘数据时,对读取请求的偏移和长度进行检查,首先,如果判定文件B中存在相应位置的缓存数据,则由文件B提供该缓存数据;其次,如果判定存在未处理的读取请求,则由文件A提供缓存数据;最后,如果判定还存在未处理的读取请求,则由网络盘驱动通过网络向服务器获取数据,并将获取的数据缓存到文件A中。假定服务器有一个镜像文件S,大小为5G。参见图I所示,本专利技术实施例中基于本地缓存的网络盘的实现流程如下步骤101、启动网络盘驱动。步骤102、通过网络获取服务器上镜像文件信息。步骤103、初始化本地缓存获取服务器镜像文件S的大小,按照512字节对服务器镜像文件S进行管理,生成索引信息,bit位为0,表示缓存不存在,bit位为1,表示缓存存在。在本地创建缓存文件A,由索引信息头和5G空数据组成。在本地创建缓存文件B,格式和文件A—样。将服务器上的镜像文件数据缓存到文件A中,将对网络盘修改的数据缓存到文件B中。步骤104、映射本地虚拟盘符Z,Z盘数据来源于文件A、B和服务器镜像文件S,判断要读取Z盘扇区数据还是修改Z盘扇区数据,若要修改Z盘扇区数据,则转到步骤105 ; 若要读取Z盘扇区数据,则转到步骤106。步骤105、将数据写入到文件B中,同时更新文件B的缓存索引信息头。步骤106、对读取请求的偏移和长度进行检查,首先检测是否存在文件B的缓存记录,如果是,即文件B中存在相应位置的缓存数据,则转到步骤107 ;否则转到步骤108。步骤107、这部分数据由文件B来提供,即读取文件B的缓存数据。步骤108、检测是否存在文件A的缓存记录,如果是,即文件A中存在相应位置的缓存数据,则转到步骤109 ;否则转到步骤110。步骤109、未处理的读取请求,由文件A来提供,即读取文件A的缓存数据。步骤110、最后如果还存在没有处理的读取请求数据,则由网络盘驱动通过网络向服务器获取,同时将该部分数据保存到缓存文件A中,以便下次不用从网络获取,节省网络资源。参见图2所示,本专利技术实施例中基于本地缓存的网络盘的维护流程如下步骤201、根据对Z盘数据使用产生的文件B的缓存记录,获取文件B的缓存数据。步骤202、将文件B中的缓存数据提交到服务器上,更新服务器镜像文件S的数据。显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若本专利技术的这些修改和变型属于本专利技术权利要求及其等同技术的范围之内,则本专利技术也意图包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:王陈,
申请(专利权)人:武汉噢易科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。