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

可以把创建的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


版权声明:本文为weixin_42343801原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。