【Azure Fabric Service】Service Fabric 节点 Error:数据盘挂载失败与 CHKDSK 修复 - LuBu0505/My-Code GitHub Wiki

问题描述

Service Fabric服务的其中一个节点(Node 0) 报错 “ Service Fabric data drive for "dataPath":D:\SvcFab may not be available. Check whether the drive is mounted correctly. Error: System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:'” 从错误信息来看,是 D 盘无法正常挂载,D:\SvcFab 等依赖目录会不可访问,最终节点配置会持续失败。

问题解答

第一部分:D 盘不能挂载成功,为什么要先执行 CHKDSK

这类故障的核心不是“Service Fabric中的应用配置失败”,而是“数据盘不可用”。一旦 D: 盘没有成功挂载,D:\SvcFab 就会不可访问,随后出现节点配置卡住、扩展持续重试等连锁反应。

常见日志如下:

Service Fabric data drive for "dataPath": D:\SvcFab may not be available.

System.IO.DirectoryNotFoundException:

Could not find a part of the path 'D:'

首先,需要确认 Azure VM 上的数据盘是存在,只是在系统里表现为卷异常、盘符异常或目录不可读,这种情况下,就需要进入文件系统层排查。

CHKDSK 的作用是检查并修复卷的逻辑错误(/f),并在需要时扫描坏扇区尝试恢复可读数据(/r)。

因此,这里的操作顺序应是:先确认 D 盘挂载异常,再执行 CHKDSK,而不是先动应用层配置。

建议命令:chkdsk D: /f /r

注意:/r 扫描时间长,生产环境执行前应预留维护窗口,并确认备份或快照可用。

第二部分:CHKDSK 执行步骤

步骤 1:登录节点并确认权限

使用 RDP 登录故障虚拟机,确认当前账号具有本地管理员权限。

步骤 2:执行 CHKDSK

chkdsk D: /f /r

参数说明:

  • /f:修复文件系统错误。
  • /r:扫描坏扇区并尝试恢复可读数据(包含 /f 功能)。

若提示在下次重启时检查,输入 Y 并按计划重启。

步骤 3:等待检查完成

CHKDSK 通常会经历文件记录、索引、安全描述符、文件数据、空闲空间等阶段。

注意:大容量磁盘可能耗时较长,过程中不要强制中断。

检查结束后,确认卷和目录:

diskpart

list volume

exit

dir D:\

dir D:\SvcFab

若 D: 与 D:\SvcFab 已可访问,说明文件系统修复生效;

若仍不可访问,应继续排查底层磁盘或存储层问题。 image.png

参考资料

chkdsk : https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk?tabs=hdd%2Cevent-viewer

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!