IT技术博客大学习 共学习 共进步

MogileFS 对大文件的支持

扶凯 2012-09-12 12:45:24 浏览 2,084 次

我一直使用 MogileFS 存视频这样的大文件来做源站.也用来存海量的小文件. MogileFS 本身对大文件支持也是相当不错的,另外要知道大文件它查询数据库的次数就更加少.
在这需要提醒一下大家.需要注意在大文件上传的时候(平时我多大的都有大点的 4G 以上), 需要 MogileFS::Client 加上特别的参数,来分片上传,这样存放速度在 MogileFS 中就会快多了.
我们在使用 new_file 的方法来上传的时候,只需要加入可选参数中的 largefile => 1 .这个时候内部的 MogileFS::Client 中就会使用另一个上传的模块,不在使用默认的 MogileFS::NewHTTPFile.但功能基本一样,只是支持  chunked 和 partial (Content-Range) HTTP/1.1 PUT .

另外,在读文件的时候,另在 8k 读一次,建议一次的块为 1M -2M 这样也会快多了.如果使用 store_file 的方法来指定文件上传时,除了默认的 largefile => 1 外,还需要加一个 chunk_size => 1024 * 1024.这样才能更加快的上传.
如下:

1
2
3
4
5
6
7
8
9
$mogc->store_file(
    'testfile'
    ''
    'testfile.flv,
    {
        largefile =>1,
        chunk_size => 1024*1024,
    }
);

使用这个功能,也需要  mogstored 支持.我测试了默认的 mogstored 中使用的 Perlbal .但发现好象在 Centos5 上对 Content-Range 上传时会出错,提示大小不对,但不知道为什么在我的 Centos6 上测试就正常.
当然,要是你使用的不正常,就使用 cmogstored 好了.这个一定都正常.

建议继续学习

  1. MogileFS 的介绍(MogileFS 系列1) (阅读 4,984)
  2. 在 MogileFS 中使用 Nginx (阅读 3,884)
  3. MogileFS 的客户端和API(MogileFS 系列4) (阅读 3,444)
  4. MogileFS 的安装(MogileFS 系列2) (阅读 3,305)
  5. MogileFS Rebalance(文件的重新均衡) (阅读 3,164)
  6. MogileFS 的设置和管理(MogileFS 系列3) (阅读 2,903)
  7. MogileFS 研究 (阅读 2,623)
  8. MogileFS 文件系统检查 (阅读 2,463)
  9. MogileFS 排错小技巧 (阅读 2,224)
  10. 为 MogileFS 配置使用多个网络段/多数据中心 (阅读 2,222)