这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 hspace,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
hspace - Ganeti 的集群空间分析器
概要
空间 {后端选项...} [算法选项...] [请求选项...] [输出
选项...] [-v... | -q]
空间 - 版
后端选项:
{ -m 簇 | -L[ 径 ] | -t 数据文件 | - 模拟 规格 | -I 径 }
算法选项:
[ --最大CPU 占用率 ] [ --最小磁盘 磁盘比率 ] [ -O 名称... ] [ --独立组 ]
请求选项:
[--磁盘模板 模板 ]
[--标准分配 磁盘,内存,CPU ]
[--分层分配 磁盘,内存,CPU ]
输出选项:
[--机器可读[=*选择*] ] [-p[领域]]
商品描述
hspace 计算集群上可以容纳多少额外的实例,同时保持
N+1 状态。
程序将尝试在集群上放置大小相同的实例,直到
点我们没有任何 N+1 可能的分配。 它使用完全相同的分配
算法作为 hail iallocator 插件 分配 模式。
程序的输出设计用于人类消费(默认),或者,当
启用 --machine-readable 选项(下面进一步描述),用于机器
消耗。 在后一种情况下,它旨在解释为外壳片段(或
解析为 键=值 文件)。 扩展输出的选项(例如 -p、-v)将输出
关于 stderr 的附加信息(这样 stdout 仍然是可解析的)。
默认情况下,实例规格将从集群中读取; 选项
--standard-alloc 和 --tiered-alloc 可用于覆盖它们。
以下键在脚本的机器可读输出中可用(所有
前缀为 HTS_):
规格内存, SPEC_DSK, SPEC_CPU, 规格_RQN, SPEC_DISK_TEMPLATE, 规格_SPN
这些代表用于分配的实例模型的规范(
内存、磁盘、CPU、请求的节点、磁盘模板、主轴)。
TSPEC_INI_MEM, TSPEC_INI_DSK, TSPEC_INI_CPU, ...
仅在启用分层模式分配时定义,这些类似于
以上规格,但显示分层分配的初始起始规格。
CLUSTER_MEM, CLUSTER_DSK, CLUSTER_CPU, CLUSTER_NODES, 集群_SPN
这些代表总内存、磁盘、CPU 计数、总节点数和总主轴数
在集群中。
INI_SCORE, FIN_SCORE
这些是初始(当前)和最终集群分数(请参阅 hbal 手册页以了解
有关评分算法的详细信息)。
INI_INST_CNT, FIN_INST_CNT
初始和最终实例计数。
INI_MEM_FREE, FIN_MEM_FREE
集群中的初始和最终总可用内存(但这不
必然意味着可供使用)。
INI_MEM_AVAIL, FIN_MEM_AVAIL
用于在集群中分配的初始和最终总可用内存。 如果
分配冗余实例,新实例可以增加预留内存,因此
这并不一定意味着整个内存都可以用于新的
实例分配。
INI_MEM_RESVD, FIN_MEM_RESVD
初始和最终保留内存(用于冗余/N+1 目的)。
INI_MEM_INST, FIN_MEM_INST
用于实例的初始和最终内存(实际运行时使用的 RAM)。
INI_MEM_OVERHEAD, FIN_MEM_OVERHEAD
初始和最终内存开销,即用于节点本身的内存和
未计算的内存(例如,由于管理程序开销)。
INI_MEM_EFF, HTS_INI_MEM_EFF
初始和最终内存效率,表示为实例内存除以
总记忆。
INI_DSK_FREE, INI_DSK_AVAIL, INI_DSK_RESVD, INI_DSK_INST, INI_DSK_EFF
初始磁盘统计信息,类似于内存统计信息。
FIN_DSK_FREE, FIN_DSK_AVAIL, FIN_DSK_RESVD, FIN_DSK_INST, FIN_DSK_EFF
最终磁盘统计信息,类似于内存统计信息。
INI_SPN_FREE, ..., FIN_SPN_FREE, ..
初始和最终主轴统计数据,类似于内存数据。
INI_CPU_INST, FIN_CPU_安装
实例使用的虚拟 CPU 的初始和最终数量。
INI_CPU_EFF, FIN_CPU_EFF
初始和最终 CPU 效率,表示为虚拟实例数
CPU 除以物理 CPU 总数。
INI_MNODE_MEM_AVAIL, FIN_MNODE_MEM_AVAIL
每个节点的初始和最终最大可用内存。 这不是很有用
作为指标,但可以给出节点状态的印象; 举个例子,
该值限制了仍然可以在
簇。
INI_MNODE_DSK_AVAIL, FIN_MNODE_DSK_AVAIL
像上面一样,但对于磁盘。
特斯佩克 此参数保存可以的规范和实例数对
被创建在 分层 分配 模式。 键的值是一个
以空格分隔的值列表; 每个值的形式
内存、磁盘、vcpu、spindles=count 其中内存、磁盘和 vcpu 是
当前规范,而 count 是可以创建此规范的多少个实例。 一种
此变量的完整值可能是: 4096,102400,2,1 = 225 2560,102400,2,1 = 20
512,102400,2,1 = 21.
KM_USED_CPU, KM_USED_NPU, KM_USED_MEM, KM_USED_DSK
这些代表在计算开始时使用的资源的度量
(仅适用于分层分配模式)。 NPU 值是“标准化”的 CPU 计数,即
虚拟 CPU 的数量除以虚拟与物理的最大比率
的CPU。
KM_POOL_CPU, KM_POOL_NPU, KM_POOL_MEM, KM_POOL_DSK
这些代表分层分配期间分配的总资源
过程。 实际上,它们代表了可随时分配的数量。
KM_UNAV_CPU, KM_POOL_NPU, KM_UNAV_MEM, KM_UNAV_DSK
这些代表剩余的资源(空闲如不可分配或
可自行分配)在分层分配完成后。 他们
更好地代表实际的不可分配资源,因为其他一些资源已经
已经筋疲力尽。 例如,集群可能仍有 100GiB 可用磁盘,但
由于实例没有剩余内存,我们无法分配另一个实例,因此在
导致磁盘空间不可分配。 注意这里的 CPU 代表实例
虚拟 CPU,如果 --最大CPU 选项尚未指定,这将是
-1。
分配使用情况
当前使用情况表示为每个最终划分的初始实例数
实例数。
ALLOC_COUNT 个
分配的实例数(FIN_INST_CNT 和 INI_INST_CNT 之间的增量)。
分配失败*_CNT
对于分配的最后一次尝试(这会增加 FIN_INST_CNT
一,如果成功),这是每次失败的失败原因计数
类型; 当前定义为代表错误的 FAILMEM、FAILDISK 和 FAILCPU
由于没有足够的内存、磁盘和 CPU,以及代表非 N+1 的 FAILN1
我们根本无法在其上分配实例的兼容集群。
ALLOC_FAIL_REASON
大多数失败的原因是上述 FAIL* 字符串之一。
OK 表示计算成功结束的标记,值为“1”。
如果这个键在输出中不存在,则意味着计算失败并且
不应依赖现有的任何值。
许多 INI_/FIN_ 指标也将显示一个 TRL_ 前缀,并表示
分层分配运行结束时的集群状态。
人工输出格式应该是不言自明的,因此不再进一步描述。
配置
可以传递给程序的选项如下:
--磁盘模板 模板
覆盖从集群读取的实例的磁盘模板; 其中一个
应该传入 Ganeti 磁盘模板(例如,plain、drbd 等)。
--主轴使用 主轴
覆盖从集群读取的实例的主轴使用。 该值可以是
0(例如对于使用非常低的 I/O 的实例),但不是负数。 用以分享
存储值被忽略。
--max-cpu=*cpu 比率*
最大虚拟与物理 CPU 比率,作为大于的浮点数
或等于一。 例如,指定 占用率 as 2.5 意味着,对于 4-cpu
机器,最多应允许 10 个虚拟 CPU 用于主要
实例。 值恰好为 XNUMX 意味着不会出现 CPU 超额订阅
(节点本身使用的 CPU 时间除外),低于 XNUMX 的值不会使
感觉,因为这意味着其他资源(例如磁盘)将不会被充分利用
CPU 限制。
--min-disk=*磁盘比率*
剩余的最小可用磁盘空间量,作为浮点数。 为了
例如,指定 磁盘比率 as 0.25 意味着至少四分之一的磁盘
节点上应留有空闲空间。
--独立组
考虑所有组独立。 也就是说,如果一个不是 N+1 快乐的节点是
发现,忽略它的组,但仍然在其他组中进行分配。 默认的
是根本不尝试分配,如果找到了一些不是 N+1 的快乐节点。
--接受现有错误
这是 --independent-groups 的强化形式。 它告诉 hspace 忽略
不存在 N+1 个快乐节点,只在所有其他节点上分配而没有
引入新的 N+1 违规。 请注意,这往往会高估容量,
因为实例仍然必须从现有的非 N+1 快乐节点移开。
-l 轮, --max-length=*轮数*
将实例分配的数量限制为此长度。 这不是很
在实践中很有用,但可用于测试 hspace 本身,或限制
非常大的集群的运行时。
-p, --打印节点
打印节点状态之前和之后,其格式旨在允许用户
了解节点最重要的参数。 请参阅手册页 工具(1)
有关此选项的更多详细信息。
-O 姓名
此选项(可以多次给出)将节点标记为 这一点在线下监测数字化产品的影响方面尤为明显。.
这意味着几件事:
· 实例不会被放置在这些节点上,即使是暂时的; 例如 更换
小学 如果辅助节点离线,则移动不可用,因为此移动
需要故障转移。
· 这些节点不会被计入分数计算(除了
离线节点上的实例百分比)
请注意,该算法还会将报告的任何节点标记为离线
像这样的 RAPI,或者有“?” 在任何数字字段中的基于文件的输入中。
-S 文件名, --save-cluster=*文件名*
如果给定,则分配结束时集群的状态将保存到文件中
命名 文件名.alloc,如果启用了分层分配,则分层后的状态
分配将被保存到 文件名.分层. 这允许重新馈送集群
状态到 hspace 本身(具有不同的参数)或例如 hbal,通过
-t 选项。
-t 数据文件, --text-data=*数据文件*
后端规范:保存节点和实例信息的文件名
(如果不是通过 RAPI 或 LUXI 收集)。 这个或其他后端之一必须是
被选中。 该选项在手册页中描述 工具(1)。
-m 簇
后端规范:直接从后端收集数据 簇 作为参数给出
通过 RAPI。 该选项在手册页中描述 工具(1)。
-L [径]
后端规范:直接从主守护进程收集数据,这将是
通过 LUXI(内部 Ganeti 协议)联系。 该选项在
手册页 工具(1)。
- 模拟 描述
后端规范:类似于 -t 选项,这允许覆盖集群
具有模拟集群的数据。 有关描述的详细信息,请参阅手册页
工具(1)。
--标准分配 磁盘,内存,CPU
此选项会覆盖从集群读取的实例大小
分配模式,我们简单地分配相同、固定大小的实例,直到
集群空间不足。
给出的规格类似于 - 模拟 选项,它持有:
· 实例的磁盘大小(可以使用的单位)
· 实例的内存大小(可以使用的单位)
· 实例的vcpu计数
一个示例描述是 100G,4克,2 描述一个实例规范
100GB 磁盘空间、4GiB 内存和 2 个 VCPU。
--分层分配 磁盘,内存,CPU
此选项会覆盖 分层 分配模式。 在这
模式,算法从给定的规范开始分配,直到有
没有更多的空间; 然后它降低规范并尝试分配
再次。 减少是在分配期间最后失败的指标上完成的。 这
参数应与 --standard-alloc 具有相同的格式。
还要注意,正常分配和分层分配是独立的,并且
都从初始集群状态开始; 因此,这些的实例计数
两种模式彼此不相关。
--机器可读[=*选择*]
默认情况下,程序的输出是“人类可读”的格式,即文本
说明。 通过传递此标志,您可以启用 (--machine-readable 或
--machine-readable=yes) 或显式禁用 (--machine-readable=no) 机器
上面描述的可读格式。
-v, --详细
增加输出详细程度。 每次使用此选项都会增加
冗长(目前超过 2 没有意义)来自默认的 XNUMX。
-q, - 安静的
降低输出详细程度。 每次使用此选项都会减少
冗长(小于零没有意义)来自默认的一。
-V, - 版
只需显示程序版本并退出即可。
单位
默认情况下,所有接受单位的选项都使用兆字节。 使用小写字母 m,
g 和 t (或它们更长的等价物 MIB, 像, TIB,对于哪种情况无关紧要)
可以选择显式二进制单位。 可以使用 SI 系统中的单位选择
的大写字母 M, G 和 T (或它们更长的等价物 MB, GB, TB,为此
大小写无关紧要)。
有关 SI 和二进制系统之间差异的更多详细信息,请参阅
单位(7) 手册页。
退出 状态
命令的存在状态将为零,除非由于某种原因算法致命
失败(例如错误的节点或实例数据)。
使用 onworks.net 服务在线使用 hspace