阿里云如何利用云存储OpenStorageService来满足大规模的图片读写需求?
2020-12-31 11:18:44 阅读(251) 评论(0)
如今,几乎任何网站、Webapp和移动app都需要图片显示功能,这对图片功能从下到上都非常重要。图片服务器必须有前瞻性的规划。图片的上传和下载速度非常重要。当然,这并不意味着NB架构非常好,至少具有一定的可扩展性和稳定性。虽然有各种各样的结构设计,但我只是在这里谈谈我的一些个人想法。 IO无疑是图片服务器最严重的资源消耗。对于web应用程序,图片服务器需要分离,否则图片服务器的IO负载很可能会导致应用程序崩溃。因此,特别是对于大型网站和应用程序,有必要将图片服务器与应用程序服务器分离,建立独立的图片服务器集群,建立独立的图片服务器的主要优势:1)分享Web服务器的I/O负载,分离消耗资源的图片服务,提高服务器的性能和稳定性。2)可专门优化图片服务器——为图片服务设置有针对性的缓存方案,降低带宽网络成本,提高访问速度。3)通过增加图片服务器,提高网站的可扩展性,提高图片服务的吞吐量。 从传统互联网的web1.0,到当前的web3.0,随着图像存储规模的增加,图像服务器的架构也在逐渐改变。以下主要讨论了三个阶段图像服务器架构的演变。 在初始阶段介绍初始阶段的小图片服务器架构之前,让我们先了解NFS技术。NFS是NetworkFilesystem的缩写,即网络文件系统。NFS是Sun在不同的机器和操作系统之间通过网络开发和开发的文件。NFSserver也可以看作是FILESERVER,用于共享UNIX系统之间的文件,可以很容易地挂载(mount)在目录中,操作起来像本地文件一样方便。 NFS是最简单的文件共享方式,如果你不想在每个图片服务器中同步所有图片。NFS是一个分布式客户机/服务器文件系统。NFS的本质是用户之间的计算机共享。用户可以连接到共享计算机,并像访问本地*盘一样访问共享计算机上的文件。具体实现思路如下: 1)所有前端web服务器通过nfs挂载3个图片服务器export的目录,以接收web服务器写入的图片。然后[图片1]服务器将另外两个图片服务器的export目录挂载到本地,为apache提供外部访问。2)用户上传图片,用户通过Internet访问页面将上传请求post提交到web服务器,web服务器将图片复制到相应的mount本地目录。3)当用户访问图片时,用户可以通过[图片1]这个图片服务器读取相应mount目录中的图片。 上述结构存在的问题:1)性能:当图片服务器的nfs服务器出现问题时,现有结构过于依赖nfs,可能会影响前端web服务器。NFS的问题主要是锁定问题.容易造成死锁,只能通过*件重启来解决。特别是当图片达到一定的量级时,nfs会出现严重的性能问题。2)高可用性:只有一台图片服务器提供下载,容易出现单点故障。3)可扩展性:图片服务器之间依赖过多,横向扩展空间不够。存储:Web服务器上传的热点无法控制,导致现有图片服务器空间占用不平衡。5)安全:对于有web服务器密码的人,nfs模式可以随意修改nfs内容,安全级别不高。 当然,图片服务器的图片同步不能使用NFS、ftp或rsync。如果使用ftp,每个图片服务器将保存一个图片副本,并起到备份的作用。但缺点是将图片ftp转移到服务器需要时间。如果使用异步同步图片,则会有延迟,但一般的小图片文件也可以。使用rsync同步,当数据文件达到一定量级时,每次rsync扫描都需要很长时间,也会带来一定的延迟。 在开发阶段,当网站达到一定规模,对图片服务器的性能和稳定性有一定的要求时,上述NFS图片服务架构面临挑战,严重依赖NFS,系统单点机容易出现故障,需要升级整体架构。于是出现了上图服务器架构,出现了分布式图片存储。 具体思路如下:1)用户将图片上传到web服务器后,web服务器处理图片,然后将图片post通过前端web服务器到[图片1]、[图片2][图片N]其中一个,图片服务器收到post的图片,然后将图片写入本地磁盘,并返回相应的成功状态码。前端web服务器根据返回状态码确定相应的操作。如果成功,处理生成各尺寸的缩略图和水印,并将图片服务器对应的ID和相应的图片路径写入DB数据库。2)当我们需要调整上传控制时,我们只需要修改web服务器post到达目的图片服务器的ID,就可以控制上传到哪个图片存储服务器。相应的图片存储服务器只需要安装nginx,并提供python或php服务来接收和保存图片。如果不想打开python或php服务,也可以编写nginx扩展模块。3)用户访问页面时,根据要求图片的URL到相应的图片服务器访问图片。如:http://imgN.xxx.com/image1.jpg 现阶段的图像服务器架构增加了负载平衡和分布式图像存储,可以在一定程度上解决并发访问量高、存储量大的问题。F5*负载可以在有一定财力的情况下考虑,当然也可以考虑使用开源LVS软负载(缓存功能也可以同时打开)。此时,访问并发量将大大提高,服务器可根据情况随时部署。当然,这个时候也有一些缺陷,就是很多Squid上可能会有同样的图片,因为访问图片的时候可能会第一次分到Squid1,LVS过期后可能会第二次访问Squid2或者其他东西。当然,这种少量的冗余完全在我们的允许范围内。在系统架构中,二次缓存可以使用squid,也可以考虑使用varnish或traficserver。cache开源软件的选择应考虑以下几点 1)性能:varnish本身的技术优势高于squid,采用“VisualPageCache在内存利用方面,技术,Varnish比Squid有优势,它避免了Squid在内存和磁盘中频繁交换文件,其性能高于Squid。varnish不能cache到本地*盘。varnish不能cache到本地*盘。通过varnish管理端口,还可以使用正则表达式快速、批量地清除部分缓存。nginx是由第三方模块ncache制成的缓冲,其性能基本达到varnish,但nginx通常作为架构中的反向(现在有很多静态文件使用nginx,并且可以支持2000 )。在静态架构中,如果前端直接面对CDN活着前端的四层负载,则使用nginxcache就足够了。 2)避免文件系统缓存。当文件数据量非常大时,文件系统的性能非常差,如squid和nginxproxy_store,proxy_cache等缓存方式,当缓存量级上升时,性能将无法满足要求。开源traficserver直接用裸盘缓存是不错的选择。淘宝主要用于国内大规模应用和公布,不是因为做的不好,而是因为开源时间晚。Trafficserver在Yahoo内使用了4年以上,主要用于CDN服务,CDN用于分发特定的HTTP内容,通常是静态内容,如图片JavaScript、CSS。当然,用leveldb等做缓存,我估计也能达到很好的效果。 3)稳定性:squid作为老强队的缓存,稳定性更可靠。从我身边一些用户的反馈来看,varnish偶尔会出现crash。Trafficserver在雅虎目前使用期间没有已知的数据损坏,其稳定性相对可靠。事实上,我期待着Traficserver在中国拥有更多的用户。 上述图片服务架构设计消除了早期NFS依赖和单点问题,平衡了图片服务器的空间,提高了图片服务器的安全性,但另一个问题是图片服务器的水平扩展冗余问题。如果只想存储在普通*盘上,首先要考虑物理*盘的实际处理能力。是7200转还是15000转,实际表现差别很大。至于选择xfss的文件系统、ext3、ext4或reiserfs,需要进行一些性能测试,从一些官方测试数据来看,reiserfs更适合存储一些小图片文件。在创建文件系统时,还应考虑Inode问题,选择合适大小的inodesize,因为Linux为每个文件分配一个称为索引节点的号码inode,可以简单地将inode理解为一个指针,它总是指向文件的具体存储位置。文件系统允许的inode节点数量有限。如果文件数量过多,即使每个文件都是0字节的空文件,由于节点空间耗尽,系统最终也无法创建文件。因此,有必要选择空间和速度,构建合理的文件目录索引。 阿里云存储服务在云存储阶段阿里云存储服务(OpenStorageService,OSS)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过简单的REST接口在任何时间、任何地点上传和下载数据,也可以使用WEB页面管理数据。OSS还提供Java、Python、PHPSDK,简化用户编程。基于OSS,用户可以建立基于大规模数据的服务,如多媒体共享网站、网盘、个人企业数据备份等。以下图片中的云存储主要以阿里云的云存储OSS为切入点,上图为OSS云存储的简单架构示意图。 真正的“云存储”不是存储,而是提供云服务。使用云存储服务的主要优点如下:1)用户不需要了解存储设备的类型、接口、存储介质等。2)不需要关心数据的存储路径。3)无需管理和维护存储设备。4)无需考虑数据备份和容灾5)简单访问云存储,享受存储服务。 1)KVEngineOSS中的Object源信息和数据文件都存储在KVEngine上。VEngine将在6.15版本中使用0.8.6版本,并使用OSSFileClient提供OSSS。 2)Quota本模块记录了Bucket与用户的对应关系,以及Bucket资源在几分钟内的使用。Quota还将为Boss系统提供HTTP接口查询。 3)安全模块安全模块主要记录User对应的ID和Key,并提供OSS访问的用户验证功能。 OSS术语名词汇 1)AccessKeyID&AccessKeySecret(API密钥)当用户注册OSS时,系统将为用户分配一对AcceskeyID&AccessKeySecret,称为ID对,用于识别用户,并为访问OSS进行签名验证。 2)ServiceOSS为用户提供了一个虚拟存储空间,每个用户可以在这个虚拟空间中拥有一个到多个bucket。 3)BucketBucket是OSS上的命名空间;Bucket名在整个OSS中是独一无二的,不能修改;每一个存储在OSS上的Object都必须包含在某个Bucket中。一个应用程序,比如图片共享网站,可以对应一个或多个bucket。一个用户最多可以创建10个bucket,但每个bucket中存储的object的总数和大小没有限制,用户不需要考虑数据的可扩展性。4)Object在OSS中,用户的每个文件都是Object,每个文件小于5TB。object包含keyyect包含key、data和usermeta。其中,key是object的名字;data是object的数据;usermeta是用户对object的描述。使用方法非常简单,如下javasdk:Javacode复制内容到剪贴板OSSClientent ossClient = new OSSClient(accessKeyId,accessKeySecret); PutObjectResult result = ossClient.putObject(bucketna
推荐阅读
- 性价比高的手机有哪些?
手机作为日常生活中最重要的工具,我建议可以在自己的预算范围内买好一点。一款性能出色、运行流畅的手机能够带来的使用体验,与用起来老是卡顿的手机是完全不同的。1599元起!这四款高性价比手机推荐给你 和老一辈不同,现在年轻人的消费观已经变…查看详情
- nba无插件直播软件有哪些 6款nba直播(jrs无插件)软件
NBA是全球很多球迷都在*的体育赛事,有很多直播软件都会直播这个比赛。但是有一些直播软件自身携带了附加软件和病毒,不是很安全。下面是我给大家推荐的6款nba无插件直播软件的介绍,内容如下: 1.直播吧 它是一款比较出名nb…查看详情
- 淘宝发顺丰怎么操作?
优质答案(1) 首先登陆卖家淘宝账号,点击上方的卖家中心,然后点击交易管理中勾选您需要设置为默认的物流公司,点击“保存设置”即可。 优质答案(2) 想要用顺丰快递,那么必须和卖家沟通,因为卖家在填运费的时候,默认都是普通快递,所以…查看详情
- 电商运营多少钱一个月
电商运营是一种市场营销手段,旨在通过互联网销售产品或服务,从而获取收益。实际上,电商运营需要考虑很多因素,包括网站建设、商品采购、订单处理、物流配送等等。因此,电商运营的费用也很难简单粗暴地计算。 以下是详细描述电商运营每月的费用,主…查看详情
- 如何保存网页?保存网页的几种方法
我们在浏览网页的时候想保存一张图片,一般主要点击右键,另存为图片就可以保存到本地了。但是有些网页对内容做了保护措施,这时候我们就无法右键保存图片了。今天万商云集*就来教大家怎么保存无法右键保存的图片,不会的小伙伴快来学起来吧。保存网页的…查看详情
- 4款拍照转文字的软件,可识别、可翻译的确好用
随着科技技术的发展过去不可能实现的事情现在都在一一的变为现实,例如将视频当中的字幕提取出来,或是对视频中语音转为文字等。最近*又发现了很多实用的“黑科技”小工具,它们能够帮助人们直接对文字内容拍照,并转换为在线文本。今天就为大家…查看详情
- 怎样注册商标和公司丨有没有规定必须先进行哪一项?
最基础的商标常识是,注册商标可以以公司名义注册也可以是个人名义注册,但是个人必须提供个体工商户证明材料。之前网站发布过一篇《公司版权登记申请,建议在没有股权争议的情况下选择》的文章,中间提到“公司版权登记申请建议在没有股权争议的情况下选择,…查看详情
- 2022年天猫店铺怎么申请 天猫店铺申请流程
随着去年底开始现在天猫的入驻门槛已经大大降低了,不少商家抓住这个机遇想要入驻,现在正值2022年的新开端,不少类目都迎来了新的生机,现在入驻天猫应该是最佳的时期了,下面*就给大家来详细介绍一下2022年天猫店铺怎么申请 天猫店铺申请…查看详情
- 知识产权示范企业申报需要了解哪些知识?
当前,相关政府部门积极推进各领域对知识产权管理体系认证结果的认可,并配套相关扶持或资助政策措施,将其作为各种项目招投标优先考虑或必备的条件。比如将企业知识产权管理体系认证情况作为科技项目立项、高新技术企业、知识产权示范企业和优势企业认证的重…查看详情
- 网站改版的时候需要注意什么问题?这几点十分关键!
网站的建设对企业来讲都是非常重要的网站,应该要选择好自己的模板在使用的过程中才能够得到好的推广,另外网站建设完之后,也应该要做好后期的维护,这样网站的seo优化才会更好一些,也能够让自己的网站排名比较靠前带来更多的流量。如果说网站建设之后想…查看详情
- 免费的售后服务管理软件有哪些 售后服务管理软件排行榜
服务型时代现已到来,在市场上要站住脚,不仅要靠好的产品,更要靠高质量高品质的服务。再加上当下产品同质化情况严重,产品售后服务也是不可避免的。下面*就给大家来详细介绍一下免费的售后服务管理软件有哪些 售后服务管理软件排行榜这一块的相…查看详情
- 描写唐朝的小说有哪些 唐朝小说排行榜前十名
对于一些喜欢看历史小说的人来说,想要寻找到好看的历史小说,要尽可能的了解相关知识,或者是向周围的朋友打听一下什么样的历史小说比较好看一些,如果周围的朋友也不知道的话,我们可以先看一下唐朝小说排行榜前十名有什么? 1、天唐锦绣…查看详情
- 个人网页制作代码
HTML代码怎么写?html规范写法:如何让网页显示代码?第一步,打开电脑进入桌面,打开软件进界面。 第二步,打开软件进入后,打开相应的文档。 第三步,找到浏览器右上角更多点击。 第四步,下拉菜单找到更多工具-开发者工具点…查看详情
- 美国商标查询有必要吗?看完就明白了
因为美国属于超级大国,也是在经济贸易方面的领先国家,所以说美国的商标自然也有较高的含金量,并且在制度方面,也要比其他的国家更为完善一些,一旦注册了美国商标,就能够在进行国际贸易期间,很好地保护自身的利益。而大家都知道,在我国进行商标注册申请…查看详情
- 不同的网站类型选择不同的网站建设方式
企业网站已经是现代化企业的标配,成为企业面向市场和客户的第一张名片,不仅用于展示品牌形象,还成为企业获客的、利益转化的营销利器。很多中小企业在做网站建设的时候会选择外包给建站公司,但是根据企业资金情况、网站类型区别、网站建设方式的不同,不知…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

400-0033-166
8:30-18:00















































注册有好礼



