送你 4 句口诀 云存储选型不再犯难
云妹导读:
明天就是中秋节了,云妹祝大家月圆饼圆,人圆家圆,一桌团圆。虽然佳节将近,但是云妹还要继续站好最后一班岗,继续为大家分享好玩、实用、前沿的技术应用经验。今天,我们来聊聊月饼馅儿…(串场了,关于月饼馅儿的话题大家看今天次条推文),不对,是云存储——存储技术大佬为你总结出 4 句口诀,从此存储选型不再犯难!
随着云上提供的存储产品种类越来越多,规格越来越丰富,如何在云硬盘、云文件服务、对象存储这些产品中,选用最适合自己的产品,以及选择什么规格最匹配,这还真不是一件容易的事儿。本篇文章就将为你提供几种办法,让你不必了解很多艰涩难懂的理论知识与参数,只要记住 4 句口诀,就能选到适合自己应用特点的云存储。
如何做好云存储选型?只需 4 句口诀
严格来说,云上存储产品选型要看功能、看性能、看可靠性。其中,如果单从性能方面展开的话,还要看吞吐,看 IOPS,看时延。
在此基础上,如果你已经足够了解自己所需功能、性能以及可靠性指标,那么你就可以用这些指标与云厂商所提供的云硬盘、对象存储、文件存储三种产品的功能、性能参数做详细比较,从而选择一款满足自己应用需求的存储产品。但是大部分情况下,我们可能并不太理解这些种类繁多的技术指标,我们对云存储产品的需求可能只是“速度快点”,“好用点”,“稳定点”,很难将这些描述直接与我们的需求联系起来。
那么,有没有不仔细研究这些参数,也能选对云存储产品的方法呢?
记住接下来的这 4 句口诀,就可以帮助你在大部分时间里选到合用的云存储产品。随着对应用需求和存储产品特点理解的加深,再进一步优化对存储产品的使用。
上云先用云硬盘,通用规格最全能
第一句口诀是“上云先用云硬盘,通用规格最全能”。虽然云上第一款存储产品是对象存储,但是大部分用户上云用的第一款存储产品都是云硬盘。
云硬盘可以理解为使用分布式存储技术,向用户呈现的一个高可靠、可弹性扩容,与本地块存储设备使用体验非常相似的存储产品。
云硬盘适合以下两个场景:
初次上云。希望使用存储时和使用服务器本地存储的体验尽量相同,以降低初次上云的学习成本;
单个计算节点对存储的时延比较敏感。一般发生在数据库应用,单个 IO 比较小且频繁。
这两种场景下,我们根据所需的存储容量,创建一块云硬盘,挂载到云主机上就可以使用了。
创建云硬盘的时候,我们可能又有疑惑了:云硬盘有三种规格,性能型 SSD,通用型 SSD 和容量型 HDD。这三种规格怎么选呢?其实看名字就可以得到很好的参考了。如果对性能要求不高,也不必要牺牲性能来降低存储成本的话,选用通用型 SSD 规格的云硬盘最合适。作为一个卖云硬盘的,我也可以负责任地告诉你,通用型 SSD 规格的云硬盘售卖量确实是最高的。
如果你需要很高的 IOPS 性能,就适合选用性能型 SSD 云硬盘;如果你有大量的数据要保存,又不需要很频繁的读写,那么用容量型 HDD 规格就能为你省下一大笔存储成本。
共享数据高并发,文件对象两相宜
有些场景下,我们会发现云硬盘并不能满足所有的存储需求。比如你有成百上千台云主机处理同类型的任务,但不想把同样的数据存储成百上千份,而是希望有一个共享存储满足数据的读写需求;又或者需要这个存储能够自动扩容,有 PB 级的容量,总吞吐或者总 IOPS 高出云硬盘很多。这时就需要用到第二句口诀——“共享数据高并发,文件对象两相宜”。
云文件服务和对象存储都能够满足上述需求:
能被多个节点同时访问,进行数据读写;
有 PB 级的容量,可以根据实际的使用数据量自动弹缩;
数 GB/s 的吞吐带宽和高 IOPS 性能。
同时,这两款存储又分别适合不同的场景,我们可以从以下角度进行区分:
从数据读写方式区分
首先,从数据读写方式来看就要记住第三句口诀——“频繁读写用文件,一写多读选对象”。云文件服务设计上支持追加写,也支持从一个文件的中间进行修改;而对象存储想要修改一个文件,就必须先把文件下载下来,修改后再重新上传覆盖。所以如果需要频繁地对已经存储的数据进行修改,云文件服务会更适宜。
从功能需求区分
其次,从附加功能上来看,对象存储围绕着已存储的数据,提供了很多额外的功能。如果数据的写入方或者读取方中,有一方是在 Internet 上,有大量的并发读请求,或者需要数据能够异地容灾、CDN 加速,或者对图片的转换、鉴黄等功能,首选必然是对象存储。
大量的互联网 APP、网站、视频都使用对象存储作为其后端存储,因为对象存储可以方便地将数据推送到 CDN,对通过 Internet 访问的用户非常友好,还可以自动实现对图片的处理或者对数据的生命周期管理,比如数据存储 30 天后就归档到更低成本的存储中,3 个月后就自动删除。
对象存储也是云硬盘、云文件服务和对象存储这三种存储服务中,单位容量价格最低的存储。如果你的数据有合规要求,必须在不同城市做容灾备份,或者你有大量的数据就是归档用的,很少读取,那么你甚至可以选择对象存储的“归档存储”类型,进一步降低你的数据存储成本。
从迁移难度区分
对于选择对象还是文件,还有第三点需要考虑——迁移难易程度。
云文件服务使用的是 POSIX 语义,而对象存储使用的是 Restful 接口,两者的使用方式是有很大不同的。简单来说,如果需要部署的应用在迁移前是对硬盘的文件系统直接读写,那么迁移到使用云文件服务并不需要对存储的读写方式做变更。
而要使用对象存储,就需要把应用对数据的读写都转换成对对象存储接口的调用才能实现。当然,如果本身就是用了对象存储的语义,在云上也就可以直接使用了。
这里需要注意的是,在生产业务上不太推荐使用 S3fs 一类的对象存储转文件语义工具来使用对象存储。因为 S3fs 这类工具会将文件语义转换成对象存储的语义再进行操作,不利于发挥对象存储本身的性能。
综合上述的功能、成本和迁移门槛,就需要根据实际情况,权衡各方面做出选择了。
初窥门径再进步,细分并发与时延
如果上面这些方法你都理解了,但还是在使用存储产品时遇到这样或那样的性能瓶颈,仍然觉得存储“不够快”。这时,就需要进一步把需求里的“速度快点”再进行细化。这就要用到第四句口诀——“初窥门径再进步,细分并发与时延”。
存储产品的性能瓶颈一般存在于三个方面:吞吐带宽、IOPS 和时延。
在具体应用场景中,任何一个达到了上限,总体性能也就到达了上限。那怎么识别哪一方面达到了上限呢?答案就是需要对应用读写的 IO 大小和并发数有所了解。比如应用读写存储的 IO 大小是 4KB,128KB 还是 1MB?是多个读写并行,还是串行一次一个请求?
分析瓶颈时大致可以沿着这样的方向来判断:如果是并发读写到达瓶颈 128KB 以下的小 IO,IOPS 到达瓶颈的可能性大;反之如果 IO 大小在 128KB 以上,吞吐带宽达到瓶颈的可能性就比较大了;如果是串行的请求,那么一般都是时延到达了瓶颈。
到达了瓶颈该怎么优化呢?一个方向是提高读写请求的并发数量或者接收请求的存储数量;另外一个方向是将小 IO 就近在时延低的存储上进行读写。时延性能都是越小越好,几种存储产品的时延由小到大依次为:服务器本地盘<云硬盘<云文件服务<对象存储。
相信大家看到这里,就已经对怎样选云存储产品有大致的了解了。下次需要选云存储产品时,记得根据这些口诀,核对一下功能点和性能指标,一定能快速选出合适的云存储产品。最后,我们再来复习一下这 4 句口诀:
上云先用云硬盘,通用规格最全能
共享数据高并发,文件对象两相宜
频繁读写用文件,一写多读选对象
初窥门径再进步,细分并发与时延
欢迎点击【京东智联云】,了解开发者社区
更多精彩技术实践与独家干货解析
欢迎关注【京东智联云开发者】公众号
版权声明: 本文为 InfoQ 作者【京东科技开发者】的原创文章。
原文链接:【http://xie.infoq.cn/article/cd06741afb93016fd54cae196】。文章转载请联系作者。
评论