var
来源:网络作者:小李发布时间:2015-06-10点击:3003
随着虚拟环境演变成云环境,数据中心的前景再次发生了转变。云环境欣然接受了虚拟化的始作俑者虚拟磁盘模型,而且他们还提供了额外的一些模型来支持一个完整的虚拟存储栈。云环境尝试虚拟化整个存储栈,这样它们就可以提供自助服务,以及在基础设施和应用之间提供一个完全的隔离。
云环境以多种形式出现,借助OpenStack、CloudStack或是VMwarevRealize套件这样的环境,它们可被企业实现成私有云,它们也可被服务提供商实现成诸如AmazonWebServices、MicrosoftAzure和Rackspace一类的公共云。
有意思的是,被用在云环境中的存储模型正是被用在物理环境中的那些的一个写照,不过,与虚拟磁盘一样,它们是一些从多种可被用来实现它们的存储协议中抽象出来的存储模型。
实例存储:云端的虚拟磁盘
虚拟磁盘存储模型是传统虚拟环境中主要(或唯一)的存储模型,然而,在云环境中,该模型只是三种之一,因此,该模型在云环境中被赋予了一个特定的名称:实例存储(instancestorage),意即存储的使用方式类似传统虚拟磁盘。
需要注意的很重要的一点是,实例存储是一种存储模型,而非一种存储协议,可使用多种方式来实现。例如,有时实例存储会使用计算节点自身的DAS来实现,以这种方式来实现的存储通常被称作临时存储(ephemeralstorage),因为这种存储通常不具有高可靠性。
此外,借助NAS或接下来要介绍的第二种存储模型卷存储,实例存储也可被实现成可靠的存储。例如,OpenStack允许用户把实例存储实现成主机上的临时存储、NFS挂载点上的文件,或是实现成使用了卷启动(boot-from-volume)机制的Cinder卷。
卷存储:不涉及物理层面的SAN
然而,实例存储有它的局限性,开发云端原生应用(cloud-nativeapplication)的开发者通常会显式地把配置数据,例如OS和应用数据,和用户数据,例如数据库表和数据文件,加以区分开来,通过分离这两者,开发人员可以在把配置设成瞬态的和可重构建的同时,仍然保持用户数据的高可靠性。
相应的,这种区分又导致了另一种存储类型:卷存储(volumestorage)的出现,这种存储模型是实例存储和SAN的混体。卷存储的基本单元是卷而非VM,卷可被从某台VM上卸下,然后再被附加到另一台VM上。然而,与虚拟磁盘一样,在规模和抽象方面,卷更酷似文件而非LUN。与实例存储相比,卷存储通常被认定是高可靠的,因此常被用于用户数据存储。
OpenStack的Cinder就是卷存储的一个例子,Docker的独立的卷抽象也是。同样,这里要提醒一下,卷存储是一种存储模型而非存储协议。卷存储可在诸如NFS一类的文件协议或是诸如iSCSI一类的块协议之上实现,这种实现对应用而言是透明的。
对象存储:Web规模的NAS
此外,云端原生应用也需要有一个可用来在VM之间共享数据的空间,不过他们通常需要的是可跨地域扩展至多个数据中心的名称空间,对象存储(objectstorage)所提供的正是这类存储。例如,亚马逊S3提供了跨整个区域,也可以说是跨全球的一个单一的逻辑名称空间。为了达成这一规模,S3需要牺牲掉传统NAS的强一致性和细粒度更新。
对象存储提供了一种被称作对象的类文件抽象,不过它提供了最终一致性。这意味着虽然所有客户端发出的请求最终都能获得相同的答案,但它们也有可能间中会收到不同的回答。这种一致性类似Dropbox在两台计算机之间提供的一致性,客户端可能间中偏离了同步轨道,但最终一切都会被拉回正轨。
此外,传统的对象存储还特地为在高延迟WAN连接上的使用提供了一组简化的数据操作:列出“桶(bucket)”中的对象、读取对象的全部内容,以及使用新数据来全部更换对象中的数据。该模型提供了一组比NAS更为基础的操作,允许应用读写某个文件内部的小块内容、按新的大小截断文件、在目录之间移动文件等等。
这种宽松模型允许对象存储以很低的成本和很好的整体性能来提供跨大区域的极大型名称空间,因为它的这一规模和成本优势,许多旨在运行于云环境中的应用都被实现成使用对象存储而非使用NAS。例如,云端原生应用通常会使用对象存储来存储图片、静态Web内容、备份数据、分析数据集和客户文件等。
此外,还需要注意的很重要的一点是,对于许多用例来说,对象存储的宽松一致性和粗粒度更新也使其成为了一种不合适的选择。例如,它并不适合用作实例存储或卷存储的替代(至少对于它的原始形式来说是如此)。实例存储和卷存储支持强一致性、小块更新,以及重度写(write-heavy)、随机工作负载等,所有这些方面对于对象存储的使用来说都是挑战。
而且,要求强一致性的NAS工作负载也并不适用于对象存储,所以,NAS极有可能会继续与对象一起并存于云环境中。
与NAS一样,对象存储是一种软件构造,而非一种硬件构造,应用自身直接通过RESTAPI访问对象存储。私有云中存在着两种主要的(也是相似的)对象API:Amazon的S3API和OpenStack的SwiftAPI。
许多厂商都提供了对象存储实现,如景安的快云存储、OpenStack的Swift、Amazon的S3、RedHat的Ceph和Cleversafe等,通常,除了其他一些API之外,所有这些产品还都支持S3API或SwiftAPI或两者。一些诸如EMCIsilon一类的现有文件系统厂商也为他们已有的文件接口提供了对象接口。
版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!