Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1273999
  • 博文数量: 389
  • 博客积分: 2874
  • 博客等级: 少校
  • 技术积分: 3577
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-24 10:34
文章分类

全部博文(389)

文章存档

2020年(2)

2018年(39)

2017年(27)

2016年(3)

2015年(55)

2014年(92)

2013年(54)

2012年(53)

2011年(64)

分类: 虚拟化

2017-12-26 10:54:42

该文从性能(Performance)、可扩展性(Scalability)、系统可用性(Availability)和数据安全性(Data Reliability即数据不丢失)4个方面衡量分布式存储的优劣,比较直观,做到了深入浅出。
重点其实是第二篇,第二篇提出了最优策略,比对最优策略就可以知晓某产品的优缺点。
转自:

互联网+战略的实施,让分布式存储受到了前所未有的关注。与传统存储相比,分布式存储横向扩展的能力备受传统企业青睐,它能够让企业更加敏捷、灵活,能够满足了企业业务快速发展的需要,特别是在成本节省上,分布式存储优势明显,加上互联网企业的成功实践,这都为传统企业转型提供了新的思路。

  如今,以超融合为代表的分布式存储发展迅速,国内外提供超融合产品解决方案的厂商众多,如VMware VSAN、EVO:RAIL、EMC ScaleIO、Nutanix、Maxta、SimpliVity、Scale Computing、Pivot3、Stratoscale、Gridstore、Atlantis Computing、华三、达沃时代、华为FusionStorage 、SMARTX、深信服、华云网际、凯翔科技等都提供了各种不同的分布式存储产品和方案。

  在对外宣传上,各家厂商称谓也不相同,从超融合、分布式存储、融合存储、到ServerSAN、云存储、软件定义存储,总之五花八门,让人眼花缭乱,总之一句话:都是将存储管理软件安装在多台x86存储服务器上,管理存储资源,并让服务器协调合作,对外呈现出统一的存储接口。如果根据存储接口不同,又可以细分为对象存储(Key-Value Store)、Server SAN(分布式块设备),NoSQL数据库存储等。

  在我看来,其实不必纠结称谓和定义。从应用的角度出发,它提供了有别于传统存储的新的选择,用户可以根据自己的业务需要进行判断和选择。

  对于新的存储系统而言,由于技术较新,用户了解有限,因此市场产品鱼目混珠、滥竽充数是在所难免的。在这种情况下,用户应该如何选择适合的产品呢?本文中,我将从技术的角度谈谈个人的看法,以飨读者。

  在我看来,评价一个分布式存储系统的优劣可以从性能(Performance)、可扩展性(Scalability)、系统可用性(Availability)和数据安全性(Data Reliability即数据不丢失)4个方面加以看量。

  一个总的结论是完美的产品是不存在的,即没有一个产品能同时确保四个方面都很突出。因为这四个方面在一定程度上是互相矛盾的,例如数据安全性越高,需要的数据备份数量就越多,但与此同时,系统性能就会降低。比如两副本系统的数据安全性,通常会低于3副本系统,但是系统的读写性能,2副本通常高于3副本。因此优秀的分布式存储系统是需要根据产品本身的对外特性,在上述4个方面进行合理的取舍。

  通常说来, ServerSAN产品对系统性能(IOPS)要求比较高,势必会牺牲一定的数据安全性;而对象存储产品不得不牺牲一定的IOPS或读写的延迟,来换取对象存储所需要的数据高可靠性。

  在本文所推荐的几个原则,是透过ServerSAN产品体系架构的分析,来判断和比较产品的优劣。除了技术分析之外,尽可能为大家提供一些简单的判断方法,希望能够有所帮助。

  首先是通过块数据存取方法来判断系统的性能和效率

  众所周知,ServerSAN主要处理块数据,以计算虚拟化、数据库等应用为主,更多涉及企业的OLTP业务应用,大多属于关键业务应用。对于这类业务应用而言,系统的可靠性、安全性至关重要。在满足了这些条件的前提下,性能将是最终决定因素,这也是产品之间来开差距的指标。

  如果仅仅从现有应用着眼,会有用户对于性能的效率和能力不以为意,但从长远的发展眼光,块数据存取方法的不同,技术设计架构的差异,所表现出的能力会有较大的区分。

  目前ServerSAN系统存取块数据,对于存储介质的访问存在直接和间接的访问方式的区分。所谓间接的访问方式,就是借助ext2、ext3、ext4或者ZFS等Linux的文件系统,来存储和管理块数据,或者利用对象存储系统将块数据以对象的方式存取。

  这种数据访问方式实现起来相对简单,但它们无法针对块数据的特点,以及设备的特性进行性能优化,访问过程中需要对用户的块数据进行多次转换,比如将块数据传递给文件系统,由文件系统再将数据写入存储介质。这种多层次的传递会造成系统性能损耗

  用对象存储来实现块设备存储存在更多问题,因为对象存储中的对象通常是Immutable(不可改变的),而且对象存储系统更加强调吞吐率,而块设备中的数据是在不停的被修改的,并且块设备更强调IOPS。因此,间接的访问存储介质的方式其性能很难达到最优。(这一段不是很明白

  与之相比,直接存储方式会自己实现一个适合块设备特性的精简文件系统,直接对磁盘裸设备(Raw Device)直接操作和控制,可以在最大程度上充分利用磁盘设备的IOPS,从而达到系统硬件的极限。

  既然存在这样的区分,因此对于用户来说,很重要的一个任务就是能够识别出哪些才是专业的九段产品,避免业余九段浑水摸鱼。但在工作实践的过程中,有什么样的方法能够帮助我们进行鉴别呢?

  在此,个人给大家推荐的办法是:就看ServerSAN系统管理的存储介质上,是否安装了文件系统。如果存储介质上有文件系统,那么便是间接访问方式。这种鉴别方法未必100%准确,但绝大多数情况下是有效的。

  总之,用户对于系统存储介质的访问方式需要保持高度的重视。(未完待续)

作者简介:
陈靓,
1999年北京航空航天大学硕士毕业,2002年考入美国俄亥俄州立大学学习计算机科学,2006年获得该校博士学位。此后入职美国Amazon,于AWS Storage Team(云计算核心存储团队)工作,长达7年之久,曾经担任系统架构师和研发团队带头人,负责设计和实现了着名的AWS Glacier系统结构;2011年加入AWS S3团队,负责对AWS S3 的Volume子系统新版本的研发。2013年,接受南京市政府321计划的感召,选择归国创业,创办了南京鹏云网络科技有限公司,致力于私有云存储产品的研发。2015年入选中组部“国家千人计划”专家人才。
阅读(1369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~