安全可靠是海量数据的生存基础

IT正在改变我们的生活。近年来,数据呈现爆炸性增长,根据Gartener分析,到2020年数据将增长到惊人的35ZB(1ZB=1,000,000,000 TB),飞速增长的数据同人们的日常生活紧密相联并且逐渐占据更大的比例。FaceBook,Twitter等社交网站日益火爆,电子帐单、Email、等传统业务也将以新型的数据形式存储,每天这些应用都在产生大量的数据。数据正在成为一种重要的资产,人们对它的需求和认知度越来越高,出于人类天然的私有资产保护心理,对数据的安全可靠需求呼之欲出,并且愈发显得重要,数据可靠性也成为业界不断热议并持续加温的一个课题。随着海量数据已经成为了一种必然趋势,在海量数据场景下充分保证个人的资产的安全,成为人们最关心的话题。

影响数据可靠性的“三宗罪”

傲慢,妒忌,暴怒,懒惰,贪婪,暴食以及色欲是圣经中的七宗罪,它总结了人类的7种劣根性,如果不加以控制就会严重影响人类的正常生活,在存储领域也有七宗罪,它们分别是物理故障、人为误操作、软件问题、病毒、木马和黑客攻击,笔记本丢失和被盗、员工恶意破坏、自然灾害,它们严重威胁数据可靠性。 据 Verizon Business公司统计表明, 全球在2004 ~ 2010的七年间发生数据丢失灾难的企业中,有 38% 是物理故障,25% 是人为误操作,16%是软件问题,10%是病毒、木马和黑客攻击,剩余的11%有笔记本丢失和被盗、员工恶意破坏、自然灾害。在这里,我们简单分析一下前三宗罪。

数据丢失的原因

硬件故障引发数据丢失

众所周知,记载人类信息的虚拟数据必须承载在实体设备中,才可以永久保存,从最初的结绳记事,到纸质印刷,再到现在的二进制存储,数据存储的硬件形态不断进化。在当今IT世界的企业级应用中,磁盘成为承载数据的最小实体单元。所有数据存储在磁盘上,一旦磁盘损坏引起数据丢失,对客户造成伤害是无法弥补的,磁盘的可靠性是一切数据保存的基础。前辈精英们通过不断的研究,创造出了无数保存数据可靠性的方法,例如:集群,RAID等,但是这些技术都只是把磁盘当作一个存储的“傻盒子”,让它只知道“吃”(存/取数据),并不知道“思考”(怎么存/取才最好?),没有解决存储可靠性的根本问题。如何让磁盘实现自管理,单盘故障不会影响到其它磁盘是我们迫切需要解决的问题。

人为误操作不可避免

只要有人的地方,就有江湖。在IT江湖中,人的影响是如此之大,以至于数据丢失领域中四分之一的错误都是人为误操作犯下的,从最简单的文件误删除,到高深的数据库记录篡改,再到复杂又常见的设备管理。人们逐渐认识到自身的失误对最终结果的恶劣影响,试图使用机器精密的操作替代人为粗放式的管理,一方面,把人们从复杂繁重的管理工作中解放出来,另一方面,降低人为误操作的可能,避免数据丢失。

成也软件,败也软件

硬件是数据承载的基础,软件则是数据存储的灵魂。从数据存储诞生之日起,各种保障数据存储可靠性的软件就接踵而来,RAID,集群,快照,备份,镜像等等,保障数据可靠性的手段越来越多,数据可用性的规格越来越高,99.9%,99.99%,99.999%……..海量数据时代来临,人们对数据资产保护等级的要求越来越严格,然而传统存储软件的架构在海量数据场景下的能力捉衿见肘,多站点数据的统一调度,海量数据的统一管理,大并发环境下中央处理节点的生存压力,云存储数据的QoS等,这些都是传统存储软件设计上不曾考虑的问题;在新业务环境下编写的软件,在数据分布式处理,多站点数据一致性,纠错恢复等方面的bug也层出不穷,这些问题使存储软件可靠性面临新挑战,稍有不慎就会引起系统故障,保障数据可靠性软件功能失效,最后引发数据丢失,造成严重的后果。

UDS可靠性方案

2012年9月,华为在HCC大会上发布了UDS(Universal Distributed Storage)海量存储系统,采用创新技术架构,以存无止境、安全可信的存储理念,为客户提供高可靠、高扩展、低成本的海量存储解决方案。该方案采用全新的Smartdisk设计理念,在存储业界首次采用去中心化架构,建立多层级的数据保护体系。

全新的硬件设计理念解决物理上的不可靠

华为UDS海量存储系统在磁盘设计上采用独特的Smartdisk架构,给每块磁盘都配上单独的CPU,内存和GE网口,以这样的 Smartdisk为数据管理单位,每块磁盘上的数据互相冗余,任意一个磁盘的故障不会影响到其它磁盘和存储在上面的数据,有效避免单盘失效对整系统的影响。另一方面,由于Smartdisk的独特设计,每块磁盘单独占据计算资源,相对于传统多块磁盘共用一个或者几个CPU的设计,极大的缩短了发生故障后的数据恢复时间,更好的应对海量数据的挑战。在存储节点设计上,独特的无源背板设计使得在背板发生故障时不影响整系统的可靠性,电源,风扇等非核心部件采用冗余配置,有效避免单一部件的损坏影响硬件可靠性;在整体设计上,采用去中心化架构,交换机和物理节点的分布式全交叉互联组网,每个节点之间彼此信任,任意一个单独节点的故障不影响整系统的可靠性。

多重机制降低人为误操作对整系统可靠性的影响

数据中心的设备众多,管理复杂,人为误操作频繁发生,对于一套存储系统来讲,控制设备、存储设备、网络设备等智能统一管理是客户目前最期待的。华为UDS海量存储系统通过完善的图形化管理系统,可以为客户提供拓扑、告警、配置、性能、日志、用户等方面的全面自动化管理,并且提供 “自动部署及升级”、“一键扩容”,整个过程无需人工干预和控制,升级或扩容时不中断业务,实现业务透明化,极大降低了系统部署、升级和扩容的难度。另一方面,整系统P2P的软件架构设计,使得节点之间互相信任,任一节点的人为破坏(例如:硬盘误插拔),整系统数据可用性不会因此降低。同时,P2P架构配合Erasure Code算法,使得单盘失效后,数据可自动恢复到其它节点,在不影响数据可用性的前提下把损坏的硬盘从RAID组中剔除,数据分片不受影响,不会像传统存储出现RAID组降级的现象,更不会出现由于一块盘的故障引发其它盘损坏的连锁反应,对操作人员来说,可以免即时维护,降低了由于人为原因丢失数据的风险.并且当满足以下两个条件之一时,我们对所有坏盘进行批量维护.其一,当坏盘数达到临界值时,UDS的告警信息会达到严重级别,通知客户对硬盘进行批量更换,提高整系统可靠性;其二,通常建议客户建立周期维护时间表,在一定时间周期内,可对所有坏盘进行批量维护,减少整系统发生故障的可能。坏盘批量更换后,数据分片重新分布到所有磁盘上,减轻前期未损坏磁盘的负荷,有效保障磁盘生命周期,减少坏盘率,降低数据丢失的可能,同时在数据恢复期间不影响数据的可用性,多重机制将人为误操作对数据可用性的影响降到最低,提高整系统可靠性。

软件可靠性实现多层级的数据保护

华为UDS海量存储系统以Smartdisk为最小的数据管理单位,支持节点级,机柜级,数据中心级的数据冗余策略,实现全方位、立体式、逐层递进的数据保护。通过多站点、跨地域的数据中心设计,数据可靠性达到业界领先的99.999999999%,满足跨地域的数据备份和容灾,保证数据存储可靠性达到业界的最高级别。在存储系统内采用去中心化设计架构,所有的存储节点组成分布式数据存储环,数据存储时采用DHT算法分布在不同的存储节点上,无须控制服务器参与,数据分片会自动侦测存储节点的状态,根据各个存储节点不同的状态,自适应的分配存储到不同的存储节点上,自动均衡每个存储节点的负载,有效减轻每个数据节点的负荷分担,及时避免了单点故障,应对海量数据存储的挑战,保证数据存储可靠性;在存储策略上,UDS支持多种数据冗余机制,例如:多副本、 Erasure Code,支持不同策略之间的有效组合,用户根据自身特点,设置不同的数据保护等级;在数据恢复方面,UDS自身拥有丰富的数据检测和一致性机制,自动侦测数据存储过程中的不一致(例如:某块磁盘损坏),在不影响数据可用的情况下,启动数据自恢复机制,有效保证数据的可靠性。