Nano基于KVM技术,使用Go语言开发,简单易学的虚拟机管理软件,从Web管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用。类似noKvm、Proxmox VE这类虚拟化管理平台,Nano无需第三方软件或者依赖库即可执行,安装非常简单。
服务器要求
- 支持虚拟化的X86服务器或者打开嵌套虚拟化(Intel VT-x/AMD-v)的虚拟机
- 2核4G内存50GB磁盘和一个网络设备
- CentOS 7.7(1908) Minimal
- 操作系统安装完成并且网络就绪
- Firewalld服务启动并且正常运行
- 如有Raid/LVM请先完成配置,再进行Nano安装
安装Nano
复制下面的命令进行安装
代码语言:javascript复制#下载Nano
wget https://nanos.cloud/files/nano_installer_1.2.0.tar.gz
#解压
tar zxfv nano_installer_1.2.0.tar.gz
#进入目录
cd nano_installer
#安装
./installer
安装的时候会要求选择模块,一般情况选3(全部)安装,其它选项如果不清楚,全部保持默认即可,通常在几分钟即可完整安装。
运行Nano
Nano的相关文件位于/opt/nano/
目录,需要进入该目录启动下面的服务:
cd /opt/nano/core
./core start
cd ../cell
./cell start
cd ../frontend
./frontend start
当front-end模块成功启动后,会提示一个形如"192.168.6.3:5870"的监听地址,使用Chrome或者Firefox打开这个地址就可以进行平台管理了,首次打开WEB界面会要求设置账号、密码。
进入后Nano WEB管理界面后,看到的内容如下,界面还是挺美观的。
首次使用
设置计算资源池
在下图的位置设置资源节点,否则无法正常创建云主机。
地址池
在下图中设置地址池,否则无法自动为虚拟机分配IP地址,同时请确保这些地址在同一网络下是正常可用的,并非随意填写。
光盘镜像
系统镜像可以自行去官方先下载好,然后通过下方界面进行上传。xiaoz使用Edge (Chromium)上传镜像的时候,卡在100%,原因不明。后来更换Chrome后就可以了,官方推荐使用Chrome或Firefox浏览器。
上传后的光盘镜像位于/opt/nano/core/data/media_images
目录,目前还不支持直接在宿主机上wget下载,只能在线上传镜像,这点感觉不是特别方便。
创建云主机
上方条件准备完毕后即可创建云主机,按下图所示,先插入光盘镜像,然后启动系统,再进入控制台进行安装。
遇到的问题
xiaoz安装Windows Server 2019后,发现从控制台进入,无法发送Ctrl Alt Del
快捷键,解决办法是使用VNC客户端进行连接。
点击资源监控的时候浏览器提示内存不足,这个情况应该Windows虚拟机会出现此问题,解决办法是安装virtio驱动和qeum agent,下载地址为:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.173-9/virtio-win.iso
,不然nano查看虚拟机资源监控会卡住。
Nano脚本管理与开机启动
每次都进入/opt/nano/core
目录去管理Nano的3个服务,非常不方便,我们可以编写脚本来对Nano进行管理。xiaoz已经编写好了,可以直接下载使用:
#下载管理脚本
wget -O /usr/sbin/nano https://raw.githubusercontent.com/helloxz/shell/master/nano.sh
#添加执行权限
chmod x nano
脚本添加后,可以使用下方的命令来快速管理Nano。
代码语言:javascript复制#查看nano状态
nano status
#停止nano
nano stop
#启动nano
nano start
#重启nano
nano restart
继续编写systemd
服务,以便设置开机启动,新建一个nano服务文件vi /etc/systemd/system/nano.service
,内容如下:
[Unit]
Description=Nano - https://nanos.cloud/
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/nano
ExecRestart=/usr/sbin/nano restart
ExecStop=/usr/sbin/nano stop
[Install]
WantedBy=multi-user.target
服务添加完毕后输入systemctl daemon-reload
刷新刚刚添加的nano服务,然后就可以使用systemctl
来进行管理了,命令如下:
#设置nano开机启动
systemctl enable nano
#启动nano
systemctl start nano
#停止nano
systemctl stop nano
#重启nano
systemctl restart nano
注意,此服务需要依赖于上方的nano.sh
脚本,xiaoz已放到Github:https://github.com/helloxz/shell/blob/master/nano.sh
总结
Nano使用Golang开发,无需第三方软件或者依赖库即可执行,安装非常简单,相比其它虚拟化管理平台,安装更简单而且不容易出错。xiaoz目前仅用过VMware、ESXI、Nano这几个虚拟化软件,ESXI必须使用镜像才能运行,而Nano只需要CentOS 7即可安装。有网友分享说Nano比PVE更加好用,好吧,我没用过PVE,就无法做对比了。
Nano也有一些不足,比如光盘镜像必须在线上传,如果您是国外的独立服务器,镜像比较大的情况下,简直是一个噩梦,而ESXI则可以直接在宿主机上wget。另外安装Windows虚拟机后,WEB控制台那里无法发送Ctrl Alt Del
,最后只好用VNC客户端操作。
Nano使用MIT许可,无论自用、修改或者商用都无限制,Nano能满足日常折腾需要,但感觉还不够成熟,如果是商用或者线上正式环境,请自行斟酌考虑。(xiaoz继续踩坑中~)
此文部分内容参考了:
- Nano快速安装指引
- Nano功能特性
最后感谢“李子(106****406)”同学的热心帮助,避免xiaoz少踩了一些坑。