zoukankan      html  css  js  c++  java
  • 通过 vSphere WS API 获取 vCenter Datastore Provisioned Space 置备空间

    目录

    Provisioned Space & Used Space

    Provisioned Space & Used Space 是 Datastore 中的概念,通过 vSphere Client 即可查看。其中 Provisioned Space 被翻译成 “置备空间”,实在令人费解,下面先简单介绍一下 Provisioned Space 的基本概念。

    官方文档是这么描述的:Total allocated space that the virtual machine can commit up to. Includes vmdk, swap, snapshot, and other virtual machine files such as NVRAM, configuration files, and logs. This metric includes uncommitted space.

    可见,置备空间并非单纯的指代 “预期分配容量”,还包含了 vmdk, swap, snapshot, NVRAM, configuration files, and logs 等可能会消耗存储空间的 “空间”。这就是虚拟磁盘的置备空间会比 “预期分配容量” 稍大的原因,所以我更愿意将置备空间称之为 “实际已分配空间”。

    当 Datastore 存在 Thin Provision 类型虚拟磁盘时,就会出现 Provisioned Space 与 Used Space 不一致的情况。而 Lazy Zeroed Thick Provision 和 Eager Zeroed Thick Provision 类型虚拟磁盘的 Provisioned Space 和 Used Space 通常是保持一致的,因为 Thick Provision 类型虚拟磁盘会马上将需求的所有磁盘空间都占用掉。

    在这里插入图片描述

    e.g.

    • aju-tst-thin-p 虚拟机使用了 100GB Thin Provision 类型磁盘,其 Provisioned Space = 102.18GB,Used Space = 2.18 GB;
    • aju-tst-thick-p 虚拟机使用了 100GB Lazy Zeroed Thick Provision 类型磁盘,其 Provisioned Space = Used Space = 104.18GB,Eager Zeroed Thick Provision 类型磁盘同理。

    Provisioned Space 的计算方式

    通过 vSphere WS API 我们可以轻易的得到 $dstoreSummary.Capacity$dstoreSummary.freeSpace 的数据,但 API 文档并没有直接给出 $dstoreSummary.provisionedSpace 属性参数,好在我们需要通过 $dstoreSummary.uncommitted 来得到它。

    在这里插入图片描述

    Uncommitted Space

    Uncommitted Space is either from Thin-Provisioned VM disks, Snapshots or Linked Clones. Uncommitted space is the difference of how big the disk size is vs. the currently consumed size. Here is a breakdown of a particular example.

    简单来说 Uncommitted space 就是虚拟磁盘 Provisioned Space 与当前 Used Space(实际已使用空间)的差值。

    在理解了 Uncommitted Space 的概念之后,那么我们就可以得到计算 Provisioned Space 的公式:

    $longProvisionedBytes= ($dstoreSummary.Capacity - $dstoreSummary.freeSpace) + $dstoreSummary.uncommitted
    

    NOTE:需要注意的是 uncommitted 是 dstoreSummary data object 的可选属性,当 Datastore 不存在精简置备的 VMDK 时候,uncommitted 属性是不存在的,这是一个需要注意的边界问题。

    扩展:置备率的计算公式

    除此之外,还可以得到 Datastore ProvisionedSpare%(置备率)的计算公式:

    floatProvisionedSpareRatio= ($longProvisionedBytes / $dstoreSummary.Capacity) * 100
    

    通常的,我们建议 floatProvisionedSpareRatio <= 1.5

    相关阅读:

  • 相关阅读:
    cb快捷键
    N的阶乘的长度 V2(斯特林近似)
    最大子序列和(Max Sum ,Super Jumping! Jumping! Jumping! )
    关于莫比乌斯和莫比乌斯反演
    最少拦截系统
    set用法详解
    几种数学公式(环排列 母函数 唯一分解定理 卡特兰数 默慈金数 贝尔数 那罗延数)
    最小堆算法
    并查集算法
    dijkstra算法演示
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310529.html
Copyright © 2011-2022 走看看