最近,家里的黑群晖其中一块硬盘出现了两个坏道,不过还是可以正常工作的,但是为了数据安全,我还是把这块硬盘上的数据做了迁移,迁移后所有数据安然无恙,完美替换了之前的坏道硬盘。(我的所有硬盘都是非raid方式组建的,所以这种方式只适合非raid方式并且硬盘还能继续正常工作的情况下,当然 raid方式有独有的迁移方式,部分情况也可以像我这么做,只是在多盘的情况下问题会变得复杂一些)

在制定迁移方案前,首先分析下我的硬盘数据主要分哪几块?

一、群晖的所有套件

二、所有硬盘中共享存储区域文件夹以及文件

三、docker容器(包括比较特殊的gitlab)

这三块内容其实有重叠部分,那就是docker文件夹,这个文件夹其实完整保留了docker的容器数据,包含镜像文件,但是并不保留容器实体,也就是群晖gitlab的所有数据其实都保存在这里,唯一不保存的只是docker容器的一些端口映射或者环境变量而已,鉴于这一点,如果我们容器参数不是默认的,我们只需在新的硬盘上重新运行容器配置下容器的参数即可,其他什么都不需要做。

群晖自带了一款非常不错的软件,hyper backup,它可以备份所有系统配置、所有的共享存储文件夹,主要套件配置信息(包括moments,node station,office等等),所以一旦备份了所有文件夹,也就备份了docker容器中的数据,在新的硬盘中只要重新安装docker,运行容器并和原来的配置保持一致就可以几乎完美的备份还原,剩下的就是时间问题。

下面进入hyper backup套件执行备份,备份要选择一块硬盘的一个文件夹

选择本地文件夹和usb或者选下面的单一版本,区别就是第一个有版本控制(也就是增量备份),其他的远程备份都不太合适。因为数据量太大,最好是本地备份
选择一个其他盘的备份目的地文件夹
选择有问题的那个磁盘的所有文件夹
选择你需要备份的套件配置数据,我这里全部勾选
这边默认即可
默认即可

备份需要等待一段时间,主要看你需要备份的数据多大,耐心等待即可。

docker如果不想重新做配置容器,可以对容器单独导出,当然gitlab三个套件是无法导出的,因为没有权限,这里可以不同管,在新的硬盘上重新安装即可,gitlab的数据不会丢。

这里导出后,后面执行导入就能完整还原

完成后关机拆下坏硬盘,装上好硬盘,开机,先进入存储空间管理员套件初始化磁盘,在该磁盘中建立文件夹,和旧硬盘的文件夹保持一致,如果你不建立文件夹,还原数据时默认使用存储空间的第一个硬盘并自动建立文件夹执行还原,如果建立了文件夹,就会把数据还原到这些文件夹中,也就是还原到了新的磁盘中。所以这一点切记!!!!

还有下面套件的默认安装空间改成新硬盘的存储空间。

进入套件中心安装套件hyper backup,然后执行还原操作,还原需要等待一段时间,还原后,进入套件中心,所有套件执行修复,无法修复的卸载重装。做完这一切,docker的容器该导入的导入,该重新运行配置的重新运行,数据都在docker文件夹下,所以重新从镜像执行或者导入之前备份的容器都不会丢失数据,gitlab套件重新安装运行。cloud sync重新配。

这里的cloud sync如果配置丢失就重新配置下,会重新同步。

一些比较重要的套件如moments、node station、office、audio station 、video station 只要执行了还原,那重新安装后,就可以做到完美还原,数据也都不会丢失。经过以上操作就基本上对坏道硬盘做了完美迁移。

当然迁移的方式不止这一种,例如,我们可以做pe u盘运行软件做整盘克隆,这种方式更彻底,所以迁移的方式千千万,选择一种合适自己的就行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注