• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

群晖“存储空间已损毁“修复小记

Data: 2020-06-20 09:34:39Form: JournalClick: 5

环境

1.宿主机unraid,虚拟机黑群晖(3617xs,DSM 6.2.3-25426 Update 3,直通hba直通sata)

2.除第一块装系统的固态是btrfs,其他存储空间都是basic+ext4

问题

最近不知为什么好几个存储空间同时报损毁,几个硬盘完整smart检测后没有问题(无坏扇区坏道)。按提示修复后,仍然有一个存储空间报损毁(西数18T单盘),下面的文件都在,不过是只读,不可删除、新建。重启同样报错,且没有”修复“提示了。

解决

  1. 先备份数据(下下策只能格式化重建存储空间,把数据再拷贝回来)

  1. 使用命令fdisk -lu确定"损毁"存储空间是哪个

我的存储空间是/dev/md7

  1. 关机,拔掉"坏盘"

  1. 开机,系统启动后fdisk -lu查看此时的硬盘

  1. 插上坏盘,fdisk -lu查看此时的硬盘,多出的那个就是"坏盘"

我的是/dev/sdn(注意每次重启,硬盘文件名都会变化,以当前为准,不能用重启前的

  1. 运行命令:

mdadm -Cf -e1.2 /dev/md7 -n1 -l1 /dev/sdn3
 

-e后面是版本(可以通过mdadm -D /dev/md7查看version)

7.完成重建后,可以做个检查

mdadm -D /dev/md7
 

8、重启机器

此时,不再报存储空间损毁,但是那个存储空间状态为"系统分区不可用"。回到概览那里,有修复提示了!!!点击修复,此时可以通过命令查看RAID同步的过程

root@ds3617:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [raidF1]
md7 : active raid1 sdk3[0]
      17573506048 blocks super 1.2 [1/1] [U]
     
md2 : active raid1 sdf3[0]
      971940544 blocks super 1.2 [1/1] [U]
     
md4 : active raid1 sdn3[0]
      17573506048 blocks super 1.2 [1/1] [U]
     
md3 : active raid1 sdl3[0]
      7809204544 blocks super 1.2 [1/1] [U]
     
md5 : active raid1 sdm3[0]
      3902196544 blocks super 1.2 [1/1] [U]
     
md1 : active raid1 sdn2[4] sdm2[3] sdl2[2] sdk2[1] sdf2[0]
      2097088 blocks [24/5] [UUUUU___________________]
     
md0 : active raid1 sdk1[12] sdf1[0] sdl1[2] sdm1[3] sdn1[4]
      2490176 blocks [12/4] [U_UUU_______]
      [======>..............]  recovery = 32.5% (810560/2490176) finish=0.1min speed=202640K/sec
     
unused devices: <none>
 

第3行,重启后md7对应的硬盘文件又变成/dev/sdk了,之前是sdn

 

上次命令方式修复该问题不彻底,把机箱拆开改造了一番:

1.把hba换成了2008(比2308功耗低、发热更低),散热块上加了个4cm风扇

2.数据线,电源线也检查了一番,该换新换新

3.一些芯片上贴了纯铜散热片

4.内部增加涡轮风扇吹风

5.下载盘使用2T固态,替换掉原来的8T银河

硬件改动之后,hba连接的硬盘不再报损毁,就这样正常运行一个月。

为了让机械盘休眠,黑裙设置了定时关机,宿主机设置了定时开启(一天启停一次,怀疑就是启停导致的;有数据在跑,然后被关机,导致硬盘出问题?)

然后,第一块装系统的固态报“存储空间损毁”(volume1;存储池、硬盘状态都是良好;该盘内文件变成只读;套件全都不可用),其他盘都正常。

因为该固态是在机箱内接主板sata,无法像机械盘那样热插拔,上篇修复办法失效(需要把硬盘;得拆机,嫌麻烦)

试过的几种办法:

1.没用:上篇

2.没用:pe系统,使用DG克隆硬盘-扇区复制(第一分区2.4G,用其他正常盘的覆盖过去)

3.没用:pe系统,格式化第一分区

4.没用:lsof(参考),volume1变成只读,无法安装

最后还是笨方法:

1.备份/volume1

cp -r /volume1 /volume2/备份目录
 

2.删除存储空间

3.删除存储池

4.pe系统把盘格式化

5.进入群晖,重建存储池-存储空间

6.装回套件(黑裙主要跑pt,存影音资料,所有只有docker、qb、tr、iyuu等)

7.qb、tr种子拷回去(保种只用tr,所以只拷了tr种子)

cp -rf /volume2/备份目录/transmission/resume /volume1/@appdata/transmission/var
 
cp -rf /volume2/备份目录/transmission/torrents /volume1/@appdata/transmission/var
 
cp -rf /volume2/备份目录/transmission/blocklists /volume1/@appdata/transmission/var
 
cp -rf /volume2/备份目录/transmission/setting.json /volume1/@appdata/transmission/var
 
 

注意原备份的owner是root,权限是只读,需要改权限

root@ds3617: cd /volume1/@appstore/transmission/var
root@ds3617:/volume1/@appstore/transmission/var# chmod 777 ./resume/ -R
root@ds3617:/volume1/@appstore/transmission/var# chmod 777 ./torrents/ -R
root@ds3617:/volume1/@appstore/transmission/var# chown -R sc-transmission:transmission ./resume
root@ds3617:/volume1/@appstore/transmission/var# chown -R sc-transmission:transmission ./torrents
 

8.刷新qb、tr页面,种子就出来了

 

怀疑“存储空间”损毁,而硬盘检测又没问题,大概率是硬盘运行环境原因(散热、电源线、sata接口等)

另外把黑裙启停任务关掉,跑跑看吧,群晖太不省心了,心累~

 

另一方法:

# 登录后先获取最高权限
root@DiskStation:~# sudo -i
# 检测存储池状态
root@DiskStation:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid1 sdf5[0](E)
      45495040 blocks super 1.2 [1/1] [U]
     
md3 : active raid1 sde5[0]
      129386432 blocks super 1.2 [1/1] [U]
     
md1 : active raid1 sdf2[1] sde2[0]
      2097088 blocks [16/2] [UU______________]
     
md0 : active raid1 sde1[1] sdf1[0]
      2490176 blocks [16/2] [UU______________]
     
unused devices: <none>
# 执行命令停止使用存储池
root@DiskStation:~# synospace --stop-all-spaces
# 扫描并安装所有存储池
root@DiskStation:~# mdadm --assemble --scan
# 如果一直无法停止就使用下面的命令停止
root@DiskStation:~# synopkg list --name | xargs -I"{}" synopkg stop "{}"
# 查看Error的存储池信息
root@DiskStation:~# mdadm -D /dev/md2
/dev/md2:
        Version : 1.2                                # 需要注意这个
  Creation Time : Mon Nov 13 22:01:19 2023
     Raid Level : raid1
     Array Size : 45495040 (43.39 GiB 46.59 GB)
  Used Dev Size : 45495040 (43.39 GiB 46.59 GB)
  ...
 
           Name : DiskStation:2  (local to host DiskStation)
           UUID : 71f36d89:5cffbd8g:08481f9n:37050900        # 需要注意这个
         Events : 3
 
    Number   Major   Minor   RaidDevice State
       0       8       85        0      active sync   /dev/sdf5   # 需要注意这个
# 停止异常的存储池,参数解释:f强制S停止
root@DiskStation:~# mdadm -Sf /dev/md2
 
# 创建新的raid设备,参数解释:C创建f强制e元数据格式n磁盘数量l raid等级u uuid,这里的uudi需要变更,不能和上面一致,把上面的复制下来随便改几个数字就行
root@DiskStation:~# mdadm -Cf /dev/md2 -e1.2 -n1 -l1 /dev/sdf5 -u71f36d89:5cffbd8g:08481f9n:37050965
 
# 重启设备
root@DiskStation:~# reboot
 
# 启动存储池
root@DiskStation:~# synospace --start-all-spaces
 
登录群晖面板,如果发现此时存储池由损毁变成只读,需要手动转换
 
 
# 启动所有停止的套件
root@DiskStation:~# synopkg list --name | xargs -I"{}" synopkg start "{}"

 

参考

群晖系统硬盘损毁的修复

无法访问系统分区,没有修复按钮

Name:
<提交>