Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.2.2. 创建存储池

这部分介绍了使用 virshVirtual Machine Manager 创建存储池的一般说明。使用 virsh 可让您指定所有参数,而使用虚拟机管理器 提供了创建更简单的存储池的图形方法。

13.2.2.1. 使用 virsh 创建存储池

注意
本节演示了创建基于分区的存储池作为示例。

过程 13.2. 使用 virsh 创建存储池

  1. 阅读建议并确保满足所有先决条件

    对于某些存储池,本指南建议您使用某些实践。另外,某些类型的存储池有一些先决条件。要查看建议和先决条件,如果有,请参阅 第 13.2.3 节 “存储池特定”
  2. 定义存储池

    存储池可以是持久性或临时的。主机系统重启后,持久性存储池会保留下来。临时存储池仅在主机重启前存在。
    执行以下操作之一:
    • 使用 XML 文件定义存储池。
      a.创建包含新设备所需的存储池信息的临时 XML 文件。
      XML 文件必须包含根据存储池类型的特定字段。如需更多信息,请参阅 第 13.2.3 节 “存储池特定”
      下面显示了一个存储池定义 XML 文件示例。在本例中,该文件被保存到 ~/guest_images.xml
      <pool type='fs'>
        <name>guest_images_fs</name>
        <source>
          <device path='/dev/sdc1'/>
        </source>
        <target>
          <path>/guest_images</path>
        </target>
      </pool>
      b.使用 virsh pool-define 命令创建持久性存储池或 virsh pool-create 命令,以创建并启动临时存储池。
      # virsh pool-define ~/guest_images.xml
      Pool defined from guest_images_fs
      
      # virsh pool-create ~/guest_images.xml
      Pool created from guest_images_fs
      c.删除步骤中创建的 XML 文件。
    • 使用 virsh pool-define-as 命令创建持久性存储池或 virsh pool-create-as 命令,以创建临时存储池。
      以下示例从 /guest_images 目录中创建一个永久、基于文件系统的存储池,映射到 /dev/sdc1
      # virsh pool-define-as guest_images_fs fs - - /dev/sdc1 - "/guest_images"
      Pool guest_images_fs defined
      # virsh pool-create-as guest_images_fs fs - - /dev/sdc1 - "/guest_images"
      Pool guest_images_fs created
      注意
      当使用 virsh 接口时,命令中的选项名称是可选的。如果没有使用选项名称,请将横线用于不需要指定的字段。
  3. 验证是否已创建池

    使用 virsh pool-list --all 列出所有现有存储池。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      inactive   no
    
  4. 定义存储池目标路径

    使用 virsh pool-build 命令为预格式化的文件系统存储池创建存储池目标路径,初始化存储源设备,并定义数据的格式。然后使用 virsh pool-list 命令,确保列出存储池。
    # virsh pool-build guest_images_fs
    Pool guest_images_fs built
    # ls -la /guest_images
    total 8
    drwx------.  2 root root 4096 May 31 19:38 .
    dr-xr-xr-x. 25 root root 4096 May 31 19:38 ..
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      inactive   no
    
    注意
    构建目标路径只适用于基于磁盘、基于文件系统以及逻辑存储池。如果 libvirt 检测到源存储设备的数据格式与所选存储池类型的不同,构建将失败,除非指定了 覆盖 选项。
  5. 启动存储池

    使用 virsh pool-start 命令准备源设备以供使用。
    执行的操作取决于存储池类型。例如,对于基于文件系统的存储池,virsh pool-start 命令会挂载文件系统。对于基于 LVM 的存储池,virsh pool-start 命令可激活卷组 usng the vgchange 命令。
    然后,使用 virsh pool-list 命令来确保 存储池处于活动状态。
    # virsh pool-start guest_images_fs
    Pool guest_images_fs started
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      active     no
    
    注意
    virsh pool-start 命令只适用于持久性存储池。临时存储池创建时会自动启动。
  6. 启用自动启动(可选)

    默认情况下,使用 virsh 定义的存储池不会被设置为在每次 libvirtd 启动时自动启动。您可以使用 virsh pool-autostart 命令将存储池配置为自动启动。
    # virsh pool-autostart guest_images_fs
    Pool guest_images_fs marked as autostarted
    
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      active     yes
    
    现在,每次 libvirtd 启动时都会自动启动存储池。
  7. 验证存储池

    验证存储池是否已正确创建,报告的大小与预期相同,状态报告为 running。验证文件系统的目标路径中存在"lost+found"目录,表示挂载了该设备。
    # virsh pool-info guest_images_fs
    Name:           guest_images_fs
    UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
    State:          running
    Persistent:     yes
    Autostart:      yes
    Capacity:       458.39 GB
    Allocation:     197.91 MB
    Available:      458.20 GB
    # mount | grep /guest_images
    /dev/sdc1 on /guest_images type ext4 (rw)
    # ls -la /guest_images
    total 24
    drwxr-xr-x.  3 root root  4096 May 31 19:47 .
    dr-xr-xr-x. 25 root root  4096 May 31 19:38 ..
    drwx------.  2 root root 16384 May 31 14:18 lost+found