关于 MAC 和高可用性故障转移的新手问题

use*_*678 2 networking linux cluster mac-address failovercluster

我正在阅读有关高可用性的内容,但我无法理解我阅读的以下内容:故障转移时,主 IP 迁移到备份服务器,但 MAC 地址也必须如此。

具体来说,我读到每台机器都有一个唯一的地址 MAC,机器中的所有接口都可以使用它。我不明白这部分。MAC不属于网卡吗?这句话中的接口是什么意思?

同样在故障转移时,客户端必须更新其 IP/MAC 映射,并为此找到了 3 种方法,其中之一是使用自定义 MAC,并将其与公共 IP 一起从主要移动到备份。这怎么可能?高可用性软件(例如 Pacemaker)能做到这一点吗?如何?

sys*_*138 5

这本书是正确的,但是它遗漏了一些部分。

  • MAC 地址并不像您想象的那样固定,大多数高端 NIC 都能够将 MAC 地址更改为特定内容。在 NIC 的 BIOS 或驱动程序本身中。
  • 为“虚拟”系统预留了特定的 MAC 地址范围(请参阅我的虚拟机可以安全使用哪些 MAC 地址范围?
  • 集群软件可以使用这些预留范围中的 MAC 地址来呈现集群 IP 服务。
  • linux 网络堆栈能够创建具有特定 MAC 地址的虚拟 NIC。

集群软件根据虚拟 MAC 地址创建服务的过程非常简单。当服务出现时,它会提供一个免费的 Arp 数据包,说可以在虚拟 MAC 地址上找到特定的 IP 地址。当故障转移发生时,“关闭”节点删除其本地 IP/MAC 绑定,新节点开始侦听该虚拟 MAC 地址和 IP 组合。没有麻烦没有大惊小怪。

集群软件使用的另一种方法是根本不理会虚拟 MAC,而完全依赖免费 ARP。此类系统的启动/故障转移顺序如下所示:

  1. 集群软件将 IP 绑定到节点 A。
  2. 节点 A G-ARPs“192.168.244.60 在 02-00-ab-cd-ef-01”
  3. 子网上的所有设备都会更新它们的 ARP 表。
  4. 时间流逝。
  5. 节点 A 崩溃。
  6. 集群软件将 IP 绑定到节点 B。
  7. 节点 B G-ARP“192.168.244.60 位于 02-00-ab-cd-41-ba”
  8. 子网上的所有设备都会更新它们的 ARP 表。

根据我的经验,第二种方法,纯 G-ARP,是当今大多数 linux 集群使用的方法。然而,这两种方法都是有效的并且已经被使用。G-ARP 方法的好处是您不必为分配虚拟 MAC 地址而烦恼。纯虚拟 MAC 方法的好处是它不依赖于在给定子网上工作的 G-ARP。