在VMworld 2012上,VMware分享分布式存储的技术预览,分布式存储是VMware整体存储战略的一部分。VMware全球CTO Steve Herrod博士在VMworld 2012第一天的主题演讲中将这一技术描述为“虚拟SAN”。
除此之外,管理员只要专注在虚拟机和虚拟磁盘上,不需要处理难懂的RAID选项、缓存配置、LUN管理、分区、分区掩蔽等。DS和将在vSphere引入的基于策略的存储管理完全兼容。管理员为他们的虚拟机指定需要的策略(包括可用性、可靠性、性能保留值和最大值等),DS在虚拟机生命周期中提供、监控和报告策略的合规性。如果由于某些组件故障 (主机、磁盘、网络)或负载变化导致违反已定义的策略,DS会在后台进行自动修复– 重新配置受影响的虚拟机,优化整个群集中的资源使用,整个过程中都会确保对正常执行的负载造成的影响最小。
动机和技术趋势
过去的几年中,数据都是以指数级速率在成长,这个趋势还会持续一段时间。行业分析师预计2010到2015年间,数据将成长9倍,这个增长是被传统的应用和新一代应用共同驱动,新一代应用包括社交媒体和大数据分析。将数百TB的企业社交门户数据存储在传统的磁盘阵列上,无论成本和管理都是巨大挑战。
同时,即使是小的服务器平台也将消耗大量的电力。到2013年,4路每路CPU 32核(16个核*2线程)总共128个逻辑CPU的服务器将开始普及。硬盘的容量也极具增加,预计到2016年硬盘容量将达到60TB(参考希捷2012年3月份发布的数据),如此大容量的硬盘可以认为容量几乎免费,因为每GB的成本只有几个美分。但他们的吞吐率,特别是IOPS并不能如此快速增加。可喜的是,基于性价比的考量,基于闪存的本地存储(SDD)已经成为CPU/内存和传统硬盘间的重要一层。SDD存储的提供了廉价的吞吐率,大约是每个IOPS只有一美分,至少比传统磁盘的IOPS便宜两个数量级。
因此,为什么我们不混用容量便宜的本地HDD和IPOS很便宜的SDD(或者PCIe设备),从而能减少新一代服务器大量CPU资源的负担,并构建新一代的分布存储平台呢?通过新技术,比如Google的GFS、VMware的VMFS和DRS、Facebook的巨量分析工厂,工程技术人员已经知道如何建立大型、可靠的分布式系统,这里的挑战只是管理如何简化。IT专业人员不应需要掌握复杂理论的博士才能管理存储集群。实际上,我们不仅仅希望存储本身的成本降低,也希望管理成本能大幅度下降。而虚拟化正在这一趋势的催化剂,让存储成本降低的同时,也能通过系列应用简化新旧存储的管理。
分布式存储的差异化
VMware并非是唯一认识到这些技术趋势的公司,并且很多公司也认识到这些技术趋势终将推动数据中心存储供给的新模式。但是仅有几家公司发布了新的、基于软件的存储平台来代替传统的SAN。许多技术只针对虚拟化,并且常常引入了聚合的计算和存储架构。这些技术的主要目标是简化存储管理,这是虚拟环境下最重要的难题之一。
VMware分布式的存储技术有什么独特之处呢?
· 作为ESX hypervisor 的一部分来直接实现,改善了资源效率,降低了延时;
· 可以扩展到vSphere集群的大小(vSphere 5.1支持32个节点) 和管理数千虚拟机的数据和I/O负载;
· 和vSphere的管理概念和界面直观集成,DS只是vSphere群集的一个属性;
· 直接和ESX和集群资源管理(DRS)集成来全面管理CPU、内存、存储和网络控制;
· 第一个支持虚拟机导向存储管理模式的存储平台,使用了VMware新一代的基于策略的存储管理堆栈;
· 构建在VMware企业级、分布式软件的经验基础上,包括我们的旗舰产品VMFS和DRS。
和vSphere方案和管理集成
对管理员来说,一个DS的datastore看上去和VMFS或NFS的datastore完全一样,它以单一的文件系统具名空间和datastore子目录中存储的虚拟机元数据来展示。默认配置下,群集中的任何主机都可以访问DS的datastore,即使没有本地磁盘的主机。同时,虚拟机可以部署到任意主机,他们的数据都可以存储在DS上。不管数据分布在哪些主机和磁盘上,虚拟机可以在任意主机上注册运行。
已有需要共享存储的VMware方案都可以支持DS,包括HA、vMotion、DRS等。比如,如果一台主机过载,DRS可以决定将虚拟机从一台主机迁移到集群中的另外主机上,而虚拟机的迁移会通过VMFS锁机制来确保虚拟机继续安全运行,并可以访问在DS Datastore上的状态。
最后,DS可以和今天已有的、基于VMFS或NFS存储的vSphere数据管理功能集成,包括:差异盘快照、链接克隆、vSphere复制(vR)和vStorage APIs for Data Protection (vADP)。
设计思路
让我们一起看看DS技术后面的主要设计思路:
扩展能力和集群:DS是一个高可扩展的平台,可以扩展到数十台主机。原则上,DS可以成为vSphere一个新的管理抽象层(比如分布式的存储集群),但为了可用性和集成原因,我们将DS做成了vSphere集群的一个属性。启用DS的集群有一个可以被集群中任何主机访问的DS Datastore。当然,这些主机也可以使用其他的VMFS和NFS datastore。当然,集群中的主机不必相同,甚至不需要都有本地磁盘,它们都可以访问这个DS datastore。注意:如果一台主机贡献了本地存储设备,它同时必须贡献至少一个SSD盘,DS会自动进行此检查。
管理员可以选择磁盘“自动认领”模式– DS将认领并使用任何不包含其他分区的本次存储 (SAS或SATA)。相反的,管理员需要自己手工选择哪些主机将贡献它们的本地存储给DS。
基于对象的存储: DS通过对象的灵活数据方式来存储和管理数据。可以将对象想象成一个逻辑卷,上面包含了分布在整个集群中的数据和元数据,并且可以整个集群都可以访问这些数据。在ESX的存储层,这些对象就是设备,DS可以在一个集群中管理成千上万个对象。这些对象是可变的,又保持严格一致性,不像“Blob”存储对象(S3、Azure等)。
对于建立在DS datastore上的一个虚拟机,会为虚拟机的每个虚拟磁盘生成一个对象,外加一个容器对象来存放VMFS卷和存储虚拟机所有元数据文件。DS会显示一个具名空间 (就像VMFS和NFS datastore)。因为HA和vMotion需要,DS会为每个虚拟机的元数据强加VMFS锁。
DS单独管理每个对象。比如,如下图所示,为了一个虚拟磁盘创建对象,DS会考虑两点:1)管理员为特定虚拟磁盘指定的策略;2)创建时集群资源和使用率,基于这些判断,DS觉得在集群中如何分布对象。比如:
· 基于可用性策略决定需要建立多少份副本;
· 基于性能策略决定为每一副本分配多少SSD空间,如果需要还会考虑每份副本条带化数量。
也就是说,DS为每个对象都通过网络创建了一个RAID。
由于DS集群和负载随时间不短变化,DS监控虚拟磁盘策略的合规性,如果需要,DS会替换或重新配置部分或全部,让对象重新回归合规或优化集群资源的使用。DS会主动控制重新配置造成的存储和网络流量,减少重新配置对正常执行负载的影响。
通过复制来提高数据可靠性和可用性:DS通过跨主机的RAID-1 (同步复制)来确保对象策略的可用性和可靠性,副本数量取决于这些策略的值(比如多少个9的可用性)。可能有人会问:问什么不使用更节省空间的RAID-5或RAID-6呢?简单回答就是“因为RAID 1更便宜”。这个问题的细节超出了本文的探讨范围,但要点是因为RAID-5和RAID-6需要读-改-写,而不是全部条带化的写,许多写操作需要额外的磁盘读操作,这实际需要很多小硬盘,这会增加总体系统成本。要点是SSD的成本大约是7美金/GB和1美分/IOPS,而硬盘成本低于0.1美金/GB和2美金/IOPS,因此我们将混合获得最便宜的资源:SSD的IOPS和硬盘的空间容量。
当一个副本需要打碎成多个数据块来放到磁盘上,或满足顺序读写负载的性能需求时,DS可为每个副本创建多个条带(跨硬盘扇区)。
通过SSD来提升性能:很少的负载是顺序读写的,特别是数千虚拟机共享存储的环境中,聚合的负载肯定是随机的,肯定不是发挥磁盘性能的最佳负载。
为了解决随机负载的性能瓶颈,DS在硬盘前面添加SSD来进行读和谐的缓存。分配给每个对象副本的读缓存SSD的数量取决于对象性能策略和缓存配置。DS的复制算法智能地路由读操作到不同的副本来增加每个副本缓存上的读命中率(相当于减少了所需缓存的大小)。写操作先复制,在完成写操作前,先保留每个副本在写缓存中。DS使用电梯算法来将退下的数据从SDD写入硬盘。这考虑了硬盘的最新特性(比如临近I/O)来最大限度发挥硬盘的潜在吞吐速率。
总之,分布式存储是一个聚合ESX主机计算和存储资源的、基于软件的分布式平台,它提供了企业级的特性和性能,同时为用户提供了简化的管理体验。敬请期待VMware关于这一技术的最新进展,我们会第一时间分享给大家。
原文地址:http://cto.vmware.com/a-preview-of-distributed-storage/
本文转自张振伦 51CTO博客,原文链接:http://blog.51cto.com/virtualman/1006685,如需转载请自行联系原作者