9.16. VM 磁盘
9.16.1. 热插虚拟机磁盘 复制链接链接已复制到粘贴板!
您可以在不停止虚拟机(VM)或虚拟机实例(VMI)的情况下添加或删除虚拟磁盘。
只有数据卷和持久性卷声明 (PVC) 才能热插和热拔。您无法热插或热拔容器磁盘。
热插磁盘在重新引导后仍会附加到虚拟机。您必须拔出磁盘以将其从虚拟机中删除。
每个虚拟机都有一个 virtio-scsi 控制器,以便热插磁盘可以使用 SCSI 总线。virtio-scsi 控制器克服了 VirtIO 的限制,同时保持其性能优势。它高度可扩展,支持超过 400 万个磁盘的热插拔。
当您热插磁盘到 VirtIO (virtio-blk)总线时,每个磁盘会在虚拟机中使用 PCI Express (PCIe)插槽。根据 Available VirtIO Ports 表中指定的创建虚拟机,PCIe 插槽数量有限并自动设置。因此,您可以将 virtio-blk 用于不超过可用插槽数的少量磁盘。
9.16.1.1. 使用 Web 控制台热插和热拔磁盘 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform web 控制台在虚拟机运行时将其附加到虚拟机 (VM) 来热插磁盘。
热插磁盘会附加到虚拟机,直到您拔出为止。
先决条件
- 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 - 选择一个正在运行的虚拟机来查看其详情。
-
在 VirtualMachine 详情页面中,点 Configuration
Storage。 添加热插磁盘:
- 点击 Add。
- 在 Add disk (hot plugged) 窗口中,从 Source 列表中选择磁盘,然后点 Save。
- 可选:选择接口总线的类型。选项为 VirtIO 和 SCSI。默认的总线类型是 VirtIO。
可选:更改现有热插磁盘的接口总线类型:
-
点磁盘旁边的 Options 菜单
并选择 Edit 选项。
- 在 Interface 字段中,选择所需的选项。
-
点磁盘旁边的 Options 菜单
可选: 热插磁盘:
-
点磁盘旁边的选项菜单
,然后选择 Detach。
- 单击 Detach。
-
点磁盘旁边的选项菜单
9.16.1.2. 使用 CLI 热插和热拔磁盘 复制链接链接已复制到粘贴板!
您可以使用命令行在虚拟机 (VM) 运行时热插和热拔磁盘。
热插磁盘会附加到虚拟机,直到您拔出为止。
先决条件
- 您必须至少有一个数据卷或持久性卷声明(PVC)可用于热插。
流程
运行以下命令来热插磁盘:
virtctl addvolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC> \ [--bus <bus_type>] [--serial=<label_name>]
$ virtctl addvolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC> \ [--bus <bus_type>] [--serial=<label_name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
可选的
--bus标志允许您指定添加磁盘的总线类型。选项为virtio和scsi。默认总线类型是virtio。 -
可选
--serial标志允许您添加您选择的字母数字字符串标签。这有助于您识别客户机虚拟机中的热插磁盘。如果没有指定这个选项,则标签默认为热插数据卷或 PVC 的名称。
-
可选的
运行以下命令来热拔磁盘:
virtctl removevolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC>
$ virtctl removevolume <virtual-machine|virtual-machine-instance> \ --volume-name=<datavolume|PVC>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.16.2. 扩展虚拟机磁盘 复制链接链接已复制到粘贴板!
您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。
如果您的存储供应商不支持卷扩展,您可以通过添加空白数据卷来扩展虚拟机的可用虚拟存储。
您不能缩小虚拟机磁盘的大小。
9.16.2.1. 通过扩展磁盘的 PVC 来增加虚拟机磁盘大小 复制链接链接已复制到粘贴板!
您可以通过扩展磁盘的持久性卷声明(PVC)来增加虚拟机(VM)磁盘的大小。要指定增加的 PVC 卷,您可以使用 web 控制台运行虚拟机。另外,您可以在 CLI 中编辑 PVC 清单。
如果 PVC 使用文件系统卷模式,磁盘镜像文件会扩展到可用大小,同时为文件系统开销保留一些空间。
9.16.2.1.1. 在 web 控制台中扩展虚拟机磁盘 PVC 复制链接链接已复制到粘贴板!
您可以在 web 控制台中增加虚拟机磁盘 PVC 的大小,而无需留在 VirtualMachines 页并保持虚拟机运行。
流程
- 在 Administrator 或 Virtualization 视角中,打开 VirtualMachines 页。
- 选择正在运行的虚拟机以打开其 详情页。
- 选择 Configuration 选项卡,再点 Storage。
点您要扩展的磁盘旁的选项菜单
。选择 Edit 选项。
这会打开 Edit disk 对话框。
- 在 PersistentVolumeClaim size 字段中,输入所需的大小。
- 点击 Save。
您可以输入大于当前值的任何值。但是,如果新值超过可用大小,则会显示错误。
9.16.2.1.2. 通过编辑清单来扩展虚拟机磁盘 PVC 复制链接链接已复制到粘贴板!
先决条件
-
已安装 OpenShift CLI(
oc)。
流程
编辑您要扩展的虚拟机磁盘的
PersistentVolumeClaim清单:oc edit pvc <pvc_name>
$ oc edit pvc <pvc_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新磁盘大小:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定新磁盘大小。
9.16.2.2. 通过添加空白数据卷来扩展可用虚拟存储 复制链接链接已复制到粘贴板!
您可以通过添加空白数据卷来扩展虚拟机的可用存储。
先决条件
- 您必须至少有一个持久性卷。
-
已安装 OpenShift CLI(
oc)。
9.16.4. 将虚拟机磁盘迁移到不同的存储类 复制链接链接已复制到粘贴板!
您可以在不停止虚拟机或虚拟机实例(VMI)的情况下,将一个或多个虚拟磁盘迁移到不同的存储类。
9.16.4.1. 使用 Web 控制台将虚拟机磁盘迁移到不同的存储类 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform 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 列中列出了预期的存储类。
9.16.5. 在实时虚拟机中插入 CD-ROM 复制链接链接已复制到粘贴板!
要在不重启虚拟机的情况下将存储设备附加到虚拟机(VM),您可以将虚拟机配置为使用虚拟 CD-ROM 驱动器,并在驱动器中插入 ISO 镜像。
这也使得可以从虚拟机中的 CD-ROM 安装操作系统。
在正在运行的虚拟机中插入和弹出 CD-ROM 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅以下链接:
9.16.5.1. 使用命令行在实时虚拟机中插入 CD-ROM 复制链接链接已复制到粘贴板!
要在 CD-ROM 存储设备上将数据提供给正在运行的虚拟机(VM),请在虚拟机中创建一个虚拟 CD-ROM 驱动器,并将 CD-ROM 作为 ISO 镜像插入到驱动器中。
设置虚拟 CD-ROM 驱动器需要重启虚拟机,但之后,您可以在虚拟机运行时在驱动器中插入和弹出 ISO 镜像。
在正在运行的虚拟机中插入和弹出 CD-ROM 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅以下链接:
先决条件
必须启用
DeclarativeHotplugVolumes功能门。为确保这一点,HyperConvergedCR 必须包含spec.featureGates配置部分中的declarativeHotplugVolumes: true行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必须禁用
HotplugVolumes功能门。使用临时卷需要这个功能门,但与DeclarativeHotplugVolumes不兼容。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 集群中有 CD-ROM 的 ISO 镜像。
流程
运行以下命令来编辑您要插入 CD-ROM 的虚拟机配置:
oc edit vm <vm-name> -n <namespace>
$ oc edit vm <vm-name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
-
<vm-name>是虚拟机的名称 -
<namespace>是包含虚拟机的项目命名空间的名称
-
将
cdrom磁盘添加到虚拟机配置的spec.template.spec.domains.devices.disks部分。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果虚拟机正在运行,请将其关闭。
在虚拟机配置的
spec.template.spec.volumes部分中插入 CD-ROM 卷。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在虚拟机运行时以这种方式插入 CD-ROM,但 dataVolume 必须设置
hotpluggable: true参数。- 可选:在客户端操作系统中,验证是否已检测到 CD-ROM。
-
可选:弹出 CD-ROM 卷。为此,请从虚拟机配置的
spec.template.spec.volumes部分中删除cdrom卷。您可以在虚拟机运行时执行此操作。
9.16.5.2. 使用 Web 控制台在实时虚拟机中插入 CD-ROM 复制链接链接已复制到粘贴板!
要在 CD-ROM 存储设备上将数据提供给正在运行的虚拟机(VM),请在虚拟机中创建一个虚拟 CD-ROM 驱动器,并将 CD-ROM 作为 ISO 镜像插入到驱动器中。
设置虚拟 CD-ROM 驱动器需要重启虚拟机,但您可以在虚拟机运行时在驱动器中插入和弹出 ISO 镜像。
在正在运行的虚拟机中插入和弹出 CD-ROM 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅以下链接:
先决条件
必须启用
DeclarativeHotplugVolumes功能门。为确保这一点,HyperConvergedCR 必须包含spec.featureGates配置部分中的declarativeHotplugVolumes: true行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必须禁用
HotplugVolumes功能门。使用临时卷需要这个功能门,但与DeclarativeHotplugVolumes不兼容。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
-
在 OpenShift Container Platform web 控制台中进入 Virtualization
VirtualMachines。 - 点您要在其中插入 CD-ROM 的虚拟机的名称。
- 在 VM 详情页上,点 Configuration 选项卡。
- 打开 Storage 窗格。
点击 Add。
此时会打开一个下拉菜单。
- 点 CD-ROM。
- 在 Name 字段中,为 CD-ROM 驱动器设备添加名称。
选择要作为 CD-ROM 卷添加到驱动器中的 ISO 镜像。要做到这一点,点下拉菜单,然后从集群中可用的卷中进行选择。
或者,您可以上传新的 ISO 文件,并在创建后将其插入到 CD-ROM 驱动器中。要做到这一点:
- 确保选中 Upload a new ISO file to the cluster 行。
- 在 Upload ISO 字段中拖放 ISO 文件,或者点 Upload 并选择您要上传的 ISO 镜像。
- 在 Upload mode 字段中,选择 Mount uploaded ISO as DataVolume。
点击 Add。
CD-ROM 驱动器被添加到存储列表中。
- 如果虚拟机正在运行,请关闭或重启它。
-
要将附加到 CD-ROM 驱动器的 ISO 文件作为 CD-ROM 卷插入虚拟机,请点 CD-ROM 驱动器旁的 Options 菜单
,然后点 Inject。您可以在虚拟机运行时执行此操作。
- 可选:在客户端操作系统中,验证是否已检测到 CD-ROM。
-
可选: 要从虚拟机弹出 CD-ROM,请点 web 控制台中的 CD-ROM 设备 旁边的 Options 菜单
,然后选择 Eject。您可以在虚拟机运行时执行此操作。