如何使用 Linux Samba 群集创建 Windows 可访问的共享文件夹?(群集中的两台 PC 使用一个 IP)

如何使用 Linux Samba 群集创建 Windows 可访问的共享文件夹?(群集中的两台 PC 使用一个 IP)

是否有人知道如何在任何 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)

https://learn.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/wsfc-quorum-modes-and-voting-configuration-sql-server?view=sql-server-ver16

好的,这是针对 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 进行设置,请回来。

相关内容