If you have your own Hardware and want to get started with the HCI Sandbox in a Single Host that you own, dont worry we can run the Sandbox there, and save the deployment on Azure. Here are the steps to get SDN Sandbox up and running on a single host :
- Download and unzip this solution to a drive on a Intel based System with at least 64gb of RAM, 2016 (or higher) Hyper-V Installed, and , optionally, a External Switch attached to a network that can route to the Internet and provides DHCP (Getting Proxy to work is on my list).
Note - It is best to use Windows Server Desktop Experience on a single machine as it is easier to RDP into the Console VM.
-
Create Sysprepped VHDX files for the 2019 Datacenter GUI.
-
Create a Sysprepped Azure Stack HCI VHDX file (with the latest updates).
-
Edit the .PSD1 configuration file (do not rename it) to set:
-
The Password needs to be the same as the local administrator password on your physical Hyper-V Host
-
Product Key for Server 2019
Warning! The Configuration file will be copied to the console drive during install. The product keys will be in plain text and not deleted or hidden!
- The paths to the VHDX files that you just created.
- Set
HostVMPath
where your VHDX files will reside. (Ensure that there is at least 250gb of free space!) - Optionally, set the name of your external switch that has access to the internet in the
natExternalVMSwitchName =
setting and optionally the VLAN for it in thenatVLANID
. If you don't want Internet access, setnatConfigure
to$false
.
-
-
Download the Windows Admin Center install file and place it in the
.\Windows Admin Center
folder. -
On the Hyper-V Host, open up a PowerShell console (with admin rights) and navigate to the
AzSHCISandbox` folder and run
.\New-AzSHCISandbox``. -
It should take a little over an hour to deploy (if using SSD drives).
-
Using RDP, log into the 'Admincenter' virtual machine with your creds: User: Contoso\Administrator Password: Password01
-
Launch the link to Windows Admin Center
-
Add the Hyper-Converged Cluster AzStackCluster to Windows Admin Center with Network Controller: https://nc01.contosoc.com and you're off and ready to go!
AzSHCISandbox will automatically create and configure the following:
- Active Directory virtual machine
- Windows Admin Center virtual machine
- Routing and Remote Access virtual machine (to emulate a Top of Rack (ToR) switch)
- Two node Hyper-V S2D cluster with each having a SET Switch
- One Single Node Network Controller virtual machine
- One Software Load Balancer virtual machine
- Two Gateway virtual machines (one active, one passive)
- Management and Provider VLAN and networks
- Private, Public, and GRE VIPs and automatically configured in Network Controller
- VLAN to provide testing for L3 Gateway Connections
The AzSHCISandbox can only run on a single host.
Number of Hyper-V Hosts | Memory per Host | HD Available Free Space | Processor | Hyper-V Switch Type |
---|---|---|---|---|
1 | 64gb | 250gb SSD\NVME | Intel - 4 core Hyper-V Capable with SLAT | Installed Automatically by Script |
Please note the following regarding the hardware setup requirements:
-
If using more than one host, ensure that all hosts have an EXTERNAL Hyper-V Switch that has the same name across all the Hyper-V Servers used in the lab.
-
Windows Server 2016 (Standard or Datacenter) or higher Hyper-V MUST already have been installed along with the RSAT-Hyper-V tools.
-
It is recommended that you disable all disconnected network adapters or network adapters that will not be used.
-
It is STRONGLY recommended that you use SSD or NVME drives (especially in single-host). This project has been tested on a single host with four 5400rpm drives in a Storage Spaces pool with acceptable results, but there are no guarantees.
-
If using more than one host, an unmanaged switch or dumb hub should be used to link all of the systems together. If a managed switch is used, ensure that the following VLANS are created and trunked to the ports the host(s) will be using:
- VLAN 12 – Provider Network
- VLAN 200 - VLAN for L3 testing (optional)
Note: The VLANs being used can be changed using the configuration file.
Note: If the default Large MTU (Jumbo Frames) value of 9014 is not supported in the switch or NICs in the environment, you may need to set the SDNLABMTU value to 1514 in the SDN-Configuration file.
Internet access is required. On the Hyper-V Host, create a VMswitch that maps to a NIC attached to a network that has internet access and provides addresses using DHCP. The configuration file will need to be updated to include the name of this VMswitch to use for NAT.
GUI.vhdx - Sysprepped Desktop Experience version of Windows Server 2019 Datacenter. Only Windows Server 2019 Datacenter is supported. Other releases such as Server Datacenter 1809 are not supported as they do not support S2D.
AzSHCI.vhdx - Same requirements.
Note: Product Keys WILL be required to be entered into the Configuration File. If you are using VL media, use the KMS Client Keys keys for the version of Windows you are installing.
Windows Admin Center - The latest version of Windows Admin Center's MSI installer file should be at the root of the Windows Admin Center folder under .\Applications
The following are a list of settings that are configurable and have been fully tested. You may be able to change some of the other settings and have them work, but they have not been fully tested.
Note: Changing the IP Addresses for Management Network (default of 192.168.1.0/24) has been succesfully tested.
Setting | Type | Description | Example |
---|---|---|---|
ConfigureBGPpeering | bool | Peers the GW and MUX VMs with the BGP-ToR-Router automatically if ProvisionNC = $true | |
consoleVHDXPath | string | This value controls the location of the Windows 10 Console VHDX | C:\2019 VHDS\Console.vhdx |
COREProductKey | string | Product key for Datacenter Core. Usually the same key as GUI. | |
coreVHDXPath | string | This value controls the location of the Core VHDX. | C:\2019 VHDS\2019_CORE.vhdx |
DCName | string | Name of the domain controller. Must be limited to 14 characters. | fabrikam.dc |
GUIProductKey | string | Product key for GUI. Usually the same key as Core. | |
guiVHDXPath | string | This value controls the location of the GUI VHDX. | C:\2019 VHDS\2019_GUI.vhdx |
HostVMPath | string | This value controls the path where the Nested VMs will be stored on all hosts | V:\VMs |
InternalSwitch | string | Name of internal switch that the SDN Lab VMs will use in Single Host mode. This only applies when using a single host. If the internal switch does not exist, it will be created. | Fabrikam |
MultipleHyperVHostExternalSwitchName | string | Name of the External Hyper-V VM Switch identical on all hosts making Multiple Hyper-V Hosts | "MyExternalSwitch" |
MultipleHyperVHostNames | array | Array of all of the hosts which make up the Nested VM environment. Only 2 or 4 hosts supported | @("XEON8","XEON9") |
MultipleHyperVHosts | bool | Set to $true if deploying the Nested VM environment across multiple hosts. Set to $false if deploying to a single host. | |
natConfigure | bool | Specifies whether or not to configure NAT | |
natDNS | string | DNS address for forwarding from Domain Controller. Currently set to Cloudflare's 1.1.1.1 by default. | 1.1.1.1 |
natExternalVMSwitchName | string | Name of external virtual switch on the physical host that has access to the Internet. | Internet |
natSubnet | string | This value is the subnet is the NAT router will use to route to SDNMGMT to access the Internet. It can be any /24 subnet and is only used for routing. Keep the default unless it overlaps with a real subnet. | 192.168.46.0/24 |
natVLANID | int | VLAN ID (if needed) that for access to the external network that requires Internet access. (Note: The network will require DHCP). | |
NestedVMMemoryinGB | int | This value controls the amount of RAM for each Nested Hyper-V Host (SDNHOST1-3). | 13GB |
ProvisionNC | bool | Provisions Network Controller Automatically. | |
SDNAdminPassword | string | Password for all local and domain accounts. | Password01 |
SDNDomainFQDN | string | Limit name (before the.xxx) to 14 characters as the name will be used as the NetBIOS name. | fabrikam.com |
SDNLABMTU | int | Controls the MTU for all Hosts. If using multiple physical hosts. Ensure that you have configured MTU on physical nics on the hosts to match this value. | |
SDNMGMTMemoryinGB | int | This value controls the amount of RAM for the SDNMGMT Nested VM which contains only the Console, Router, Admincenter, and DC VMs. | 13GB |
Setting | Type | Description | Example |