# virtual_cvk **Repository Path**: lldhsds/virtual_cvk ## Basic Information - **Project Name**: virtual_cvk - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-18 - **Last Updated**: 2026-02-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CVK模拟器 ## 项目概述 CVK模拟器是一个基于Python Flask框架开发的虚拟化管理模拟器,用于模拟基于KVM的hypervisor(CVK)的API和行为。该模拟器主要用于开发、测试和验证虚拟化管理系统,无需实际的硬件设备。 ## 架构设计 ### 系统架构 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ Server端 │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────┐ │ │ │ VIRTUAL_CVK_SERVER │ │ 心跳检测线程 │ │ 配置管理模块 │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────────────┘ │ │ │ │ │ │ ▼ ▼ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ Client端 │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────┐ │ │ │ Client管理模块 │ │ CVK模拟器实例1 │ │ CVK模拟器实例2 │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────────────┘ │ │ │ │ │ │ ▼ ▼ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────┐ │ CVK模拟器 │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────────┐ │ │ │ API服务(v1/v2)│ │ VM管理模块 │ │ 网络/存储管理模块 │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────────────┘ │ │ │ │ │ │ ▼ ▼ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 核心组件 1. **Server端**: - `VIRTUAL_CVK_SERVER`:负责初始化、启动和监控Client - 心跳检测:定期检查Client和CVK实例的状态 - 配置管理:管理系统参数和CVK配置 2. **Client端**: - 运行多个CVK模拟器实例 - 管理CVK实例的生命周期 3. **CVK模拟器**: - 模拟真实CVK的API和行为 - 支持API版本管理(v1和v2) - 提供VM、网络、存储等管理功能 ## 目录结构 ``` virtual_cvk/ ├── api/ # API实现目录 │ ├── api_client.py # Client相关API │ ├── api_compute.py # 计算相关API(VM管理) │ ├── api_ha.py # 高可用相关API │ └── api_network.py # 网络相关API ├── log/ # 日志目录 ├── utils/ # 工具函数 │ ├── __init__.py │ └── utils.py ├── virtual_cvk_api.py # API服务入口 ├── virtual_cvk_base.conf # 配置文件 ├── virtual_cvk_basic.py # 基础类定义 ├── virtual_cvk_callback.py # 回调管理 ├── virtual_cvk_config_parser.py # 配置解析 ├── virtual_cvk_logging.py # 日志模块 ├── virtual_cvk_omc.py # OMC客户端 ├── virtual_cvk_redis.py # Redis客户端 └── virtual_cvk_server.py # Server端入口 ``` ## 主要功能 ### CVK节点管理 - CVK节点模拟和生命周期管理 - 资源信息查询(CPU、内存、存储) - 网络配置管理 - 心跳检测机制 ### VM生命周期管理 - VM创建、删除和状态查询 - VM资源配置管理 - VNC端口分配和管理 - VM状态变更通知 ### 网络管理 - OVS端口创建和删除 - 网络接口状态管理 - DPDK支持检测 ### 存储管理 - LUN映射和取消映射 - 磁盘列表查询 - 存储网络状态检测 ## 配置文件说明 配置文件 `virtual_cvk_base.conf` 包含以下主要配置段: - `[server]`:Server端配置,包括Client列表和CVK数量 - `[server_to_client]`:CVK网络配置,包括管理IP、隧道IP等 - `[client]`:Client端配置,包括API端口和CVK数量 - `[redis]`:Redis连接配置 - `[api]`:API版本配置 - `[log]`:日志级别配置 - `[omc]`:OMC服务器配置 ## 安装和使用 ### 安装依赖 ```bash pip install -r requirements.txt ``` ### 运行Server端 ```bash python virtual_cvk_server.py start ``` ### 管理CVK节点 ```bash # 启动CVK节点 python virtual_cvk_server.py cvk_up # 停止CVK节点 python virtual_cvk_server.py cvk_down # 删除CVK节点 python virtual_cvk_server.py delete ``` ### API访问 CVK模拟器提供以下主要API端点: - `GET /compute/v1/host/describe`:查询CVK节点信息(v1) - `GET /compute/v2/host/describe`:查询CVK节点信息(v2) - `GET /compute/v1/host/resource`:查询CVK资源信息(v1) - `GET /compute/v2/host/resource`:查询CVK资源信息(v2) - `POST /compute/v1/vm/create`:创建VM - `POST /compute/v1/vm/delete`:删除VM - `GET /compute/v1/vm/getState`:查询VM状态 ## 开发指南 ### API扩展 1. 在 `api/` 目录下的对应文件中添加新的API处理函数 2. 使用Blueprint进行API版本管理 3. 遵循现有的代码风格和命名规范 4. 添加适当的日志记录 ### 功能扩展 1. 在相应的类中添加新的方法 2. 更新配置文件(如果需要) 3. 添加测试用例 4. 更新文档 ## 日志管理 日志文件存储在 `log/` 目录下,命名格式为 `virtual_cvk___.log`。 日志级别可以在配置文件中通过 `log_level_current` 配置,支持以下级别: - 10:DEBUG - 20:INFO - 30:WARNING - 40:ERROR - 50:CRITICAL ## 版本历史 - v1.0:初始版本,支持基本的CVK和VM管理功能 - v2.0:API版本升级,增加了新的资源管理功能 ## 贡献指南 欢迎提交Issue和Pull Request来帮助改进CVK模拟器。 1. Fork项目 2. 创建特性分支(`git checkout -b feature/AmazingFeature`) 3. 提交更改(`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支(`git push origin feature/AmazingFeature`) 5. 打开Pull Request ## 许可证 [MIT](LICENSE) ## 联系方式 如有问题或建议,请通过以下方式联系: - 项目地址:http://172.25.50.202/xiongmao5320/virtual_cvk.git - 维护者:[项目团队]