Windows Server 2012 R2 存储池硬盘损坏处理

在Windows Server 2012 R2系统创建的存储池使用至今差不多2年了,终于在前几天出现了故障。因为硬盘用的是2个淘汰下来的WD500G SATA旧硬盘,创建存储池的原因就是为了将淘汰下来的旧硬盘继续发挥作用,用到彻底坏了再扔掉。

存储池:Mirror (镜像)模式,2个WD500G物理硬盘。

放在存储池里的Hyper-v虚拟机有如下:

    • CentOS 7 部署了 WordPress 与 NextCloud
    • LEDE + KMS激活服务

用了这么长时间,真没有去关注过硬盘的健康状态。直到前几天发现Hyper-v里的CentOS 7 与 LEDE 都无法自动启动了,手动启动又能正常启动,都还没有去怀疑硬盘有问题。正因前几天是春节期间,并且这段时间由于新型冠状病毒肺炎的影响,不出门,不聚会 … … ,所以时间不知道怎么打发了,才想着折腾一下搞个Onlyoffice服务器试试看好不好玩。在拷贝虚拟磁盘文件到存储池的时候,发现怎么写入速度奇慢无比,一开始还能100MB/S左右,然后一下子速度掉下来之后10MB/S,再然后只有1MB/S左右的速度。什么情况?难道存储池写入速度就是这么垃圾的吗?不可能,因为存储池是Mirror镜像模式,就是Raid1模式,读取与写入速度跟单盘没有区别或区别很小的才对啊。

肯定硬盘出问题了!

马上找到HDTune检测一下,发现有一个硬盘果然出问题了。

正好,本来一直觉得500G的存储池太小,一直都想要不要弄1T的比较实用一些,如果说现在是更换1T的机会来了,不如说2T的更实际些。但是现在门也不给出,貌似快递很多都还没有上班,自己也没有空闲的2T硬盘。到处找了又找的,找到了2台旧机的ST500G,正好试验一下存储池的硬盘损坏了,到底要怎么恢复数据的。

实际上我确实不知道怎么恢复数据。

上图所示,损坏的存储池,出现三角形感叹号标示(已降级)

我直接把损坏的硬盘拆下来,然后装上一个已经删除所有分区的ST500G硬盘。然后右键点击虚拟磁盘hyperVhdd,会有修复的选项,点击修复之后进度条一闪而过,根本就没有修复好不好!!现在存储池的 盘符E 还是可以正常打开的,里面的数据还是可以访问读取的。但是要怎么恢复正常的存储池呢?难道要将正常的ST500G添加进来才能修复,我马上添加进来,再点击删除已经拆掉的坏盘,但无法删除。

然后又尝试点击修复,也是进度条一闪而过,根本就无法修复。坏盘也无法删除,什么鬼存储池,根本无法操作。然后回到磁盘管理 – 右键点击虚拟磁盘hyperVhdd – 脱机,再进入存储池再右键点选虚拟磁盘,修复选项无法点击了。我尝试重启Windows server 2012 R2 ,再次进入存储池,还是脱机状态,再右键点选虚拟磁盘,却无法使它联机了,这就完蛋了!!!数据我都没有拷贝出来,完了!!

虚拟磁盘E,现在没了。赶紧关机,拆除没有损坏的另一个WD500G,接到另一台电脑用 DiskGenius 打开发现怎么也是读不了数据?头都大了!!虽然NextCloud的资料我工作电脑是有同步的,数据丢不了太多,但是所有的系统与配置还有LEDE的所有都要重新安装配置,这也得要耗上1整天时间才能调教好吧?并且现在已经是北京的时间凌晨三、四点了。还得赶紧的搞好,不然连网络都没法用,因为LEDE也在这个存储池的虚拟盘上运行的。

然后我又把未损坏的WD500G接到工作电脑的Windows 10 LTSC上,可以直接识别到存储空间,但是跟2012R2上面一样,无法读取数据,无法联机装载磁盘,无法修复。百度了一段时间,相关存储池的资料很少并没有帮助,唯一就只能删除存储池!!!没办法的,只能这样子了,因为天差不多要亮了。

删除存储池!然后再用 DiskGenius 搜索丢失分区表!

奇迹来了,搜出分区表了。本来之前存储池分区结构就是一块500G的分一个盘,没有删除存储池之前在 DiskGenius 里发现是只有2个分区的,一个是MSR分区,另一个叫什么NTFS什么来着我大概也忘了。现在搜索到的是物理磁盘开头与结尾很小的两节空闲的未分区空间,中间的是存储池分区NSFS,数据都还在,保留了这个分区表,然后将数据全部拷贝了出来!!!

天早已经亮了,现在是早餐时间,小朋友们都起床吃早餐了,正好我已经饿到差点不想吃了。重新装好正常的硬盘,重新创建存储池,再将数据拷贝进去,趁着拷贝数据的时间,先去吃饱肚子再说。

填饱肚子之后,继续折腾,反正天也亮了,虽然累但好像这些天都不会到处去哪里。

测试启动虚拟机,LEDE正常启动,但是CentOS7启动的时候报错,当时由于处理问题赶时间没有截图。于是我再将虚拟磁盘上面的CentOS7的数据删掉,放到另一个物理磁盘单盘再导入测试,也是折腾了几回才正常导入运行了。

因为当初创建hyper-v虚拟机时,虚拟磁盘目录结构如下:

虚拟磁盘放在VHDX这个文件夹

导入虚拟机的时候

    • 如果选择D:\HyperVhdd-bak\2019CenOS731611这个目录会找不到虚拟机
    • 如果选择D:\HyperVhdd-bak\2019CenOS731611\2019CenOS731611这个目录能找到虚拟机但是找不到虚拟磁盘。需要手动浏览到VHDX目录,并且如果有检查点的,还要一个一个的浏览到AVHDX文件!!

后来重新导出虚拟机的目录结构如下:

正确的目录结构,导入虚拟机时直接选择2019CenOS731611,即可正常导入虚拟机。但是有时候总会给一点报错,让你崩溃的。比如我之前的虚拟机是2019CenOS731611的无法正常启动了,我肯定把它删除了,然后再重新导入备份的虚拟机,但是他会提示虚拟机唯一ID相同,无法就地注册虚拟机。几百GB的数据拷贝好了,你居然说无法就地注册虚拟机,难道又得拷贝几百GB的数据到其他位置注册?后来我重启Windows Server 2012R2之后,再次导入就地注册,正常了!!

现在我真觉得Windows的东西都是非常能把人折腾到没有脾气的,因为Hyper-v虚拟机我导入了很多次都会出现很多小问题的,不是这里报错就是那里报错,简直能够把人搞疯掉。

好吧,还是必需再次重演一次

Mirror(镜像模式)的存储池其中一个硬盘损坏之后,该怎么修复

如果同时2个物理硬盘损坏,那就只能去买彩票了。当损坏一个物理硬盘的时候:

    • 首先第一件事就是将所有数据拷贝出来!!!
    • 然后,再添加新硬盘修复。

修复存储池步骤如下:

一、发现其中一个硬盘损坏,关机把损坏的硬盘拆掉,装上一个同容量或更大容量的硬盘。

二、然后开机,使用PowerShell命令将坏硬盘退出:

1、Get-physicaldisk  /*列出所有物理硬盘信息*/

此时我们可以发现刚才拆掉的损坏的旧硬盘,显示状态为lost communication

2、Set-physicaldisk –Friendlyname “physicaldisk-1” –usage retired  /*把physicaldisk-1退出*/

然后在存储池管理页,刷新一下,确认已退出

3、然后添加物理硬盘进来

4、最后点击修复

正常情况,就会出现修复进度条,这是一个漫长的修复等待过程。

三、修复完成之后,最后将损坏的那个磁盘 Physicaldisk-1 删除。

实际上我建议别去修复,宁愿重新建立存储空间,再将数据拷贝到新的存储空间。

因为我已经测试了,即使数据只有几十GB,修复时间都很长,比拷贝出来再次写入都要耗得多的时间。并且修复还不一定会成功,因为Windows就是有太多不确定的因素了。

实际上我测试修复成功了,耗了不少时间重演了一次修复过程。成功了,感觉非常愉快。

但是只用了2天,可能还不够2天,一个ST500G又损坏了!TMD这也太倒霉了吧!!!难道是由于修复的时候,硬盘累坏了?还是因为那个硬盘本来就在一个潮湿恶劣的环境呆得太久的原因,不得而知!

再次重新表演修复,步骤绝对的没有错,但是无法修复了!!!也许可能是我用了两个ST500G的重新组的存储空间,将之前未损坏的WD500G拆出来,现在又将WD500G的所有分区以及数据删除,添加然后修复失败(本来之前就用过的物理磁盘)点击修复,进度条一闪而过,无法修复。使用PowerShell命令一样无法修复,最后放弃!!!

所使用的一些PowerShell命令:

/*列出所有物理磁盘信息*/
Get-physicaldisk

/*停用物理磁盘*/
Set-physicaldisk –Friendlyname “physicaldisk-1” –usage retired

/*列出所有虚拟磁盘信息*/
Get-VirtualDisk

/*修复虚拟磁盘*/
Repair-VirtualDisk -FriendlyName VD1

发表评论

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