摘要:虚拟磁盘的方式就是实例存储每一个VM就是一个虚拟机实例hypervisor在每个实例中提供仿真的硬件环境、包括CPU、内存和磁盘。这种方式使得虚拟磁盘成为虚拟机实例的一部分就像物理世界一样。VM删除后虚拟磁盘也会被删除。
虚拟磁盘的方式就是实例存储每一个VM就是一个虚拟机实例hypervisor在每个实例中提供仿真的硬件环境、包括CPU、内存和磁盘。这种方式使得虚拟磁盘成为虚拟机实例的一部分就像物理世界一样。VM删除后虚拟磁盘也会被删除。
这种实例存储模型中虚拟磁盘与虚拟机之间的存储关系实际上是DAS存储。但虚拟磁盘的底层实现而hypervisor的作用就是把VM层的存储模型,与虚拟机下层的实现协议分离开了。
卷存储:实例存储有它的限制开发者一般希望把实例数据和用户数据分开还可以在重建VM的时候可以保留原有的用户的数据。
这个需求衍生出另外一种存储模型:卷存储‘卷是存储的主要单位相当于一个虚拟的磁盘分区不属于虚拟机实例的一部分可以认为是虚拟机的外置存储设备’。
卷可以从一个VM卸下然后附加给另外一个VM。这样我们就实现了实例数据与用户数据的分离OpenStack的Cinder就是一个卷存储的实现。
除了实例存储和卷存储最后我们再说一说另外一种比较特殊的虚拟化存储:对象存储。
对象存储:很多云应用需要在不同的VM之间共享数据,经常需要跨越多个数据中心对象存储可以解决这个问题。
在对象存储模型中数据存储在存储段中也可以被称为“桶“。我们可以用硬盘进行类比、对象就好比文件、存储段就像是文件夹(或目录)。对象和存储段可以通过统一资源标识符查找。
对象存储的核心设计思想其实也是虚拟化就是把文件的物理存储位置比如卷、目录、磁盘等、虚拟化为bucket把文件虚拟化为对象。对应用层来说简化了对数据的存取访问屏蔽了底层存储技术的异构性和复杂性。
NAS与对象存储各有所长:由于对象存储的规模优势和成本优势很多云环境用对象存储来代替NAS。
由于对象存储将遍布于很多节点且最新的数据并非总是可用,所以对象存储的数据一致性不强。如果对强一致性有要求那么可以使用NAS目前在云计算环境下NAS和对象存储是共存的关系。
和NAS一样对象存储也是软件架构不是硬件架构。应用直接通过REST API来访问对象存储。常用的对象存储包括:Amazon的S3和OpenStack的Swift。