目录
- 背景
- 现状
- 概念
- 存储池
- 物理与虚拟资源分配及使用情况汇总
- 分配
- cpu
- 内存
- 硬盘
- VSAN、VM Encryption和VVOL No Requirements
- 厚置备和精简置备
- 总结
- cpu
- 内存
- 硬盘
- 建议
背景
现在有三台服务器,需要统计上面所有服务占用的资源情况与总和,目的是看还有多少资源可以分配,但是统计完之后发现物理资源和服务资源总和并不一致,甚至差距很多,因此想找出原因所在。
现状
概念
先来解释一下什么是物理资源和虚拟服务资源:
物理资源通常指的是实际的硬件资源,如服务器cpu、内存和硬盘等,而虚拟机服务资源则指的是通过虚拟化技术创建的虚拟机实例,这些虚拟机可能会共享物理资源,但也会涉及到额外的管理和分配开销。
在虚拟化环境中,物理资源可能被分配给了多个虚拟机。这些虚拟机的资源使用情况可能不均匀。一些虚拟机可能使用了较多的资源,而另一些可能处于轻载状态。
存储池
存储池(Storage Pool)是指将多个存储设备(如硬盘、固态硬盘等)组合在一起,形成一个逻辑单元,并对其进行管理和分配的技术。通过存储池,用户可以更灵活地管理存储资源,提高存储资源的利用率和性能。
三台物理机组成一个存储池
将三台服务器组成一个存储池时,通常会采用一种称为软件定义存储(Software-Defined Storage,SDS)的技术。在这种情况下,服务器上的存储设备(如硬盘)将被整合到一个统一的存储池中,形成一个逻辑的存储资源池。这个存储池可以由特定的存储管理软件来管理,该软件负责存储资源的分配、故障恢复、性能优化等任务。
三台的配置如下
通过上面的对比会发现:
1、每台服务器上的硬盘显示总量和使用情况一模一样,那是因为存储设备被整合到一个统一的存储池中,所以在管理界面中显示的硬盘存储情况通常会反映存储池的总体情况,而不是每台服务器上独立的情况。这意味着,无论管理界面中查看哪一台服务器的硬盘情况,都会看到存储池的总量和使用情况,而不是该服务器上独立的硬盘情况。
2、对于CPU和内存的显示,通常会分别显示每台服务器的独立情况,而不是汇总成一个统一的数值。 这是因为CPU和内存是每台服务器上的物理资源,它们的使用情况和配置通常是独立的,而不会像存储设备那样被整合到一个统一的资源池中。
物理与虚拟资源分配及使用情况汇总
汇总表如下图,上面为物理机配置,下图为虚拟机配置
分配
cpu
每个物理机配备的是Intel® Xeon® CPU E5-2670 0 @ 2.60GHz的处理器。每个处理器有8个内核,处理器插槽数为2,所以每个物理机总共有2 * 8 = 16个物理内核。每个物理内核可以支持超线程,因此逻辑处理器(或线程)的数量是物理内核的两倍,即16 * 2 = 32个逻辑处理器
虚拟机的CPU分配并不是直接基于物理机的逻辑处理器数量来进行的,分配CPU资源给虚拟机时,确保单个虚拟机所分配的CPU核心数(或线程数)不超过物理机上的逻辑处理器数量。
每个物理机有32个逻辑处理器,理论上为每个虚拟机分配最多32个CPU线程。但常见的做法是为虚拟机分配少量或中量的CPU线程。
每个物理机的容量是怎么来的?
16(8核*2槽)*2.6GHZ=41.6GHZ
分配的时候
内存
三台物理机总内存576,已用413,按照内存利用率的90%(通常利用率是80%-90%)来计算可以再分配给其他虚拟机的内存数量(确保物理机上有一定的内存余量,以应对突发情况或性能波动。)因此,可再分配的内存量为:
剩余内存 = 总内存 - 已用内存
剩余内存 = 576G*0.9 - 413G
剩余内存 = 105.4
过量分配(Memory Overcommitment)是虚拟化环境中常见的做法。它允许虚拟化平台为虚拟机分配的总内存量超过物理机的实际内存容量(这也是上面为什么按照利用率90%计算,而不是80%)。这是基于一个假设:不是所有的虚拟机都会同时使用其分配的全部内存。通过过量分配,虚拟化平台可以更有效地利用物理内存资源,同时确保在需要时能够为虚拟机提供足够的内存。
服务一共分配了471,真正使用的少之又少,但是物理机上的内存显示已用413,这是因为除了为虚拟机分配的内存外,物理机上还有许多其他组件和进程也会占用内存。比如操作系统和内核、虚拟化平台、数据库服务、文件服务、备份服务、虚拟机管理工具、缓存和缓冲区、其他应用程序等。
硬盘
三个物理机加在一起组成一个存储池,所以三台物理机上的存储都显示容量是21.83T,已用10.13T(这是三台的总数),现在剩余11.7TB
这主要是因为存储策略的配置
VSAN、VM Encryption和VVOL No Requirements
VSAN(Virtual Storage Area Network)是VMware提供的一种分布式存储解决方案,它允许使用ESXi主机(ESXi主机是VMware公司开发的一种虚拟化操作系统,用于在物理服务器上创建和管理虚拟机)的本地磁盘来创建一个共享的、冗余的、高可用的存储池,用于虚拟机存储。VSAN将物理存储设备虚拟化为LUN(Logical Unit Number),使得用户可以按照需求灵活地分配和使用存储资源。这种设计提供了高度的虚拟化和可扩展性,使得存储资源的管理更加便捷和高效。
这里有三个物理机,在VSAN环境中,它们会形成一个集群,共同提供一个共享的存储池。每个物理机上的本地磁盘都会被整合到这个共享存储池中,形成一个统一的存储资源。这意味着数据不是仅存储在一个物理机上,而是分布在集群中的所有物理机上,实现了分布式存储。
关于数据备份,VSAN本身并不直接提供备份功能。然而,可以使用VMware的其他工具或服务,如VMware Data Protection (VDP) 或第三方备份解决方案,来定期备份VSAN中的数据。
VSAN中的数据存储和分配是通过一系列的策略和机制来确定的。首先,VSAN会根据存储需求和集群的当前状态来自动管理数据的存储和分布。它使用一种数据分布算法来确保数据在集群中的物理机上均匀分布,以实现负载均衡和容错。此外,VSAN还提供了灵活的存储策略,允许管理员根据虚拟机的不同需求来定制存储配置。这些策略可以包括不同的RAID级别、缓存设置、I/O延迟等参数,以满足不同的性能和可靠性要求。
至于具体的数据存储到哪个物理机上,这是由VSAN的分布式存储机制自动管理的。VSAN会根据数据的冗余和容错需求,在集群中的多个物理机上存储数据的副本。这样,即使某个物理机发生故障,数据仍然可以从其他物理机上恢复和访问。
这里除了VSAN,还有另外两种存储策略,它们的主要区别是:
VSAN(Virtual SAN):
基于VMware ESXi主机构建的分布式存储解决方案。
利用集群中主机的本地存储资源,创建一个共享、冗余和高可用的存储池。
允许虚拟机直接从集群中的本地存储访问数据,提供了高性能和灵活的存储管理。
管理员可以配置FTT(Fault Tolerance Tolerance)值来决定存储对象的副本数和所需的ESXi主机数量,以确保数据的可靠性和容错能力。
VM Encryption:
用于加固虚拟机的安全性能。
通过加密虚拟机和虚拟磁盘控制器之间的所有I/O流量来保护虚拟机文件,包括VMDK、VMX配置文件、快照文件以及VMX交换文件。
管理员需要添加密钥管理服务器(KMS)来支持加密功能,并确保加密密钥的安全管理。
VVOL No Requirements:
VVOL(Virtual Volume)是一种存储技术,它允许管理员根据具体需求来制定存储策略。
与传统的文件系统格式(如VMFS或NFS)相比,VVOL无需对存储设备进行特定的文件系统格式调整。
管理员可以根据性能、容量和保护等需求设置不同的存储策略,并将其应用到相应的逻辑卷上,从而实现更灵活和精细的存储管理。
概括来说:SAN、VM Encryption和VVOL No Requirements各自具有不同的功能和应用场景。VSAN侧重于提供高性能和灵活的分布式存储解决方案,VM Encryption关注于加强虚拟机的安全性能,而VVOL No Requirements则允许管理员根据具体需求定制存储策略。
VSAN、VM Encryption和VVOL No Requirements是VMware提供的虚拟机存储策略选项。 这些策略允许管理员根据虚拟机的需求定义存储配置,确保虚拟机获得适当的存储性能、安全性和管理特性。
厚置备和精简置备
另一方面,具体的存储资源分配方式有厚置备和精简置备,他们也可以被视为存储策略的一部分。它们决定了存储资源如何分配给虚拟机。
厚置备是一种预先分配硬盘空间的方式。在创建虚拟磁盘时,它会立即分配所需的全部空间,无论这部分空间是否立即被使用。
精简置备则是一种根据实际使用量动态分配空间的方式。它最初只分配实际所需的最小空间,然后在数据写入时逐渐扩展空间。这种方式可以有效地节省空间,特别是在数据增长不确定或初期数据量较小的情况下。然而,由于需要动态扩展空间,其写入性能可能较厚置备稍差。
(新建服务器文档上面虚机创建的时候使用的是模板,所以没有涉及到硬盘分配策略)
总结
cpu
为每个虚拟机分配<32个就可以(常见的做法是为虚拟机分配少量或中量的CPU个数)
目前可以不考虑增加或者更换
内存
可再分配内存 <105.4G即可
建议:目前内存较小,可考虑购置新的内存更换旧的
硬盘
可再分配<11.7TB即可
目前可以不考虑增加或者更换
建议
一般分配的时候,看做什么应用的,要是CPU密集型的运算,就多CPU,只是去存数据的话 那就是多给存储,在服务器上部署的东西建议可以在自己电脑上装一下试一试 ,可以比较直观的看到服务占用的资源,不确定的话,建议两核两G起步,除了硬盘不好扩容,最好一次性给足之外,内存还有CPU都是可以去后期改的,一般习惯是JAVA应用,一个jar包给半个cpu,1g内存,那些依赖项,就看官方说的硬件需求。