12月9日,以“新存储,新常态,新应用”为主题的中国存储峰会于北京悠唐皇冠假日酒店召开。中国存储峰会是每年一度的亚洲最具规模的存储产业年度大会,历时十二载,记录了存储产业的诸多变化,每年的存储峰会都吸引学术界、产业界和最终用户代表的积极参与。
在存储峰会的“软件定义技术”分论坛的主题演讲中,星辰天合(北京)数据科技有限公司产品总监张旭明 发表了题为《XSKY SDS,激发通用平台数据潜能》的主题演讲。张旭明的演讲内容主要结合星辰天合公司(以下简称XSKY)如何激发通用平台的数据潜力。
星辰天合(北京)数据科技有限公司产品总监张旭明
以下为张旭明演讲实录整理:
大家下午好!我是XSKY产品总监张旭明。今天我给大家带来的分享是XSKY SDS激发通用平台的数据潜能。在加入XSKY之前我从事了10年的存储研发,希望可以从技术开发的角度给大家带来一些干货。
首先,我们看一下企业信息化面临的挑战。
我接触过很多的客户,他们面临的最大挑战是存储容量不足,当客户业务发生跃迁式发展的时候,传统IT架构无法应对容量扩容的需求。另外,在传统IT架构下客户碰到成本高、运维复杂性高,以及性能扩展有限等问题,TCO持续上升,部分设备的扩容成本比新购还高。同时,传统的IT架构也难以应对云计算和大数据的发展,包括还有资源孤岛问题。以上几个问题都是客户的关注点,我们的机会在于如何满足客户需要,解决客户痛点。
下面我想先与大家分享信息化存储发展的技术和趋势。前面有很多嘉宾提到过闪存技术,而我有过很长时间的传统存储开发经历,那个时候因为闪存技术发展比较缓慢,因此SDS(软件定义存储)无法通过X86服务器把存储的性能提升上来,而专业存储很容易通过硬件堆叠,内存加速的方式获得性能提升,对于运行在通用硬件的存储软件来说这是很难做到的。现在,闪存技术的发展把这一瓶颈打破了,通过闪存技术,SDS能轻松达到专业存储的性能水平。
XSKY 认为,存储的主要发展趋势包括下面四个方面:水平扩展、硬件通用化、普适多负载、应用感知。我重点分享一下对应用感知的理解,未来存储厂商不应该只聚焦在数据存储这一部分,同时我们也需要更好地帮助用户来规划数据的使用方式,因为客户最终需要存储设备解决应用问题,而不仅仅把数据放在这儿,存储应该更加贴近数据,以便更好的服务数据。
那么,XSKY是如何实现SDS的呢?我们通过将SDS软件部署在通用平台上将它转换成分布存储,提供统一的接口,企业级存储功能,以及高性能、高可用性。具体的部署形式可以看一下我们的总体框架图,我相信大部分的分布式架构可以映射到这个架构图中。
XSKY是企业级存储厂商,我们在性能、可靠性方面做出了非常深度的开发,在数据持久化方面我们提出Block持久化。对于专业存储而言,落盘系统大都是基于Block来组织管理的,一些开源的存储采用文件系统的方式进行数据持久化,由于文件系统本身的一些问题,如使用page cache等,是很难保证性能稳定的。鉴于此XSKY研发了专用的Block持久化层,投入了强大的团队进行开发工作;在存储服务层,我们开发了多级智能cache,通过SSD对系统进行加速;同时开发了很多存储高级功能,满足客户不同级别的需求。为了应对不同的业务访问需求,XSKY开发了包含丰富接口的分布式网关层,提供包括FC、iSCSI、Local以及rbd的块访问服务,同时提供S3以及NFS的非结构化数据访问接口,形成统一存储。在部署方式方面,我们提供了融合存储和计算分离部署两种形式。
实现基本的SDS之后,XSKY是如何激发通用平台数据潜力的呢?我们需要做到高性能,需要做到高可靠性,同时需要适应企业对可用性的需求。关于高性能,首先,我们先要找到系统的性能瓶颈在哪里,XSKY从两个方面进行考量,一个是单节点性能,另外一个横向扩展性能。单节点性能瓶颈在磁盘上,虽说现在有全闪方案,真正实际应用行业中不可能为所有用户提供全闪,所以我们需要把HDD为主存的性能提上去,因此我们提供了智能IO合并算法,提供了热点数据分析技术,智能多路流预测等算法来实现Cache加速。我们的Block持久化层,提供基于块设备的智能磁盘的数据管理系统,大大提升磁盘IO落盘效率,通过这些方式,提升HDD为主存的IO性能。在横向扩展方面,XSKY开发了分布式无状态网关,网关扩展情况下性能基本无损失。通过这两方面优化单点和扩展性能,从而提供集群整体性能呢。高可扩展性方面,通过Pool内横向扩容带来投资可预期;同时,Pool间在线扩容可实现业务无需等待,性能与容量同步线性增长,资源随时按需增减,保护已有投资。
下面讨论一下高可用,任何存储系统首先要解决的高可用问题都包括两方面内容:管理面高可用和IO路径高可用。所谓IO路径高可用,就是你出现单点故障时业务IO是没有影响的,XSKY设计了4路HA,保证在3条路径异常的情况下仍旧可以访问存储。管理面的高可用:同理,出现单点故障时,系统仍旧是可管理、可操作的,XSKY可以自定义备份控制器数量,保证集群管理节点处于冗余状态,避免单点故障。另外,为了保证业务持续高可用,需要重点提及的是企业级Qos功能,企业运行分布式存储系统的时候有很多业务跑在上面,首先你会碰到业务之间相互冲突的问题,可能有些业务IO压力大却不重要,但会把一些重要业务IO资源抢占了,比如数据库有可能因为非关键业务的IO抢占而暂停,很多客户碰到类似的问题,XSKY提供企业级卷Qos功能来解决这个问题,保证客户系统上线之后一两年系统正常运行。与卷Qos同样重要的是Recovery Qos,我们知道磁盘会出现一定概率的异常,或者发生服务器整体异常,导致硬件模块掉线,这个时候集群会进入Recovery 状态,Recovery的IO会冲击业务IO,引起业务不可用,XSKY提供Recovery策略,可以设置业务优先,解决异常单点故障对业务的冲击,提高可用性。
XSKY 设计SDS还有一个理念就是开放性,我们的产品设计与硬件充分解耦,同时支持主流的操作系统以及虚拟化平台:
我们可以支持主流的虚拟化平台Vmware、KVM、HyperV,也支持几乎所有X86服务器。
关于运维,我们思考的是,如何让维护变得简单,高效。XSKY的员工有70%是研发人员,其中相当一部研发人员来自互联网行业,具备非常丰富大规模集群运维经验。我们的简单运维思想也体现在产品中。XSKY 的运维不是监控一个点、一个面,我们监控是一个为期90天的运行过程,通过这个监控数据可以分析、预测存储将会发生什么变化,例如,按照目前使用速度,还有30天存储将用完,提前通知用户扩容;或者说每周五IO压力大的时候,我们会提醒用户调整应用。同时,我们的安装和部署也非常方便。在安装完系统之后大概两、三分钟可以完成一个分布式软件部署。另外,要想把SDS做到良好的运维管理必须把磁盘维护好,磁盘是最容易出现故障的。据业内经验来看,磁盘的年损坏率在3%~6%,当磁盘发生故障时,为了方便磁盘定位,我们做了“硬盘点灯”功能来配合运维。
下面分享一下我们的产品及解决方案。
XSKY有三大产品,X-CBS、X-EBS、X-EOS。首先我介绍一下XSKY对VMware虚拟化场景的支持。我们如何实现系统部署的呢?首先在Hypervisor 里启动一个虚拟机,我们称之为XVM,把XSKY EBS软件装在XVM里面,XVM 将虚拟化后的资源通过iSCSI提供给Hypervisor,Hypervisor 通过VMFS提供给运行在上面的guest VM使用。为了更好的支持Vmware,XSKY开发了VAAI接口,能更有效的对接VMware。再说一下CBS KVM虚拟化,我们知道XSKY是基于Ceph开发的,Ceph本身对KVM的支持非常好,但当你直接使用CEPH的时候资源管理是发散的,每打开一次卷会产生大概20个线程,假设50个虚拟机,每个虚拟机启动2个卷,这种情况下你大概有两千个线程抢占你的资源,当业务的IOPS稍微大一点的时候对系统的影响会非常显著。所以XSKY开发了librbd proxy,对资源的使用进行管理,经过这种优化,系统的性能可以提升20%,IO延迟降低15%,CPU利用率降低40%,内存使用至多减少2/3。
接下来我们再讲一讲备份归档,之前讲的非常快其实想留一点时间跟大家分享一下EOS这个产品。EOS支持EC的数据保护模式,有更多数据利用率,更低的成本,这个对我们EOS的定位是非常重要。我们把它定位在海量文件备份,这里提一下海量,什么叫海量文件,我们认为至少亿级或者十亿级数量才叫海量文件。在这种文件存储过程中会发生什么问题,NFS存储海量文件它存不了,文件系统在管理数十亿甚至百亿文件时非常容易引入问题。XSKY引入了一个小的文件归并方式增强对海量文件的管理能力。另外,XSKY还提供了NFS和S3的互操作性——这是企业由文件向对象过渡的最佳选择,为了解决数据的高效利用和处理的问题,XSKY提出了数据生命周期管理策略,用户可以对设置数据生命周期策略,决定数据是否归档、在高低性能池之前移动,以及何时自动删除。
最后我想分享一下我们典型的配置:两块SAS 300GB做RAID1 用于承载操作系统,CPU 用两颗2630v3,8块以上4TB SATA HDD,内存64GB 或以上,两块400GBSSD盘,如果你拥有三套这样的配置,加上XSKY的分布式存储软件就能获得高性能分布式企业级存储,我的分享就到这里,谢谢大家。