[![License](https://img.shields.io/badge/License-GPL3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0.html) [![Format](https://img.shields.io/badge/Format-JSON-blue.svg)](http://www.json.org/json-zh.html) [![Python versions](https://img.shields.io/badge/Python-2.7.10-blue.svg)](https://www.python.org) [![API](https://img.shields.io/badge/API-RESTful-blue.svg)](http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm) [TOC]: # "目录" # 目录 - [项目描述](#项目描述) - [功能指标](#功能指标) - [未来计划](#未来计划) - [安装](#安装) - [单机版一键安装](#单机版一键安装) - [JimV-C 一键安装](#jimv-c-一键安装) - [[JimV-C 手动安装](docs/install.md)](#jimv-c-手动安装) - [架构图](#架构图) - [规划与建议](#规划与建议) - [配置需求](#配置需求) - [网络规划](#网络规划) - [计算节点命名](#计算节点命名) - [问题反馈](#问题反馈) - [FAQ](#faq) - [项目成员](#项目成员) - [JimV 控制平台截图展示](#jimv-控制平台截图展示) - [Demo](#demo) ## 项目描述 > 计算机硬件越来越白菜价,性能越来越强劲,企业电子信息化方面的业务越来越多,"互联网+"、大数据的浪潮已经掀起,物联网、AI的趋势正在形成。 > 因为上述的一切,虚拟化技术被处于一个软化硬件,揉和硬件与业务系统这么一个核心角色。 > 虚拟化技术虽然已经被普及了很久,但多数企业依然仅仅是把它当做独立的虚拟硬件来使用。在资源的科学分配、高效利用、自动化管理方面,还差些许。 > JimV 是一个,结构清晰简单,易于部署、维护、使用的,低门槛企业私有云管理平台。 > 相比于业界知名的 OpenStack、OpenNebula...,JimV 没有很多的零部件,不需要庞大的维护团队。 ## 功能指标 |功能|JimV| |:-|:-:| |部署复杂度|低| |维护复杂度|低| |KVM虚拟化|✓| |本地存储|✓| |共享挂载点|✓| |GlusterFS|✓| |Windows Guest|✓| |Linux Guest|✓| |Guest 性能统计|✓| |计算节点性能统计|✓| |CPU超分|✓| |内存超分|✓| |磁盘超配|✓| |云盘管理|✓| |云盘热挂载|✓| |热迁移|✓| |批量创建|✓| |RESTful 风格的 API|✓| |Virtio设备|✓| |Guest 暂停/恢复|✓| ## 未来计划 >* 增加计费功能 >* 增加 Guest 变配功能 >* 增加过期 Guest 自动回收机制 >* 增加模板上传功能 >* 增加磁盘 IO 限额管理功能 >* 增加磁盘吞吐量限额管理功能 >* 增加网络流量限额管理功能 >* 增加 tag 功能 >* 增加替换 IP 功能 >* 增加对 Ceph 的支持 >* 多租户 >* 用户操作轨迹 >* 用户管理功能 >* 参照 gitlab,打包出 CentOS yum 一语安装仓库 >* 支持快照 >* 支持在线镜像商城 >* 国际化 >* SSH 公钥管理、注入功能 >* 加入移动端的支持 ## 安装 ### 单机版一键安装 > 在一台服务器上部署 JimV(包含 JimV-C 与 JimV-N)。适合用于本地单机虚拟化作业,或测试等用途。 ``` bash curl https://raw.githubusercontent.com/jamesiter/JimV-C/master/STANDALONE_INSTALL.sh | bash - ``` ### JimV-C 一键安装 > 在一台服务器上仅部署 JimV-C。与其它部署 JimV-N 的计算节点一起协同工作。 ``` bash curl https://raw.githubusercontent.com/jamesiter/JimV-C/master/INSTALL.sh | bash - ``` ### [JimV-C 手动安装](docs/install.md) ## 架构图 * [JimV 简单应用架构](./topology/JimVSimpleArchitecture.png) * [JimV 典型应用架构](./topology/JimVRecommendArchitecture.png) ## 规划与建议 > 如下的规划与设计均是以 [JimV 典型应用架构](./topology/JimVRecommendArchitecture.png) 为蓝图。 ### 配置需求 **JimV-C** |条目|指标|备注| |:-|:-:|:-| |操作系统| ≥ CentOS 7.4 | 版本过低,所依赖库的功能跟不上。| |CPU| ≥ 8| 除了 JimV-C 本身的几个功能线程外,MariaDB、Redis 均需要一定量的计算资源。| |内存| ≥ 16GB | 供 JimV-C、MariaDB、Redis 使用。| |磁盘| ≥ 500GB | 主要存放计算节点、虚拟机的监控数据及平台的各种日志信息等。| |互联网络| Y | yum、pip 安装所需要的软件及依赖库时,需要从互联网下载获得。| |管理网络| Y | 管理计算节点的网络。| |业务网络| N | 无需通过业务网络和虚拟机接触。| **JimV-N** |条目|指标|备注| |:-|:-:|:-| |操作系统| ≥ CentOS 7.4 | 版本过低,所依赖库的功能跟不上。| |CPU| ≥ 36 | 数量直接决定所能承载虚拟机的多少。| |CPU 虚拟化技术| Y | - | |内存| ≥ 64GB | - | |磁盘| ≥ 8TB | 指的是可用空间。建议磁盘组做好 RAID6。| |磁盘类型| - | 如果是存储密集型,考虑陈本因素,用机械盘就可以了。如果是 IO 密集型,建议 SSD 或 NVME 设备。| |互联网络| Y | yum、pip 安装所需要的软件及依赖库时,需要从互联网下载获得。| |管理网络| Y | 管理节点通过改网络传输指令等。| |业务网络| Y | 虚拟机专用。| |网卡| ≥ 10Gb x 2端口 x 2网卡 | 网络带宽一般以峰值需求为参考线。高质量的网络可以让使用人员,有更广阔的操作空间。| **交换机** |条目|指标|备注| |:-|:-:|:-| |数量| 2 | 计算节点上两网卡、两端口相互交叉连接到两个交换机上。以实现网络高可用。| |LACP| Y | 配合计算节点做 模式4(802.3ad) 的 bonding。| |接入端口| ≥ 10Gb | 与计算节点网卡做好匹配。| |端口数量| - | 具体根据计算节点规模来定。| ### 网络规划 **中等规模** |起止IP|子网掩码|用途|备注| |:-|:-|:-|:-| |192.168.1.254|255.255.255.0|业务网络网关地址| - | |192.168.1.1 ~ 220|255.255.255.0|业务网络虚拟机用| 虚拟机可用 IP 220 个。 | |192.168.1.221 ~ 252|255.255.255.0|链接虚拟机网卡的,各计算节点网桥地址| 可容纳 32 个计算节点 | |192.168.2.221 ~ 252|255.255.255.0|计算节点管理地址,与链接虚拟机网卡的网桥地址相对应| - | |192.168.2.253|255.255.255.0|JimV-C| - | |192.168.2.95 ~ 127|255.255.255.0|iDrac 或 iLO 之类的管理地址| - | |192.168.2.1++|255.255.255.0|交换机管理地址| - | |192.168.2.254|255.255.255.0|管理网络网关地址| - | 考虑存放备用IP **大规模** |起止IP|子网掩码|用途|备注| |:-|:-|:-|:-| |10.10.15.254|255.255.240.0|业务网络网关地址| - | |10.10.1.0 ~ 15.253|255.255.240.0|业务网络虚拟机用| 虚拟机可用 IP 3823 个。 | |10.10.0.1 ~ 253|255.255.240.0|链接虚拟机网卡的,各计算节点网桥地址| 可容纳 253 个计算节点 | |10.10.16.1 ~ 253|255.255.252.0|计算节点管理地址,与链接虚拟机网卡的网桥地址相对应| - | |10.10.16.254|255.255.252.0|JimV-C 管理地址| - | |10.10.17.1 ~ 253|255.255.252.0|iDrac 或 iLO 之类的管理地址| - | |10.10.18.1++|255.255.252.0|交换机管理地址| - | |10.10.19.254|255.255.252.0|管理网络网关地址| - | ### 计算节点命名 |环境编号|环境类型|环境中计算节点序列|域| |:-|:-|:-|:-| |数字|k:KVM|数字| - | |1|k|01|jimv.io| |1|k|02|jimv.io| |1|k|n|jimv.io| >**备注:** 数字域的宽度是可变的,可从1~n,n可以是非个位数,如99、999(如: 1k01.jimv.io, 1k001.jimv.io)。 ## 问题反馈 [提交Bug](https://github.com/jamesiter/JimV-C/issues)
技术交流 QQ 群: 377907881 ## FAQ Q1: 出现如下错误该如何解决 > could not find capabilities for arch=x86_64 domaintype=kvm A1: 检查 BIOS 中 CPU 的 VT 技术是否启用。 ## 项目成员
姓名:    James Iter
E-Mail: james.iter.cn@gmail.com
## JimV 控制平台截图展示 [JimV 控制平台截图展示](docs/screenshot.md) ## Demo [demo.jimv.io](https://demo.jimv.io)
[jimv.iit.im](https://jimv.iit.im)
管理员账密 `admin`:`jimv.pswd.com`