数据存储产业服务平台

大道云行刘爱贵:软件定义存储应用之道

4月23日,以“软件定义存储未来”为题的首届软件定义存储峰会在深圳正式召开,会上,TaoCloud大道云行首席科学家刘爱贵作为大会演讲嘉宾发表了《软件定义存储应用之道》的主题演讲,分享其在软件定义存储实际应用过程中的心得体会。

以下为速记整理,未经演讲人审核:

存储技术的发展演变

简单回顾存储发展的历程。我做存储大概从2003年开始到现在2019年, 16年时间。从80年代开始的DAS、NAS到SAN,2000年以后开始做Scale,2010年多了云存储以后,最近的全闪存、软件定义存储还有云存储虽然发展速度不是特别快,但是一个新的技术,创新相对较多。最近这两年我们觉得热门的是全闪存或者说分布式全闪存。

我关注的是AI技术和存储相结合,AI管理存储相对较多一点。

存储人关于软件定义存储、分布式存储、超融合存储、智能存储定义可能会混淆,这里我们不讲定义,只澄清以下几点。

软件定义存储,我们现在默认是分布式存储,但并非如此。首先第一点软件定义存储不一定是分布式的。以前我们认为存储是大的硬件盒子,大家交付的就是这个。但现在不是,我们有标准服务器架构,不管X86还是国产化平台,它的核心从硬件转变到软件定义存储,第一点我们要明确,软件定义存储并不一定是分布式存储。

第二点什么是分布式存储?我从2000年开始接触分布式存储,以前很多年没有热起来,在2010年之后赶上云计算火起来了。分布式存储现在可以是对象存储、块存储,以前狭义的存储概念。

第三点是超融合,我们称2010年是超融合元年,现在SDS和全闪存势头略盖过它,国内有做超融合的厂商,也有做SDS的,界定清晰。但我要说的一点是,超融合里核心东西是软件定义存储。它与软件定义存储密不可分。

因此,大家都在讨论什么叫超融合,我说了三个完全——完全软件定义、完全虚拟化、完全分布式。其实现在很多架构我们都叫超融合,但按这个概念不是,它要求你启一个虚拟机都可以,但是我们的存储软件和虚拟化软件是并行存在的,按照目前的架构首先必须有虚拟化,然后才是超融合。

第四点智能存储,最近我们跟学术界、工业界结合比较紧密,我在读书的时候叫数据挖掘,现在大家更多提AI,所以我们最近考虑一个事情把人工智能技术,深度学习、机器学习,包括统计和数据挖掘,智能化运维,包括怎么构建安全的存储体系,以及智能化调度,目前我们关注点在这个角度多一点。

SDS软件存储已经成为市场主流

SDS软件存储已经成为主流,大家说SDS超融合要“革”传统存储的命,通过IDC的报告说明几个问题,软件定义存储包括超融合,这两个占比接近35%,已经占到1/3。一个状态是软件定义存储已经成为市场主流,从前我们没有明确,但现在浪潮也在明确说软件定义存储成为市场主流。

如图客观来看,文件存储已经很多年,过去、现在、未来,仍在市场中占大头,大家的预测也是如此,未来占一半以上。未来文件+对象是存储的主力军。

块存储,以前我们讲的是SAN数据库要有,应用系统要有。未来虚拟化、虚拟机、数据库要快,其他更多是非研发数据。我们看这张图,红色部分永远也不消失,在一些非常核心的系统里,金融、电信核心系统里,这个系统仍然保留,关注核心是稳定性,包括性能平稳性。

这张图是中国软件市场预测,每年大概有十几个亿,但增长速度很快,就像一个小孩一样,不怕它现在很小,长的速度很快,这几个代表为什么SSD成为市场主流。

我们做SDS,不能天天只认识自己,要对外边世界有了解。这张图我比较喜欢用,2017年的图,有点老但基本状态还是挺对的。刚才和大家讲的厂商基本都在里边。不管传统厂商、软件定义、新型厂商也好,在开源系统里大家都在讲SDS,目前在开源里占了比较重的比例。

我们感兴趣的几个公司在文件(FILE)这个象限里,像WEKA  IO是代表下一代SDS的公司,它们可能有的关注高性能计算,有的关注混合云,有的关注全闪存。国内这样的企业反正我没看见,我们的创新能力还远远不够,而且我们国内有一个特点,开源基础上做的比较多,美国公司开源部分占了很小的部分,大部分都是自己做。因此必须要认清美国领先我们的形势,如果没有开源大家可以想象,我们今天有没有这个会还不确定。

关于开源SDS系统

开源存储有哪些系统?现在比较热门是标红的四个,Minio非常有特点,它们觉得以前的架构有很多问题,做了很多深刻变革,大家可以关注一下。Lustre在高性能运算上,目前谁都替代不了。BeeGFS有段时间特别想替换Lustre,但不行。我是2008年博士毕业,当时天天看Swift,那时候还不成熟,最开始是想做软件系统。

GlusterFS比较早一点,后来什么都有,软件优势可能好一点,它想替换Lustre和TFS,但发现性能跟Lustre和TFS还是有一点区别。Lustre我之前也一直在研究,但觉得太复杂了。我比较喜欢简单的东西,当然复杂的东西也有人喜欢。

除了这四个,Alluxio和OpenSDS大家也可以关注一下,Alluxio,全类型的分布式系统,之前中兴把Alluxio加在前端。OpenSDS用于数据治理,后端可以对接很多存储系统,传统的、非传统的、非主流的都可以,主要进行数据处理,包括调度、分析等。

标蓝部分是大家还在用,但热度已经不如以前了。像HDFS还是不错的,几个灰色部分像FastDFS、TFS是以前淘宝的, Swift现在用户越来越少了,这个是开源架构的情况。包括MongoDB是文档型数据库,MongoDB前段时间爆发了很多安全问题,被黑客攻击了,这是整个开源SDS系统状态,大家可以了解一下。

分布式存储的优势

为什么我们要选择分布式存储,传统存储不好吗?的确传统存储有传统的好处,分布式有分布式的好处,在我看来有几点。

第一点传统存储容量,性能有上限。一个柜子空间有限,但分布式有一千个、一万个节点,虽然没有这么多,但整体扩展性远远高于传统存储,从这一点来讲容量性能比传统存储有更高的表现。

第二点高可靠性。不存在任何单点故障,尤其在冷存储里,可以做12+4,甚至更多,他的可靠性比较高,尤其在对象存储里,包括视频间里。

第三点弹性扩展。最小部署,按需扩容,但是扩展也是比较痛苦的,不是一下就可以完成的,好在弹性扩展是OK的。

第四定降低成本。你跟领导说的很好,都很好就是很贵,肯定不干,秒秒钟把你的方案否了,因此成本是决定你方案能不能采纳的关键因素。

为什么SDS大行其道?

第一,硬件成熟了,放在十年以前,放在2011年以前,那时候大家觉得X86不是很靠谱,那时候跟他说软硬件存储,还无法实现,但现在不一样了。

第二点高速网络发展,最开始中国第一条互联网带宽是64KB/s,对比现在,10兆、百兆、千兆、万兆,10万兆都有了,网络是一个很重要的支撑。带宽也很重要,带宽不行一切免谈,网络瓶颈消除之后分布式也没问题了。

第三点闪存的革新性。以前硬盘是瓶颈,网络也快了,硬盘也快了,那就剩下存储了。我记得96年的时候是80兆的硬盘,现在随便弄个U盘都比它大很多。硬盘的发展速度是非常非常慢的,也就是这些年SSD出来了以后有了突破,但是那么多年都没有太大的变化。因此闪存是一个革新的进展,前面这三个跟硬件都有关,主机、网络、SSD。

第四点云化数据中心,你需要弹性、性能、融合、管理,这是一个比较软的东西,没有这些东西行不行?也行。但人总有更高的需求,希望这个东西越来越灵活、越来越简单、成本越来越低。其实如果没有这些我们的运维复杂一点也是OK的,但我们还是希望有,包括从裸机到虚拟机到现在的容器,使整个运维、业务系统越来越轻,越来越简单,这也是为什么大家愿意用SDS。

SDS的应用场景

SDS应用场景有哪些?哪些场景比较适合?大家关注的什么场景都可以,那总是有些场景比较适合,有些场景不大适合。我觉得我们跟IDC报告比较统一,目前从三块来看,第一块是文件存储,典型的VSS视频监控、Media  Streaming、HPC,主要是这三个场景,圈比较大,说明它的市场占有率比较高。

然后增长率比较快,广电以前一直很多图片、音频、视频,但是它的增长速度慢下来。最近AI、大数据、科学计算都在不断增长,所以HPC又热起来了。我以前在中科院的时候我们做高等物理的高清计算,现在是做实时运算,所以对存储要求越来越快。

还有视频监控,室内路外各种监控且保存时间越来越长,清晰度要求越来越高,因此要求你的容量、性能会越来越高,这个是需求比较大的问题。目前主要以软件为主,有些已经支持定向存储了,比如电信的全球眼、移动的千里眼,广电里有些系统也开始对接定向存储,所以目前仍然以软件为主,以及有些局部应用在跟对象存储对接。

前面也有同事讲到,你切到什么对象业务是要变化的,因为以前接口是这样的,传到对象存储很多业务要改,尤其传统业务好几十年,谁都不愿意动,我以前一个代码写了好几十年了,没有人敢动,业务也是一样的。

第三点是块存储,目前我们觉得主要在DB和VDI领域应用较多,从中可以看到占比,这个是SDS目前主要应用场景。

关于SDS新的市场,未来有没有新的应用场景?包括最近讲的比较多的容器,以及混合云和多云环境,全栈云、行业云、边缘计算。行业对存储要求越来越高,传统存储行不行?估计可以,但可能没有SDS做的更好,尤其存储还提出了更多要求。

比如说全栈云,基础设施要解决好,有了全栈云,你不仅要管存储基础架构,还要将底层硬件、生态做好,上面的应用也要管,因此小型企业可能做不了,大型企业会从上到下垂直全做,有时候你的计算要找厂商做,存储找另外的厂商做,业务再找个厂商做,而全栈云全包。最典型的应用是行业云,针对某一个行业。

其实解决基础设施相对容易,那搞一个行业应用,我们对存储很懂,但对应用不懂,因此全栈云经常也会有很多生态合作,一家很难做到很好,但未来这是一个比较新的产品形态,之前我们说自己是SDS、全闪存、超融合。这种一般小型厂商玩不起,怎么跟阿里、华为、浪潮PK?因此这种全栈云不适合我们,我们小型企业还是把自己的部分做好。但是对于存储来说是机会。

因为产品形态发生变化,所以整个场景也有变化,比如说边缘计算,尤其是5G,带宽突破后,各种移动设备全都活了,现在都讲5G,实际的场景就是边缘计算。比如说带宽大了以后,边缘计算可以直接反馈到数据中心。比如说电信有些监控,直接回到数据中心。

SDS应用典型误区:别自己挖坑把自己坑了

下面讲一些SDS应用典型误区,我们实践中经常遇到这种情况,我们老说别自己挖的坑把自己埋了,因此给大家一些建议,也是我们实践中遇到的问题。

第一个需求过剩,本来需要一个钉子,结果非要搞一个非常全面的东西,本来只需要定向存储,结果看到文件也要,看到块也要,一定要抓住关键需求,但是大家总是想有总比没有好,但是有的时候有也是负担。

第二个选型错误,我刚才列了120家企业,实际上更多,你是选开源还是商业,因此选型要选对,选不对是因为你需求定义错误。常有客户说要存储,要1T,其它什么都不跟你讲。跟他慢慢聊,然后他说不知道。所以不管是客户还是厂商,可能都犯过这样的错误,我们也犯过。

第三个配置不对。各种东西一堆,软件有软件的操作,硬件有硬件的操作,你不是专家很难搞定,有些操作我也搞不清楚。碰到很多客户,开始跑的时候没问题,结果跑了一段时间反映跟预测的不一样,跟预测一样就怪了,因为本身就不对。

大家经常喜欢改一些东西,可能针对某个东西有帮助,但可能会给其它部分带来变化,所以你不懂不要动,尤其对存储,改了之后可能会有大事发生,因此对存储一定要有敬畏之心,不要没事瞎调。

第四点是运维,大家用传统存储都习惯了说不行重启一下,人生病了多喝开水,大家都喜欢重启,完了发现后面就出问题了。而且有的运维对产品根本不了解,他很随意的关机、重启,我也遇到过很多出问题的,好多都是人为的。所以现在为什么用AI,因为要辅助你做一些事情。

机器相对稳定,人是根据自身的经验和情绪判断,差别很大。

SDS需求分析

接下来说从需求分析开始,日常提问用户的是应用场景是什么?应用负载有什么特点?容量是多少?文件大小是多少?是小块的东西还是大块的东西,是虚拟化应用还是传统应用?

因此经常用户上来就说我要个存储,然后你的合作伙伴告诉你他要个存储,然后添油加醋的跟你说。因此想要了解用户最初要什么?场景要搞清楚。有时候他直接说性能是几千万还是一个亿,你想前面客户端来1亿,来10万个,你肯定达不到,保证你崩溃掉,因此性能是有条件的,在某些条件下是完全达不到的。

存储的特点是什么?你需要什么特性,你需要做软件复制吗?你需要做快照、克隆、重删、压缩、加密、归档吗?是不是都需要?用户总会需要新的需要,尤其是开放的合作,要了这个又要那个,有时候是你没有的,所以你一定要搞清楚。

配置包括软件配置和方案配置,一定要根据需求提供你的方案。

然后是部署,你是裸金属、超融合还是分离部署,资源怎么分配?超融合的时候资源是什么样的?一定要在前期想清楚。

再是选型,现在很多人问选择,第一点是你主要需求是什么?你需要单一的还是统一的,如果都需要就分清楚类型。我发现80-90%用户需要单一存储,要不然需要一个对象、需要块儿,同时需要的有没有?有,但比例很小,其实有些用户可以分开,从最佳实践来看还是建议分开。

然后架构,现在好多架构有中心的和无中心的,有分布式中心的,不同特点要搞清楚。所以我们经常说局部有中心,比方说块有中心、无中心差别不是特别大,但是如果是文件有中心和无中心差别很大,尤其对源数据的保护。

关于协议,大家争论比较多的标准协议,经常国内我们见到更多的是私有协议,私有协议在安全和性能方面要好一点,但有兼容性问题。所以大厂经常用标准接口多一点,国内企业用私有协议比较多一点。我的建议是能用标准协议就用标准协议,别给自己找麻烦,有特定条件下用私有协议。

然后存储特性,你的存储特点是什么?I/O特性以及数据服务,这些是存储选型关注的,有些是不同产品的特性。可能每个产品无法百分之百达到这个要求,要抓住主要矛盾和主要需求。

另外是开源存储or商业存储,国内觉得开源获取比较容易,不需要什么成本。其实搞错了,开源需要你对用人的要求,定制开发需要专业技术人员来做,我们发现成本不低,你做开源要能折腾,要有专业的技术人员来做。

因此选择开源存储需谨慎,必须要有自己专业的团队,或者有厂商支持。比如说我提供开源软件提供服务支持,如果你自己的团队你没有支撑你要谨慎,商业产品给你提供的就是这些东西,保证你的质量,保证你的服务。

SDS集群配置,有节点配置、系统配置、存储集群。节点有CPU、Core、Mem,网络资源有三网、高速、绑定,存储网络建议分开,因为前端后端会形成干扰,所以要三网分离。你需不需要更高速的网络,需要多网络绑定。以及硬盘资源,你是全硬盘HDD、SSD还是RAID。

集群也是,在能控制情况下尽量多个集群,压力是不一样的。刚才也说了上一定数量级是不一样的,一般我们需要最佳实践,我觉得一个集群控制在128个左右是比较舒服的,多了是给自己找事。

命名空间也是,有的是大空间池化,进来一个节点全部池化,开始做均衡,有些是分多组的,有些是联合的,比方说你用亚马逊是分中国区还是美国、欧洲的,是分区的。策略也是冗余或者高可用,尤其是标准协议。

系统配置分硬件配置、软件配置和存储最佳实践,这个完全是要靠你实践。

几个SDS应用实践建议:

关于SDS新发展方向探索,这张图是2018年的,大家一般喜欢看上升,大家最不喜欢是下降的,一般创业公司都在上升的坡上,下面这个是成熟的生态,上到高峰之后有一部分企业会垮掉,这张图看不看都可以,有一个趋势前面友商也讲到,就是全闪存,分两种趋势,一种是全闪存,一种是分布式全闪存,我们要做很多重构,包括传统编制方法都要改变。比方说以前我们是一个队列,之前用的一些类似于新的介质比方说NVMe,现在整个都变了,所以门槛100微秒以内的,以前是500微秒、200微秒,所以它是有一定门槛的。

第二点,智能存储,全球都在讲这个事情,最简单的就是智能化运维,这是传统厂商都在做的事情。把存储引擎智能化,实现功能,通过人工智能技术来做,这个讲的比较虚,因为现在还没有人定义标准,各家厂商做的都不一样。

第三点,安全。以前是被动式的,现在想基于这个东西做主动防御。比如说数据库应用,哪一天觉得不对,觉得有异常,我可能保护,我称之为主动式防御,目前我们在做这方面的工作,首先要识别正常的I/O模型,异常的时候,触发主动措施。

关于TaoCloud/大道云行

最后简单做一下广告,我们做什么事情,我们公司也是做软件存储,我们跟其他厂商不一样我们用三种产品做到存储,我们的文件是用S3/API、Object和EOSS,我们也有标准接口,文件提供标准接口,所以我们的接口比较全。

同时支持X86/飞腾、申威、龙芯,目前来看飞腾不错,申威比它差一点,目前我们做的工作是从数据到网卡,绕开CPU,突破总带宽,达到GB级的带宽要求。

除了做正常管理还做了智能化运维系统。上面也有几个趋势,EB级存储,智能存储、国产化存储、混合云存储。

我们现在做的工作,存储的数据冷了以后可以归档到公有云存储,比方说亚马逊、阿里云,比方说专注蓝光存储的华录、紫晶,所以是一个分级和归档的功能。

但是我们也跟一些厂商直接把公有云存储直接当成我们软件定义存储的介质来用。所以达到混合云生态,这是我们整个生态目前,我们的特点是我们文件相对于做的好一点,对象存储做的比较有特点,块存储主要是在行业里国产化的来做。

最后跟大家分享一下这两张图,前段时间我们公司开一个技术会议也是这样的,前途是光明的,道路是曲折的,SDS的发展之路是这样的,想象很美好,但是中间有各种问题要解决。但是也没什么问题,趋势就是这样的,趋势是不可阻挡的,我们遇河搭桥,遇山开路,但我们对存储要有敬畏之心,存储是很严谨的事情,我就讲这么多,谢谢大家!

未经允许不得转载:存储在线-存储专业媒体 » 大道云行刘爱贵:软件定义存储应用之道