V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
oldcai
V2EX  ›  问与答

Web 服务端如何设计,(附件们)才能灵活地使用多块磁盘

  •  
  •   oldcai · 2014-03-11 15:53:51 +08:00 · 2667 次点击
    这是一个创建于 3914 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在的情况是这样的,VPS默认的第一块磁盘满了,加了一块新磁盘进来。
    原先把磁盘直接mount到了/var,现在被附件塞的快满了。
    现在新增了一块磁盘

    目前我的方式是:
    创建一个目录,然后mount新磁盘,更改附件上传目录到这个目录,从现在起的文件就都上传到这块磁盘里面。

    这样之前的磁盘剩下的空间就不能用了,而且每次增加磁盘都需要更改配置来让附件存储到新的磁盘

    有没有好的办法更优雅的处理这件事情?
    10 条回复    1970-01-01 08:00:00 +08:00
    oldcai
        1
    oldcai  
    OP
       2014-03-11 16:05:01 +08:00
    想到大概可以最开始的时候,使用逻辑卷,后面就可以合并进一个逻辑盘了。
    可惜最开始的时候就没有这么干。
    下次试试。
    Livid
        2
    Livid  
    MOD
       2014-03-11 16:06:15 +08:00   ❤️ 1
    你目前这个情况的话,还可以考虑用符号链接。
    caonan
        3
    caonan  
       2014-03-11 16:08:30 +08:00   ❤️ 1
    符号链接 +1
    senghoo
        4
    senghoo  
       2014-03-11 16:19:09 +08:00   ❤️ 1
    看看以后还有扩展的需求的话直接新磁盘建立lvm 然后把数据转移过来。之后再用原磁盘扩充lvm
    skydiver
        5
    skydiver  
       2014-03-11 16:28:33 +08:00 via Android   ❤️ 1
    符号链接!
    oldcai
        6
    oldcai  
    OP
       2014-03-11 17:20:42 +08:00
    谢谢

    @Livid
    @caonan
    @skydiver
    符号连接好处大概在于不用重启程序吧。
    但是我在数据库中保存的相对路径,而目录里面是哈希散列过的几层目录,所以,要保持原先的数据的可访问性,就还是要路径不变吧,符号连接我好像也没法用。

    @senghoo
    嗯,大概只有扩充lvm能充分利用磁盘了吧。
    Livid
        7
    Livid  
    MOD
       2014-03-11 17:24:15 +08:00   ❤️ 1
    @oldcai 比如你可以把第一层,符号链接到另外一块盘上。不过这样做的风险就是,你要确认你的备份程序是可以 follow 符号链接的。
    oldcai
        8
    oldcai  
    OP
       2014-03-11 17:49:10 +08:00
    @Livid 第一层链接到另一块盘上面的话,是要把原先的数据是要复制过去,还是有办法一个符号链接指向两个地方么,我没有想到 T__T
    听起来好像如果只是符号连接,新数据可以按老路径写入和读取,旧数据就得改变一下路径。

    或者把新数据改变一下路径,新路径是一个软连接,连到新磁盘的某个目录,并配置新附件上传到新路径。
    效果就跟直接在第一层创建一个文件夹,然后将新磁盘mount在上面大致是一样的吧?
    gfreezy
        9
    gfreezy  
       2014-03-11 19:19:55 +08:00   ❤️ 1
    lvm里面有一个硬盘损坏会导致整个lvm卷损坏。

    我们之前的图片就是用两级hash目录存储,当一块硬盘满了以后,基本就没什么好办法扩展。增加硬盘,然后软连接这个方法只能解燃眉之急。光拷贝就要好长时间,而且如果之后空间又满了,还得重复这个过程。并且单机能加的硬盘数就那么点,总会吃不消的。

    如果确实容量可能会涨到一定的程度,那还是直接搭一个分布式存储的方案比较好。如果都是小文件的话,可以看下豆瓣的beansdb。如果是大文件,且io不高,看下moosefs。(直接套用豆瓣的架构)
    min
        10
    min  
       2014-03-11 19:29:55 +08:00   ❤️ 1
    lvm咯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:52 · PVG 03:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.