开放星云。 简短的笔记

开放星云。 简短的笔记

大家好。 本文是为那些仍在选择虚拟化平台之间犹豫不决的人而写的,他们在阅读了系列文章“我们安装了 proxmox,总的来说一切都很好,6 年的正常运行时间没有一次中断”。 但在安装一个或另一个开箱即用的解决方案后,问题出现了:我如何在这里纠正这个问题,以便监控更容易理解,并且在这里控制备份......。 然后时机成熟,您意识到您想要更多功能,或者您希望系统内部的所有内容都变得清晰,而不是这个黑匣子,或者您想要使用的不仅仅是虚拟机管理程序和一堆虚拟机。 本文将包含一些基于Opennebula平台的思考和实践——我选择它是因为。 它对资源要求不高,架构也不是那么复杂。

因此,正如我们所看到的,许多云提供商都在 kvm 上工作并建立外部连接来控制机器。 很明显,大型托管商为云基础设施编写了自己的框架,例如相同的 YANDEX。 有人使用openstack并在此基础上建立连接-SELECTEL、MAIL.RU。 但如果你有自己的硬件和一小部分专家,那么你通常会选择现成的东西 - VMWARE、HYPER-V,有免费和付费许可证,但这不是我们现在讨论的。 让我们来谈谈爱好者 - 这些人不害怕提供和尝试新的东西,尽管公司明确表示,“谁会在你之后为这个提供服务”,“我们会稍后将其投入生产吗?” ? 可怕的。” 但你可以先将这些解决方案应用在测试台上,如果大家都喜欢的话,那么你可以提出在更严峻的环境中进一步开发和使用的问题。

这里还有报告的链接 www.youtube.com/watch?v=47Mht_uoX3A 来自该平台开发的积极参与者。

也许本文中的某些内容是多余的,并且对于经验丰富的专家来说已经可以理解,并且在某些情况下我不会描述所有内容,因为类似的命令和描述可以在 Internet 上找到。 这只是我使用这个平台的经验。 希望积极的参与者在评论中补充我哪些地方可以做得更好,哪些地方我犯了错误。 所有动作均在由 3 台具有不同特性的 PC 组成的主看台中进行。 另外,我没有具体说明这个软件是如何工作以及如何安装的。 不,只有管理经验和我遇到的问题。 也许这对他们选择的人有用。

那么,让我们开始吧。 作为系统管理员,以下几点对我来说很重要,否则我不太可能使用此解决方案。

1、安装重复性

安装opennebula的说明很多,应该不会有什么问题。 从一个版本到另一个版本,出现的新功能在从一个版本移动到另一个版本时并不总是有效。

2. 监控

我们将监控节点本身、kvm 和 opennebula。 幸运的是,它已经准备好了。 关于监控 Linux 主机有很多选项,相同的 Zabbix 或节点导出器 - 谁更喜欢哪个 - 目前我将其定义为通过 zabbix 监控系统指标(可以测量的温度、磁盘阵列的一致性) ,以及通过 Prometheus 导出器的应用程序。 以kvm监控为例,可以拿项目 github.com/zhangjianweibj/prometheus-libvirt-exporter.git 并将其设置为通过systemd运行,它运行得很好并显示kvm指标,还有一个现成的仪表板 grafana.com/grafana/dashboards/12538.

例如,这是我的文件:

/etc/systemd/system/libvirtd_exporter.service
[Unit]
Description=Node Exporter

[Service]
User=node_exporter
ExecStart=/usr/sbin/prometheus-libvirt-exporter --web.listen-address=":9101"

[Install]
WantedBy=multi-user.target

所以我们有 1 个导出器,我们需要第二个导出器来监控 opennebula 本身,我使用了这个 github.com/kvaps/opennebula-exporter/blob/master/opennebula_exporter

可以正常添加 节点导出器 监视系统以下内容。

在node_exporter文件中,我们像这样更改开始:

ExecStart=/usr/sbin/node_exporter --web.listen-address=":9102" --collector.textfile.directory=/var/lib/opennebula_exporter/textfile_collector

创建目录 mkdir -p /var/lib/opennebula_exporter

上面介绍的bash脚本,首先我们通过控制台检查工作,如果它显示我们需要的内容(如果它给出错误,则安装xmlstarlet),将其复制到/usr/local/bin/opennebula_exporter.sh

每分钟添加一个 cron 任务:

*/1 * * * * (/usr/local/bin/opennebula_exporter.sh > /var/lib/opennebula_exporter/textfile_collector/opennebula.prom)

指标开始出现,你可以像普罗米修斯一样使用它们并构建图表并发出警报。 例如,在 Grafana 中您可以绘制这样一个简单的仪表板。

开放星云。 简短的笔记

(很明显,我在这里过度使用了cpu、ram)

对于那些热爱和使用 Zabbix 的人来说,有 github.com/OpenNebula/addon-zabbix

就监控而言,最主要的是它的存在。 当然,另外,你还可以使用内置的虚拟机监控工具,上传数据到计费,这里每个人都有自己的愿景,我还没有开始更仔细地研究这个。

我还没有真正开始记录。 最简单的选择是添加 td-agent 以使用正则表达式解析 /var/lib/one 目录。 例如,sunstone.log 文件与 nginx 正则表达式和其他显示平台访问历史记录的文件相匹配 - 这样做的优点是什么? 举例来说,我们可以明确地跟踪“错误,错误”的数量,并快速跟踪出现故障的位置和级别。

3. 备份

还有付费完成的项目 - 例如 sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:打开Nebula_Backup。 在这里,我们必须明白,在这种情况下,简单地备份机器映像是完全不同的,因为我们的虚拟机必须完全集成(描述网络设置、虚拟机名称和应用程序的自定义设置的相同上下文文件) 。 因此,我们在这里决定备份什么以及如何备份。 在某些情况下,最好复制虚拟机本身的内容。 也许您只需要备份给定计算机上的一个磁盘。

例如,我们确定所有机器都以持久图像启动,因此,在阅读之后 docs.opennebula.io/5.12/operation/vm_management/img_guide.html

这意味着我们首先可以从虚拟机上传图像:

onevm disk-saveas 74 3 prom.qcow2
Image ID: 77

Смотрим, под каким именем он сохранился

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
И далее копируем куда нам необходимо. Конечно, так себе способ. Просто хотел показать, что используя инструменты opennebula можно строить подобные решения.

我也在网上找到了 有趣的报告 还有更多 这样一个开放的项目,但是只有qcow2的存储空间。

但众所周知,迟早有一天你需要增量备份,这会更困难,也许管理层会分配资金购买付费解决方案,或者走另一条路,明白我们只是在削减资源,并在应用程序级别进行备份并添加许多新节点和虚拟机 - 是的,在这里,我说的是纯粹使用云来启动应用程序集群,并在另一个平台上启动数据库或采用现成的平台如果可能的话,来自供应商。

4. 易用性

在本段中我将描述我遇到的问题。 例如,根据镜像,我们知道,存在持久性——当这个镜像挂载到一个vm上时,所有的数据都会写入到这个镜像中。 如果是非持久性的,则图像将复制到存储,数据将写入从源图像复制的内容 - 这就是模板模板的工作原理。 我多次给自己带来问题,忘记指定持久化,200GB的镜像被复制了,问题是这个过程肯定不能取消,你必须去节点杀死当前的“cp”进程。

重要的缺点之一是您无法仅使用 GUI 取消操作。 或者更确切地说,您将取消它们,然后看到没有任何反应,然后您将再次启动它们,取消它们,实际上已经有 2 个 cp 进程在复制映像。

然后就理解为什么opennebula用新的id对每个新实例进行编号,例如,在同一个proxmox中创建了一个id为101的虚拟机,将其删除,然后再次创建它并id为101。在opennebula中这不会发生,每个新实例都将使用新的 ID 创建,这有其自己的逻辑 - 例如,清除旧数据或不成功的安装。

存储也是如此;最重要的是,这个平台的目标是集中存储。 有一些插件可以使用本地插件,但这不是我们在本例中讨论的内容。 我认为将来有人会写一篇关于他们如何设法在节点上使用本地存储并在生产中成功使用它的文章。

5. 最大程度的简单性

当然,你走得越远,理解你的人就越少。

在我的立场的条件下 - 3 个带有 nfs 存储的节点 - 一切正常。 但是如果我们进行涉及断电的实验,比如运行快照并关闭节点电源时,我们在数据库中保存的设置是有快照,但实际上没有(好吧,我们都明白,我们最初在 sql 中编写了有关此操作的数据库,但操作本身并不成功)。 优点是,创建快照时,会形成一个单独的文件,并且有一个“父文件”,因此,如果出现问题,即使无法通过 GUI 工作,我们也可以拾取 qcow2 文件并单独恢复它 docs.opennebula.io/5.8/operation/vm_management/vm_instances.html

不幸的是,在网络上,并非一切都那么简单。 好吧,至少它比在 openstack 中更容易,我只使用了 vlan (802.1Q) - 它工作得很好,但如果你从模板网络更改设置,那么这些设置将不会应用于已经运行的机器,即您需要删除并添加网卡,然后才会应用新的设置。

如果你也想将它与openstack进行比较,那么你可以这样说:在opennebula中,没有明确定义使用哪些技术来存储数据、管理网络、资源——每个管理员自己决定什么对他来说更方便。

6. 附加插件和安装

毕竟按照我们的理解,云平台不仅可以管理kvm,还可以管理vmware esxi。 不幸的是,我没有使用 Vcenter 的池,如果有人尝试过,请写信。

声明了对其他云提供商的支持 docs.opennebula.io/5.12/advanced_components/cloud_bursting/index.html
AWS、蔚蓝。

我也尝试从 Selectel 连接 Vmware Cloud,但没有任何效果 - 一般来说,它被阻止,因为有很多因素,并且没有必要写信给托管提供商的技术支持。

另外,现在新版本有了爆竹——这是 microvm 的推出,这是一种基于 docker 的 kvm 工具,它提供了更多的多功能性、安全性和更高的生产力,因为无需在模拟设备上浪费资源。 我认为相对于 Docker 的唯一优点是它不会占用额外的进程数,并且在使用此模拟时不会占用套接字,即很有可能将其用作负载均衡器(但在我完全运行所有测试之前,可能值得就此撰写一篇单独的文章)。

7.积极的使用经验和错误调试

我想分享我对这项工作的观察,我在上面描述了一些,我想写更多。 事实上,我可能不是唯一一个一开始就认为这不是正确的系统的人,而且总的来说,这里的一切都是拐杖 - 他们如何使用它? 但后来我们明白,一切都是非常合乎逻辑的。 当然,你不可能让所有人都满意,有些方面还需要改进。

例如,将磁盘映像从一个数据存储复制到另一个数据存储的简单操作。 就我而言,有 2 个带有 nfs 的节点,我发送图像 - 复制通过前端 opennebula 进行,尽管我们都习惯了数据应该直接在主机之间复制的事实 - 在同一个 vmware、hyper-v 中,我们是习惯了这个,但这里又是另一个。 有不同的方法和不同的意识形态,在 5.12 版本中,他们删除了“迁移到数据存储”按钮 - 仅传输机器本身,但不传输存储,因为意思是集中存储。

接下来是一个常见的错误,原因有多种:“部署虚拟机时出错:无法从 /var/lib/one//datastores/103/10/deployment.5 创建域”下面是最重要的内容。

  • oneadmin 用户的肖像权;
  • oneadmin用户运行libvirtd的权限;
  • 数据存储是否正确安装? 去检查节点本身的路径,可能有东西掉下来了;
  • 网络配置不正确,或者更确切地说,在前端的网络设置中,vlan 的主接口是 br0,但在节点上它被写为bridge0 - 它必须是相同的。

系统数据存储为您的虚拟机存储元数据,如果您使用持久映像运行虚拟机,则虚拟机需要有权访问您创建虚拟机的存储上最初创建的配置 - 这非常重要。 因此,当将虚拟机传输到另一个数据存储时,您需要仔细检查所有内容。

8. 文档、社区。 进一步的发展

其余的,良好的文档、社区,最重要的是该项目在未来继续存在。

一般来说,一切都有很好的记录,即使使用官方来源,安装和查找问题的答案也不会有问题。

社区,活跃。 发布了许多可在安装中使用的现成解决方案。

目前公司部分政策自5.12以来发生了变化 forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14 看看这个项目如何发展将会很有趣。 一开始,我特别指出了一些使用他们的解决方案的供应商以及行业提供的内容。 当然,对于使用什么没有明确的答案。 但对于较小的组织来说,维护小型私有云可能并不像看起来那么昂贵。 最重要的是确切地知道您需要什么。

因此,无论您选择什么作为云系统,您都不应该停留在一种产品上。 如果您有时间,值得看看其他更开放的解决方案。

有一个很好的聊天 t.me/opennebula 他们会积极提供帮助,而不是让您在 Google 上搜索问题的解决方案。 加入我们。

来源: habr.com

添加评论