다음을 통해 공유


MSFT_StoragePool 클래스의 CreateVirtualDisk 메서드

스토리지 풀의 리소스를 사용하여 가상 디스크를 만듭니다.

구문

UInt32 CreateVirtualDisk(
  [in]  String              FriendlyName,
  [in]  UInt64              Size,
  [in]  Boolean             UseMaximumSize,
  [in]  UInt16              ProvisioningType,
  [in]  String              ResiliencySettingName,
  [in]  UInt16              Usage,
  [in]  String              OtherUsageDescription,
  [in]  UInt16              NumberOfDataCopies,
  [in]  UInt16              PhysicalDiskRedundancy,
  [in]  UInt16              NumberOfColumns,
  [in]  Boolean             AutoNumberOfColumns,
  [in]  UInt64              Interleave,
  [in]  Boolean             IsEnclosureAware,
  [in]  String              PhysicalDisksToUse[],
  [in]  String              StorageTiers[],
  [in]  UInt64              StorageTierSizes[],
  [in]  UInt64              WriteCacheSize,
  [in]  Boolean             AutoWriteCacheSize,
  [in]  Boolean             RunAsJob,
  [out] String              CreatedVirtualDisk,
  [out] MSFT_StorageJob REF CreatedStorageJob,
  [out] String              ExtendedStatus
);

매개 변수

FriendlyName [in]

가상 디스크의 이름입니다.

친숙한 이름은 설명이 필요하지만 고유할 필요는 없습니다. 일부 스토리지 풀은 가상 디스크를 만드는 동안 친숙한 이름을 설정할 수 없습니다. 스토리지 풀이 이를 지원하지 않는 경우 가상 디스크 만들기는 여전히 성공해야 하지만 가상 디스크에는 다른 이름이 할당되어 있을 수 있습니다.

이 매개 변수는 필수이며 NULL일 수 없습니다.

크기 [in]

가상 디스크의 원하는 크기(바이트)를 나타냅니다. 일부 스토리지 하위 시스템은 크기를 할당 단위 크기의 배수로 반올림합니다. 출력에서 이 매개 변수는 생성된 가상 디스크의 실제 크기를 나타냅니다. UseMaximumSizeTRUE로 설정된 경우에는 이 매개 변수를 사용할 수 없습니다.

UseMaximumSize [in]

TRUE인 경우 이 매개 변수는 이 스토리지 풀의 사용 가능한 리소스를 고려할 때 가능한 가장 큰 가상 디스크를 만들도록 스토리지 배열에 지시합니다. Size 매개 변수가 설정된 경우 이 매개 변수를 사용할 수 없습니다.

ProvisioningType [in]

가상 디스크에 대한 프로비전 유형을 지정합니다.

의미
알 수 없음 0 프로비전 유형을 알 수 없습니다. 이는 이 정보를 사용할 수 없거나 스토리지 하위 시스템이 독점 할당 방법을 사용한다는 의미일 수 있습니다.
1 가상 디스크에 대한 스토리지는 요청 시 할당됩니다.
2 수정됨 가상 디스크의 스토리지는 디스크를 만들 때 할당됩니다.

ResiliencySettingName [in]

이 가상 디스크의 템플릿으로 사용할 복원력 설정입니다. 이 매개 변수의 값은 특정 MSFT_ResiliencySetting 개체의 Name 속성에 해당해야 합니다. 이 스토리지 풀과 연결된 복원력 설정만 사용할 수 있습니다.

사용량 [in]

가상 디스크의 용도를 지정합니다.

미리 정의된 설명 또는 사용자 지정 설명을 지정할 수 있습니다. 미리 정의된 설명을 지정하려면 기타 이외의 값을 사용합니다.

사용자 지정 설명을 지정하려면 Other 를 사용하고 OtherUsageDescription 속성에 NULL이 아닌 값을 지정합니다.

기타 (1)

무제한 (2)

ComputerSystem(블록 서버)용으로 예약됨 (3)

복제 서비스에 의해 예약됨 (4)

Reserved by Migration Services (5)

로컬 복제본 원본 (6)

원격 복제본 원본 (7)

로컬 복제본 대상 (8)

원격 복제본 대상 (9)

로컬 복제본 원본 또는 대상 (10)

원격 복제본 원본 또는 대상 (11)

델타 복제본 대상 (12)

요소 구성 요소 (13)

풀 기여자로 예약 됨(14)

복합 볼륨 멤버 (15)

Composite VirtualDisk 멤버 (16)

스파링 예약 (17)

OtherUsageDescription [in]

새 가상 디스크에 대한 공급업체별 사용량입니다. 이 매개 변수는 Usage 속성이 Other로 설정된 경우에만 지정할 수 있습니다.

NumberOfDataCopies [in]

가상 디스크에 대해 유지 관리할 전체 데이터 복사본 수를 지정합니다.

지정된 경우 이 값은 ResiliencySettingName에 지정된 복원력 설정에서 상속된 NumberOfDataCopiesDefault를 재정의합니다.

PhysicalDiskRedundancy [in]

데이터 손실이 발생하기 전에 가상 디스크에서 견딜 수 있어야 하는 실제 디스크 오류 수를 지정합니다. 지정된 경우 이 값은 ResiliencySettingName에 지정된 복원력 설정에서 상속된 PhysicalDiskRedundancyDefault를 재정의합니다.

NumberOfColumns [in]

데이터를 스트라이프해야 하는 기본 실제 디스크의 수를 지정합니다. 지정된 경우 이 값은 ResiliencySettingName에 지정된 복원력 설정에서 상속된 NumberOfColumnsDefault를 재정의합니다.

AutoNumberOfColumns [in]

TRUE인 경우 이 필드는 스토리지 공급자(또는 하위 시스템)에게 가상 디스크에 가장 적합한 열 수로 결정되는 열을 자동으로 선택하도록 지시합니다. 이 필드가 TRUE이면 NumberOfColumns 매개 변수는 NULL이어야 합니다.

인터리브 [in]

일반적인 스트라이프 기반 복원력 설정에서 스트립에 대해 수행해야 하는 바이트 수를 지정합니다. 스트립은 하나의 실제 디스크에 있는 스트라이프 부분의 크기로 정의됩니다. 따라서 인터리브 * NumberOfColumns 는 사용자 데이터의 한 줄무늬 크기를 생성합니다.

이 매개 변수를 지정하면 이 값은 ResiliencySettingName에 지정된 복원력 설정에서 상속된 InterleaveDefault를 재정의합니다.

IsEnclosureAware [in]

이 가상 디스크에 대한 할당 동작을 결정합니다. 엔클로저 인식 가상 디스크는 중복성에 사용할 실제 디스크를 지능적으로 선택합니다. TRUE인 경우 가상 디스크는 서로 다른 엔클로저의 실제 디스크를 사용하여 두 개 이상의 물리적 엔클로저 간의 내결함성 균형을 맞추려고 시도합니다.

PhysicalDisksToUse [in]

이 매개 변수에 실제 디스크 목록이 포함된 경우 이 가상 디스크의 스토리지 할당은 목록의 실제 디스크로 제한됩니다. 이러한 실제 디스크는 이미 이 스토리지 풀에 추가되어야 합니다.

StorageTiers [in]

이 가상 디스크의 스토리지 계층. 배열의 각 요소는 MSFT_StorageTier 개체입니다.

StorageTierSizes [in]

스토리지 계층의 크기입니다.

WriteCacheSize [in]

가상 디스크의 쓰기 캐시 크기입니다.

AutoWriteCacheSize [in]

공급자 가 자동 쓰기 캐시 크기를 선택해야 하는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

RunAsJob [in]

TRUE이면 요청이 서비스에 오래 걸리는 경우 이 메서드는 CreatedStorageJob 매개 변수를 사용합니다. 작업을 추적하기 위해 스토리지 작업을 만든 경우 이 메서드는 메서드 매개 변수 Checked - Job Started를 반환합니다.

참고

RunAsJobTRUE인 경우에도 이 메서드는 충분한 시간 내에 완료된 경우에도 결과를 반환할 수 있습니다.

FALSE 또는 NULL인 경우 이 메서드는 호출에 대한 클라이언트의 메서드에 의해 결정되는 기본 WMI 비동기 동작을 따릅니다. 즉, 달리 요청하지 않는 한 동기적입니다.

CreatedVirtualDisk [out]

이 메서드가 정상적으로 실행되고(RunAsJobFALSE로 설정됨) 가상 디스크가 성공적으로 만들어지면 MSFT_VirtualDisk 개체를 받습니다.

CreatedStorageJob [out]

RunAsJobTRUE로 설정되어 있고 이 메서드를 실행하는 데 시간이 오래 걸리는 경우 이 매개 변수는 장기 실행 작업을 추적하는 데 사용되는 스토리지 작업 개체에 대한 참조를 받습니다.

ExtendedStatus [out]

포함된 MSFT_StorageExtendedStatus 개체를 포함하는 문자열입니다.

이 매개 변수를 사용하면 스토리지 공급자가 확장(구현별) 오류 정보를 반환할 수 있습니다.

반환 값

성공 (0)

지원되지 않음 (1)

지정되지 않은 오류 (2)

시간 제한 (3)

실패( 4)

잘못된 매개 변수 (5)

메서드 매개 변수 선택됨 - 작업 시작 됨(4096)

크기가 지원되지 않음 (4097)

여유 공간이 부족 함(40000)

액세스 거부됨 (40001)

작업을 완료하는 데 충분한 리소스가 없습니다. (40002)

Size 또는 UseMaximumSize 매개 변수를 사용하여 크기를 지정해야 합니다. 이러한 매개 변수 중 하나만 한 번에 지정할 수 있습니다. (40005)

스토리지 공급자에 연결할 수 없습니다. (46000)

스토리지 공급자는 스토리지 하위 시스템에 연결할 수 없습니다. (46001)

이 스토리지 개체에 대해 장애 조치(failover) 클러스터링 사용할 수 없습니다. (46008)

이 하위 시스템은 지정된 프로비저닝 형식의 가상 디스크 만들기를 지원하지 않습니다. (47001)

이 작업은 기본 스토리지 풀에서 지원되지 않습니다. (48000)

스토리지 풀은 특별한 용도로만 예약되어 있습니다. (48001)

지정된 복원력 설정은 이 스토리지 풀에서 지원되지 않습니다. (48002)

스토리지 풀에 지정된 가상 디스크 구성을 만드는 데 실제 디스크가 충분하지 않습니다. (48004)

스토리지 풀의 상태 또는 작동 상태 허용하지 않으므로 작업을 완료할 수 없습니다. (48006)

스토리지 풀의 구성이 읽기 전용이므로 작업을 완료할 수 없습니다. (48007)

크기 정보(Size 또는 UseMaximumSize 매개 변수) 또는 계층 정보(StorageTiers 및 StorageTierSizes 매개 변수)를 지정해야 하지만 크기 정보 및 계층 정보는 지정하지 않아야 합니다. (48010)

스토리지 풀에 자동 할당 드라이브를 찾을 수 없습니다. (48011)

해당 이름의 복원력 설정이 없습니다. (49000)

NoSinglePointOfFailure 값은 지원되지 않습니다. (49001)

PhysicalDiskRedundancy 값이 지원되는 값 범위를 벗어났습니다. (49002)

NumberOfDataCopies 값이 지원되는 값 범위를 벗어났습니다. (49003)

ParityLayout 값이 지원되는 값 범위를 벗어났습니다. (49004)

Interleave 값이 지원되는 값 범위를 벗어났습니다. (49005)

NumberOfColumns 값이 지원되는 값 범위를 벗어났습니다. (49006)

WriteCacheSize 값이 지원되는 값 범위를 벗어났습니다. (50005)

지정된 실제 디스크 중 하나는 이 작업에서 지원되지 않습니다. (51000)

작업을 성공적으로 완료할 수 있는 실제 디스크가 충분하지 않습니다. (51001)

설명

이 메서드는 스토리지 하위 시스템의 SupportsVirtualDiskCreation 속성이 TRUE로 설정된 경우에만 사용할 수 있습니다. FALSE로 설정된 경우 이 메서드는 MI_RESULT_NOT_SUPPORTED 실패합니다.

이 메서드는 원시 풀에 대해 지원되지 않습니다.

이 메서드는 FriendlyNameSize 만 지정하면 됩니다. Size 매개 변수를 통해 크기를 명시적으로 지정하거나 UseMaximumSize 매개 변수를 사용하여 스토리지 풀에서 사용 가능한 최대 공간을 사용하도록 지시할 수 있습니다. FriendlyNameSize는 모두 하드 요구 사항이 아닌 목표로 처리됩니다. 예를 들어 모든 SMI-S 기반 배열이 사용자 지정 이름을 지원할 수 있는 것은 아니지만 가상 디스크 만들기는 여전히 성공합니다. 지정된 크기를 달성하지 못하면 가상 디스크에 사용되는 실제 크기가 out 매개 변수 구조로 반환됩니다.

이 가상 디스크의 사용량은 UsageOtherUsageDescription 매개 변수를 사용하여 설정할 수 있습니다. OtherUsageDescription에 대한 값이 지정되면 사용량을 1 - '기타'로 설정해야 합니다. 그렇지 않으면 오류가 반환됩니다.

기본적으로 이 가상 디스크에 적용되는 복원력 설정은 스토리지 풀의 ResiliencySettingNameDefault 속성에 지정된 대로 됩니다. 이는 ResiliencySettingName 매개 변수를 사용하여 재정의할 수 있습니다. 여기에 지정된 이름은 이 스토리지 풀과 연결된 복원력 설정에 해당해야 합니다. 다른 값은 오류가 발생합니다.

복원력 설정의 개별 설정은 NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumnsInterleave 매개 변수를 사용하여 재정의할 수 있습니다. 이러한 매개 변수를 사용하지 않으면 복원력 설정의 기본값이 사용됩니다. 이러한 재정의는 instance 특정 복원력 설정으로 다시 유지되지는 않습니다. 그러나 일부 스토리지 공급자는 이 새 구성을 캡처하기 위해 instance 새 복원력 설정을 만들도록 선택할 수 있습니다. 재정의 매개 변수에 지정된 목표가 범위를 벗어나거나 스토리지 풀에서 지원되지 않는 경우 오류가 반환됩니다.

가상 디스크에 대한 프로비저닝 정책은 복원력 설정과 유사한 방식으로 결정됩니다. ProvisioningType 매개 변수에 기본 설정이 지정되지 않은 경우 정책은 스토리지 풀의 ProvisioningTypeDefault 속성에 의해 결정됩니다. ProvisioningType 매개 변수를 지정하면 기본값이 무시되고 지정된 값이 대신 사용됩니다.

할당은 PhysicalDisksToUse 매개 변수를 통해 추가로 제어할 수 있습니다. 스토리지 관리자가 가상 디스크를 백업할 실제 디스크를 수동으로 선택하려는 특정 시나리오가 있을 수 있습니다. 이 매개 변수를 지정하면 가상 디스크에 대한 데이터는 이 배열의 실제 디스크에만 저장되고 다른 배열에는 저장되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 R2 Windows Server 2012 [데스크톱 앱만 해당]
네임스페이스 Root\Microsoft\Windows\Storage
헤더 Vdssys.h
MOF Storagewmi.mof

추가 정보

MSFT_StoragePool