跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文档 / 虚拟化指南 / 使用 libvirt 管理虚拟机 / 管理储存
适用范围 SUSE Linux Enterprise Server 15 SP2

12 管理储存

在 VM 主机服务器本身上管理 VM Guest 时,您可以访问 VM 主机服务器的整个文件系统,以挂接或创建虚拟硬盘,或将现有映像挂接到 VM Guest。但通过远程主机管理 VM Guest 时无法做到这些。出于此原因,libvirt 支持可从远程计算机访问的所谓储存池

提示
提示:CD/DVD ISO 映像

如果希望能够远程访问 VM 主机服务器上的 CD/DVD ISO 映像,需要将这些映像也放在储存池中。

libvirt 可识别两种不同类型的储存资源:卷和池。

储存卷

储存卷是可指派到 Guest 的储存设备 — 虚拟磁盘或 CD/DVD/软盘映像。从物理上而言(在 VM 主机服务器上),它可以是块设备(分区、逻辑卷等)或文件。

储存池

储存池是 VM 主机服务器上可用于储存卷的储存资源,类似于台式计算机的网络储存。从物理上而言,它可分为以下类型之一:

文件系统目录 (dir)

用于存放映像文件的目录。文件可以是支持的磁盘格式之一(raw 或 qcow2),也可以是 ISO 映像。

物理磁盘设备 (disk)

使用整个物理磁盘作为储存空间。系统会为添加到池的每个卷创建一个分区。

预格式化的块设备 (fs)

指定要使用的分区,该分区与文件系统目录池(用于存放映像文件的目录)的使用方式相同。唯一的区别在于,使用文件系统目录时,libvirt 会负责装入设备。

iSCSI 目标 (iscsi)

在 iSCSI 目标上设置池。您需要先登录卷一次,才能将卷用于 libvirt。使用 YaST iSCSI 发起端来检测和登录卷,有关细节,请参见储存管理指南。不支持在 iSCSI 池中创建卷;每个现有逻辑单元号 (LUN) 都代表一个卷。每个卷/LUN 还需要一个有效的(空)分区表或磁盘标签,这样您才能使用该卷。如果没有分区表或磁盘标签,请使用 fdisk 添加:

~ # fdisk -cu /dev/disk/by-path/ip-192.168.2.100:3260-iscsi-iqn.2010-10.com.example:[...]-lun-2
Device contains neither a valid DOS partition table, nor Sun, SGI
or OSF disklabel
Building a new DOS disklabel with disk identifier 0xc15cdc4e.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
LVM 卷组 (logical)

使用 LVM 卷组作为池。您可以使用预定义的卷组,或者通过指定要使用的设备来创建组。储存卷会创建为卷上的分区。

警告
警告:删除基于 LVM 的池

在储存管理器中删除基于 LVM 的池时,也会删除卷组。这会导致池中储存的所有数据丢失且不可恢复!

多路径设备 (mpath)

目前,多路径支持仅限于向 Guest 指派现有设备。不支持从 libvirt 内部创建卷或配置多路径。

网络导出的目录 (netfs)

指定要使用的网络目录,该网络目录与文件系统目录池(用于存放映像文件的目录)的使用方式相同。唯一的区别在于,使用文件系统目录时,libvirt 会负责装入目录。支持的协议为 NFS 和 GlusterFS。

SCSI 主机适配器 (scsi)

SCSI 主机适配器的使用方式与 iSCSI 目标基本相同。我们建议使用基于 /dev/disk/by-* 的设备名称而不是 /dev/sdX。后者可能会发生变化(例如,添加或拆除硬盘时)。不支持在 iSCSI 池中创建卷。每个现有 LUN(逻辑单元号)都代表一个卷。

警告
警告:安全考虑

为了避免数据丢失或损坏,请不要尝试使用也用于在 VM 主机服务器上构建储存池的资源,例如 LVM 卷组、iSCSI 目标等。无需从 VM 主机服务器连接到这些资源,也无需在 VM 主机服务器上装入这些资源 — libvirt 将负责这些事项。

不要在 VM 主机服务器上按标签装入分区。在某些情况下,分区可能是从 VM Guest 内部使用 VM 主机服务器上已有的名称标记的。

12.1 使用虚拟机管理器管理储存

虚拟机管理器提供了一个图形界面,即储存管理器,用于管理储存卷和池。要访问储存管理器,请右键单击某个连接并选择细节,或者高亮显示某个连接并选择编辑 › 连接细节。选择储存选项卡。

Image

12.1.1 添加储存池

要添加储存池,请执行以下操作:

  1. 单击左下角的添加添加新储存池对话框即会显示。

  2. 提供池的名称(可包含字母数字字符和 _-.),然后选择类型。按继续可进行下一步。

    Image
  3. 在随后出现的窗口中指定所需细节。需要输入的数据取决于您要创建的池类型:

    类型:dir
    • 目标路径:指定现有目录。

    类型:disk
    • 目标路径:用于存放设备的目录。一般情况下可以保留默认值 /dev

    • 格式:设备分区表的格式。一般情况下,使用 auto 应该不会有问题。如果有问题,请通过在 VM 主机服务器上运行命令 parted -l 获取所需的格式。

    • 源路径:设备的路径。建议使用基于 /dev/disk/by-* 的设备名称而不是简单的 /dev/sdX,因为后者可能会发生变化(例如,添加或拆除硬盘时)。您需要指定类似整个磁盘而不是磁盘上的分区(如果存在)的路径。

    • 构建池:激活此选项会格式化设备。设备上的所有数据都将丢失,请慎用!

    类型:fs
    • 目标路径:VM 主机服务器文件系统上的安装点。

    • 格式:设备的文件系统格式。使用默认值 auto 应该不会有问题。

    • 源路径:设备文件的路径。建议使用基于 /dev/disk/by-* 的设备名称而不是 /dev/sdX,因为后者可能会发生变化(例如,添加或拆除硬盘时)。

    类型:iscsi

    通过在 VM 主机服务器上运行以下命令来获取所需的数据:

    tux > sudo iscsiadm --mode node

    此命令将返回采用以下格式的 iSCSI 卷列表。以粗体文本显示的元素是必需的:

    IP_ADDRESS:PORT,TPGT TARGET_NAME_(IQN)
    • 目标路径:包含设备文件的目录。使用 /dev/disk/by-path(默认值)或 /dev/disk/by-id

    • 主机名:iSCSI 服务器的主机名或 IP 地址。

    • 源路径:iSCSI 目标名称 (IQN)。

    类型:logical
    • 目标路径:如果您使用现有卷组,请指定现有设备路径。构建新 LVM 卷组时,请指定 /dev 目录中目前不存在的设备名称。

    • 源路径:使用现有卷组时,请留空。创建新卷组时,请在此处指定其设备。

    • 构建池:仅当创建新卷组时才激活。

    类型:mpath
    • 目标路径:目前对多路径的支持仅限于通过它来使所有多路径设备可用。因此,请在此处指定任意字符串,此字符串随后将被忽略。必须指定路径,否则 XML 解析器将会失败。

    类型:netfs
    • 目标路径:VM 主机服务器文件系统上的安装点。

    • 主机名:要导出网络文件系统的服务器的 IP 地址或主机名。

    • 源路径:正在导出的服务器上的目录。

    类型:scsi
    • 目标路径:包含设备文件的目录。使用 /dev/disk/by-path(默认值)或 /dev/disk/by-id

    • 源路径:SCSI 适配器的名称。

    注意
    注意:文件浏览

    从远程位置操作时,无法通过单击浏览使用文件浏览器。

  4. 单击完成以添加储存池。

12.1.2 管理储存池

您可以通过虚拟机管理器的储存管理器在池中创建或删除卷。您还可以暂时停用或永久删除现有的储存池。SUSE 目前不支持更改池的基本配置。

12.1.2.1 启动、停止和删除池

储存池的用途是提供 VM 主机服务器上的块设备,远程管理 VM Guest 时,可将这些设备添加到其中。要暂时禁止远程访问某个池,请单击储存管理器左下角的停止。停止的池标记为状态:非活动,并在列表窗格中灰显。默认情况下,新建的池在 VM 主机服务器引导时会自动启动。

要启动某个非活动的池并再次使其可从远程位置使用,请单击储存管理器左下角的启动

注意
注意:池的状态不会影响挂接的卷

无论池处于什么状态(活动(已停止)或非活动(已启动)),池中挂接到 VM Guest 的卷都始终可用。池的状态只会影响到能否通过远程管理将卷挂接到 VM Guest。

要永久禁止访问某个池,请单击储存管理器左下角的删除。您只能删除非活动的池。删除某个池不会实际擦除其在 VM 主机服务器上的内容,而只会删除池配置。不过,在删除池时需要额外小心,尤其是删除基于 LVM 卷组的工具时:

警告
警告:删除储存池

删除基于本地文件系统目录、本地分区或磁盘的储存池不会影响到这些池中当前挂接到 VM Guest 的卷的可用性。

如果删除 iSCSI、SCSI、LVM 组或网络导出的目录这些类型的池,将无法再从 VM Guest 访问这些池中的卷。尽管卷本身不会被删除,但 VM 主机服务器将不再可以访问这些资源。

创建足够大的新池或者直接从主机系统装入/访问这些资源时,iSCSI/SCSI 目标或网络导出的目录中的卷将再次可供访问。

删除基于 LVM 组的储存池时,将擦除 LVM 组定义,并且该 LVM 组将不再存在于主机系统上。其配置将不可恢复,并且此池中的所有卷都会丢失。

12.1.2.2 将卷添加到储存池

借助虚拟机管理器,您可以在所有储存池(多路径、iSCSI 或 SCSI 类型的池除外)中创建卷。这些池中的卷相当于 LUN,无法从 libvirt 内部更改。

  1. 可以使用储存管理器创建新卷,或者在将新储存设备添加到 VM Guest 时创建新卷。在以上任一情况下,请从左侧面板中选择一个储存池,然后单击创建新卷

  2. 指定映像的名称并选择映像格式。

    SUSE 目前仅支持 rawqcow2 映像。后一个选项在基于 LVM 组的池中不可用。

    最大容量的旁边,指定允许磁盘映像达到的最大大小。除非您使用 qcow2 映像,否则还可以设置最初应该分配的分配量。如果这两个值不同,将会创建一个按需增长的稀疏映像文件。

    对于 qcow2 映像,可以使用一个构成基本映像的后备储存(也称为后备文件)。这样新建的 qcow2 映像便只会记录对基本映像进行的更改。

  3. 单击完成开始创建卷。

12.1.2.3 从储存池中删除卷

只能在储存管理器中删除卷:选择相应卷并单击删除卷。单击确认。

警告
警告:即使卷处于使用中状态,也能将其删除

即使活动或非活动的 VM Guest 中当前正在使用卷,也能将卷删除。无法恢复已删除的卷。

储存管理器中的使用对象列会指示某个卷是否已由 VM Guest 使用。

12.2 使用 virsh 管理储存

您也可以使用 virsh 通过命令行管理储存。不过,SUSE 目前不支持创建储存池。因此,本节仅限于介绍启动、停止和删除池以及卷管理等功能。

运行 virsh help poolvirsh help volume 可分别获取用于管理池和卷的所有 virsh 子命令列表。

12.2.1 列出池和卷

执行以下命令可以列出当前处于活动状态的所有池。要同时列出非活动池,请添加选项 --all

tux > virsh pool-list --details

可以使用 pool-info 子命令获取有关特定池的细节:

tux > virsh pool-info POOL

默认情况下,只能按池列出卷。要列出某个池中的所有卷,请输入以下命令。

tux > virsh vol-list --details POOL

目前,virsh 不提供任何可显示某个卷是否已由 Guest 使用的工具。下面的过程说明如何列出所有池中当前已被 VM Guest 使用的卷。

过程 12.1︰ 列出当前已在 VM 主机服务器上使用的所有储存卷
  1. 将以下内容保存到某个文件(例如 ~/libvirt/guest_storage_list.xsl)来创建一个 XSLT 样式表:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="text"/>
      <xsl:template match="text()"/>
      <xsl:strip-space elements="*"/>
      <xsl:template match="disk">
        <xsl:text>  </xsl:text>
        <xsl:value-of select="(source/@file|source/@dev|source/@dir)[1]"/>
        <xsl:text>&#10;</xsl:text>
      </xsl:template>
    </xsl:stylesheet>
  2. 在外壳中运行以下命令:假设 Guest 的 XML 定义全部储存在默认位置 (/etc/libvirt/qemu)。xsltproc 由软件包 libxslt 提供。

    SSHEET="$HOME/libvirt/guest_storage_list.xsl"
    cd /etc/libvirt/qemu
    for FILE in *.xml; do
      basename $FILE .xml
      xsltproc $SSHEET $FILE
    done

12.2.2 启动、停止和删除池

使用 virsh pool 子命令来启动、停止或删除池。在以下示例中,请将 POOL 替换为池的名称或其 UUID:

停止池
tux > virsh pool-destroy POOL
注意
注意:池的状态不会影响挂接的卷

无论池处于什么状态(活动(已停止)或非活动(已启动)),池中挂接到 VM Guest 的卷都始终可用。池的状态只会影响到能否通过远程管理将卷挂接到 VM Guest。

删除池
tux > virsh pool-delete POOL
警告
警告:删除储存池

参见 警告:删除储存池

启动池
tux > virsh pool-start POOL
启用池自动启动功能
tux > virsh pool-autostart POOL

只有标记为 autostart 的池才会自动在 VM 主机服务器重引导时启动。

禁用池自动启动功能
tux > virsh pool-autostart POOL --disable

12.2.3 将卷添加到储存池

virsh 提供了两种将卷添加到储存池的方法:在 XML 定义中使用 vol-createvol-create-from 添加,或者使用 vol-create-as 通过命令行参数添加。SUSE 目前不支持前一种方法,因此本节重点介绍 vol-create-as 子命令。

要将卷添加到现有池,请输入以下命令:

tux > virsh vol-create-as POOL1NAME2 12G --format3raw|qcow24 --allocation 4G5

1

卷要添加到的池的名称

2

卷的名称

3

卷的大小,在本示例中为 12 GB。使用后缀 k、M、G、T 来分别表示千字节、兆字节、千兆字节和万亿字节。

4

卷的格式。SUSE 目前支持 rawqcow2

5

可选的参数。默认情况下,virsh 将创建一个按需增长的稀疏映像文件。使用此参数指定应分配的空间量(本示例中为 4 GB)。使用后缀 k、M、G、T 来分别表示千字节、兆字节、千兆字节和万亿字节。

如果不指定此参数,将生成不包含分配量的稀疏映像文件。要创建非稀疏卷,请使用此参数指定整个映像大小(在本示例中为 12G)。

12.2.3.1 克隆现有卷

将卷添加到池的另一种方法是克隆现有卷。请始终在原始实例所在的同一个池中创建新实例。

tux > virsh vol-clone NAME_EXISTING_VOLUME1NAME_NEW_VOLUME2 --pool POOL3

1

要克隆的现有卷的名称

2

新卷的名称

3

可选的参数。libvirt 会尝试自动查找现有卷。如果找不到,请指定此参数。

12.2.4 从储存池中删除卷

要从池中永久删除某个卷,请使用 vol-delete 子命令:

tux > virsh vol-delete NAME --pool POOL

--pool 为可选项。libvirt 会尝试自动查找卷。如果找不到,请指定此参数。

警告
警告:删除卷时不会进行检查

无论卷当前是否已在活动或非活动的 VM Guest 中使用,都将一律被删除。无法恢复已删除的卷。

只能使用过程 12.1 “列出当前已在 VM 主机服务器上使用的所有储存卷”中所述的方法来检测某个卷是否已由 VM Guest 使用。

12.2.5 将卷挂接到 VM Guest

按照第 12.2.3 节 “将卷添加到储存池”中所述创建卷后,可将其挂接到虚拟机并作为硬盘使用:

tux > virsh attach-disk DOMAIN SOURCE_IMAGE_FILE TARGET_DISK_DEVICE

例如:

tux > virsh attach-disk sles12sp3 /virt/images/example_disk.qcow2 sda2

要检查是否已挂接新磁盘,请检查 virsh dumpxml 命令的结果:

root # virsh dumpxml sles12sp3
[...]
<disk type='file' device='disk'>
 <driver name='qemu' type='raw'/>
 <source file='/virt/images/example_disk.qcow2'/>
 <backingStore/>
 <target dev='sda2' bus='scsi'/>
 <alias name='scsi0-0-0'/>
 <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
[...]

12.2.5.1 热插入或持久更改

可将磁盘挂接到活动和非活动的域。挂接操作由 --live--config 选项控制:

--live

将磁盘热插入到活动域。挂接操作不会保存在域配置中。对非活动域使用 --live 会出错。

--config

持久更改域配置。下一次启动域后,挂接的磁盘将可用。

--live--config

热插入磁盘并将其添加到持久域配置中。

提示
提示:virsh attach-device

virsh attach-devicevirsh attach-disk 的更通用的形式。可以使用此命令将其他类型的设备挂接到域。

12.2.6 从 VM Guest 分离卷

要从域分离磁盘,请使用 virsh detach-disk

root # virsh detach-disk DOMAIN TARGET_DISK_DEVICE

例如:

root # virsh detach-disk sles12sp3 sda2

可以按照第 12.2.5 节 “将卷挂接到 VM Guest”中所述,使用 --live--config 选项来控制挂接操作。

12.3 使用 virtlockd 锁定磁盘文件和块设备

锁定块设备和磁盘文件可以防止从不同的 VM Guest 并发向这些资源写入数据。它可以防范启动同一个 VM Guest 两次,或者将同一个磁盘添加到两个不同的虚拟机。这样就会减少由于配置错误导致虚拟机磁盘映像损坏的风险。

锁定操作由名为 virtlockd 的守护程序控制。由于此守护程序独立于 libvirtd 守护程序运行,在 libvirtd 崩溃或重启动后,锁将会保留。甚至在 virtlockd 本身更新之后,锁也仍会保留,因为此守护程序能够自行重新执行。这可以确保当 virtlockd 更新后,无需重启动 VM Guest。KVM、QEMU 和 Xen 支持 virtlockd

12.3.1 启用锁定

SUSE Linux Enterprise Server 上默认未启用锁定虚拟磁盘的功能。要启用锁定并在系统重引导时自动启动锁定,请执行以下步骤:

  1. 编辑 /etc/libvirt/qemu.conf 并设置

    lock_manager = "lockd"
  2. 使用以下命令启动 virtlockd 守护程序:

    tux > sudo systemctl start virtlockd
  3. 使用以下命令重启动 libvirtd 守护程序:

    tux > sudo systemctl restart libvirtd
  4. 确保引导系统时自动启动 virtlockd

    tux > sudo systemctl enable virtlockd

12.3.2 配置锁定

virtlockd 默认配置为自动锁定为 VM Guest 配置的所有磁盘。默认设置使用“直接”锁空间,在这种情况下,系统会根据与 VM Guest <disk> 设备关联的实际文件路径获取锁。例如,如果 VM Guest 包含下面的 <disk> 设备,将直接针对 /var/lib/libvirt/images/my-server/disk0.raw 调用 flock(2)

<disk type='file' device='disk'>
 <driver name='qemu' type='raw'/>
 <source file='/var/lib/libvirt/images/my-server/disk0.raw'/>
 <target dev='vda' bus='virtio'/>
</disk>

可以通过编辑 /etc/libvirt/qemu-lockd.conf 文件来更改 virtlockd 配置。此文件还包含详细注释及其他信息。确保通过重新装载 virtlockd 来激活配置更改:

tux > sudo systemctl reload virtlockd

12.3.2.1 启用间接锁空间

virtlockd 的默认配置使用直接锁空间。这意味着,系统会根据与 <disk> 设备关联的实际文件路径来获取锁。

如果磁盘文件路径不可供所有主机访问,可将 virtlockd 配置为允许间接锁空间。这意味着,系统会使用磁盘文件路径的哈希在间接锁空间目录中创建一个文件。然后,将在这些哈希文件而不是实际的磁盘文件路径中存放锁。如果包含磁盘文件的文件系统不支持 fcntl() 锁,也可以使用间接锁空间。使用 file_lockspace_dir 设置指定间接锁空间:

file_lockspace_dir = "/MY_LOCKSPACE_DIRECTORY"

12.3.2.2 在 LVM 或 iSCSI 卷上启用锁定

如果您要锁定由多个主机共享的 LVM 或 iSCSI 卷上的虚拟磁盘,则需要按 UUID 而不是路径(默认使用路径)执行锁定。此外,需将锁空间目录放在可供共享该卷的所有主机访问的共享文件系统上。为 LVM 和/或 iSCSI 设置以下选项:

lvm_lockspace_dir = "/MY_LOCKSPACE_DIRECTORY"
iscsi_lockspace_dir = "/MY_LOCKSPACE_DIRECTORY"

12.4 联机调整 Guest 块设备的大小

有时,您需要更改(扩展或收缩)Guest 系统使用的块设备的大小。例如,当最初分配的磁盘空间不再足够时,便需要增大空间大小。如果 Guest 磁盘驻留在逻辑卷中,您可以在 Guest 系统正在运行时调整该磁盘的大小。与脱机调整磁盘大小相比(请参见 第 19.3 节 “Guestfs 工具” 软件包中的 virt-resize 命令),这是一项巨大的优势,因为 Guest 提供的服务在调整大小期间不会受到干扰。要调整 VM Guest 磁盘的大小,请执行以下步骤:

过程 12.2︰ 联机调整 Guest 磁盘的大小
  1. 在 Guest 系统内部,检查磁盘(例如 /dev/vda)的当前大小。

    root # fdisk -l /dev/vda
    Disk /dev/sda: 160.0 GB, 160041885696 bytes, 312581808 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
  2. 在主机上,将容纳 Guest 磁盘 /dev/vda 的逻辑卷调整到所需大小,例如 200 GB。

    root # lvresize -L 200G /dev/mapper/vg00-home
    Extending logical volume home to 200 GiB
    Logical volume home successfully resized
  3. 在主机上,调整与 Guest 磁盘 /dev/mapper/vg00-home 相关的块设备的大小。请注意,您可以使用 virsh list 来查找 DOMAIN_ID

    root # virsh blockresize  --path /dev/vg00/home --size 200G DOMAIN_ID
    Block device '/dev/vg00/home' is resized
  4. 检查 Guest 是否接受新磁盘大小。

    root # fdisk -l /dev/vda
    Disk /dev/sda: 200.0 GB, 200052357120 bytes, 390727260 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes

12.5 在主机与 Guest 之间共享目录(文件系统直通)

libvirt 允许使用 QEMU 的文件系统直通(也称为 VirtFS)功能在主机与 Guest 之间共享目录。此类目录还可由多个 VM Guest 同时访问,因此可用于在 VM Guest 之间交换文件。

注意
注意:Windows Guest 和文件系统直通

请注意,无法通过文件系统直通在 VM 主机服务器与 Windows Guest 之间共享目录,因为 Windows 缺少装入共享目录所需的驱动程序。

要使共享目录可在 VM Guest 上使用,请执行以下操作:

  1. 在虚拟机管理器中打开 Guest 的控制台,然后从菜单中选择视图 › 细节,或者在工具栏中单击显示虚拟硬件细节。选择添加硬件 › 文件系统打开文件系统直通对话框。

  2. 可以在驱动程序中选择句柄路径基本驱动程序。默认设置为路径。可以在模式中选择安全模型,这会影响在主机上设置文件权限的方式。有三个选项可用:

    直通(默认设置)

    使用客户端用户的身份凭证直接在文件系统上创建文件。这与 NFSv3 使用的设置非常相似。

    Squash

    直通相同,但会忽略 chown 等特权操作的失败事件。当以 root 特权之外的身份运行 KVM 时,需要选择此选项。

    已映射

    使用文件服务器的身份凭证 (qemu.qemu) 创建文件。用户身份凭证和客户端用户的身份凭证保存在扩展属性中。当主机和 Guest 域应彻底隔离时,建议使用此模型。

  3. 使用源路径指定 VM 主机服务器上的目录的路径。在目标路径中输入一个字符串,作为装入共享目录时使用的标记。请注意,此字段中的字符串仅作为标记,不是 VM Guest 上的路径。

  4. 应用设置。如果 VM Guest 当前正在运行,需要将其关闭才能应用新设置(重引导 Guest 是不够的)。

  5. 引导 VM Guest。要装入共享目录,请输入以下命令:

    tux > sudo mount -t 9p -o trans=virtio,version=9p2000.L,rw TAG /MOUNT_POINT

    要使共享目录永久可用,请将下面一行添加到 /etc/fstab 文件中:

    TAG   /MOUNT_POINT    9p  trans=virtio,version=9p2000.L,rw    0   0

12.6 通过 libvirt 使用 RADOS 块设备

RADOS 块设备 (RBD) 将数据储存在 Ceph 群集中。这些设备支持快照、复制和数据一致性。您可以像使用其他块设备一样,从 libvirt 管理的 VM Guest 使用 RBD。

有关更多细节,请参见 SUSE Enterprise Storage《Administration Guide》(管理指南)中的“Using libvirt with Ceph”(将 libvirt 与 Ceph 配合使用)一章。https://documentation.suse.com/ses/ 中提供了 SUSE Enterprise Storage 文档。