前情提要:
- 之前在vCenter 中使用 iSCSI 提供统一存储服务都是好好的。
- 后来 想着在本地windows PC 上也使用iSCSI,方便存储一些 不常用的文件。
- 结果,因为本地有两个PC 同时访问一个 iSCSI 盘的情况(想着游戏盘 就共享了)。但是,两台机器同时有操作 就会发现有文件损坏or 丢失的情况。
修复 iSCSI 盘中 “无法枚举容器中的对象,访问被拒绝”的问题
现象:
PC-B 复制已经下载好的 ollama 模型到共享盘 “N:\Ollama_models"后,PC-A 读取这个文件夹时报错:
“windows 文件夹权限提示:“无法枚举容器中的对象,访问被拒绝”
具体修复动作如下:
1. 先修复文件夹所有者
1
|
takeown /f "N:\Ollama_models" /r /d y
|
执行记录:
1
2
3
|
成功: 此文件(或文件夹): "N:\Ollama_models" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-05a61d37b08453e59290add468e3bb2f688e23a01e967fecb0e2fa41218cea76" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-06507c7b42688469c4e7298b0a1e16deff06caf291cf0a5b278c308249c3e439" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-0a3d61b01340ca9dceb4a661e21b3dfe1418ed5206d91291ab933a3762f8bb89" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-3a18673ff291a1d8de94d490877127899356d33a18028d5f3945bf245c11b02c" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-3fcd3febec8b3fd64435204db75bf0dd73b91e8d0661e0331acfe7e7c3120b85" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-59bb50d8116b6a1f9bfbb940d6bb946a05554e591e30c8c2429ed6c854867ecb" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-6e4c38e1172f42fdbff13edf9a7a017679fb82b0fde415a3e8b3c31c6ed4a4e4" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-772f510b95588aeb9fbd2298b2b647bceba48aceb05e3a26ff14812eb1f6dc14" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-8893e08fa9f91f7dc39e24d27bdfaece4e9c86bb3269293ff8cea6cba98c872d" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-8972a96b8ff1957ca24ff839aeb54411e6849de68609857a3fa17a4e78114247" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-9202febed9e2dadac14bca089be90864571336fa9f4375b690a26ed548957fde" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-a3a0e9449cb691a12f4de1d03725fd41326614fdeaf5d80b28c51187da0bed0e" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-a3de86cd1c132c822487ededd47a324c50491393e6565cd14bafa40d0b8e686f" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-a406579cd136771c705c521db86ca7d60a6f3de7c9b5460e6193a2df27861bde" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-ae370d884f108d16e7cc8fd5259ebc5773a0afa6e078b11f4ed7e39a27e0dfc4" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-ae40a217c1c4002e9358f0f6597a349acaace0cfb95dc53db7ce646d57a56271" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-c5ad996bda6eed4df6e3b605a9869647624851ac248209d22fd5e2c0cc1121d3" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-c8efaf6dac5aab4dc1030895032f0f028d7835348bdb21d4aebb89cda5788fe5" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-cff3f395ef3756ab63e58b0ad1b32bb6f802905cae1472e6a12034e4246fbbdb" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-d18a5cc71b84bc4af394a31116bd3932b42241de70c77d2b76d69a314ec8aa12" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-e6a7edc1a4d7d9b2de136a221a57336b76316cfe53a252aeba814496c5ae439d" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-ed8474dc73db8ca0d85c1958c91c3a444e13a469c2efb10cd777ca9baeaddcb7" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\blobs\sha256-f64cd5418e4b038ef90cf5fab6eb7ce6ae8f18909416822751d3b9fca827c2ab" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所 有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-coder" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-r1" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-coder\6.7b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr\3b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr\latest" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-r1\8b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3\8b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding\0.6b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。成功: 此文件(或文件夹): "N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding\8b" 现在由用户 "DESKTOP-GVTOPMJ\gg" 所有。
C:\WINDOWS\system32>
|
2. 再修复文件权限
1
|
icacls "N:\Ollama_models" /reset /t /c /l
|
执行记录:
1
|
C:\WINDOWS\system32>已处理的文件: N:\Ollama_models已处理的文件: N:\Ollama_models\blobs已处理的文件: N:\Ollama_models\manifests已处理的文件: N:\Ollama_models\blobs\sha256-05a61d37b08453e59290add468e3bb2f688e23a01e967fecb0e2fa41218cea76已处理的文件: N:\Ollama_models\blobs\sha256-06507c7b42688469c4e7298b0a1e16deff06caf291cf0a5b278c308249c3e439已处理的文件: N:\Ollama_models\blobs\sha256-0a3d61b01340ca9dceb4a661e21b3dfe1418ed5206d91291ab933a3762f8bb89已处理的文件: N:\Ollama_models\blobs\sha256-3a18673ff291a1d8de94d490877127899356d33a18028d5f3945bf245c11b02c已处理的文件: N:\Ollama_models\blobs\sha256-3fcd3febec8b3fd64435204db75bf0dd73b91e8d0661e0331acfe7e7c3120b85已处理的文件: N:\Ollama_models\blobs\sha256-59bb50d8116b6a1f9bfbb940d6bb946a05554e591e30c8c2429ed6c854867ecb已处理的文件: N:\Ollama_models\blobs\sha256-6e4c38e1172f42fdbff13edf9a7a017679fb82b0fde415a3e8b3c31c6ed4a4e4已处理的文件: N:\Ollama_models\blobs\sha256-772f510b95588aeb9fbd2298b2b647bceba48aceb05e3a26ff14812eb1f6dc14已处理的文件: N:\Ollama_models\blobs\sha256-8893e08fa9f91f7dc39e24d27bdfaece4e9c86bb3269293ff8cea6cba98c872d已处理的文件: N:\Ollama_models\blobs\sha256-8972a96b8ff1957ca24ff839aeb54411e6849de68609857a3fa17a4e78114247已处理的文件: N:\Ollama_models\blobs\sha256-9202febed9e2dadac14bca089be90864571336fa9f4375b690a26ed548957fde已处理的文件: N:\Ollama_models\blobs\sha256-a3a0e9449cb691a12f4de1d03725fd41326614fdeaf5d80b28c51187da0bed0e已处理的文件: N:\Ollama_models\blobs\sha256-a3de86cd1c132c822487ededd47a324c50491393e6565cd14bafa40d0b8e686f已处理的文件: N:\Ollama_models\blobs\sha256-a406579cd136771c705c521db86ca7d60a6f3de7c9b5460e6193a2df27861bde已处理的文件: N:\Ollama_models\blobs\sha256-ae370d884f108d16e7cc8fd5259ebc5773a0afa6e078b11f4ed7e39a27e0dfc4已处理的文件: N:\Ollama_models\blobs\sha256-ae40a217c1c4002e9358f0f6597a349acaace0cfb95dc53db7ce646d57a56271已处理的文件: N:\Ollama_models\blobs\sha256-c5ad996bda6eed4df6e3b605a9869647624851ac248209d22fd5e2c0cc1121d3已处理的文件: N:\Ollama_models\blobs\sha256-c8efaf6dac5aab4dc1030895032f0f028d7835348bdb21d4aebb89cda5788fe5已处理的文件: N:\Ollama_models\blobs\sha256-cff3f395ef3756ab63e58b0ad1b32bb6f802905cae1472e6a12034e4246fbbdb已处理的文件: N:\Ollama_models\blobs\sha256-d18a5cc71b84bc4af394a31116bd3932b42241de70c77d2b76d69a314ec8aa12已处理的文件: N:\Ollama_models\blobs\sha256-e6a7edc1a4d7d9b2de136a221a57336b76316cfe53a252aeba814496c5ae439d已处理的文件: N:\Ollama_models\blobs\sha256-ed8474dc73db8ca0d85c1958c91c3a444e13a469c2efb10cd777ca9baeaddcb7已处理的文件: N:\Ollama_models\blobs\sha256-f64cd5418e4b038ef90cf5fab6eb7ce6ae8f18909416822751d3b9fca827c2ab已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-coder已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-r1已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-coder\6.7b已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr\3b已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-ocr\latest已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\deepseek-r1\8b已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3\8b已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding\0.6b已处理的文件: N:\Ollama_models\manifests\registry.ollama.ai\library\qwen3-embedding\8b已成功处理 40 个文件; 处理 0 个文件时失败
|
3. 执行完上述修复,再次操作验证
PC-A 上再次读取执行 N:\Ollama_models 就正常了。
回到标题,为什么这个问题根因不在iSCSI上?
因为NTFS 不是一个集群文件系统。
它被设计为一次只能由一台计算机(一个操作系统实例)独占访问和管理。当第二台计算机试图挂载同一个NTFS卷时,它无法感知第一台计算机的操作,反之亦然。
两台PC 同时操作一个NTFS 盘会发生什么?
-
数据损坏(最可能且最严重):
写入覆盖:PC-A 和 PC-B 可能同时修改同一个文件的同一部分,或一个在写入而另一个在读取。最终写入磁盘的数据将是混乱的,文件内容被破坏。
元数据损坏:NTFS 的元数据(如主文件表 MFT、位图、日志)是文件系统的“目录和账本”。两台机器同时更新这些关键数据结构(例如,创建/删除文件、扩展文件大小),会立即导致文件系统逻辑混乱,可能使整个卷无法识别。
-
缓存一致性问题:
每台PC都会在内存中缓存文件和元数据以提高性能。一台PC对文件的修改会停留在自己的缓存中,不会立即通知另一台PC。另一台PC读取到的是磁盘上的旧数据或自己缓存中的旧数据,导致数据视图不一致。
-
系统不稳定和蓝屏:
当Windows检测到文件系统出现严重逻辑错误或无法理解的元数据状态时(例如,它认为应该空闲的块却被另一台机器分配了),可能会抛出文件系统错误,导致应用程序崩溃,甚至引发系统蓝屏死机。
-
“脏卷”和强制检查:
当一台PC正常卸载卷(或关机)时,它会执行清理操作,将缓存写入磁盘并标记卷为“干净”状态。
如果另一台PC还在使用,当它最终卸载时,或系统意外崩溃,卷会被标记为“脏”。下次任何一台PC尝试挂载时,Windows 的 chkdsk 会强制运行以尝试修复,但修复过程很可能导致数据丢失或损坏,因为它无法理解由并发访问造成的复杂损坏。
也就是说,chkdsk 修复数据也不是万能的,首先它的有正确的元数据信息 。
如果,这里的元数据损坏,chkdsk 修复可能只是让它 看起来可以读取、写入了。
至于,文件数据是否和之前的一致,它也是不确定的。
例如,修复后的照片成了这样——

而同样使用 iSCSI 协议的VMFS 文件系统就不会发生这样的问题
首先,VMFS 文件系统在设计目标中就为了多主机并发访问使用——
VMFS 如何安全地实现多主机并发访问?
-
元数据操作串行化:
-
数据操作允许并行:
-
心跳和脑裂保护:
如果对比 NTFS 和 VMFS 文件系统——
| 特性 |
NTFS |
VMFS |
| 设计目标 |
单台物理机或虚拟机的本地文件系统 |
专为多台ESXi主机并发访问共享存储而设计的集群文件系统 |
| 并发访问 |
不支持。没有内置的分布式锁机制。 |
核心功能。内置了分布式锁管理器和原子操作。 |
| 元数据保护 |
假设自己独占磁盘,直接修改。 |
使用磁盘心跳区、SCSI预留、原子测试与设置等机制,在修改关键元数据(如文件目录、空间位图)前,会先“上锁”,确保同一时刻只有一台主机能进行修改。 |
| 缓存一致性 |
每台机器的缓存独立,无同步。 |
设计时考虑了缓存失效机制。虽然数据缓存主要在主机内存,但元数据变更会通过存储网络通知其他主机使其缓存失效或更新。 |
| 适用场景 |
Windows/Linux本地磁盘,或一对一的iSCSI连接。 |
多对一的共享存储场景,典型如vSphere集群、多主机同时运行其上的虚拟机。 |
所以说,共享块存储本身没有问题(iSCSI/FC),问题在于其之上运行的文件系统是否支持多节点并发访问。
这里的案例就是,在感觉vmware 可行,那windows 也可行认知下的错误做法。
- 错误做法:共享块存储 + 非集群文件系统 = 数据灾难。
正确的解决方案
如果你需要让多台终端共享访问同一个存储池,必须使用正确的技术栈:
-
Windows Server Failover Cluster (WSFC) + CSV:
-
使用真正的集群文件系统:
- 例如用于Linux的 OCFS2、GFS2,或跨平台的 VMFS(VMware专用)。
- 注意:Windows原生没有类似广泛使用的通用集群文件系统。
-
windows下,考虑改为文件级共享: