key2peace/xva-tool
GitHub: key2peace/xva-tool
xva-tool 是一款专为 Citrix XenServer/XCP-ng 设计的零拷贝流式 XVA 虚拟机镜像处理工具,解决大规模虚拟磁盘提取、转换与远程迁移中的存储 I/O 瓶颈问题。
Stars: 0 | Forks: 0
# xva-tool
一款专为 Citrix XenServer 和 XCP-ng 虚拟机架构设计的未压缩 XVA 容器处理工具。该框架支持高速数据提取、实时转换以及无需本地文件缓存的恢复选项。
## 功能
* **零拷贝提取:** 利用按位偏移导航,通过 `f.seek()` 直接定位并读取 tarball 结构内的磁盘扇区。
* **流驱动架构:** 处理大型虚拟磁盘时无需将中间文件写入磁盘,最大程度减少本地存储 I/O 占用。
* **咨询锁定:** 通过 `fcntl.flock` 实现内核级咨询锁,确保并发处理期间的文件完整性。
* **可插拔架构:** 采用标准目录结构进行运行时扩展扫描和模块化组件验证。
* **Zstandard 压缩:** 集成原生 `zstd` 管道,优化高吞吐量存储阵列上的压缩与解压速度。
* **iSCSI 存储传输:** 使用标准 Linux `iscsiadm` 工具连接远程 SAN 存储目标,在不缓存本地磁盘的情况下路由数据块流。
* **I/O 速率限制:** 通过 `--throttle-mb` 参数强制执行带宽上限,防止生产节点出现磁盘 I/O 耗尽。
* **合并前验证:** 在执行合并例程之前,对未压缩的 XVA 容器运行非破坏性的数据块分配审计。
## 安装与部署
该工具针对 Debian (`.deb`)、Red Hat (`.rpm`) 和 Slackware (`.txz`) 发行版进行了打包。请根据您的本地环境运行相应的包管理器配置。
## 命令行接口 (CLI)
### 1. 评估元数据
```
xva-tool info image.xva
```
### 2. 将层流式展平为 RAW
```
xva-tool merge image.xva target.img
```
### 3. 限带宽 SAN 迁移
```
xva-tool merge -r --throttle-mb 50 image.xva /dev/disk/by-path/iscsi-target-lun-0
```
### 4. 完整性验证扫描
```
xva-tool verify image.xva --deep-scan
```
## 文档
详细的开发、测试和操作指南位于 `docs/` 仓库目录中。
## 许可证
由 Alexander Maassen () 和 Google 的 Gemini AI 开发与维护。基于 MIT 许可证的宽松条款发布。
标签:XenServer, 数据流处理, 系统运维, 虚拟化技术, 逆向工具, 零拷贝