In my previous blog post I described how to install the Microsoft Azure Stack POC on lower hardware. Because my home lab does not run 24/7 I had to think about the correct shutdown and startup order for the Microsoft Azure Stack Technical Preview VMs.
The Azure Stack TP consists of one physical Hyper-V host and 10 VMs. First I want to let you know which servers are belonging to the azurestack.local domain.
Name | Membership |
Hyper-V host | Domain |
ADVM | Domain |
ACSVM | Domain |
MuxVM | Domain |
xRPVM | Domain |
NCVM | Domain |
SQLVM | Domain |
ClientVM | Domain |
PortalVM | Domain |
BGPVM | Workgroup |
NATVM | Workgroup |
Per default every VM will be set into save state when you shutdown the Hyper-V host. This is not a problem when you are running Azure Stack on the recommended hardware. On lower hardware it is an issue. My shutdown sequence is the following one.
- ClientVM
- PortalVM
- xRPVM
- ACSVM
- MuxVM
- NCVM
- SQLVM
The VMs ADVM, BGPVM and NATVM will shutdown together with the Hyper-V host.
During the startup of the Hyper-V host only the VMs ADVM, BGPVM and NATVM will start automatically. The other ones will be started through a PowerShell script after the RDP login.
The startup order is the following one.
- SQLVM
- 60 seconds sleep pause
- NCVM
- 30 seconds sleep pause
- MuxVM
- 30 seconds sleep pause
- ACSVM
- 60 seconds sleep pause
- xRPVM
- 30 seconds sleep pause
- PortalVM
- 30 seconds sleep pause
- ClientVM
Afterwards run the following PowerShell script to make sure that all necessary services in the xRPVM are running. Otherwise you can run into some VM deployment issue.
$Credential = Get-Credential Invoke-Command -VMName "xRPVM" -Credential $Credential -ScriptBlock { Get-Service CRP|Start-Service -Verbose Get-Service AvailabilitySetController|Start-Service -Verbose Get-Service BlobManager|Start-Service -Verbose Get-Service ClusterManager|Start-Service -Verbose Get-Service ComputeController|Start-Service -Verbose Get-Service DiagnosabilityManager|Start-Service -Verbose Get-Service ExtensionManager|Start-Service -Verbose Get-Service GuestArtifactRepository|Start-Service -Verbose Get-Service IsoManager|Start-Service -Verbose Get-Service ManifestProvider|Start-Service -Verbose Get-Service MetadataServer|Start-Service -Verbose Get-Service NetworkManager|Start-Service -Verbose Get-Service PlacementManager|Start-Service -Verbose Get-Service PlatformImageRepository|Start-Service -Verbose Get-Service TopologyManager|Start-Service -Verbose }