December, 2013

  • Understanding Pool Corruption Part 3 – Special Pool for Double Frees

    In Part 1 and Part 2 of this series we discussed pool corruption and how special pool can be used to identify the cause of such corruption.  In today’s article we will use special pool to catch a double free of pool memory.   A double free of ...read more
  • I/O Performance impact of running Start-DedupJob with –Priority High

    My name is Steven Andress and I am a Support Escalation Engineer with Microsoft’s Platforms Support Team.  This is a short blog post to alert you to a condition you might encounter when running a deduplication job using the Start-DedupJob PowerShell cmdlet. 

    Start-DedupJob
    http://technet.microsoft.com/en-us/library/hh848442.aspx

    Start-DedupJob [-Type] <Type> [[-Volume] <String[]> ] [-AsJob] [-CimSession <CimSession[]> ] [-Full] [-InputOutputThrottleLevel <InputOutputThrottleLevel> ] [-Memory <UInt32> ] [-Preempt] [-Priority <Priority> ] [-ReadOnly] [-StopWhenSystemBusy] [-ThrottleLimit <Int32> ] [-Timestamp <DateTime> ] [-Wait] [ <CommonParameters>]

    The Start-DedupJob cmdlet starts a new data deduplication job for one or more volumes.  The Priority setting sets the CPU and I/O priority for the optimization job run that you run by using this cmdlet.  The only way to run a Deduplication job with High Priority is to use the cmdlet.  When Priority is set to High, I/O for other processes using the volume may be slowed down or even blocked.   If this is a Cluster Shared Volume (CSV), I/O to the volume from other nodes can be similarly impacted.   

    Workaround:
    Do not use "-Priority High" when starting dedup jobs if this is server is in production hours.  If you wish to use this switch, please ensure that it is done after hours so that productivity is not affected.

    Regards,
    Steven Andress
    Senior Support Escalation Engineer
    Microsoft Corporation

  • Event ID 157 "Disk # has been surprise removed"

    Hello my name is Bob Golding and I would like to share information on a new error you may see in the system event log. It is Event ID 157 "Disk <n> has been surprise removed" with Source: disk.  This error indicates that the CLASSPNP ...read more
  • Free ebook: Introducing Microsoft System Center 2012 R2

    If you work with Hyper-V, you very well also use System Center to manage it.  If you do not use System Center, you should download this free ebook and give it a review.

    We’re happy to announce a new free ebook – Introducing Microsoft System Center 2012 R2 by Mitch Tulloch with Symon Perriman and the System Center Team.

    DOWNLOAD LINK

    Download the  PDF - here

    Introduction

    Microsoft System Center is one of the three pillars of Microsoft’s Cloud OS vision that will transform the traditional datacenter environment, help businesses unlock insights in data stored anywhere, enable the development of a wide range of modern business applications, and empower IT to support users who work anywhere while being able to manage any device in a secure and consistent way. The other two pillars of the Cloud OS are, of course, Windows Server 2012 R2 and Windows Azure, and Microsoft Press has recently released free Introducing books on these platforms as well.

    Whether you are new to System Center or are already using it in your business, this book has something that should interest you. The capabilities of each component of System Center 2012 R2 are first described and then demonstrated chapter by chapter. Real-world and under-the-hood insights are also provided by insiders at Microsoft who live and breathe System Center, and those of you who are experienced with the platform will benefit from the wisdom and experience of these experts. We also included a list of additional resources at the end of each chapter where you can learn more about each System Center component.

     

    Part I – Cloud Computing

    • System Center and the Cloud OS

    Part II – Provisioning Infrastructure

    • Provisioning infrastructure with Virtual Machine Manager
    • Provisioning self-service with App Controller
    • Managing and maintaining with Configuration Manager
    • Backup and recovery with Data Protection Manager

    Part III – Implementing Monitoring

    • Real-time monitoring with Operations Manager
    • Proactive monitoring with Advisor

    Part IV – Building Private Clouds

    • Standardization with Service Manager
    • Automation with Orchestrator
    • Windows Azure Pack

    clip_image002

  • Cannot Extend Simple Virtual Disk in Windows Server 2012 R2

    I’m writing this blog to help shed some light on extending simple virtual disks in Windows Server 2012 R2.  We have had questions from various customers that have been using simple virtual disk and need to add more space to them.

    Let’s say you used Server Manager to create a new Storage Pool called “Storage Pool1”.  Using 3 x 10Gb physical disks, you have created a new simple virtual fixed disk using all the available disks in Storage Pool1.  This gives the system 24Gb of usable space as E:.

    image

    You now need to extend the simple fixed virtual disk because it is running out of free space. The logical way to go about this is to use Server Manager and add 1 new physical disk to Storage Pool1 and extend the simple fixed virtual disk.

    In the screenshot below, I added physical disk 4 to Storage Pool1 and try expand the simple fixed virtual disk.

    image

    Go to Server Manager then select File and Storage Services, Volumes then Storage Pools, right click Storage Pool1 and under Virtual Disks right click VDisk1 and select Extend Virtual Disk. A Window comes like the screenshot below but all options are greyed out and the only choice is to click Cancel.

    image

    This leaves you scratching your head wondering what was missed and why it failed. There is an answer to this and I’ll explain.

    When a virtual disk is created using Server Manager, there is a key property created called NumberOfColumns.  The NumberOfColumns property is set according to the number of physical disks used to create the virtual disk and cannot be changed after the virtual disk has been created. You can see the NumberOfColumns property by right clicking VDisk1, select Properties, select Details tab and in the Property drop down select NumberOfColumns.

    image

    As shown in the screenshot above, the Value is 3.  This is the number of physical disks used from Storage Pool1 to create the simple fixed virtual disk.  The only way to properly extend the simple fixed virtual disk is to add 3 more physical disks to Storage Pool1 (NumberOfColumns).

    The way add new physical disks to Storage Pool1 is right click Storage Pool1, select Add Physical Disk, select the physical disks to add and click OK.

    image

    There are now 6 total physical disks in Storage Pool1 and the simple fixed virtual disk will successfully extend.

    image

    Right click VDisk1, select Extend Virtual Disk and now all the options are no longer greyed out. You can select to Specify Size or Maximum Size. I choose Maximum Size.

    image

    Click OK and now the capacity is 48 GB for the simple virtual fixed disk.

    image

    You can check the properties for VDisk1 and see that the NumberOfColumns is still 3.  You can also use the Get-VirtualDisk PowerShell command.

    image

    Ok, so now that you understand how the NumberOfColumns is set and why it is set when the virtual disk is created. But hold on, there is a way around this by using PowerShell to create the virtual disk.

    PowerShell saves the day!

    The quick and easy way to create a new virtual disk specifying the NumberOfColumns of 1 with multiple physical disks is to use PowerShell. But first, a Storage Pool needs to be created and can be done using Server Manager or PowerShell.

    Follow the below steps using PowerShell to create Storage Pool named Storage Pool1 with 3 physical Disks.

    New-StoragePool –FriendlyName “Storage Pool1” –PhysicalDisks (Get-PhysicalDisk PhysicalDisk1, PhysicalDisk2,PhysicalDisk3 ) –StorageSubSystemFriendlyName *space*

    Now, run Get-StoragePool command and there will be two pools listed; Primordial and Storage Pool1 which was just created.

    image
     
    Now it’s time to create a new Simple fixed virtual disk in Storage Pool1 using 3 physical disk with NumberOfColumns 1 and maximum size.

    New-VirtualDisk –StoragePoolFriendlyName “Storage Pool1” –FriendlyName VDisk1 –NumberOfColumns 1 –ProvisioningType Fixed –ResiliencySettingName Simple -UseMaximumSize

    image

    Now let’s confirm the NumberOfColumns is 1.

    Get-VirtualDisk –FriendlyName VDisk1 | FL NumberOfColumns

    image

    Or for a more detail view of the virtual disk.

    Get-VirtualDisk –FriendlyName VDisk1 | FL *

    image

    I hope this blog helps sheds some light on the NumberOfColumns and how the value is set when the virtual disk is created.

    Steven Graves
    Senior Support Escalation Engineer
    Windows Availability Team

  • Unable to launch Cluster Failover Manager on any node of a 2012/2012R2 Cluster

    When Failover Cluster Manager is opened to manage a Cluster, it will contact all the nodes and retrieve Cluster configuration information using WMI calls. If any one of the nodes in the Cluster does not have the cluster namespace "root\mscluster" in WMI, Failover Cluster Manager will fail and give one of the below errors:

    clip_image002

    Or,

    Unfortunately, it does not give any indication of which node is missing the WMI namespace.  One of the ways you can check to see which one has it missing is to run the below command on each node of the Cluster.

    Get-WmiObject -namespace "root\mscluster" -class MSCluster_Resource

    It can be a bit tedious and time consuming if you have quite a few nodes, say like 64 of them.  The below script can be run on one of the nodes that will connect to all the other nodes and check to see if the namespace is present.  If it is, it will succeed.  If the namespace does not exist, it will fail.

    -----------------
    Set-ExecutionPolicy unrestricted

    cls

    If(import-module failoverclusters)
    {

    Write-Host "Imported Cluster module"

    }

    Write-Host "Getting the cluster nodes..." -NoNewline
    $nodes = Get-ClusterNode
    Write-host "Found the below nodes "
    Write-host " "
    $nodes
    Write-host ""
    Write-host "Running the WMI query...."
    Write-host " "
    ForEach ($Node in $nodes)
    {
             Write-Host -NoNewline $node

                  if($Node.State -eq "Down")
                {

                        Write-Host -ForegroundColor White    " : Node down skipping"
                 }
       
            else
                {

               Try
               {
                #success

                  $result = (get-wmiobject -class "MSCluster_CLUSTER" -namespace "root\MSCluster" -authentication PacketPrivacy               -computername $Node -erroraction stop).__SERVER
                   Write-host -ForegroundColor Green      " : WMI query succeeded "
               }
               Catch
               {
             
                  #Failure

                  Write-host -ForegroundColor Red -NoNewline  " : WMI Query failed "
                  Write-host  "//"$_.Exception.Message
                }
          }
      
       }

    -----------------

    In the below example, you can see that one of the nodes failed.

    To correct the problem, you would need to run the below from an administrative command prompt on the "failed" node(s).

    cd c:\windows\system32\wbem
    mofcomp.exe cluswmi.mof

    Once the Cluster WMI has been added back, you can successfully open Failover Cluster Management.  There is no restart of the machine or the Cluster Service needed.

    Now, the next question you may have is, "well how did I get this way in the first place".  The answer is actually a command from the old days to "fix" the WMI repository.  In earlier days, if there was a problem with WMI, they would change to the above directory and run mofcomp.exe *.mof.  This will take all the .MOF (Managed Object File) files in the directory and recompile them.  The problem with this command is is does "all" of them. 


    When you install Roles and Features that utilize WMI, there is a .MOF file to add itself to the repository.  There is also an uninstall .MOF file to remove itself if the role/feature is removed.  When you run with the *.mof switch, it could run the install first and the uninstall second.  So you are basically removing the namespaces to fix a problem.  Cluster is one of the ones that has an uninstall file.  To correct it, you have to run the above.  Since there are multiple uninstall files for other roles/features, you may need to run with those install files as well.

    The proper ways of recompiling the WMI Repository is with the use of WINMGMT.EXE.

    WINMGMT
    http://msdn.microsoft.com/en-us/library/aa394525(v=vs.85).aspx

    WMI Troubleshooting: The Repository on Vista / Server 2008
    http://blogs.technet.com/b/askperf/archive/2008/07/11/wmi-troubleshooting-the-repository-on-vista-server-2008.aspx

    Note: The blog above is titled for Windows 2008, but does apply to Windows 2012/2012R2 as well.

    Shasank Prasad
    Senior Support Escalation Engineer
    Microsoft Corporation

  • An update for ADMT, and a few other things too.

    So, we’ve been quiet for a few months, which is extraordinarily embarrassing after I basically told everyone that we were going to not do that. The reality of what we do in support is that sometimes it’s “All Hands on Deck”, which ...read more
  • Setting up a Passive FTP Server in Windows Azure VM

    This post is authored by Lalitesh Kumar, Pradeep M G and reviewed by Avinash Venkat Reddy. Also special thanks to Adam Conkle and Craig Landis for providing the "points to consider from Azure SLB perspective". FTP may run in active or ...read more
  • Hyper-V Management Pack Extensions 2012 / 2012R2 Available

    We have published the last release of the Hyper-V Management Pack Extensions with support for Windows Server 2012 R2 Hyper-V.

    Please update your current HyperVMPE 2012 with this latest release from codeplex.

    Hyper-V Management Pack Extensions 2012 / 2012 R2
    http://hypervmpe2012.codeplex.com/

    New features on release 1.0.1.282

    • Support for Windows Server 2012 R2 hyper-V
    • Hyper-V Extended Replicas Monitoring and Dashboard
    • Minor code optimizations

     

    clip_image001

     

    Features on release 1.0.1.206

    • VMs Integration Services Version monitor
    • Hyper-V Replica Health Monitoring Dashboard and States
    • SMB Shares I/O latency monitor
    • VMs Snapshots monitoring
    • Managment Pack Performance improvements

    Included features from previous release

    • Hyper-V Hypervisor Logical processor monitoring
    • Hyper-V Hypervisor Virtual processor monitoring
    • Hyper-V Dynamic Memory monitoring
    • Hyper-V Virtual Networks monitoring
    • NUMA remote pages monitoring
    • SLAT enabled processor detection
    • Hyper-V VHDs monitoring
    • Physical and Logical Disk monitoring
    • Host Available Memory monitoring
    • Stopped and Failed VMs monitoring
    • Failed Live Migrations monitoring

     

    Requirements

    SCOM 2012 RTM or SCOM 2012 SP1
    Windows OS Management Pack 6.0.7061.0 or higher.
    http://www.microsoft.com/download/en/details.aspx?id=9296

    System Center 2012 Management Pack for Windows Server Hyper-V 2012 6.2.6641.0 or higher.
    http://www.microsoft.com/en-us/download/details.aspx?id=36438

    System Center Management Pack for Windows Server Cluster 6.0.7063.0 or higher.
    http://www.microsoft.com/download/en/details.aspx?id=2268

     

    clip_image002

     

    John Marlin
    Senior Support Escalation Engineer
    Microsoft Enterprise Platforms Support

  • Understanding the temporary drive on Windows Azure Virtual Machines

    Special thanks to our WATS Linux experts- Joao Madureira, Vittorio Franco Libertucci and Patrick Catuncan for reviewing this post. When you create a VM in Windows Azure you are provided with a temporary storage automatically. This temporary storage ...read more