You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QEMU中启动同一镜像的多个独立实例以搭建集群?

搭建QEMU虚拟机集群:独立实例的配置要点

要同时启动多个独立的QEMU虚拟机搭建集群,大部分原有命令配置可以复用,但必须修改会引发资源冲突的参数,同时复制必要的依赖文件。具体如下:

可直接复用的基础配置

这些参数所有实例通用,无需修改:

  • qemu-system-x86-64 \
  • -nographic \
  • -machine virt \
  • -smp 2 \
  • -m 4G \
  • -bios images/fw_jump.elf \
  • -kernel images/Image \
  • -append "root=/dev/vda2 ro" \
  • virtfs的path和security_model(若无需独立挂载内容,可共享主机目录)

必须修改/复制的关键项(避免冲突)

每个虚拟机实例都要单独配置以下内容:

  1. 独立磁盘镜像
    不能多个实例共用同一个Fedora-38-sda.qcow2,必须复制生成新镜像(如Fedora-38-sda-node1.qcow2、Fedora-38-sda-node2.qcow2),对应修改命令中的-drive参数:

    -device virtio-blk-device,drive=hd0 -drive file=Fedora-38-sda-node1.qcow2,format=qcow2,id=hd0 \
    
  2. 唯一SSH转发端口
    原命令中hostfwd=tcp::10000-:22将主机10000端口映射到虚拟机22端口,多实例需使用不同主机端口,比如node2改为10001:

    -netdev user,id=net0,hostfwd=tcp::10001-:22 -device virtio-net-device,netdev=net0 \
    
  3. 独立tap网络设备ID
    原命令的id=e0要改为实例唯一ID,比如node2用e1,同步修改两处:

    -device virtio-net-device,netdev=e1 -netdev tap,id=e1 \
    
  4. 唯一virtfs挂载标识
    每个实例的virtfsid和mount_tag需唯一,比如node2修改为:

    -virtfs local,path=mount/development-toolchain-native,mount_tag=host0-node2,security_model=passthrough,id=host0-node2 \
    -virtfs local,path=mount/development-2023-07-13-1400,mount_tag=host1-node2,security_model=passthrough,id=host1-node2 \
    

    (若无需独立挂载点,也可共用,但完全独立建议修改)

需要复制的文件

  • 磁盘镜像:复制Fedora-38-sda.qcow2生成每个节点的独立镜像文件
  • 挂载目录(可选):若需要每个节点有独立的工具链/开发环境,复制mount/development-toolchain-native和mount/development-2023-07-13-1400生成对应节点目录,再调整virtfs的path参数

内容的提问来源于stack exchange,提问作者Bub Espinja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:55:56