In 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
- Intro
- Physical infrastructure – storage
- Physical infrastructure – networking
- Physical infrastructure – compute
- Authentication services
- Deploy and configure the vCenter Server Appliance
- Configure vCenter Server Appliance SSL certificates
- Deploy and configure the vRA Appliance
- Deploy and configure the IaaS platform
- Configure tenants
- Configure endpoint & fabric/business groups
- Configure blueprints (coming soon)
- Configure entitlements (coming soon)
- Configure policies (coming soon)
- Integration with vCloud Air (coming soon)
- 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: 192.168.146.203
- Subnet mask: 255.255.255.0
- Default gateway: 192.168.146.253
iSCSI NIC 1 (Emulex OneConnect adapter):
- IP address: 192.168.86.6
- Subnet mask: 255.255.255.240
iSCSI NIC 2 (Intel adapter):
- IP address: 192.168.87.6
- Subnet mask: 255.255.255.240
NFS network (Emulex OneConnect adapter):
- IP address: 192.168.88.6
- Subnet mask: 255.255.255.240
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.
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?
LikeLike
Oh well spotted! Thank you 🙂
LikeLike