我有以下设置:
我有客户端使用“使用标准Windows进行读写”的软件,该软件正在将文件读写到Windows服务器。客户端都是Windows 10机器,他们都在使用Solidworks的一个名为PDM的保险库软件。
服务器是运行PDM服务器软件的Windows 2016服务器。
基本工作流程是用户在本地处理文件。当他们将文件签入保险库时,文件将从他们的硬盘传输到服务器软件。服务器重命名文件并将其保存到文件夹中。由于我没有访问代码的权限,所以我无法确切地确定它是如何完成的。我相信重命名是为了防止用户“扰乱”文件本身,因为文件存储在一个神秘的文件夹和文件命名结构中。
我们正在看到零星的文件问题,这些文件在将来的某个时候加载时会损坏。所有这些“损坏”的文件似乎能够使用冗长冗长的手工加载过程“保存”。因为这个问题是我的数据库,我想追踪这个问题。
根据保险库支持人员的说法,"95%的时间这些问题都是与服务器或网络有关,而不是与保险库服务器软件有关“。
您的网络管理员是否知道有一种方法可以尝试在客户机/服务器之间反复读取和写入文件,以测试是否存在通过网络读取和写入文件的问题。我的想法是运行一个客户机/服务器,它可以多次、多次地传输文件,并检查散列或类似的内容。
发布于 2022-03-09 15:50:10
通过网络检查文件传输:有一个MS文件服务器和两个客户端(这样客户端上可能的本地缓存不会妨碍您的结果)。
这只是一个基本的想法。您需要执行一些脚本来自动化检查,并让它们在一个周末左右的时间内运行。也许如果不立即发生这种情况,并且发生在磁盘驱动器上,那么这种快速检查可能找不到任何东西。
如果您有特定的示例/数据损坏事件,是否有任何方法可以获得原始文件和损坏的文件,这应该是相同的?这些文件是什么格式的?这是机器可读的文本文件(如XML)还是二进制文件?也许可以比较一下内容,看看腐败到底是什么样子。腐败的性质可以提供进一步的线索,说明这可能是从何而来。
除了在ASCII文本上工作的经典"diff“之外,我还记得有专门用于二进制比较的工具。。
此外,存储服务器是否运行备份?细节取决于备份方案,但关键是如果一个旧的服务器端备份包含一个健康的文件,而来自服务器的当前文件被破坏了,这可能会缩小您的问题。为了推断备份这个主题,如果设置有数据损坏的问题,并且没有防弹备份方案,那么您的组织还需要做什么呢?
即使您不再拥有健康的原始文件:如果损坏的文件最终被一段解析它的软件拒绝,那么最好能获得更详细的调试日志,查看解析器在哪里停止运行,文件在哪里不再是“良好的”--但我理解,在封闭的源代码软件中,使用封闭的文件格式通常不会得到这个机会。
人们说,这正是企业存储硬件在“信号链”始终保持“完整性元数据”的目的--即现代版本的SCSI和派生互连技术(FC、SAS)和相应的自旋锈病,不确定是否存在具有这种功能的SSD。而不是提供特定的指针,我建议您询问google关于Linux中数据完整性的问题。在硬件层面上,这很可能就是你被咬的原因。您对服务器中的底层存储子系统了解多少?
而且,尽管这是一个很小的机会:如果您通常在打开旧文件时遇到问题:处理这些文件的应用软件是否会得到更新?这可能是应用程序更新破坏了与旧数据的兼容性的情况吗?如果您没有备份整个文件,您是否可以安排一个校验和记录,以及文件名、大小和时间戳,看看6个月后检索的文件是相同的还是不同的?
用“繁琐的手工加载程序”保存下来--这到底是什么?处理破损文件的恢复算法?或者只是从相应的旧备份中检索健康的原始文件?这两种情况都有可能更多地了解问题的本质:您可以将破损的文件与良好的原始文件进行比较,或者了解“恢复”过程对“损坏”文件的实际作用。
https://serverfault.com/questions/1095763
复制相似问题