Building an advanced lab using VMware vRealize Automation – Part 2: Physical infrastructure – storage

20150630 - vRAIn part 1 I outlined the aims of the project, which is to build an advanced lab using VMware vRealize Automation.  In this article, we will configure the storage that will house our provisioned virtual machines.

The first constraint that has been identified is cost, which effectively rules out fibre channel storage of any kind.  However, with the right hardware, we can utilise other technologies such as iSCSI and still provision high-performance storage:

For the project three IBM Series x3650 M4 servers have been provided.  Two with large (256GB) amounts of memory, one with 16GB.  The latter we will use for storage.

Each physical server has two Emulex OneConnect OCe10102 10GbE network cards.  We will use this plus an Intel 1Gb NIC to host our iSCSI LUNs.  The other Emulex 10GbE card we will use for NFS.

The storage server has two 146GB and three 2TB SAS disks.  This will enable us to use the first two disks for the OS and the other three for data storage.

Again to keep costs down, we have decided to utilise Windows Server 2012 R2 as the storage OS.  It is well supported in the business and provides and excellent platform for both iSCSI and NFS.

Other posts in this series

  1. Intro
  2. Physical infrastructure – storage
  3. Physical infrastructure – networking
  4. Physical infrastructure – compute
  5. Authentication services
  6. Deploy and configure the vCenter Server Appliance
  7. Configure vCenter Server Appliance SSL certificates
  8. Deploy and configure the vRA Appliance
  9. Deploy and configure the IaaS platform
  10. Configure tenants
  11. Configure endpoint & fabric/business groups
  12. Configure blueprints (coming soon)
  13. Configure entitlements (coming soon)
  14. Configure policies (coming soon)
  15. Integration with vCloud Air (coming soon)
  16. Tidy up (coming soon)

Configure networking

I have configured the hardware RAID on the physical host as follows:

  • RAID-1 (mirror) – disk 1 & 2
  • RAID-5 (striping with parity) – disks 3, 4 and5

Install Windows Server 2012 R2 . Set the Administrator password, patch the OS and assign an IP address.  For the LAN address I have used:

  • IP address:
  • Subnet mask:
  • Default gateway:

iSCSI NIC 1 (Emulex OneConnect adapter):

  • IP address:
  • Subnet mask:

iSCSI NIC 2 (Intel adapter):

  • IP address:
  • Subnet mask:

NFS network (Emulex OneConnect adapter):

  • IP address:
  • Subnet mask:

Configure storage

Open PowerShell and install the requisite components to enable file services using the following:

Add-WindowsFeature FS-FileServer,FS-Data-Deduplication,FS-Resource-Manager,FS-iSCSITarget-Server,iSCSITarget-VSS-VDS,FS-NFS-Service,RSAT-File-Services

Also in PowerShell create the following text file:

$path = "C:\"
$file = "syn.txt"
$content = "sel disk 1.`nclean.`ncreate part pri.`nformat FS=NTFS quick.`nactive.`nend."
New-Item -path $path -name $file -Value $content -ItemType file -force

Run the following from an elevated command line to configure the RAID 5 disk:

diskpart /s c:\syn.txt

In Windows Server 2012 R2 the process of provisioning storage is significantly more complex than previous versions of Windows, as can be seen here:

More information can be found on Yung Chou’s blog here.

Using PowerShell, create a storage pool:

New-StoragePool -FriendlyName "Pool01" -StorageSubSystemUniqueId (Get-StorageSubSystem -FriendlyName "*Space*").uniqueID -PhysicalDisks (Get-PhysicalDisk -CanPool $true)

Create a virtual disk:

New-VirtualDisk -FriendlyName "VirtualDisk01" -StoragePoolFriendlyName "Pool01" -UseMaximumSize

Get the virtual disk proprties:

Get-VirtualDisk -FriendlyName "Datastore01" | Get-Disk

Find the disk number from the previous command and use it to initialize the disk:

New-Partition -DiskNumber 5 -UseMaximumSize -AssignDriveLetter

Assuming the drive letter assigned was E: go ahead and format the disk:

Format-Volume -DriveLetter E -FileSystem NTFS -NewFileSystemLabel "Datastore01"

Create a Folder to house both the iSCSI virtual disks and the NFS shares:

md E:\iSCSIVirtualDisks,E:\nfsroot\NFS

Configure iSCSI

Create two iSCSI LUNs:

1..2 | ForEach {New-IscsiVirtualDisk -Path E:\iSCSIVirtualDisks\iSCSI_LUN$_.vhdx -Size 2TB -UseFixed}

Create an iSCSI target:

New-IscsiServerTarget -TargetName Target01 -InitiatorId *

Assign the LUNs to the target:

1..2 | ForEach {Add-IscsiVirtualDiskTargetMapping -TargetName Target01 -Path E:\iSCSIVirtualDisks\iSCSI_LUN$_.vhdx -Lun $_}

Configure NFS

Share the folder E:\nfsroot\NFS:

New-NfsShare -Name "NFS" -Path "E:\nfsroot\NFS" -AllowRootAccess $true -Permission Readwrite -Authentication all

Create a file screen template to only allow ISO and ZIP files:

New-FsrmFileGroup -Name "Only ISO-ZIP" –IncludePattern @("*.iso", "*.zip") –ExcludePattern "*.*"

Create a new file screen to apply the template.  This will prevent all files other than ISO and ZIP files being uploaded to the NFS share:

New-FsrmFileScreen -Path "E:\nfsroot\NFS" -Description "Only ISO and ZIP allowed" –IncludeGroup "Only ISO-ZIP"

Coming up…

The configuration of the lab storage is now complete. In part 3 we configure the physical networking to host our deployment.

2 thoughts on “Building an advanced lab using VMware vRealize Automation – Part 2: Physical infrastructure – storage

  1. "Only ISO-ZIP" –IncludePattern @("*.iso", "*zip") –ExcludePattern "*.*"

    Love this series, even if I am 6 months behind the times! Question about the above line. Is the *zip intentional or was *.zip intended?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.