首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

推荐一个适合存放海量小文件的文件系统?

  •  
  •   hustlzp · 2014-08-13 11:47:25 +08:00 · 10918 次点击
    这是一个创建于 1710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    帮一个朋友写爬虫爬东西。

    数据库和文件系统中都要存。

    单个文件都很小,但数量有接近70-80万,总大小有20多G。

    放在服务器爬了5天,爬完了,发现很多数据库中有的条目,在文件系统中并不存在。

    找原因才发现是inode用完了,TAT。Google后发现,ext3好像默认16K分配一个inode,挂载的磁盘是40G(ext3),所以最大可用的inode大概是2600000左右个。但关键在于文件一般都小于16K,所以把inode耗完了...

    目前有一种解决方法是格式化EXT3,格式化的同时指定每4K分配一个inode,这样就把最大可用的inode数量扩大到4倍。

    但往长远看,感觉EXT3还是不太适合这种场景,所以求推荐一种适合海量存储小文件的文件系统。

    谢谢。
    第 1 条附言  ·  2014-08-13 23:41:05 +08:00
    @reusFork
    @clino
    @HavoStrean
    @sanddudu
    @tmqhliu
    @hellojinjie
    @wangdaimishu
    @likuku
    @likexian
    @jsq2627
    @notnumb
    @chilaoqi
    @vainly
    @wy315700
    @love
    @bigtan
    @ryd994
    @soulteary 感谢大家的推荐!

    已经用XFS重新格式化了(使用默认选项),同样40G,inode的数量变成了41942016(大概是原来的20倍),这下绝对够用啦!现在scrapyd已经重新跑起来,过几天再看效果。再次感谢万能的V2EXer :)
    22 回复  |  直到 2017-05-01 22:38:42 +08:00
        1
    reusFork   2014-08-13 11:56:29 +08:00   ♥ 1
    reiserfs
        2
    clino   2014-08-13 12:15:58 +08:00 via Android   ♥ 1
    ext4?
    楼上这个都说小文件性能好,不过作者估计要把牢底坐穿。。。
        3
    HavoStrean   2014-08-13 12:16:03 +08:00   ♥ 1
    fastdfs
        4
    sanddudu   2014-08-13 12:19:38 +08:00   ♥ 1
    @clino 只是 15 年而已,没有弄成 100 多年算不错了
        5
    tmqhliu   2014-08-13 12:26:17 +08:00   ♥ 1
        6
    hustlzp   2014-08-13 12:33:43 +08:00
    @clino
    @sanddudu 原来他谋杀了他妻子...我去...15年很轻了。
        7
    hellojinjie   2014-08-13 12:38:04 +08:00   ♥ 1
    douban 不是有个 douban fs 的嘛,用来存放小文件图片的,不知道现在的进展怎么样了
        8
    wangdaimishu   2014-08-13 12:40:50 +08:00   ♥ 1
    你不会是把那些文件都放在同一个目录吧?我以前用 txt 存小说章节,300多万个,分三层目录,坨坨的。
        9
    likuku   2014-08-13 13:17:17 +08:00   ♥ 1
    至少 ext4 , zfs也是个好选择...假若存储部分可以独立出去用 freebsd 的话。
        10
    likexian   2014-08-13 13:20:09 +08:00   ♥ 1
    扔mongodb吧
        11
    jsq2627   2014-08-13 13:32:56 +08:00   ♥ 1
    小文件完全可以存数据库的嘛
        12
    notnumb   2014-08-13 13:37:31 +08:00   ♥ 1
    如果只是inode问题的话
    xfs,zfs,jfs都可以。
        13
    chilaoqi   2014-08-13 14:26:02 +08:00   ♥ 1
    我们以前也遇到过inodes耗尽的情况。用XFS
        14
    vainly   2014-08-13 15:56:32 +08:00   ♥ 1
    请无视我,MongoDB
        15
    wy315700   2014-08-13 16:01:31 +08:00   ♥ 1
    试试MongoDB或者HDFS
        16
    love   2014-08-13 16:04:22 +08:00   ♥ 1
    reiserfs啊,没有inode限制,想放多少放多少
        17
    bigtan   2014-08-13 16:05:45 +08:00   ♥ 1
    https://code.google.com/p/weed-fs/ 你可以看看这个项目
        18
    ryd994   2014-08-13 16:23:32 +08:00   ♥ 1
    这样的数据还是进数据库比较好,或者按网站打包,每次抓完更新
        19
    soulteary   2014-08-13 19:04:56 +08:00   ♥ 1
    openstack swift
        20
    soulteary   2014-08-13 19:05:47 +08:00
    ps,如果是小图标一类的,或许找家带open api的图床更靠谱?
        21
    haoba   2014-08-14 17:33:33 +08:00   ♥ 1
    fastDFS可以啊。
        22
    faywong8888   2017-05-01 22:38:42 +08:00
    @bigtan seaweedfs 挺好的,我 Like it
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3676 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1