![如何使用 Linux Samba 群集创建 Windows 可访问的共享文件夹?(群集中的两台 PC 使用一个 IP)](https://linux22.com/image/778257/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Linux%20Samba%20%E7%BE%A4%E9%9B%86%E5%88%9B%E5%BB%BA%20Windows%20%E5%8F%AF%E8%AE%BF%E9%97%AE%E7%9A%84%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F%EF%BC%88%E7%BE%A4%E9%9B%86%E4%B8%AD%E7%9A%84%E4%B8%A4%E5%8F%B0%20PC%20%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%20IP%EF%BC%89.png)
是否有人知道如何在任何 Linux 发行版中创建一个可供 Windows 访问且具有 HA(高可用性)的共享文件夹?
背景:我有 Windows Server 集群,它需要一个见证服务器。有两种类型可用 - 共享文件夹和共享磁盘。只有一个见证服务器非常危险,因此需要一个高可用性见证服务器。
基本上,它应该是两台计算机集群之间的共享文件夹(最好通过 samba 实现),并且可以通过单个 IP 地址访问。数据应同时写入两个存储,或先写入主存储,然后立即写入辅助存储(两个存储必须相同)。当一台计算机死机时,另一台计算机应使用相同的 IP 替代它。没有共享存储。
到目前为止,我发现应该有两个解决方案 - DRBD 和 CTDB。有些地方说这两个一起用。互联网上有一些信息,但没有完整的解决方案。我发现这可能是最好的说明https://wiki.samba.org/index.php/5.0:_Heartbeat_HA_Configuration,但我不需要任何 DNS、LDAP 或用户管理。
有任何 Linux 超级用户可以创建这个集群吗?
答案1
我有 Windows Server 集群,它需要一个见证服务器。有两种类型可用 - 共享文件夹和共享磁盘。只有一个见证服务器非常危险,因此需要一个高可用性见证服务器。
您设计得太过了!Windows Server 故障转移群集 (WSFC) 不需要任何 HA 投票实体。群集中的群集?!这有点损害了拥有群集的整个想法。您只需要奇数个组合服务器、见证磁盘和/或文件共享来创建初始仲裁。
(配置和管理仲裁)
https://learn.microsoft.com/en-us/windows-server/failover-clustering/manage-cluster-quorum
(WSFC 仲裁模式和投票配置,SQL Server)
好的,这是针对 SQL Server 的,但它是一篇非常好的读物,因为它是关于 WSFC 的第一种方式。
TL;DR:只需坚持使用非 HA 的“普通”SMB2/3 文件共享即可!不推荐使用见证磁盘,因为它们的配置比较棘手(对于文件共享,除了设置访问权限之外,您几乎不需要做任何事情,请参阅下面的链接),而且据传 MSFT 将在长期内弃用此功能。
(部署文件共享见证)
https://learn.microsoft.com/en-us/windows-server/failover-clustering/file-share-witness
此外,强烈建议在生产中避免使用 DRBD。它很容易造成脑裂情况,并且需要大量手动调整和照看。
(什么是 DRBD 裂脑?)
https://www.ibm.com/support/pages/qradar-what-drbd-split-brain
答案2
我不推荐它,因为你混淆了两个文件系统,Windows 集群使用系统用户,而集群需要访问 Linux 文件系统不知道的共享。
创建一个 Windows 文件服务器或向集群节点添加额外的磁盘。
您也许能够创建一个 iSCSI 服务器:https://www.howtoforge.com/tutorial/how-to-setup-iscsi-storage-server-on-ubuntu-2004-lts/ 在 Linux 中
答案3
Pacemaker 是您正在寻找的 Linux 集群资源管理器(Heartbeat 较旧且无人维护)。您可以使用它来控制 DRBD 主/辅、移动虚拟 IP 地址(您的单个共享 IP)、通过 systemd 启动和停止 Samba(或者可能有 Pacemaker 的特定资源代理)以及您可能想要添加到集群的任何其他服务。
由于您正在寻找建议而不是询问具体问题,因此这个问题几乎肯定会被删除。因此,一旦您尝试使用 Pacemaker 进行设置,请回来。