[](http://www.gnu.org/licenses/gpl-3.0.html)
[](http://www.json.org/json-zh.html)
[](https://www.python.org)
[](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)