之前在开设KVM小鸡这块,我介绍过SolusVM以及ProxMox,但是在我的认知里,OpenNebula才是最适合开KVM的神器。下面简单说一下我这么喜欢OpenNebula的原因。
1.OpenNebula能够自定义虚拟机内的CPU型号和架构。
2.OpenNebula可以设置显示假的CPU核心数。
3.OpenNebula默认创建的虚拟机硬盘镜像是qcow2,qcow2与其他格式最大的不同之处就在于qcow2是“硬盘空间你实际用了多少我就给你划分多少”。
我就随便说了上面3点,奸商们都懂,这里就不多BB了。下面就开始部署OpenNebula。
我使用的环境:
Xshell
FlashFXP
主控:CentOS7X64(Linode)
被控:CentOS7X64(Hetzner使用救援系统安装,别用VNC安装,别问为什么。另外KVM需要桥接网卡,每台机器需要的网卡配置可能不同,本文下方的配置仅供参考)
OpenNebula分为主控和被控(节点)两个部分。我们先来部署主控。
关防火墙:
systemctl stop firewalld.service
关Selinux:
vi /etc/selinux/config
里面的值改成:
SELINUX=disabled
然后重启机器:
reboot
新建一个yum源:
vi /etc/yum.repos.d/opennebula.repo
写入:
[opennebula] name=opennebula baseurl=https://downloads.opennebula.org/repo/5.6/CentOS/7/x86_64 enabled=1 gpgkey=https://downloads.opennebula.org/repo/repo.key gpgcheck=1 #repo_gpgcheck=1
安装EPEL源:
yum -y install epel-release
安装OpenNebula主控依赖:
yum -y install opennebula-server opennebula-sunstone opennebula-ruby opennebula-gate opennebula-flow
安装OpenNebula主控额外依赖和主程序:
/usr/share/one/install_gems
修改默认的oneadmin密码(这个账号密码用于登录OpenNebula的控制面板):
echo "oneadmin:设置一个你的密码" > /var/lib/one/.one/one_auth
启动opennebula:
systemctl start opennebula systemctl start opennebula-sunstone
访问你的服务器公网IP+端口9869,应该可以看到如下图界面:
主控这块的安装暂时告一段落,现在来装被控。
在开始之前和装主控一样,要关闭系统防火墙以及Selinux,相关命令自己往上翻就能找到,这里就不重复了。
做完这一系列事情之后,新建一个yum源:
vi /etc/yum.repos.d/opennebula.repo
写入:
[opennebula] name=opennebula baseurl=https://downloads.opennebula.org/repo/5.6/CentOS/7/x86_64 enabled=1 gpgkey=https://downloads.opennebula.org/repo/repo.key gpgcheck=1 #repo_gpgcheck=1
然后开始安装:
yum -y install opennebula-node-kvm
完成之后记得重启libvirtd:
systemctl restart libvirtd
现在来设置KVM网卡桥接,首先装两个依赖:
yum -y install net-tools bridge-utils
新建一个br0网卡:
vi /etc/sysconfig/network-scripts/ifcfg-br0
写入:
DEVICE=br0 TYPE=Bridge BOOTPROTO=none IPADDR=服务器的公网IP NETMASK=子网掩码 SCOPE="peer 网关IP" ONBOOT=yes DELAY=0 IPV6INIT=yes
然后再新建一个路由:
vi /etc/sysconfig/network-scripts/route-br0
写入:
ADDRESS0=0.0.0.0 NETMASK0=0.0.0.0 GATEWAY0=网关IP
重要!现在就重启你的网卡:
/etc/init.d/network restart
重启完成之后,编辑主网卡配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
写入:
DEVICE=enp3s0 HWADDR=服务器MAC地址 IPV6INIT=yes ONBOOT=yes BRIDGE=br0
然后再重启一遍网卡:
/etc/init.d/network restart
如果没有意外,你做完这些事情之后,你的服务器依旧可以联网。
现在来配置OpenNebula主控和被控的SSH无密码访问。这也是非常关键的一步,因为OpenNebula大部分功能都依靠SSH实现,所以这里一定不能出错。
重要!以下操作在主控和被控上都要完成。
首先编辑:
vi /etc/ssh/ssh_config
在这个配置文件内找到:
# StrictHostKeyChecking ask
修改成:
StrictHostKeyChecking no
接着再编辑:
vi /etc/ssh/sshd_config
找到:
# PubkeyAuthentication no
改为:
PubkeyAuthentication yes
然后重启sshd:
systemctl restart sshd.service
现在我们回到主控中,切换到oneadmin用户:
su oneadmin
执行如下命令:
ssh-keyscan 主控服务器公网IP 被控服务器公网IP >> /var/lib/one/.ssh/known_hosts
完成之后,使用FlashFXP找到主控内的如下目录:
/var/lib/one/.ssh
把这个目录下载到本地,然后再用FlashFXP上传到被控的如下目录:
/var/lib/one/
如此一来,两台机器相互的SSH无密码访问应该已经配置完成,可以自行在两台服务器中进行简单测试:
在主控中执行如下命令测试:
ssh 被控服务器公网IP
在被控中执行如下命令测试:
ssh 主控服务器公网IP
现在我们打开OpenNebula的控制面板,使用我们之前的oneadmin账号和密码进行登录,初次登录页面大概长这个样子:
首先我们要把主控和被控进行对接,对接方法如下图所示:
如果一切正常,那么状态会显示“启用”:
接下来我们要新建一个“虚拟网络”:
按如下图填写:
继续:
然后“安全”和“QoS”这块我们直接跳过,来到Context这里,按如下图填写:
接着我们来下载系统模板:
选择把模板存储在我们的主控中,然后点击下载即可:
然后我们点击“模板-虚拟机”,选中一个模板进行编辑(更新):
选中KVM虚拟化,然后在这里设置一些默认值,比如CPU/内存之类的:
关键!点击存储-高级选项:
在这里把总线和缓存分别改为:Virtio/WriteBack。这将大幅度提升虚拟机的硬盘IO速度。
然后看到系统和CPU,在这里你可以随意更改虚拟机CPU的型号:
还有一些其他设置这里就不多说了,下面我们就可以来尝试开设一台KVM小鸡试试了。点击实例-虚拟机,左上角+号开始新建:
选择一个系统模板:
然后进行具体的配置,注意这里有一个VCPU的功能,这里就是虚拟机内实际看到的CPU核心数,你可以自由发挥,写个100核都没问题233:
然后点击网络选项卡,给虚拟机分配一个网络接口:
然后点击左上角的创建按钮即可,虚拟机现在就开始创建了,我们点击进入虚拟机内,可以看到具体的日志,虚拟机创建并运行成功后,会有如下图字样:
因为OpenNebula的特性,默认情况下虚拟机只能通过SSH密钥访问,所以我们要生成SSH密匙对,具体的生成方法这里就不讲了,主要讲一下如何把SSH密匙添加到虚拟机内。首先我们要关闭正在运行的虚拟机,然后点击如下图的按钮:
然后把你的SSH公钥粘贴到这里:
然后重新启动虚拟机即可使用SSH密匙登录了。
就问你们这种12个核心的E3 KVM小鸡,你们怕不怕?
一般人用命令还真看不出来有什么问题,除了这核心数很假就是了233:
然后我们再来说一下这个qcow2的硬盘,都说KVM无法超售硬盘,但实际上轻轻松松就能超,我们在虚拟机内看到确实划分给这台机器100GB硬盘了:
但实际上这台机器只使用了不到2GB的硬盘,那么根据qcow2的机制实际上宿主机内就只划分了2G不到的空间给这台小鸡了,100G只是一个峰值而已,只有当用户真正用到100G了,那宿主机内的硬盘才会占用100G。事实是不是如此,我们看下宿主机内的硬盘占用不就清楚了,如下图宿主机内的硬盘才占用了5G不到:
所以综合上述所说,你有什么理由不玩玩OpenNebula?
可惜whmcs没有插件来对接,不然的话。。。嘿嘿嘿
为什么你每次都能这么快的出现,细思极恐。。。
水tg看到了推送,而且才两次呀
下次要快点,评论完再看文章
推送???RSS推送???
https://t.me/sabiarss
人捏,人怎么跑了
我就默默的进去点了下订阅。。
这个或许可以用https://marketplace.whmcs.com/product/2058
有想法的可以上,100刀对于我这种玩玩而言的人来说,太贵了。。。
我也订阅了哈哈哈
要是可以对接whmcs就好了
我也想,可是没插件
https://marketplace.whmcs.com/product/2058
lala,我在安装主控的时候踩坑了,启动 OpenNebula出错,防火墙和selinux已经关闭,提示:
[root@VM_0_7_centos ~]# systemctl status opennebula.service
● opennebula.service – OpenNebula Cloud Controller Daemon
Loaded: loaded (/usr/lib/systemd/system/opennebula.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Thu 2018-08-30 16:59:07 CST; 7min ago
Process: 25454 ExecStopPost=/usr/share/one/follower_cleanup (code=exited, status=0/SUCCESS)
Process: 25452 ExecStart=/usr/bin/oned -f (code=exited, status=255)
Process: 25439 ExecStartPre=/usr/sbin/logrotate -f /etc/logrotate.d/opennebula -s /var/lib/one/.logrotate.status (code=exited, status=0/SUCCESS)
Main PID: 25452 (code=exited, status=255)
Aug 30 16:59:02 VM_0_7_centos systemd[1]: opennebula.service: main process exited, code=exited, …n/a
Aug 30 16:59:02 VM_0_7_centos systemd[1]: Failed to start OpenNebula Cloud Controller Daemon.
Aug 30 16:59:02 VM_0_7_centos systemd[1]: Unit opennebula.service entered failed state.
Aug 30 16:59:02 VM_0_7_centos systemd[1]: opennebula.service failed.
Aug 30 16:59:07 VM_0_7_centos systemd[1]: opennebula.service holdoff time over, scheduling restart.
Aug 30 16:59:07 VM_0_7_centos systemd[1]: start request repeated too quickly for opennebula.service
Aug 30 16:59:07 VM_0_7_centos systemd[1]: Failed to start OpenNebula Cloud Controller Daemon.
Aug 30 16:59:07 VM_0_7_centos systemd[1]: Unit opennebula.service entered failed state.
Aug 30 16:59:07 VM_0_7_centos systemd[1]: opennebula.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
这么悲剧的吗。。。
用这个命令看下更详细的日志:journalctl -xe
实在解决不了,就换台机器装。
日志放在这里了
https://imgchr.com/i/PvYobF
这日志也看不出来什么问题,要不你把系统重装成Debian9,然后用官方的这个文档先装主控:
http://docs.opennebula.org/5.6/deployment/opennebula_installation/frontend_installation.html
我今天正好要写一篇用Debian9装被控的文章,然后你可以结合一下。
羡慕玩的起杜甫的人。
老大, 有没有被控单IP用NAT转发的方式开小鸡的方法呢?
没有,这个我可能搞不了,技术太菜了。。。
大佬,这个程序无法搞NAT吗?
Lala大佬,这个好东西支持NAT了,但是我看不懂官网说明 ,大佬,可以更新一下NAT的玩法吗?
特别是主控和被控,在同一台机器的顺手介绍介绍
我查了一下,好像是没有中文教程的,到时候你就是全网独一份
说实话这个东西不是很好用,和proxmox比起来差很多,当然玩玩还是可以的,我看看能不能水一篇文章。。
.好吧,请教一下大佬,就你个人使用过后的经验来看,哪一个程序开NAT kvm是比较不错的..我打算自己开一点NAT来,自己用或者是出租两个收点本回来hz 太贵了
那必然是proxmox,如果想搞正规一点还可以对接virtualizor。