免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3159 | 回复: 0

【原创】讨论帖:web2.0网站对存储的需求和解决思路 [复制链接]

论坛徽章:
0
发表于 2008-12-17 11:06 |显示全部楼层
web2.0网站对存储的需求和解决思路\r\nauthorqqeyes\r\n2008-12\r\n \r\n \r\n= web2.0网站对存储的需求和问题 =\r\n \r\n这里我们讨论的是一个有海量数据的web2.0网站如何设计他的存储架构的。首先定一个海量,什么是海量,海量就是说这个网站有上亿个甚至十几个亿的数据,每天的访问量也有好几亿的pvweb2.0反映了这个网站的数据类型,可能有很多的图片,小文件,或者是视频。在高达数十T的情况下,如何存放和管理这些数据恐怕是这类网站管理人员每天都要考虑的问题了。\r\n本文将从图片和视频两个角度来分析这类网站的存储设计。这两个类型是目前网络上存在数量最高的数据类型,也是web2.0网站的主要数据类型之一。\r\n \r\n== 图片的存储 ==\r\n \r\n- 图片的大小\r\n \r\n没错,图片的大小是个很重要的因素,平均大小几百k的图片甚至更大的图片是和平均大小几k的图片管理是两种完全不同的概念。如果是较大的图片,你完全可以把他当做普通的文件甚至是小视频来对待,但是几k的图片,就面临到很多的问题了。\r\n \r\n- 图片的数量\r\n \r\n请相信我,当你管理的图片超过十亿个的时候,你就非常头痛了。\r\n \r\n- 图片的更新\r\n \r\n图片的更新就是说这些图片是否需要在同一个名字下改变他的内容,这会增加很大的成本,降低很多的效率。\r\n \r\n- 究竟是采用普通的文件系统还是分布式文件系统\r\n \r\n分布式文件系统的确是是现在最热门的最能体现未来的文件系统,但是目前仍然没能大规模商业化,不是每一家公司都能够像google一样站在浪尖上。\r\n \r\n- 究竟是采用昂贵的专业存储还是廉价的pc服务器\r\n \r\n网站刚开始的时候大家都是使用廉价的服务器,后来有钱了,访问量大了,可靠性要求高了,开始用专业存储,但是专业存储用多了,又想回到的廉价的“山寨存储”--pc上。\r\n \r\n- 究竟采用什么样的备份和恢复方式\r\n \r\n面对如此多的文件,你要怎么考虑备份恢复的问题,尤其是面对无法控制的误操作和程序bug\r\n \r\n- 如何面对复制\r\n \r\n这么多的文件,想做一份copy真的很难,这意味着你很难做迁移。\r\n \r\n \r\n== 视频或大文件 ==\r\n \r\n- 只做少量修改\r\n \r\n只做少量的修改意味着原来的文件中大部分数据都不会改变,甚至连文件名都不曾改变。所有的操作可能仅仅是在末尾添加某几个字节的改变。但是从文件上看下去,这个文件被彻底的改变了。\r\n \r\n- 空间又不够了\r\n \r\n无论你规划了多少空间,监控中心总是在告诉你,空间不够了。\r\n \r\n- 容灾\r\n \r\n这么大的数据量,可能是几十T,需要做容灾么?\r\n \r\n- 用户总是抱怨访问太慢了\r\n \r\n为什么用户总是抱怨访问这些文件的速度无法接受。这可能会影响网站的访问甚至声誉。\r\n \r\n \r\n \r\n= 我们现在的架构是什么样的 =\r\n \r\n: 方案1 集中NAS存储\r\n \r\n目前很多的网站都是采用linux/unix平台作为web服务器,前面挂一个负载均衡,后端就是NAS存储。而这个存储基本上存放着web平台请求的一切数据。无论是读写,对数据的操作均在NAS上完成。优点是非常明显的的,首先你的数据都只存放在一点上,对应用来说非常简单,我可能只需要知道向某个目录(mount point)上读写数据,其他都不用操心了。对于存储管理员也简单了。我只要管理这一个机器就好了,只要他能保证可靠性,能够方便的进行对web服务器的支持,能够让我方便的备份和恢复,有良好的高性能的快照,防止误操作。能够使用更多的元数据信息(文件创建时间、修改时间等等)。这就可以了!\r\n \r\n为什么使用了NAS,因为作为一个网站,这种集中存储方式对多服务器的共享支持最好,能够很容易的部署,成本相对较低,性能基本也足够。\r\n \r\n: 方案2 本地磁盘\r\n \r\n不要被吓到,使用本地磁盘的服务器不在少数,甚至会高过使用集中存储的网站,他的优点也是很明显的,成本低,易于管理。容量上也不吃亏,一个4u的服务器现在已经可以支持到48T的裸容量了,并且越来越多的厂商加入到高磁盘密度服务器的开发当中。说明这是一个很有未来的方向。\r\n \r\n: 方案3 分布式文件系统\r\n \r\n可以说,正是因为google的成功,才让分布式文件系统如此的火爆。尽管在他的之前,许多的企业和大学花了很多心血在上面,但是知名度最高,应用最广泛的还是google。他的优点和他的名声一样大,海量存放,高速访问,近乎100%的可靠性。不过这个东西在国内的应用相对较少,虽然有一些比较大的门户在尝试,但是没有那一家能全面使用。\r\n \r\n \r\n \r\n= 现在架构出什么问题了 我们是怎么解决的 =\r\n \r\n: 集中NAS存储\r\n \r\n忽然有一天开始,存储管理员天天都在面临存储空间不够,NAS性能不好。但是他无能为力,因为他已经买了预算以内最好的NAS产品,做了最全面的优化。可是他同时发现,面对爆炸性的数据增长,这些东西已经无能为力。\r\n \r\n最容易想到的方法是,让一个NAS变成多个。怎么变呢?第一个办法:NAS虚拟化,这是个新东西,很多企业级的应用都是不敢用的。毕竟新的东西一来成本很高,二来大家也不放心。所以最常见的办法是从应用层上下手,比如nfsmount点变成多个,让程序通过一定的手段,比如hash,来实现利用多个NAS共同服务;或者是开发一个接口,放在应用层和存储之间,当应用层读写存储的时候,首先经过的是接口,然后才到存储,让接口去完成之前应用层的改造。这样方式的好处是可以避免单一NAS存储的瓶颈,并且可以先行扩展,满足未来的需要。\r\n \r\n: 本地磁盘\r\n \r\n无论机器的硬盘有多少,总是有个限制的。硬盘太多,运算和内存单元的瓶颈又显露出来。这两者之间是矛盾的。不可能仅仅用大硬盘就可以解决。\r\n除了大容量服务器之外,iscsi已经获得了相当的认可,很多基于iscsi的方案在探索中不断成长。在高io和吞吐量的测试上体现了很大的优势。开源软件+iscsi变得更加灵活。你可以使用一个集群化的机器提供iscsi的方式供给空间,不仅仅解决了运算段的问题,而且不在受限于本地磁盘的限制。\r\n \r\n: 分级存储\r\n \r\n所有的数据都放在一个笼子里,你可能会发现很多的数据根本没有人去访问,或者访问很少。这些数据甚至占到的了总数的80%,但是却和那些热点的数据占据相同的成本,提供相同的访问级别。\r\n因此,根据不同的访问频率和需求,文件按照一定的级别分布,在高性能高成本的地方存放最需要可靠性和速度的数据,那些相对于访问频率较低的,则可以放在性能较弱的二级存储上这个特别适合于热点表现非常鲜明的在线视频和大文件的存放。\r\n \r\n: 缓慢的备份\r\n \r\n那些数量众多的文件,特别是文件大小仅仅有几k的小文件,备份一次是相当的痛苦。可能需要备份设备没日没夜的备份好几天才能备份完毕。\r\n这个可能比较麻烦的,目前没有特别有效的办法。也希望大家多多思考这方面的方法。\r\n \r\n \r\n \r\n= 我们的未来 =\r\n \r\n最好的存储方式就是最简单的。我们只需要考虑选择多大空间的存储,多高的io和吞吐量,设定管理的调度规则,然后可以去睡觉了。\r\n \r\n \r\n= 后记 =\r\n \r\n这篇文章叙述的相对简单,很多具体的内容和操作步骤都没有涉及到,希望大家能留言或来信积极讨论。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP