
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Cloud Hypervisor是一个基于KVM的开源虚拟机监控程序(VMM),专为运行现代云工作负载设计。该项目专注于在有限的硬件架构和平台上运行云工作负载,这些工作负载通常由云服务提供商的客户运行,特点是使用现代操作系统、通过半虚拟化设备(如virtio)处理大部分I/O、无需传统设备支持,且仅支持64位CPU。
Cloud Hypervisor采用Rust语言实现,并基于https://github.com/rust-vmm crates构建。本开发容器提供了构建和测试Cloud Hypervisor的环境,无需手动安装所有依赖项。
支持x86-64和AArch64架构,两者在功能上存在一些差异(参见#1125)。
支持64位Linux,对现代64位Windows客户机的支持正在开发中。
适用于开发和测试基于KVM的虚拟化解决方案,特别是针对云环境中的现代工作负载。可用于:
创建用于构建和运行Cloud Hypervisor的目录:
shell$ export CLOUDH=$HOME/cloud-hypervisor $ mkdir $CLOUDH
常规构建
克隆并构建Cloud Hypervisor仓库:
shell$ pushd $CLOUDH $ git clone https://github.com/cloud-hypervisor/cloud-hypervisor.git $ cd cloud-hypervisor $ cargo build --release # 为cloud-hypervisor二进制文件添加NET_ADMIN权限以设置主机TAP接口 $ sudo setcap cap_net_admin+ep ./target/release/cloud-hypervisor $ popd
构建后的二进制文件位于$CLOUDH/cloud-hypervisor/target/release/cloud-hypervisor。
容器化构建和测试
若不想安装所有依赖项(如Rust工具链、cargo工具等),可使用开发脚本dev_cli.sh进行容器化构建和测试。首次运行时会拉取较大的容器镜像。
构建发布版二进制文件:
shell$ pushd $CLOUDH $ cd cloud-hypervisor $ ./scripts/dev_cli.sh build --release
本地运行单元测试:
shell$ ./scripts/dev_cli.sh tests --unit
查看所有支持的命令和选项:
shell$ ./scripts/dev_cli.sh --help
可通过现有云镜像或自定义内核和磁盘镜像启动客户机VM。
使用云镜像
依赖https://github.com/cloud-hypervisor/rust-hypervisor-firmware%E6%8F%90%E4%BE%9BELF%E6%A0%BC%E5%BC%8F%E7%9A%84KVM%E5%9B%BA%E4%BB%B6%E3%80%82%E4%BB%A5%E4%B8%8B%E4%BD%BF%E7%94%A8Ubuntu%E4%BA%91%E9%95%9C%E5%83%8F%E7%A4%BA%E4%BE%8B%EF%BC%9A
shell$ pushd $CLOUDH $ wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img $ qemu-img convert -p -f qcow2 -O raw focal-server-cloudimg-amd64.img focal-server-cloudimg-amd64.raw $ wget https://github.com/cloud-hypervisor/rust-hypervisor-firmware/releases/download/0.2.8/hypervisor-fw $ popd
启动虚拟机:
shell$ pushd $CLOUDH $ sudo setcap cap_net_admin+ep ./cloud-hypervisor/target/release/cloud-hypervisor $ ./cloud-hypervisor/target/release/cloud-hypervisor \ --kernel ./hypervisor-fw \ --disk path=focal-server-cloudimg-amd64.raw \ --cpus boot=4 \ --memory size=1024M \ --net "tap=,mac=,ip=,mask=" \ --rng $ popd
--disk参数可指定多个磁盘。
使用自定义内核和磁盘镜像
构建内核
支持直接引导vmlinux ELF内核或bzImage。以下使用Cloud Hypervisor开发分支内核:
shell$ pushd $CLOUDH $ git clone --depth 1 https://github.com/cloud-hypervisor/linux.git -b virtio-fs-virtio-iommu-virtio-mem-5.6-rc4 linux-cloud-hypervisor $ pushd linux-cloud-hypervisor # 使用Cloud Hypervisor内核配置构建 $ cp $CLOUDH/cloud-hypervisor/resources/linux-config-x86_64 .config $ make bzImage -j `nproc` $ popd
内核镜像位于linux-cloud-hypervisor/arch/x86/boot/compressed/vmlinux.bin。
准备磁盘镜像
使用包含根分区的Ubuntu云镜像:
shell$ pushd $CLOUDH $ wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img $ qemu-img convert -p -f qcow2 -O raw focal-server-cloudimg-amd64.img focal-server-cloudimg-amd64.raw $ popd
启动客户机VM
使用4个vCPU和1024MB内存启动:
shell$ pushd $CLOUDH $ sudo setcap cap_net_admin+ep ./cloud-hypervisor/target/release/cloud-hypervisor $ ./cloud-hypervisor/target/release/cloud-hypervisor \ --kernel ./linux-cloud-hypervisor/arch/x86/boot/compressed/vmlinux.bin \ --disk path=focal-server-cloudimg-amd64.raw \ --cmdline "console=hvc0 root=/dev/vda1 rw" \ --cpus boot=4 \ --memory size=1024M \ --net "tap=,mac=,ip=,mask=" \ --rng
如需更早的内核调试信息,可使用传统串口控制台:
shell$ ./cloud-hypervisor/target/release/cloud-hypervisor \ --kernel ./linux-cloud-hypervisor/arch/x86/boot/compressed/vmlinux.bin \ --console off \ --serial tty \ --disk path=focal-server-cloudimg-amd64.raw \ --cmdline "console=ttyS0 root=/dev/vda1 rw" \ --cpus boot=4 \ --memory size=1024M \ --net "tap=,mac=,ip=,mask=" \ --rng
Cloud Hypervisor处于活跃开发中,不保证API或功能稳定性。截至2020-07-02,支持以下云镜像:
直接内核引导至用户空间可与大多数发行版的rootfs配合使用。
支持CPU、直通设备(VFIO)、virtio-{net,block,pmem,fs,vsock}的热插拔及内存调整。详细操作参见https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/hotplug.md%E3%80%82
设备模型详情参见https://github.com/cloud-hypervisor/cloud-hypervisor/blob/master/docs/device_model.md%E3%80%82
通过https://github.com/cloud-hypervisor/cloud-hypervisor/issues/new%E8%B7%9F%E8%B8%AA%E5%BE%85%E5%8A%9E%E4%BA%8B%E9%A1%B9%E3%80%82
为实现高性能、安全的虚拟化目标,Cloud Hypervisor采用Rust语言开发,其内存和线程安全特性使其成为VMM实现的理想选择。
Cloud Hypervisor不从头实现VMM组件,而是导入https://github.com/rust-vmm crates,与Amazon的https://fire***er-microvm.github.io/%E5%92%8CGoogle%E7%9A%84crosvm%E7%AD%89VMM%E5%85%B1%E4%BA%AB%E4%BB%A3%E7%A0%81%E5%92%8C%E6%9E%B6%E6%9E%84%E3%80%82
Cloud Hypervisor与rust-vmm项目的关系:
Cloud Hypervisor的部分代码基于Fire***er或crosvm的实现,这两个均为Rust编写的VMM,注重安全。但Cloud Hypervisor既非两者的分支也非重实现,其目标是支持云工作负载(即云服务提供商租户运行的现代完整Linux发行版镜像),而非客户端或无服务器场景,因此代码库已开始分化,并将通过rust-vmm共享基础虚拟化代码。
Cloud Hypervisor项目遵循https://github.com/cloud-hypervisor/community%E4%BB%93%E5%BA%93%E4%B8%AD%E6%8F%8F%E8%BF%B0%E7%9A%84%E6%B2%BB%E7%90%86%E5%92%8C%E7%A4%BE%E5%8C%BA%E6%8C%87%E5%8D%97%E3%80%82
我们致力于围绕Cloud Hypervisor构建全球、多元化、协作的社区。任何对贡献感兴趣的人都欢迎参与。贡献不仅包括代码提交,还包括测试、文档、PR审查、bug报告、功能请求、项目改进建议等。详见贡献文档。
获取Slack频道邀请,并加入Slack。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务