ne星云 简短说明





你好。本文是为那些仍在选择虚拟化平台之间徘徊的读者而写的,在阅读了系列文章“我们安装了proxmox之后,总体来说一切都很好,正常运行6年并不是一个空白”。但是在安装了一个或另一个盒装解决方案后,出现了一个问题,我该如何在此处修复它,以便监视变得更容易理解,并且可以在这里控制备份…。然后是时候了,您了解到,您想要功能更强大的东西,或者您希望系统中的所有内容变得清晰,而不是黑盒子,或者您想要使用的不仅仅是虚拟机监控程序和一堆虚拟机。在本文中,将基于Opennebula平台进行一些思考和实践-我选择了它。不需要资源,架构也不是那么复杂。



因此,正如我们所看到的,许多云提供商都在kvm上工作,并与控制计算机建立外部连接。显然,大型托管服务商为云基础架构(例如,相同的YANDEX)编写其连接。有人使用openstack并在此基础上进行绑定-SELECTEL,MAIL.RU。但是,如果您拥有自己的硬件和少量专家,则通常会从现成的产品中进行选择-VMWARE,HYPER-V,免费许可证和付费许可证,但是现在这还不是。让我们来谈谈爱好者-尽管公司已经明确表示“谁将为您服务?”,但这些人不怕提出建议并尝试一些新的东西。“然后我们将其推广到生产中吗?害怕。”但是您可以首先在测试平台中应用这些解决方案,如果每个人都喜欢,那么就可以提出在更严重的环境中进一步开发和使用的问题。



另外,这里还有一个积极参与该平台开发的报告www.youtube.com/watch?v=47Mht_uoX3A的链接



也许在本文中会有一些多余的东西,对于有经验的专家来说已经很清楚了,在某些情况下,我不会描述所有内容,因为这样的命令和描述在网络上。这只是我在该平台上的经验。我希望积极的参与者在评论中添加可以做得更好的事情以及我犯了哪些错误。所有动作都在一个家用支架上进行,该支架包括3台具有不同特性的PC。另外,我也没有具体指出该软件的工作方式以及如何安装。不,只是行政经验和我遇到的问题。也许有人会发现它在选择中很有用。



因此,让我们开始吧。作为系统管理员,以下几点对我很重要,没有这些要点,我将很难使用此解决方案。



1.安装的可重复性



有关安装星云的说明很多,因此应该没有问题。从一个版本到另一个版本,出现一些新功能,当从一个版本转换到另一个版本时,这些功能可能并不总是能够获得的。



2.监控



我们将监视节点本身,kvm和opennebula。好东西已经在那里。目前,我定义了许多有关监视linux主机,同一个zabbix或节点导出器(无论谁喜欢)的选项,以便通过zabbix监视系统指标(可以测量温度的温度,磁盘阵列的一致性),但对于通过出口商申请普罗米修斯。例如,对于监视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中,以监视系统。



在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



添加到每分钟CZK任务:



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




指标开始出现,您可以使用普罗米修斯(Prometheus)进行选择并构建图形并发出警报。例如,您可以在grafan中绘制这样一个简单的仪表板。







(您可以在这里看到我确实过度使用了cpu,ram)



对于喜欢和使用zabbiks的用户,有github.com/OpenNebula/addon-zabbix



监视所有内容,主要是它。当然,此外,您还可以使用针对虚拟机的内置监视工具,并将数据上传到计费中,这里每个人都有自己的愿景,直到更深入地了解为止。



我尚未开始记录。最简单的选择是添加td-agent以使用正则表达式解析/ var / lib /一个目录。例如,sunstone.log文件适用于regexp nginx和其他显示平台调用历史的文件-还有什么用?好吧,例如,我们可以清楚地跟踪“错误,错误”的数量,并快速跟踪发生故障的位置和级别。



3.备份



还有一些付费的掺杂项目-例如sep wiki.sepsoftware.com/wiki/index.php/4_4_3_Tigon:OpenNebula_Backup。在此我们必须了解,在这种情况下仅备份计算机映像完全不一样,因为我们的虚拟机必须能够完全集成(同一文件上下文描述了应用程序的网络设置,虚拟机名称和自定义设置)。因此,在这里我们决定要备份什么以及如何备份。在某些情况下,最好复制vm本身中的内容。也许您只需要从该计算机备份一个磁盘。



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



这意味着我们首先要从vm卸载映像:



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

,     

oneimage show 77
/var/lib/one//datastores/100/f9503161fe180658125a9b32433bf6e8
   
     . ,   .   ,    opennebula    .




同样在庞大的网络中,我发现了一个有趣的报告,并且也有一个如此开放的项目,但这里仅用于qcow2存储。



但是众所周知,迟早会有一段时间想要增量备份,这在这里比较困难,也许管理层会为有偿解决方案分配资金,或者换一种方式来理解,在这里我们只看到资源,并在应用程序级别进行冗余,并且添加许多新节点和虚拟机-是的,在这里,我说使用云纯粹是用于启动应用程序集群,并在另一个平台上运行数据库,或者尽可能从供应商那里购买现成的数据库。



4.易于使用



在这一段中,我将描述遇到的问题。例如,通过映像,我们知道它是持久性的-当将此映像安装到vm时,所有数据都会写入该映像。如果是非永久性的,则将映像复制到存储中,并将数据写入从原始映像复制的内容中-这就是模板模板的工作方式。他反复地给自己造成麻烦,他忘记指定持久性并复制了200 GB映像,问题是要确保不能取消此过程,您必须转到节点并确定当前的“ cp”过程。



主要缺点之一是您不能仅通过使用gui来撤消操作。相反,您取消了它们,看到什么也没有发生,然后再次开始,请取消,实际上已经有2个cp进程复制了映像。



然后要理解为什么opennebula每个新实例都用一个新的ID编号,例如,在同一个proxmox中创建了一个ID为101的虚拟机,删除它,然后再次创建id 101。这有其自己的逻辑-例如,清除旧数据或安装失败。



对于存储也是如此,最重要的是,该平台针对集中式存储。有一些使用local的插件,但在这种情况下,并非如此。我认为将来有人会写一篇文章,介绍如何在节点上使用本地存储并在生产中成功使用它。



5.最大程度的简单



性当然,您走的越远,了解您的人就越少。



在我的立场下-具有nfs存储的3个节点-一切正常。但是,如果我们进行实验以关闭电源,例如在启动快照并关闭节点的电源时,我们会将设置保存在数据库中,这是一个快照,但实际上并非如此(嗯,我们都知道我们最初在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,AZURE 表示支持其他云提供商



我还尝试从选择器中拧紧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的权限;
  • datastore? , ;
  • , frontend , vlan br0, — bridge0 — .


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



8.文档,社区。进一步的开发



以及其他良好的文档,社区,最重要的是,该项目将在未来继续存在。



通常,这里的所有内容都记录在案,即使根据官方资料,也很难确定和找到问题的答案。



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



目前,自5.12起,公司的某些政策已更改。forum.opennebula.io/t/towards-a-stronger-opennebula-community/8506/14,了解该项目的发展将会很有趣。在开始时,我特别指出了一些使用其解决方案的供应商以及该行业提供的产品。当然,对于使用什么没有明确的答案。但是对于小型组织而言,维护其小型私有云可能并不像听起来那样昂贵。最主要的是确切地知道您需要什么。



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



t.me/opennebula上有一个很好的聊天室,可以积极帮助您,而不是发送给Google寻找问题的解决方案。加入我们。



All Articles