Proxmox VE中的群集



在过去的文章中,我们开始讨论什么是Proxmox VE及其工作原理。今天,我们将讨论如何使用群集功能并展示其优点。

什么是集群,为什么需要集群?群集(来自英语群集)是通过高速通信通道连接的一组服务器,它们在整个用户范围内工作并代表着整个用户。有几种使用群集的基本方案:

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

每个方案都对群集组件提出了自己的要求。例如,对于执行分布式计算的群集,主要要求是浮点运算的高速和网络的低延迟。这样的集群通常用于研究目的。

既然我们谈到了分布式计算的主题,我想指出的是,仍然存在诸如网格系统之类的东西(来自英语。grid-格子,网络)。尽管总体上相似,但不要混淆网格系统和群集。网格不是通常意义上的集群。与集群相反,网格中包含的节点通常是异构的,并且具有较低的可用性。这种方法简化了分布式计算问题的解决方案,但不允许从节点创建单个整体。
网格系统的一个显着示例是流行的计算平台BOINC(用于网络计算的伯克利开放基础结构)。该平台最初是为SETI @ home项目在家中搜索外星智能)创建的,该项目通过分析无线电信号来解决搜索外星智能的问题。
怎么运行的
, , , - ( SETI@home ). SETI. , .

既然我们对集群是什么有了一个清晰的了解,我们建议考虑如何创建和部署它。我们将使用Proxmox VE开源虚拟化系统

在开始创建集群之前,特别重要的是要清楚地了解Proxmox的局限性和系统要求,即:

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

集群创建


重要!以下配置是测试之一。确保检查官方 Proxmox VE 文档

为了启动测试集群,我们使用了三台服务器,它们安装了具有相同配置(2核,2 GB RAM)的Proxmox虚拟机管理程序。
如果您想知道如何安装Proxmox,我们建议您阅读上一篇文章- 虚拟化魔力:Proxmox VE入门课程
最初,在安装操作系统后,单个服务器将以Standalone-mode运行


通过单击相应部分中创建集群按钮来创建集群


我们命名将来的群集,然后选择活动的网络连接。


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


题为TASK OK的任务表明操作成功。现在,查看有关系统的常规信息,很明显服务器已切换到群集模式。到目前为止,集群仅由一个节点组成,也就是说,它不具备集群所需的功能。


加入集群


在连接到创建的集群之前,我们需要获取信息以完成连接。为此,请转到“ 群集”部分,然后单击“ 加入信息”按钮


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


所有必需的连接参数都在此处编码:用于连接的服务器地址和指纹。我们传递给需要包含在集群中的服务器。单击加入群集按钮,然后在打开的窗口中粘贴复制的内容。


等地址指纹字段将自动填写。从节点号1输入root密码,选择网络连接,然后单击Join按钮


当您加入群集时,GUI网页可能会停止更新。这很正常,只需重新加载页面即可。以完全相同的方式,我们添加了一个以上的节点,因此,我们收到了由3个工作节点组成的完整集群。


现在,我们可以通过一个GUI控制所有群集节点。


高可用性组织


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

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

附加共享存储


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

我们在Web界面的菜单中选择Datacenter-Storage-Add-NFS


填写IDServer字段在“ 导出”下拉列表中,从可用目录中选择所需的目录,然后在“ 内容”列表中选择所需的数据类型。单击添加按钮后,存储将连接到集群的所有节点。


在任何节点上创建虚拟机和容器时,我们将存储指定为存储。

定制HA


例如,使用Ubuntu 18.04创建一个容器并为其配置高可用性。创建和启动容器后,转到“ 数据中心-HA-添加”部分在打开的字段中,指定虚拟机/容器的ID以及在节点之间重新启动和移动的最大尝试次数。
如果超过此数量,则管理程序将虚拟机标记为失败,并将其转移到错误状态,此后它将停止对其执行任何操作。

单击添加按钮后,ha-manager实用程序将通知所有群集节点当前正在监视具有指定ID的VM,如果该VM掉落,则必须在另一个节点上重新启动它。


撞车


为了了解切换机制的工作原理,让我们正常地偿还节点1的电源。我们从另一个节点看集群发生了什么。我们看到系统记录了一个故障。

HA机制的运行并不意味着VM的继续运行。节点“掉落”后,VM操作会暂时停止,直到在另一个节点上自动重新启动。
至此,“魔术”开始了:集群自动将节点重新分配给运行我们的VM,并在120秒内自动恢复了工作。


我们熄灭node2上的营养。让我们看看集群是否可以承受并且虚拟机将自动返回工作状态。


las,正如我们所看到的,我们有一个问题,那就是唯一的幸存节点不再具有仲裁,这将自动禁用HA。我们给出命令以强制在控制台中安装仲裁。

pvecm expected 1


2分钟后,高可用性机制正常运行,但未找到节点2,因此在节点3上启动了我们的VM。


一旦重新打开node1和node2,群集就完全恢复了。请注意,VM不会迁移回node1,但是可以手动完成。

总结一下


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

在创建集群之前,您需要立即计划将其用于什么目的以及将来需要扩展多少。您还需要以最小的延迟检查网络基础结构的可用性,以便将来的群集正常运行。

告诉我们-您是否在Proxmox中使用集群功能?在评论中见。

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


All Articles