Daniel's Tech Blog

Cloud Computing, Cloud Native & Kubernetes

Shutdown and Startup Order for the Microsoft Azure Stack TP VMs

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.

  1. ClientVM
  2. PortalVM
  3. xRPVM
  4. ACSVM
  5. MuxVM
  6. NCVM
  7. 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.

  1. SQLVM
  2. 60 seconds sleep pause
  3. NCVM
  4. 30 seconds sleep pause
  5. MuxVM
  6. 30 seconds sleep pause
  7. ACSVM
  8. 60 seconds sleep pause
  9. xRPVM
  10. 30 seconds sleep pause
  11. PortalVM
  12. 30 seconds sleep pause
  13. 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
}
WordPress Cookie Notice by Real Cookie Banner