Nano

  • 2020-11-23
  • 浏览 (1773)

Nano 是一款超轻量级开源云平台,基于KVM技术,使用Go语言开发,简单易学的虚拟机管理软件,从Web管理门户、主机监控、镜像克隆到故障切换,功能完备,开箱即用,数分钟之内即可将您的服务器集群升级为云主机平台。

特性

紧凑
全项目3万多行代码,纯Go开发,不到Openstack的三百分之一。平台部署仅需要三个二进制执行文件即可,最大的模块仅9MB,无需第三方软件或者依赖库,模块升级时直接替换。

开箱即用
从Web管理门户、主机监控、镜像克隆到故障切换,自带功能完备,无需安装额外组件。从网络发现、组网到设备选择,全流程自动配置,几乎不需要人工干预。

可靠
All or Nothing的事务模式处理任务,失败时自动回撤,释放所有资源并且还原状态。集群实时检测所有节点状态,在内存中自动同步实例数据,确保所有状态和操作及时且有效。

易扩展
所有功能均提供REST API接口,应用与资源服务的分离,可以便捷地集成开发。基于goroutine的业务逻辑抽象,能够快速扩展业务功能,而无需了解复杂的后台消息驱动机制。

起源

Nano的诞生,起源于公司内部为了搭建大数据平台开发环境而进行的云计算平台选型。公司有一堆x86服务器,只需要创建出实例,网络连通就行,但是没想到这个简单的要求,却没那么容易搞定。

我们调研了很多现有的云计算和虚拟化平台,发现许多知名产品内部组件繁多,相互之间重重关联,产品体系庞大,概念名词也很多,导致学习困难,配置也极为复杂,难以维护。

另一方面,很多产品还依赖各种第三方软件和库,包括数据库、消息队列等等,版本稍有不对就会产生兼容性问题;搭建一个云平台,需要搭建3、4个额外的依赖软件,不止是引入更多故障点,降低系统稳定性,增加了问题排查难度,而且还暴露了更多可以攻击的安全隐患。

除此之外,Java/Python/Bash等多语言和脚本混杂工作,不仅效率低下,而且一个简单任务牵涉太多代码,对运维开发人员来说也难以学习和维护。

总的来说,现有平台和产品,对于只想使用云主机和虚拟化,但是缺乏足够资源进行研究和维护的团队来说,实在太过笨重,于是,才有了超轻量级的开源云平台Nano。

Nano基于CentOS/KVM虚拟化技术,使用服务器集群构建计算资源池并提供云主机实例管理服务。

Nano最大可能采用智能化和自动化手段替代繁琐易出错的手工操作,在简单易用的基础上,提供强大而稳定的云管理平台,产品,在解放运维人员的同时,提高集群的资源利用率、可用性和可靠性。

对于支持Intel VT-d或者AMD-v的普通x86服务器,管理员只需要下载并安装Nano部署包,即可在三分钟内将其转换为云管理平台,并且开始创建云主机实例。

Nano使用MIT许可,无论自用、修改或者商用都无限制

现有功能

  • 资源池管理 :资源节点增删与禁用恢复、云主机调度、实时资源用量监控(CPU/内存/磁盘/网络/运行时间)、多层级资源下钻(集群/资源池/节点/实例)
  • 存储后端支持 :本地磁盘存储、NFS共享存储
  • 地址池管理 :IPv4云主机地址池管理与绑定,多地址段设定,网关及DNS分配
  • 云主机功能 :
    生命周期管理:创建、释放、起停、实例迁移、故障迁移
    配置管理:实例名、核心数、内存修改,QoS管理(CPU、磁盘、带宽),磁盘扩容、压缩,配置模板优化,系统重置
    虚拟机操作系统:重置管理员密码、CPU/内存用量监控、磁盘自动格式化/挂载、修改主机名
    远程管理:内嵌HTML5监控端、第三方VNC连接支持、VNC连接加密
    批量构建:云主机模板构建、复制、上传、下载、批量创建与删除
    数据安全:云主机增量快照创建、还原、管理
    媒介管理:光盘镜像上传、加载、卸载
    网络管理:地址绑定、回收与迁移,网关、DNS分配
  • 平台管理 :系统初始化、用户/组/角色权限管理、资源组可见性管理、自动识别组网、连接检测、模块起停、运行状态检测、操作日志
  • 浏览器支持 :Chrome/Firefox
  • 辅助工具 :Installer安装包
  • 语言支持 :中文/英文
0  赞