Nano is a virtualization platform, which can convert your physical server cluster into a computing resource pool, and dynamically allocate and manage cloud hosts on top of them, effectively improving the resource utilization efficiency of IT facilities and saving management costs.

Nano provides a series of management tools from resource monitoring, instance management, mirroring to snapshots to improve the efficiency of operation and maintenance engineers.

Nano provides complete API and front-end code. Customize your own, or integrate into your project.

  • Virtualization enabled X86 servers, or nested virtualization enabled virtual machines
  • 2 cores/4 GB memory/50 GB disk/1 network interface
  • CentOS 7 Minimal
  • Operation system installed with network ready
See Quick Start Guide page for details.
The installation will usually take three minutes.

All products enable nesting virtualization is possible in theoretically.
Tested products:

  • VMware Station, test OK with Intell VT-x/AMD-V enabled
  • VMware ESXi, test OK with Promiscuous Mode
  • VirtualBox, test fail

The installer will configure network bridge and restart network service during installation, which does not affect the network connection for most Dell series servers and VMware instances.

However, it is true that some servers may cause network disconnection due to network drivers, which should install using the server's IPMI or similar remote administration interface instead of SSH.

Nano needs to configure the firewalld service to allow multicast. Make sure firewalld service enabled and running for installing Nano.
Nano requires a default route configured to work, manually configure a new one and restarted.
Assuming that the default gateway in the network is, execute below command.
$ ip route add default via
The Installer must configure the Firewalld to allow multicast communication, or the modules will fail to discover each other later.
During the installation, the Installer will list all active interfaces of the host with the prefix "em" that enable multicast and unicast.
If no interface available, please check the name, flag, or up status of host interfaces.
The embedded Image server in the Core requires the multicast protocol allowed in the firewalld to work, which already configured by the Installer. However, it knowns that some users turn off the firewalld to cause this error. In this case, please turn on the firewalld. For users who use the Iptables, please manually add a corresponding rule.
The Cell requires a running Core process to complete self-discovery and networking. Check if the Core module and network are running correctly or the domain parameters are identical to Core's configure.

When creating a new instance, the platform will choose the most appropriate node to deploy from each node of the target resource pool base on the requirement and system load.
The above error indicates that there are no nodes that can meet the requirements currently. There are usually the following situations:

  1. No resource node available in the resource pool, first add a cell node to the resource pool and try again.
  2. Nodes available in the resource pool, but all nodes are disabled or offline, please resume the node and try again.
  3. Resource nodes available in the resource pool, but none of them fulfill the resource requirements (Nano reserves some resources for the operating system)
  4. The resource is sufficient, but disk space is not assigned correctly to the Cell. Check the available disk capacity on the dashboard. Reallocate the disk for the mounted path: /, or modify the storage location of the Cell.
When cloning a new instance, it first copies the source image as the new system volume, then calls the 'qemu-img' instruction to resize the disk to the requested size.
This error may occur if the disk capacity of the system volume is smaller than the original image.
Try to create an instance with a larger system volume or build a smaller disk image to fix this problem.
Nano uses QEMU to start the instance, and the QEMU service has a bound Unix user to operate. This error may occur if this user does not have permission to access the disk files.
This problem usually happens when the QEMU installs using its default user 'qemu' first, then the root user executes the Nano Installer to create image paths. In this case, the 'qemu' user can not access the files created by the root.
Check the file "/etc/libvirt/qemu.conf" to verify and fix the problem.
Every Nano module is a standalone binary program that doesn't depend on any specified library. You can use yum for daily updates and maintenance easily.
Every module of Nano could invoke from anywhere, you can configure an absolute path in file 'rc.local' or write your systemd service for auto startup.

Since the new version can only view the instances and images you created, execute the following instructions to modify the ownership of resources and restart the modules, otherwise you will not be able to see your instances and images. Take the user 'nano' and group 'admin' as an example:

Update ownership of images in the Core module
$sed -i 's/\"owner\": \"admin\"/\"owner\": \"nano\"/' /opt/nano/core/data/
$sed -i 's/\"group\": \"manager\"/\"group\": \"admin\"/' /opt/nano/core/data/

Update ownership of instances in the Cell module
$sed -i 's/\"user\": \"admin\"/\"user\": \"nano\"/' /opt/nano/cell/data/
$sed -i 's/\"group\": \"manager\"/\"group\": \"admin\"/' /opt/nano/cell/data/

All issues or PR on Github are appreciated and welcome.