在过去的文章中,我们开始讨论 Proxmox VE 是什么及其工作原理。 今天我们将讨论如何利用集群的可能性并展示它带来的好处。
什么是集群以及为什么需要它? 集群(来自英语 cluster)是一组通过高速通信通道联合起来的服务器,它们作为一个整体工作并显示给用户。 使用集群主要有以下几种场景:
- 提供容错能力 (高可用性)。
- 负载均衡 (负载均衡)。
- 提高生产力 (高性能)。
- 执行分布式计算 (分布式计算)。
每个场景对集群成员都有自己的要求。 例如,对于进行分布式计算的集群,主要要求是浮点运算的高速性和低网络延迟。 此类簇通常用于研究目的。
既然我们已经谈到了分布式计算这个话题,我想指出的是,还有这样的事情: 网格系统 (源自英语grid——格子、网络)。 尽管总体相似,但不要混淆网格系统和集群。 网格不是通常意义上的集群。 与集群不同,网格中包含的节点通常是异构的,并且具有低可用性的特点。 这种方法简化了分布式计算问题的解决方案,但不允许从节点创建单个整体。
网格系统的一个引人注目的例子是流行的计算平台
BOINC (伯克利网络计算开放基础设施)。 该平台最初是为该项目创建的SETI @ home (在家寻找外星智慧生命),解决通过分析无线电信号寻找外星智慧生命的问题。
怎么开动这个从射电望远镜接收到的大量数据被分成许多小块,并将它们发送到网格系统的节点(在 SETI@home 项目中,志愿者计算机扮演此类节点的角色)。 数据在节点处进行处理,处理完成后发送到SETI项目的中央服务器。 因此,该项目在没有所需的计算能力的情况下解决了最复杂的全球问题。
现在我们已经清楚地了解了集群是什么,我们建议考虑如何创建和使用它。 我们将使用开源虚拟化系统
在开始创建集群之前,清楚地了解 Proxmox 的限制和系统要求尤为重要,即:
- 集群中的最大节点数 - 32;
- 所有节点必须有 相同版本的 Proxmox (也有例外,但不建议用于生产);
- 如果将来计划使用高可用性功能,那么集群应该具有 至少 3 个节点;
- 端口必须打开以便节点相互通信 UDP/5404, UDP/5405 用于 corosync 和 TCP / 22 用于 SSH;
- 节点之间的网络延迟不应超过 2 ms.
创建集群
重要的! 以下配置是测试配置。 不要忘记检查
为了运行测试集群,我们使用了三台安装了 Proxmox 虚拟机管理程序的服务器,配置相同(2 个内核,2 GB RAM)。
如果您想了解如何安装 Proxmox,那么我们建议您阅读我们之前的文章 -
虚拟化的魔力:Proxmox VE 入门课程 .
最初,安装操作系统后,单个服务器运行在 独立模式.
单击按钮创建集群 创建集群 在相关部分。
我们为未来的集群设置一个名称并选择一个活动的网络连接。
单击创建按钮。 服务器将生成一个2048位密钥并将其与新集群的参数一起写入配置文件。
题词 任务确定 表示操作成功完成。 现在,查看系统的一般信息,可以看到服务器已经切换到集群模式。 到目前为止,集群仅由一个节点组成,即尚不具备集群所需要的能力。
加入集群
在连接创建的集群之前,我们需要获取信息来完成连接。 为此,请转至以下部分 簇 инажимаем кнопку 加盟信息.
在打开的窗口中,我们对同名字段的内容感兴趣。 需要复制它。
所有必要的连接参数都在这里编码:用于连接的服务器地址和数字指纹。 我们转到需要包含在集群中的服务器。 我们按下按钮 加入集群 并在打开的窗口中粘贴复制的内容。
领域 对等地址 и 指纹 会自动填写。 输入节点号1的root密码,选择网络连接并按下按钮 加入.
加入集群过程中,GUI网页可能会停止更新。 没关系,重新加载页面即可。 以完全相同的方式,我们添加另一个节点,结果我们得到了一个由 3 个工作节点组成的成熟集群。
现在我们可以从一个 GUI 控制所有集群节点。
高可用性组织
Proxmox 开箱即用,支持虚拟机和 LXC 容器的 HA 组织功能。 公用事业 哈经理 检测并处理错误和故障,执行从故障节点到工作节点的故障转移。 为了使该机制正常工作,虚拟机和容器必须具有公共文件存储。
激活高可用性功能后,ha-manager软件堆栈将持续监控虚拟机或容器的状态,并与其他集群节点异步交互。
连接共享存储
例如,我们在 192.168.88.18 部署了一个小型 NFS 文件共享。 为了使集群的所有节点都能够使用它,您需要执行以下操作。
从网络界面菜单中选择 数据中心-存储-添加-NFS.
填写字段 ID и 服务器. 在下拉列表中 出口 从可用目录和列表中选择所需的目录 内容 — 所需的数据类型。 按下按钮后 地址 存储将连接到所有集群节点。
在任何节点上创建虚拟机和容器时,我们指定我们的 存储 作为存储。
设置HA
例如,让我们使用 Ubuntu 18.04 创建一个容器并为其配置高可用性。 创建并运行容器后,转到 部分 数据中心-HA-添加。 在打开的字段中,指定虚拟机/容器 ID 以及尝试重新启动和在节点之间移动的最大次数。
如果超过此数字,虚拟机管理程序会将虚拟机标记为失败并将其置于错误状态,之后它将停止对其执行任何操作。
按下按钮后 地址 效用 哈经理 将通知集群的所有节点,现在具有指定 ID 的 VM 已受到控制,并且在发生崩溃时必须在另一个节点上重新启动。
让我们来一次崩溃吧
为了看看切换机制到底是如何工作的,让我们异常关闭node1的电源。 我们从另一个节点查看集群中发生的情况。 我们看到系统已修复故障。
HA机制的运行并不意味着VM的连续性。 一旦节点“崩溃”,虚拟机运行就会暂时停止,直到在另一个节点上自动重新启动。
这就是“魔法”开始的地方 - 集群自动重新分配节点来运行我们的虚拟机,并在 120 秒内自动恢复工作。
我们在营养上消灭了节点2。 让我们看看集群是否能够存活,虚拟机是否会自动恢复到工作状态。
唉,正如我们所看到的,我们遇到了一个问题,即唯一幸存的节点上不再有法定人数,这会自动禁用 HA。 我们在控制台中发出命令强制安装仲裁。
pvecm expected 1
2 分钟后,HA 机制正常工作,未找到节点 2,而是在节点 3 上启动了我们的虚拟机。
一旦我们重新打开节点 1 和节点 2,集群就完全恢复了。 请注意,虚拟机不会自行迁移回节点 1,但这可以手动完成。
总结
我们向您介绍了 Proxmox 集群机制的工作原理,并向您展示了如何为虚拟机和容器配置 HA。 正确使用集群和 HA 可以大大提高基础设施的可靠性,并提供灾难恢复。
在创建集群之前,您需要立即规划集群的用途以及未来需要扩展的程度。 您还需要检查网络基础设施是否准备好以最小的延迟运行,以便未来的集群能够正常运行。
告诉我们 - 您是否使用 Proxmox 的集群功能? 我们在评论里等你。
之前有关 Proxmox VE 虚拟机管理程序的文章:
来源: habr.com