使用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平台进行体验和测试,但是对生产环境部署时,为了保障平台的可用性,建议每个模块都部署在独立的服务器上。

搭建javascript 搭建私有云平台_云主机

系统中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位,必须包含数字、小写字母和大写字母各一个。

搭建javascript 搭建私有云平台_云主机_02

 

搭建javascript 搭建私有云平台_Core_03

创建成功后进入登录界面,登录成功后就可以开始管理Nano平台。

搭建javascript 搭建私有云平台_Core_04

搭建javascript 搭建私有云平台_云主机_05

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门户上选择“存储池”—>创建,创建新的共享存储池

搭建javascript 搭建私有云平台_服务器_06

为存储池设定名称nfs-pool1,输入NFS Server地址:10.0.0.7和共享路径:/var/nfs/nano,点击创建

搭建javascript 搭建私有云平台_Core_07

创建成功后返回存储清单,能够看到新建的存储池

搭建javascript 搭建私有云平台_云主机_08

修改存储设置

共享存储创建完成后,可以修改已有计算池的关联存储或者新建一个新的计算池,当新的Cell节点加入资源池后,Nano会自动同步并设置存储配置,无需客户干预

以修改默认的计算池default为例,在资源池菜单的资源池清单中,点击default资源池的修改图标,在编辑界面下拉菜单中选择新建的“nfs-pool1”

搭建javascript 搭建私有云平台_云主机_09

建议需要保证云主机实例高可用的用户打开“Failover/故障迁移”开关,当故障迁移生效时,如果Nano检测到某一个Cell节点失联,会将该节点承载的云主机实例自动迁移到集群内其他节点恢复服务。

修改后检查清单中相应属性图标是否生效

搭建javascript 搭建私有云平台_服务器_10

设置完成后,就可以向资源池中添加资源节点了,使用了共享存储的Cell节点创建实例、快照时,会自动保存在NFS Server的共享路径上。

3. 添加资源

1)添加资源节点

Nano平台初次启动时,会默认创建一个名为default的计算资源池,但是该资源池没有可用的资源。因此首先将一个Cell节点添加到该资源池,以便有足够的资源分配云主机。

在web门户上,选择“资源池”菜单,点击default资源池的Cell节点按钮,进入资源节点清单:

搭建javascript 搭建私有云平台_云主机_11

当前没有任何资源节点,点击“添加”按钮,进入添加页面

搭建javascript 搭建私有云平台_云主机_12

在下拉菜单中,选择目前平台中已经发现并且尚未加入资源池Cell节点,完成添加

搭建javascript 搭建私有云平台_服务器_13

添加完成回到资源节点清单,可以看到新Cell已经加入资源池,并且处于可用状态

搭建javascript 搭建私有云平台_Core_14

对于使用共享存储的Cell节点,添加后请在节点清单中点击Detail图标,查看存储加载状态,确保后端存储已经成功挂载。

搭建javascript 搭建私有云平台_云主机_15

资源节点状态可用后,就可以在“资源池”或者“云主机”菜单创建新主机实例了。

2)上传镜像

空白云主机并不能满足日常使用要求,需要安装操作系统和应用软件,Nano提供了多种手段能够快速部署可用云主机

磁盘镜像

磁盘镜像保存了模板主机系统磁盘的数据,用户可以选择从预置的磁盘镜像克隆,新建云主机能够获得与模板云主机完全一致的系统和预装软件,有效减少了系统重复安装部署的时间。

磁盘镜像汇总还可以通过预装Cloud-init模块,配合Nano的CI服务,自动完成管理员密码初始化、系统磁盘扩容和自动数据盘格式化及挂载等配置任务。

搭建javascript 搭建私有云平台_Core_16

搭建javascript 搭建私有云平台_云主机_17

搭建javascript 搭建私有云平台_服务器_18

光盘镜像

光盘镜像保存了ISO格式的光盘数据,可以加载云主机中安装操作系统或者其他软件,通常用于定制模板云主机。

搭建javascript 搭建私有云平台_搭建javascript_19

搭建javascript 搭建私有云平台_Core_20

默认的资源节点为/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 以预制镜像创建云主机

搭建javascript 搭建私有云平台_云主机_21

搭建javascript 搭建私有云平台_服务器_22

 

确定后,点击启动云主机

搭建javascript 搭建私有云平台_搭建javascript_23

开启之后,在监控平台查看,可以正常登陆

搭建javascript 搭建私有云平台_搭建javascript_24

2. 以空白系统创建云主机

搭建javascript 搭建私有云平台_Core_25

搭建javascript 搭建私有云平台_Core_26

搭建javascript 搭建私有云平台_Core_27

选择加载so光盘镜像

搭建javascript 搭建私有云平台_Core_28

远程监控可以看到正在安装系统

搭建javascript 搭建私有云平台_搭建javascript_29

六、平台管理

Nano提供了一系列便捷的管理功能,用于简化管理员的日常运维工作

1. 仪表盘

Nano门户首页提供了整个平台级别的资源用量仪表盘,包含虚拟资源和物理资源的用量,便于随时了解系统负载情况,及时对资源进行扩容或者调整。

搭建javascript 搭建私有云平台_搭建javascript_30

搭建javascript 搭建私有云平台_云主机_31

搭建javascript 搭建私有云平台_搭建javascript_32

搭建javascript 搭建私有云平台_搭建javascript_33

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

安装成功

 

搭建javascript 搭建私有云平台_搭建javascript_34

在下拉菜单中选择新装的Cell节点进行添加

 

搭建javascript 搭建私有云平台_服务器_35

当资源池中Cell节点的状态变为Online时,就可以承载新建的云主机实例了

搭建javascript 搭建私有云平台_Core_36

3. 构建模板镜像

Nano可以将任意云主机的系统磁盘制作成磁盘镜像,然后从镜像快速克隆出于原模板主机系统,软件一样的新实例,以便大幅度提升管理员部署实例的效率。

 

搭建javascript 搭建私有云平台_搭建javascript_37