静看光阴荏苒
不管不顾不问不说也不念

Debian9部署OpenNebula被控

之前在CentOS7上面部署了一套完整的OpenNebula,试用了几天发现OpenNebula也有一些这样那样的小问题,当然即便如此也还是比BUG王SolusVM要好用很多。

因为OpenNebula在CentOS7上面的表现我个人不是很满意,所以我决定把它重新装在Debian9上试试,经过我的多次试用,目前表现良好。主控这里我就还是使用CentOS7了,主控没什么问题,所以我也懒得重装。出现问题一般都是在被控上面,所以这篇文章只部署被控。

环境:Debian9X64(Hetzner救援系统安装)

我建议在安装开始之前就先把KVM的桥接配置好,尤其是Hetzner这种“网络复杂”的服务商,辛辛苦苦装好了被控,配置桥接网络的时候把网搞炸了,又要重头来很烦的。下面我给一套目前在Hetzner的Debian9上可行的桥接方案。

安装桥接需要的依赖:

apt-get install bridge-utils

然后看看自己的主网卡名字以及主网卡MAC地址:

ifconfig

然后编辑主网卡配置文件:

nano /etc/network/interfaces

把里面带up route add的一行复制下来保存好,然后修改里面的内容为:

### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp3s0
iface enp3s0 inet manual

注:enp3s0是你的主网卡名字,别照搬我这里的,每个人可能都不一样。

然后新建一个br0桥接网卡:

nano /etc/network/interfaces.d/br0

写入如下配置:

auto br0
iface br0 inet static
  address 服务器公网IP
  netmask 服务器子网掩码
  gateway 网关IP
  hwaddress ether 主网卡MAC地址
  bridge_ports enp3s0(改成你的主网卡名字)
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0
  up route add -net xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gw xxx.xxx.xxx.xxx dev br0(xxx替换为你之前复制的)

重启网络服务:

/etc/init.d/networking restart

如果能够重启成功,并且机器还有网,那么一般情况下你的KVM桥接就配置好了,接着我们直接重启服务器,重新登录上来之后可以看到网卡的配置信息应该如下:

OJBK,网卡桥接配置好了后,下面开始装被控。

先更新一波系统:

apt-get update
apt-get upgrade

添加OpenNebula源的Key:

wget -q -O- https://downloads.opennebula.org/repo/repo.key | apt-key add -

添加OpenNebula源:

echo "deb https://downloads.opennebula.org/repo/5.6/Debian/9 stable opennebula" > /etc/apt/sources.list.d/opennebula.list

安装这个玩意:

apt-get install apt-transport-https

更新源信息:

apt-get update

然后就可以安装OpenNebula被控了:

apt-get install opennebula-node

完成之后重启libvirtd:

systemctl restart libvirtd

这里有一个坑,如果你的主控是CentOS7,被控是Debian9,那么做一下这个软连接:

mkdir -p /usr/libexec/
ln -s /usr/bin/qemu-system-x86_64 /usr/libexec/qemu-kvm

因为OpenNebula创建虚拟机的时候调用qemu-kvm的路径是/usr/libexec/qemu-kvm,但是在Debian9上,qemu-kvm的路径是/usr/bin/qemu-system-x86_64。做个软连接就好了。

然后就是在主控上面扫描获取被控的SSH信息配置SSH无密码登录了,这些我就不写了,可以参考之前的文章:

CentOS7部署OpenNebula开设KVM小鸡

下面补充一些关于OpenNebula的使用细节。

首先是OpenNebula默认开设的虚拟机只允许SSH密匙登录,这个其实我们可以自己修改模板,实现虚拟机支持密码登录的。方法如下:

在OpenNebula的后台“模板”-“虚拟机”,选中一个你打算修改的模板:

点“更新”:

点击“Context”,在“启动脚本”内输入修改ssh配置的命令。我这里写了2个模板目前可用的。

Debian9模板:

sed -i "s/PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/PermitRootLogin without-password/PermitRootLogin yes/g" /etc/ssh/sshd_config
systemctl restart sshd.service

CentOS7模板:

sed -i "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
systemctl restart sshd.service

注意:如果你的被控宿主机系统是CentOS7,CentOS7的模板不要使用这些命令来修改ssh,如果使用了会导致虚拟机开机后没网。这是OpenNebula被控在CentOS7上的问题之一。我们现在用的被控系统是Debian9,无此问题,大可放心使用。

接着我们创建一个“用户输入”配置,这样可用让用户在创建虚拟机的时候自己设置ROOT密码,如图所示:

如此设置之后,使用此模板创建的虚拟机就可以让用户自己设置ROOT密码了,然后系统开机后用户就可以用ROOT密码登录了。

接着关于虚拟机硬盘IO的限制,在“模板”-“虚拟机”-“存储”-“高级选项”内可以设置,有两个可以设置的地方,一个是“节流”一个是“IOPS”,这里我测试了一下,IOPS是MB/s为单位,节流就是界面上面说的B/s,建议用节流来限制,因为IOPS限制的太死了,反而会导致虚拟机CPU占用率升高:

然后关于OpenNebula的超卖设置很简单,在被控这里可以设置“超分使用”,当然我不是很清楚这个超分使用最大可以设置的值是多少。。

最后友情提醒一下,OpenNebula的网速限制是只对新创建的虚拟机生效,也就是说如果你打算限制虚拟机的网速,就一定要先设置好,否则虚拟机创建之后就无法再做限制或者更改了。另外OpenNebula没有限制使用流量的功能,所以我觉得OpenNebula的设计初衷更偏向于“私有云”就和ProxMox类似。

赞(3)
未经允许不得转载:荒岛 » Debian9部署OpenNebula被控
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿