大量图片如何设计服务器的文件存储系统?

对这方面不太懂,标题可能取得不太还。

说一下具体情况,现在设立的独立的图片服务器,现在图片数量较少。总共2w多,每张图片大概有10个不同尺寸的缩略图,总共20几w个文件,全部存在一个文件夹里面。

现在有一批图片上来,大概50w,加上缩略图就是500w的文件数量,现在如何做文件系统是个问题,不能存在一个文件夹里面。

肯定是按照一定的规则分散存在不同的文件夹里面,通过nginx或后台的tomcat判断文件的所在文件夹。

这些是我能想到的,不知道还有什么比较好的解决方案,望大牛们指导或推荐资料,对这个领域不同熟悉、

小弟分不多。拜谢~~

受jinnianshilongnian和hz020815的启发,你也可以这样,按照年/月/UUID这样来存放,每次上传分配一个随机的UUID,然后算出是哪个服务器,以及现在日期,对应路径,这些信息都存到数据库里面,主键就是这个UUID

也可以参考我上面的那个回答,两个回答的前提如下:
如果有钱,并且很可能会很多的图片,那就分布式存储,用我的第一条回答;
如果没钱,或者根本达不到这样大的量,还是一台专用的文件服务器好了,用我的第二条回答

不要放一个目录,根据图片的hashkey分地方存储

最有效的可以把你数量级迅速降低2个数量级
降低2个数量级以后,相信稍微烂点也没问题了

1、可以按照 年/月/日 存

2、现在有一批图片上来,大概50w 可以将其分布到过去一年的年/月/日 目录中 50w/365 每个目录1000多个

年/月/日 + big/small/middle 等图片尺寸分类

我觉得按那种形式分文件肯定得看你的业务内容,从时间的纬度进行拆分是否符合你的业务要求,如果你是一个电子商务中的图片,按时间纬度划分是否维护起来不太方便?如果图片经常改动,那你是否还需要对图片的迁移?是否需要对图片的高密度的读取?

为考虑以后图片的继续增多,是否可以考虑分布式存储,重点的重点就是你的hash,根据你具体的业务进行划分。