# TODO - [x] Guest 删除后,回收其 IP、VNC 端口 - [x] os_init_write 的更新方法里,支持 os_init_id 参数 - [x] 抽象出视图层的父类,尤其是 get、get_list、delete 这些方法基本相同 - [x] guest_disk 表中加入 path 字段,具体磁盘位置由 path 指明 - [x] guest 的系统磁盘,也需记录到 guest_disk 表中 - [x] 将 Guest 的系统镜像合并到单独的磁盘镜像目录中。即不再为 Guest 的系统镜像单独分配目录 - [x] os_template 表中 name 改为 path 字段。用 path 指明完整路径 - [x] 统一 guest_disk 称谓为 disk - [x] 统计活着的宿主机,并提供获取列表的接口,供迁移时选择 - [x] 分离出 API 与 views 出入口,涉及 add_rule 与 route_table - [x] 加入被动更新 Guest xml 的功能,由宿主机主动推送。具体时机待定 - [x] 重置Guest密码功能 - [x] 虚拟机加入用户级的重启作业功能 - [x] 提示待做的启动作业 - [x] 密码栏默认隐藏,加入显示开关 - [x] `不予支持`收集存在于 JimV-N,却不存在于 JimV-C 的 Guest。(无法确定其创建的规范,比如是否使用了规划的分布式文件系统、模板、开启 vnc 等。这样导致迁移、重置密码、前端 ICON 显示有问题) - [x] `不予支持`IP 为空的,允许用户手动补入 Guest 的真实 IP,补入时并检查新 IP 是否可用 - [x] 批量添加启动作业 - [x] 单独写页面展现已有启动作业的虚拟机列表 - [x] 磁盘页面,默认不显示系统盘,加 CheckBox 来控制 - [x] 不显示系统级别的启动作业 - [x] 宿主机性能状态展现 - [x] 设计、实现 Dashboard 页面 - [x] 重新设计创建虚拟机时的机制,虚拟机创建分配由 JimV-C 角色实现 - [x] 创建虚拟机时显示进度 - [x] 重新设计 JimV-N 到 JimV-C 的回调机制,现有实现比较混乱。改进为基于对象的回调 - [x] 重新设计创建虚拟机机制,批量创建虚拟机时,依照宿主机负载大小,倒序依次挨个分配虚拟机的创建任务 - [x] 规范日志路径。把日志路径调整至 /var/log/ 下 - [x] 清除15天前的监控日志 - [x] 允许删除创建失败的虚拟机 - [x] 日志实现简短字段及详情字段,详情字段用 text,存储完整的日志文本。因为日志太长,无法在简短日志字段存放完整。 - [x] 修改密码功能 - [x] 密码[找回|重置]功能 - [x] 前端页面校验字段有效值 - [x] 加入手动清除已经离线的宿主机功能 - [x] 显示计算节点离线时间 - [x] 系统模板加入是否为 Windows 类系统的标记 - [x] 系统模板为 Windows 时,时钟偏移值设定为 localtime,否则为 utc - [x] 初始化时,生成默认的启动作业及其细则,方便用户直接使用 - [x] 制作适用于 JimV 的 CentOS 7 Mini 模板镜像 - [ ] 制作适用于 JimV 的 Windows 2012 模板镜像 - [x] README 列出配置需求 - [x] 制作模板镜像的 BT 链接,并展现到模板镜像的下载页面 - [x] 解决数据库重连隐患(当数据库[MySQL|Redis]重启后) - [x] 去除非 Debug 模式下的调试信息 - [x] 在线重置密码,前端加入随机生成功能 - [x] 计算节点页面,展现每个计算节点上功能线程的状态 - [x] 避免计算节点主机名相同的情况 - [x] 安装脚本、文档加入ntp时间同步环节 - [x] 实现创建虚拟机时,手动指定计算节点功能 - [x] 计算机节点加入是否接受自动分配虚拟机开关 - [x] 取消单独的初始化密码操作,合并入具体的操作系统初始化操作中 - [x] 修复 Guest 对模板对象的依赖。bug 表现为,当依赖的模板项被删除后,虚拟机实例列表会出现 500 错误 - [x] 实现网络流量限速 - [x] 根据计算节点 CPU 是否支持 VT-X,来确定虚拟机是使用 KVM 还是 QEMU - [ ] 考虑开辟一个单独的消息处理线程。所有业务消息都塞到进程中的队列内,由该线程统一处理。这样可以更好的处理数据库重连问题。 - [ ] 实现 CentOS 7 单机版一建安装脚本(包括全新的数据库安装、配置、部署) - [ ] 实现磁盘联动机制。即当删除宿主机时,相随的所有磁盘一并删除 - [ ] 融入 Systemd - [ ] 增加模板镜像上传功能 - [ ] 加入 Tag或分组,类似qq用户分组 功能 - [ ] 添加对 Guest 的 IP 管理功能 - [ ] 设计、制作替换 Guest IP 的系统级启动作业 > 1. 给宿主机替换当前 IP 池中可用的 IP。替换后,新 IP 置为已用状态,被替换的 IP, > 要与系统配置中的可用 IP 范围做计算。计算其是不是可以被自动分配的合法 IP。如果是, > 则回收。如果不是,则直接丢弃; > 2. 给宿主机替换手动指定的任意 IP。此时需要判断手动分配的 IP 是否与已用的 IP 冲突; - [ ] 虚拟机状态变化时时展现在前端页面上 - [ ] 迁移时计算出剩余时间 - [ ] 初始化页面检测 redis、mysql 是否准备好 - [ ] 日志里面加入操作轨迹 - [ ] 考虑 vm_network,vm_manage_network 改名为 vm_network_bridge,vm_manage_network_bridge - [ ] 通过 sysctl 隔离出 vnc 使用的端口,避免被冲突。参见 net.ipv4.ip_local_reserved_ports - [ ] 考虑热更新、升级的问题 - [ ] 加入清除老旧日志的功能 - [ ] 忽略 guestfs- 为首的日志 - [ ] 周期轮询试的同步虚拟机状态 - [ ] 实现类似于VMware的故障转移功能 - [x] 实现变配功能 - [ ] 迁移中的虚拟机,不允许做任何操作 - [x] 通过 QemuGuestAgent 实现 Guest 的内存使用率监控 - [ ] 实现通过 JimV-C 修改主机名(当前为备注的地方),同步到具体 Guest 上 - [ ] 修正创建虚拟机时,VNC 端口不够用时的 bug。创建失败时,需要返还对应的 IP 与 VNC 端口资源 - [ ] 修复在大磁盘虚拟机创建快照时,等待时间过长的问题 - [ ] IP 地址池管理功能。对 IP 池中的 IP 有查看、添加、禁用、解禁等功能 - [x] 安装脚本加入中国本土仓库 - [ ] 对某个 Guest 进行快照操作时,禁止对该镜像做其它快照方面的操作 - [x] 修复JimV-C 先 Redis 启动后,JimV-C event_processor Redis lpop 异常的问题 - [x] 计算节点以 JimV-C 为第一 NTP 服务器 - [ ] 数据库时间戳,采用 JimV-N 的时间。避免 JimV-C 挂掉后,监控数据批量集中在同一个时间点上