< Back

New-VirtualDisk

Wed Jan 30, 2019 6:03 pm

NAME New-VirtualDisk



SYNOPSIS

Creates a new virtual disk in the specified storage pool.





SYNTAX

New-VirtualDisk [-StoragePoolFriendlyName] <String[]> [-AllocationUnitSize <UInt64>] [-AutoNumberOfColumns] [-AutoWriteCacheSize] [-CimSession

<CimSession[]>] [-ColumnIsolation {PhysicalDisk | StorageEnclosure | StorageScaleUnit | StorageChassis | StorageRack}] [-FaultDomainAwareness

{PhysicalDisk | StorageEnclosure | StorageScaleUnit | StorageChassis | StorageRack}] [-Interleave <UInt64>] [-IsEnclosureAware <Boolean>] [-MediaType

{HDD | SSD | SCM}] [-NumberOfColumns <UInt16>] [-NumberOfDataCopies <UInt16>] [-NumberOfGroups <UInt16>] [-OtherUsageDescription <String>]

[-PhysicalDiskRedundancy <UInt16>] [-PhysicalDisksToUse <CimInstance[]>] [-ProvisioningType {Unknown | Thin | Fixed}] [-ReadCacheSize <UInt64>]

[-ResiliencySettingName <String>] [-Size <UInt64>] [-StorageTiers <CimInstance[]>] [-StorageTierSizes <UInt64[]>] [-ThrottleLimit <Int32>] [-Usage

{Other | Unrestricted | ReservedForComputerSystem | ReservedForReplicationServices | ReservedForMigrationServices | LocalReplicaSource |

RemoteReplicaSource | LocalReplicaTarget | RemoteReplicaTarget | LocalReplicaSourceOrTarget | RemoteReplicaSourceOrTarget | DeltaReplicaTarget |

ElementComponent | ReservedAsPoolContributer | CompositeVolumeMember | CompositeVirtualDiskMember | ReservedForSparing}] [-UseMaximumSize]

[-WriteCacheSize <UInt64>] -FriendlyName <String> [<CommonParameters>]



New-VirtualDisk [-AllocationUnitSize <UInt64>] [-AutoNumberOfColumns] [-AutoWriteCacheSize] [-CimSession <CimSession[]>] [-ColumnIsolation {PhysicalDisk

| StorageEnclosure | StorageScaleUnit | StorageChassis | StorageRack}] [-FaultDomainAwareness {PhysicalDisk | StorageEnclosure | StorageScaleUnit |

StorageChassis | StorageRack}] [-Interleave <UInt64>] [-IsEnclosureAware <Boolean>] [-MediaType {HDD | SSD | SCM}] [-NumberOfColumns <UInt16>]

[-NumberOfDataCopies <UInt16>] [-NumberOfGroups <UInt16>] [-OtherUsageDescription <String>] [-PhysicalDiskRedundancy <UInt16>] [-PhysicalDisksToUse

<CimInstance[]>] [-ProvisioningType {Unknown | Thin | Fixed}] [-ReadCacheSize <UInt64>] [-ResiliencySettingName <String>] [-Size <UInt64>]

[-StorageTiers <CimInstance[]>] [-StorageTierSizes <UInt64[]>] [-ThrottleLimit <Int32>] [-Usage {Other | Unrestricted | ReservedForComputerSystem |

ReservedForReplicationServices | ReservedForMigrationServices | LocalReplicaSource | RemoteReplicaSource | LocalReplicaTarget | RemoteReplicaTarget |

LocalReplicaSourceOrTarget | RemoteReplicaSourceOrTarget | DeltaReplicaTarget | ElementComponent | ReservedAsPoolContributer | CompositeVolumeMember |

CompositeVirtualDiskMember | ReservedForSparing}] [-UseMaximumSize] [-WriteCacheSize <UInt64>] -FriendlyName <String> -StoragePoolUniqueId <String[]>

[<CommonParameters>]



New-VirtualDisk [-AllocationUnitSize <UInt64>] [-AutoNumberOfColumns] [-AutoWriteCacheSize] [-CimSession <CimSession[]>] [-ColumnIsolation {PhysicalDisk

| StorageEnclosure | StorageScaleUnit | StorageChassis | StorageRack}] [-FaultDomainAwareness {PhysicalDisk | StorageEnclosure | StorageScaleUnit |

StorageChassis | StorageRack}] [-Interleave <UInt64>] [-IsEnclosureAware <Boolean>] [-MediaType {HDD | SSD | SCM}] [-NumberOfColumns <UInt16>]

[-NumberOfDataCopies <UInt16>] [-NumberOfGroups <UInt16>] [-OtherUsageDescription <String>] [-PhysicalDiskRedundancy <UInt16>] [-PhysicalDisksToUse

<CimInstance[]>] [-ProvisioningType {Unknown | Thin | Fixed}] [-ReadCacheSize <UInt64>] [-ResiliencySettingName <String>] [-Size <UInt64>]

[-StorageTiers <CimInstance[]>] [-StorageTierSizes <UInt64[]>] [-ThrottleLimit <Int32>] [-Usage {Other | Unrestricted | ReservedForComputerSystem |

ReservedForReplicationServices | ReservedForMigrationServices | LocalReplicaSource | RemoteReplicaSource | LocalReplicaTarget | RemoteReplicaTarget |

LocalReplicaSourceOrTarget | RemoteReplicaSourceOrTarget | DeltaReplicaTarget | ElementComponent | ReservedAsPoolContributer | CompositeVolumeMember |

CompositeVirtualDiskMember | ReservedForSparing}] [-UseMaximumSize] [-WriteCacheSize <UInt64>] -FriendlyName <String> -StoragePoolName <String[]>

[<CommonParameters>]



New-VirtualDisk [-AllocationUnitSize <UInt64>] [-AutoNumberOfColumns] [-AutoWriteCacheSize] [-CimSession <CimSession[]>] [-ColumnIsolation {PhysicalDisk

| StorageEnclosure | StorageScaleUnit | StorageChassis | StorageRack}] [-FaultDomainAwareness {PhysicalDisk | StorageEnclosure | StorageScaleUnit |

StorageChassis | StorageRack}] [-Interleave <UInt64>] [-IsEnclosureAware <Boolean>] [-MediaType {HDD | SSD | SCM}] [-NumberOfColumns <UInt16>]

[-NumberOfDataCopies <UInt16>] [-NumberOfGroups <UInt16>] [-OtherUsageDescription <String>] [-PhysicalDiskRedundancy <UInt16>] [-PhysicalDisksToUse

<CimInstance[]>] [-ProvisioningType {Unknown | Thin | Fixed}] [-ReadCacheSize <UInt64>] [-ResiliencySettingName <String>] [-Size <UInt64>]

[-StorageTiers <CimInstance[]>] [-StorageTierSizes <UInt64[]>] [-ThrottleLimit <Int32>] [-Usage {Other | Unrestricted | ReservedForComputerSystem |

ReservedForReplicationServices | ReservedForMigrationServices | LocalReplicaSource | RemoteReplicaSource | LocalReplicaTarget | RemoteReplicaTarget |

LocalReplicaSourceOrTarget | RemoteReplicaSourceOrTarget | DeltaReplicaTarget | ElementComponent | ReservedAsPoolContributer | CompositeVolumeMember |

CompositeVirtualDiskMember | ReservedForSparing}] [-UseMaximumSize] [-WriteCacheSize <UInt64>] -FriendlyName <String> [<CommonParameters>]





DESCRIPTION

The New-VirtualDisk cmdlet creates a new virtual disk in the specified storage pool.





PARAMETERS

-AllocationUnitSize [<UInt64>]

Specifies the allocation unit size to use when create the virtual disk.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-AutoNumberOfColumns [<SwitchParameter>]

Specifies that the number of columns used by the virtual disk should be automatically determined. Columns represent the number of underlying

physical disks across which one stripe of data for a virtual disk is written.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-AutoWriteCacheSize [<SwitchParameter>]

Indicates that the cmdlet sets the size of the write-back cache to 1 GB for all types of storage spaces, which include simple, mirror, and parity,

to create from the pool. If the number or size of the solid-state drives (SSDs) or journal disks in the storage pool is not sufficient and you

specify a value of $True for this parameter, the cmdlet sets the write-back cache size to 0 for simple and mirror spaces, and to 32 MB for parity

spaces.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-CimSession [<CimSession[]>]

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or

Get-CimSession cmdlet. The default is the current session on the local computer.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-ColumnIsolation [<Microsoft.PowerShell.Cmdletization.GeneratedTypes.StoragePool.FaultDomainType>]

Specifies at which level columns within a virtual disk should be isolated from each other. We recommend omitting this parameter and using the

defaults. The acceptable values for this parameter are:



-- PhysicalDisk

-- StorageScaleUnit

-- StorageChassis

-- StorageEnclosure

-- StorageRack



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-FaultDomainAwareness [<FaultDomainType>]

Specifies at what level you want the virtual disk to be fault tolerant. The acceptable values for this parameter are:



-- PhysicalDisk

-- StorageScaleUnit

-- StorageChassis

-- StorageEnclosure

-- StorageRack



For example, specify StorageScaleUnit to store data copies on separate nodes of a Storage Spaces Direct cluster. This cmdlet refers to nodes of a

Storage Spaces Direct cluster as storage scale units because you can expand the scale of the cluster by adding more nodes.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-FriendlyName <String>

Specifies the friendly name for the virtual disk. The friendly name is not required to be unique.



Required? true

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-Interleave [<UInt64>]

Specifies the interleave value to use during the creation of a virtual disk. The interleave value represents the number of bytes that is written to

a single physical disk. Therefore, Interleave * NumberOfColumns yields the size of one stripe of user data.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-IsEnclosureAware [<Boolean>]

Specifies that the virtual disk should use enclosure awareness.



To support deployments that require an added level of fault tolerance, Storage Spaces can associate each copy of data with a particular

just-a-bunch-of-disk (JBOD) enclosure. This capability is known as enclosure awareness. With enclosure awareness, if one enclosure fails or goes

offline, the data remains available in one or more alternate enclosures.



To use enclosure awareness, you must use JBODs that are certified for use with Storage Spaces and you must have a sufficient number of JBODs and

disks to support the resiliency types of the storage spaces you create (generally you????????ll need three or four JBODs). For a list of certified JBODs,

see the Windows Server Catalog. For more information about enclosure awareness, see Storage Spaces Frequently Asked Questions.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-MediaType [<Microsoft.PowerShell.Cmdletization.GeneratedTypes.StoragePool.MediaType>]

Specifies the media type of the storage tier. The cmdlet creates the storage tier for the media type that you specify. The acceptable values for

this parameter are:



-- SSD

-- SCM

-- HDD



Use SCM for storage-class memory such as NVDIMMs.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-NumberOfColumns [<UInt16>]

Specifies the number of columns to use when allocating the virtual disk.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-NumberOfDataCopies [<UInt16>]

Specifies the number of data copies to create. Specify 2 to create a two-way mirror, or 3 to specify a three-way mirror or for dual parity.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-NumberOfGroups [<UInt16>]

specifies the number of groups used by Local Reconstruction Coding (LRC) with a dual parity virtual disk. We recommend omitting this parameter and

using the defaults.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-OtherUsageDescription [<String>]

Specifies an OtherUsageDescription string for the virtual disk. You can use the OtherUsageDescription parameter only if you set the Usage parameter

to Other or do not include the Usage parameter.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-PhysicalDiskRedundancy [<UInt16>]

Specifies the physical disk redundancy value to use during the creation of a virtual disk. This value represents how many failed physical disks the

virtual disk can tolerate without data loss.



-- For two-way mirror spaces, the virtual disk can tolerate 1 failed physical disk without data loss.

-- For three-way mirror spaces, the virtual disk can tolerate 2 failed physical disks without data loss.

-- For single-parity spaces, the virtual disk can tolerate 1 failed physical disk without data loss.

-- For dual-parity spaces the virtual disk can tolerate 2 failed physical disks without data loss.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-PhysicalDisksToUse [<CimInstance[]>]

Specifies an array of one or more PhysicalDisk objects. The PhysicalDisk objects represent the specific physical disks on which to create this

virtual disk.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-ProvisioningType [<ProvisioningType>]

Specifies the type of provisioning. The acceptable values for this parameter are:Fixed, or Thin. You must specify Fixed for storage spaces that use

storage tiers or a clustered storage pool.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-ReadCacheSize [<UInt64>]

This parameter is no longer supported.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-ResiliencySettingName [<String>]

Specifies the resiliency setting, or storage layout, to use for the virtual disk. Acceptable values vary by storage subsystem.



Allowed values for the Windows Storage subsystem are: Simple, Mirror, or Parity. By default, when you specify Mirror, Storage Spaces creates a

two-way mirror, and when you specify Parity, Storage Spaces creates a single-parity space.



To create a three-way mirror space, specify 3 for the NumberofDataCopies parameter or 2 for the PhysicalDiskRedundancy parameter.



To create a dual-parity space, specify 2 for the PhysicalDiskRedundancy parameter and Fixed provisioning for the ProvisioningType parameter.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-Size [<UInt64>]

Specifies the size of the virtual disk to create. The default unit is Bytes; to specify a different unit, enter the size followed by one of the

following unit values, with no spaces: Bytes, KB, MB, GB, or TB.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-StoragePoolFriendlyName <String[]>

Specifies the friendly name of the storage pool in which to create the virtual disk. Enter a friendly name, or use wildcard characters to enter a

name pattern.



Required? true

Position? 1

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-StoragePoolName <String[]>

Specifies the name of the storage pool in which to create the virtual disk. Enter the name of the storage pool provided by the Storage Management

Provider, or use wildcard characters to enter a name pattern.



Required? true

Position? named

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-StoragePoolUniqueId <String[]>

Specifies the ID of the storage pool in which to create the virtual disk Enter an ID or use wildcard characters to enter a pattern.



Required? true

Position? named

Default value none

Accept pipeline input? True (ByPropertyName)

Accept wildcard characters? false



-StorageTiers [<CimInstance[]>]

Specifies an array of storage tiers as a CIMInstance object. The cmdlet adds the storage tiers that you specify to the virtual disk. To obtain a

virtual disk object, use the Get-StorageTier cmdlet.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-StorageTierSizes [<UInt64[]>]

Specifies an array of sizes of the storage tiers that you specify for the StorageTiers parameter.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-ThrottleLimit [<Int32>]

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is

entered, then Windows PowerShell???? calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the

computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-Usage [<Usage>]

Specifies the intended usage of the virtual disk. You can specify one of the predefined descriptions, or use the default value (Other) and instead

use the OtherUsageDescription parameter to specify a custom value.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-UseMaximumSize [<SwitchParameter>]

Creates a virtual disk with the maximimum size possible given the available storage pool space and specified parameters.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



-WriteCacheSize [<UInt64>]

Specifies the size of the write-back cache. The cmdlet creates the write-back cache of the size that you specify when the cmdlet creates the virtual

disk space.



The following describes the behavior of this parameter based on the value that you specify:



-- 1. If you do not specify this parameter, the cmdlet sets the value of the WriteCacheSizeDefault property from the storage pool.



-- 2. The default setting of WriteCacheSizeDefault for a storage pool is Auto, which specifies that Windows Server automatically selects the optimal

write-back cache size for your configuration. You can change the value of WriteCacheSizeDefault to a concrete value at any time.



-- 3. The Auto setting for WriteCacheSize functions as follows:

?? ?? ?? ?? ?? a. If any of the following is true, Auto is set to 1 GB:

i. The storage pool contains at least N drives with enough capacity and you set the Usage parameter to Journal. (N = 1 for simple spaces, N = 2 for

two-way mirror and single parity, N = 3 for three-way mirror and dual parity)

ii. The storage pool contains at least N drives with enough capacity and the media type of the virtual disk is set to SSD (N = 1 for simple spaces,

N = 2 for two-way mirror and single parity, N = 3 for three-way mirror and dual parity)

?? ?? ?? ?? ?? b. Otherwise, Auto is set to 0 (no log) for simple and mirror spaces, and 32 MB for parity spaces.



-- 4. If you specify Auto or 0 (zero) for this parameter and the storage space is not a parity space, the cmdlet verifies that either 3.a.i or

3.a.ii is true. If either 3.a.i or 3.a.ii is not true, you cannot set WriteCacheSize to Auto or 0.

a. The objective of these conditions is to help you avoid scenarios in which you force the creation of a write-back cache in situations that result

in slower performance.



Required? false

Position? named

Default value none

Accept pipeline input? false

Accept wildcard characters? false



<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,

ErrorAction, ErrorVariable, WarningAction, WarningVariable,

OutBuffer, PipelineVariable, and OutVariable. For more information, see

about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).



INPUTS

Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StoragePool

http://msdn.microsoft.com/library/windo ... 30551.aspx





You can use the pipeline operator to pass an MSFT_StoragePool object to the InputObject parameter.



Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_StorageTier

http://msdn.microsoft.com/library/windo ... s.85).aspx





You can use the pipeline operator to pass an array of MSFT_StorageTier objects to the StorageTiers parameter.





OUTPUTS

Microsoft.Management.Infrastructure.CimInstance#ROOT/Microsoft/Windows/Storage/MSFT_VirtualDisk

http://msdn.microsoft.com/library/windo ... 30584.aspx





The New-VirtualDisk cmdlet returns an object that represents the newly created virtual disk.





Example 1: Creating a 100 GB virtual disk using default settings



PS C:\\> New-VirtualDisk -StoragePoolFriendlyName CompanyData -FriendlyName UserData -Size 100GB



This example creates a virtual disk named UserData from the storage pool named CompanyData that is 100GB in size, using the storage pool default

settings for unspecified parameters.





Example 2: Creating a thinly-provisioned mirror



PS C:\\> New-VirtualDisk -StoragePoolFriendlyName CompanyData -FriendlyName DataWarehouse ????????ResiliencySettingName Mirror -Size 42TB -ProvisioningType Thin



This example creates a virtual disk named DataWarehouse, which is 42TB in size, uses the Mirror resiliency setting, and is thinly provisioned.





Example 3: Creating a three-way mirror



PS C:\\> New-VirtualDisk -StoragePoolFriendlyName CompanyData -FriendlyName BusinessCritical -ResiliencySettingName Mirror -NumberOfDataCopies 3 -Size

42TB -ProvisioningType Thin



This example creates a 42 TB thinly-provisioned virtual disk on the Windows Storage subsystem, using the Mirror resiliency setting with three data

copies. This creates a three-way mirror that is capable of tolerating two disk failures).





Example 4: Creating a two-column mirror



PS C:\\> New-VirtualDisk -StoragePoolFriendlyName CompanyData -FriendlyName BusinessCritical -ResiliencySettingName Mirror - -Size 42TB -ProvisioningType

Thin -NumberOfColumns 2



This example creates a thinly-provisioned virtual disk on the Windows Storage subsystem that uses two columns, regardless of how many physical disks are

in the storage pool above the two-disk minimum for a two-way mirror.





Example 5: Create a mirror space with storage tiers



PS C:\\> $SSD = Get-StorageTier -FriendlyName *SSD*

PS C:\\> $HDD = Get-StorageTier -FriendlyName *HDD*

PS C:\\> Get-StoragePool CompanyData | New-VirtualDisk -FriendlyName "UserData01" -ResiliencySettingName "Mirror" ????????StorageTiers $SSD, $HDD

-StorageTierSizes 8GB, 32GB



This example creates a 40 GB fixed provisioning virtual disk on the Windows Storage subsystem. The virtual disk uses the Mirror resiliency setting and

storage tiers to store 8 GB of data on the SSD tier and 32 GB of data on the HDD tier.





Example 6: Create a dual-parity space



PS C:\\>New-VirtualDisk -StoragePoolFriendlyName "CompanyData" -FriendlyName "ArchivalData" -Size 50GB -ProvisioningType Fixed -ResiliencySettingName

"Parity" -PhysicalDiskRedundancy 2



This example creates a virtual disk on the Windows Storage subsystem that uses the dual-parity resiliency type to help protect against two simultaneous

disk failures and maximize capacity efficiency.







RELATED LINKS

Online Version: http://go.microsoft.com/fwlink/?LinkId=816439

Add-VirtualDiskToMaskingSet

Connect-VirtualDisk

Disconnect-VirtualDisk

Get-StoragePool

Get-StorageTierSupportedSize

Get-VirtualDisk

Hide-VirtualDisk

New-MaskingSet

Remove-VirtualDisk

Repair-VirtualDisk

Resize-VirtualDisk

Set-VirtualDisk

Show-VirtualDisk