《企业私有云建设指南》一2.3 计算资源管理
2.3 计算资源管理
在企业IT基础设施云架构下,计算资源、存储资源、网络资源在统一的云平台管理下被封装整合成不同的资源池,以云服务的方式提供给服务使用者。
云计算在企业的落地涉及多个方面。除了资源池管理,还有监控管理、运维管理和云服务管理,只有相关方面联动起来,才能真正让云计算在企业落到实处、发挥价值。
下面我们通过VMware和OpenStack这两个比较常用的IaaS管理平台来看看它们在计算资源管理方面的具体技术和实现。
2.3.1 VMware
按照技术平台类型,计算资源池的组成可分为x86平台和非x86平台。非x86平台包含AIX小型机和HPUX等。在这里x86平台则可具体分为VMware虚拟化平台架构和x86物理服务器组成的数据集群类架构。
1.资源池的分区
在企业级IT基础设施环境中,为了保证风险可控以及业务安全性要求,从网络上划分了多个不同的安全区域。基础架构网络中,部署计算资源池一般有以下几个分区:
◆ 业务生产区:运行企业各类线上生产系统。
◆ 开发测试区:方便开发测试的各类业务测试系统。
◆ 管理区:部署各类管理用服务器。
◆ 物理区:部署各类数据库和不方便虚拟化的物理服务器。
◆ DMZ服务区:实现互联网接入及部分需要连接互联网的应用部署。
2.资源池部署规划
为了满足应用系统上线的需求,在相关区域中将选择不同标准的计算资源池以进行部署,部署区域和资源池类型的对应关系见表2-1。
3.部署单元(主机和集群)
具体来说,计算资源池(Resource Pool,RP)有两种,CPU资源池和内存资源池。
图2-1中一台EXSi主机有36GHz CPU资源和96GB可用内存资源,并且创建了两个资源池。其中OA系统获得1/3的资源,也就是12GHz CPU资源和32GB内存资源。HR系统获得剩下的2/3的资源。
一个集群(Cluster)的资源池包含集群中所有主机(Host)的资源总和。比如一个8主机的集群,每个主机都有32GHz CPU和64GB内存,那么这个集群的资源总和就是256GHz的CPU和512GB的内存。在这个集群中创建的资源池就从这个总的可用资源中分配。
集群的可用资源总是小于集群的总资源,这是因为每台主机都会占用一部分CPU和内存资源,以留给自己的Hypervisor和OS使用。
虽然集群资源池是所有主机资源的总和,但是并不意味着某一VM(虚拟机)可以使用超过某一台主机的资源。比如,两台32GB内存的主机组成集群,集群中创建了一个64GB内存的资源池,但是任何单台VM都不能使用超过32GB的内存,因为VM不能跨主机使用资源,即VM的可用资源受到单台主机物理资源上限的影响。
另外一种情况:如果考虑VM的SWAP的话,这台大于32GB内存的VM可以被创建,也可以被运行。虽然这台VM不能跨主机使用资源,也就是它最多可以使用32GB的内存,但是别忘记它还有SWAP,因此,20GB的SWAP保证了Guest OS的运行。
同VM一样,资源池也有份额(Shares)、预留(Reservation)和限制(Limit)这3个配置项,见图2-2与图2-3。
◆ 限制
资源池的限制与VM的限制类似,不同的就是这个限制是资料池中所有VM可用物理资源的上限值。
虽然“限制”项不会限制VM的创建,但是它限定了可用物理资源,影响了资源池中运行的VM的性能。
◆ 份额
资源池中的资源通常通过份额来分配,有3种预设的份额分配方式:High、Normal和Low,比重分别为4∶2∶1。反映在数字上则如表2-2所示。
比如说一个集群有5个资源池:1个High、2个Normal、2个Low。那么High资源池可以获得4/ (4+2×2+1×2) = 40%的资源,Normal资源池各可以获得20%,Low资源池各可以获得10%资源。
资源池下可以建子资源池。资源按份额的比例分配。
◆ 预留
资源池的Reservation(预留)不是决定其中的VM能用多少CPU/内存资源,而是分配给VM的Reservation使用的。如果资源池的可用预留不够VM预留需要的量,VM将不能被启动,或者正在运行中的VM不能被移动到该资源池中。这种检查叫作准入控制(Admission Control)。
比如资源池中可用内存预留是1500MB。位于该资源池中的VM1和VM2的内存预留都是1024MB,当我们启动VM1时可以正常启动,但是再启动VM2时,剩下的可用内存预留只有476MB(小于1024MB),于是VM2无法启动,用户将收到“Insuff?icient Memory Resource”的报错。
资源池有两种类型:Fixed和Expandable。从图2-2和图2-3可以看出,CPU和内存资源都可以勾选“不受限制”(Expandable Reservation),默认是勾选的。如果手工去掉这个勾选,就可以更改为Fixed。
Fixed类型即其中的VM的Reservation只能使用自己的预留资源,而Expandable类型就是不仅可以使用自己的预留资源,而且当资源池中的可用预留资源不够VM使用的时候,可以使用父资源池中的。
VM开机时才会申请预留,关机时就把这部分预留还回资源池了。
RP(资源池)预留中的内存/CPU资源并非被这个RP独占,而其他RP无法使用。如果某一个RP预留中的内存没有被用完,则其他RP的VM还是可以使用这部分内存的。
例如,主机有3GB内存,在完全竞争下RP1获得1GB,RP2获得2GB。RP1设置了1GB的预留,但是其中没有VM。RP2中有且仅有一台VM并配置了2.5GB内存,运行一个消耗内存的程序,那么这个VM可以获得2.5GB的内存,其中0.5GB来自RP1,而无视其预留。
但是,增加某个RP的预留就减少了其他RP可以获得的预留。
开启一台VM所需要的物理内存,不仅与内存预留有关,也与内存开销有关。当可用内存预留小于开启一台VM的需求(等于内存预留和开销的总和)时,VM就无法启动。
- 点赞
- 收藏
- 关注作者
评论(0)