Proxmox VE 中的集群

Proxmox VE 中的集群

在过去的文章中,我们开始讨论 Proxmox VE 是什么及其工作原理。 今天我们将讨论如何利用集群的可能性并展示它带来的好处。

什么是集群以及为什么需要它? 集群(来自英语 cluster)是一组通过高速通信通道联合起来的服务器,它们作为一个整体工作并显示给用户。 使用集群主要有以下几种场景:

  • 提供容错能力 (高可用性)。
  • 负载均衡 (负载均衡)。
  • 提高生产力 (高性能)。
  • 执行分布式计算 (分布式计算)。

每个场景对集群成员都有自己的要求。 例如,对于进行分布式计算的集群,主要要求是浮点运算的高速性和低网络延迟。 此类簇通常用于研究目的。

既然我们已经谈到了分布式计算这个话题,我想指出的是,还有这样的事情: 网格系统 (源自英语grid——格子、网络)。 尽管总体相似,但不要混淆网格系统和集群。 网格不是通常意义上的集群。 与集群不同,网格中包含的节点通常是异构的,并且具有低可用性的特点。 这种方法简化了分布式计算问题的解决方案,但不允许从节点创建单个整体。

网格系统的一个引人注目的例子是流行的计算平台 BOINC (伯克利网络计算开放基础设施)。 该平台最初是为该项目创建的 SETI @ home (在家寻找外星智慧生命),解决通过分析无线电信号寻找外星智慧生命的问题。

怎么开动这个从射电望远镜接收到的大量数据被分成许多小块,并将它们发送到网格系统的节点(在 SETI@home 项目中,志愿者计算机扮演此类节点的角色)。 数据在节点处进行处理,处理完成后发送到SETI项目的中央服务器。 因此,该项目在没有所需的计算能力的情况下解决了最复杂的全球问题。

现在我们已经清楚地了解了集群是什么,我们建议考虑如何创建和使用它。 我们将使用开源虚拟化系统 proxmox ve.

在开始创建集群之前,清楚地了解 Proxmox 的限制和系统要求尤为重要,即:

  • 集群中的最大节点数 - 32;
  • 所有节点必须有 相同版本的 Proxmox (也有例外,但不建议用于生产);
  • 如果将来计划使用高可用性功能,那么集群应该具有 至少 3 个节点;
  • 端口必须打开以便节点相互通信 UDP/5404, UDP/5405 用于 corosync 和 TCP / 22 用于 SSH;
  • 节点之间的网络延迟不应超过 2 ms.

创建集群

重要的! 以下配置是测试配置。 不要忘记检查 官方文件 Proxmox VE。

为了运行测试集群,我们使用了三台安装了 Proxmox 虚拟机管理程序的服务器,配置相同(2 个内核,2 GB RAM)。

如果您想了解如何安装 Proxmox,那么我们建议您阅读我们之前的文章 - 虚拟化的魔力:Proxmox VE 入门课程.

最初,安装操作系统后,单个服务器运行在 独立模式.

Proxmox VE 中的集群
单击按钮创建集群 创建集群 在相关部分。

Proxmox VE 中的集群
我们为未来的集群设置一个名称并选择一个活动的网络连接。

Proxmox VE 中的集群
单击创建按钮。 服务器将生成一个2048位密钥并将其与新集群的参数一起写入配置文件。

Proxmox VE 中的集群
题词 任务确定 表示操作成功完成。 现在,查看系统的一般信息,可以看到服务器已经切换到集群模式。 到目前为止,集群仅由一个节点组成,即尚不具备集群所需要的能力。

Proxmox VE 中的集群

加入集群

在连接创建的集群之前,我们需要获取信息来完成连接。 为此,请转至以下部分 инажимаем кнопку 加盟信息.

Proxmox VE 中的集群
在打开的窗口中,我们对同名字段的内容感兴趣。 需要复制它。

Proxmox VE 中的集群
所有必要的连接参数都在这里编码:用于连接的服务器地址和数字指纹。 我们转到需要包含在集群中的服务器。 我们按下按钮 加入集群 并在打开的窗口中粘贴复制的内容。

Proxmox VE 中的集群
领域 对等地址 и 指纹 会自动填写。 输入节点号1的root密码,选择网络连接并按下按钮 加入.

Proxmox VE 中的集群
加入集群过程中,GUI网页可能会停止更新。 没关系,重新加载页面即可。 以完全相同的方式,我们添加另一个节点,结果我们得到了一个由 3 个工作节点组成的成熟集群。

Proxmox VE 中的集群
现在我们可以从一个 GUI 控制所有集群节点。

Proxmox VE 中的集群

高可用性组织

Proxmox 开箱即用,支持虚拟机和 LXC 容器的 HA 组织功能。 公用事业 哈经理 检测并处理错误和故障,执行从故障节点到工作节点的故障转移。 为了使该机制正常工作,虚拟机和容器必须具有公共文件存储。

激活高可用性功能后,ha-manager软件堆栈将持续监控虚拟机或容器的状态,并与其他集群节点异步交互。

连接共享存储

例如,我们在 192.168.88.18 部署了一个小型 NFS 文件共享。 为了使集群的所有节点都能够使用它,您需要执行以下操作。

从网络界面菜单中选择 数据中心-存储-添加-NFS.

Proxmox VE 中的集群
填写字段 ID и 服务器. 在下拉列表中 出口 从可用目录和列表中选择所需的目录 内容 — 所需的数据类型。 按下按钮后 地址 存储将连接到所有集群节点。

Proxmox VE 中的集群
在任何节点上创建虚拟机和容器时,我们指定我们的 存储 作为存储。

设置HA

例如,让我们使用 Ubuntu 18.04 创建一个容器并为其配置高可用性。 创建并运行容器后,转到 部分 数据中心-HA-添加。 在打开的字段中,指定虚拟机/容器 ID 以及尝试重新启动和在节点之间移动的最大次数。

如果超过此数字,虚拟机管理程序会将虚拟机标记为失败并将其置于错误状态,之后它将停止对其执行任何操作。

Proxmox VE 中的集群
按下按钮后 地址 效用 哈经理 将通知集群的所有节点,现在具有指定 ID 的 VM 已受到控制,并且在发生崩溃时必须在另一个节点上重新启动。

Proxmox VE 中的集群

让我们来一次崩溃吧

为了看看切换机制到底是如何工作的,让我们异常关闭node1的电源。 我们从另一个节点查看集群中发生的情况。 我们看到系统已修复故障。

Proxmox VE 中的集群

HA机制的运行并不意味着VM的连续性。 一旦节点“崩溃”,虚拟机运行就会暂时停止,直到在另一个节点上自动重新启动。

这就是“魔法”开始的地方 - 集群自动重新分配节点来运行我们的虚拟机,并在 120 秒内自动恢复工作。

Proxmox VE 中的集群
我们在营养上消灭了节点2。 让我们看看集群是否能够存活,虚拟机是否会自动恢复到工作状态。

Proxmox VE 中的集群
唉,正如我们所看到的,我们遇到了一个问题,即唯一幸存的节点上不再有法定人数,这会自动禁用 HA。 我们在控制台中发出命令强制安装仲裁。

pvecm expected 1

Proxmox VE 中的集群
2 分钟后,HA 机制正常工作,未找到节点 2,而是在节点 3 上启动了我们的虚拟机。

Proxmox VE 中的集群
一旦我们重新打开节点 1 和节点 2,集群就完全恢复了。 请注意,虚拟机不会自行迁移回节点 1,但这可以手动完成。

总结

我们向您介绍了 Proxmox 集群机制的工作原理,并向您展示了如何为虚拟机和容器配置 HA。 正确使用集群和 HA 可以大大提高基础设施的可靠性,并提供灾难恢复。

在创建集群之前,您需要立即规划集群的用途以及未来需要扩展的程度。 您还需要检查网络基础设施是否准备好以最小的延迟运行,以便未来的集群能够正常运行。

告诉我们 - 您是否使用 Proxmox 的集群功能? 我们在评论里等你。

之前有关 Proxmox VE 虚拟机管理程序的文章:

来源: habr.com

添加评论