ChinaByte比特网

http://storage.chinabyte.com/291/12477791_2.shtml

11月29日(文/黄亮)- SDN(软件定义的网络,Software Defined Network)一词可以说是最近的新热点,而上周在北京举办的vForum 2012大会分会场一的主题则是“软件定义数据中心”。Data Center中涉及到各种领域的技术我并不都熟悉,因此还是主要关注存储方面。

何谓软件定义的存储?vSphere哪些方面仍待提高?

  几个月前,笔者曾在《Fusion-io软件定义存储:全闪存阵列DIY时代?》一文中介绍了ION(离子)软件方案,之后的《Mellanox VSA:集闪存和网络虚拟化之大成?》也属于类似的产品,由于软件定义的存储(Software Defined Storage)如今还没有严格的概念,这些在一个或者几个x86服务器硬件上聚焦于闪存加速的产品可以从狭义的角度来对号入座?

  上个月我们还对杭州的华数云平台进行了采访,里面有谈到开源OpenStack存储管理——“存储架构优先基于OpenStack Swift模块进行设计;可以使用各种存储介质作为虚拟机的可分配存储资源,包括本地存储、NAS、FCSANIP SAN分布式存储。”这个可以理解为跨不同虚拟化Hypervisor平台广义的软件定义存储(数据中心),而华数“下一步还要做对VMware新出来的云管理平台等一些第三方支持”。

  看完本文,您会发现VMware这方面的实现与OpenStack在架构上比较相似,当然也有自己的特点。

  下面笔者将把“VMware主题演讲: 软件定义的存储-VMware存储策略展望”中一些我们认为值得关注的要点分享给大家,并简单谈谈自己的感受。这一节的主题演讲可以大致分为2个部分:软件定义的存储,以及Virtual Volume/Virtual Flash。本文先讨论第一部分。

现有的vSphere解决了一部分问题,但是还有很多方面可以提高...

  如上图,在当前vSphere 5.1中的存储特性包含三个部分:

  1. 数据服务和策略——配置文件驱动的存储、Storage I/O Control、vSphere数据服务(包括快照、克隆、复制、数据保护、精简配置)

  2. 完整性——Storage API(包括用于阵列集成的VAAI、存储感知管理的VASAVADP则是在提供对备份软件API接口的同时,还增加了结合VMware母公司EMC Avamar技术的vSphere Data Protection解决方案)

  3. 数据移动性——Storage DRS(分布式资源调度)、Storage vMotion虚拟机迁移。

如果能够... 根据一定策略把异构的存储设备抽象成虚拟资源池?

  根据这张演讲PPT,底层为不同的异构存储硬件,可以有SAN、NAS,也可以是服务器本地DAS直连的SSD(固态盘)或者传统HDD硬盘。向上聚合到A和B两个虚拟存储池中,这就是VMware所谓的“软件定义的存储(Software Defined Storage)”?

虚拟存储池已经为你的虚拟机实现了不同的policy(策略),你在创建一个虚拟机的时候只需要制定这个虚拟机的具体策略。

  在基于虚拟机的软件定义存储策略向导下,我们可能只需设定一个VM的大小(比如初始预留10GB,上限100GB)、RTO(恢复时间点为3小时)和IOPS性能(预留不低于200,上限为1000)。

  在理想的情况下,任何存储上运行的应用都能够在用户定义的策略驱动下自动工作。通过让存储了解虚拟机的信息(而不是像VASA那样感知阵列设备),以及Virtual Flash来增强SAN/NAS。

  注:关于Virtual Flash,笔者将在“VMware的存储野心(下篇)”中为大家介绍,请继续关注。

  vSphere横向扩展直连存储(DAS)——我们曾经在VSA(vSphere Storage Appliance)软件产品以及之后来自国外的一些消息中注意到,VMware逐渐强调对DAS的利用,因为这样相对于集中式共享存储系统具备成本优势,并且上层的软件功能完全由VMware提供,把握住了“软件定义存储”的主导权...(接下页)

VMware分布式存储:应用场景、VSA对比

VMware分布式存储技术——存储和计算的整合

  这里的分布式存储,以及存储与计算整合的概念,与当下流行的Hadoop架构有相似之处。

  VMware提出将存储和计算在vSphere的环境下整合起来,用vCenter进行统一管理。效果是使存储能够容易扩展,并且可以利用SSD进行缓存(应该指上面提到的Virtual Flash),内置冗余功能(多副本?);减少在存储上的资金投入。

  未来的VMware分布式存储,与vSphere现在提供的数据服务功能紧密结合。

  高效方面,基于SSD的Cache——为吞吐率和延迟做了优化,类似于EMC VFCache、Fusion-io ioTurbine、LSI Nytro那样的服务器闪存缓存产品,但使用的闪存介质应该更灵活。

  扩展性方面,可以动态地扩展到vSphere集群中的每一台服务器

  高可用性方面,分布式冗余机制保证无单点失效,同时吞吐率达到高带宽环境要求。

VMware分布式存储的主要应用场景

  上面的应用场景包括虚拟桌面(VDI)、测试和开发、大数据和灾难恢复的目标端,好处我就不再重复了。一方面我们没有看到像OLTP这类关键应用;另外在大规模的VDI部署中,是否使用高速的共享闪存阵列来存放对性能要求最为苛刻的用于链接克隆的OS Golden Image(黄金镜像),或者像Greenbytes那样带有重复数据删除的胖克隆VDI存储更为合适呢?

VMware VSA(vSphere Storage Appliance)与分布式存储的对比

首先,VSA针对小规模部署提供简单的共享存储,后者则是可扩展的分布式存储;VSA是个虚拟设备,而Distributed Storage集成在vSphere里;目标市场一个是中小型企业和分支机构,另一个是企业级;VSA只支持2-3台物理服务器,而Distributed Storage可以达到整个集群系统。

  此外,VSA没有SSD缓存且最多支持16TB的容量;Distributed Storage支持SSD缓存,管理上与vCenter整合。

放眼未来的架构、部署VM更加迅速

  让我们从下往上看:左边是对现有传统存储SAN/NAS的提升——提交为虚拟卷,可以继续保留合作伙伴的数据服务(即传统存储阵列厂商的精简配置、快照、闪存优化等软件功能);右边为使用服务器内置硬盘实现水平扩展(Scale-out)——分布式存储。

  接下来是VMware的数据服务,分布式存储主要依赖这些了;再往上是基于策略的存储管理,构成了整个“软件定义存储”架构。

  VMware号称“对所有类型的应用在各种存储设备上实现自动化管理”,笔者认为在当前基础上最大的改进是“深蓝色”部分,也就是对DAS的支持,实现目前磁盘阵列普遍具备的主要软件功能

  在vSphere 4时代,部署一台虚拟机需要经过:确定需求——找到最优化的datastore——创建VM,后面还有定期检查的步骤。到了vSphere 5之后,由于加入了Storage DRS配置文件驱动的存储(我理解是Storage I/O Control和VASA的进一步发展),可以在初始创建时发现存储特性并将datastore分组,然后选择虚拟机的Storage profile

  未来,整个步骤将简化为指定VM SLA(服务等级协议)——创建VM,因为一切都是以虚拟机为核心设计的——这就是VMware软件定义存储的野心吧?届时的这个版本,可能会是vSphere 6...

  关于Virtual Volume(虚拟卷)和Virtual Flash(虚拟闪存),我们将在下一篇中继续讨论。

VMware的存储野心(上):软件定义、分布式DAS支持的更多相关文章

  1. VMware的存储野心(下):虚拟卷和闪存缓存

    http://storage.chinabyte.com/187/12494187_2.shtml 在上一篇<VMware的存储野心(上):软件定义.分布式DAS支持>中,我们分别讨论了& ...

  2. 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)

    (接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...

  3. JuiceFS 在数据湖存储架构上的探索

    大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是<JuiceFS 在数据湖存储架构上的探索>,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变迁以及它 ...

  4. 让 FreeBSD 和 Gentoo Linux 在 ZFS 存储卷上共存

    自我回归到 Librem 15 已经有段时间了.我一般会选择 FreeBSD 来处理所有的事情,但有时会要访问一个运行在 Librem 平台上的 Linux OS,以便用它来帮助我对一些遗留的设备驱动 ...

  5. Hadoop 在windows 上伪分布式的安装过程

    第一部分:Hadoop 在windows 上伪分布式的安装过程 安装JDK 1.下载JDK        http://www.oracle.com/technetwork/java/javaee/d ...

  6. 在VMware的Linux系统上安装Redis

    在VMware的Linux系统上安装Redis 具体过程如下: 下载,解压和编译: 在执行make的时候报错,具体报错信息如下: zmalloc.o: In function `zmalloc_use ...

  7. Ubuntu16.04.1上搭建分布式的Redis集群

    为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...

  8. 开放系统的直连式存储(Direct-Attached Storage,简称DAS)

    开放系统的直连式存储(Direct-Attached Storage,简称DAS)已经有近四十年的使用历史,随着用户数据的不断增长,尤其是数百GB以上时,其在备份.恢复.扩展.灾备等方面的问题变得日益 ...

  9. 【Android开发日记】之入门篇(七)——Android数据存储(上)

    在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...

随机推荐

  1. CAD扩展属性的提取--FME方式

    一.CAD的扩展属性 了解一下CAD的扩展属性方式,CAD的扩展属性包括二类: 基于CAD二次开发的软件产品(例如南方cass),其扩展属性是附属在图形(点.多段线.注记.面)上面的,它是以XReco ...

  2. CAD二次开发起步

    1 环境搭建(VS 2017 + CAD 2019) CAD版本一般要比VS版本晚两年以上,比如我现在使用VS2017,则CAD要用2019版,至于CAD2018能不能用没试验过,有兴趣的小伙伴可以试 ...

  3. Spring boot配置多个Redis数据源操作实例

    原文:https://www.jianshu.com/p/c79b65b253fa Spring boot配置多个Redis数据源操作实例 在SpringBoot是项目中整合了两个Redis的操作实例 ...

  4. Spring Boot新模块devtools

    Spring Boot 1.3中引入了一个新的模块,devtools. 顾名思义,这个模块是为开发者构建的,目的在于加快开发速度. 这个模块包含在最新释出的1.3.M1中. 自动禁用模板缓存 一般情况 ...

  5. 【转】Itunes Connect新版本如何提交应用

    本文系转载,版权归原作者所有(原文链接>>). How do I submit my app to iTunes connect? To submit your app to iTunes ...

  6. 用开源项目RoundedImageView来实现 圆形 / 圆角 / 椭圆的图片

    该开源项目的地址:https://github.com/vinc3m1/RoundedImageView 我自己分流下载文件的:http://download.csdn.net/detail/shar ...

  7. Could not install packages due to an Environment Error: [Errno 13] Permission denied 解决方案

    执行pip install 报错如下: Could not install packages due to an Environment Error: [Errno 13] Permission de ...

  8. 连接sqlServer数据库&jpa调用存储过程Java获取存储过程返回的多个结果集JAVA调用sqlserver存储过程的实现(返回多个结果集的实现)jdbc多结果集(getMoreResults)

    存储过程: BEGIN select * from teacher; SELECT * FROM student; END public Object GetMyBOProjectProductLis ...

  9. http协议报头详解HTTP协议结构

    http协议 请求报文和响应报文都是由以下4部分组成 1.请求行 2.请求头 3.空行 4.消息主体 下图为http请求的报文结构 下图为http响应报文结构 请求行 格式为: Method Requ ...

  10. win32多线程-新版本MtVerify.h

    api调用错误诊断宏,对GetLastError()函数的封装,并解析错误 从网上找的版本并进行了部分修改 /* * MtVerify.h * * The function PrintError() ...