图片存储:按时间增加新域名进行扩容的办法

基于ID的分片机制实现存储的分布化会遇到一个问题:固定存储空间随着时间增加再次达到系统的空间/负载的瓶颈。观察了一下Flickr的图片存储 地址:好像是在定期启用新的集群,各个时期的域名分布如下:

http://farm1.static.flickr.com 2006年中以前;
http://farm2.static.flickr.com 2006年底;
http://farm3.static.flickr.com 2007年底;
http://farm4.static.flickr.com 2008年底;

《构建可扩展的Web站点》上 没有提到这个策略,猜测Flickr应该是不断在启用新的服务器集群,当地一个集群用到90%的时候,开始启用下一个集群。一个用户的所有图片地址则存储 在数据库中:记录会包含当时的存储所在的集群:

user_foo – farm1.static……/20060124_003.jpg
\ farm1.static……/20060324_005.jpg
\ farm1.static……/20060824_021.jpg
\ farm2.static……/20070124_006.jpg
\ farm3.static……/20080124_002.jpg
\ farm4.static……/20081124_001.jpg

图片服务的特点就是:不修改,少量新增/极 少删除,存储量大,需要尽量避免迁移和复制;旧的集群锁定后:对于原来的文件基本上就只删不增了;虽然目前有很多开源的分布式文件系统,但是目前比较便宜 的解决方法还是本地硬盘服务器不断一组一组的增加,相互备份的一组服务器作为基础存储,然后前端使用缓存服务器;通 过LVS或者CDN进行负载/分布的均衡

另外如果希望前端存储使用的域名一直保持不变,通过目录规则进行rewrite的方式也是可以的,比如:将要发布的内容,后端按时间建立一个域名进 行存储;

200711.foo.example.com
200712.foo.example.com
200801.foo.example.com

200811.foo.example.com

而 前端则通过前端目录规则,将请求rewrite访问后台不同的存储服务器上:

foo.example.com/200711/ >> 200711.foo.example.com
foo.example.com/200712/ >> 200712.foo.example.com

foo.example.com/200811/ >> 200811.foo.example.com

简单的说:
像存储/发布这样要求稳定对外的服务,服务器扩容必须避免停机将旧文件搬来搬去;而是通过不断的构建新集群的方法,大集群/大空 间最好是扩展,而不是对原存储介质进行增容。

作者版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

13 thoughts on “图片存储:按时间增加新域名进行扩容的办法

  1. Pingback: สินเชื่อขอนแก่น

  2. Pingback: Onlineshop

  3. Pingback: www.indoqqpoker.site

  4. Pingback: login sbobet888

  5. Pingback: Tether USDT coin qr code generator

  6. Pingback: Freelance WordPress Developer London

  7. Pingback: 안전카지노

  8. Pingback: 메이저사이트

  9. Pingback: https://dlugi-faktury.pl/

  10. Pingback: 안전바카라

  11. Pingback: slot machine singapore

  12. Pingback: opinie

  13. Pingback: auto generated contents

Comments are closed.