作者:冥冰薇
一、最重要的数据盘挂掉了!!
之前一直和大家强调保护nas热数据的重要性,因为群晖里面常用的热数据绝大多数都是你在nas里面部署的服务。这些服务一旦挂掉,可能会连累到整个系统服务,不过得益于群晖对于基础系统在所有硬盘上做了raid1,即便挂掉了几块盘,只要还有一块硬盘存活,那么整个系统就不会立刻崩掉,你还有时间进到群晖的系统抢救数据。
果然,淹死的都是会水的。
各位喜闻乐见的环节到了,今天就给大家看看热数据不做raid1是个什么下场。
大概是几天前的早晨,冬天醒来嘛,第一件事肯定是不想起床,拿起手机翻一翻新闻啊,看看小说有没有更新呀之类的。我习惯性的点进去阅读页面,准备看看小说。结果死活进不去,我脑子一激灵,是不是我的all in one服务器又boom掉了?然后打开了另一个APP,发现网络正常,难道是黑群崩了?然后看了一下我的群晖SMB共享,发现可以正常查看文件,那是哪里出问题了呢?
看着文件列表,突然发现不对,发现少了很多文件夹!然后迅速打开电脑,发现群晖右下角出现了红色的警告,心里暗道不妙,果然打开存储管理器,发现存储热数据——也就是套件和docker数据的SSD硬盘掉盘了!!!群晖直接提示缺失硬盘。
怀着侥幸心理,我把整个服务器重启了几遍,终于在第五次,群晖又认到了盘,但已经回天乏力,提示系统分区损毁,整个存储池进入只读模式,而且这个系统分区损坏是不可恢复的!(小tip:群晖提示系统分区损毁,请先查看存储管理器首页是否有提示修复,如果出现修复选项,代表该硬盘上的系统分区是可修复的,点击修复后数据是不会丢失的)
然后我查看了群晖官方文档,发现这种情况只能是回天无力,必须迁移处于只读模式的存储池数据后,删除存储池来消除系统警告提示。
二、抢救数据
值得庆幸的是,黑群上没有放什么重要的套件数据,虽然nastool套件在这台机子上,但是有一个月之前的备份,回滚一下,问题不大。唯一需要迁移的就是docker数据,但是奈何docker套件也是安装在这个存储池,也就意味着现在不能用群晖常规迁移docker数据的方法(即使用导出docker容器)来迁移了。
情况比较紧急,因为硬盘随时有可能继续挂掉。也懒得想什么骚操作了,当机立断,把docker文件夹整体复制到了群晖的机械硬盘阵列中,幸好中间没出什么问题。
上午在京东自营购买了新盘,下午到货接上后。开始从套件中心挨个把套件下载安装回来,费了不少时间,即便大部分套件只需要简单修改配置,但架不住数量实在太多。docker的话,先在新存储池上新建一个docker共享文件夹,把之前迁移的docker数据整体复制进去,然后就只能一个一个把docker容器再建起来。虽然说,只要所有文件映射进新的docker容器里面来,也就不需要额外配置即可恢复服务,但隔的时间太长,大部分容器所需要的参数已经记不住了,还得一个一个去翻docker hub或者作者GitHub上的说明,费了好大力气。
三、返修旧盘+购买新盘
当天早晨发生掉盘后,立马在京东申请了返修,这块坏掉的硬盘是两年多前一块小主机上装的msata硬盘,480G容量,闲置后,我用了masta转SATA转接器将其接到了nas上。这块硬盘是三年保修,京东自营售后快的这点优势就体现出来了。我上午上传了硬盘掉盘的照片,申请返修,很快供应商就审核通过,下午快递员就取走了坏盘。本来以为会返厂维修,毕竟页面提示是京东自营&供应商售后,不过在第二天晚上到达京东备件库后,京东立马生成了换新订单,重新计算了保修,第三天上午就到了,和另一块新买的SATA固态组了raid1。要不是这次掉盘恢复数据比较麻烦,换了重新计算保修的新盘本来还是挺开心的。
另一块新购买的盘这里就不赘述了,之前的文章里面已经多次推荐过了,说几个关键参数就好:移速480G固态硬盘,质保为320TBW,保修五年,页面提示为京东自营&售后。可以说,质保条款非常好,但是里面盘体本体可能不尽如任意,毕竟到手价只有145元,这种盘主要做好数据备份,还是很好用的。
四、经验教训
4.1 重要数据所在盘一定要做好raid1
这其实也是为什么群晖系统设定必须是raid1阵列才能开启nvme固态硬盘缓存,那些正在下载的影音文件之类的中途缺失了还能重新下回来,但类似于套件和docker这些热数据,一旦硬盘挂掉,不仅会影响它们提供的服务,可能还会直接系统整体的稳定性以及其他数据的存储,最差的情况就是可能会丢掉所有数据。
因此我在之前的文章里面也强调,将热数据放进固态硬盘里面,虽然可以有效降低机械硬盘带来的噪音,但一定要做好raid1,至少双盘raid1,保证一块盘坏掉的情况下,系统整体数据的完整性。
4.2 docker部署命令也需要做好备份
这次恢复docker容器的一个深刻教训就是,当时部署docker时的参数或者命令最好都保存下来。不然,在恢复容器的时候,再去一个一个找实在太麻烦了。
这里我还找到了一个docker命令备份的好方法,也非常适合容器恢复,那就是利用群晖的计划任务来存放docker部署命令,而且将docker部署命令放入计划任务之后,以后随时可以一键在计划任务里面部署,也不需要ssh连接群晖,非常方便。具体教程之后会统一放在群晖的docker部署教程里面,这里仅提供示例。
4.3 重要但不常用的套件最好不要放一块
类似于Active Backup for Business这类备份套件,尽量不要放在热数据盘里,因为只要固态硬盘挂掉,这些套件本身也会跟着挂掉。虽然在机械硬盘存储的快照可以不依赖套件直接获取时间线,从而恢复数据到某一个时刻,但始终不如直接使用备份套件本身恢复数据来的方便。
五、总结
今天给大家展示了一个我的反面案例,虽然没有大面积的数据丢失,但恢复数据整整折腾了三天时间,非常耗费精力。而且重新部署套件和docker非常恶心人。希望我的教训可以帮助到大家。
永远记住:“硬盘有价,数据无价”。
力所能及的情况下,请尽可能保护重要数据的安全!
这就是本期的全部内容了,如果这篇文章对您有帮助的话,欢迎您在评论区多多讨论,也欢迎关注、点赞、打赏一键三连,您的支持是我创作的动力。
我是冥冰薇,我们下期群晖tip再见。
原文链接:https://t.cj.sina.com.cn/articles/view/1823348853/6cae18750200182sr?autocallup=no&isfromsina=no