关于数据迁移阿里云OSS后数据大小改变的问题


#1

首先感谢Seafile团队创建这个优秀的项目!我和我的朋友们已经稳定使用了3年,也已经购买了专业版的License支持项目发展。这两天我正在把数据从传统文件系统迁移到阿里云的OSS。在迁移过程中遇见了一些问题。

我按照server manual配置好临时的 seafile.conf 然后使用 migrate.sh 进行迁移。脚本成功运行完毕显示迁移成功没有任何报错。

我在后来手动查询对比OSS和本地的数据时候发现了一些问题。

这是本地的 blocks commits fs 三个目录的信息 ,

可以看见

  • blocks: 96G 128120 files
  • commits: 159M 39118 files
  • fs: 1.7G 303286 files

对比OSS的上的信息

可以看见,三个目录所对应的bucket中的文件数量都是正确的,但是 commits and fs 的大小比本地小了很多分别只有20.77M和639.2M。

我之后又有运行 migrate.sh 进行确认,output也显示并没有新文件上传,脚本也很快成功结束退出。

所以我不清楚这种情况是不是正常的,seafile-data/storage 中的数据有没有全部成功迁移。如果文件数量没错,但是大小不一样是不是代表有的文件并没有全部上传?但是我手动的在OSS console里检查了一些文件和本地进行了对比并没有发现有文件大小不一致的情况。所以不知道是不是我多虑了。另外我发现,数据在上传至OSS后并没有维持原来的目录结构,这是本地的文件,

这是OSS中的结构,

OSS中只有两层目录,本地文件的第三层目录的名称是被直接插入到数据文件的头部保存在OSS上的,这是期望的行为吗,如果我未来有从OSS迁移回本地文件系统的需求是会不会遇到问题。

以上就是我所遇见的问题,我知道问题有一点多:laughing:,希望可以得到大家的帮助,提前感谢大家并祝愿Seafile越做越好,长长久久!


#2

你有看过本地存储类型和云上的存储类型吗?只管看block和数据大小不管用,不同技术,数据存在的大小不一样,lustre raid 单盘挂载的也好,nfs ext3 ext4 存完1G都显示不同大小。最靠谱的用hash校验,或者MD5校验下