virt-manger创建虚拟机及virtio网卡

2023-11-19

可以把创建的vm node及network的xml文件导出来存放,以后可以使用命令创建:

# sudo apt-get install qemu-kvm
# virsh define vm0.xml  //导入虚拟机配置
# virsh start vm0  //开启vm0
# virsh list --all  // 显示所有虚拟机状态
# virsh destroy vm0  //销毁虚拟机
# virsh undefine vm1  //删除虚拟机配置
# virsh dumpxml vm0 //显示虚拟机xml配置

0. 设置virt-manager

使用MobaXterm Terminal, 输入virt-manager,会弹出来图形界面

sudo apt-get install virt-manager
virt-manager

如没有权限错误,把用户填进组里:

sudo usermod -aG libvirt $USER sudo usermod -aG kvm $USER

再启动virt-manager

1. 创建虚拟机

1.1 创建dpu-node和host-node两个 VM

1.2 设置ssh,使外部可以访问

$ sudo apt install net-tools
$ sudo apt-get install openssh-server 
$ ifconfig

查看vm

通过ssh连接

ssh jingh@192.168.122.94
ssh jingh@192.168.122.104

2. 添加virtio网卡

(13条消息) 为KVM虚拟机添加网卡,并配置IP_尚先生的博客的博客-CSDN博客_kvm添加网卡

(13条消息) 在virt-manager中桥接虚拟机_岚匀的博客-CSDN博客

创建bridge --- 方法改成创建虚拟网络,会自动创建出bridge: TaskNATSetupVirtManager - Libvirt Wiki

2.1创建net-jh虚拟网络

会出来网桥virbr2:

jingh@worker-node53:~$ brctl show
 bridge name bridge id STP enabled interfaces
 virbr1 8000.525400550801 no virbr1-nic
 virbr2 8000.525400e5dd86 yes virbr2-nic

改stp为off:

$ sudo brctl stp virbr2 off

2.2 然后可以在 VM里添加网卡,选择net-jh

再查看网桥,下挂2个网卡:

jingh@worker-node53:~$ brctl show
bridge name     bridge id               STP enabled     interfaces

virbr2          8000.52540070b876       no              virbr2-nic
                                                        vnet1
                                                        vnet9

但是网卡却没有分ip,不知道为啥?

(14条消息) kvm Libvirt qemu-kvm虚拟主机指定固定IP_风.foxwho的博客-CSDN博客_kvm 指定ip

查看net-jh的bridge:

jingh@worker-node53:~$ sudo cat /etc/libvirt/qemu/networks/net-virbr.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh net-edit net-jh
or other application using the libvirt API.
-->

<network>
  <name>net-jh</name>
  <uuid>490610e0-07af-4309-bbc1-a324174f195f</uuid>
  <bridge name='virbr2' stp='on' delay='0'/>
  <mac address='52:54:00:70:b8:76'/>
  <domain name='net-jh'/>
  <ip address='192.168.126.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.126.128' end='192.168.126.254'/>
    </dhcp>
  </ip>
</network>

修改此文件,把stp改为off,添加固定的mac-address和ip地址:

virsh --connect qemu:///system dumpxml ubuntu20.04-jingh-dpu | grep 'mac address'
virsh --connect qemu:///system net-edit net-virbr
加入<host mac='52:54:00:05:7a:40' name='ubuntu20.04-jingh-dpu' ip='192.168.126.133'/>

保存,重启网络

virsh --connect qemu:///system net-destroy net-virbr
virsh --connect qemu:///system net-start net-virbr

最后,重启虚拟机后生效

virsh reboot ubuntu20.04-jingh-dpu

在两个 vm上,DHCP自动分126的ip没生效,不知道为啥。

2.3 手工配置网卡ip,添加缺省gw路由:

dpu-node上

sudo ifconfig enp6s0 192.168.126.133 netmask 255.255.255.0
sudo ip link set enp6s0 up
sudo ifconfig enp6s0 promisc
sudo route add default gw 192.168.126.1 dev enp6s0

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:e8:ae:5b brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.104/24 brd 192.168.122.255 scope global dynamic enp1s0
       valid_lft 2487sec preferred_lft 2487sec
    inet6 fe80::5054:ff:fee8:ae5b/64 scope link
       valid_lft forever preferred_lft forever
3: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:52:c7:6f brd ff:ff:ff:ff:ff:ff
    inet 192.168.126.133/24 brd 192.168.126.255 scope global enp6s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe52:c76f/64 scope link
       valid_lft forever preferred_lft forever

host-node上

sudo ip add add 192.168.126.130/24 dev enp6s0
sudo ip link set enp6s0 up
sudo ifconfig enp6s0 promisc
sudo route add default gw 192.168.126.1 dev enp6s0
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:19:9d:d8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.224/24 brd 192.168.122.255 scope global dynamic enp1s0
       valid_lft 2806sec preferred_lft 2806sec
    inet6 fe80::5054:ff:fe19:9dd8/64 scope link
       valid_lft forever preferred_lft forever
3: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:e2:18:70 brd ff:ff:ff:ff:ff:ff
    inet 192.168.126.130/24 brd 192.168.126.255 scope global enp6s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fee2:1870/64 scope link
       valid_lft forever preferred_lft forever

可以ping通

jingh@dpu-node:~$ ping 192.168.126.130
PING 192.168.126.130 (192.168.126.130) 56(84) bytes of data.
64 bytes from 192.168.126.130: icmp_seq=1 ttl=64 time=0.684 ms
64 bytes from 192.168.126.130: icmp_seq=2 ttl=64 time=0.389 ms

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

virt-manger创建虚拟机及virtio网卡 的相关文章

  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • Django + nginx + uwsgi 无法登录

    我有非常简单的登录逻辑 类似于官方 Django 解决方案 class Login FormView template name login html form class AuthenticationForm def get self a
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 带有 CUDA 的 Tensorflow:导入错误

    我已经按照 NVIDIA 教程中的说明一步步安装了 TensorFlow Ubuntu 16 04 桌面版 GTX 970 http www nvidia com object gpu accelerated applications te
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • pip:需要将包名称tensorflow-gpu更改为tensorflow

    我正在尝试将具有 GPU 支持的张量流安装到 conda 环境中 我使用命令 pip install ignore installed upgrade https storage googleapis com tensorflow linu
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 使用 g++ 5.3.1 编译的程序运行速度比使用 g++ 4.8.4 编译的相同程序慢 3 倍,相同的命令

    最近 我开始使用 Ubuntu 16 04 和 g 5 3 1 并检查我的程序是否运行慢3倍 在此之前我使用过 Ubuntu 14 04 g 4 8 4 我用相同的命令构建它 CFLAGS std c 11 Wall O3 我的程序包含循环
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在 Ubuntu 中使用 Gstreamer 通过 RTP 协议流式传输 Mp4 视频

    我正在尝试从本地目录获取视频文件 启用来自服务器的流并从客户端捕获这些帧 我使用了以下管道 服务器端 gst launch v filesrc location home gokul Videos Econ TestVideo radioa

随机推荐

  • CSS中设置表格TD宽度的问题

    CSS布局 表格宽度不听使唤的实例 想把表格第一例宽度设为20 其他自适应 但CSS中宽度是等宽的 只设这一行也不起作用 但是在实际应用中总是等宽处理 并不按照样式来走 XML HTML代码
  • Linux 添加ssh公钥 实现免密认证

    ssh 无密码登录要使用公钥与私钥 linux下可以用用ssh keygen生成公钥 私钥对 1 添加A服务器公钥到B服务器 2 到A服务器输入命令ssh keygen 一路回车 3 找到A服务器的 root ssh id rsa pub
  • Windows环境下3分钟就能安装一个Ubuntu

    作为一名IT人士 如果你手上没有一个私人的Linux环境是说不过去的 单独购买云服务器来搭建代价太高 用磁盘分区装双系统步骤也繁琐 那怎样在3分钟内快速搭建出一个私人的Linux环境呢 一 在Windows系统下 装Linux的常用方法是
  • Redis之hash类型

    文章目录 Redis之hash类型 1 设置一个字段 获取一个字段 2 获取所有字段值 3 判断字段是否存在 4 设置多个字段 获取多个字段 5 只获取字段名 字段值 6 获取某个key内全部数量 7 增加数字 8 删除key内字段 9 字
  • form表单传递对象数组

    ajax传递数组 form表单提交对象数组 在JSP页面开发中 我们常常会用到form表单做数据提交 由于以前一直只是使用 form表单提交单个对象 只要表单文本域的name值和接收的对象的属性名一致 那么传值就没有什么问题 不过 在前几天
  • 【狂神说Java】CSS快速入门

    目录 1 什么是CSS 11 什么是CSS 1 2 发展史 1 3 快速入门 1 4 CSS的三种导入方式 2 选择器 2 1 基本选择器 2 2 层次选择器 2 3 结构伪类选择器 2 4 属性选择器 常用 3 美化网页元素 3 1 为什
  • 【前端】菜单栏设计(html、css)

    先展示一下效果图 目录 一 代码 1 1 html 1 2 css 二 代码分析 2 1 浏览器配置 2 1 1 normalize css 2 1 2 html5shiv 2 2 html分析 2 css解析 一 代码 1 1 html
  • 源文件字符集,编译器内部字符集,执行字符集,控制台乱码问题,Qt中文问题

    源文件字符集 源文件本身也是文本文件 所以源文件字符集是指源文件保存时采用哪种字符集编码 VC 下源文件默认是gbk编码 如果想要更改 可以通过 文件 高级保存选项 修改某个源文件的编码方式 似乎没有什么选项能够设置创建项目时的源文件编码
  • 如何编写测试用例

    文章目录 测试用例的内容 等价类 边界值分析法 流程分析法 判定表法 正交试验法 测试用例的内容 用例编号 用于唯一的识别用例 能够根据用例编号识别我们测试所属的产品 模块 测试阶段等 一般格式为 A B C D A 一般用来表示产品或者项
  • Heating Up (单调栈,在环上选择一个点为起点,若有一边权值小于当前值,则吃掉那个点并获得相应贡献)

    https codeforces com gym 104064 problem H include
  • js计算两日期相差的天数、月数

    返回两个日期相差的月数function MonthsBetw date1 date2 date1和date2是2019 3 12格式 用 分成数组 date1 date1 split date2 date2 split 获取年 月数 var
  • 8086乘法指令MUL,IMUL

    对于加减指令来说CPU对有符号加减和无符号加减一视同仁 根据我们需要把它作为有符号的结果还是无符号的结果 但是乘除法指令区分有符号乘除和无符号乘除指令 无符号数乘法指令MUL MULtiply MUL OPRD OPRD可以用除立即数以外的
  • AD15设置覆铜与边框尺寸

    铺板铜边到的间距要比到其它的间距的优先级要高
  • 修改 placeholder 样式,placeholder 换行 以及iOS 上设置placeholder被遮挡

    修改placeholder样式 通过选择器就可以简单的修改该placeholder的样式 input placeholder font size 14px color 666666 placeholder 换行 在input 里面很少用到
  • Spring的@Autowired注解原理分析

    一 Autowired的作用 Autowired常用来作属性的注入 可以作用在构造方法 普通方法 字段 注解 参数上 将构造函数 字段 设置方法或配置方法标记为由Spring 的依赖注入工具自动装配 Autowired注解做过开发的肯定都很
  • linux 远程管理ssh sz/rz

    sentos7 连接配置 安装sentos7 自行安装sentos7 建议使用virtualBox创建 服务端安装openssh server 检查是否已经安装openssh server vagrant localhost yum lis
  • 学习笔记Controller

    转自 http elim iteye com blog 1753271 谢谢博主分享 SpringMVC Controller 介绍 一 简介 在SpringMVC 中 控制器Controller 负责处理由DispatcherServle
  • 【Git

    个人格言 时间是亳不留情的 它真使人在自己制造的镜子里照见自己的真相 Git专栏 Git篇 JavaScript专栏 js实用技巧篇 该专栏持续更新中 目的是给大家分享一些常用实用技巧 同时巩固自己的基础 共同进步 欢迎前来交流 你的一键三
  • 树莓派配置热点官网操作指引

    参考官方原说明链接 https www raspberrypi org documentation computers configuration html enable routing and ip masquerading 1 安装接入
  • virt-manger创建虚拟机及virtio网卡

    可以把创建的vm node及network的xml文件导出来存放 以后可以使用命令创建 sudo apt get install qemu kvm virsh define vm0 xml 导入虚拟机配置 virsh start vm0 开