Loss of consistency with IDE-attached virtual hard disks when a Hyper-V host server experiences an unplanned restart

Applies To
Windows Server 2012 Standard Windows Server 2012 Datacenter Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter

Symptoms

If a Windows Server 2012 or Windows Server 2008 R2-based Hyper-V host experiences an unplanned restart, and if volumes on virtual hard disks connected to a virtual IDE controller are being used by virtual machines, the virtual hard disks on that server may no longer be consistent.

For example, assume that you have a virtualized domain controller on a Hyper-V host server. When the Hyper-V host server crashes or encounters a power outage, the Active Directory database may become corrupted, or the virtual machine fails to start, and you may receive an error message that resembles the following:

Note

c00002e2 Directory Services could not start because of the following error: %hs Error Status: 0x%x. Please shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information.

Cause

This issue occurs because the Hyper-V virtual IDE controller erroneously reports success if an operating system on the guest requests to disable the disk cache. This might result in an application issuing I/O operations that it believes are persisted to disk that are actually being allowed to reside in the disk cache, which would not be persisted across power failures of the Hyper-V host.

Go to the More information section for more background information.

Resolution

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix Download Available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft website:

http:⁠//support.microsoft.com/contactus/?ws=support Note The "Hotfix Download Available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

Prerequisites

To apply this hotfix, you must be running Windows Server 2012.

Registry information

To apply this hotfix, you do not have to make any changes to the registry.

Restart requirement

You do not have to restart the computer after you apply this hotfix.

Hotfix replacement information

This hotfix does not replace a previously released hotfix.

File information

The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.

Windows RT, Windows 8, and Windows Server 2012 file information notesImportant Windows 8 hotfixes and Windows Server 2012 hotfixes are included in the same packages. However, only "Windows 8" is listed on the Hotfix Request page. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under "Windows 8" on the page. Always refer to the "Applies To" section in articles to determine the actual operating system that each hotfix applies to.

  • The files that apply to a specific product, milestone (RTM, SPn), and service branch (LDR, GDR) can be identified by examining the file version numbers as shown in the following table:

    Version Product Milestone Service branch
    6.2.920 0.16 xxx Windows Server 2012 RTM GDR
    6.2.920 0.20 xxx and Windows Server 2012 RTM LDR
  • GDR service branches contain only those fixes that are widely released to address widespread, critical issues. LDR service branches contain hotfixes in addition to widely released fixes.

For all supported x64-based versions of Windows 8 and of Windows Server 2012

File name File version File size Date Time Platform
Vmwp.exe 6.2.9200.16623 4,040,704 25-May-2013 01:26 x64
Vmwp.exe 6.2.9200.20728 4,040,704 25-May-2013 03:26 x64

        
      

Note After you install this update, requests to disable the disk cache in the Hyper-V virtual IDE controller will fail. This is the expected behavior. You may receive a warning message generated by Active Directory in the guest machine operating system. This event 1539 warning message states that "Active Directory Domain Services could not disable the software-based disk write cache on the following hard disk," followed by the drive letter of the hard disk. This warning message is generated when the Hyper-V virtual IDE controller correctly refuses the request to disable the disk cache. However, Active Directory requests all database updates be completed without caching, which the Hyper-V storage subsystem ensures in order to prevent data loss from a power failure or other unexpected reboot.

Update information

Windows Server 2012Install update rollup 2855336 on the Windows Server 2012-based Hyper-V host.

Windows Server 2008 R2Install update 2853952 on the Windows Server 2008 R2-based Hyper-V host. Also, install update 2853952 on the guest if the guest is running Windows Server 2008 R2 or Windows 7.

This update is available from Windows Update and the Microsoft Download Center.

Operating system Update
All supported x86-based versions of Windows7 Download Download the update package now.
All supported x64-based versions of Windows7 Download Download the update package now.
All supported x64-based versions of Windows Server 2008 R2 Download Download the update package now.
All supported IA64-based versions of Windows Server 2008 R2 Download Download the update package now.

For more information about how to download Microsoft support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help prevent any unauthorized changes to the file.

Restart requirementA restart is required for the update to resolve this issue.

File information

The global version of this update installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.

Windows 7 and Windows Server 2008 R2 file information notes

  • The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the "Additional file information" section. MUM, MANIFEST, and the associated security catalog (.cat) files, are very important to maintain the state of the updated components. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.

For all supported x86-based versions of Windows 7

File name File version File size Date Time Platform
Aliide.sys 1.2.0.0 14,400 14-Jul-2009 01:26 x86
Amdide.sys 6.1.7600.16385 14,912 14-Jul-2009 01:26 x86
Atapi.sys 6.1.7600.16385 21,584 14-Jul-2009 01:26 x86
Ataport.sys 6.1.7601.18231 133,056 05-Aug-2013 01:56 x86
Cmdide.sys 2.0.7.0 15,952 14-Jul-2009 01:26 x86
Intelide.sys 6.1.7600.16385 15,424 14-Jul-2009 01:20 x86
Msahci.sys 6.1.7601.17514 28,032 20-Nov-2010 12:30 x86
Pciide.sys 6.1.7600.16385 12,368 14-Jul-2009 01:20 x86
Pciidex.sys 6.1.7600.16385 42,560 14-Jul-2009 01:19 x86
Viaide.sys 6.0.6000.170 16,976 14-Jul-2009 01:19 x86
Aliide.sys 1.2.0.0 14,400 14-Jul-2009 01:26 x86
Amdide.sys 6.1.7600.16385 14,912 14-Jul-2009 01:26 x86
Atapi.sys 6.1.7600.16385 21,584 14-Jul-2009 01:26 x86
Ataport.sys 6.1.7601.22414 133,056 05-Aug-2013 08:59 x86
Cmdide.sys 2.0.7.0 15,952 14-Jul-2009 01:26 x86
Intelide.sys 6.1.7600.16385 15,424 14-Jul-2009 01:20 x86
Msahci.sys 6.1.7601.17514 28,032 20-Nov-2010 12:30 x86
Pciide.sys 6.1.7600.16385 12,368 14-Jul-2009 01:20 x86
Pciidex.sys 6.1.7600.16385 42,560 14-Jul-2009 01:19 x86
Viaide.sys 6.0.6000.170 16,976 14-Jul-2009 01:19 x86

For all supported x64-based versions of Windows 7 and Windows Server 2008 R2

File name File version File size Date Time Platform
Hvax64.exe 6.1.7601.22414 606,720 05-Aug-2013 07:14 x64
Hvboot.sys 6.1.7601.22414 118,208 05-Aug-2013 08:33 x64
Hvix64.exe 6.1.7601.22414 635,392 05-Aug-2013 07:14 x64
Vmwp.exe 6.1.7601.18231 3,682,816 05-Aug-2013 01:18 x64
Vmwp.exe 6.1.7601.22414 3,682,816 05-Aug-2013 07:28 x64
Aliide.sys 1.2.0.0 15,440 14-Jul-2009 01:52 x64
Amdide.sys 6.1.7600.16385 15,440 14-Jul-2009 01:52 x64
Atapi.sys 6.1.7600.16385 24,128 14-Jul-2009 01:52 x64
Ataport.sys 6.1.7601.18231 155,584 05-Aug-2013 02:25 x64
Cmdide.sys 2.0.7.0 17,488 14-Jul-2009 01:52 x64
Intelide.sys 6.1.7600.16385 16,960 14-Jul-2009 01:48 x64
Msahci.sys 6.1.7601.17514 31,104 20-Nov-2010 13:33 x64
Pciide.sys 6.1.7600.16385 12,352 14-Jul-2009 01:45 x64
Pciidex.sys 6.1.7600.16385 48,720 14-Jul-2009 01:45 x64
Viaide.sys 6.0.6000.170 17,488 14-Jul-2009 01:45 x64
Aliide.sys 1.2.0.0 15,440 14-Jul-2009 01:52 x64
Amdide.sys 6.1.7600.16385 15,440 14-Jul-2009 01:52 x64
Atapi.sys 6.1.7600.16385 24,128 14-Jul-2009 01:52 x64
Ataport.sys 6.1.7601.22414 155,584 05-Aug-2013 08:33 x64
Cmdide.sys 2.0.7.0 17,488 14-Jul-2009 01:52 x64
Intelide.sys 6.1.7600.16385 16,960 14-Jul-2009 01:48 x64
Msahci.sys 6.1.7601.17514 31,104 20-Nov-2010 13:33 x64
Pciide.sys 6.1.7600.16385 12,352 14-Jul-2009 01:45 x64
Pciidex.sys 6.1.7600.16385 48,720 14-Jul-2009 01:45 x64
Viaide.sys 6.0.6000.170 17,488 14-Jul-2009 01:45 x64

For all supported IA-64-based versions of Windows Server 2008 R2

File name File version File size Date Time Platform
Aliide.sys 1.2.0.0 19,024 14-Jul-2009 01:57 IA-64
Atapi.sys 6.1.7600.16385 44,624 14-Jul-2009 01:57 IA-64
Ataport.sys 6.1.7601.18231 372,160 05-Aug-2013 01:35 IA-64
Cmdide.sys 2.0.7.0 26,704 14-Jul-2009 01:57 IA-64
Intelide.sys 6.1.7600.16385 21,072 14-Jul-2009 01:58 IA-64
Msahci.sys 6.1.7601.17514 72,064 20-Nov-2010 10:33 IA-64
Pciide.sys 6.1.7600.16385 15,952 14-Jul-2009 01:58 IA-64
Pciidex.sys 6.1.7600.16385 115,792 14-Jul-2009 01:58 IA-64
Viaide.sys 6.0.6000.170 27,712 14-Jul-2009 01:56 IA-64
Aliide.sys 1.2.0.0 19,024 14-Jul-2009 01:57 IA-64
Atapi.sys 6.1.7600.16385 44,624 14-Jul-2009 01:57 IA-64
Ataport.sys 6.1.7601.22414 372,160 05-Aug-2013 07:44 IA-64
Cmdide.sys 2.0.7.0 26,704 14-Jul-2009 01:57 IA-64
Intelide.sys 6.1.7600.16385 21,072 14-Jul-2009 01:58 IA-64
Msahci.sys 6.1.7601.17514 72,064 20-Nov-2010 10:33 IA-64
Pciide.sys 6.1.7600.16385 15,952 14-Jul-2009 01:58 IA-64
Pciidex.sys 6.1.7600.16385 115,792 14-Jul-2009 01:58 IA-64
Viaide.sys 6.0.6000.170 27,712 14-Jul-2009 01:56 IA-64

Additional file information for Windows 7 and Windows Server 2008 R2

      

Additional files for all supported x86-based versions of Windows 7

File property Value
File name X86_mshdc.inf_31bf3856ad364e35_6.1.7601.18231_none_df26d4d57fdef5b0.manifest
File version Not applicable
File size 6,632
Date (UTC) 06-Aug-2013
Time (UTC) 19:46
Platform Not applicable
File name X86_mshdc.inf_31bf3856ad364e35_6.1.7601.22414_none_dfc9143c98e9a6c4.manifest
File version Not applicable
File size 6,632
Date (UTC) 06-Aug-2013
Time (UTC) 19:46
Platform Not applicable

Additional files for all supported x64-based versions of Windows 7 and Windows Server 2008 R2

File property Value
File name Amd64_453b23b4799e3d18f0b6f5e824c33719_31bf3856ad364e35_6.1.7601.22414_none_f4f4b5b1e2c8c32c.manifest
File version Not applicable
File size 1,055
Date (UTC) 06-Aug-2013
Time (UTC) 19:42
Platform Not applicable
File name Amd64_f3bc7e4abef692ac454474ea9ddd5d7c_31bf3856ad364e35_6.1.7601.18231_none_f7049554b2792c32.manifest
File version Not applicable
File size 703
Date (UTC) 06-Aug-2013
Time (UTC) 19:42
Platform Not applicable
File name Amd64_microsoft-hyper-v-drivers-hypervisor_31bf3856ad364e35_6.1.7601.22414_none_8f00db0795429115.manifest
File version Not applicable
File size 4,163
Date (UTC) 05-Aug-2013
Time (UTC) 09:10
Platform Not applicable
File name Amd64_microsoft-hyper-v-vstack-vmwp_31bf3856ad364e35_6.1.7601.18231_none_934dd685767b40bb.manifest
File version Not applicable
File size 276,830
Date (UTC) 05-Aug-2013
Time (UTC) 02:46
Platform Not applicable
File name Amd64_microsoft-hyper-v-vstack-vmwp_31bf3856ad364e35_6.1.7601.22414_none_93f015ec8f85f1cf.manifest
File version Not applicable
File size 276,830
Date (UTC) 05-Aug-2013
Time (UTC) 09:11
Platform Not applicable
File name Amd64_mshdc.inf_31bf3856ad364e35_6.1.7601.18231_none_3b457059383c66e6.manifest
File version Not applicable
File size 6,636
Date (UTC) 06-Aug-2013
Time (UTC) 19:52
Platform Not applicable
File name Amd64_mshdc.inf_31bf3856ad364e35_6.1.7601.22414_none_3be7afc0514717fa.manifest
File version Not applicable
File size 6,636
Date (UTC) 06-Aug-2013
Time (UTC) 19:52
Platform Not applicable

Additional files for all supported IA-64-based versions of Windows Server 2008 R2

File property Value
File name Ia64_mshdc.inf_31bf3856ad364e35_6.1.7601.18231_none_df2878cb7fdcfeac.manifest
File version Not applicable
File size 6,112
Date (UTC) 06-Aug-2013
Time (UTC) 19:42
Platform Not applicable
File name Ia64_mshdc.inf_31bf3856ad364e35_6.1.7601.22414_none_dfcab83298e7afc0.manifest
File version Not applicable
File size 6,112
Date (UTC) 06-Aug-2013
Time (UTC) 19:42
Platform Not applicable

      

      

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

There are various caching layers in the virtualization stack that affect consistency semantics of applications running on the virtual machines. For more information about this, refer to KB 2801713 .

Virtual hard disks report to a guest operating system that write-caching is enabled, and disks reject requests to disable write-caching that are made by the guest operating system. This behavior is necessary for the following reasons:

  • The underlying storage might have an always-on write cache that cannot be disabled. This is because the virtual disk might be migrated to a different disk on the same host (live storage migration), or to a different host (live migration).

  • Hyper-V cannot assume that all virtual machines that are running on the same disk will have the same disk cache settings.

Applications that require data integrity semantics across a power failure must ensure that writes are committed to non-volatile storage. One method to accomplish this is to disable the disk cache so that that all writes are committed to the hard disk before reporting success. If the request to disable the disk cache is refused, the application must take additional steps to ensure consistency.

Before the update is installed, when Active Directory would try to disable the disk cache, Hyper-V would incorrectly report that this operation was successful. Then, Active Directory would perform file operations under the assumption that no caching was occurring, even though caching was occurring.

After you install this update, Active Directory will try to disable the disk cache, and Hyper-V will correctly report that this is not possible. Then, Active Directory will enable FUA (Force Unit Access) to make sure the data is not cached.

When Active Directory tries to disable the disk cache, event ID 1539 is logged.

References

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates