OpenStack中的CPU与内存超分详解

目录

什么是超分

CPU超分

查看虚拟机虚拟CPU运行在哪些物理CPU上

内存超分

内存预留

内存共享

如何设置内存预留和内存共享

全局设置

临时设置

什么是超分

超分通常指的是CPU或者GPU的分区或者分割,以在一个物理CPU或GPU内模拟多个逻辑CPU或GPU的功能。这种技术通常被称为虚拟化,允许多个操作系统或者应用程序在同一物理硬件上同时运行,从而提高了资源利用率和系统性能。

在CPU超分方面,一种常见的技术是使用硬件虚拟化,例如Intel的虚拟化技术(VT-x)或AMD的虚拟化技术(AMD-V)。这些技术可以允许多个虚拟机在同一物理CPU上运行,并为每个虚拟机提供虚拟化的CPU、内存和I/O设备。

在GPU超分方面,也有类似的技术,例如Nvidia的虚拟GPU(vGPU)和AMD的虚拟化GPU(vGPU),允许多个虚拟机共享一块物理GPU,并为每个虚拟机提供虚拟化的GPU资源。

CPU超分

在OpenStack中,CPU超分比例(CPU overcommit ratio)是指将虚拟机虚拟CPU核心的数量设置为物理主机实际CPU核心数量的倍数。这允许多个虚拟机共享物理CPU资源。您可以在OpenStack中的nova.conf配置文件中设置CPU超分比例。默认情况下,该值设置为1.0,这意味着每个虚拟CPU内核将映射到物理主机的一个CPU内核。您可以通过修改以下行来更改CPU超分比例的值:

cpu_allocation_ratio = <ratio>

其中<ratio>是您要设置的CPU超分比例值。例如,如果您希望将CPU超分比例设置为2.0,则应将此值设置为2.0。请注意,将此值设置得太高可能会导致虚拟机之间的CPU竞争,从而导致性能下降。因此,建议在设置CPU超分比例时谨慎行事。 

查看虚拟机虚拟CPU运行在哪些物理CPU上

virsh vcpuinfo <VM ID>

[root@bj05-compute-s6-10e33e18e78 ~]# virsh vcpuinfo 2ce42431-aba8-47d9-bc78-1be47f2b93a4
VCPU:           0
CPU:            80
State:          running
CPU time:       11029.1s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           1
CPU:            84
State:          running
CPU time:       11776.3s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           2
CPU:            37
State:          running
CPU time:       12852.5s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

VCPU:           3
CPU:            84
State:          running
CPU time:       13374.2s
CPU Affinity:   ------------------------yyyyyyyyyyyyyyyyyy------------------------------yyyyyyyyyyyyyyyyyy------

内存超分

在OpenStack中也存在内存超分的概念,它允许您在虚拟机中分配超过物理主机可用内存的虚拟内存。内存超分的实现方式类似于CPU超分,它基于内存预留和内存共享两种技术。

内存预留

在内存预留模式下,每个虚拟机被分配一定数量的内存,该内存在虚拟机创建时就被分配并保留,即使虚拟机并未使用该内存。

内存共享

在内存共享模式下,多个虚拟机共享相同的物理内存,这可以使您在不损害性能的情况下更好地利用物理主机的内存资源。

如何设置内存预留和内存共享

全局设置

在OpenStack中,您可以通过编辑nova.conf配置文件来进行全局设置,以配置内存预留和内存共享选项。以下是相关配置项的说明:

  • 内存预留:

要设置全局内存预留选项,请在nova.conf配置文件中添加以下行:

ram_allocation_ratio = <ratio>

其中<ratio>是您要设置的内存超分比例值。默认值为1.5,这意味着虚拟机可以分配的内存量可以超过物理主机可用内存的一半。

  • 内存共享:

要设置全局内存共享选项,请在nova.conf配置文件中添加以下行:

ram_allocation_policy = <policy>

其中<policy>可以是"dedicated"(表示禁用内存共享)或"shared"(表示启用内存共享)。默认值为"dedicated",这意味着内存共享是禁用的。

请注意,全局设置将适用于所有虚拟机,但在创建或编辑虚拟机时,您可以覆盖这些设置并设置特定的内存预留和内存共享选项。

临时设置

  • 内存预留:

在创建或编辑虚拟机时选择“预留”内存的选项,并指定要为虚拟机预留的内存数量。您还可以使用OpenStack的API或命令行工具设置虚拟机的内存预留。例如,在nova命令行工具中,您可以使用以下命令将虚拟机的内存预留设置为2 GB:

nova flavor-key <flavor-name> set "hw:mem_reservation"=2048

其中<flavor-name>是您要设置的虚拟机规格的名称。

  • 内存共享:

在创建或编辑虚拟机时选择“共享”内存的选项。您还可以使用OpenStack的API或命令行工具设置虚拟机的内存共享。例如,在nova命令行工具中,您可以使用以下命令将虚拟机的内存共享设置为True:

nova flavor-key <flavor-name> set "hw:mem_shared"=True

注意,内存共享模式可能会影响虚拟机的性能,因此建议在设置内存共享时谨慎行事。 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack是一个开源的云计算平台,由一系列的软件组件组成,用于构建和管理私有云、公有云和混合云环境。它提供了一套工具和服务,用于管理虚拟机、存储资源、网络资源和其他基础设施。 OpenStack的核心组件包括以下几个: 1. Nova:用于管理和调度虚拟机的计算服务。它提供了弹性伸缩、负载均衡、自动调度等功能。 2. Neutron:用于管理网络资源的网络服务。它提供了虚拟网络的创建和管理、路由、防火墙等功能,使用户可以灵活地定义网络拓扑。 3. Cinder:提供块存储服务,用于虚拟机的持久化存储。它支持多种后端存储设备,如本地磁盘、网络存储等。 4. Swift:提供对象存储服务,用于大规模的分布式数据存储。它具有高可用性、可扩展性和数据冗余性的特点,适合存储非结构化数据。 5. Glance:提供镜像服务,用于管理虚拟机镜像。它可以从外部获取镜像,并将其注册到OpenStack供虚拟机使用。 除了以上核心组件,OpenStack还包括一些其他的服务,如Horizon(Web界面)、Keystone(身份认证)、Heat(编排服务)等,用于提供更全面的云计算功能。 通过使用OpenStack,用户可以轻松地构建和管理自己的云环境,实现资源的灵活调度和管理,提高资源利用率和运维效率。同时,OpenStack的开源特性也使得用户可以根据自己的需求进行定制和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值