VDS_STORAGE_POOL_PROP 構造体 (vds.h)

[Windows 8とWindows Server 2012以降、Virtual Disk Service COM インターフェイスは Windows Storage Management API に置き換えられます。

記憶域プール オブジェクトのプロパティを定義します。

構文

typedef struct _VDS_STORAGE_POOL_PROP {
  VDS_OBJECT_ID           id;
  VDS_STORAGE_POOL_STATUS status;
  VDS_HEALTH              health;
  VDS_STORAGE_POOL_TYPE   type;
  LPWSTR                  pwszName;
  LPWSTR                  pwszDescription;
  ULONGLONG               ullTotalConsumedSpace;
  ULONGLONG               ullTotalManagedSpace;
  ULONGLONG               ullRemainingFreeSpace;
} VDS_STORAGE_POOL_PROP, *PVDS_STORAGE_POOL_PROP;

メンバー

id

記憶域プール オブジェクトを識別する VDS_OBJECT_ID 値。

status

記憶域プールの状態を指定する VDS_STORAGE_POOL_STATUS 列挙値。

health

記憶域プールの正常性を指定する VDS_HEALTH 列挙値。 このメンバーの有効な値を次に示します。

Windows Server 2008、Windows Vista、Windows Server 2003: VDS_H_DEGRADED はサポートされていません。

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_DEGRADED (11)

type

記憶域プールの種類を指定する VDS_STORAGE_POOL_TYPE 列挙値。

pwszName

記憶域プールの名前を指定する文字列。

pwszDescription

記憶域プールの説明を含む文字列。

ullTotalConsumedSpace

記憶域プールをバックアップする物理記憶域の量 (バイト単位)。 このメンバーの値は、VDS_POOL_ATTRIBUTES構造体の ullProvisionedSpace メンバーの値以下である必要があります。

ullTotalManagedSpace

既に割り当てられている領域を含む、子ストレージ要素 (LUN またはプール) を作成するために割り当てることができる、この記憶域プール内の領域 (バイト単位)。 記憶域プールの構成方法によっては、このメンバーの値が ullTotalConsumedSpace メンバーの値よりもはるかに小さい場合があります。 たとえば、記憶域プールがミラー化されたプールとして構成されている場合、 ullTotalManagedSpace の値は ullTotalConsumedSpace メンバーの値の半分の大きさになります。

ullRemainingFreeSpace

このプールから新しい LUN または子記憶域プールを作成したり、既存の LUN または子記憶域プールを拡張したりするために使用できる最大サイズ。 既存の LUN または子記憶域プールに既に割り当てられている管理領域の量を計算するには、 ullTotalManagedSpace メンバーの値からこのメンバーの値を減算します。

注釈

IVdsStoragePool::GetProperties は、記憶域プール オブジェクトのプロパティを報告するためにこの構造体を返します。

次の例は、 ullTotalConsumedSpaceullTotalManagedSpaceおよび ullRemainingFreeSpace メンバーがどのように連携するかを示しています。

例 1

それぞれ 1 TB のドライブが 2 つあるとします。 さらに、次のことを行うとします。
  1. 記憶域プールをミラー プールとして作成します。
  2. サイズが 200 GB の LUN を作成します。

ullTotalConsumedSpace = 2 TB。 これは、物理記憶域または物理ディスクによってサポートされる記憶域プール領域の量です。 プールから LUN を作成しても、この数は変更されません。

ullTotalManagedSpace = 1 TB。 これは、このプールから作成できる LUN または記憶域プールの最大サイズです。 プールの種類は 2 つのプレックスのみを含むミラーであるため、1 TB しか使用できません。

メモ プールの種類が RAID5 の場合、 ullTotalManagedSpace は (N-1)/N * ullTotalConsumedSpaceになります。N は列の数です。 たとえば、5 つのドライブと 5 列の 場合、ullTotalManagedSpace は (5-1)/5 * ullTotalConsumedSpace または 1.6 TB になります。

 

ullRemainingFreeSpace = 800 GB (1 TB – 200 GB)。200 GB が LUN に既に割り当てられているためです。

(ullTotalManagedSpace - ullRemainingFreeSpace)は、このプールから作成された LUN とプールに割り当てられる管理領域の量です。 この例では、 ullTotalManagedSpace - ullRemainingFreeSpace = 200 GB です。

例 2

それぞれ 1 TB のドライブが 2 つあるとします。 さらに、次のことを行うとします。
  1. 記憶域プールをミラー プールとして作成します。
  2. サイズが 10 TB のシン プロビジョニング LUN を作成します。

ullProvisionedSpace = 10 TB。 これは、シン プロビジョニングされたプールにのみ適用されます。 これは、プール用にプロビジョニングされた合計領域です。 プールによって消費される合計領域は、プールにプロビジョニングされた合計領域以下です。

ullTotalConsumedSpace = 2 TB。

ullTotalManagedSpace = 1 TB。

ullRemainingFreeSpace = 1 TB から、LUN を現在バックアップしているマネージド 領域の量を差し引いた値。

メモ LUN のサイズは 10 TB ですが、LUN をサポートするマネージド領域は 10 GB ほど少ない場合があります。その場合、ミラー化された LUN をバックアップする消費領域は 20 GB になります。

 

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header vds.h

こちらもご覧ください

IVdsStoragePool::GetProperties