[发明专利]基于写时复制的虚拟磁盘写入方法及装置、存储介质在审
申请号: | 201710472651.4 | 申请日: | 2017-06-20 |
公开(公告)号: | CN107861685A | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 刘仁仕;张齐国 | 申请(专利权)人: | 平安科技(深圳)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 深圳市世纪恒程知识产权代理事务所44287 | 代理人: | 胡海国 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 复制 虚拟 磁盘 写入 方法 装置 存储 介质 | ||
技术领域
本发明涉及虚拟磁盘技术领域,尤其涉及一种基于写时复制的虚拟磁盘写入方法及装置、存储介质。
背景技术
虚拟磁盘(Virtual disk),就是在本地电脑里面虚拟出一个远程电脑里面的磁盘,感觉像是在本机上的硬盘一样,但其实它没在本机上。虚拟磁盘就是用内存中虚拟出一个或者多个磁盘的技术,和虚拟内存一样,内存的速度要比硬盘快得多,利用这一点,在内存中虚拟出一个或多个磁盘就可以加快磁盘的数据交换速度,从而提高电脑的运行速度。
虚拟磁盘在当前的云计算环境中得到广泛使用,目前,虚拟磁盘在多次写入文件后会形成碎片,即连续虚拟地址空间分布在不连续的文件地址空间中,这样就会不可避免地带来写入放大,即对虚拟磁盘的一次写操作会被放大成多个文件写操作,对写性能带来了一定影响。如当写入的数据块大小为2MB时,默认簇的大小为64KB时,则需要写入32个数据簇,而这32个数据簇可能离散分布在不连续的文件地址中。此时,写入操作就会被放大到32倍,导致虚拟磁盘的写入性能降低。
发明内容
本发明的主要目的在于提出一种基于写时复制的虚拟磁盘写入方法及装置、存储介质,旨在解决现有技术中虚拟磁盘在多次写入文件后,会产生写入放大,导致虚拟磁盘写入性能降低的技术问题。
为实现上述目的,本发明提供一种基于写时复制的虚拟磁盘写入方法,所述基于写时复制的虚拟磁盘写入方法包括:
在检测到虚拟磁盘有写入操作时,检测所述写入操作的写入放大倍数;
当所述写入放大倍数等于或大于预设的阈值时,则对所述写入操作开启写时复制,以将所述写入操作对应的待写入文件暂时写入虚拟磁盘的缓存中;
当接收到存储指令时,在所述虚拟磁盘中为所述写入操作分配连续的地址空间,并将所述缓存中的待写入文件写入到所述虚拟磁盘中。
优选地,在所述虚拟磁盘中为所述写入操作分配连续的地址空间,并将所述缓存中的待写入文件写入到所述虚拟磁盘中的步骤包括:
在所述虚拟磁盘中为所述待写入文件分配连续的簇;
将所述缓存中的待写入文件写入到所述连续的簇中,并更新所述缓存中的待写入文件的虚拟地址偏移量。
优选地,更新所述缓存中的待写入文件的虚拟地址偏移量的步骤包括:
根据所述待写入文件的文件头部,索引出所述待写入文件的虚拟地址偏移量;
更新所述缓存中的待写入文件的虚拟地址偏移量,并释放所述虚拟磁盘中已被占用的簇。
优选地,释放所述虚拟磁盘中已被占用的簇的步骤包括:
将所述已被占用的簇对应的引用计数减1。
优选地,在所述虚拟磁盘中为所述写入操作分配连续的地址空间,并将所述缓存中的待写入文件写入到所述虚拟磁盘中的步骤还包括:
读取已被占用的簇对应的首尾数据段,并与所述缓存中的待写入文件进行拼接后同时写入到所述虚拟磁盘中。
此外,为实现上述目的,本发明还提供一种基于写时复制的虚拟磁盘写入装置,所述基于写时复制的虚拟磁盘写入装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于写时复制的虚拟磁盘写入程序,所述基于写时复制的虚拟磁盘写入程序被所述处理器执行时实现如下步骤:
在检测到虚拟磁盘有写入操作时,检测所述写入操作的写入放大倍数;
当所述写入放大倍数等于或大于预设的阈值时,则对所述写入操作开启写时复制,以将所述写入操作对应的待写入文件暂时写入虚拟磁盘的缓存中;
当接收到存储指令时,在所述虚拟磁盘中为所述写入操作分配连续的地址空间,并将所述缓存中的待写入文件写入到所述虚拟磁盘中。
优选地,所述基于写时复制的虚拟磁盘写入程序被所述处理器执行时,还可以实现如下步骤:
在所述虚拟磁盘中为所述待写入文件分配连续的簇;
将所述缓存中的待写入文件写入到所述连续的簇中,并更新所述缓存中的待写入文件的虚拟地址偏移量。
优选地,所述基于写时复制的虚拟磁盘写入程序被所述处理器执行时,还可以实现如下步骤:
根据所述待写入文件的文件头部,索引出所述待写入文件的虚拟地址偏移量;
更新所述缓存中的待写入文件的虚拟地址偏移量,并释放所述虚拟磁盘中已被占用的簇。
优选地,所述基于写时复制的虚拟磁盘写入程序被所述处理器执行时,还可以实现如下步骤:
读取已被占用的簇对应的首尾数据段,并与所述缓存中的待写入文件进行拼接后同时写入到所述虚拟磁盘中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安科技(深圳)有限公司,未经平安科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710472651.4/2.html,转载请声明来源钻瓜专利网。