我运行的图像共享网站有超过100万张图像(~150GB).我目前将这些存储在我的专用服务器的硬盘驱动器上,但是我很快耗尽了空间,所以我想将它们移到Amazon S3.
我已经尝试过做一个RSYNC,它花了一天的时间来扫描和创建图像文件列表.转移一天后,它只完成了7%,并使我的服务器速度变慢,所以我不得不取消.
有没有更好的方法来执行此操作,例如将它们GZIP到另一个本地硬盘驱动器然后传输/解压缩该单个文件?
我也想知道将这些文件存储在多个子目录中是否有意义,或者将所有百万+文件放在同一目录中是否合适?
Ian*_*cer 25
一种选择可能是以懒惰的方式执行迁移.
这应该可以非常快速地将所有最近或常被提取的图像移到亚马逊上,从而减少服务器上的负载.然后,您可以添加另一个任务,以便在服务器最不忙时缓慢迁移其他任务.
鉴于S3上尚不存在文件,将它们作为存档文件发送应该比使用同步协议更快.
但是,压缩存档对图像文件没有多大帮助(如果有的话),假设图像文件已经以压缩格式(如JPEG)存储.
传输~150GB的数据将长时间消耗大量的网络带宽.如果您尝试使用HTTP或FTP而不是RSYNC进行传输,这将是相同的.如果可能,离线转移会更好; 例如,发送硬盘,或一组磁带或DVD.
从性能角度来看,将一百万个文件放在一个平面目录中是个坏主意.虽然一些文件系统可以很好地处理O(logN)文件名查找时间,但其他文件系统不会使用O(N)文件名查找.乘以该数N来访问目录中的所有文件.另一个问题是需要按文件名顺序访问文件的实用程序如果需要对一百万个文件名进行排序,则可能会显着减慢速度.(这可能部分解释了为什么rsync花了1天时间进行索引.)
从管理角度来看,将所有图像文件放在一个目录中是一个坏主意; 例如,用于备份,存档,移动内容,扩展到多个光盘或文件系统等.
| 归档时间: |
|
| 查看次数: |
5782 次 |
| 最近记录: |