8.13. VM 磁盘


8.13.1. 热插虚拟机磁盘

您可以在不停止虚拟机(VM)或虚拟机实例(VMI)的情况下添加或删除虚拟磁盘。

只有数据卷和持久性卷声明 (PVC) 才能热插和热拔。您无法热插或热拔容器磁盘。

热插磁盘在重新引导后仍附加给虚拟机。您必须分离磁盘才能从虚拟机中删除它。

您可以使热插磁盘持久保留,使其永久挂载在虚拟机上。

注意

每个虚拟机都有一个 virtio-scsi 控制器,以便热插磁盘可以使用 scsi 总线。virtio-scsi 控制器克服了 virtio 的限制,同时保持其性能优势。它高度可扩展,支持超过 400 万个磁盘的热插拔。

常规 virtio 不适用于热插磁盘,因为它不可扩展。每个 virtio 磁盘都使用虚拟机中的一个有限的 PCI Express (PCIe) 插槽。PCIe 插槽也被其他设备使用,必须提前保留。因此,插槽可能按需提供。

8.13.1.1. 使用 Web 控制台热插和热拔磁盘

您可以使用 Red Hat OpenShift Service on AWS web 控制台在虚拟机运行时将其附加到虚拟机(VM)来热插磁盘。

热插磁盘会附加到虚拟机,直到您拔出为止。

您可以使热插磁盘持久保留,使其永久挂载在虚拟机上。

先决条件

  • 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。

流程

  1. 在 web 控制台中进入到 Virtualization VirtualMachines
  2. 选择一个正在运行的虚拟机来查看其详情。
  3. VirtualMachine 详情页面中,点 Configuration Disks
  4. 添加热插磁盘:

    1. Add disk
    2. Add disk (hot plugged) 窗口中,从 Source 列表中选择磁盘,然后点 Save
  5. 可选: 热插磁盘:

    1. 点击磁盘 kebab 旁边的 Options 菜单并选择 Detach
    2. 单击 Detach
  6. 可选:使热插磁盘持久:

    1. 点击磁盘 kebab 旁边的 Options 菜单并选择 Make persistent
    2. 重启虚拟机以应用更改。

8.13.1.2. 使用命令行热插和热拔磁盘

您可以使用命令行在虚拟机 (VM) 运行时热插和热拔磁盘。

您可以使热插磁盘持久保留,使其永久挂载在虚拟机上。

先决条件

  • 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。

流程

  • 运行以下命令来热插磁盘:

    $ virtctl addvolume <virtual-machine|virtual-machine-instance> \
      --volume-name=<datavolume|PVC> \
      [--persist] [--serial=<label-name>]
    • 使用可选 --persist 标志,将热插磁盘作为永久挂载的虚拟磁盘添加到虚拟机规格中。停止、重新启动或重新启动虚拟机以永久挂载虚拟磁盘。指定 --persist 标志后,您无法再热插或热拔虚拟磁盘。Persist 标志适用于虚拟机,不适用于虚拟机实例。
    • 可选 --serial 标志允许您添加您选择的字母数字字符串标签。这有助于您识别客户机虚拟机中的热插磁盘。如果没有指定这个选项,则标签默认为热插数据卷或 PVC 的名称。
  • 运行以下命令来热拔磁盘:

    $ virtctl removevolume <virtual-machine|virtual-machine-instance> \
      --volume-name=<datavolume|PVC>

8.13.2. 扩展虚拟机磁盘

您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。

如果您的存储供应商不支持卷扩展,您可以通过添加空白数据卷来扩展虚拟机的可用虚拟存储。

您不能缩小虚拟机磁盘的大小。

8.13.2.1. 通过扩展磁盘的 PVC 来增加虚拟机磁盘大小

您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。要指定增加的 PVC 卷,您可以使用 web 控制台运行虚拟机。另外,您可以在 CLI 中编辑 PVC 清单。

注意

如果 PVC 使用文件系统卷模式,磁盘镜像文件会扩展到可用大小,同时为文件系统开销保留一些空间。

8.13.2.1.1. 在 web 控制台中扩展虚拟机磁盘 PVC

您可以在 web 控制台中增加虚拟机磁盘 PVC 的大小,而无需保留 VirtualMachines 页面和虚拟机运行。

流程

  1. AdministratorVirtualization 视角中,打开 VirtualMachines 页面。
  2. 选择正在运行的虚拟机以打开其 详情页面
  3. 选择 Configuration 选项卡,再单击 Storage
  4. 点击您要扩展的磁盘旁的选项菜单 kebab 。选择 Edit 选项。

    这会打开 Edit disk 对话框。

  5. PersistentVolumeClaim size 字段中,输入所需的大小。
  6. Save
注意

您可以输入大于当前值的任何值。但是,如果新值超过可用大小,则会显示错误。

8.13.2.1.2. 通过编辑清单来扩展虚拟机磁盘 PVC

流程

  1. 编辑您要扩展的虚拟机磁盘的 PersistentVolumeClaim 清单:

    $ oc edit pvc <pvc_name>
  2. 更新磁盘大小:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
       name: vm-disk-expand
    spec:
      accessModes:
         - ReadWriteMany
      resources:
        requests:
           storage: 3Gi 1
    # ...
    1
    指定新磁盘大小。

8.13.2.2. 通过添加空白数据卷来扩展可用虚拟存储

您可以通过添加空白数据卷来扩展虚拟机的可用存储。

先决条件

  • 您必须至少有一个持久性卷。

流程

  1. 如以下示例所示创建 DataVolume 清单:

    DataVolume 清单示例

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: DataVolume
    metadata:
      name: blank-image-datavolume
    spec:
      source:
        blank: {}
      storage:
        resources:
          requests:
            storage: <2Gi> 1
      storageClassName: "<storage_class>" 2

    1
    指定为数据卷请求的可用空间量。
    2
    可选:如果您没有指定存储类,则会使用默认存储类。
  2. 运行以下命令来创建数据卷:

    $ oc create -f <blank-image-datavolume>.yaml

8.13.3. 将虚拟机磁盘迁移到不同的存储类

您可以在不停止虚拟机或虚拟机实例(VMI)的情况下将一个或多个虚拟磁盘迁移到不同的存储类。

8.13.3.1. 使用 Web 控制台将虚拟机磁盘迁移到不同的存储类

您可以使用 Red Hat OpenShift Service on AWS web 控制台将附加到虚拟机(VM)的一个或多个磁盘迁移到不同的存储类。当在正在运行的虚拟机上执行此操作时,虚拟机的操作不会中断,迁移磁盘上的数据仍可以访问。

注意

使用 OpenShift Virtualization Operator,您只能一次启动一个虚拟机的存储类迁移,虚拟机必须正在运行。如果您需要一次迁移更多虚拟机,或迁移运行和停止的虚拟机的组合,请考虑使用 MTC

Migration Toolkit for Containers 不是 OpenShift Virtualization 的一部分,需要单独的安装。

重要

存储类迁移只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

先决条件

  • 您必须具有数据卷或持久性卷声明(PVC)可用于存储类迁移。
  • 集群必须具有可用于实时迁移的节点。作为存储类迁移的一部分,虚拟机将实时迁移到不同的节点。
  • 虚拟机必须正在运行。

流程

  1. 在 web 控制台中进入到 Virtualization VirtualMachines
  2. 点击虚拟机 kebab 旁边的 Options 菜单并选择 Migration Storage

    您还可以通过选择 Actions Migration Storage,从 VirtualMachine 详情页面 访问这个选项。

  3. Migration details 页面中,选择是否只迁移整个虚拟机存储或所选卷。如果单击 Selected volumes,请选择您要迁移的任何磁盘。点 Next 继续。
  4. Destination StorageClass 页面中的可用选项列表中,选择要迁移到的存储类。点 Next 继续。
  5. Review 页面中,查看受影响的磁盘和目标存储类的列表。要启动迁移,请点击 Migrate VirtualMachine storage
  6. 保持在 Migrate VirtualMachine 存储 页面中,以观察进度并等待迁移成功完成确认。

验证

  1. VirtualMachine 详情页面中 导航到 Configuration Storage
  2. 验证所有磁盘在 Storage class 列中列出了预期的存储类。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.