阻止 Windows 7 用 SMB 查询淹没 LAN

Rub*_*atz 10 networking windows-7 nas

我的西部数据 (MyBook Live Duo 6 TB) NAS 通过交换机连接到我的 LAN 时遇到了一个烦人的问题。网络中有四台 Windows 7 机器,其中一台通过 WLAN 连接。

每次有人打开 Windows 资源管理器时(无论是哪台机器,无论哪条路径),驱动器都在旋转,这不仅很烦人,而且我认为驱动器非常紧张。

没有办法改变 NAS 的行为,所以我的问题是: 有没有办法在不完全破坏文件共享/网络访问的情况下阻止 Windows“查询”驱动器(或所有 SMB 服务器)?

(在路由器上禁用 DHCP 不是一种选择,因为它不支持有线和无线的单独 DHCP 设置。)

all*_*tic 14

硬盘驱动器“启动”是一种非常特殊的操作,具有以下特点和局限性:

  • 对于大多数台式机/消费类 HDD,完成启动过程需要 3 到 5 秒。在启动过程中,硬盘无法读取或写入任何数据。
  • 在旋转过程中,如果您非常靠近设备聆听,您将听到音调增加的声音。在它结束时,您会听到硬盘滚珠轴承在磁盘“寻找”到不同位置时发出的一阵轻柔的咔嗒声(以满足在开始旋转时排队的 I/O 请求)。
  • 消费级硬盘驱动器设计用于数千次旋转/旋转循环,一些质量较低的单元在大约 1000-2000 次旋转循环中失败,但许多被设计为大约 600,000 次。在这个数量的自旋循环之后,该过程中涉及的机制开始崩溃,最终将失败。

在软件方面,配置良好的系统通常会采用以下三种策略中的一种:

  • 对于极端节能(例如,在使用电池供电的笔记本电脑中),您可能期望的最短可能的停转时间是大约 15 或 30 分钟的不活动(在此期间没有磁盘活动)。在现代 Windows 上,我们有如此多的程序一直在运行,并且几乎是恒定的 I/O,以至于 15 分钟内没有磁盘活动的机会,即使在“干净”的系统上,即使用户完全空闲,也几乎是零。实际上,如今这种配置并不常见。

  • 为了适度节能,典型的台式机停转时间可能约为 2 到 4 小时。这意味着,如果该硬盘驱动器在 2 或 4 小时内(或任何配置为)没有读取或写入,磁盘将停止旋转,并且下一个命中它的 I/O 请求将不得不旋转磁盘备份。

  • 对于服务器,由于希望它们在任何时刻始终可用(响应没有任何滞后),通常会禁用因不活动而导致的降速。这适用于 NAS 以及 Web 服务器或任何其他类型的服务器。

如果您拥有的 WD NAS 是开箱即用的,具有极短的停机时间,我会感到惊讶。然而,就是在Ubuntu Linux操作系统中的错误很多年前(2007年),他们意外地设置降速空闲时间为0秒。这意味着一旦磁盘停止处理 I/O 请求,减速的“0 秒”计时器将立即到期,磁盘将减速,磁头将停放。然后 I/O 请求将在内存中排队,而磁盘必须再次启动以处理它们。

2007 年,在 Ubuntu 上,这种持续不断的启动/降速搅动在短的时间内扼杀了人们的硬盘驱动器。没有注意到并纠正问题的人们很快就遇到了工作硬盘在几天到几周内出现故障(这些硬盘要么是设计时没有考虑到频繁的启动周期,或者它们在正常使用情况下不到 1 年就会出现故障)。

如果您的NAS不断的旋转着向上和向下,它里面的磁盘遭受那种被风化非同寻常(在这个频率)机械磨损的硬盘驱动器的,所以它是一种真正为他们的折磨考验。您应该尝试纠正 NAS 本身的情况。

请尝试以下操作:

  • 查看 NAS 配置页面上的每个固件设置,并确保将任何电源管理设置更改为尽可能“宽松”(最小节能/禁用)。
  • 将 NAS 的固件更新为制造商提供的最新固件。
  • 如果您愿意打开 NAS 机箱,请这样做,然后在里面找到 HDD 的型号和序列号。然后在网上打出这些数字,看看你是否可以找到硬盘本身的固件更新(如果你不能从 NAS 界面更新它们的固件,你可以通过将硬盘放入计算机来直接应用 Windows 的固件更新)。
  • 如果磁盘的 SMART 诊断可用,您应该使用 SMART 诊断程序检查它们,或在 NAS 固件中查找,作为可能出现故障的指示。
  • 如果以上方法都不能解决问题,则可能是 NAS 内部的硬盘有问题,或者 NAS 本身有问题。如果 HDD 遇到某些类型的内部错误,它们可能会自行重置(断电/通电),结果是先减速,然后再加速。

现在,至于您是否怀疑 Windows 是问题所在?它不是。NAS 的磁盘不应在仅几秒钟的空闲时间后就不断地停止旋转。他们根本不应该。时期。没有人故意这样设计他们的 NAS(嗯,我不会完全把它放在 WD 之后去做,但这不太可能)。

如果发生这种情况,Windows 7 完全无可指责,因为您的 Windows 计算机无法通过 SMB 协议控制 NAS 的 SATA 控制器的电源管理功能。只有 NAS 的操作系统才能做到这一点。

当您打开 Windows 资源管理器时,Windows 7 实际上会执行某些 SMB 操作,这些操作会查询文件系统元数据以计算 NAS 共享空间上的总磁盘空间和可用磁盘空间。

对于在访问时启动并“完全运行”的硬盘驱动器,计算总磁盘空间和可用磁盘空间应该不到一秒钟。该请求并不是特别昂贵,并且无论如何都不是“泛滥”。

如果您真的相信 Windows 正在对 NAS 执行某种命令泛滥,您应该通过在您的一台 Windows 7 计算机上安装Wireshark并使用 NAS 的 IP 目标在 SMB 协议上运行数据包嗅探来证明这一点. 如果仅通过打开 Windows 资源管理器就发送了大约 100 个以上的请求,我会认为这是一种洪水,尤其是如果在打开资源管理器后请求继续以非常高的速率发生超过 5-10 秒。否则它或多或少是正常的。

请记住,某些病毒扫描和备份产品不够智能,无法意识到映射的网络驱动器(例如 F: 或其他东西)是共享驱动器,因此会尝试对整个驱动器进行病毒扫描或备份(不仅仅是您故意从中访问的文件)。这些类型的错误大多是历史性的,但可能会不时出现在某些软件上。还有一些程序会忠实地执行用户的指令,例如,将程序配置为在共享驱动器上每小时执行一次完整的病毒扫描。一旦这个过程开始,它确实会用 SMB 请求“淹没”NAS。

因此,您可能想排除这种情况的发生,但在我看来,问题的根本原因是驱动器的转速下降。一个好的 NAS 不会让驱动器旋转和头部停放,直到至少 2 小时完全不活动。如果您可以非常快速地打开/关闭 Windows 资源管理器并每次都重现旋转,那么 NAS 端就会出现问题。

  • 补充一点:已知某些驱动器固件(“绿色”)在驱动器本身上具有非常短的空闲计时器,而与操作系统设置无关。备用驱动器上的空闲降速仍然很常见,尽管现在可能不在主系统驱动器上。 (4认同)
  • @allquixotic 众所周知,HDD 制造商严格遵守 SATA 标准并且从不偏离标准;) 众所周知,绿色的问题使它们成为 NAS 的可怕驱动器 - 尽管 iirc 您可以刷新固件。 (2认同)

Rub*_*atz 2

不断浏览网页,我得到了以下“解决方案”,这对某些人来说可能有点不舒服,但仍然保留网络访问权限:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum]
Run Code Online (Sandbox Code Playgroud)

“{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}”=dword:00000001

将上述 dword 设置为 1 会从 Windows 资源管理器中删除网络环境的所有引用,这也会阻止每当有人打开 Windows 资源管理器实例时我的 NAS 启动。缺点是,如果您想浏览可用的计算机,则必须在 Windows 资源管理器路径文本框中手动输入网络环境的路径。机器链接和其他一切仍然有效。

顺便说一句,这个特定 NAS 内的驱动器是 WD RED