改进虚拟磁盘在分布式存储下的读写效率

2020-11-14 08:37麦剑
网络安全技术与应用 2020年11期
关键词:副本磁盘虚拟化

◆麦剑

数据安全与云计算

改进虚拟磁盘在分布式存储下的读写效率

◆麦剑

(广东睿江云计算股份有限公司 广东 528000)

本文介绍了云计算下云主机的相关基础技术,如网络虚拟化、存储虚拟化、计算虚拟化,并对云主机及操作系统的机制进行了简单分析。当前存储虚拟化的几种技术架构方案,如集中式存储、分布式存储、本地存储,笔者对三种常见存储架构的优缺点及存储服务优化进行详细阐述,并探讨如何结合各自存储架构的优点以及如何改进虚拟机的读写性能等。

云计算;虚拟化;磁盘;分布式存储;读写效率

过去,物理CPU、内存、磁盘都固化在同一台设备之上,磁盘的数据传输一般都在设备内部完成,云计算的兴起与发展改变了计算机操作系统的运行方法。在云计算虚拟化技术的帮助下,操作系统运行载体及相关磁盘服务发生了很大的变化,最明显的就是把计算与存储进行分离,不再需要通过本地总线进行传输而改成网络的方式。过去已有的存储技术得以发展和大规模应用,如集中式存储、分布式存储等,过去可能只出现在一些大型机构或者具备一定规模的计算集群,如今存储设备已经广泛使用在不同的领域及场景,得益于软件定义存储技术的发展,衍生出许多基于x86通用设备的存储产品。下文中,笔者将围绕当前云计算背景下分布式存储及对应磁盘虚拟化等问题展开讨论并对优化改进方案进行描述。

1 现有相关技术介绍

1.1 云计算虚拟化

云计算技术的核心是虚拟化,而虚拟化根据类型主要分成三大模块:计算虚拟化、存储虚拟化、网络虚拟化。计算虚拟化主要是提供CPU虚拟化服务,比如把物理CPU虚拟成多个虚拟的CPU提供给虚拟机使用。存储虚拟化通常为虚拟机提供虚拟磁盘服务,这个虚拟磁盘提供和物理磁盘一样的接口及功能服务,使得操作系统当成是一块真实磁盘那样使用,而提供这些服务的通常是一些专业的硬件存储或者由通用设备搭建的存储集群所提供;网络虚拟化不仅为虚拟机提供了基础的网络服务,还提供了自助组网等功能。

1.2 分布式存储

根据实现方式分类,存储一般分为本地存储和网络存储。本地存储比较容易理解,提供存储服务的磁盘直接挂载在当前运行操作系统的设备之上,也就是传统的、目前常见的方式。网络存储又可以分成集中式存储和分布式存储,集中式存储通常是指由一台单独的存储设备所组成;分布式存储通常由多台设备以集群的方式组成。由于通信机制的原因,本地存储性能及效率都能达到很好的效果,但是数据冗余方面则没有网络存储好;网络存储在数据冗余安全性方面有优势,但是由于所有数据交互都经过网络,因而在效率及性能方面又不如本地存储。

1.3 虚拟磁盘

为了正常运行,虚拟机和普通计算机一样,都需要CPU、内存、磁盘等几个关键模块。在云虚拟化技术帮助下,这些关键模块都用虚拟化的方式提供服务。虚拟磁盘对虚拟机层面来讲,它看到的是一个和物理磁盘一样的设备,接口和使用方式都一致,因此可以驱动起操作系统的运行和普通计算机一样。从底层来讲,虚拟磁盘是从一个存储单元划分一部分空间出来提供存储读写服务,这个存储单元可以由本地磁盘提供,也可以由集中式存储或者分布式存储提供,只需要按照一定的规范标准接口即可。

2 本方案概要

本方案主要利用本地存储结合分布式存储各自的优势来组合使用,提供和现有一样的虚拟磁盘服务,用于改进虚拟磁盘在分布式存储下的读写效率。接下来,主要围绕本地存储、分布式存储及其对应的技术方案细节,对现有存在的问题如何改进提升展开探讨。

2.1 当前存在的问题

目前分布式存储(2副本)的实现方案如图1所示:

图1 目前分布式存储(2副本)的实现方案

宿主机是为虚拟机提供CPU、网络虚拟化服务的物理设备,物理宿主机与存储设备之间通过网络互相连接,提供存储网络服务。目前,分布式存储提供虚拟磁盘的块服务,会把磁盘按照固定的数据块平均分为若干份,分散地保存到存储单元设备中。比如一个20G的磁盘,数据块大小是4MB,那么就有5000个数据块分散地保存在存储单元中。除此,分布式存储还提供副本功能,如上图所示的是2副本,代表主数据有1分,然后备份数据1份,一共2份数据。引入副本的好处是数据冗余性防止数据丢失,但会引申出一个写的效率问题:以往没有副本的情况下,数据只需要写一次即可;当有副本之后,如2副本则需要写2次数据,通常要等2份数据都写完了才能返回成功,以防止数据的不一致性。因此,分布式存储存在一个明显的效率问题,就是随着副本数增加,写的次数也会增加,数据冗余安全性与效率方面不能兼得。

2.2 对应解决方案

本解决方案如图2所示。

图2 本解决方案

本方案引入了两个核心模块来完成对应的功能:一是初始化模块;二是定时更新模块。整个工作流程描述如下:

(1)虚拟机创建时,指定了所需要的磁盘大小及对应操作系统版本等信息;

(2)初始化模块根据虚拟所需的磁盘信息,先到后端分布式存储创建分配对应大小及相关的操作系统系统盘等;

(3)初始化模块检测创建的是系统盘还是数据盘。如果是数据盘,则在宿主机本地磁盘创建一块相同大小的提供给虚拟机使用;如果是系统盘,除了在宿主机创建一块相同大小的之外还需要从分布式存储把对应的系统数据同步到这块磁盘上,以供虚拟机开机引导;

(4)完成前面3个步骤之后,虚拟机可以正常启动并加载读写磁盘数据,读虚拟磁盘数据时将直接从本地磁盘中读取(步骤3已经同步了分布式存储的数据);当虚拟机需要把新数据写入虚拟磁盘时,直接写到本地磁盘。由于读写都是直接操作宿主机的本地磁盘,所以无论效率或性能都较优。

(5)当虚拟机对虚拟磁盘写一块数据的时候,定时更新模块都会记录对应那一块数据块被更新了,到了一定的时间就会触发,把更新过的数据块内容同步到后端的分布式存储。

3 结语

分布式存储是把一块完整的数据按照平均大小分拆成若干份数据块,分别保存在不同的存储单元,因此虚拟磁盘在进行读写操作时需要和后端存储单元建立多个网络连接,往往读取一个区间内容的数据需要从后端多台存储单元服务调取,效率及性能都较低。

本方案利用了本地存储在读写效率及性能方面的优势,在虚拟机所在的宿主机建立一块相同大小的本地磁盘挂载给虚拟机虚拟磁盘使用,虚拟机所有读写操作都在宿主机内完成,效率性能可以得到保障;另外,有专门的定时更新模块负责把数据定时同步到后端的分布式存储以保证数据的一致性。

[1]丁建立,王斌强,张超.异地双活数据中心服务区域划分优化[J].计算机应用与软件,2016(02).

[2]覃志武,方凯彬,刘北卓.存储虚拟化技术研究与比较分析[J].信息与电脑(理论版),2016(08).

猜你喜欢
副本磁盘虚拟化
它的好 它的坏 详解动态磁盘
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
使用卷影副本保护数据
基于OpenStack虚拟化网络管理平台的设计与实现
面向流媒体基于蚁群的副本选择算法①
对基于Docker的虚拟化技术的几点探讨
一种基于可用性的动态云数据副本管理机制
Windows系统下动态磁盘卷的分析与研究
H3C CAS 云计算管理平台上虚拟化安全防护的实现