Skip to content

基本概念

bokuore edited this page Jul 11, 2018 · 7 revisions

基本概念

Nano是一个基于x86服务器进行虚拟主机实例和虚拟网络创建和管理的架构及服务(IaaS)云平台,无论是All in One的单节点服务器还是成千上万节点的大型集群,只要安装了Nano软件模块即可变成统一管理的云平台。

资源模型

资源模型

Nano将一台或者多台物理服务器统一管理,并基于其拥有的资源限额,按需给用户分配和创建云主机,提供与传统物理服务器一样的功能和管理能力,并且负责回收空闲资源。

云主机也称计算实例(Instance)是Nano平台用户主要的使用对象,每一个实例对应一个物理机中的虚拟机。

资源节点(Compute Cell)是Nano中管理资源的最小物理单位,也是虚拟机实例实际运行的承载容器。每一台物理服务器对应一个Cell,安装了Nano Cell模块的物理服务器都会当成资源节点被系统识别,并将其所拥有的物理资源纳入系统统一管理和调度,用于分配云主机实例。

计算资源池(Compute Pool)是Nano系统中一个逻辑管理单元,也是最核心的管理单元。一个计算资源池通常包含多个资源节点,所有云主机实例的创建正常情况下需要指定承载的计算资源池,资源池收到创建请求时,会根据所属所有资源节点的实时负载情况和要求的资源用量,选择适当的资源节点承载并运行云主机。云主机实例可以在同一资源池内进行迁移,更换承载节点,在开启高可用模式情况下,出现故障时还可以动态迁移到同一资源池内的其他节点上恢复服务。

新增的资源节点要承载云主机实例,必须先添加到某一个计算资源池,一个资源节点只能从属于一个计算资源池,以确保资源有效隔离。计算资源池内的创建的云主机实例,拥有相同的存储和网络特征,比如资源池A内的实例都使用本地存储,而资源池B内的实例都使用了共享端口池进行外网映射。这种设计简化了业务模型的管理难度,比如可以为资源池A设置本地存储+共享端口映射,资源池B设置高可用后端存储+独立IP地址池,为普通用户和VIP用户创建云主机实例时,只要分别指定不同的资源池进行创建,就能方便地构建出完全不同服务能力的云主机实例,还能有效保障各自的服务质量。

Nano平台创建后会自带一个默认计算资源池"default",在使用该资源池创建云主机实例之前,请记得先添加一个可用的资源节点。

可用区域(Available Zone)通常对应一个物理IDC机房或者一个独立的Nano平台,一个区域可以拥有多个计算资源池。在部分情况下,Nano平台只需要一个默认域即可工作,如果需要搭建多地多中心集群,则需要配置为多区域协作。

平台模块

平台模块

Nano包含多个模块,目前版本(v 0.1)包含三个模块:

Core:核心主控模块,负责管理集群资源、云主机分配调度、对前端提供REST接口,同时目前版本还内嵌镜像服务(后续可能单独剥离),提供光盘镜像和磁盘镜像的管理功能。

Cell:安装在每个需要加入资源池的物理服务器上,负责向Core汇报目前资源用量和云主机运行情况,同时根据Core指令进行云主机的创建和管理。

FrontEnd:基于Core的API接口,通过Web端管理Nano平台的服务模块,用户也可以根据自己需求定义和调整前端页面。

每个模块是一个可以独立起停的进程,各模块可以全部运行在同一个服务器,也可以分布在多台服务器上协同工作,但是同一个模块在一个服务器上只能有一个运行的实例。

云主机与镜像

云主机与镜像

云主机除了平台提供的虚拟物理资源,还需要有内部的操作系统才能正常工作。Nano目前提供了光盘镜像和磁盘镜像两种镜像资源,方便管理员构建快速易用的云平台。

光盘镜像(Media Image)是指管理员将ISO文件上传到云平台镜像服务器,然后在云主机实例启动时加载,类似物理服务器从光驱开机引导一样,主要用于在空白云主机上安装新系统,准备云主机模板。

磁盘镜像(Disk Image)则是基于已经安装完操作系统,并且配置好预装软件的云主机实例,将云主机磁盘制作成镜像存储在镜像服务器上;当后续需要快速创建相同操作系统的云主机时,直接将磁盘镜像克隆到新的云主机,这样新的主机实例直接拥有跟模板相同的操作系统,达到开机可用的效果。比如我们可以首先在一个空白云主机上安装好Windows操作系统,并且预装好办公软件,通过这个云主机构建一个办公云主机的模板;当用户需要申请办公云主机时,直接从该镜像克隆即可,新建好的云主机直接开机就可使用Windows及内置的办公软件。

与云主机实例必须属于某个资源池不同,镜像服务可以对当前区域内的所有资源池都有效,意味着可以从任意资源池的云主机构建镜像,同时也可以把镜像加载或者克隆到任意资源池的指定云主机。

Clone this wiki locally