云存储的核心技术:虚拟化存储

2018-03-31 09:38佚名
中国信息化周报 2018年9期
关键词:虚拟环境磁盘实例

佚名

虚拟化改变了计算机使用存储的方式。就像物理机器抽象成虚拟机(VM)一样,物理存储设备也被抽象成虚拟磁盘(Virtual Disk)。服务器扩展存储的主要手段有直连存储(DAS)、存储区域网络(SAN)和网络附加存储(NAS)三种类型。那么哪种存储类型可以用来实现虚拟磁盘呢?

在虚拟环境中,类似VMWare这样的虚拟机管理程序hypervisor,要同时给很多VM分配存储空间。首先,需要先把物理存储资源重新划分成虚拟磁盘,然后再分配给VM。由于需要物联磁盘太多,我们不能用DAS方式把物理磁盘直连到VM上。SAN是以逻辑单元(LUN)的形式提供存储资源,但虚拟环境下的VM数量很大,LUN的数量也不足以支撑这么多虚拟磁盘。

更重要的一点,虚拟磁盘对于众多的VM来说是共享的,因为VM需要随时创建、删除或者迁移,在迁移VM的时候就需要共享存储,这样原来的数据才不会丢失。无论DAS还是SAN,都不适合共享存储。基于这些问题,hypervisor采用NAS的方式来实现虚拟磁盘。VMware通常采用VMFS或NFS协议来实现虚拟磁盘,VMFS是专门针对虚拟机环境的文件系统协议。每个虚拟机的数据实际上就是一堆文件,最主要的文件就是虚拟磁盘文件,此外还有交换分区文件、非易失性内存文件等。

实例存储

现在实例存储是主要的虚拟磁盘方式,每一个VM就是一个虚拟机实例,hypervisor在每个实例中提供仿真的硬件环境,包括CPU、内存和磁盘。这种方式,使得虚拟磁盘成为虚拟机实例的一部分,就像物理世界一样。VM删除后,虚拟磁盘也会被删除。在这种实例存储模型中,虚拟磁盘与虚拟机之间的存储关系,实际上是DAS存储。但虚拟磁盘的底层实现,上面我们说了,是用NAS方式实现的。而hypervisor的作用就是把VM层的存储模型,与虚拟机下层的实现协议(VMFS或NFS)分离开。

卷存储

实例存储有它的限制,开发者一般希望把实例数据和用户数据分开,这样重建VM的时候可以保留用户的数据。这个需求衍生出另外一种存储模型:卷存储。卷是存储的主要单位,相当于一个虚拟的磁盘分区。不属于虚拟机实例的一部分,可以认为是虚拟机的外置存储设备。卷可以从一个VM卸下,然后附加给另外一个VM。这样我们就实现了实例数据与用户数据的分离。OpenStack的Cinder就是一个卷存储的实现。

对象存储

很多云应用需要在不同的VM之间共享数据,经常需要跨越多个数据中心,对象存储可以解决这个问题。对象存储模型中,其核心设计思想其实也是虚拟化,具体说来,就是把文件的物理存储位置,比如卷、目录、磁盘等,虚拟化为bucket,把文件虚拟化为对象。对应用层来说,简化了对数据的存取访问,屏蔽了底层存储技术的异构性和复杂性。

对象存储模型

由于对象存储遍布多节点且数据并非总是可用, 所以数据一致性不强。如果对一致性有要求,那么可以使用NAS。目前在云计算环境下,NAS和对象存储是共存的关系。和NAS一样,对象存储也是软件架构,应用直接通过REST API来访问对象存储。常用的对象存储包括:Amazon的S3和OpenStack的Swift。

在实际云平台应用中,要根据自己的情况来综合考虑,对于非结构化的静态数据文件,如音视频、图片等,一般使用对象存储;对于系统镜像以及应用程序,需要使用云主机实例存储或者卷存储;对于应用产生的动态数据,一般还需要利用云數据库来对数据进行管理。

猜你喜欢
虚拟环境磁盘实例
虚拟环境中空间压缩问题的影响与改善
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
如何通过虚拟环境有效管理Python第三方库
解决Windows磁盘签名冲突
修改磁盘属性
虚拟环境下大数据智能并行聚类方法研究
磁盘组群组及iSCSI Target设置
创建VSAN群集
完形填空Ⅱ
完形填空Ⅰ