如何设计一台能存海量图片的服务器? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kenneth
V2EX    程序员

如何设计一台能存海量图片的服务器?

  •  
  •   kenneth 2013-07-11 14:57:53 +08:00 4975 次点击
    这是一个创建于 4553 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.文件系统选择应该如何考虑
    2.单台最大可以容量最大可以多少
    3.如何尽可能节约成本,但是又可以存的多

    不说S3和又拍云,自己建一个能否更低的成本。
    14 条回复    1970-01-01 08:00:00 +08:00
    wenbinwu
        1
    wenbinwu  
       2013-07-11 15:00:37 +08:00
    关注一下,高人请作答
    maoyipeng
        2
    maoyipeng  
       2013-07-11 15:05:09 +08:00
    你是只要存,不要传输么
    SharkIng
        3
    SharkIng  
       2013-07-11 15:06:21 +08:00
    这个好像和我们现在学的差不多,大致原理还是云技术,用的是Hadoop分布是文件系统

    主要就是把文件分别存储在不同的机台服务器中(云)以保证可靠性和容量的扩容之类的

    没有讲到关于成本,但是这种情况其实成本并不低,相当于自己搭建云了。

    总的来说S3和又拍应该是节约成本的最好选择
    zhttty
        4
    zhttty  
       2013-07-11 15:25:25 +08:00
    1、分区类型文件系统使用LVM组成raid1;
    2、单台最大可以达到操作系统极限;
    3、机械硬盘,组阵列,md5排重,限定上传尺寸;
    halfbloodrock
        5
    halfbloodrock  
       2013-07-11 15:37:09 +08:00   1
    重点落在了一台。。。


    如果对读实时性要求不高,强烈推荐 FreeBSD + ZFS !
    抛弃RAID卡,不过内存要大些。
    kenneth
        6
    kenneth  
    OP
       2013-07-11 16:01:02 +08:00
    @halfbloodrock 一台是因为没钱,有钱可以用豆瓣Beansdb搞一个集群。考虑过淘宝的TFS,Mogilefs。
    但是还是觉得HDFS存的最多,单机可以12块硬盘一组好像。但是具体不知道如何搞。
    halfbloodrock
        7
    halfbloodrock  
       2013-07-11 16:11:00 +08:00
    @kenneth 单机情况下,在我看来没有任何文件系统能超越ZFS,使用简单,几行命令就搞定,而且你能接多少块盘,就能用多少。

    如果考虑以后扩容到分布式,考虑方式就完全不一样了。
    c0878
        8
    c0878  
       2013-07-11 16:26:27 +08:00
    单机的可用性无论怎么提高都不如双机或者多机分布式的 而且多硬盘对机箱电源的要求就更高了 超过一定数量的话成本还不如搞两台
    存储建议分层 内存+SSD+Raid1或者Raid5 根据热度来存放
    thinkxen
        9
    thinkxen  
       2013-07-11 16:28:29 +08:00 via Android
    zfs不错的,或者买一台共享存储设备?
    alcoholwang
        10
    alcoholwang  
       2013-07-11 16:55:00 +08:00
    海量看你到底有多海量了,以及未来的预期,方案有所不同。

    不过建议可以用第三方服务,又拍云存储,https://www.upyun.com/

    我们公司要不是自己已经花蛮多成本建设了一套类似的,估计也会用又拍云
    pubby
        11
    pubby  
       2013-07-11 17:00:56 +08:00   2
    手头有2台图片存储,海量说不上,也就200w张左右
    freebsd8.x+zfs ( 3块SATA硬盘做 raidz,1块SAS盘做系统和缓存)
    08年的时候搭建的,当时还是freebsd7.x 硬盘是500G的,所以可用的存储容量是1T(1U机器最多4硬盘)
    后来容量不够了,又加了1台类似配置的。

    说一些使用感受:
    1. 要跑zfs必须要64位系统配大内存。
    2. 前端加上squid缓存,减少热图访问给zfs带来压力。(squid是在单独的SAS盘上做的)
    3. 用C+ImageMagick写了一个动态生成任意尺寸缩略图的网关(fastcgi挂到nginx上,同样用squid做了缓存)

    注意事项:
    1. zfs下单目录不要放太多图片文件,影响性能
    2. 做好硬盘smart监控,发现异常及时更换硬盘。我们这2台都发生过硬盘挂掉的情况。
    alcoholwang
        12
    alcoholwang  
       2013-07-11 17:06:11 +08:00
    没自己看到楼主的最后一句话。。。。不过不从技术成本、硬件成本、网络成本(CDN)上来讲,综合比较下来还是又拍
    mudone
        13
    mudone  
       2013-07-11 17:18:56 +08:00
    说说我自己的解决方案吧:
    我自己的需求是存了1kw+的图片,空间占用2T+。

    第一版本直接hash目录,分目录存放,创建了5级目录,这种方式就是备份非常麻烦,其他还好,访问直接用nginx rewrite到物理文件;
    第二版,图片存储用的是SQLite,一个SQLite库存1W张图片,程序读出来之后存为一个缓存文件,然后nginx rewrite到这个缓存文件。

    这个方法的成本:一个月40美金左右。
    stranbird
        14
    stranbird  
       2013-07-11 19:59:25 +08:00
    请问一下gridfs大概是一个什么水平,用来做这种分布式系统的话。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     828 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 21:03 PVG 05:03 LAX 13:03 JFK 16:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86