阿里云文件存储(NAS)助力业务系统承载双十一尖峰流量

2018天猫双11全球狂欢节,全天成交额再次刷新纪录达到2135亿元,其中总成交额在开场后仅仅用了2分05秒即突破100亿元,峰值的交易量达到惊人的高度,背后离不开阿里云大数据计算和存储能力的支撑。在整个交易的链路上,账单业务是一个重要的环节,尤其对商家系统来说,需要定期对账,账单子系统出现一点点问题都会影响商家的运营,2018的双十一,承载账单的消息系统把全网卖家账单系统60%的流量托付给了阿里云文件存储。在11日0点的峰值交易时刻,账单消息系统的写入流量瞬间达到日常流量的60倍以上,阿里云文件存储表现稳定,顺利扛下这一波洪峰,帮助业务系统完美度过0点的考验。本文将介绍阿里云文件存储的背景,以及文件存储是如何来保障业务系统应对高压力的。

什么是云上的NAS文件存储
在阿里云的发展早期,在云服务器ECS上运行的应用需要进行数据存储时,有两个选择:

云盘:兼容应用的IO接口,但是和物理机使用硬盘一样,云盘和ECS绑定,单块云盘只能特定ECS访问;
OSS:多ECS可以共享访问,但需要应用调整IO接口,使用OSS的REST接口;
但如果应用既想保留原有的IO接口(一般是POSIX接口),又需要实现多ECS共享存储,就没有很好的解决办法。NAS文件存储在这样的背景下应运而生,针对传统企业级应用的存储需求,通过标准NAS系统协议(NFS/SMB),为ECS提供共享存储,支持随机读写以及PB级别容量,并且支持容量动态扩展,方便业务从小规模逐渐扩大过程中,不需要再担心存储容量的扩容以及运维问题。

阿里云NAS文件系统从2016年推出至今,已经应用在丰富的业务场景中,包括高HPC性能计算、Web服务和内容管理、媒体和娱乐处理工作流、容器存储、基因和生命科学数据存储处理,深度学习大数据处理等等,很好地服务了云上的客户。

NAS文件存储架构设计
阿里云文件存储是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统,其架构设计如图1所示。


图1: 阿里云文件存储架构

整个技术栈分五层,第一层是各类计算节点(比如ECS、Docker、GPU等)不同操作系统使用标准文件协议NFS/SMB访问文件存储。第二层是阿里云网络负载均衡,把客户端请求轮转发送到前端机。第三层是负责协议处理的前端机,具备scale-out的能力。第四层是文件系统元数据管理,实现高效的数据结构保证元数据的快速操作。第五层是元数据和数据的持久化存储,使用阿里云盘古存储系统。

整个架构通过盘古保证高可靠,另外通过文件存储高效的数据和元数据管理技术实现scale-out、高可用,超高的数据访问性能以及一系列企业级存储的特性,如图2所示。


图2 阿里云文件存储特性

账单业务消息系统适配文件存储
随着云上文件存储的知名度越来越广,阿里集团的很多内部业务也开始接入文件存储,其中就包括支撑账单业务的消息系统。

架构设计
消息系统的存储本来使用的是本地盘,这样最主要的问题就是当单机故障时,存储在磁盘上的数据没法及时被其他主机访问,其他主机不能快速接管原来主机的业务,缺乏容灾的能力,对应用的影响非常大。而使用文件存储天然具有多机共享访问的能力,可以很好的解决这个问题。

但是,如果只是简简单单地做一个替换,把本地存储换成文件存储,如图3那样,


图3 本地存储替换成文件存储(共享访问)

多台ECS通过NFSv4挂载同一个文件系统,每个ECS会使用到一个文件系统里的多个子目录作为消息文件的存储空间,虽然解决了前述的容灾问题,但这个架构的问题是过于依赖单点的存储,万一单文件系统发生故障,所有消息队列的访问都会受到影响,因此需要对架构进行进一步调整。调整的基本思路就是将流量尽量打散到多个文件系统上,同时又避免对业务方软件的改造。

调整后的架构入图4所示,为业务创建多个虚拟云机房,每个虚拟云机房的消息系统存储由4个NAS文件系统来承载,消息系统计算节点ECS会同时挂载4个文件系统,并且通过软链接的方式在‘nasroot’目录下看到多个队列,对业务使用上来说,这些队列对应的目录是在同一个文件系统(原来的架构)还是多个文件系统(新的架构)是不感知的,这样就将业务需要改造的量最小化,只需要在部署时候进行相应的自动化(挂载和创建软链接)即可,但带来的好处是巨大的,万一发生单文件系统的故障,业务可以自动分流到存活的文件系统,可以有效应对各种故障场景。


图4 架构优化

细节优化
相对于使用本地盘,计算存储分离架构下,如果应对存储测的异常和故障呢?标准的NFS挂载下,如果服务端出现故障或者网络发生故障,客户端访问文件存储将会是完全hang住,直到服务或者网络恢复为止。针对这个问题,消息系统进行了相应改造,业务系统对消息的一致性保障进行了优化,可以支持写消息失败。这样就可以使用NFS的soft挂载模式,当服务端出现故障或者网络发生故障时,应用程序将不会再是完全hang住,而是能迅速监测到IOError,并立即采取对应的行动。结合前述的架构设计,应用程序能进行快速响应,把流量分流到其他存活的文件系统上,快速恢复。

双十一的考验
经过架构设计和细节优化,文件存储的scale-out能力在双十一尖峰发挥出了应有的能力,即使在0点时刻流量是平时的60倍以上,表现依然稳定,在文件存储的给力表现下,业务系统的响应依然如日常一样顺滑,完全感觉不出超大流量对系统的冲击。

总结
阿里云文件存储为云上业务提供支持标准接口(POSIX)以及标准文件访问协议(NFS,SMB)的存储服务,并且具有简单易用、安全可靠、性能和容量scale-out等特性。经过双十一的锤炼,文件存储的服务能力必将继续上升一个台阶,将提升后的能力以普惠技术的形式向云上各行各业输出,推动社会生产力的发展。

原文地址:http://blog.51cto.com/14031893/2331576

时间: 2024-11-29 08:15:13

阿里云文件存储(NAS)助力业务系统承载双十一尖峰流量的相关文章

阿里云文件存储的高性能架构演进之路

摘要: 10月27日下午,2018中国计算机大会上举办了主题"数据中心计算"的技术论坛,一起探讨解决数据中心所面临的挑战.论坛上,阿里云分布式存储团队高级技术专家田磊磊进行了<阿里云文件存储的高性能架构演进之路>的报告. 10月27日下午,2018中国计算机大会上举办了主题"数据中心计算"的技术论坛,一起探讨解决数据中心所面临的挑战.论坛上,阿里云分布式存储团队高级技术专家田磊磊进行了<阿里云文件存储的高性能架构演进之路>的报告. 专家简介田

文件存储NAS备份服务开放公测

摘要: 经过两个多月的开发,阿里云文件存储NAS备份服务已经开始公测了,有需要的用户可以去控制台申请公测资格.本文着重介绍NAS备份服务如何使用. 如何申请公测 如上图所示,在NAS的控制台主页上申请,需要填写公司名称以及需求. 经过两个多月的开发,阿里云文件存储NAS备份服务已经开始公测了,有需要的用户可以去控制台申请公测资格.本文着重介绍NAS备份服务如何使用. 如何申请公测如上图所示,在NAS的控制台主页上申请,需要填写公司名称以及需求. 创建备份任务 申请公测完成,后端审核通过后,备份页

jeesz分布式架构集成阿里云oss存储

1. 服务接口定义 /** * 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 * @param request * @param response * @param uid 用户id * @param userType 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 0:视频 * @param files 上传的文件对象 * @return * @throws Exception */ @RequestMapping(value = "/upload/b

安卓手把手教你结合阿里云OSS存储实现视频(音频,图片)的上传与下载

首先,明白阿里云OSS是个什么鬼 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务.用户可以通过调用API,在任何应用.任何时间.任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单的管理.OSS适合存放任意文件类型,适合各种网站.开发企业及开发者使用. 以上是官方解释.可以看出,OSS可以为我们在后台保存任何数据,强大无比. 步入正题: 首先你得有个阿里云账号(淘宝账号也可以哦,毕竟阿里账号都通用)

php将图片存储在阿里云oss存储上

一个配置文件 创建两个方法 1.上传方法 /** * 存储文件 * * @param $srcFile * @param $desFile * @throws Exception */public function storage_save($srcPath, $desPath){ //配置 $accessKeyId = ''; $accessKeySecret = ''; $endpoint = ''; $bucket = ''; $ossClient = new \OSS\OssClient

阿里云对象存储OSS支持版本管理特性

阿里云对象存储OSS现已经全面支持"对象版本管理"特性.该功能适用于所有的存储类型以及区域.当Bucket启用该特性后,"对象版本管理"功能可以保护和恢复误删除.误覆盖的数据. 对象存储OSS"版本管理"具有如下特点: 提供"应用级"数据保护,可防止文件意外覆盖:当Bucket开启版本管理特性后,该Bucket内对象的每次修改.删除操作,OSS都会生成对应的历史版本.授权的用户可以通过控制台.API.SDK等方式查询.下载以及

阿里云对象存储应用服务器搭建代码

背景说明 最近做一个APP客户端图片直传阿里云OSS的服务,需要在后台开一个阿里云的OSSToken获取的接口. 阿里云官方文档地址:快速搭建移动应用直传服务. 略过移动端说明,直接看服务端的. 不是移动端直传吗,为什么需要服务端呢?原因如下: Android和iOS应用不能直接存储AccessKey,这样会存在数据泄露的风险.所以应用必须向用户的应用服务器申请一个Token. 这个Token是有时效性的,如果Token的过期时间是30分钟(由应用服务器指定),那么在这30分钟里,该Androi

阿里云oss存储作一级源站与本地mfs存储作二级源站方案

在百度cdn新建cdn域名,主源站地址填写阿里oss的Bucket 域名meizu-news.oss-cn-hangzhou.aliyuncs.com 2.在百度回源配置里,配置回源hosts 3.在阿里云oss存储页面配置,镜像回二级mfs源站,镜像回源具体说明可参考阿里云官方文档:https://help.aliyun.com/document_detail/31865.html?spm=5176.8466029.retrieving.1.4e9d1450qhzYuu 4.填入mfs的LVS

WPOSS – WordPress阿里云对象存储OSS插件 网站图片分离加速

我们WordPress课堂在前面有一篇文章中介绍到WPCOS插件,这是针对WordPress程序集合腾讯云COS对象存储进行网站图片分离的插件,包括我们网站目前也有在用.可以降低网站的带宽占用,提高网站的访问速度,当然这个需要我们购买对象存储和流量包,必要的成本还是需要的. 不过有些网友提到自己如果在使用阿里云服务器建站的时候,也想用到类似的插件分离网站的图片或者其他附件文件,那在这里笔者就推荐使用类似的WPOSS插件,基于阿里云对象存储OSS的.功能上有些类似WPCOS,但是稍微设置上有一些不