8.5. 编辑虚拟机
您可以使用 Red Hat OpenShift Service on AWS web 控制台更新虚拟机(VM)配置。您可以更新 YAML 文件或 VirtualMachine 详情页。
您还可以使用命令行编辑虚拟机。
8.5.1. 更改虚拟机的实例类型 复制链接链接已复制到粘贴板!
您可以使用 web 控制台更改与正在运行的虚拟机(VM)关联的实例类型。更改会立即生效。
先决条件
- 您使用实例类型创建了虚拟机。
流程
-
在 Red Hat OpenShift Service on AWS web 控制台中,点 Virtualization
VirtualMachines。 - 选择一个虚拟机以打开 VirtualMachine 详情页。
- 点 Configuration 选项卡。
- 在 Details 标签页中,点实例类型文本打开 Edit Instancetype 对话框。例如,点 1 CPU | 2 GiB Memory。
使用 Series 和 Size 列表编辑实例类型。
- 从 Series 列表中选择一个项目,以显示该系列的相关大小。例如,选择 General Purpose。
- 从 Size 列表中选择 VM 的新实例类型。例如,选择 medium: 1 个 CPU, 4Gi Memory,它位于 General Purpose 系列中。
- 点击 Save。
验证
- 点 YAML 标签。
- 点 Reload。
- 查看 VM YAML,以确认实例类型已更改。
8.5.2. 热插虚拟机内存 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS web 控制台添加或删除分配给虚拟机(VM)的内存量。
流程
-
进入到 Virtualization
VirtualMachines。 - 选择所需的虚拟机以打开 VirtualMachine 详情页面。
- 在 Configuration 选项卡中,点 Edit CPU|Memory。
输入所需内存量,然后单击保存。
注意您可以热插到默认虚拟机初始内存量的三倍。超过这个限制需要重启。
系统会立即应用这些更改。如果虚拟机是可迁移的,则会触发实时迁移。如果没有,或者无法更新更改,则会为虚拟机添加一个
RestartRequired
条件。
虚拟机的内存热插拔需要 virtio-mem
驱动程序的客户机操作系统支持。这个支持取决于客户端操作系统中包含的和启用的驱动程序,而不是在特定的上游内核版本中。
支持的客户端操作系统:
- RHEL 9.4 及更新的版本
- RHEL 8.10 及更新的版本(默认情况下禁用hot-unplug)
-
其他 Linux 客户机需要内核版本 5.16 或更高版本,以及
virtio-mem
内核模块 -
Windows 客户机需要
virtio-mem
驱动程序版本 100.95.104.26200 或更高版本
8.5.3. 在虚拟机上热插 CPU 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS web 控制台增加或减少分配给虚拟机的 CPU 套接字数量,而无需重启虚拟机。
流程
-
进入到 Virtualization
VirtualMachines。 - 选择所需的虚拟机以打开 VirtualMachine 详情页面。
- 在 Configuration 选项卡中,点 Edit CPU|Memory。
- 选择 vCPU 单选按钮。
输入所需的 vCPU 插槽数量,然后点 Save。
注意您可以热插到虚拟机的默认 vCPU 插槽初始数的三倍。超过这个限制需要重启。
如果虚拟机是可迁移的,则会触发实时迁移。如果没有,或者无法更新更改,则会为虚拟机添加一个
RestartRequired
条件。
如果虚拟机启用了 spec.template.spec.domain.devices.networkInterfaceMultiQueue
字段,且 CPU 热插,则会出现以下行为:
- 在 CPU 热插保留其原始队列计数前附加的现有网络接口,即使您添加更多虚拟 CPU (vCPU)。底层虚拟化技术导致这种预期行为。
- 要更新现有接口的队列数以匹配新的 vCPU 配置,您可以重启虚拟机。只有在更新提高性能时才需要重启。
- 在 CPU 热插拔后,您热插的新 VirtIO 网络接口会自动接收与更新的 vCPU 配置匹配的队列数。
8.5.4. 使用 CLI 编辑虚拟机 复制链接链接已复制到粘贴板!
您可以使用命令行编辑虚拟机 (VM)。
先决条件
-
已安装
oc
CLI。
流程
运行以下命令来获取虚拟机配置:
oc edit vm <vm_name>
$ oc edit vm <vm_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 编辑 YAML 配置。
如果要编辑正在运行的虚拟机,您需要执行以下任一操作:
- 重启虚拟机。
运行以下命令使新配置生效:
oc apply vm <vm_name> -n <namespace>
$ oc apply vm <vm_name> -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.5. 将磁盘添加到虚拟机 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS web 控制台将虚拟磁盘添加到虚拟机(VM)。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 - 选择一个虚拟机以打开 VirtualMachine 详情页。
- 在 Disks 选项卡上,点 Add disk。
指定 Source、Name、Size、Type、Interface 和 Storage Class。
- 可选:如果您使用空磁盘源并在创建数据卷时要求最大写入性能,则可以启用预分配。如果要这样做,可选中启用预分配复选框。
-
可选:您可以清除 Apply optimized StorageProfile 设置,以更改虚拟磁盘的卷模式和访问模式。如果没有指定这些参数,系统将使用
kubevirt-storage-class-defaults
配置映射中的默认值。
- 点击 Add。
如果虚拟机正在运行,您必须重启虚拟机以应用更改。
8.5.5.1. 存储字段 复制链接链接已复制到粘贴板!
字段 | 描述 |
---|---|
空白(创建 PVC) | 创建一个空磁盘。 |
通过 URL 导入(创建 PVC) | 通过 URL(HTTP 或 HTTPS 端点)导入内容。 |
使用现有的 PVC | 使用集群中已可用的 PVC。 |
克隆现有的 PVC(创建 PVC) | 选择集群中可用的现有 PVC 并克隆它。 |
通过 Registry 导入(创建 PVC) | 通过容器 registry 导入内容。 |
容器(临时) | 从集群可以访问的 registry 中的容器上传内容。容器磁盘应只用于只读文件系统,如 CD-ROM 或临时虚拟机。 |
Name |
磁盘的名称。名称可包含小写字母 ( |
Size | GiB 中磁盘的大小。 |
类型 | 磁盘类型。示例:磁盘或光盘 |
Interface | 磁盘设备的类型。支持的接口包括 virtIO、SATA 和 SCSI。 |
Storage class | 用于创建磁盘的存储类。 |
高级存储设置
以下高级存储设置是可选的,对 Blank, Import via URL, and Clone existing PVC 磁盘可用。
如果没有指定这些参数,系统将使用默认存储配置集值。
参数 | 选项 | 参数描述 |
---|---|---|
卷模式 | Filesystem | 在基于文件系统的卷中保存虚拟磁盘。 |
Block |
直接将虚拟磁盘存储在块卷中。只有底层存储支持时才使用 | |
访问模式 | ReadWriteOnce (RWO) | 卷可以被一个节点以读写模式挂载。 |
ReadWriteMany (RWX) | 卷可以被多个节点以读写模式挂载。 注意 实时迁移需要此模式。 |
8.5.6. 在虚拟机上挂载 Windows 驱动程序磁盘 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS web 控制台将 Windows 驱动程序磁盘挂载到虚拟机(VM)上。
流程
-
进入到 Virtualization
VirtualMachines。 - 选择所需的虚拟机以打开 VirtualMachine 详情页面。
- 在 Configuration 选项卡中,单击 Storage。
选择 Mount Windows 驱动程序磁盘 复选框。
Windows 驱动程序磁盘显示在挂载的磁盘列表中。
8.5.7. 将 secret、配置映射或服务帐户添加到虚拟机 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenShift Service on AWS web 控制台向虚拟机添加 secret、配置映射或服务帐户。
这些资源作为磁盘添加到虚拟机中。您可在挂载任何其他磁盘时挂载 secret、配置映射或服务帐户。
如果虚拟机正在运行,则更改在重启虚拟机之后才会生效。新添加的资源在页面的顶部被标记为待处理更改。
先决条件
- 要添加的 secret、配置映射或服务帐户必须与目标虚拟机位于同一命名空间中。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 选择虚拟机以打开 VirtualMachine 详情页面。
-
点 Configuration
Environment。 - 点 Add Config Map、Secret 或 Service Account。
- 点 Select a resource,从列表中选择一个资源。为所选资源自动生成带有六个字符的序列号。
- 可选:点 Reload 将环境恢复到其上次保存的状态。
- 点 Save。
验证
-
在 VirtualMachine 详情页面中,点 Configuration
Disks 并验证资源是否在磁盘列表中显示。 -
点 Actions
Restart 重启虚拟机。
现在,您可以在挂载任何其他磁盘时挂载 secret、配置映射或服务帐户。
8.5.8. 更新多个虚拟机 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)同时更新多个虚拟机(VM)。
先决条件
-
已安装
oc
CLI。 -
您可以访问 Red Hat OpenShift Service on AWS 集群,并具有
cluster-admin
权限。
流程
运行以下命令来创建特权服务帐户:
oc adm new-project kubevirt-api-lifecycle-automation
$ oc adm new-project kubevirt-api-lifecycle-automation
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create sa kubevirt-api-lifecycle-automation -n kubevirt-api-lifecycle-automation
$ oc create sa kubevirt-api-lifecycle-automation -n kubevirt-api-lifecycle-automation
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create clusterrolebinding kubevirt-api-lifecycle-automation --clusterrole=cluster-admin --serviceaccount=kubevirt-api-lifecycle-automation:kubevirt-api-lifecycle-automation
$ oc create clusterrolebinding kubevirt-api-lifecycle-automation --clusterrole=cluster-admin --serviceaccount=kubevirt-api-lifecycle-automation:kubevirt-api-lifecycle-automation
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,确定
kubevirt-api-lifecycle
镜像的 pull URL:oc get csv -n openshift-cnv -l=operators.coreos.com/kubevirt-hyperconverged.openshift-cnv -ojson | jq '.items[0].spec.relatedImages[] | select(.name|test(".*kubevirt-api-lifecycle-automation.*")) | .image'
$ oc get csv -n openshift-cnv -l=operators.coreos.com/kubevirt-hyperconverged.openshift-cnv -ojson | jq '.items[0].spec.relatedImages[] | select(.name|test(".*kubevirt-api-lifecycle-automation.*")) | .image'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过创建作业对象来部署
Kubevirt-Api-Lifecycle-Automation
,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.5.8.1. 在虚拟机上执行批量操作 复制链接链接已复制到粘贴板!
您可以使用 web 控制台中的 VirtualMachines 列表视图同时对多个虚拟机(VM)执行批量操作。这可让您以最少的手动工作来高效地管理一组虚拟机。
可用的批量操作
- 标记 VMs - Add、edit 或 remove 标签,这些标签在所选虚拟机之间应用。
- 删除虚拟机 - 选择要删除的多个虚拟机。确认对话框显示为删除选择的虚拟机数量。
- 将虚拟机移动到文件夹 - 将选定的虚拟机移动到文件夹.所有虚拟机都必须属于同一命名空间。
8.5.9. 为快速存储访问配置多个 IOThreads 复制链接链接已复制到粘贴板!
您可以通过为使用快速存储的虚拟机(VM)配置多个 IOThreads 来提高存储性能,如固态驱动器(SSD)或非易失性内存表达(NVMe)。此配置选项只能通过编辑虚拟机的 YAML 来使用。
只有在启用了 blockMultiQueue
且磁盘总线设为 virtio
时,才支持多个 IOThreads。您必须设置此配置才能使配置正常工作。
流程
-
在侧边菜单中点 Virtualization
VirtualMachines。 - 选择虚拟机以打开 VirtualMachine 详情页面。
- 点 YAML 选项卡打开虚拟机清单。
在 YAML 编辑器中,找到
spec.template.spec.domain
部分,并添加或修改以下字段:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 点 Save。
VM 运行时无法更改 spec.template.spec.domain
设置。在应用更改前,您必须停止虚拟机,然后重启虚拟机才能使新设置生效。