使用Nano - 超轻量级开源云平台搭建云平台
一、Nano简介
官网:https://nanos.cloud/
手册地址: https://nanocloud.readthedocs.io/projects/guide/zh_CN/latest/
Nano是基于KVM技术,使用go语言开发,简单易学的虚拟机管理软件。从web管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用,数分钟之内即可将服务器集群升级为云主机平台。
四大技术特性:1)紧凑—纯go开发。平台部署仅需要三个二进制之心文件即可,最大模块仅9MB,无需第三方软件或者依赖库,模块升级时直接替换。
2)开箱即用:从web管理门户、主机监控、镜像克隆岛故障切换、自带功能完备,无需安装额外组件。从网络发现、组网到设备选择,全流程自动配置,几乎不需要人工干预
3)可靠:ALL or Nothing的事务模式处理任务,失败时自动回撤,释放所有资源并且还原状态。集群实时检测所有节点状态,在内存中自动同步实例数据,确保所有状态和操作即使且有效。
4)易扩展:所有功能均提供REST API接口,应用与资源服务的分离,可以便捷的集成开发。基于goroutine的业务逻辑抽象,能够快速扩展业务功能,而无需了解复杂的后台消息驱动机制。
对于支持Intel VT-d或者AMD-v的普通x86服务器,管理员只需要下载并安装Nano部署包,即可在几分钟内将其转换成云管理平台,并且开始创建云主机实例。
二、基本工作原理
Nano将一台或者多台x86服务器构建成虚拟资源池,当用户通过web门户或者REST接口发出创建云主机请求时,Core模块根据资源池内各节点的负载情况,选择合适的承载节点,通过消息控制该承载节点所安装的Cell模块进行实例创建,并负责后续的管理调度以及资源回收等工作。
Nano平台目前包含三个模块:Core/Cell/FrontEnd
Cell负责云主机的创建与管理;Core将多个Cell组成资源池,根据要求在池内调度和分配云主机;FrontEnd调用Core的API接口为用户提供HTML5的管理门户。
所有的模块可以安装在一个服务器上,作为All In One平台进行体验和测试,但是对生产环境部署时,为了保障平台的可用性,建议每个模块都部署在独立的服务器上。
系统中Core是最核心的主控模块,它负责集群的建立与管理、资源池状态的监控、云主机与镜像资源的分配调度、REST接口服务以及任务请求的处理与分发。启动集群时,Core模块需要最先启动,其他模块才能正常进入服务状态。
Cell模块运行在每个可以部署云主机实例的服务器节点上,Cell模块基于kvm与libvirt工作,启动后持续采集节点资源状况,并实时同步到Core模块,另一方面,收到Core发来的实例创建指令时,分配响应的网络、存储和计算资源,并组装成云主机实例供用户使用。
三、Nano安装
1. 服务器要求:
1)支持虚拟化的X86服务器或者打开嵌套虚拟化(Intel VT-x/AMD-v)的虚拟机
2)2核4G内存50GB磁盘和一个网络设备
2. 系统部署:
安装Nano平台,只需要解压并执行Installer即可。只需要选择需要在当前服务器部署的模块,Installer会自动完成参数配置、依赖安装和模块部署
[root@nano tmp]# wget https://nanos.cloud/files/nano_installer_1.3.0.tar.gz
--2020-12-16 22:28:09-- https://nanos.cloud/files/nano_installer_1.3.0.tar.gz
Resolving nanos.cloud (nanos.cloud)... 185.245.3.199
Connecting to nanos.cloud (nanos.cloud)|185.245.3.199|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 91443670 (87M) [application/x-gzip]
Saving to: ‘nano_installer_1.3.0.tar.gz’
100%[==============================================================================================>] 91,443,670 1.69MB/s in 53s
2020-12-16 22:29:09 (1.63 MB/s) - ‘nano_installer_1.3.0.tar.gz’ saved [91443670/91443670]
[root@web01 tmp]# tar -zxvf nano_installer_1.3.0.tar.gz
[root@nano tmp]# cd nano_installer
[root@nano nano_installer]# ll
total 3480
drwxrwxr-x 3 1001 1001 4096 Apr 29 2020 bin
drwxrwxr-x 2 1001 1001 4096 Jun 26 2018 cert
-rwxrwxr-x 1 1001 1001 3551232 Nov 22 17:18 installer
drwxrwxr-x 3 1001 1001 4096 Jun 26 2018 rpms
[root@nano nano_installer]# ./installer
Welcome to nano installer v1.2.0
0 : Core
1 : FrontEnd
2 : Cell
3 : All
4 : Update
5 : Forcibly Update
6 : Exit
Input index to select module to install, multi-modules split by ',' (like 2,3):
3
default route ready
firewalld service ready
Service Owner Name = 'root' (press enter to accept or input new value):
set user root (uid: 0), group root (gid: 0)
Group Domain Name = 'nano' (press enter to accept or input new value):
Group MultiCast Address = '224.0.0.226' (press enter to accept or input new value):
Group MultiCast Port = 5599 (press enter to accept or input new value):
cert 'cert/nano_ca.crt.pem', key 'cert/nano_ca.key.pem' already generated
cert file '/opt/nano/cert/nano_ca.crt.pem' already installed
key file '/opt/nano/cert/nano_ca.key.pem' already installed
'/etc/pki/ca-trust/source/anchors/nano_ca.crt.pem' already installed
all access modified
3 modules will install...
installing cell dependency packages...
try installing from online reciprocity...
dependency packages installed
0> eth0
1> eth1
enter index to select interface as interface to bridge: 0
try link interface 'eth0' to bridge 'br0', input 'yes' to confirm:yes
network manager stopped
network manager disabled
19 params loaded from '/etc/sysconfig/network-scripts/ifcfg-eth0'
interface script /etc/sysconfig/network-scripts/ifcfg-eth0 updated
bridge script /etc/sysconfig/network-scripts/ifcfg-br0 generated
new bridge br0 created
link eth0 added to bridge br0
bridge br0 up
link eth0 up
network service stopped
network service restarted
installing core module...
module path '/opt/nano/core' created
binary '/opt/nano/core/core' copied
config path '/opt/nano/core/config' created
0> 172.16.1.8
1> 10.0.0.8
enter index to select address as Listen Address, or input a new address: 1
domain configure '/opt/nano/core/config/domain.cfg' generated
API Serve Port (5850 ~ 5869) = 5850 (press enter to accept or input new value):
api configure '/opt/nano/core/config/api.cfg' generated
image server cert path '/opt/nano/core/cert' created
private key with 2048 bits generated
cert file '/opt/nano/core/cert/nano_image.crt.pem' generated
key file '/opt/nano/core/cert/nano_image.key.pem' generated
image server configure '/opt/nano/core/config/image.cfg' generated
core module installed
installing frontend module...
module path '/opt/nano/frontend' created
binary '/opt/nano/frontend/frontend' copied
config path '/opt/nano/frontend/config' created
No configures available, following instructions to generate a new one.
using 10.0.0.8 as portal listen address
Portal listen port (5870 ~ 5899) = 5870 (press enter to accept or input new value):
using 10.0.0.8 as api address
using 5850 as backend api port
default configure '/opt/nano/frontend/config/frontend.cfg' generated
frontend module installed
installing cell module...
module path '/opt/nano/cell' created
binary '/opt/nano/cell/cell' copied
config path '/opt/nano/cell/config' created
user root / group root updated in /etc/libvirt/qemu.conf
/dev/kvm owner changed
group libvirt already exists
user root added to group libvirt
libvirt enabled
libvirt started
domain configure '/opt/nano/cell/config/domain.cfg' generated
polkit access installed
cell module installed
all access modified
ip_forward already enabled
all modules installed
Installer启动后首先要求输入要安装的模块,比如输入”2”+回车只安装Cell,或者可以输入”3”+回车,在一个服务器安装所有模块
Installer默认把模块安装在/opt/nano目录下,默认的通讯域标识为<”nano”:224.0.0.226:5599>,对于初次安装或者网络内仅有一套Nano平台的用户,不建议调整参数,以免错误参数影响平台工作
如果选择安装Cell模块,Installer会要求用户输入”yes”确认构建默认的桥接网络br0
Installer在安装过程中,会选择模块启动监听服务的网卡和地址,如果仅有一张网卡,Installer会自动选择并进行配置;如果存在多个网卡,Installer会列出设备清单要求用户选择Nano集群需要工作的网段
3. 启动服务
所有Nano平台模块都使用命令行控制,调用方式:“<模块名称> [start|stop|status|halt]"
模块安装完成后,需要启动模块以提供服务,模块默认安装在/opt/nano目录下。使用命令手动启动所有模块(假设所有模块安装在同一台服务器上)。必须先启动Core模块。
[root@nano nano_installer]# cd /opt/nano/
[root@nano nano]# ll
total 16
drwxr-----. 3 root root 4096 Dec 20 10:04 cell
drwxr-----. 2 root root 4096 Dec 20 09:50 cert
drwxr-----. 4 root root 4096 Dec 20 10:04 core
drwxr-----. 4 root root 4096 Dec 20 10:04 frontend
[root@nano nano]# cd core/
[root@nano core]# ll
total 8772
drwxr-----. 2 root root 4096 Dec 20 10:04 cert
drwxr-----. 2 root root 4096 Dec 20 10:04 config
-rwxr-----. 1 root root 8974336 Dec 20 10:04 core
[root@nano core]# ./core start
Core Module 1.3.0
service Core_000c29e16c2d listen at '10.0.0.8:5600'
group '224.0.0.226:5599', domain 'nano'
API address ':5850', image service '10.0.0.8:5801'
Image TLS Cert '/opt/nano/core/cert/nano_image.crt.pem', Key '/opt/nano/core/cert/nano_image.key.pem'
core started
[root@nano core]# cd ..
[root@nano nano]# cd cell/
[root@nano cell]# ll
total 8020
-rwxr-----. 1 root root 8205968 Dec 20 10:04 cell
drwxr-----. 2 root root 4096 Dec 20 10:04 config
[root@nano cell]# ./cell start
bridge br0 is ready
default route ready
Cell Modeul 1.3.0
service Cell_000c29e16c2d listen at '10.0.0.8:5602'
group '224.0.0.226:5599', domain 'nano'
cell started
[root@nano cell]# cd ..
[root@nano nano]# ll
total 16
drwxr-----. 5 root root 4096 Dec 20 10:20 cell
drwxr-----. 2 root root 4096 Dec 20 09:50 cert
drwxr-----. 6 root root 4096 Dec 20 10:20 core
drwxr-----. 4 root root 4096 Dec 20 10:04 frontend
[root@nano nano]# cd frontend/
[root@nano frontend]# ll
total 6272
drwxr-----. 2 root root 4096 Dec 20 10:04 config
-rwxr-----. 1 root root 6414336 Dec 20 10:04 frontend
drwxr-xr-x. 3 root root 4096 Dec 20 10:04 web_root
[root@nano frontend]# ./frontend start
data path /opt/nano/frontend/data created
Front-End Module 1.3.0
Core API: http://10.0.0.8:5850/api/v1
Nano Web Portal: http://10.0.0.8:5870
frontend started
FrontEnd模块成功启动后,Console会输出一个监听地址,使用浏览器访问这个地址就可以开始通过web门户管理Nano平台了。
四、Nano配置服务
1. 初始化系统
初次打开Nano管理页面,会提示输入账号和密码,创建初始管理员,密码要求长度不小于8位,必须包含数字、小写字母和大写字母各一个。
创建成功后进入登录界面,登录成功后就可以开始管理Nano平台。
2. 设置共享存储(可选)
默认情况下,Nano中云主机实例的磁盘数据存储在承载Cell节点的本次存储系统中,无需额外配置,性价比也很高。不过管理员也可以指定将数据存在在独立的NFS文件服务器上,防止Cell节点故障影响云主机服务,也可以方便的在节点之间迁移实例,重新均衡负载,以提升集群群体性能和使用寿命。
使用共享存储,只需要创建一个存储资源池,然后与计算资源池关联。关联之后,所有添加到该资源池的资源节点,都会由Nano自动配置为使用共享存储,无需用户干预和设置。
一个存储池对应一个共享存储路径,一个存储池可以同时为多个极端池提供后端存储,但是每个计算资源池只能绑定一个存储池。
配置NFS服务器
要让Nano正常使用NFS存储后端,首先需要正确配置好NFS服务器。假定NFS server地址为10.0.0.7,共享路径为/var/nfs/nano,Nano集群网段为10.0.0.0/24.
安装NFS服务并设置为开机自启
[root@web01 ~]# yum install nfs-utils
[root@web01 ~]# systemctl start nfs
[root@web01 ~]# systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: active (exited) since Sun 2020-12-20 11:06:24 CST; 5s ago
Process: 1436 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 1419 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 1417 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 1419 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
Dec 20 11:06:24 web01 systemd[1]: Starting NFS server and services...
Dec 20 11:06:24 web01 systemd[1]: Started NFS server and services.
[root@web01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
创建共享路径
[root@web01 ~]# mkdir -p /var/nfs/nano
[root@web01 ~]# ll -d /var/nfs/nano/
drwxr-xr-x 2 root root 4096 Dec 20 11:07 /var/nfs/nano/
由于NFS是将客户端用户直接映射到服务端用户进行权限判断,当管理员使用不同的用户运行nano模块和kvm服务时,需要设置不同的访问规则
使用root用户运行nano和kvm/qemu服务
NFS默认禁止将客户端root映射为服务端root用户,所以设置路径时需要使用no_root_squash选项
[root@web01 ~]# vi /etc/exports
[root@web01 ~]# cat /etc/exports
/var/nfs/nano 10.0.0.0/24(rw,sync,no_subtree_check,no_root_squash)
[root@web01 ~]# exportfs -a
[root@web01 ~]# showmount -e
Export list for web01:
/var/nfs/nano 10.0.0.0/24
[root@web01 ~]# mount -t nfs 10.0.0.7:/var/nfs/nano /mnt
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 39G 3.2G 34G 9% /
devtmpfs 983M 0 983M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 8.7M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 197M 95M 103M 48% /boot
tmpfs 199M 0 199M 0% /run/user/0
10.0.0.7:/var/nfs/nano 39G 3.2G 34G 9% /mnt
使用普通用户运行Nano和kvm/qemu服务(忽略)
对于普通用户,NFS是根据客户端用户的uid/gid映射到本地相同id用户和组进行权限校验
假定Cell节点运行Nano和kvm/qemu是用户及用户组nano/nano,对应的uid/gid为108,则需要在NFS Server创建相同ID的用户,并且将其设置为共享路径的owner
创建存储池
NFS Server配置完成后,在web门户上选择“存储池”—>创建,创建新的共享存储池
为存储池设定名称nfs-pool1,输入NFS Server地址:10.0.0.7和共享路径:/var/nfs/nano,点击创建
创建成功后返回存储清单,能够看到新建的存储池
修改存储设置
共享存储创建完成后,可以修改已有计算池的关联存储或者新建一个新的计算池,当新的Cell节点加入资源池后,Nano会自动同步并设置存储配置,无需客户干预
以修改默认的计算池default为例,在资源池菜单的资源池清单中,点击default资源池的修改图标,在编辑界面下拉菜单中选择新建的“nfs-pool1”
建议需要保证云主机实例高可用的用户打开“Failover/故障迁移”开关,当故障迁移生效时,如果Nano检测到某一个Cell节点失联,会将该节点承载的云主机实例自动迁移到集群内其他节点恢复服务。
修改后检查清单中相应属性图标是否生效
设置完成后,就可以向资源池中添加资源节点了,使用了共享存储的Cell节点创建实例、快照时,会自动保存在NFS Server的共享路径上。
3. 添加资源
1)添加资源节点
Nano平台初次启动时,会默认创建一个名为default的计算资源池,但是该资源池没有可用的资源。因此首先将一个Cell节点添加到该资源池,以便有足够的资源分配云主机。
在web门户上,选择“资源池”菜单,点击default资源池的Cell节点按钮,进入资源节点清单:
当前没有任何资源节点,点击“添加”按钮,进入添加页面
在下拉菜单中,选择目前平台中已经发现并且尚未加入资源池Cell节点,完成添加
添加完成回到资源节点清单,可以看到新Cell已经加入资源池,并且处于可用状态
对于使用共享存储的Cell节点,添加后请在节点清单中点击Detail图标,查看存储加载状态,确保后端存储已经成功挂载。
资源节点状态可用后,就可以在“资源池”或者“云主机”菜单创建新主机实例了。
2)上传镜像
空白云主机并不能满足日常使用要求,需要安装操作系统和应用软件,Nano提供了多种手段能够快速部署可用云主机
磁盘镜像
磁盘镜像保存了模板主机系统磁盘的数据,用户可以选择从预置的磁盘镜像克隆,新建云主机能够获得与模板云主机完全一致的系统和预装软件,有效减少了系统重复安装部署的时间。
磁盘镜像汇总还可以通过预装Cloud-init模块,配合Nano的CI服务,自动完成管理员密码初始化、系统磁盘扩容和自动数据盘格式化及挂载等配置任务。
光盘镜像
光盘镜像保存了ISO格式的光盘数据,可以加载云主机中安装操作系统或者其他软件,通常用于定制模板云主机。
默认的资源节点为/var/lib/libvirt/images
存储系统镜像文件:/opt/nano/core/data
五、云主机管理
注:目前推荐对于云主机使用直连模式的网络连接,即云主机通过物理服务器的桥接网络直接连入物理网络,默认使用DHCP从物理网络获取IP地址,与传统物理服务器的网络管理方式一致,尽量减少管理员维护网络的难度和工作量。
创建云主机
Nano中云主机是基于资源池创建的,Core收到创建云主机请求时,首先检测池内是否有可用的Cell,然后评估各Cell可用资源和实时负载,选择加权负载最低的Cell创建实例。
在Nano中创建云主机时,有以下参数需要设置
主机名:用于标识云主机,仅允许数字字母和“-”
资源池:承载该实例的资源池名称,Nano会在指定资源池中选择合适的Cell节点进行创建
核心数:为云主机分配的核心数量,不建议超过设置超过Cell的最大物理线程数
内存:为云主机分配内存大小,不能超过Cell的最大物理内存
系统版本:Nano会根据选择的版本对云主机硬件设置进行优化,在保证兼容性的情况下提供更好的性能。
系统磁盘:选择云主机系统磁盘的数据源
数据磁盘:选择是否为云主机挂载额外的数据盘
开机启动:启用后,当Cell服务器开机时,会自动启动云主机实例
系统盘镜像:是否从预制镜像生成云主机系统盘的数据
CPU优先级:高优先级实例在繁忙时,会获得更多系统资源
IOPS:设置磁盘IO读写上限,默认为无限制
上下行带宽:设置网络带宽限制,默认无限制
系统镜像来源有两种:空白系统和预制镜像
空白系统:空白系统是默认选项。空白系统意味着创建出来的云主机没有安装任何操作系统和软件,需要通过加载光盘镜像安装操作系统。空白系统通常用于构建模板云主机。
预制镜像:预制镜像的系统磁盘已经预装了操作系统和系统软件,并可能进行了一些配置优化和调整,预制镜像可以通过模板主机构建,也可以从其他平台下载后直接上传系统。创建云主机时,在系统镜像菜单中选择想要的预制镜像,克隆完成后的新主机拥有跟源镜像相同的系统和软件,能够开机直接使用。
带Cloud-init组件的预制镜像:带Cloud-init组件的预制镜像系统中,在普通预制镜像的基础上,额外安装了Cloud-init和cloud-utils组件,配合Nano提供cloud-init服务,可以实现初始化管理员账号、自动格式化并挂载数据盘和扩展系统盘容量等多种便利的管理功能,极大方便了管理员快速部署云主机实例。
带Cloud-init组件的预制镜像同样可以通过模板云主机构建或者直接上传。使用时,处理选择源镜像,还需要勾选Cloud-init模块并设置好初始化参数,以便Nano提供相应的服务。
1 以预制镜像创建云主机
确定后,点击启动云主机
开启之后,在监控平台查看,可以正常登陆
2. 以空白系统创建云主机
选择加载so光盘镜像
远程监控可以看到正在安装系统
六、平台管理
Nano提供了一系列便捷的管理功能,用于简化管理员的日常运维工作
1. 仪表盘
Nano门户首页提供了整个平台级别的资源用量仪表盘,包含虚拟资源和物理资源的用量,便于随时了解系统负载情况,及时对资源进行扩容或者调整。
2. 增加资源节点
当系统负载较大时,可以通过添加新的资源节点,来扩充池内的可用资源
首先,需要在新的服务器上部署并启动Cell模块,然后在资源池的节点清单中,选择添加
在主机10.0.0.7上安装cell模块
[root@web01 nano_installer]# ./installer
Welcome to nano installer v1.2.0
0 : Core
1 : FrontEnd
2 : Cell
3 : All
4 : Update
5 : Forcibly Update
6 : Exit
Input index to select module to install, multi-modules split by ',' (like 2,3):
2
default route ready
warning: firewalld service maybe stopped
Nano requires a running firewalld service to work properly.
enter to exit installation, or input 'yes' to continue
yes
warning: choose to continue with risk, your installation may not work
Service Owner Name = 'root' (press enter to accept or input new value):
set user root (uid: 0), group root (gid: 0)
project path '/opt/nano' created
Group Domain Name = 'nano' (press enter to accept or input new value):
Group MultiCast Address = '224.0.0.226' (press enter to accept or input new value):
Group MultiCast Port = 5599 (press enter to accept or input new value):
cert 'cert/nano_ca.crt.pem', key 'cert/nano_ca.key.pem' already generated
cert install path '/opt/nano/cert' created
'cert/nano_ca.crt.pem' copied to '/opt/nano/cert/nano_ca.crt.pem'
'cert/nano_ca.key.pem' copied to '/opt/nano/cert/nano_ca.key.pem'
'/opt/nano/cert/nano_ca.crt.pem' copied to '/etc/pki/ca-trust/source/anchors/nano_ca.crt.pem'
'/etc/pki/ca-trust/source/anchors/nano_ca.crt.pem' updated
all access modified
1 modules will install...
installing cell dependency packages...
try installing from online reciprocity...
dependency packages installed
try link interface 'eth0' to bridge 'br0', input 'yes' to confirm:yes
network manager stopped
network manager disabled
19 params loaded from '/etc/sysconfig/network-scripts/ifcfg-eth0'
interface script /etc/sysconfig/network-scripts/ifcfg-eth0 updated
bridge script /etc/sysconfig/network-scripts/ifcfg-br0 generated
new bridge br0 created
link eth0 added to bridge br0
bridge br0 up
link eth0 up
network service stopped
network service restarted
installing cell module...
module path '/opt/nano/cell' created
binary '/opt/nano/cell/cell' copied
config path '/opt/nano/cell/config' created
user root / group root updated in /etc/libvirt/qemu.conf
/dev/kvm owner changed
group libvirt already exists
[root@web01 ~]# cd /opt
[root@web01 opt]# ll
total 4
drwxr-----. 4 root root 4096 Dec 20 15:39 nano
[root@web01 opt]# cd nano/
[root@web01 nano]# ll
total 8
drwxr-----. 3 root root 4096 Dec 20 15:39 cell
drwxr-----. 2 root root 4096 Dec 20 15:30 cert
[root@web01 nano]# cd cell/
[root@web01 cell]# ll
total 8020
-rwxr-----. 1 root root 8205968 Dec 20 15:39 cell
drwxr-----. 2 root root 4096 Dec 20 15:39 config
[root@web01 cell]# ./cell start
bridge br0 is ready
default route ready
Cell Modeul 1.3.0
service Cell_000c29b1b5c3 listen at '10.0.0.7:5600'
group '224.0.0.226:5599', domain 'nano'
cell started
安装成功
在下拉菜单中选择新装的Cell节点进行添加
当资源池中Cell节点的状态变为Online时,就可以承载新建的云主机实例了
3. 构建模板镜像
Nano可以将任意云主机的系统磁盘制作成磁盘镜像,然后从镜像快速克隆出于原模板主机系统,软件一样的新实例,以便大幅度提升管理员部署实例的效率。