跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 使用 Xen 管理虚拟机 / Xen 中的块设备
适用范围 SUSE Linux Enterprise Server 15 SP6

26 Xen 中的块设备

26.1 将物理存储设备映射到虚拟磁盘

域配置文件中 Xen 域的磁盘指定方式非常直接,如以下示例所示:

disk = [ 'format=raw,vdev=hdc,access=ro,devtype=cdrom,target=/root/image.iso' ]

此命令基于 /root/image.iso 磁盘映像文件定义一个磁盘块设备。Guest 将该磁盘视为 hdc,只能对它进行只读 (ro) 访问。设备类型为 cdrom,格式为 raw

下面的示例定义了相同的设备,但使用的是简化的位置语法:

disk = [ '/root/image.iso,raw,hdc,ro,cdrom' ]

您可在同一行中包含更多磁盘定义,每个定义需以逗号分隔。如果未指定某个参数,系统会采用其默认值:

disk = [ '/root/image.iso,raw,hdc,ro,cdrom','/dev/vg/guest-volume,,hda','...' ]
参数列表
target

源块设备或磁盘映像路径。

format

映像文件的格式。默认值为 raw

vdev

Guest 看到的虚拟设备。支持的值为 hd[x]、xvd[x]、sd[x] 等。有关更多细节,请参见 /usr/share/doc/packages/xen/misc/vbd-interface.txt。此参数是必需的。

access

提供给 Guest 的块设备处于只读模式还是读写模式。支持的值为 ror(只读访问)以及 rww(读写访问)。对于 devtype=cdrom,默认值为 ro;对于其他设备类型,默认值为 rw

devtype

限定虚拟设备类型。支持的值为 cdrom

backendtype

要使用的后端实现。支持的值为 phytapqdisk。一般不应指定此选项,因为系统会自动确定后端类型。

script

指定 target 不是常规的主机路径,而是要由可执行程序解释的信息。如果指定的脚本文件不指向绝对路径,将在 /etc/xen/scripts 中查找该文件。这些脚本通常名为 block-<script_name>

有关指定虚拟磁盘的详细信息,请参见 /usr/share/doc/packages/xen/misc/xl-disk-configuration.txt

26.2 将网络存储设备映射到虚拟磁盘

与映射本地磁盘映像(请参见第 26.1 节 “将物理存储设备映射到虚拟磁盘”)类似,您也可以将网络磁盘映射为虚拟磁盘。

下面的示例展示了启用了多个 Ceph 监控器和 cephx 身份验证的 RBD(RADOS 块设备)的映射:

disk = [ 'vdev=hdc, backendtype=qdisk, \
target=rbd:libvirt-pool/new-libvirt-image:\
id=libvirt:key=AQDsPWtW8JoXJBAAyLPQe7MhCC+JPkI3QuhaAw==:auth_supported=cephx;none:\
mon_host=137.65.135.205\\:6789;137.65.135.206\\:6789;137.65.135.207\\:6789' ]

下面是 NBD(网络块设备)磁盘映射示例:

disk = [ 'vdev=hdc, backendtype=qdisk, target=nbd:151.155.144.82:5555' ]

26.3 基于文件的虚拟磁盘和回写设备

当虚拟机正在运行时,其每个基于文件的虚拟磁盘都会占用主机上的一个回写设备。默认情况下,主机最多允许占用 64 个回写设备。

要在主机上同时运行更多基于文件的虚拟磁盘,可以通过将以下选项添加到主机的 /etc/modprobe.conf.local 文件,来增加可用回写设备的数量。

options loop max_loop=x

其中,x 是要创建的回写设备的最大数量。

重新加载模块后,更改即会生效。

提示
提示

输入 rmmod loopmodprobe loop 可以卸载和重新加载模块。如果 rmmod 不起作用,请卸载所有现有循环设备,或重引导计算机。

26.4 调整块设备的大小

尽管您始终都可以向 VM Guest 系统添加新的块设备,但有时更合适的做法是增加现有块设备的大小。如果在部署 VM Guest 期间已经规划了此类系统修改,则应该注意多个基本事项:

  • 使用可以增加大小的块设备。通常使用 LVM 设备和文件系统映像。

  • 不要将 VM Guest 内部的设备分区,而是直接使用主设备来应用文件系统。例如,直接使用 /dev/xvdb,而不是在 /dev/xvdb 中添加分区。

  • 确保要使用的文件系统可调整大小。有时(例如,使用 Ext3 时),必须关闭某些功能才能调整文件系统的大小。其中一个可以联机调整大小并挂载的文件系统是 XFS。增加底层块设备的大小后,使用 xfs_growfs 命令调整该文件系统的大小。有关 XFS 的详细信息,请参见 man 8 xfs_growfs

调整分配给 VM Guest 的 LVM 设备的大小后,VM Guest 会自动获悉新的大小。您无需执行其他操作告知 VM Guest 块设备的新大小。

使用文件系统映像时,将使用一个循环设备向 Guest 挂接映像文件。有关调整该映像的大小以及为 VM Guest 刷新大小信息的详细信息,请参见第 28.2 节 “稀疏映像文件和磁盘空间”

26.5 用于管理高级存储方案的脚本

可以借助脚本来管理高级存储方案,例如 dmmd设备映射程序 — 多磁盘)提供的磁盘环境,包括构建在软件 RAID 集基础之上的 LVM 环境,或者构建在 LVM 环境基础之上的软件 RAID 集。这些脚本包含在 xen-tools 软件包中。安装后,可以在 /etc/xen/scripts 中找到它们:

  • block-dmmd

  • block-drbd-probe

  • block-npiv

借助这些脚本,可以在将块设备提供给 Guest 之前使用外部命令执行这些设备的特定操作或一系列操作。

以前,只能使用磁盘配置语法 script= 将这些脚本与 xllibxl 结合使用。现在,可以通过在磁盘的 <source> 元素中指定块脚本的基本名称,将这些脚本与 libvirt 结合使用。例如:

<source dev='dmmd:md;/dev/md0;lvm;/dev/vgxen/lv-vm01'/>