我有一台主 Windows 2008 服务器和一台备份 Windows 2008 服务器,以及一组将驱动器映射到主服务器上的共享的 Windows XP 客户端。如果主服务器出现故障,我希望这些客户端计算机自动将其驱动器重新映射到备份服务器,以便它们可以继续访问文件。
我是否应该尝试编写一个 vbscript 或 python 脚本或其他东西来检测主服务器是否已关闭并发出适当的“net use m:\server\share ...”但我需要该脚本每分钟运行一次,无论谁登录。我可以使用 Windows“计划任务”来做到这一点吗?
我是一名 Unix 用户,需要您提供的任何提示来完成此任务。有没有更好的解决方案?
非常感谢,-Ian
答案1
尝试一下 DFS。以下是我发现一篇详细介绍的文章。
更新时间:2016 年 7 月 12 日:由于上述 URL 已损坏,以下是 Microsoft 自己关于 DFS 的页面:https://msdn.microsoft.com/fr-fr/library/cc782417(v=ws.10).aspx
答案2
DFS 肯定可以为您提供一定程度的高可用性以及其他功能,但是,如果您只想设置一个冗余的 flie 服务器集群,请参见此technet 一步一步文章
如果没有域访问权限,则无法执行域 DFS。如果没有 AD 访问权限,则无法设置集群。另一种选择是:
编写一个脚本,在服务器上以给定的时间间隔手动复制文件(或者如果您认为您可以更改文件夹),并编写一个脚本,以便用户在遇到问题时可以单击该脚本。
您应该将共享文件夹标记为可离线访问,然后 xp 系统(当它们使其可离线访问时)将缓存并在服务器不可用时赶上服务器。一旦标记为可离线访问,副本就会以防主服务器实际上崩溃并且无法恢复,然后您就会有一个备份副本。
答案3
如果您可以使这两个文件服务器的内容保持同步,您可以考虑使用 CNAME 并将其指向 avbl 的服务器。
有点长远 - 但也尝试将 DNS 记录分配给两台服务器,同时为故障转移服务器分配较低的优先级。
以上所有内容均基于 DNS。
hth 的
答案4
这可能有点简单,但是这样怎么样:
如果您与用户沟通良好,足以解释正在发生的事情以及如何处理故障转移,那么您可以进行手动故障转移。
在备份服务器上,创建备份文件夹并将其命名为“备份文件”之类的直观名称。将用户电脑上的驱动器映射到备份驱动器。在备份服务器上运行脚本,或者我喜欢使用 robocopy,从主服务器获取文件。向用户明确说明备份文件已被覆盖,因此如果他们修改它们,他们将丢失更改。
当出现问题时,声明故障转移,停止备份服务器上的获取脚本并让用户使用他们的驱动器映射到备份文件夹。
当一切顺利时,将更改复制回主服务器(再次强调,robocopy 做得非常好)并声明回退,用户将返回主服务器。
不是自动的,所以有点垃圾,但应该可以手动操作,而且工作量最小。我想不出任何没有被建议的自动操作。