VMware vSphere 5.1 群集深入解析(二十)- 存储DRS算法

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

第三部分 vSphere存储DRS

第二章 存储DRS算法

存储DRS能自动初始化虚拟机的位置,来阻止数据存储上磁盘空间的不平衡和I/O热点,通过提供自动数据存储选择,存储DRS初始化位置,可以最小化数据存储过量发布虚拟机的风险,以及最小化虚拟机性能的I/O瓶颈或者负面的影响。

用户的相互作用

额外的智能位置,初始化位置可以为用户在自动数据存储选择的过程中提高速度,当在虚拟机创建过程中选择数据存储时,应用于数据存储群集的数据存储默认不可见,只有数据存储群集或者“非群集”数据存储可以被选择,如果虚拟机必须保持自动模式。

请注意,在群集的数据存储之间抓出一个数据存储,这我们可以深入讨论,如果数据存储被抓出,虚拟机位置设置由自动模式改为手动模式(也就是说用户选择数据存储),一般自动变成手动,存储DRS不会建议虚拟机的自动迁移。

图93:初始化位置

image

默认,存储DRS遵从关联规则,放置虚拟机和虚拟机磁盘文件(VMDK)到数据存储群集的数据存储上,当建议一个数据存储群集,存储DRS预先挑选VMDK的关联规则,在vSphere5.1中,用户接口允许改变默认的管理规则,这样就意识到只有申请新创建的虚拟机。VMDK关联规则在后面的章节被提到。

没有半自动模式可用

数据存储群集能被配置,不管是手动负载平衡还是自动负载平衡,自动初始化位置排除在两个模式之外:存储DRS生成初始化位置的建议通常需要手工确认。

DRS和数据存储连接

当DRS群集和数据存储群集建立起连接,存储DRS负责虚拟机的位置,它的职责是为虚拟机放置提供计算和存储级别,存储DRS检测数据存储同所有主机之间的连接性,确保虚拟机在主机和数据存储级别上有最高的移动性,存储DRS偏向于数据存储连接DRS群集的所有主机—全连接—在考虑部分职权—连接数据存储—数据存储连接DRS群集中主机的子集,在初始化放置期间,部分选择连接数据存储可能影响虚拟机在主机间的移动性,当选择部分连接主机会影响数据存储群集上数据存储之间的移动性。

空间和I/O负载考虑

当选择一个数据存储,初始化位置会参考DRS和存储DRS的阈值,它会选择利用率低的主机和最高连接性的主机来放置虚拟机,数据存储和存储DRS的权重作为数据存储群集中数据存储的利用率,结合空间和I/O值来使用动态权重,如果空间运行较低,它会尝试平衡空间多于I/O(反之亦然),如果资源被约束,权重值大家都一样,例如,如果可用数据存储接近于空间利用率的阈值,空间值的权重变高,它更可能基于空间平衡来初始化位置。

空间利用率阈值

在初始化位置期间,数据存储群集级别和数据存储级别的空闲空间的总数被检查,当初始化虚拟机的位置,存储DRS阻止空间利用率阈值冲突,(空间利用率阈值在扩展空间负载平衡章节将提到),这非常有助于我们理解,空间利用率阈值的设置,在数据存储群集应用于每个独立的数据存储,而不是搜集所有的数据存储群集,这意味着当初始化位置视图阻止使用时,每个数据存储将有一个缓冲空间,图94阐明了这个概念。

图94:数据存储空间一览

image

例如.设置空间利用率阈值到80%,一个数据存储群集包括一个单独的1000GB的数据存储,将允许存储DRS放置虚拟机,消耗空间到800GB,在这个场景中,650GB的数据存储被使用,这意味着存储DRS考虑的数据存储有350GB的空闲,但理解的是虚拟机的位置大于150GB就会与阈值相冲突,如果所有的数据存储至多或者在这个阈值之下,初始化位置仍能进行,如果这个数据存储能适合加入的虚拟机,例如,如果键入的虚拟机是200GB,所有其他的数据存储也超过了空间的阈值,此时虚拟机还是能放置到数据存储1上。

数据存储群集碎片整理

正如之前提到的,存储DRS考虑空闲空间、数据存储和数据存储群集级别因素,如果数据存储群集上有足够的空闲空间可用,但是每个数据存储没有足够的空间可用,在这样的状态期间,如果新的虚拟机不能置于任何一个存储,存储DRS考虑迁移存在的虚拟机从一个或者多个数据存储去空闲的空间

迁移的先决条件

存储DRS开始为数据存储上已经存在的虚拟机查找供选择的位置,尝试一个接一个的放置虚拟机到其它的数据存储上,最终,存储DRS可能生成存在虚拟机的迁移建议,允许新虚拟机放置,这个迁移被称之为迁移的先决条件,这个先决迁移的建议和放置建议的组合称之为建议配置。

递归深度

存储DRS使用递归算法来查找供选择的位置组合,为了保持存储DRS试图迁移非常多数量的虚拟机组合,递归深度被限制为2步,一个步骤定义了哪些?第一步骤有哪些计算,一个步骤最好定义从一个数据存储视图迁移到同一个数据存储上另一个位置,一步能包括VMDK的迁移,但还能包括多个虚拟机附带多个虚拟机磁盘的迁移,在某种情况下,通过移动虚拟机到另外一个数据存储,空间必须首先在目标存储上被创建,这导致了额外的步骤,在接下来的图表显示了这个过程。

图95:递归深度

image

存储DRS完成新虚拟机的计算,如果VM3和VM4被迁移到数据存储2,VM10能被放置到数据存储1上,但是,放置这两个虚拟机到数据存储2上可能导致空间利用率的冲突,因此空间必须被创建,所以,VM5被移出数据存储2,同时创建空间,这导致了第一步,移动VM5到数据存储3,接下来是第二步,移动VM2和VM4到数据存储2,最终新的虚拟机VM10放置到数据存储1上。

如果2步的移动没有满足的初始化位置存储需求,存储DRS停止查找,高级设置可以改变步骤的数量用来查找,通常,改变默认值需要很强的勇气,因为将消耗很多个小时的测试来研究设置,以提供最好的性能和最低的操作影响,如果你有很强的把握改变这个步骤,在DRS高级设置选项中配置“MaxRecursionDepth”,默认值使1,最大是5,因为计算开始于0.默认是1,所以允许2步,请注意这是每个群集单独设置的选项。

Goodness

存储DRS将循环通过数据存储群集上所有的数据存储,初始化查找每个数据存储的空间,如果能提供空间允递归方式放置许虚拟机,查找生成迁移先决条件,存储DRS评估生成配置来设置goodness值,这个设置的最少开销即为最佳的迁移建议,并显示在清单顶部,让我们来探讨这一些。

场景

数据存储群集包括3个数据存储;每个数据存储有1000GB的容量,包含多个不同规格的虚拟机,数据存储空间的消耗范围从550GB到650GB,同时空间利用率的阈值设置为80%,这时候,管理员建立VM10,需要350GB的空间,存储DRS将阻止虚拟机的放置,在任何一个数据存储上,因为放置虚拟机没有先决条件,将与数据存储上的空间利用率阈值相冲突。

图96:在初始化位置之前的数据存储空间利用率

image

查找过程

当每个ESXi主机提供关于全部数据存储利用率和VMDK状态的信息,存储DRS对最新的数据情况有一个清晰的角度,将为了查找使用这些状态,在第一步,它将同模拟数据存储1上所有必要的迁移来适应VM10,这个先决条件的迁移过程,在数据存储1上至少有一定数量的虚拟机适合迁移:

图97:先决条件迁移-模拟1

image

  • 第一步:VM3从数据存储1迁移到数据存储2

  • 第二步:VM4从数据存储1迁移到数据存储3

  • 将新的虚拟机置入数据存储1

尽管VM3和VM4移动到不同的数据存储上,它们的迁移都被计算为第一步的迁移先决条件

,因为两个虚拟机从同一个数据存储迁出(数据存储1)

接下来存储DRS将评估数据存储2,由于VM5的规格,存储DRS不能将VM5迁移出数据存储2,以为内它将立即同所选的目标数据存储的利用率阈值相冲突。

其中最酷部分是算法,也就是考虑迁入是有效移动,在这个场景中,迁移虚拟机到数据存储2将提高另一个数据存储的空闲空间,从而提供足够的空间给VM5,数据存储2有足够的空间将允许存储DRS放置VM10到数据存储2上。

图98:先决条件-模拟2

image

迁移过程的先决条件是数据存储2上至少有一些虚拟机适合迁移:

  • 第一步:VM2从数据存储1迁移到数据存储2

  • 第二步:VM3从数据存储1迁移到数据存储3

  • 第三部:VM5从数据存储2迁移到数据存储1

  • 将新的虚拟机置入数据存储2

数据存储3的分析生成了单独的迁移先决条件,VM8从数据存储3迁移到数据存储2将有足够的空间放置VM10,选择VM9就没有足够的空间,迁移VM7比迁移VM8产生更多的开销,默认,存储DRS尝试迁移虚拟机或者虚拟机磁盘以接近需求空间。

图99:迁移先决条件-模拟3

image

迁移先决条件过程中在数据存储3至少有可以迁移的虚拟机

  • 第一步:VM8从数据存储3迁移到数据存储2

  • 放置新的虚拟机到数据存储3

在分析了三种查找结果的开销和收益之后,存储DRS将标记数据存储3为最高Goodness考虑因素,警告每个查找结果在迁移后能提供足够的空闲空间,数据存储3的建议将导致最小的虚拟机迁移,和移动最少的数据,所有三种结果都显示出来,最高迁移建议的将放置到清单顶部。

一个置入建议屏幕将被显示,注意的是你能接受只有完成建议设置,在虚拟机发生初始化位置之前,接受建议立即触发迁移先决条件。

负载平衡

当提供负载平衡建议,存储DRS考虑空间和I/O负载:存储DRS生成标准的负载平衡建议

负载平衡主要目的

当空间利用或者I/O响应时间阈值已经被超过,大量空间或者I/O不平衡已经存储,存储DRS生成迁移建议,但是,如果存储DRS不能调整阈值冲突,它将尽可能多的在数据存储之间进行负载平衡

存储DRS设置

数据存储群集设置显示空间和I/O负载的配置选项

图100:存储DRS阈值

image

图101:高级选项

image

存储DRS使用这些设置来决定是否通过迁移平衡负载,每个负载平衡器产生独立的迁移建议,存储DRS在提供统一的建议之前,参考这些建议,接下来的部分,在详述统一建议之前,将测试每个独立的负载平衡器。

空间负载平衡

存储DRS通过数据存储群集中的数据存储分配每个虚拟机的空间利用情况,对空间负载过量的数据存储重复流程,更多的一次迁移将被建议,以减少数据存储的负载,空间平衡工作流如下所示:

图102:空间平衡工作流

image

搜集状态

存储DRS每2小时从vCenter的数据库中重新检索一次虚拟机的状态,虚拟机注册的主机提供vCenter详细的信息(关于虚拟机的相关文件),存储DRS从vCenter的数据库中搜集这些信息来理解每台虚拟机的磁盘利用率和文件结构。

每个ESXi主机在一个周期内,报告数据存储的利用情况,并存储在vCenter的数据库中,存储DRS检测数据库中的利用情况是否在用户设置的阈值以下

图103:空间负载平衡状态输入

image

用户设置阈值—空间利用比阈值—定义VMFS数据存储最大可以接受的空间负载,空间负载是数据存储消耗空间的总量,区分于数据存储的容量

 

空间负载=(数据存储的消耗总量)/(数据存储的容量)

但默认情况下,空间利用设置为80%,表面数据存储的总消耗量不能超过数据存储容量的80%

为了阻止从一个过量的数据存储向另一个接近空间阈值的数据存储进行不必要的迁移,存储DRS使用不同的空间利用率来决定哪个数据存储应该被考虑作为虚拟机的迁移目标。

图104:不同的空间利用率阈值

image

不同的空间利用率表面目标数据存储和源数据存储之间的不同比例,这个不同的阈值默认设置为5%。

成本收益风险分析

与DRS类型,存储DRS使用成本收益值来确定适合迁移的候选人,来决定是否迁移有益于数据存储群集。

收益:在虚拟机迁移出数据存储后可以增加数据存储的空闲空间

成本:VMDK的尺寸和I/O负载的活动性将影响成本计算,一定数量的镜像写入到数据存储,期望的迁移被认为是过量迁移

风险:风险包括当虚拟机配置了精简置备磁盘时产生的迁移建议,存储DRS考虑分配磁盘的空间代替发布数量(配置规格),当决定是否需要负载平衡,当迁移精简置备磁盘,数据增加数率被认为是一个风险,存储DRS尝试阻止迁移数据增长率太快的虚拟机,以避免在不久的将来,引起目标数据存储超过空间利用率的阈值

增长率是通过历史的使用量取样来预估的,最近的取样权重高于很久之前的取样,不久的将来默认定义为30小时,如果收益大于成本,存储DRS考虑迁移建议。

迁移候选的选择

当数据存储超过空间利用阈值,存储DRS将试图移动数据存储上一定数量的MB来调整空间利用的冲突,换句话说,存储DRS尝试选择一个虚拟机,它的规格需要带来数据存储上的空间利用,使得达到空间利用率的阈值。

为了最小化开销,存储DRS偏向于移动断电的虚拟机高过上电的虚拟机,移动断电虚拟机的好处是存储DRS不需要在重新安置虚拟机时追踪VMDK中块的改变,也不需要计算虚拟机工作负载的性能退化。

为了减少更多的开销,如果虚拟机的swap文件被用户存储在某个固定的位置,例如主机缓存SSD数据存储,存储DRS将不会移动这些文件,在评估了状态之后,空间利用和利用率的阈值,存储DRS空间负载平衡计算将选择候选的虚拟机,如果移动,提供最高收益和最低的开销,这些值将导致一个或者多个负载迁移建议,但是,存储DRS不会直接应用或者显示负载平衡建议,它在生成执行建议之前,还要考虑I/O负载平衡建议。

灵活的空间负载平衡

尽管存储DRS负载平衡每8小时运行一次,当数据存储上消耗的空间超过了利用率的阈值,一个负载平衡的过程通过存储DRS被触发,当算法调用需要安排,存储DRS监控数据存储的利用并作出决定,依靠卷和附属的磁盘的填充率,存储DRS决定是否一个负载平衡的进程需要发生,可能阈值已经冲突,但是因为比较慢的填充率,空间负载平衡不必立刻执行,这个行为被介绍来阻止产生不必要的开销。

I/O负载平衡

I/O负载平衡的目标是解决数据存储群集交付数据存储时不平衡的性能,生成一个I/O负载平衡器来迁移,存储DRS运行这个工作量如图105所示,类似于空间负载计算,这个计算运行了全部数据存储的开销和计算可能为每个数据存储开销建议一个或者多个迁移。

图105:I/O负载平衡工作流

image

统计数据收集—性能快照

主要的值通过存储DRS,用来表现每个数据存储上性能的平均延迟,为了解决数据存储群集上不平衡的平均延迟分布,存储DRS请求输入迁移建议,这个请求输入通过vCenter手机各种状态来获取,这些状态通常涉及到性能快照,存储DRS使用性能快照为在线的设备和工作负载进行模型。

在线设备和工作负载模型

为了数据存储群集中的存储资源达到更高以及更高利用效率,存储DRS建立了在线设备和工作负载模型,这个模型帮助存储DRS决定全部设备性能容量和分析数据存储工作负载数据点的延迟的影响。

设备模型

存储DRS捕捉设备的性能来创建它的性能模型,大多数存储设备隐藏着ESXi主机的RAID级别和设备特性,只有现在延迟和磁盘的总容量,重要的是理解不是每个磁盘都一样的,设备的性能能变化,因为广泛多样的配置,例如,一个2TB的磁盘跨越的磁盘组包括32 15K转FC磁盘通常比2TB 跨越8个 7.2K转的SATA磁盘,为了理解和学习每个设备的性能,存储DRS使用工作负载注入,一个参考负载测量未解决的I/O和延迟,成对在一起,他们表面了数据存储的关联性能容量。

注意

请记住存储DRS不需要从存储阵列的任何支持来决定设备的特性,这意味着没有附加第三方软件需要在存储DRS上运行。

工作负载模型

工作负载模型过程在每个虚拟磁盘上创建了一个工作负载值,每个虚拟磁盘,4个数据点被收集:

  • 未解决I/O的数量

  • I/O规格尺寸

  • 读/写速率

  • 漫游百分比

存储DRS分析每个数据点在延迟方面的影响,并返回一个全工作负载模型值。

标准负载

设备值和工作负载值被用来定义数据存储的标准负载,标准负载允许存储DRS基于在工作负载的强度和连接设备的能力上负载平衡建议,每个数据存储标准负载的标准偏差允许存储DRS决定数据存储群集的负载失衡。

图106:I/O负载平衡输入

image

通过前一天的SIOC注入,这个性能热点包括读和写延迟样品捕捉,尽管存储DRS每8小时调用一次,I/O负载存储DRS从前一天每次调用中评估相同的性能数据,实际上,I/O负载平衡将基于全天的状态来建议移动,这将导致I/O负载平衡器每天一次关联迁移。

数据点

为了阻止高峰时刻的数据“污染”,存储DRS不使用全天的状态,代替的是,它聚合一段时间内搜集到的数据点,存储DRS重新查看数据点,如果一天中90%的I/O延迟检测好于阈值,存储DRS考虑数据存储过载了,通过使用90%,存储DRS使用最忙的10%的测量时段,为I/O负载决定提供基准。当工作负载一天内发生了转换,必须搜集足够的信息来对工作负载提供一个准确的评估,因此,存储DRS必须在产生建议之前有16个小时的数据,通过使用至少16小时的数据,存储DRS在同一时间档有足够的数据,所以能对比数据存储的使用情况,例如,周一早上11:00,数据存储1到数据存储2。16小时是一天时间的2/3,存储DRS收到足够的信息来记录当天数据存储的性能,但怎样配合8小时的调用周期呢?

8小时调用周期和16小时有价值的数据,存储DRS使用16小时的数据,但是,这些数据必须捕捉当天的,否则将使用前天的性能快照,怎样合并8小时的调用周期呢?

图107:调用周期一览

image

这意味着每16小时的I/O负载平衡是技术完成,经常在午夜以后,统计被修复和滚动,这被称为滚动事件,首先在滚动事件后调用时间(8:00),使用前一天的24小时的状态,当天16小时候被通过,存储DRS使用新的性能热点和可能基于新的统计的移动评估。

注意

存储DRS一直使用前一天的统计,不管选择调用周期,例如,如果调用周期设置为72小时,存储DRS仍然从前16小时搜集数据

负载平衡建议

I/O延迟阈值为减少负载平衡的延迟定义了触发点,做了这些,存储DRS为每个数据存储定义标准负载,存储DRS在数据存储群集中的数据存储上查看不同的负载,通过I/O失衡阈值对比失衡的容忍值,如果数据存储之间匹配或者超过了容忍失衡的负载不同,存储DRS初始化进程来建议迁移。

图108:I/O失衡阈值

image

I/O失衡阈值通过移动滑块设置成保守到激进,当数据存储失衡非常高,保守的设置导致存储DRS产生迁移建议,同时选择更激进的设置使得存储DRS生成建议来解决很小的失衡。

成本-收益分析:成本收益分析类似于空间负载平衡器的成本收益分析

成本:当自身是独立的虚拟机磁盘文件,成本关联到存储vMotion 的持续。

收益:收益是预估来提高I/O延迟,它会在虚拟机迁移到目标磁盘后到达源磁盘,如果,从收益中减去成本,收益超过0,存储DRS将生产I/O负载平衡建议,如果在源存储存储和目标数据存储之间失衡非常慢,而VMDK文件非常大,这个值会变成0,因为事实评估存储vMotion时间太长,它没有意义去建议移动。

忽略峰值时刻

一旦持续一段时间的不平衡,存储DRS开始生成I/O负载关联建议,通常一天至少10%(或者接近2.4小时),这阻止了存储DRS来自于高峰负载时刻的影响,持续的不平衡时间取决于工作负载和I/O不平衡的阈值。

SIOC延迟和存储DRS延迟

尽管SIOC被存储DRS影响,延迟阈值的设置被从存储DRS中分离,为存储DRS配置延迟阈值,被用来通过存储DRS对数据存储的过载进行分类,并提供建议来阻止瓶颈和热点,为SIOC配置延迟阈值被用来通过SIOC来进行冲突检测和主机节流,基于这些信息来确认每个虚拟机有权收到资源的数量

为了计算延迟值,vSphere 5.1中存储DRS使用了称之为 vmObservedLatency的参数,同时SIOC仅使用设备延迟,vmObservedLatency 是虚拟化层从虚拟机收到I/O请求和从数据存储获得I/O响应之间的时间,通过使用vmObservedLatency,存储DRS还意识到发生在主机上的排队延迟(等待时间)。

为了持续 vmObservedLatency时间,所有的主机连接数据存储群集需要vSphere 5.1或者更高版本,这个值包括vSphere UI界面的SIOC性能图表

为了阻止设置不一致的延迟阈值,vSphere 5.1中的SIOC自动决定每个设备的延迟阈值,数据存储群集上数据存储的默认延迟阈值是基于设备模板,这些阈值符合要磁盘IOPS峰值的90%来支持数据存储,当I/O值开启,SIOC将设置不低于指定I/O延迟的阈值。

基本设计原则

如果手工设置SIOC延迟,请设置SIOC延迟高于存储DRS的延迟阈值,因为存储DRS阈值是关于调整减少或者阻止冲突的,当产生冲突,SIOC延迟是在公正的方式来降低负载

数据存储相关检测

在vSphere 5.1 中I/O负载平衡操作阻止两个性能相关的数据存储上虚拟机的建议迁移,性能关联数据存储时共享了同样的后端资源,例如磁盘,或者RAID或者组,当多个数据存储共享了同一个磁盘,RAID或者组,他们的特性相互关联,例如,如果一个数据存储经历高延迟,其它数据存储分析同样的磁盘可能经历类似的高延迟,由于同样的磁盘服务I/O来自于两个数据存储。

在vSphere 5.0中,存储DRS依赖于VASA来决定是否数据存储被性能关联,在vSphere 5.1中,SIOC注入已经完成扩展,包括数据存储关联检测能力。

它是怎样工作的呢?数据存储在孤立和当并发IO被推向多个数据存储时关联检测评估性能,例如,数据存储1和数据存储2属于同一个数据存储群集,SIOC注入使用一个综合的工作负载来测量孤立中的数据存储1的平均IO延迟,接下来,它测量孤立中的数据存储2的平均IO延迟,第三步在两个同步的数据存储上使用一样的工作负载。

前二步被用来为每个数据存储建立基准线,如果每个数据存储的平均延迟有显著的增加,数据存储被标记为性能关联,如果没有性能关联,一个数据存储的并发IO应该不会影响其它的数据存储,如果两个数据存储有性能关联,并发IO留应该在两个数据存储上增加平均IO延迟。

当两个数据存储被标记为性能关联,存储DRS不会在两个数据存储间生成I/O负载平衡建议,但是存储DRS在两个关联的数据存储解决空间或者调整规则冲突时,仍能生成建议移动虚拟机。

负载平衡建议

统一建议

存储DRS单独生成空间和I/O的负载平衡建议,它将权衡和结合两个建议来提供一个统一的建议。

迁移建议应该不会同用户设置的阈值相冲突,例如,迁移虚拟机去解决I/O负载不平衡,应该不会导致目标数据存储上空间负载平衡的冲突,并请求存储DRS来生成另外一个迁移建议来解决空间不平衡

为了阻止这个场景,存储DRS为每个候选迁移,计算空间和I/O负载平衡,并选择迁移来提高I/O的负载不平衡,同时减少空间平衡,为了解决冲突目标,每次移动授权一个goodness值,来表现提高I/O负载和空间负载不平衡的权重总和。

如果每个数据存储的空间负载值大部分在空间利用率阈值之下,在迁移建议中I/O负载值变成优秀的因素,但是,如果数据存储的空间利用率在阈值之上,空间值收到比I/O负载值更多的权重,同样的,如果I/O过分投入,I/O负载值比空间值收到更多的权重,否则,两个值将接受同等权重。

如果两个阈值都被超过,存储DRS仍不能决定产生迁移建议,例如,没有合法的迁移存在,这些会发生,因为VM关联规则或者因为每次移动的成本比移动的收益的权重更高,例如,移动的收益值能是零,如果迁移大磁盘的虚拟机,只有一种方法来解决非常低的I/O不平衡,在这样的场景中,存储vMotion的时间的开销将超过数据存储群集中I/O负载平衡的提高。

独立迁移建议

独立迁移建议由多个建议组成,且必须按照顺序执行,总的来说,达到积极的结果(负载平衡),它完全可能是配置的部分执行导致负面的结果(糟糕的失衡),存储DRS在负载平衡操作过程中不生成独立迁移建议,但是,存储DRS可能生成多个独立的迁移,从而导致负载平衡的积极结果,这些独立的移动能被按照顺序执行,从而导致提供负载平衡水平,通过分散的建议还可能导致一个提高,但小的积极结果适应于全局设置建议。

注意初始化位置和迁移虚拟磁盘将基于空间可用性,存储DRS计算能导致多个存储vMotion行动,部分未了适应数据存储上的虚拟磁盘,从群集碎片整理可以看出更多信息。

培养时间

在存储DRS首次开启,存储DRS迁移建议将被延迟。正如数据点部分所说的,存储DRS在为迁移建议使用性能快照前,至少需要16小时的数据,除此之外,存储DRS将有一个“预热”期,它决定了已连接存储阵列的能力和活动工作负载的特性,在第一次产生迁移建议,这些导致了延迟,一般来说,在存储DRS的环境中搜集足够多的信息之前,它很保守的产生负载平衡的建议。

调用触发

I/O负载平衡计算每8个小时自动调用,当调用期间内发生超时,存储DRS将计算和生成建议来移动虚拟机,每个建议在下一次存储DRS调用之前不会失效;如果不平衡的情况仍未解决,存储DRS可能再次生成同样的建议。

调用期间能通过用户接口改变设置,范围在60分钟到43200分钟(30天)之间,如果调用周期设置为0,期间负载平衡功能被关闭。

改变默认值使令人沮丧的,不那么频繁间隔可能减少存储迁移的次数,从而降低负载,但可能导致长时间的数据存储群集不平衡,短的间隔将产生额外的负载,提供额外的好处较少。

除了周期计划记录了配置调用的频繁度,当检测到改变,存储DRS不平衡的计算还是执行:

  • 数据存储群集配置升级

  • 数据存储进入维护模式

  • 在初始化位置期间(无负载平衡)

  • 数据存储被迁移到数据存储群集

  • 当运行存储DRS被调用

群集配置改变:如果阈值或者调用周期被改变,存储DRS触发新的不平衡计算

数据存储维护模式:当触发维护模式,存储DRS影响vCenter APIs 去检索清单中注册的虚拟机,存储DRS生成迁移建议,通过自动化级别,它调用清单,直接通过vCenter为用户执行或者显示。

注意

如果有一些错误,通过数据存储进入维护模式而产生,手工覆盖生效,在这种情况下,用户必须取消请求来进入维护模式或者批准建议和手工同意错误。

因为存储DRS退休信息是通过vCenter的API,使用vCenter的API来移动虚拟机的文件,它将只为已在vCenter上注册的虚拟机生成迁移建议,孤立的虚拟机或者其它未关联的文件不会被迁移,当执行迁移建议,vCenter只考虑目标数据存储群集上保留的数据存储,数据存储群集以外的数据存储,不会作为合适的和兼容的目的地址被考虑。

初始化位置:初始化虚拟机或者虚拟磁盘的位置将处罚存储DRS不平衡的计算,当以下情况时:

  • 虚拟机被创建

  • 虚拟机被克隆

  • 虚拟机添加虚拟磁盘

  • 虚拟机或者虚拟磁盘被迁移到数据存储群集

超过阈值:当主机报告数据存储的利用率低于用户设置的阈值,或者当精简置备发布后的空间不足的警报被触发,存储DRS将按照计划运行调用。

调用冻结区域

每一个ESXi主机定期将数据存储的空间利用率状态报告给vCenter,vCenter将利用率的状态与失衡的阈值进行比较,如果利用率超过阈值,计划安排存储DRS调用。

因为ESXi主机报告的时间不统一,vCenter可能保存收到的利用率状态,同时虚拟机被迁移来解决空间利用率冲突,为了尽可能的计算存储DRS安排来自于vCenter关于空间阈值事件的请求,一个调用“冻结区域”的概念在这里介绍,在每次存储DRS调用之后,存储DRS在10分钟之内不能再次执行计划。将来存储DRS调用这些建议的次数;最佳实践将尽可能快的的应用这样的建议。

建议计算

存储DRS执行了多个计算,进而生成迁移建议,存储DRS决定数据存储群集的失衡和选择合适的虚拟机迁移来解决失衡,它监控空间负载和I/O性能,从而生成迁移建议,在生成建议之前,存储DRS先检查冲突条件。

冲突条件调整

冲突条件通过决定是否存储DRS必须建议强制存储vMotion:

  • 调整VMDK-VMDK非关联冲突规则

  • 调整VMDK-VMDK关联冲突规则

  • 调整VM-VM非关联冲突规则

如果没有发现合适的移动来修复冲突,存储DRS将显示原因,为什么不能从错误信息中修复冲突。





本文转自 tim2009 51CTO博客,原文链接:http://blog.51cto.com/virtualbox/1211376,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
算法 前端开发 数据处理
小白学python-深入解析一位字符判定算法
小白学python-深入解析一位字符判定算法
48 0
|
2月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
46 3
|
2月前
|
搜索推荐 算法
插入排序算法的平均时间复杂度解析
【10月更文挑战第12天】 插入排序是一种简单直观的排序算法,通过不断将未排序元素插入到已排序部分的合适位置来完成排序。其平均时间复杂度为$O(n^2)$,适用于小规模或部分有序的数据。尽管效率不高,但在特定场景下仍具优势。
|
24天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
65 4
|
25天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
2月前
|
前端开发 算法 JavaScript
无界SaaS模式深度解析:算力算法、链接力、数据确权制度
私域电商的无界SaaS模式涉及后端开发、前端开发、数据库设计、API接口、区块链技术、支付和身份验证系统等多个技术领域。本文通过简化框架和示例代码,指导如何将核心功能转化为技术实现,涵盖用户管理、企业店铺管理、数据流量管理等关键环节。
|
2月前
|
机器学习/深度学习 算法 PyTorch
Pytorch-SGD算法解析
SGD(随机梯度下降)是机器学习中常用的优化算法,特别适用于大数据集和在线学习。与批量梯度下降不同,SGD每次仅使用一个样本来更新模型参数,提高了训练效率。本文介绍了SGD的基本步骤、Python实现及PyTorch中的应用示例。
46 0
|
15天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
45 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
70 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
57 0