跳转到内容跳转到页面导航:上一页 [访问键 p]/下一页 [访问键 n]
适用于 openSUSE Leap 15.5

27 管理任务 编辑源文件

27.1 引导加载程序 编辑源文件

引导加载程序控制虚拟化软件的引导和运行方式。您可以通过 YaST 或直接编辑引导加载程序配置文件来修改引导加载程序属性。

YaST 引导加载程序位于 YaST › 系统 › 引导加载程序。单击 引导加载程序选项 选项卡,并将包含 Xen 内核的行选为 默认引导节

Boot loader settings
图 27.1: 引导加载程序设置

使用 确定 确认。下次启动主机时,它可以提供 Xen 虚拟化环境。

您可以使用引导加载程序指定功能,例如

您可以通过编辑 /etc/default/grub 文件来自定义您的虚拟化环境。将以下行添加到此文件:GRUB_CMDLINE_XEN="<boot_parameters>"。编辑文件后,请不要忘记运行 grub2-mkconfig -o /boot/grub2/grub.cfg

27.2 稀疏镜像文件和磁盘空间 编辑源文件

如果主机的物理磁盘达到没有可用空间的状态,则使用基于稀疏镜像文件的虚拟磁盘的虚拟机无法写入其磁盘。因此,它会报告 I/O 错误。

如果发生这种情况,您应该释放物理磁盘上的可用空间,重新挂载虚拟机的文件系统,并将文件系统设置回读写。

要检查稀疏镜像文件的实际磁盘需求,请使用命令 du -h <image file>

要增加稀疏镜像文件的可用空间,首先增加文件大小,然后增加文件系统。

Warning
警告:在调整大小之前备份

调整分区或稀疏文件的大小始终存在数据失败的风险。不要在没有备份的情况下工作。

可以在 VM Guest 运行时在线调整镜像文件的大小,使用以下命令增加稀疏镜像文件的大小:

> sudo dd if=/dev/zero of=<image file> count=0 bs=1M seek=<new size in MB>

例如,要将文件 /var/lib/xen/images/sles/disk0 增加到 16GB 大小,请使用命令

> sudo dd if=/dev/zero of=/var/lib/xen/images/sles/disk0 count=0 bs=1M seek=16000
Note
注意:增加非稀疏镜像

也可以增加不是稀疏文件的设备的镜像文件。但是,您必须确切知道之前的镜像结束的位置。使用 seek 参数指向镜像文件的末尾,并使用类似以下命令的命令

> sudo dd if=/dev/zero of=/var/lib/xen/images/sles/disk0 seek=8000 bs=1M count=2000

请确保使用正确的 seek,否则可能会丢失数据。

如果 VM Guest 在调整大小操作期间正在运行,则还需要调整向 VM Guest 提供镜像文件的循环设备。首先使用命令检测正确的循环设备

> sudo losetup -j /var/lib/xen/images/sles/disk0

然后调整循环设备,例如 /dev/loop0,使用以下命令

> sudo losetup -c /dev/loop0

最后,使用命令 fdisk -l /dev/xvdb 检查 guest 系统内的块设备的大小。将设备名称替换为您增加的磁盘。

稀疏文件内的文件系统调整大小涉及取决于实际文件系统的工具。

27.3 迁移 Xen VM Guest 系统 编辑源文件

使用 Xen,可以将 VM Guest 系统从一个 VM Host Server 迁移到另一个 VM Host Server,几乎没有服务中断。这可以用于将繁忙的 VM Guest 移动到硬件更强大或尚未加载的 VM Host Server。或者,如果需要 VM Host Server 的服务,可以迁移在此机器上运行的所有 VM Guest 系统,以避免服务中断。这些只是两个例子——许多其他原因可能适用于您的个人情况。

在开始之前,应考虑 VM Host Server 的某些初步考虑事项

  • 所有 VM Host Server 系统应使用类似的 CPU。频率不是很重要,但它们应使用相同的 CPU 系列。要获取有关所用 CPU 的更多信息,请使用 cat /proc/cpuinfo。有关比较主机 CPU 功能的更多详细信息,请参阅 第 27.3.1 节,“检测 CPU 功能”

  • 所有由特定 guest 系统使用的资源都必须在所有涉及的 VM Host Server 系统上可用——例如,所有使用的块设备都必须存在于两个 VM Host Server 系统上。

  • 如果迁移过程中涉及的主机在不同的子网中运行,请确保为 guest 提供 DHCP 中继,或者对于具有静态网络配置的 guest,手动设置网络。

  • 使用特殊功能,如 PCI Pass-Through 可能会有问题。不要在部署用于在不同的 VM Host Server 系统之间迁移 VM Guest 系统的环境中实施这些功能。

  • 为了快速迁移,必须使用快速网络。如果可能,请使用 GB 以太网和快速交换机。部署 VLAN 也可以帮助避免冲突。

27.3.1 检测 CPU 功能 编辑源文件

通过使用 cpuidxen_maskcalc.py 工具,您可以比较从要迁移的源 VM Guest 的主机上 CPU 的功能与目标主机上 CPU 的功能。这样可以更好地预测 guest 迁移是否会成功。

  1. 在将要运行或接收迁移的 VM Guest 的每个 Dom0 上运行 cpuid -1r 命令,并将输出捕获到文本文件中,例如

    tux@vm_host1 > sudo cpuid -1r > vm_host1.txt
    tux@vm_host2 > sudo cpuid -1r > vm_host2.txt
    tux@vm_host3 > sudo cpuid -1r > vm_host3.txt
  2. 将所有输出文本文件复制到安装了 xen_maskcalc.py 脚本的主机上。

  3. 在所有输出文本文件上运行 xen_maskcalc.py 脚本

    > sudo xen_maskcalc.py vm_host1.txt vm_host2.txt vm_host3.txt
    cpuid = [
        "0x00000001:ecx=x00xxxxxx0xxxxxxxxx00xxxxxxxxxxx",
        "0x00000007,0x00:ebx=xxxxxxxxxxxxxxxxxx00x0000x0x0x00"
    ]
  4. cpuid=[...] 配置片段复制到迁移的 guest domU.cfgxl 配置中,或者替代地复制到其 libvirt 的 XML 配置中。

  5. 使用 修剪过的 CPU 配置启动源 guest。现在 guest 只能使用每个主机上都存在的 CPU 功能。

27.3.1.1 更多信息 编辑源文件

您可以在 http://etallen.com/cpuid.html 找到有关 cpuid 的更多详细信息。

您可以从 https://github.com/twizted/xen_maskcalc 下载 CPU 掩码计算器的最新版本。

27.3.2 为迁移准备块设备 编辑源文件

VM Guest 系统所需的块设备必须在所有涉及的 VM Host Server 系统上可用。这是通过实施充当迁移的 VM Guest 系统的根文件系统的容器的特定类型的共享存储来实现的。常见的可能性包括

  • iSCSI 可以设置为允许从不同的系统同时访问相同的块设备。

  • NFS 是一种广泛使用的根文件系统,可以轻松地从不同位置访问。有关更多信息,请参阅 参考”手册,第 22 章“使用 NFS 共享文件系统”

  • DRBD 只能在涉及两个 VM Host Server 系统时使用。这增加了某些额外的数据安全性,因为使用的数据通过网络镜像。

  • SCSI 也可以使用,如果可用的硬件允许共享访问相同的磁盘。

  • NPIV 是使用光纤通道磁盘的一种特殊模式。但是,在这种情况下,所有迁移主机必须连接到相同的光纤通道交换机。有关 NPIV 的更多信息,请参阅 第 25.1 节,“将物理存储映射到虚拟磁盘”。通常,如果光纤通道环境支持 4 Gbps 或更快的连接,则此方法有效。

27.3.3 迁移 VM Guest 系统 编辑源文件

使用以下命令完成 VM Guest 系统的实际迁移

> sudo xl migrate <domain_name> <host>

迁移的速度取决于将内存打印保存到磁盘、发送到新的 VM Host Server 以及加载到其中的速度。这意味着小的 VM Guest 系统比具有大量内存的大型系统迁移得更快。

27.4 监控 Xen 编辑源文件

对于许多虚拟 guest 的常规操作,拥有检查所有不同 VM Guest 系统是否正常运行的可能性至关重要。Xen 提供了多种工具,除了系统工具之外,还可以收集有关系统的信息。

Tip
提示:监控 VM Host Server

通过 Virtual Machine Manager 可以获得 VM Host Server 的基本监控(I/O 和 CPU)。有关详细信息,请参阅 第 10.8.1 节,“使用 Virtual Machine Manager 监控”

27.4.1 使用 xentop 监控 Xen 编辑源文件

用于收集有关 Xen 虚拟环境信息的首选终端应用程序是 xentop。请注意,此工具需要一个相当宽的终端,否则它会将换行符插入到显示中。

xentop 有几个命令键可以为您提供有关被监控系统的更多信息。例如

D

更改屏幕刷新之间的延迟。

N

也显示网络统计信息。请注意,仅显示标准配置。如果您使用特殊配置,例如路由网络,则不会显示任何网络。

B

显示相应的块设备及其累积使用计数。

有关 xentop 的更多信息,请参阅手册页 man 1 xentop

Tip
提示:virt-top

libvirt 提供了与超visor 无关的工具 virt-top,建议用于监控 VM Guests。有关详细信息,请参阅 第 10.8.2 节,“使用 virt-top 监控”

27.4.2 其他工具 编辑源文件

有许多系统工具也可以帮助监控或调试正在运行的 openSUSE 系统。其中许多工具在 系统分析和调优指南”手册,第 2 章“系统监控实用程序” 中介绍。对于监控虚拟化环境,以下工具特别有用

ip

命令行实用程序 ip 可用于监控任意网络接口。如果设置了路由网络或应用了防火墙设置,这非常有用。要监控名为 alice.0 的网络接口,请运行以下命令

> watch ip -s link show alice.0
bridge

在标准设置中,所有 Xen VM Guest 系统都连接到虚拟网络桥接。 bridge 允许您确定桥接与 VM Guest 系统中的虚拟网络适配器之间的连接。例如,bridge link 的输出可能如下所示

2: eth0 state DOWN : <NO-CARRIER, ...,UP> mtu 1500 master br0
8: vnet0 state UNKNOWN : <BROADCAST, ...,LOWER_UP> mtu 1500 master virbr0 \
  state forwarding priority 32 cost 100

这表明系统上定义了两个虚拟桥接。一个连接到物理以太网设备 eth0,另一个连接到 VLAN 接口 vnet0

iptables-save

尤其是在使用 masquerade 网络或设置了多个以太网接口以及防火墙设置的情况下,检查当前的防火墙规则可能会有所帮助。

可以使用命令 iptables 检查所有不同的防火墙设置。要列出链中的所有规则,甚至整个设置中的所有规则,可以使用命令 iptables-saveiptables -S

27.5 为 VM Guest 系统提供主机信息 编辑源文件

在标准的 Xen 环境中,VM Guest 系统只有关于其运行的 VM Host Server 系统的有限信息。如果 guest 应该了解更多关于其运行的 VM Host Server 的信息,vhostmd 可以为选定的 guest 提供更多信息。要设置系统以运行 vhostmd,请按以下步骤操作

  1. 在 VM Host Server 上安装 vhostmd 包。

  2. 要添加或删除配置中的 `metric` 部分,请编辑文件 `/etc/vhostmd/vhostmd.conf`。但是,默认配置效果很好。

  3. 使用以下命令检查 `vhostmd.conf` 配置文件是否有效:

    > cd /etc/vhostmd
    > xmllint --postvalid --noout vhostmd.conf
  4. 使用命令 `sudo systemctl start vhostmd` 启动 vhostmd 守护进程。

    如果希望 vhostmd 在系统启动时自动启动,请运行以下命令:

    > sudo systemctl enable vhostmd
  5. 使用以下命令将镜像文件 `/dev/shm/vhostmd0` 附加到名为 alice 的 VM Guest 系统:

    > xl block-attach opensuse /dev/shm/vhostmd0,,xvdb,ro
  6. 登录 VM Guest 系统。

  7. 安装客户端软件包 `vm-dump-metrics`。

  8. 运行命令 `vm-dump-metrics`。要将结果保存到文件,请使用选项 `-d <filename>`。

`vm-dump-metrics` 的结果是 XML 输出。相应的指标条目遵循 DTD `/etc/vhostmd/metric.dtd`。

有关更多信息,请参阅 VM Host Server 系统上的手册页 `man 8 vhostmd` 和 `/usr/share/doc/vhostmd/README`。在 Guest 系统上,请参阅手册页 `man 1 vm-dump-metrics`。

打印此页面