长期支持版本

    社区创新版本

      管理虚拟机资源

      概述

      本节将介绍如何使用QMP命令管理磁盘和网卡。

      StratoVirt使用QMP管理虚拟机,使用QMP管理虚拟机资源前,请参见”管理虚拟机生命周期”使用QMP连接到虚拟机。

      热插拔磁盘

      StratoVirt支持在虚拟机运行过程中调整磁盘数量,即在不中断业务前提下,增加或删除虚拟机磁盘。

      热插磁盘

      用法:

      {"execute": "blockdev-add", "arguments": {"node-name": "drive-0", "file": {"driver": "file", "filename": "/path/to/block"}, "cache": {"direct": true}, "read-only": false}}
      {"execute": "device_add", "arguments": {"id": "drive-0", "driver": "virtio-blk-mmio", "addr": "0x1"}}
      

      参数

      • blockdev-add中的node-name要和device_add中的id一致,如上都是drive-0。

      • /path/to/block是被热插磁盘的镜像路径,不能是启动rootfs的磁盘镜像。

      • 对于addr来说,它从0x0开始与虚拟机的vda映射,0x1与vdb映射,以此类推。为了兼容QMP协议,"addr"也可以用"lun"代替,但是lun=0与客户机的vdb映射。只支持热插6张virtio-blk磁盘。

      示例

      <- {"execute": "blockdev-add", "arguments": {"node-name": "drive-0", "file": {"driver": "file", "filename": "/path/to/block"}, "cache": {"direct": true}, "read-only": false}}
      -> {"return": {}}
      <- {"execute": "device_add", "arguments": {"id": "drive-0", "driver": "virtio-blk-mmio", "addr": "0x1"}}
      -> {"return": {}}
      

      热拔磁盘

      用法:

      {"execute": "device_del", "arguments": {"id":"drive-0"}}

      参数:

      id 为热拔磁盘的ID号。

      示例

      <- {"execute": "device_del", "arguments": {"id": "drive-0"}}
      -> {"event":"DEVICE_DELETED","data":{"device":"drive-0","path":"drive-0"},"timestamp":{"seconds":1598513162,"microseconds":367129}}
      -> {"return": {}}
      

      热插拔网卡

      StratoVirt支持在虚拟机运行过程中调整网卡数量,即在不中断业务前提下,给虚拟机增加或删除网卡。

      热插网卡

      准备工作(需要使用root权限)

      1. 创建并启用Linux网桥,例如网桥名为 qbr0 的参考命令如下:
      # brctl addbr qbr0
      # ifconfig qbr0 up
      
      1. 创建并启用 tap 设备,例如设备名为 tap0 的参考命令如下:
      # ip tuntap add tap0 mode tap
      # ifconfig tap0 up
      
      1. 添加 tap 设备到网桥:
      # brctl addif qbr0 tap0
      

      用法

      {"execute":"netdev_add", "arguments":{"id":"net-0", "ifname":"tap0"}}
      {"execute":"device_add", "arguments":{"id":"net-0", "driver":"virtio-net-mmio", "addr":"0x0"}}
      

      参数

      • netdev_add中的id应该和device_add中的id一致,ifname是后端的tap设备名称。

      • 对于addr来说,它从0x0开始与虚拟机的eth0映射,0x1和虚拟机的eth1映射,只支持热插2张virtio-net网卡。

      示例

      <- {"execute":"netdev_add", "arguments":{"id":"net-0", "ifname":"tap0"}}
      <- {"execute":"device_add", "arguments":{"id":"net-0", "driver":"virtio-net-mmio", "addr":"0x0"}} 
      

      其中,addr:0x0,对应虚拟机内部的eth0。

      热拔网卡

      用法

      {"execute": "device_del", "arguments": {"id": "net-0"}}

      参数

      id:网卡的ID号,例如net-0。

      示例

      <- {"execute": "device_del", "arguments": {"id": "net-0"}}
      -> {"event":"DEVICE_DELETED","data":{"device":"net-0","path":"net-0"},"timestamp":{"seconds":1598513339,"microseconds":97310}}
      -> {"return": {}}
      

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份