AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[kvm-virtualization](server)

Martin Hope
Lech
Asked: 2024-12-18 22:41:03 +0800 CST

如果由于 MAC 设置而导致 VM 失败,如何使用 SRIOV 池中的 VF 启动 VM?

  • 5

我正在尝试在 RHEL9 下运行 KVM/QEMU VM,该 VM 通过 SR-IOV 从 VF 池中使用虚拟化 Infiniband 卡 ​​(VF)。我可以使用 hostdev 指定某个 VF 的 PCI 设备,并且运行正常,但是这需要将 PCI 总线/插槽/等硬编码到 VM XML 表中。将 VM 迁移到另一台服务器时,这会成为一个问题。因此,我宁愿定义一个 VF 网络池,如本 RH 文档中所述,它会自动将空闲的 VF 分配给新启动的 VM。

我按照文档中描述的一切进行操作,并且来自单个 IB 卡的 8 个 VF 的网络池正常运行:

# virsh net-dumpxml IB-passthrough
<network>
  <name>IB-passthrough</name>
  <uuid>8dce28fa-97ea-43d4-a82b-5923fa1a2a4f</uuid>
  <forward mode='hostdev' managed='yes'>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x1'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x2'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x3'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x4'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x5'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x6'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x00' function='0x7'/>
    <address type='pci' domain='0x0000' bus='0xc1' slot='0x01' function='0x0'/>
  </forward>
</network>

我将以下条目写入虚拟机的 XML:

<interface type='network'>
  <source network='IB-passthrough'/>
</interface>

但关闭 XML 编辑器后,条目会自动扩展mac并address显示以下条目:

<interface type='network'>
  <mac address='52:54:00:44:db:0d'/>
  <source network='IB-passthrough'/>
  <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
</interface> 

然后由于无法设置 MAC 地址,虚拟机无法启动:

# virsh start rhel9.2-testvm
    error: Failed to start domain 'rhel9.2-testvm'
    error: Cannot set interface MAC to 52:54:00:05:72:5c for ifname ibp193s0 vf 0: Operation not supported

有没有办法省略自动 MAC?或者接口 MAC 更改?或者还有其他我遗漏的问题?

kvm-virtualization
  • 1 个回答
  • 59 Views
Martin Hope
Thomas P
Asked: 2024-11-27 23:12:20 +0800 CST

libvirt:将静态路由添加到隔离网络

  • 5

我正在使用 Ubuntu 24.04 桌面,并创建了一个连接到默认 libvirt-NAT-Bridge 和第二个隔离网络的虚拟机。

桥接网络是virbr0: 192.168.122.0/24主机获得192.168.122.1而虚拟机获得静态192.168.122.128网络。隔离网络是10.95.212.0/24。

我希望能够 ping/ssh 到隔离网络中的主机,所以我route add ...在主机上设置了静态路由 ()。它可以工作,但重启后就失效了。我试过了,nmtui但重启后路由就消失了。

我考虑过virsh net-edit default,但没有找到有关如何去做的任何文档。

我必须在哪里定义重启后仍存在的路线?

kvm-virtualization
  • 1 个回答
  • 25 Views
Martin Hope
Volodymyr Melnyk
Asked: 2024-08-21 15:51:08 +0800 CST

动态删除 QCOW2 镜像中的快照

  • 5

是否可以在不关闭虚拟机(QEMU+KVM)的情况下从 QCOW2 映像中删除快照?运行不会破坏数据一致性吗?如果可以,如果在删除快照之前qemu-img snapshot -d ...运行然后运行,会破坏一致性吗?您觉得如何?virsh pause ...virsh resume ...

谢谢!

kvm-virtualization
  • 1 个回答
  • 23 Views
Martin Hope
rohanc
Asked: 2024-07-18 11:56:18 +0800 CST

对虚拟机客户机隐藏物理硬件更改

  • 5

我在 Proxmox VE 8.2(在 Debian 12 上)下运行 Windows 客户机,并且想向客户机隐藏有关底层物理硬件的信息。

动机

我已全额支付了某库存管理软件的永久许可证费用,但该软件的支持已“终止”,供应商已决定关闭其许可证服务器。他们已向我颁发了离线访问证书,但问题在于:

  1. 如果他们的 Windows 应用程序(在我的计算机上)检测到其底层硬件的变化,则证书无效。
  2. 如果我重新安装该应用程序,我不知道有任何机制可以导入以前颁发的证书。

为了降低应用程序检测到重大硬件变化的可能性,我已将应用程序安装在 Windows 虚拟机上。(主机是 Linux 上的 KVM。)我希望能够自由地将 VM 迁移到不同的物理机,在必要时升级运行虚拟机管理程序的 PC 上的硬件等。

VM 所感知的硬件

我不知道该应用程序用来检测硬件变化的算法,但我怀疑它可能会考虑以下事项:

  • CPU 序列号
  • 网络接口 MAC 地址
  • BIOS 字符串
  • 硬盘UUID

其中一些信息(例如 Windows 系统信息应用程序中显示的 CPU 信息)似乎是从 VM 主机获取的,并通过虚拟机管理程序传递给客户机。

您能告诉我应该调整哪些 Proxmox(或 Qemu/KVM)设置来隐藏(或覆盖或冻结)VM 客户机可见的硬件标识符吗?

kvm-virtualization
  • 1 个回答
  • 38 Views
Martin Hope
Kheldar Ambar
Asked: 2024-04-23 03:15:39 +0800 CST

使用 Netplan 在 Hetzner 上用于附加子网的 KVM 路由桥

  • 5

我在 Hetzner 有一个运行 KVM 的专用 Ubuntu 22.04 服务器。我已将附加子网中的 IP 地址分配给来宾虚拟机。我可以按预期通过公共 IP 地址访问来宾虚拟机。

我收到了一封来自 Hetzner 的电子邮件,称我正在使用“未经允许的”MAC 地址,并威胁要阻止服务器。“不允许的”MAC 地址属于来宾虚拟机。Hetzner 支持人员表示“您必须确保您的虚拟机的 MAC 地址不会在网络设备上的公共上行链路中可见。” 有人知道如何遵守 Hetzner 的网络规则吗?这是我的配置:

  1. 物理服务器
$ sudo cat /etc/netplan/01-netcfg.yaml
    ### Hetzner Online GmbH installimage
    network:
      version: 2
      renderer: networkd
      ethernets:
        enp98s0f0:
          match:
            macaddress: xx:xx:xx:xx:xx:fa
          dhcp4: no
          dhcp6: no
      bridges:
        br0:
          macaddress: xx:xx:xx:xx:xx:fa
          interfaces:
            - enp98s0f0
          dhcp4: no
          dhcp6: no
          addresses:
            - aa.bb.cc.108/32 # Physical NIC (Main IP)
            - aa.bb.cc.65/28 # First usable IP of the additional subnet
          routes:
            - to: 0.0.0.0/0
              via: aa.bb.cc.105 # Gateway for Main IP on physical NIC
              on-link: true
            - to: aa.bb.cc.64/28 # Additional subnet
              via: aa.bb.cc.65 # First usable IP of the additional subnet assigned to physical NIC above
              on-link: true
          nameservers:
            addresses:
              - 185.12.64.2
              - 185.12.64.1
          parameters:
            stp: false
            forward-delay: 0

$ cat /etc/sysctl.d/10-forwarding.conf 
net.ipv4.ip_forward=1
#net.ipv4.conf.enp98s0f0.send_redirects=0
net.ipv4.conf.all.proxy_arp=1
net.ipv4.conf.all.forwarding=1
$ cat br0.xml
<network>
    <name>br0</name>
    <forward mode='bridge'/>
    <bridge name='br0'/>
</network>
  1. 访客虚拟机
$ sudo cat /etc/netplan/01-netcfg.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp1s0:
      addresses:
      - aa.bb.cc.67/28 # Additional subnet
      nameservers:
        addresses:
        - 185.12.64.2
        - 185.12.64.1
        search: []
      routes:
      - to: default
        via: aa.bb.cc.65 # First usable IP of the additional subnet assigned to physical NIC
  version: 2
kvm-virtualization
  • 1 个回答
  • 24 Views
Martin Hope
Robert Siemer
Asked: 2024-02-21 23:08:29 +0800 CST

在使用 kvm/qemu 设置的 vagrant-libvirt 中,哪个软件会影响虚拟机的网络配置文件?

  • 5

vagrant-libvirt-qemu/kvm-chain 中的哪个元素负责实际配置虚拟机?就像编辑网络配置文件一样。这不是完全取决于虚拟机操作系统的细节吗?

作为示例,我在以下行中得到Vagrantfile:

config.vm.box = "archlinux/archlinux"
config.vm.network :private_network, :libvirt__network_name => "default", :mac => "52:54:00:00:00:1f", :ip => "192.168.30.7"

...并且VM最终在所有接口上都有dhcpcd(客户端守护进程),而systemdnetworkctl显示它本身管理所有接口(具有静态配置的接口,显然与dhcpcd冲突)。-- 任何接口都应该只有其中一个人负责......

那么什么实体将文件放入其中呢/etc/systemd/network?该实体如何确定该虚拟机中正在使用 systemd?该实体(控制虚拟机配置的旋钮)是否在某处记录了这些详细信息?

kvm-virtualization
  • 1 个回答
  • 18 Views
Martin Hope
adrian
Asked: 2023-08-22 09:17:55 +0800 CST

内存膨胀不会尝试回收页面缓存

  • 5

我有一台运行 Proxmox 的主机,上面有一些虚拟机。由于某些应用程序的内存使用情况具有不可预测性,并且希望在有可用内存时为某些虚拟机(如数据库)提供内存用于页面缓存,因此我过度配置了内存。

我尝试通过尝试使用比主机更多的内存来测试此设置的可靠性,并且此 OOM 杀死了虚拟机,而不是尝试回收其他虚拟机的页面缓存。

我可以做些什么来让气球驱动程序回收内存,还是我误解了内存气球的工作原理?

kvm-virtualization
  • 1 个回答
  • 22 Views
Martin Hope
e-info128
Asked: 2023-07-01 05:20:43 +0800 CST

如何在kvm上使用特定主机IP地址?

  • 5

有一个专用的 Ubuntu Server 主机,具有单个网络接口但具有两个 IP 地址:

root@server:~# cat /etc/netplan/50-cloud-init.yaml 
network:
    version: 2
    ethernets:
        eno3:
            dhcp4: true
            match:
                macaddress: 00:00:00:00:00:00
            set-name: eno3
            addresses: [IP-A/24, IP-B/32]

本地ip地址什么时候IP-A分配给服务器,IP-B是我签约的额外ip地址。当配置使用netplan apply一切都工作得很好时,WEB服务器通过IP地址退出IP-A,从curl我可以看到如何从以下位置访问互联网IP-B:

wget -qO- http://checkip.dyndns.com/ --bind-address IP-A
... Current IP Address: IP-A
wget -qO- http://checkip.dyndns.com/ --bind-address IP-B
... Current IP Address: IP-B

问题是我也有一个带kvm( ) 的虚拟机,如何使虚拟机使用而不是默认情况下的方式virsh上网?IP-BIP-A

我的网络接口:

root@yhojann:~# ip addr
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
2: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 11:11:11:11:11:11 brd ff:ff:ff:ff:ff:ff
    inet IP-A/24 brd x.x.x.255 scope global dynamic eno3
       valid_lft 63801sec preferred_lft 63801sec
    inet IP-B/32 scope global eno3
       valid_lft forever preferred_lft forever
    inet6 ffff::fff:ffff:ffff:ffff/64 scope link 
       valid_lft forever preferred_lft forever
3: eno4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 22:22:22:22:22:22 brd ff:ff:ff:ff:ff:ff
17: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 33:33:33:33:33:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
18: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 44:44:44:44:44:44 brd ff:ff:ff:ff:ff:ff
20: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN group default qlen 1000
    link/ether 44:44:44:44:44:44 brd ff:ff:ff:ff:ff:ff

我试图找出是否可以使用配置 kvm 网络virsh net-edit default

但我还没有找到任何参考,允许使用主主机的特定出口 IP 地址,而无需使用新的虚拟接口并使用 iptables 重定向数据包,因为这会导致连接出现很大的延迟。

有没有更“原生”的方法来告诉kvm使用特定的IP?

显示的 IP 地址和 MAC 地址仅供参考。我使用 ufw 来管理连接。

kvm-virtualization
  • 1 个回答
  • 27 Views
Martin Hope
Jonas
Asked: 2023-02-20 20:04:03 +0800 CST

三个 virtio-blk 设备导致 Windows 10 VM 崩溃

  • 6

如果添加了三个virtio-blk设备,VM 会在 Windows 10 启动过程中崩溃。附件blockdev没有影响。VM 使用两个virtio-blk.

qemu-system-x86_64 \
...
-device virtio-blk,drive=c,bus=pci.3,addr=0x0,write-cache=on,bootindex=1 \
-device virtio-blk,drive=d,bus=pci.4,addr=0x0,write-cache=on \
-device virtio-blk,drive=e,bus=pci.5,addr=0x0,write-cache=on \
...

qemu-system-x86_64退出而不打印任何信息。这种情况如何调试?发生这种情况的原因可能是已知的。

上下文:Kubernetes、特权 Debian 容器、Qemu 5.2.0

kvm-virtualization
  • 1 个回答
  • 41 Views
Martin Hope
eKKiM
Asked: 2023-01-11 10:56:26 +0800 CST

libvirt 实时存储迁移但将 vm 保留在同一主机上

  • 5

libvirt 是否能够进行实时存储迁移但将 VM 保持在同一主机上?

我在一台主机上有两个 NFS 网络文件系统池。我想将底层 qcow2 磁盘文件从一个池实时迁移到另一个池。

我找不到任何仅与实时存储迁移相关的文档。所有示例和文档似乎都需要同时进行实时 VM 迁移。

kvm-virtualization
  • 1 个回答
  • 26 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve