shark5100可以轻松支持pb级别的存储数据总量。支持多达512个存储节点,支持的集群总存储容量超过100pb,足以满足大中小各种类型企业的分布式存储业务需求。
市面上主流的操作系统均可以通过多种协议访问shark5100集群,这些系统包括windows、linux、centos、ubuntu、debian、fedora、macosx等。shark5100集群能够连接openstack、cloudstack等云计算环境,为它们提供底层存储支持;能配合hadoop、spark等大数据分析环境使用,为它们提供底层存储支持。
shark5100支持异地容灾技术。存储集群的数据,能够以增量的方式快速地同步到异地集群中,进一步提高数据的可用性。增量同步技术可以在本地集群和异地集群的连接带宽较低的情况下快速同步文件,确保数据在异地有完整的备份。此外,shark5100在插件的支持下,也可把数据同步到aws、阿里云等公有云存储中。
高可用性意味着任意一个或者多个部件损坏,系统仍然完全可用,业务不会中断掉。shark5100使用多重技术,在软件层次来保障系统的高可用性,比基于硬件的高可用性适应性更强,且可靠性更高。
当系统采用多副本或者纠删码的冗余方式时,如果一个或者多个节点完全损坏,系统仍然可以正常运行,数据读写不会中断,所有数据都可访问。具体来说,如果采用n副本,则系统至少可以容忍n-1个节点损坏;如果采用n m的纠删码,可以容忍m个节点损坏;当系统不采用副本或者纠删码的冗余方式时,出现一个或者多个节点损坏,cx-cloud-f仍然可以对写入业务的持续进行提供一定的保障,具体内容详见下一节。
在没有副本(仅采用节点内raid)的分布式环境中,如果出现一个或多个节点完全损坏,不仅相关的数据无法读出,后续数据也无法正常写入,导致业务系统直接停滞。shark5100中创新的业务连续性技术能有效解决该问题。使用该技术,新的业务数据仍可以全盘持续写入,保证业务在无人工干预的情况下不中断。更为重要的是,损坏的节点经过排查修复,还可以重新在线加入集群中。在部分行业的实施方案中(如安防行业),因为成本的因素,需要考虑无副本的存储方案。此类应用一般要求是必须能够忍受硬盘错误。节点出错时,只要能够保证之前的数据在必要时有办法读出即可。但后面的业务数据必须持续写入,否则就可能出现大量的数据丢失。这项技术,可以在最大程度控制成本的前提下,实现最好的数据保障。
shark5100支持各种接口的ssd,包括sata/sas ssd和更高可靠性的pcie ssd。如果直接使用ssd作为数据盘,可以获取很高的iops,但ssd的价格相对较贵,所以适合对容量需求不大但有大量小文件并发读写的应用负载(如动漫渲染)。
shark5100拥有完善的缓存支持策略,ssd可以配置为读缓存、写缓存和读写缓存。对于大规模数据写入,shark5100内置的并发写入算法,可以实现非常高的写入带宽,因此,结合ssd自身读写特性,使用ssd作为读缓存是一种最为典型的应用加速配置。ssd读缓存结合shark5100的预读算法,能极大地提升数据的缓存命中率,对于读负载较多的应用,有着非常显著的性能提升作用。对于应用程序来说,性能提升的过程是全透明的,应用无需做额外的设置,这样也大幅度简化了应用的配置,进一步避免了额外的开发工作,能显著提升业务带来的经济效益。
传统的分布式存储部署涉及到复杂的配置,管理员需要非常专业的操作技能,熟悉linux/unix系统以及复杂的网络配置,相关的配置步骤需利用配置文件和脚本来完成。
shark5100针对以上弊端,推出了非常简单的基于图形化界面的快速部署方案。用户仅需要通过web访问每个节点,进行包括ip设置等的简单网络配置,便可以把分布式存储搭建好。通过内置的图形化向导,也可以快速对整个环境初始化,建立数据卷,对外提供服务。
shark5100采用了基于web的easyui技术,提供操作简单、功能强大的ui界面。用户可以通过任意一个节点对分布式存储进行管理,修改相关配置,查看运行状态,系统告警,以及实时的性能数据(包括cpu、网络带宽、读写带宽等)。此外,告警信息也可以通过电子邮件、snmp和restful api获取。
对于最终用户来说,一般情况下仅需关注系统的告警,便能实时监测整套系统的健康状况。得益于采用了数据自我恢复技术,许多告警能够在一段时间之后自动消除。如果遇到了性能瓶颈,通过对性能数据的简单分析,也能快速定位问题所在。
shark5100基于软件定义存储的架构,可以运行在通用的x86服务器上面,通过复杂的软件机制来保证整套系统的可靠性。相对于专用硬件服务器来说,不仅可以降低用户的整体投资,同时还带来了极大的灵活性。用户可根据预算选择合适档次的硬件,既可以直接利用现有的服务器设备,也可以采用经过大规模测试和认证的专用硬件系统(包括具有更高可用性的双控制器存储设备)组建。迄今为止,shark5100已经在多款商用服务器上面经过了完善的测试和生产环境的考验。
shark5100能对用户提供统一的命名空间,即用户能够访问一个容量接近无限(数pb)的数据卷。对于应用程序来说,只需要挂载(mount)该卷,按照本地文件系统的读写模式读写该卷即可。从逻辑上,用户可以认为自己使用的是一套超大容量和超高性能的专业存储,而无需考虑物理上的部署细节。shark5100的运行机制确保了数据的合理存放以及整套系统的可用性,让用户能够随时随地读写所需的数据。
当系统扩展时,卷的大小也可以同步扩展。新加入节点的存储空间,能够并并入到已有的卷中。整个过程是动态在线完成的,不影响用户业务的正常运行。此外,用户也可根据自身业务的特点,创建多个独立的数据卷,配置不同的访问权限,确保数据按照要求互相隔离。
shark5100提供了丰富的访问接口,完全和传统的nas兼容,用户可以直接拿它替换现有的nas系统,即可在保障现有企业业务的前提下,把基于有限存储容量的传统应用程序迁移到基于近似无限容量的分布式存储上来,获得更大的容量、更好的扩展性、更高的性能、更好的可用性。
shark5100支持通过多种协议访问内部的存储数据,最大程度兼容客户的已有业务环境。shark5100无需安装客户端,使用cifs/samba、nfsv3、ftp、webdav、openstack swift、hdfs等标准协议即可访问数据。虽然使用标准协议访问数据给用户带来了极大的便利性,但shark5100也针对linux和windows等环境提供专有客户端软件,满足用户对于高性能数据传输的需求,用户在客户端挂载数据卷之后,可以用posix兼容的方式操作相关文件。
传统存储如果要扩展容量,一般采用纵向扩展(scale-up)的方式。但纵向扩展性能无法随容量同步扩展,因为所有的io都会经过主柜(连接外部网络的设备),且对外的网络接口不易扩展,所以非常容易导致性能瓶颈。而且可靠性很差,无法承受单点故障,最严重的情况如主柜损坏,则会导致所有的硬盘无法访问。因此,采用纵向扩展方式,不能支持较大的存储总容量。
shark5100采用了横向扩展(scale-out)的方式来支持容量扩展。扩展容量只需要增加存储节点,该节点是一个完整的存储主机,直接接入网络,与其他节点之间有很大的独立性。任何节点损坏,不影响其他节点的访问。而且整个扩容过程在线进行,原有的存储系统可以继续运行,不会中断当前业务。
得益于强大的横向扩展能力,随着节点数的增多,shark5100存储的性能也会近线性上升。基于万兆以太网络和infiniband,shark5100可以轻松处理带宽要求苛刻的应用,比如非线性视频编辑、vod点播、大规模数据备份等。
shark5100内置负载平衡模块。通过合理的预配置,多个客户端访问分布式存储,其读写负载会动态地均匀分布到各个节点,避免单个节点出现性能瓶颈。
shark5100支持完整的无限制的权限控制,全面满足用户的实际业务需求。它支持创建足够多的用户或者组,在不同的目录针对不同的用户赋予不同的权限(可读可写、只读、禁止访问等)。同时还支持复杂的分级目录权限,给每一层目录设置独立的权限,严格控制内部数据的安全性和隐私性。
shark5100支持windows active directory,最大程度地兼容用户已有的windows域控环境,能直接接驳到已有的windows集群中,使用已有的用户账号对它进行管理。
shark5100从读缓存加速和写缓存加速两方面着手,通过领先的优化算法,大幅度提升了系统的读写带宽,尤其是视频等非结构化数据的并发吞吐量。
读优化方面,shark5100不仅支持传统的文件内预读,也支持文件级预读,能显著提升大规模数据(尤其是图片数据)读取的缓存命中率,以得到更好的读取带宽。写优化方面,shark5100能对多路文件数据流进行更为有效的缓存排序,减少机械硬盘磁头转动次数,实现更好的聚合写入性能。
shark5100支持windows和linux环境下的专有客户端软件,实现性能加速。在客户端os中,只需要用挂载所需访问的卷,接下来访问存储的过程就等同于访问本地文件系统,使用posix兼容的方式即可对数据进行对应的操作。
对于windows系统,shark5100的windows客户端技术在业界是首创和领先的。windows客户端的加速代码从协议优化和客户端缓存处理等多方面入手,能够实现文件的快速传输和性能聚合,彻底解决业界的难题——基于linux实现的分布式存储系统无法通过windows高速访问。对于非线性编辑、动漫渲染等普遍采用windows工作站访问存储设备的应用,shark5100的windows客户端加速引擎,能够给用户带来最佳的性能和最好的用户体验,极大地推进业务的发展。
多副本
多副本方式是首推的数据保护方式。shark5100支持副本数的为2-5。用户可根据需要达到的保障级别和预算投入,选择合适的副本数。当副本数设置为n(2<=n<=5)时,分布式存储集群支持至少n个节点故障而不影响系统可用性。
纠删码
shark5100支持节点间的纠删码设置,能把数据拆成n份,保存到n个不同的节点上,同时保存对应的m个校验码片段。n和m可以在规定范围内灵活地设置。这样,n m个节点组成的集群,损坏了任意m个节点,所有数据仍然可读可写,业务也不会中断。其存储利用率为n/(n m),高于副本方式。纠删码的计算较为复杂,对硬件配置的要求,比副本模式的配置要求高。
节点内raid
shark5100支持节点内实现硬盘级别的容错。如果节点内部出现坏盘,可以通过raid5/6等方式来提供数据完整性,在不影响其他存储节点的同时,仍能保障业务的持续进行。节点内raid可以和多副本技术组合使用,提供多层次的数据保护。
数据自动恢复
shark5100支持透明的数据自动恢复机制,当出现坏盘等故障时,更换新盘后能够自动地恢复损坏的数据,使系统迅速恢复到原始的健康状态。且数据恢复的速度可以智能调节,在尽可能加快数据恢复速度的同时,避免对用户的读写业务性能造成影响。