搜索

6.14. VM 磁盘

download PDF

6.14.1. 热插虚拟机磁盘

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

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

即使重启后,热插拔磁盘仍会保留给虚拟机。您必须分离磁盘才能从虚拟机中删除它。

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

注意

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

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

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

您可以使用 OpenShift Dedicated 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 旁边的选项菜单,然后选择 Detach
    2. 单击 Detach
  6. 可选:使热插磁盘持久:

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

6.14.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>

6.14.2. 扩展虚拟机磁盘

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

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

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

6.14.2.1. 扩展虚拟机磁盘 PVC

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

如果 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
    指定新磁盘大小。

6.14.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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.