Step By Step: How To Replace Faulty Disk In Two-Way Mirrored Storage Tiered Space? #StorageSpaces #WS2012R2

Hello Folks,

As you know that Physical disks often experience errors of varying severity, from errors that the disk can transparently recover from, without interruption or data loss; to errors that are catastrophic and can cause data loss such as bad sectors…

In this blog post, I will walkthrough my experience on how Storage Spaces responds to a faulty disk in Two-way Mirrored Storage Tiered Space, and how you can replace the disk without interruption or data loss.

My Hyper-V server was happily running until I received the status e-mail below!

Good morning Mr. Hyper-V, you have a Hard Disk failure Sad smileimageimage

Before I start with the procedure to replace the disk and repair my degraded Storage Space, I will give you an overview of the system.

I am running Hyper-V server on PhysicalDisk0 as Raid 1, and I am leveraging Two-way mirrored Storage Tiered Space for my Virtual Machines (4XHDD @ 1.2TB and 2XSSD @ 200GB).

If you want a quick overview on how to optimize Storage Tiered Spaces, make sure to check my previous blog post here.

How Storage Spaces Responds To a Faulty Disk?

Let’s open Server Manager and have a look.

In the Storage Pools tile of the File and Storage Services role in Server Manager, health status that requires attention is identified as illustrated below, a Yellow triangle with an exclamation mark!


You can use the following PowerShell cmdlets to identify the physical disk associated with the I/O error:

PS C:\>Get-PhysicalDisk |? { $_.ObjectId.Contains( $PhysicalDiskGUID ); }


PS C:\>Get-PhysicalDisk –friendlyName PhysicalDisk-1


Event Viewer is showing an error with Physical Disk 1.


You can use the following PowerShell cmdlet to get the physical disk Event Log:

PS C:\>Get-EventLog -LogName System -Source Disk


PS C:\>Get-Volume D | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | Get-StoragePool | FT -AutoSize
PS C:\>Get-Volume D | Get-Partition | Get-Disk | Get-VirtualDisk | Get-PhysicalDisk | FT –AutoSize


As you can see, the Storage Spaces sustained the failure of a single disk in a two-way mirrored space. The Volume is healthy, but the virtual disk and pool are in degraded state. (A two-way mirror will allow you to suffer the loss of a single disk with no problems while a three-way mirror will allow you to lose two disks).

How To Replace The Faulty Disk Without Interruption?

Now before I start with the replacement, I want to mention that I am using an old HP server that is not fully supported by Microsoft Storage Spaces. You may want to skip this step if you are using a certified Hardware/JBOD that is listed under Storage Spaces in the Windows Server Catalog.

For this reason, I need to open the Smart Array controller and delete the faulty logical disk drive, and then add a new one.StorageSpaces-DiskRepl10


Here is an important step, you need to create the new logical drive as RAID0 since Storage Spaces will not automatically detect the new drive.


Next, we need initialize the disk and add it to the Storage Pool.

You do not need to create a partition or format the new disk, leave it as unallocated.

PS C:\>Get-Disk
PS C:\>Get-Disk -Number 7 | Initialize-Disk -PartitionStyle GPT


PS C:\>Add-PhysicalDisk –StoragePoolFriendlyName StorageTieredPool1 -PhysicalDisks (Get-PhysicalDisk –CanPool $True)
PS C:\>Repair-VirtualDisk MirroredTieredSpace1


So after we added the new disk to the pool and we ran Repair-VirtualDisk cmdlet. The data will be rebalanced to the new disk (takes a while, in my case it took 2 hours to repair 1.2TB disk).


The old disk can either be retired or it can be completely removed from the pool.

PS C:\>Get-PhysicalDisk | ? OperationalStatus –eq “Lost Communication” | Set-PhysicalDisk –Usage Retired
PS C:\>Remove-PhysicalDisk -StoragePoolFriendlyName StorageTieredPool1 -PhysicalDisks (Get-PhysicalDisk | ? OperationalStatus -eq “Lost Communication” )


And here you go… Healthy Storage Space without interruption or data loss Smile


My wish list for the vNext release of Windows Server is to have auto-repair for the Virtual Disks as soon as you add a new disk to the Storage Pool.

Did you experience any issue with Storage Spaces after single HDD/SSD failure? please add a comment to this blog post and share your experiences.

Hope this helps,

Until then… N’joy!

Posted in Storage Spaces, Windows Server, Windows Server 2012 R2

What Do You Expect in Microsoft Virtual Machine Converter (MVMC) Release 3.0? #HyperV #MVMC

Hello Folks,

In a previous blog post I showed you on how to migrate VMware VMs To Hyper-V with MVMC 2.0.

The good news is that Microsoft announced the Microsoft Virtual Machine Converter (MVMC) 3.0 is coming out this fall 2014.

What is the biggest improvement:

Online Physical to Virtual Conversions and support for both physical servers and physical client OSs. Free download without dependency on System Center Smile.

Just so you understand, the MVMC never had P2V functionality, rather it was offered only in System Center 2008, 2012 and 2012 SP1 Virtual Machine Manager. Microsoft stated that P2V had been deprecated, but they were referring to the latest System Center 2012 R2 Virtual Machine Manager (SCVMM), which only offers Virtual-to-Virtual (V2V) like the current MVMC 2.0. With the MVMC 3.0 release coming up this fall, P2V will once again be available which will be a huge addition to conversion and migration capabilities.

Until then, stay tuned!


Posted in Hyper-V, MVMC

Do You Want More Compute For Your Hyper-V Servers? Address Your Demands with New HP ProLiant Gen9 Servers #HP #Proliant #HyperV

HP just announced a new portfolio of HP ProLiant Generation 9 (Gen9) Servers that will help customers and Hyper-V folks to reduce cost and complexity, accelerate IT service delivery and enable business growth. The new server portfolio advances HP’s vision for compute, the future of data center technology.

The new HP ProLiant Gen9 portfolio is a major delivery milestone in HP’s compute strategy, which addresses IT demands with a vast pool of processing resources that can be located anywhere, scaled to any workload and available at all times. The servers are optimized for convergence, cloud and software-defined environments.

Here are the details of what HP announced with the new Gen9 Portfolio:


HP Portfolio Gen9 Servers (Image: HP)

All these servers leverage the latest Intel® Xeon® E5-2600 v3 processors to offer up to 70 percent performance gains and a 36% increase in energy efficiency.

The typical specs:
–          Intel (Haswell) v3 processors supporting up to 18 cores :)
–          DDR4 memory with speeds up to 2.133 GHz
–          12Gb storage connectivity
–          20Gb Ethernet

The Smart Array controller is by default not on-board anymore. This means that the RAID controller is now like a FlexLOM Ethernet adapter an add-on card on the motherboard of the server. HP provides besides Smart Array controllers a FlexHBA’s which you need if you want to leverage Microsoft Storage Spaces.

HP Portfolio Gen9 2U Servers (Image: HP)

Here are the detailed specs for each model:


  HP ProLiant BL460c Gen9 Server

The world’s leading server blade, performance optimized for core IT workloads

The HP ProLiant BL460c Gen9 blade server delivers the right performance, scalability, economics and manageability through HP OneView, for the converged data center at the lowest cost, fastest time to value with latest innovations.

  • Up to 2 Intel® Xeon® E5-2600 v3 series processors with 4/6/8/10/12/14/16/18 Cores
  • Up to 16, DDR4 HP SmartMemory DIMM slots (512MB) with built-in intelligence for 33% better memory performance
  • 12Gb/s SAS HDD or SSD storage performance supported
  • SmartCache and Secure Encryption options available


HP ProLiant DL360 Gen9 Server

Dense performance for multi-workload compute in the data center

Dense and flexible high performance compute, packed in a dense 1U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14 Cores
  • HP DDR4 Smart Memory – (24) DDR4, (768GB max)
  • Choice of 4x1GbE embedded + FlexibleLOM
  • Standard HP Dynamic Smart Array B140i, choice of HP Flexible Smart Array or HP Smart HBA Controllers
  • Replaces DL360p Gen8


HP ProLiant DL380 Gen9 Server

The no-compromise data center standard for multi-workloads

“Future proof” design keeps up with your business needs, packed in a dense 2U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14/16/18 Cores
  • HP DDR4 Smart Memory – (24) DDR4, (768GB max)
  • 4x1GbE embedded + Choice of FlexibleLOM + Standup
  • Flexible options, like HP Universal Media Bay
  • Replaces DL380p Gen8 and DL380 G7


HP ProLiant DL160 Gen9 Server

Right sized performance and storage density

Essential Combination of performance, manageability and storage in a dense 1U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12 Cores
  • HP DDR4 Smart Memory (16) DDR4, (512GB max)
  • Embedded 2 x1GbE, FlexibleLOM
  • Up to three PCIe slots for IO expandability
  • Replaces DL360e Gen8/ DL160 Gen8


HP ProLiant DL180 Gen9 Server

The new standard for growing datacenter needs

Scalability and Performance to meet the new standard of growing data center, in a 2U/2-socket rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12 Cores
  • HP DDR4 SmartMemory 16 SFF / 12 LFF max, HDD/SSD
  • Embedded 2 x1GbE with optional Flexible LOM on riser
  • 6 PCIe 3.0 slots (3 + 3 FH/HL)
  • Replaces DL380e Gen8


HP ProLiant ML350 Gen9 Server

Performance with unmatched capacity and reliability

Availability, expandability and serviceability, a winning combination in a 5U/2 socket tower/rack design.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 4/6/8/10/12/14/16/18 Cores
  • HP DDR4 SmartMemory (24) DDR4, (768GB max)
  • Greater Expansion with 24 LFF/48 SFF
  • Greater I/O Expansion with 9 PCIe / 9 USB ports
  • Replaces ML350p Gen8 / ML350 G6


    HP ProLiant XL230a Server

Apollo 6000 System server, density optimized performance for scale-out workloads

Designed at rack-scale, the HP Apollo 6000 System starts with a modular 5U building block, a variety of compute, accelerator, storage, and networking options to meet your HPC and Service Provider workload needs.

  • Up to 2 Intel® Xeon® E5-2600 v3 Series, 6/8/10/12/14/16 Cores
  • (16) DDR4, (512GB max), support for NVDIMM
  • 1GbE iLO port/server + choice of FlexibleLOM riser module


  HP ProLiant XL730fServer

Apollo 8000 System server for high performance computing workloads

The HP Apollo 8000 System is world’s first water-cooled supercomputer with dry-disconnect servers. This converged system has up to 144 2P Gen9 servers per rack for supercomputing workload needs

  • Up to 2 Intel® Xeon® E5-2600 v3 Series,10/12/14 Cores
  • (16) DDR4 per node, (256GB max), support for RDIMM
  • HP Apollo 8000 System Manager

More information on the new portfolio can be found here: HP ProLiant Generation 9 (Gen9) servers.

Enjoy your day!


Posted in HP, ProLiant

How To Log Off Remote Desktop User Sessions In Remote Desktop Services Via PowerShell? #RDS #VDI #PowerShell

Okay, this is not actually a Server virtualization related blog post – but still in the virtualization space of course, Session virtualization in Remote Desktop Services (RDS) formerly known as Terminal Services (TS) and purely about PowerShell. None the less – it is something that I use quite often when scripting RDS – so I thought I would post it here.

As you know the new BYOD (Bring Your Own Device) era is expanding number of devices every day, Operating Systems, and applications as well as the constant expectation that we all should be able to access vital information from anywhere anytime. Users can bring in whatever device they wish into work or work at home on their own personal device by using an RDP Client on that device and securely connecting with it.

You can get the latest Microsoft Remote Desktop Client App free for each platform here:

The simple fact that the desktop and applications we are providing to our users are now running on servers under our direct control, and when they are working on site or remotely, their virtual desktop/session is still in the data center. RDS in all its forms is then an ideal way of allowing a (BYOD) policy.

Now Microsoft® RDS includes two techniques for providing virtual desktops, Session virtualization and VDI based on a collection of Windows 8 or 8.1 virtual desktops. While Session virtualization uses far less hardware resources, it is based on a server OS, which can be less experience for our users and limit the applications we can offer using this technique. In the opposite side, VDI consumes more resources, but offers our users a first-class experience. VDI is also different from RemoteApp, which lets you deliver individual applications that run remotely on the server to users’ own local desktops. Where they can run side by side with local applications. There’s no right answer here which option you need to choose, it’s about what is right for the department or business unit that will use VDI.

More information about Remote Desktop Services can be found here.

If you used to work with RDS aka (TS) in previous Windows Server releases, you will notice a tremendous improvement in Windows Server 2012/R2 that makes the deployment of VDI faster and easier, by providing a new unified central experience. RDS previously required multiple administrative tools, but with Server 2012/R2, most of them were combined into a single management console that’s built into the new Server Manager that was introduced in Windows Server 2012 as showing in the following figure:PoolVDI-01

The new Server Manager central experience for Remote Desktop Services deployment. (Image: Charbel Nemnom)

Long story short, I am using Remote Desktop Services since Windows Server 2003/R2, which is end of support just a few months away, in between make sure you started planning the upgrade of your existing infrastructure to Windows Server 2012 R2.

Now back in Windows Server 2003/R2 and 2008/R2, If you need to control/shadow or Log Off a remote user session, we used to do the following as shown in below figures:



The Terminal Services experience Windows Server 2003/R2. (Image: Charbel Nemnom)



The Remote Desktop Services experience Windows Server 2008/R2. (Image: Charbel Nemnom)

In Windows Server 2012, Microsoft removed the Remote Control/Shadowing feature and restrict the Log Off feature in the UI by single user at a time Sad smile, in other words, you cannot select multiple users and Log them off at the same time as we used to do in Windows Server 2008/R2 and 2003/R2.


But in Windows Server 2012 R2, Microsoft brings back the feature called Session Shadowing, with which you’re able to monitor or take control of users’ active sessions. This was not available in Windows Server 2012, but Microsoft responded to input from customers who missed the feature Smile, however the Log Off feature still by single user at a time.


You can shadow a remote user session in Windows Server 2012 R2 in one of two ways:

  • You can use the Server Manager if you prefer a graphical interface, OR
  • You can use the command line if you prefer a text-based interface

In Server Manager, you can browse for the session collection in which the user whose session you want to control is active or if you know which collection it is, you can access it directly from the Collections section. You can select whether you want to control the session or just view it and also whether or not the user will receive a prompt.

At the command line on a computer running Remote Desktop Client version 8.1 or above, type the following command:

C:\>mstsc /v:<server name> /shadow:<session ID>

In case you’re wondering how you’re supposed to know the session ID? you can find it out by running the following PowerShell cmdlet (you must first import the Remote Desktop Module):

PS C:\>Import-Module RemoteDesktop
PS C:\>Get-RDUserSession

Now what about to Log Off more than one user at a time? we still missing this feature.

The answer is…

With PowerShell, of course:

Select Remote Session State and logs off the user sessions.

Select Remote Session State (Disconnected/Active/Idle/All) and logs off the user sessions.

File Name: RDSessionSupport.ps1
Author    : Charbel Nemnom
Version   : 1.0
Requires : PowerShell Version 3.0 or above
OS          : Windows Server 2012 or above with Remote Desktop Connection Broker Role

To provide feedback or for further assistance visit:

Run the script as administrator and select your desired choice.

Write-Host “======================================================”
Write-Host “”
Write-Host ”                            PLEASE SELECT YOUR CHOICE                              ”
Write-Host “”
Write-Host “======================================================”
Write-Host “”
Write-Host ” A.  End All Disconnected Remote User Sessions”
Write-Host ” B.  End All Active Remote User Sessions”
Write-Host ” C.  End All Idle Remote User Sessions”
Write-Host ” D.  End All Remote User Sessions”
Write-Host ” X.  Cancel and quit”
$choice = Read-Host “Enter Selection”

Switch ($choice) {
“A” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_DISCONNECTED’} }
“B” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_ACTIVE’} }
“C” {$RDSessions = Get-RDUserSession | Where-Object -Filter {$_.SessionState -eq ‘STATE_IDLE’} }
“D” {$RDSessions = Get-RDUserSession}
“X” {Exit}

If (!$RDSessions)
Write-Host “No Remote User Sessions found with Choice:” $choice
{ # Start Loop
Foreach ($RDSession in $RDSessions)
Invoke-RDUserLogoff -UnifiedSessionID $RDSession.SessionId -HostServer $RDSession.HostServer -Force
Write-Host “The user” $RDSession.UserName “is logged off from” $RDSession.HostServer “server”
} # End Loop
} # End If

Read-Host “Press Enter to Exit <—“

With above PowerShell script, the user will select which session state would like to log off, and then all sessions with the selected state will be logged off from all Remote Desktop Session Hosts (RDSH).


Sure enough there are different ways to accomplish the same result Just kidding, but nevertheless it has worked for me and I feel that it’s a much nicer than having to Log Off each user manually, so that’s that.

A couple of areas that could definitely be improved though, would have to select which user you want to Log Off, etc.

If you have more ideas and would like to add more options, please share in the comment below:

Hope this was helpful for you.

Until then, enjoy your day!


Posted in RDS, Remote Desktop Services

How To Deploy Free VMM Service Templates and Windows Azure Pack Gallery Resources #VMM #HyperV #SysCtr #SCVMM #WAP

Hello Folks,

As you are familiar with Microsoft® Azure Virtual Machines gallery resources in the public cloud, you can have a similar experience in your own private cloud with System Center Virtual Machine Manager and Windows Azure Pack.

The Windows Azure Pack is a collection of Windows Azure technologies available to Microsoft® customers on-premises for free. Once installed in your private cloud, the Windows Azure Pack integrates with System Center Suite and Windows Server to help provide a self-service portal for managing services such as websites, Virtual Machines, a portal for administrators to manage cloud resources, and a portal for tenants “customers” for self-service.

The feed of Windows Azure Pack Gallery Resources and VMM Service Templates is constantly being updated at the following URL:

How to deploy it?

1.  Download and Install the Microsoft Web Platform Installer 5.0 from here.

2.  Launch the Web Platform Installer.VMM-WAP-Temp01

3.  Select the Options link at the bottom right.VMM-WAP-Temp02

4.  Enter the Feed URL into the Custom Feeds field: 5.  Select the Add feed button.VMM-WAP-Temp046.  Select the OK button.

7.  You will now see a new Service Models link at the upper right of the Web Platform Installer UI.VMM-WAP-Temp05
8.  Select the Service Model you want to download (SCVMM Service Templates or Gallery Resources).

SCVMM Service Templates:VMM-WAP-Temp06

Windows AZURE Pack Gallery Resources:VMM-WAP-Temp07

9.  Select the Add button next to whichever Service Model you would like to download (VMM or WAP).VMM-WAP-Temp08

10. Select the Install button.

11. Select the I Accept button.VMM-WAP-Temp10

12. Select the Continue button.VMM-WAP-Temp11

13. Select the Finish button.

14. Last but not least, Windows Explorer window will open, displaying the contents of the Service Model.
Service Models are extracted into your %SystemDrive% folder, according to both types:
Gallery Resources – %SystemDrive%\GalleryResources\<resourcename>
     SCVMM Service Templates – %SystemDrive\SCVMM Service Templates\<resourcename>
     Follow the directions in the Service Model Readme file that ships with each Gallery Item to complete this procedure.
The Readme file includes the values specific step by step to that particular item.

Next we will move into the import process of the Template.

Copy the VMM Service Template directory into your VMM library server, launch the VMM Console and then refresh the library.VMM-WAP-Temp16

From the Virtual Machine Manager console, launch the import template wizard.



On the Select Package page, click browse, navigate to the location where the service template is saved in my case (Domain Controller Windows Server 2012.1.0), then select the .XML template, click open and then click next in the import wizard.VMM-WAP-Temp17

Note: On the Configure References page, verify that all resources are mapped correctly for you environment. For any reference which is not mapped correctly (or contains a Current Mapping of clip_image002 None), click the clip_image004 icon next to each resource and choose an appropriate resource in your environment in which to map the references:VMM-WAP-Temp18


Complete the import wizard and verify that the template has imported successfully:VMM-WAP-Temp20


Open the service template in the designer and modify any applicable settings to confirm to your standards, for example:
– Virtual machine hardware configuration.
– Computer name pattern.
– Product Key, etc…

Here you go a DC service template instance is ready to be deployed.

Enjoy your weekend!


Posted in System Center, Virtual Machine Manager, Windows Azure Pack

Over 70 recipes to help you design, configure, and manage your own private cloud with VMM 2012 R2 #VMM #HyperV #SysCtr #Cloud @PacktPub @Cloudtidings

Hello Folks,

For all virtualization enthusiasts who need to use Microsoft System Center Virtual Machine Manager in a real-world environment. A New book just been published by Packt Publishing, it’s named “System Center 2012 R2 Virtual Machine Manager Cookbook, Second Edition” authored by Edvaldo Alessandro Cardoso.

The second edition is focused on the recent version of Virtual Machine Manager 2012 R2 while the first edition covered the previous VMM release 2012.

6848EN_System Cookbook

I am happy to announce that I was selected to review the book.

This book has over 70 recipes to help you design, plan, and improve System Center Virtual Machine Manager (SCVMM) deployment; integrate and manage fabric (compute, storage, gateway, and networking), services, and resources; deploy clusters from Bare Metal servers; configure integration with Operations Manager, App Controller and Microsoft® Azure; and carry out vital tasks quickly and easily.

Here is the detailed table of contents and what to expect to learn from this book:

Chapter 1: VMM 2012 Architecture
Understanding each component for a real-world implementation
Planning for High Availability
Designing the VMM server, database, and console implementation
Specifying the correct system requirements for a real-world scenario
Licensing the System Center
Troubleshooting VMM and supporting technologies

Chapter 2: Upgrading from Previous Versions
Reviewing the upgrade options
Checking the VMM system requirements and preparing for the upgrade
Upgrading to VMM 2012 R2
Re-associating hosts after upgrading
Updating the VMM agents
Performing other post-upgrade tasks

Chapter 3: Installing VMM 2012 R2
Creating service accounts
Deploying a Microsoft SQL Server for a VMM implementation
Installing VMM dependencies
Configuring Distributed Key Management
Installing a VMM management server
Installing the VMM console
Connecting to a VMM management server using the VMM console
Creating credentials for a Run As account in VMM
Configuring ports and protocols on the host firewall for each
VMM component

Chapter 4: Installing a High Available VMM Server
Installing a highly available VMM management server
Installing a VMM management server on the additional node of a cluster
Connecting to a highly available VMM management server using the VMM console
Deploying a highly available library server on a file server cluster
Uninstalling a highly available VMM management server

Chapter 5: Configuring Fabric Resources in VMM
Creating host groups
Setting up a VMM library
Configuring networks in VMM
Networking – configuring logical networks
Networking – configuring VM networks and gateways
Networking – configuring logical switches, port profiles, and port classifications
Integrating and configuring the storage
Creating a physical computer profile (host profile)
Provisioning a physical computer as a Hyper-V host – Bare Metal host deployment
Adding and managing Hyper-V hosts and host clusters

Chapter 6: Deploying Virtual Machines and Services
Creating private clouds
Creating hardware, guest OSes, applications, and SQL profiles
Creating user roles in VMM
Creating and deploying virtual machines
Creating virtual machine templates
Creating and deploying service templates
Rapidly provisioning a virtual machine using SAN Copy

Chapter 7: Managing VMware ESXi and Citrix® XenServer® Hosts
Adding VMware vCenter Server to VMM
Adding VMware ESX hosts or host clusters to VMM
Configuring network settings on a VMware ESX host
Configuring host BMC settings
Importing VMware templates
Converting VMware virtual machines to Hyper-V
Managing Citrix® XenServer® hosts and pools
Converting Citrix® virtual machines to Hyper-V

Chapter 8: Managing Hybrid Clouds, Fabric Updates, Resources, Clusters,and the New Features of R2
Creating Hyper-V clusters
Managing fabric updates
Configuring Dynamic Optimization and Power Optimization
Live migrating virtual machines
Managing Linux virtual machines
Configuring availability options and virtual NUMA for VMs
Configuring resource throttling
Integrating with the IPAM server for IP management
Deploying SC App Controller 2012 R2 for hybrid cloud management
Configuring Synthetic Fibre Channel

Chapter 9: Integration with System Center Operations Manager 2012 R2
Installing System Center Operations Manager 2012 R2
Installing management packs
Managing Discovery and Agents
Configuring the integration between Operations Manager 2012
and VMM 2012
Enabling reporting in VMM
Extending monitoring with management packs

Chapter 10: Scripting in Virtual Machine Manager
Introducing VMM PowerShell
Finding the command to automate tasks in VMM
Creating a script from VMM wizards
Storing and running scripts in VMM
Using VMM sample scripts

The book is available for immediate download from Packt Publishing website after registration here.

Grab your copy and enjoy!


Posted in Book, System Center, Virtual Machine Manager

An Attempt to initialize VM saved state failed – Could Not Create or Access Saved State File #HyperV #SCVMM

Hello Folks,

Well, after a few weeks away from work on vacation, I’ve finally managed to sit back and go through all my 30 Hyper-V hosts across different remote sites from a single pane of glass, of course you guessed it? yes, yes… Virtual Machine Manager Smile.

What I’ve come across from browsing through the console one Virtual Machine in a particular remote site is in a Stopped state.

And of course, what is the first thing you want to try to do is to power on that VM!


The unexpected behavior, the VM failed to start with the following error Surprised smile:

Error (12700)
VMM cannot complete the host operation on the server because of the error: ‘DC01′ could not initialize. (Virtual machine ID 7431245E-0FB3-45D3-B2E2-014124480F42)

‘DC01′ could not create or access saved state file D:\VirtualMachines\DC01\Virtual Machines\7431245E-0FB3-45D3-B2E2-014124480F42\7431245E-0FB3-45D3-B2E2-014124480F42.vsv. (Virtual machine ID 7431245E-0FB3-45D3-B2E2-014124480F42)
Unknown error (0x8001)

Recommended Action
Resolve the host issue and then try the operation again.

As we can see in the error above that the Virtual Machine could not access the saved state file .vsv.

The next logical thing is to remote into the Hyper-V host and try to dive deeper.


Again the VM failed to start.


As you can see in the above self-explanatory error that you do not have permission to perform this operation, therefore the issue is security permission.

Two errors are logged in the Event Viewer as well:

Event ID 3040:


Event ID 3080:


Back to basics, what files are used to create a virtual machine in Hyper-V:

  • .XML files
    • These files contain the virtual machine configuration details. There is one of these for each virtual machine and each checkpoint of a virtual machine. They are always named with the GUID used to internally identify the virtual machine
  • .BIN files
    • This file contains the memory of a virtual machine or checkpoint that is in a saved state.
  • .VSV files
    • This file contains the saved state from the devices associated with the virtual machine.
  • .VHD/VHDX files
    • These are the virtual hard disk files for the virtual machine.
  • .AVHD files
    • These are the differencing disk files used for virtual machine checkpoints aka (snapshots).
  • .VFD files
    • These are for virtual floppy disks files and rarely you use them Smile.

What are the symptoms that we observed so far:

  • Powering on the VM in Virtual Machine Manager, Hyper-V Manager or in PowerShell would result in an error  – could not create or access saved state file.
  • Error 3040 and 3080 was logged into the Hyper-V Worker event log.

I will browse into the .vsv and .bin files of the affected virtual machine and check it’s security permission.





If we compare the .vsv and .bin files for a running VM on the same host, we notice something different:


The GUID name of the virtual machine has full control on those files, but not on the affected VM.

One important point to mention that the GUID is the security context that is used to access the various files that make up the VM.  The VM Worker Process (vmwp.exe) will leverage this to work with the files. You can open up task manager or fire up PowerShell and see the VM Worker Process details, the GUID is listed in the user name field:



Let’s grant permissions to the .bin and .vsv files, you can use ICacls.exe from the command prompt (cmd):

The syntax is the following:

D:\VirtualMachines\DC01\Virtual Machine\7431245E-0FB3-45D3-B2E2-014124480F42\ICacls.exe 7431245E-0FB3-45D3-B2E2-014124480F42.bin /grant “NT VIRTUAL MACHINE\7431245E-0FB3-45D3-B2E2-014124480F42″:(F)

D:\VirtualMachines\DC01\Virtual Machine\7431245E-0FB3-45D3-B2E2-014124480F42\ICacls.exe 7431245E-0FB3-45D3-B2E2-014124480F42.vsv /grant “NT VIRTUAL MACHINE\7431245E-0FB3-45D3-B2E2-014124480F42″:(F)

Sure enough you need to adjust and match your GUID including the VM storage location.

Once I set the NTFS security permissions, I tried to power on the VM again!

And… Disappointed smile


Ehhhhh! What security permission is still missing Thinking smile

Let’s browse to the root folder of the affected Virtual Machine and compare the NTFS security permission with another running VM.

To illustrate this, you can fire up PowerShell and compare side by side using my favorite compare-object cmdlet:

PS C:\>$acl = Get-Acl -Path “D:\VirtualMachines\DC01″
PS C:\>$acl.access > C:\DC01.txt
PS C:\>$acl = Get-Acl -Path “D:\VirtualMachines\DHCP01″
PS C:\>$acl.access > C:\DHCP01.txt
PS C:\>Compare-object -referenceobject $(get-content C:\DHCP01.txt) -differenceobject $(get-content C:\DC01.txt)


What you can see in the SideIndicator outputis the NT Virtual Machines\Virtual Machines IdentityReference is available on the left arrow which means on the reference running VM ‘DHCP01’ and not available on the affected VM ‘DC01’.

If you look into NT Virtual Machines\Virtual Machines NTFS advanced security permission using the UI, you can see below:


Let’s grant the missing security permissions to the root DC01 Virtual Machine folder from ‘DHCP01’ using PowerShell.

PS C:\>$acl = Get-Acl -Path “D:\VirtualMachines\DHCP01″
PS C:\>Set-Acl -Path “D:\VirtualMachines\DC01″ -AclObject $acl
PS C:\Start-VM DC01
PS C:\Get-VM DC01

And here you go Smile



The best course of action is to never touch the security permission for the Virtual Machine files once they are working, and don’t change inheritance or modify any of these automatically added items, because when you first build a virtual machine, Hyper-V will set the security permission appropriately.

Hope this helps.

Enjoy your day!


Posted in Hyper-V, Security

Install and Configure VMM Network Builder #SCVMM #SysCtr #Cloud #HyperV

Hello Folks,

Good News! The System Center VMM Team just announced a new UI add-in tool to help customer on creating virtual network in Virtual Machine Manager.

If you are using Virtual Machine Manager in your environment and of course you should if you have more than 3 Hyper-V hosts to manage, then you examine the network fabric was the hardest part to configure Smile.


The interns Program Managers on the System Center VMM team Mr. Anjay Ajodha and Mr. Matt McGlynn spent their summer analyzing the customer pain points regarding networking in VMM and have developed a small tool that should help ease the frustration with setting up VLAN-isolated networks in VMM. To help you get started quickly with networking in VMM and to simplify the process of creating new networks, they have created a new UI add-in in VMM home taskbar:


The entire basic networking setup can be created with this tool that can either be applied to hosts directly or used as a generic networking object base to be modified for customization to your configuration. VMM Network Builder compresses the steps required to build a logical switch. This tool will create networks that utilize VLAN isolation however it is not purposed for creating NVGRE networking configurations!

Let’s jump first into the installation of VMM Network Builder:





When the installation is done, you end up with


Next, we need to import the Add-in, open VMM console and browse to Settings workplace and click on Import Console Add-in.



After the import is completed you can see an extra Icon in the title home bar “Build a Network“.

Let’s create and configure a basic VLAN-isolated network, click on “Build a Network“ and follow the wizard.

The Network Builder will connect to your VMM Server.


The first question is, do you to Create a Management Network?


The second option, do you have a separate Management NIC or all traffic going into the same physical NIC/Team?

In my environment, I am using Converged Network Fabric for (Management, Live Migration, Cluster, Virtual Machines, etc…), therefore I will select No.


Next you want to define the Management Network subnet.


Next step is to define a logical network name:


Now you want to define the Virtual Networks (VLAN ID and IP Pools).


Here a nice diagram showing the network configuration that will be created.

You can select “I would like to create a script to apply this logical switch to hosts”.


Here is the final summary before you create the VLAN-isolated network.

You can save the Script for future use as well.


As you noticed many different options are available in this tool, I recommend to try it and see how it works in your environment.

You can download the VMM Network Builder tool from here.

Enjoy your day!


Posted in Networking, System Center, Virtual Machine Manager

Free New eBook – Explored: 7 Key Areas of Hyper-V By Altaro Software #HyperV #Altaro

Hello Folks,

Here you go with a new free eBook gift from Altaro Software. The eBook is called Explored: 7 Key Areas of Hyper-V and it’s a detailed guide to help improve the core areas of a Hyper-V environment.


The eBook consists of 7 Chapters as the following:

Chapter 1: Seven Keys to Hyper-V Security
Manage Access to Virtual Machine Functions
Group Policy
File, Folder, and Share Security
The Network
The Guests
Patches and Hotfixes

Chapter 2: Hyper-V Manager – An Introduction
How to Acquire Hyper-V Manager
Enabling Hyper-V Manager
Interface Quick Tour
Differences between Hyper-V Manager and System Center Virtual Machine Manager
Hyper-V Cluster Integration
Failover Cluster Manager

Chapter 3: Set Up Native Net work Teams for Hyper-V
The GUI Way
The PowerShell Way
Related Cmdlets
Notes on the Windows Team
Link Aggregation and Bandwidth

Chapter 4: A Quick Guide to Hyper-V’s Virtual Switch
What You Get
The Fine Print

Chapter 5: Hyper-V Virtual CPUs
Physical Processors are Never Assigned to Specific Virtual Machines
Start by Understanding Operating System Processor Scheduling
Taking These Concepts to the Hypervisor
What about Processor Affinity?
How Does Thread Scheduling Work?
What Does the Number of vCPUs I Select Actually Mean?
But Can’t You Assign More Total vCPUs to all VMs than Physical Cores?
What’s The Proper Ratio of vCPU to pCPU/Cores?
What about Reserve and Weighting (Priority)?
But What About Hyper-Threading?

Chapter 6: Proper Use of Hyper-V Dynamic Disks
Terminology Clarification
What Dynamically Expanding Disks Are
How Dynamic VHD s Operate in the Real World
Making Fragmentation Go Away

Chapter 7: Connecting Hyper-V to Storage
Internal/Direct-Attached Disks
Prepare a Local Disk for Usage
Prepare a Storage Spaces Volume for Usage
Fibre Channel
Multi-Path I/O (MPIO)
SMB 3.0
Storage for a Hyper-V Cluster

Grab your free copy now @: ebook

Enjoy your day,


Posted in Altaro, Hyper-V

Hyper-V 2012 R2: Rollup Update, August 2014 #HyperV

Hello Folks,

As you already know that Microsoft pushed the second update this year for Windows 8.1 and Windows Server 2012 R2.

In this blog post I will list the new updates that applies only for Hyper-V Server 2012 R2.

Here you go 3 bug fixes for Hyper-V:

  • KB2972254: Hyper-V virtual machines cannot be connected to sometimes when TCP connections reconnect in Windows Server 2012 R2.

Symptoms: This issue occurs when a node of a failover cluster is removed from active cluster membership.

  • KB2978101: Windows 2012 R2-based Hyper-V host cluster freezes when virtual machines use shared virtual hard disks.

Symptoms: You have a Windows 2012 R2-based Hyper-V host cluster, or you create Hyper-V virtual machines on the cluster, and then you add shared virtual hard disk files (.vhdx) to the virtual machines.

  • KB2976884: “Access denied error” when Hyper-V Replica Broker goes online in a Windows Server 2012 or Windows Server 2012 R2 cluster.

Symptoms: You have a Windows Server 2012 R2 or Windows Server 2012 failover cluster that is in a domain, and the domain has a disjoint namespace.
You set the primary Domain Name Service (DNS) suffix of the Windows Server 2012 failover cluster to the disjoint domain name.
You create a Hyper-V Replica Broker in the failover cluster, and then you bring the Hyper-V Replica Broker online.

For detailed information visit:

Patch, test, wait and then deploy in Production!!!

Happy Patching Smile


Posted in Hyper-V, Updates

Sponsor – ALTARO


Thanks for visiting!

Copyright Warning

All material is copyrighted by me or by its respective owners. To use any of it, full or in part, you must contact me or owner of the material. You may quote few paragraphs from this blog only if you link to the original blog post.

Follow me on Twitter


Get every new post on this blog delivered to your Inbox.

Join other followers: