如何把群晖NAS上的套件搬到另外个硬盘上

群晖NAS如果不做RAID,那么一旦安装系统套件的硬盘损坏,由于群晖没有提供备份套件的功能(不是套件对应的数据,而是套件自身运行需要的数据库配置等文件),重装套件会丢失过去的数据,往往会带来很麻烦的后果。这里讨论一个第三方应用来搬移套件。

前段时间闲鱼收的二手NAS DS216J上,插了2块希捷硬盘,后来京东搞活动,忍不住买了个希捷3T的,更换了一块,于是上面有一个1T一个3T的,自然没法做RAID。

后来1T硬盘上开始出现坏扇区告警提示,从几十个到上百个。由于上面的套件最初都是装在这个硬盘上的,于是开始折腾把套件转到另外个硬盘上。

遗憾的是,搜索了一大圈,发现这么多年来群晖始终没有提供官方的套件搬移工具,在官网论坛上有个多年前的帖子,上面无数人呼吁要求这个功能,但是始终没有官方响应。现在如果你要搬迁某个套件从A盘到B盘,只有一个办法,删除,重新安装。对于不少功能来说,这是灾难性的,比如Cloud Sync,假设你在某个云端硬盘上同步了一大堆文件,比如100G,一旦删除并重新安装Cloud Sync并且重新建立同步任务,所有的100G文件,会全部重新上传一次,我曾经拿Cloud Sync备份过700G的文件到百度网盘,这个同步任务真是不想再来了。

广告

受到影响的还有Cloud Station Server,你所有的文件修改历史版本都会被清除,还有Hyper Backup、也需要重新建立任务。

其实这里关键的,就是这些套件的数据库没法搬迁。

后来在上面提到的那个帖子后面,有个人提供了自己写的工具,Mods Package Manager,可以在不同硬盘之间移动套件。在套件中心设置里,套件来源设置为http://olympe.letroye.be/sspks即可安装这个套件,安装完后界面如下。(PS:有网友提出这个已经更新到下面这个链接了,https://www.beatificabytes.be/sspks,请各位试试,于 2020/3/6

上面两栏分别是当前不同硬盘上套件的名称,你可以在选择后并同时选择Target Volume,设置搬迁目的地。

大部分搬迁过程是顺利的,但是碰到有些套件无法成功搬迁,比如这个:

只能删除重新安装。

又过了个把星期,这个硬盘终于彻底歇菜了。

然后发现,涉及到数据库的应用,都无法启动。。。

想去折腾一下的,看看这个有些复杂了,正好我当时有个系统的版本升级没做,死马当活马医,系统更新了一下,结果奇迹发生了,数据库正常启动了。

但是Cloud Station Server无法启动,一运行就是这样:

只能重新删除,而且试了几次发现,普通重装都不行,必须把过去的数据库全部删除才行,也就是勾选下面的选项。。。

重装后客户端的应用也需要重新删除原有链接,重新做一次,然后所有的数据重新会再备份一次。

不过好在其它应用看起来还正常。

后来发现上面的Mods Package Manager做了一次更新,不知道是否有些改善。

当时还看了一个办法,就是通过按机箱背后的Reset键重置系统来重新安装系统软件,不过没敢试。

咨询了一下群晖官方,说是不会删除数据库,好吧,先mark吧。

坏的那块希捷1T硬盘一直就没管它,结果系统老是提示有硬盘故障,于是关机把它拆了下来,然后发现这个硬盘的保修期是2011年11月,所以推测大概是2009年买的了,差不多工作了10年,也算是可以了。

这事得到几个经验:

  • 平时NAS上的数据最好还是用Hyper Backup备份到外置的移动硬盘上,特别那些有数据库的应用;
  • 网上经常有人问:两盘位的群晖NAS是否有必要做RAID,很多人给出建议是不用,方法是用同步的方法同步一块硬盘数据到另外一块上去。
    这个方法我之前也是赞成的,因为看起来这样可以使用的空间大了(比如有些电影文件可以不用同步到第二块硬盘)并且灵活性也大了,但是群晖的NAS正常工作是需要系统和数据库的,碰到其中一块损毁并且涉及数据库的应用正好安装在那块硬盘上,需要做的工作量就相当大了。所以我的建议是能够做RAID,就尽量做吧。
  • 如果就是不想做RAID,那就最好尽量减少使用群晖一些涉及数据库的套件,比如Cloud Sync之类的,否则你如果过度依赖这个功能,碰到硬盘损毁,同步工作是相当耗时的。