31
2024
05
10:15:36

分享VSAN磁盘无法识别的故障解决方法

尝试各种方法,都无法格式化磁盘!

首先,如果你在创建VSAN集群的时候,发现在单个主机上的Storage Adapters/Storage Devices都能够看到的JBOD模式下的单个磁盘,却在VSAN集群的磁盘管理中却无法看到的问题。在vCenter中,选择该磁盘,选择擦出磁盘分区,打开后没有显示有任何磁盘分区,点击确定,就会报错,根本无法擦出磁盘分区。

其次,无论你是使用Windows系统安装盘启动,去格式化磁盘时,发现是Offline状态的磁盘分区,还是使用dd命令去清空设备分区表,全部都失败。

通过挂在ISO启动,进入磁盘管理,无法格式化磁盘

使用dd命令去擦除磁盘分区,竟然也会报错:

[root@localhost:~] dd if=/dev/zero of=/dev/disks/naa.5000c500c1e94fbf bs=1024K count=1
dd: can't open '/dev/disks/naa.5000c500c1e94fbf': Function not implemented

[root@localhost:~] dd if=/dev/zero of=/dev/disks/naa.5000c500c1e94fbf:1 bs=1024K count=1
dd: can't open '/dev/disks/naa.5000c500c1e94fbf:1': Function not implemented
[root@localhost:~]

使用partedUtil命令,也无法获得正常的信息:

[root@localhost:~] partedUtil get /dev/disks/naa.5000c500c1e973eb
Error: Can't have a partition outside the disk!
Unable to read partition table for device /dev/disks/naa.5000c500c1e973eb
# 上面这个命令如果正常的话,应该看到磁盘有多少个分区,结果竟然报错啦!

[root@localhost:~] 
[root@localhost:~] partedUtil get /dev/disks/naa.5000c500c1e973eb:1
875249 255 63 14060875777
[root@localhost:~] 
# 上面的这个,好像是个孪生的分区一样,可以获得分区的大小等相关信息;
# 到此,我开始怀疑,是不是磁盘硬件出问题了呢?
# 事实上,当然不是磁盘坏了!

接下来,咱们聊一聊一个磁盘从未被使用过的状态,应该是这样的:

[root@localhost:~] ls -la /dev/disks/
total 27892935110
drwxr-xr-x    2 root     root           512 Jul 16 08:47 .
drwxr-xr-x   19 root     root           512 Jul 16 08:47 ..
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e9325f
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e939d3
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e93d1f
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e93fbf
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e973eb
-rw-------    1 root     root     1800360124416 Jul 16 08:47 naa.5000c500c1e99f7b
-rw-------    1 root     root      240057409536 Jul 16 08:47 naa.55cd2e4151cf8f8b
-rw-------    1 root     root      240057409536 Jul 16 08:47 naa.55cd2e4151cf8fe4

我们的故障信息看到的磁盘是这样的,基于这个磁盘创建的分区,远远超过了单个磁盘分区的大小,差不多是RAID6的容量:1.64 TB x 6 x (2/3) = 6.56 TB (6.55TB)

分析上面的情况,可以判断,之前这些磁盘使用RAID6做过盘,因此,磁盘上的分区信息不是空的,正式这个信息影响了磁盘的正常使用。

实际上,解决方法,也并不复杂,只需要把这个坏掉的分区表重新写一下分区格式即可

# 分区表损坏的状态,可以看到一个无法管控的分区
[root@localhost:~] ls -la /dev/disks/| grep 94fbf
-rw-------    1 root     root     1800360124416 Jul 16 08:54 naa.5000c500c1e94fbf
-rw-------    1 root     root     7199168397824 Jul 16 08:54 naa.5000c500c1e94fbf:1
lrwxrwxrwx    1 root     root            20 Jul 16 08:54 vml.02000000005000c500c1e94fbf535431383030 -> naa.5000c500c1e94fbf
lrwxrwxrwx    1 root     root            22 Jul 16 08:54 vml.02000000005000c500c1e94fbf535431383030:1 -> naa.5000c500c1e94fbf:1
[root@localhost:~] 
# 通过mklabel修改分区类型,命令执行成功
[root@localhost:~] partedUtil mklabel /dev/disks/naa.5000c500c1e94fbf msdos
[root@localhost:~] 
# 在去查看该磁盘的分区信息,发现那个无法管控的分区信息消失啦!
[root@localhost:~] ls -la /dev/disks/| grep 94fbf
-rw-------    1 root     root     1800360124416 Jul 16 08:54 naa.5000c500c1e94fbf
lrwxrwxrwx    1 root     root            20 Jul 16 08:54 vml.02000000005000c500c1e94fbf535431383030 -> naa.5000c500c1e94fbf
[root@localhost:~] 
# 再通过命令去读取分区信息,终于不在报错啦!
[root@localhost:~] partedUtil get /dev/disks/naa.5000c500c1e94fbf
218881 255 63 3516328368
[root@localhost:~] 
# 查看磁盘分区,确实恢复正常了,成为了一个没有分区的裸磁盘!
[root@localhost:~] ls -la /dev/disks/| grep 94fbf
-rw-------    1 root     root     1800360124416 Jul 16 08:55 naa.5000c500c1e94fbf
lrwxrwxrwx    1 root     root            20 Jul 16 08:55 vml.02000000005000c500c1e94fbf535431383030 -> naa.5000c500c1e94fbf
[root@localhost:~] 
# 大功告成!

最后,回到vCenter的这台主机中,寻找这个磁盘,对其执行磁盘擦除分区的操作,执行成功!再回到VSAN磁盘管理,可以把磁盘添加进来啦,一切恢复正常!




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/6382.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: