Поделиться через


Метод CreateVirtualDisk класса MSFT_StoragePool

Создает виртуальный диск с использованием ресурсов пула носителей.

Синтаксис

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]

Указывает требуемый размер виртуального диска (в байтах). Обратите внимание, что некоторые подсистемы хранения округлят размер до кратного размера единицы выделения. В выходных данных этот параметр указывает фактический размер созданного виртуального диска. Этот параметр нельзя использовать, если параметр UseMaximumSize имеет значение TRUE.

UseMaximumSize [in]

Если задано значение TRUE, этот параметр указывает массиву хранилища создать максимально возможный виртуальный диск с учетом доступных ресурсов этого пула носителей. Этот параметр нельзя использовать, если задан параметр Size .

ProvisioningType [in]

Указывает тип подготовки для виртуального диска.

Значение Значение
Неизвестно 0 Тип подготовки неизвестен. Это может означать, что эти сведения недоступны или подсистема хранения использует собственный метод выделения.
Тонкий 1 Хранилище для виртуального диска выделяется по требованию.
Исправлено 2 Хранилище для виртуального диска выделяется при создании диска.

ResiliencySettingName [in]

Требуемый параметр устойчивости, используемый в качестве шаблона для этого виртуального диска. Значение этого параметра должно соответствовать свойству Name конкретного объекта MSFT_ResiliencySetting. Можно использовать только параметры устойчивости, связанные с этим пулом носителей.

Использование [в]

Указывает предполагаемое использование виртуального диска.

Можно указать предопределенное или пользовательское описание. Чтобы указать предопределенное описание, используйте значение, отличное от Other.

Чтобы указать пользовательское описание, используйте Другое и укажите значение, отличное от NULL, для свойства OtherUsageDescription .

Другое (1)

Неограниченное (2)

Зарезервировано для ComputerSystem (блочный сервер) (3)

Зарезервировано службами репликации (4)

Зарезервировано службой Миграции (5)

Источник локальной реплики (6)

Источник удаленной реплики (7)

Целевая локальная реплика (8)

Цель удаленной реплики (9)

Источник локальной или целевой реплики (10)

Источник или цель удаленной реплики (11)

Целевой объект разностной реплики (12)

Компонент элемента (13)

Зарезервировано в качестве участника пула (14)

Составной элемент тома (15)

Составной элемент VirtualDisk (16)

Зарезервировано для sparing (17)

OtherUsageDescription [in]

Использование нового виртуального диска поставщиком. Этот параметр можно указать, только если свойству Usage присвоено значение Другое.

NumberOfDataCopies [in]

Указывает количество полных копий данных для виртуального диска.

Если этот параметр указан, это значение переопределит свойство NumberOfDataCopiesDefault , которое было бы унаследовано от параметра устойчивости, заданного параметром ResiliencySettingName.

PhysicalDiskRedundancy [in]

Указывает количество сбоев физического диска, которые должен выдержать виртуальный диск до потери данных. Если этот параметр указан, это значение переопределит PhysicalDiskRedundancyDefault , который был бы унаследован от параметра устойчивости, заданного параметром ResiliencySettingName.

NumberOfColumns [in]

Указывает количество базовых физических дисков, по которым должны быть чередуются данные. Если этот параметр задан, это значение переопределит свойство NumberOfColumnsDefault , которое было бы унаследовано от параметра устойчивости, заданного параметром ResiliencySettingName.

AutoNumberOfColumns [in]

Если задано значение TRUE, это поле предписывает поставщику хранилища (или подсистеме) автоматически выбрать то, что определяется как наилучшее количество столбцов для виртуального диска. Если это поле имеет значение TRUE, параметр NumberOfColumns должен иметь значение NULL.

Interleave [in]

Указывает количество байтов, которое должно быть задано для полосы в общих параметрах устойчивости на основе чередовки. Полоса определяется как размер части полосы, лежащей на одном физическом диске. Таким образом , Interleave * NumberOfColumns будет получать размер одной полосы пользовательских данных.

Если этот параметр указан, это значение переопределит InterleaveDefault , которое было бы унаследовано от параметра устойчивости, заданного параметром ResiliencySettingName.

IsEnclosureAware [in]

Определяет поведение выделения для этого виртуального диска. Виртуальные диски с поддержкой корпуса будут интеллектуально выбирать физические диски для их избыточности. Если задано значение TRUE, виртуальный диск попытается использовать физические диски из разных корпусов, чтобы сбалансировать отказоустойчивость между двумя или более физическими корпусами.

PhysicalDisksToUse [in]

Если этот параметр содержит список физических дисков, выделение хранилища этого виртуального диска ограничивается физическими дисками в списке. Эти физические диски уже должны быть добавлены в этот пул носителей.

StorageTiers [in]

Уровни хранилища на этом виртуальном диске. Каждый элемент массива является объектом MSFT_StorageTier .

StorageTierSizes [in]

Размеры уровней хранилища.

WriteCacheSize [in]

Размер кэша записи на виртуальном диске.

AutoWriteCacheSize [in]

ЗНАЧЕНИЕ TRUE , если поставщик должен получить размер кэша автоматической записи; в противном случае — FALSE.

RunAsJob [in]

Если задано значение TRUE, этот метод использует параметр CreatedStorageJob , когда запрос выполняется долго. Если задание хранилища создано для отслеживания операции, этот метод возвращает параметры метода Checked — Job Started.

Примечание

Даже если runAsJob имеет значение TRUE, этот метод по-прежнему может возвращать результат, если он был завершен в достаточное время.

Если значение РАВНО FALSE или NULL, этот метод будет следовать асинхронной реакции WMI по умолчанию, определяемой методом клиента для вызова. Другими словами, он является синхронным, если не запрошено иное.

CreatedVirtualDisk [out]

Получает объект MSFT_VirtualDisk , если этот метод выполняется в обычном режиме (с параметром RunAsJob , равным FALSE), и виртуальный диск успешно создан.

CreatedStorageJob [out]

Если параметр RunAsJob имеет значение TRUE и выполнение этого метода занимает много времени, этот параметр получает ссылку на объект задания хранилища, который используется для отслеживания длительной операции.

ExtendedStatus [out]

Строка, содержащая внедренный объект MSFT_StorageExtendedStatus .

Этот параметр позволяет поставщику хранилища возвращать расширенные (зависящие от реализации) сведения об ошибках.

Возвращаемое значение

Успешное выполнение (0)

Не поддерживается (1)

Неустановленная ошибка (2)

Время ожидания (3)

Сбой (4)

Недопустимый параметр (5)

Проверенные параметры метода — задание запущено (4096)

Размер не поддерживается (4097)

Недостаточно свободного места (40000)

Доступ запрещен (40001)

Недостаточно ресурсов для завершения операции. (40002)

Необходимо указать размер с помощью параметра Size или UseMaximumSize. Одновременно можно указать только один из этих параметров. (40005)

Не удается подключиться к поставщику хранилища. (46000)

Поставщик хранилища не может подключиться к подсистеме хранения. (46001)

Не удалось включить кластеризация отработки отказа для этого объекта хранилища. (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.

Этот метод не поддерживается для первичных пулов.

Для этого метода необходимо указать только FriendlyName и Size . Размеры можно указать явным образом с помощью параметра Size или использовать максимальное доступное пространство из пула носителей с помощью параметра UseMaximumSize . FriendlyName и Size рассматриваются как цели, а не как жесткие требования. Например, не все массивы на основе SMI-S могут поддерживать пользовательские понятные имена, однако создание виртуального диска по-прежнему будет успешным. Если указанный размер не достигнут, фактический размер, используемый для виртуального диска, будет возвращен в структуре параметра out.

Использование этого виртуального диска можно задать с помощью параметров Usage и OtherUsageDescription . Если задано значение OtherUsageDescription , параметр Usage должен иметь значение 1 – "Другое", в противном случае будет возвращена ошибка.

По умолчанию параметр устойчивости, применяемый к этому виртуальному диску, будет иметь значение, указанное в свойстве ResiliencySettingNameDefault пула носителей . Это можно переопределить с помощью параметра ResiliencySettingName . Обратите внимание, что указанное здесь имя должно соответствовать параметру устойчивости, связанному с этим пулом носителей. Любое другое значение приведет к ошибке.

Отдельные параметры устойчивости можно переопределить с помощью параметров NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns и Interleave . Если эти параметры не используются, будут использоваться значения по умолчанию из параметра устойчивости. Эти переопределения не будут сохраняться обратно в конкретный экземпляр параметра устойчивости; однако некоторые поставщики хранилища могут создать новый экземпляр параметра устойчивости для записи этой новой конфигурации. Если какая-либо из целей, указанных в параметрах переопределения, выходит за пределы диапазона или не поддерживается пулом носителей, возвращается ошибка.

Политика подготовки для виртуального диска определяется аналогично параметру устойчивости. Если в параметре ProvisioningType не указано никаких предпочтений, политика определяется свойством ProvisioningTypeDefault пула носителей. Если указан параметр ProvisioningType , значение по умолчанию игнорируется и вместо него будет использоваться указанное значение.

Выделение ресурсов можно дополнительно контролировать с помощью параметра PhysicalDisksToUse . В некоторых сценариях администратору хранилища необходимо вручную выбрать, какие физические диски следует использовать для резервного копирования виртуального диска. Если указан этот параметр, данные для виртуального диска будут храниться только на физических дисках в этом массиве, а не на других.

Требования

Требование Значение
Минимальная версия клиента Windows 8.1 [только классические приложения]
Минимальная версия сервера Windows Server 2012 R2 [только классические приложения]
Пространство имен Root\Microsoft\Windows\Storage
Заголовок Vdssys.h
MOF Storagewmi.mof

См. также раздел

MSFT_StoragePool