8.14. VM 磁盘
8.14.1. 热插虚拟机磁盘 复制链接链接已复制到粘贴板!
您可以在不停止虚拟机(VM)或虚拟机实例(VMI)的情况下添加或删除虚拟磁盘。
只有数据卷和持久性卷声明 (PVC) 才能热插和热拔。您无法热插或热拔容器磁盘。
热插磁盘在重新引导后仍会附加到虚拟机。您必须拔出磁盘以将其从虚拟机中删除。
每个虚拟机都有一个 virtio-scsi 控制器,以便热插磁盘可以使用 SCSI 总线。virtio-scsi 控制器克服了 VirtIO 的限制,同时保持其性能优势。它高度可扩展,支持超过 400 万个磁盘的热插拔。
当您热插磁盘到 VirtIO (virtio-blk)总线时,每个磁盘会在虚拟机中使用 PCI Express (PCIe)插槽。根据 Available VirtIO Ports 表中指定的创建虚拟机,PCIe 插槽数量有限并自动设置。因此,您可以将 virtio-blk 用于不超过可用插槽数的少量磁盘。
8.14.1.1. 使用 Web 控制台热插和热拔磁盘 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS 经典架构 web 控制台将其附加到虚拟机(VM)来热插磁盘。
热插磁盘会附加到虚拟机,直到您拔出为止。
先决条件
- 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 - 选择一个正在运行的虚拟机来查看其详情。
-
在 VirtualMachine 详情页中,点 Configuration
Storage。 添加热插磁盘:
- 点击 Add。
- 在 Add disk (hot plugged) 窗口中,从 Source 列表中选择磁盘,然后点 Save。
- 可选:选择接口总线的类型。选项为 VirtIO 和 SCSI。默认的总线类型是 VirtIO。
可选:更改现有热插磁盘的接口总线类型:
-
点击磁盘
旁边的 Options 菜单并选择 Edit 选项。
- 在 Interface 字段中,选择所需的选项。
-
点击磁盘
可选: 热插磁盘:
-
点磁盘旁边的选项菜单
,然后选择 Detach。
- 单击 Detach。
-
点磁盘旁边的选项菜单
8.14.1.2. 使用 CLI 热插和热拔磁盘 复制链接链接已复制到粘贴板!
您可以使用命令行在虚拟机 (VM) 运行时热插和热拔磁盘。
热插磁盘会附加到虚拟机,直到您拔出为止。
先决条件
- 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。
流程
运行以下命令来热插磁盘:
$ virtctl addvolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC> \ [--bus <bus_type>] [--serial=<label_name>]-
optional
--bus标志允许您指定添加磁盘的总线类型。选项为virtio和scsi。默认总线类型是virtio。 -
可选
--serial标志允许您添加您选择的字母数字字符串标签。这有助于您识别客户机虚拟机中的热插磁盘。如果没有指定这个选项,则标签默认为热插数据卷或 PVC 的名称。
-
optional
运行以下命令来热拔磁盘:
$ virtctl removevolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC>
8.14.2. 扩展虚拟机磁盘 复制链接链接已复制到粘贴板!
您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。
如果您的存储供应商不支持卷扩展,您可以通过添加空白数据卷来扩展虚拟机的可用虚拟存储。
您不能缩小虚拟机磁盘的大小。
8.14.2.1. 通过扩展磁盘的 PVC 来增加虚拟机磁盘大小 复制链接链接已复制到粘贴板!
您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。要指定增加的 PVC 卷,您可以使用 web 控制台运行虚拟机。另外,您可以在 CLI 中编辑 PVC 清单。
如果 PVC 使用文件系统卷模式,磁盘镜像文件会扩展到可用大小,同时为文件系统开销保留一些空间。
8.14.2.1.1. 在 web 控制台中扩展虚拟机磁盘 PVC 复制链接链接已复制到粘贴板!
您可以在 web 控制台中增加虚拟机磁盘 PVC 的大小,而无需留在 VirtualMachines 页并保持虚拟机运行。
流程
- 在 Administrator 或 Virtualization 视角中,打开 VirtualMachines 页。
- 选择正在运行的虚拟机以打开其 详情页。
- 选择 Configuration 选项卡,再点 Storage。
点您要扩展的磁盘旁的选项菜单
。选择 Edit 选项。
这会打开 Edit disk 对话框。
- 在 PersistentVolumeClaim size 字段中,输入所需的大小。
- 点击 Save。
您可以输入大于当前值的任何值。但是,如果新值超过可用大小,则会显示错误。
8.14.2.1.2. 通过编辑清单来扩展虚拟机磁盘 PVC 复制链接链接已复制到粘贴板!
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
编辑您要扩展的虚拟机磁盘的
PersistentVolumeClaim清单:$ oc edit pvc <pvc_name>更新磁盘大小:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: vm-disk-expand spec: accessModes: - ReadWriteMany resources: requests: storage: 3Gi1 # ...- 1
- 指定新磁盘大小。
8.14.2.2. 通过添加空白数据卷来扩展可用虚拟存储 复制链接链接已复制到粘贴板!
您可以通过添加空白数据卷来扩展虚拟机的可用存储。
先决条件
- 您必须至少有一个持久性卷。
-
已安装 OpenShift CLI(
oc)。
流程
如以下示例所示创建
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 运行以下命令来创建数据卷:
$ oc create -f <blank-image-datavolume>.yaml
8.14.3. 将虚拟机磁盘迁移到不同的存储类 复制链接链接已复制到粘贴板!
您可以在不停止虚拟机或虚拟机实例(VMI)的情况下,将一个或多个虚拟磁盘迁移到不同的存储类。
8.14.3.1. 使用 Web 控制台将虚拟机磁盘迁移到不同的存储类 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS 经典架构 web 控制台将附加到虚拟机(VM)的一个或多个磁盘迁移到不同的存储类。当在正在运行的虚拟机上执行此操作时,虚拟机的操作不会中断,迁移磁盘上的数据仍可以访问。
使用 OpenShift Virtualization Operator,您只能一次启动一个虚拟机的存储类迁移,虚拟机必须正在运行。如果您需要一次迁移更多虚拟机,或迁移运行和停止的虚拟机的组合,请考虑使用 Migration Toolkit for Containers (MTC)。
Migration Toolkit for Containers 不是 OpenShift Virtualization 的一部分,需要单独的安装。
先决条件
- 您必须具有数据卷或持久性卷声明(PVC)可用于存储类迁移。
- 集群必须具有可用于实时迁移的节点。作为存储类迁移的一部分,虚拟机将实时迁移到不同的节点。
- 虚拟机必须正在运行。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 点虚拟机旁边的 Options 菜单
并选择 Migration Storage。 您还可以通过选择 Actions
Migration Storage,从 VirtualMachine 详情页访问这个选项。 或者,在树形视图中右键单击虚拟机,然后从弹出菜单中选择 Migration。
- 在 Migration 详情页中,选择是否只迁移整个虚拟机存储或所选卷。如果点 Selected volumes,请选择您要迁移的任何磁盘。点 Next 继续。
- 在 Destination StorageClass 页中的可用选项列表中,选择要迁移到的存储类。点 Next 继续。
- 在 Review 页中,查看受影响的磁盘和目标存储类的列表。要启动迁移,请点 Migrate VirtualMachine storage。
- 停留在 Migrate VirtualMachine 存储页中,以观察进度并等待确认迁移成功完成。
验证
-
在 VirtualMachine 详情页中,进入到 Configuration
Storage。 - 验证所有磁盘在 Storage class 列中列出了预期的存储类。