在CentOS 7上安装OpenNebula KVM节点

时间:2020-02-23 14:31:24  来源:igfitidea点击:

欢迎使用我们的有关在CentOS 7上安装OpenNebula KVM节点的指南。我们的上一篇文章介绍了在CentOS 7上安装OpenNebula前端的完整步骤。在继续之前,我们应该具有可用的OpenNebula前端服务器,因为本指南将集中于添加KVM。由OpenNebula前端服务器管理的管理程序。

KVM(基于内核的虚拟机)是OpenNebulasOpen Cloud Architecture的管理程序。 KVM是用于Linux的完整虚拟化系统。它提供了完整的虚拟化,其中每个虚拟机都与自己的虚拟化硬件进行交互。

CentOS 7上的OpenNebula KVM节点安装-要求

主机将需要具有Intel VTorAMDs AMD-Vfeatures的CPU,以支持虚拟化。 KVM准备使用KVMguide将澄清我们对硬件是否支持KVM的任何疑问。

OpenNebula KVM节点安装准备

在安装软件包和启动所需的服务之前,需要确保已做好几件事。

禁用SELinux:

OpenNebula在SELinux强制模式下不能很好地工作。让我们禁用它。

setenforce 0
sed -i 's/(^SELINUX=).*/SELINUX=disabled/' /etc/selinux/config
cat /etc/selinux/config

添加OpenNebula和epel存储库

运行以下命令以在CentOS 7上添加epel和OpenNebula存储库。

$sudo su 
# yum -y install epel-release
# cat << EOT > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.4/CentOS/7/x86_64
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
EOT

安装时,请检查OpenNebula的最新版本。撰写本文时,最新版本为5.4.

做系统更新:

$sudo makecache fast
$sudo yum -y update
$sudo systemctl reboot

.安装软件

执行以下命令以安装节点软件包并重新启动libvirt以使用OpenNebula提供的配置文件:

# yum install opennebula-node-kvm
# rpm -qi opennebula-node-kvm
Name : opennebula-node-kvm
Version : 5.4.6
Release : 1
Architecture: x86_64
Install Date: Thu 08 Mar 2016 09:00:21 AM EST
Group : System
Size : 327
License : Apache
Signature : RSA/SHA1, Tue 23 Jan 2016 01:17:21 PM EST, Key ID 592f7f0585e16ebf
Source RPM : opennebula-5.4.6-1.src.rpm
Build Date : Tue 23 Jan 2016 01:17:05 PM EST
Build Host : centos7-centos7-5.4.6-fc9cb760-9194fbe0.build
Relocations : (not relocatable)
Packager : OpenNebula Team <theitroad@localhost>
URL : http://opennebula.org
Summary : Configures an OpenNebula node providing kvm
Description :
Configures an OpenNebula node providing kvm.

我们应该将这些行放在/etc/libvirt/libvirtd.conf下,以便oneadmin与KVM一起正常工作。

unix_sock_group = "oneadmin"
unix_sock_rw_perms = "0777"

进行更改时,请始终重新启动libvirtd。

# systemctl restart libvirtd

配置无密码SSH

OpenNebula前端使用SSH连接到虚拟机监控程序主机。我们必须将所有计算机上的用户oneadmin的公钥分发到所有计算机上的文件/var/lib/one/.ssh/authorized_keys中。生成并填充authorized_keys。我们需要创建一个known_hosts文件并将其同步到节点。要创建known_hosts文件,我们必须在前端中以用户oneadmin的身份执行以下命令,并将所有节点名称和前端名称作为参数:

# su - oneadmin
$ ssh-keyscan <frontend> <node1> <node2>  ... >> /var/lib/one/.ssh/known_hosts

现在我们需要将目录/var/lib/one/.ssh复制到所有节点。我们可以在所有节点上重置oneadmin用户的密码。

# passwd oneadmin

然后在前端节点上运行

$ scp -rp /var/lib/one/.ssh <node1>:/var/lib/one/
$scp -rp /var/lib/one/.ssh <node2>:/var/lib/one/

从前端测试ssh,不应提示我们输入密码

$ssh <node1>
$ssh <frontend>

配置主机网络

OpenNebula前端守护程序需要网络连接来访问主机,以管理和监视主机以及传输镜像文件。强烈建议使用专用网络进行管理。

OpenNebula支持四种不同的联网模式:桥接。虚拟机直接连接到虚拟机管理程序中的现有网桥。可以将该模式配置为使用安全组和网络隔离。虚拟网络是通过802.1Q VLAN标记VXLAN实现的。虚拟网络使用依赖于UDP封装和IP多播的VXLAN协议来实现VLAN。打开vSwitch。与VLAN模式类似,但使用的是openvswitch而不是Linux网桥。

链接上提供了每个文件的文档。我的设置使用桥接网络。我在计算主机上有三个桥接器,用于存储,专用网络和公共数据。

有关存储配置,请访问Open Cloud Storage

将主机添加到OpenNebula

最后一步是向OpenNebula添加主机。该节点已在OpenNebula前端上注册,以便OpenNebula可以在其上启动VM。可以在CLI或者Sunstone图形用户界面中完成此步骤。只需遵循一种方法,而不要同时遵循两种方法,因为它们可以实现相同的效果。

通过Sunstone添加主机

打开Sunstone>基础结构->主机。单击+按钮。为类型字段选择KVM。

在主机名字段中填写节点的fqdn或者IP地址。

返回主机部分,并确认其处于ON状态。

如果主机转向err状态而不是on检查。/var/log/one/oned.log SSH可能是问题所在!

通过CLI添加主机

要将节点添加到云,请在前端以" oneadmin"身份运行此命令:

$onehost create <node01> -i kvm -v kvm
$onehost list
 ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
 1 localhost default 0 - - init

# After some time - around 2 minutes
$onehost list
 ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT 
 0 192.168.70.82 default 0 0/1600 (0%) 0K/94.2G (0%) on