concept - project-nano/releases GitHub Wiki

Basic Concept

Nano is an Infrastructure as a Service (IaaS) cloud platform for virtual host instances and virtual network creation and management based on x86 servers.

Whether it is a single-node server of All in One or a large cluster of tens of thousands of nodes, is easily converted to a unified management platform with Nano installed.

Resource Model

Resource Model

Basic

Nano manages one or more physical servers and allocates and creates cloud instances on demand based on the resource quotas they have. It provides the same functions and management capabilities as traditional physical servers and is responsible for reclaiming idle resources.

The cloud host is also called the computing instance, which is the primary object used in Nano. Each instance corresponds to a virtual machine running on physical servers.

Computing Cell

The resource node (the Computing Cell) is the smallest physical unit in Nano and is also the container running the virtual machine.

Each physical server corresponds to a Compute Cell.

The physical server with cell module installed recognized as a resource node. All its resources used for allocating cloud host instances.

Computing Pool

The computing pool is a logical management unit in Nano and the most important unit.

A computing pool usually contains multiple resource nodes. When creating a new instance, you must specify the target computing pool.

When new creating request received, it will select the appropriate node base on the real-time load and resource quota of all nodes in the current pool.

An instance can migrate to other nodes in the same pool.

If the high-availability mode is enabled, the fault instances will automatically resume at other nodes in the same pool when some nodes lost.

A new resource node must add to a computing resource pool before allocating instances. A resource node can only belong to one computing pool to ensure isolation of resources.

All instance in a resource pool has the same storage and network characteristics. For example, the instances in resource pool A using local storage, and the instances in resource pool B using the shared port pool for external network mapping.

This design simplifies the management of the business model.

For example, you can create a pool A using local storage bundle with shared ports for regular customers, and create another pool B using a shared storage plus exclusive IP for the VIP.

When you specify different resource pools for creation, you can easily build cloud host instances with completely different service capabilities, and effectively guarantee their respective service quality.

You can easily satisfy different user requests by specifying a target pool when creating instances.

Nano comes with a default computing pool named "default".

Remember to add an available resource node before creating any instances.

Available Zone

The Available Zone usually corresponds to a physical IDC room or a separate Nano platform, and an area can have multiple computing resource pools. In most cases, the Nano platform only needs one default domain to work. If you need to set up a multi-center cluster, you need to configure it for multi-region collaboration.

Modules

Modules

The Nano has different modules, and the current version (v 0.1) contains three modules:

Core: The main module is responsible for managing cluster resources, instance allocation, and providing REST interfaces to the front end. The current version also embeds an image server (which may strip separately) to provide features of media images and disk images.

Cell: Installed on each physical server that needs to join the resource pool, it is responsible for reporting the current resource usage and instance running status to the Core, execute creating and managing command from ding to the Core.

FrontEnd: Based on Core's API interface, managing services of Nano through the Web. Users can also customize and adjust front-end pages according to their needs.

Each module is a process that can start and stop independently. Modules can run on the same server or distribute on multiple servers, but each module can only have one running instance on one server.

Instances and Images

Instances and Images

In addition to the virtual physical resources allocated, the instance also needs an internal operating system to work.

Nano currently provides two type of image resources: media image and disk image, to help administrators build an easy to use cloud platform.

Media Image means that the administrator uploads the ISO file to the image server, and then loads it when the instance starts. Similar to the physical server booting from the CD-ROM drive, it is mainly used to install the new system on the empty instance for preparing the instance template.

Disk images build from an instance has the operating system and software installed disk, copy disk data and stored on the image server.

When a new instance created from a disk image, it will have the same operating system and software as the original instance. Everything is available when out fo box.

Unlike an instance must belong to a resource pool, the image service is available for all resource pools in the current zone. Means that the image can build from any instance of any resource pool and can also use for any instances in any pools.