<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Michael Phillips Blog &#187; System Center</title>
	<atom:link href="http://nukeitmike.com/blog/category/system-center/feed" rel="self" type="application/rss+xml" />
	<link>http://nukeitmike.com/blog</link>
	<description>My place to speak about things</description>
	<lastBuildDate>Fri, 03 Feb 2012 22:55:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SCVMM and P2V Adventures</title>
		<link>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/</link>
		<comments>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 19:11:08 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SCVMM]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Virtual Server]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[registry]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures/</guid>
		<description><![CDATA[Where I work, we have been using Microsoft Virtualization since Virtual Server was in Beta.&#160; Of course, we don’t necessarily use all of the functions and features of all the software we have, but one feature that I have used a good bit is the “Convert physical server” action in System Center Virtual Machine Manager.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p> Where I work, we have been using Microsoft Virtualization since Virtual Server was in Beta.&#160; Of course, we don’t necessarily use all of the functions and features of all the software we have, but one feature that I have used a good bit is the “Convert physical server” action in System Center Virtual Machine Manager.&#160; Until recently, I have used this with great success.&#160; We run IBM xSeries servers and I have converted something like 50 of them to virtual machines running on Hyper-V over the past several years.&#160; </p>
<p>In late 2007, we bought our first IBM Blade Center (which I am very happy with) and with that move we also decided to do “boot from SAN” for all of our blades.&#160; Just seemed to make sense that we wouldn’t put moving parts in a device that was designed to run so well without moving parts.&#160; </p>
<p>At the time, we were implementing a new ERP system and several “hanger on” type applications, and Hyper-V (virtualization in general) wasn’t something that was supported by a lot of the software we were deploying.&#160; So we have a lot of powerful blade servers, running a lot of low use applications.&#160; I have managed to eradicate several of those wasteful installations, but there are a set that I am only now getting buy-in to virtualize.&#160; </p>
<p>And today’s adventure begins with a Windows Server 2003 SP2 machine installed Boot from SAN on an IBM HS21-XM Blade server.</p>
<p>First attempt:</p>
<blockquote><p>1.&#160; Convert physical server</p>
<p>2.&#160; Virtual machine name </p>
<p>3.&#160; Scan System</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb.png" width="601" height="412" /></a></p>
<p>Looks good..</p>
<p>4. Conversion options</p>
</blockquote>
<blockquote><p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb1.png" width="555" height="484" /></a> </p>
<p>we can try the defaults..</p>
<p>5.&#160; Specify the processor and memory…&#160; </p>
<p>6.&#160; Select the host, path, network, start options, etc..</p>
<p>7.&#160; The job starts, the machine gets copied over, and …</p>
</blockquote>
<p>That try resulted in a blue screen loop..&#160; </p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb2.png" width="644" height="271" /></a> </p>
<p>Ok… time to try the Offline conversion:</p>
<blockquote><p>1. Proceed as above but select the Offline conversion option at step 4.</p>
<p>2.&#160; hmm..&#160; conversion warnings… must correct to proceed..</p>
<p><font size="2"><em>Warning (13246)         <br />No compatible drivers were identified for the device: Broadcom BCM5708S NetXtreme II GigE (NDIS VBD Client). The offline physical-to-virtual conversion requires a driver for this device. </em></font></p>
<p><font size="2"><em>Device Type: network adapter         <br />Device Description: Broadcom BCM5708S NetXtreme II GigE (NDIS VBD Client)          <br />Device Manufacturer: Broadcom Corporation          <br />Hardware IDs (listed in order of preference):          <br />B06BDRV\L2ND&amp;PCI_16AC14E4&amp;SUBSYS_03271014&amp;REV_12 </em></font></p>
<p><font size="2"><em>Compatible IDs (listed in order of preference):         <br />B06BDRV\L2ND&amp;PCI_16AC14E4&amp;SUBSYS_03271014          <br />B06BDRV\L2ND&amp;PCI_16AC14E4          <br />B06BDRV\L2ND</em></font></p>
<p><font size="2"><em>Recommended Action         <br />Create a new folder under C:\Program Files\Microsoft System Center Virtual Machine Manager 2008 R2\Driver Import on the Virtual Machine Manager server and then copy the necessary 32-bit Windows Vista driver package files for this device to the new folder. The driver package files include the driver (.sys) and installation (.inf and .cat) files. Check the device manufacturer&#8217;s website for the necessary drivers.</em></font></p>
<p>We don’t really need to do that right…</p>
</blockquote>
<p>Had some trouble with that part…&#160; finally figured out that the drivers that need to be placed in that folder are the “RIS” drivers.&#160; </p>
<p>Try number 3 (or 30, I lost count)…</p>
<blockquote><p>1. Proceed as try number 2, ignore warning because we did put the driver in there, and</p>
<p>Blue screen loop…</p>
</blockquote>
<p>Hmm… maybe this is just not meant to be.&#160; Did some more searching and found this article: </p>
<p><a title="http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx" href="http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx">http://blogs.msdn.com/b/robertvi/archive/2009/10/07/after-installing-hyper-v-integration-services-on-the-next-reboot-the-vm-displays-bsod-0x0000007b.aspx</a>&#160;</p>
<p>Basically, there are some people seeing the exact same blue screen that I was seeing, except this was after the install of updated integration components.&#160; But I wasn’t installing integration components yet… or was I?</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb3.png" width="358" height="346" /></a> </p>
<p>Ok so maybe it was getting that far and just “blowing up” after the install of the components.&#160; Good thing about this being a P2V, I can go back to the source machine pretty easy and check the registry:</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2010/06/image_thumb4.png" width="644" height="258" /></a> </p>
<p>Looks like we may have an answer here.&#160; Change the<em> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wdf01000\Group</em> entry to be <em>WdfLoadGroup</em> instead of <em>base.&#160; </em></p>
<p>It is my guess, that this would have worked even with the online conversion option. </p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2010/06/17/scvmm-and-p2v-adventures//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Influencers Blog</title>
		<link>http://nukeitmike.com/blog/2010/02/08/influencers-blog/</link>
		<comments>http://nukeitmike.com/blog/2010/02/08/influencers-blog/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 00:10:17 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2010/02/08/influencers-blog/</guid>
		<description><![CDATA[So the System Center guys have provided a place for people who work with System Center products to see a conglomeration of posts from various professionals who have registered to Blog about System Center products.  How fun… Blog Posts by System Center Influencers Get the feed. Below are the most recent posts from several of [...]]]></description>
			<content:encoded><![CDATA[<p>So the System Center guys have provided a place for people who work with System Center products to see a conglomeration of posts from various professionals who have registered to Blog about System Center products.  How fun…</p>
<blockquote>
<h3>Blog Posts by System Center Influencers</h3>
<p><a href="http://pipes.yahoo.com/pipes/pipe.run?_id=cc93b2ea75135f03d0dde6c2d8729387&amp;_render=rss"><img src="http://blogs.technet.com/photos/systemcenter_images/images/3309376/original.aspx" border="0" alt="" /></a><br />
<a href="http://pipes.yahoo.com/pipes/pipe.run?_id=1ff5e69ef093c5b44a22e5c8fd93d8d0&amp;_render=rss"><strong>Get the feed.</strong></a></p>
<p>Below are the most recent posts from several of the members of the <a href="http://technet.microsoft.com/en-us/ee532416.aspx">System Center Influencers Program</a>. Note that Microsoft does not review the content or endorse it in any way; we present this content in a feed form for your information and convenience. (In the event that the feed refuses to render due to the flakiness of the third-party feed service, simply use the feed embedded in the RSS icon above.)</p></blockquote>
<p><a href="http://blogs.technet.com/systemcenter/pages/blog-posts-by-system-center-influencers.aspx">Nexus SC: The System Center Team Blog : Blog Posts by System Center Influencers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2010/02/08/influencers-blog//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error installing DPM 2010 Beta</title>
		<link>http://nukeitmike.com/blog/2009/11/17/error-installing-dpm-2010-beta/</link>
		<comments>http://nukeitmike.com/blog/2009/11/17/error-installing-dpm-2010-beta/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 23:04:32 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Beta]]></category>
		<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/11/17/error-installing-dpm-2010-beta/</guid>
		<description><![CDATA[I was installing the DPM 2010 Beta (finally) and had an issue trying to get the SQL 2008 to install.&#160; Finally figured out that I had the install files stored too deeply in a network share.&#160; I figure this out by running the SQL install directly and when it when to check prereq’s it had [...]]]></description>
			<content:encoded><![CDATA[<p>I was installing the DPM 2010 Beta (finally) and had an issue trying to get the SQL 2008 to install.&#160; Finally figured out that I had the install files stored too deeply in a network share.&#160; I figure this out by running the SQL install directly and when it when to check prereq’s it had an error on one section and when you click for more info this is what you get:</p>
<blockquote><p>Rule &quot;Long path names to files on SQL Server installation media&quot; failed. </p>
<p>SQL Server installation media on a network share or in a custom folder can cause installation failure if the total length of the path exceeds 260 characters. To correct this issue, utilize Net Use functionality or shorten the path name to the SQL Server setup.exe file.</p>
</blockquote>
<p>So, I moved it to a shorter path and it installed just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/11/17/error-installing-dpm-2010-beta//feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Data Protection Manager 2010</title>
		<link>http://nukeitmike.com/blog/2009/10/13/data-protection-manager-2010/</link>
		<comments>http://nukeitmike.com/blog/2009/10/13/data-protection-manager-2010/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 20:51:36 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[Beta]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/10/13/data-protection-manager-2010/</guid>
		<description><![CDATA[So I am a bit late realizing this, but the Beta for DPM 2010 is available now on the Connect site.&#160; I haven’t read anything on it yet, so mainly I am just posting this to make myself look into it. https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=840&#38;DownloadID=22070]]></description>
			<content:encoded><![CDATA[<p>So I am a bit late realizing this, but the Beta for DPM 2010 is available now on the Connect site.&#160; I haven’t read anything on it yet, so mainly I am just posting this to make myself look into it.</p>
<blockquote><p><a title="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=840&amp;DownloadID=22070" href="https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=840&amp;DownloadID=22070">https://connect.microsoft.com/Downloads/DownloadDetails.aspx?SiteID=840&amp;DownloadID=22070</a></p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/10/13/data-protection-manager-2010//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Follow up to the DPM recovery point expiration issues</title>
		<link>http://nukeitmike.com/blog/2009/08/07/follow-up-to-the-dpm-recovery-point-expiration-issues/</link>
		<comments>http://nukeitmike.com/blog/2009/08/07/follow-up-to-the-dpm-recovery-point-expiration-issues/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 13:15:58 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/08/07/follow-up-to-the-dpm-recovery-point-expiration-issues/</guid>
		<description><![CDATA[Previously, I blogged about issues I was having where old recovery points were not being expired/removed from my DPM servers.&#160; I had to open a ticket with Microsoft, and worked with them to determine the cause, and since then, they have released a fix. The fix that Microsoft developed is here: http://www.microsoft.com/downloads/details.aspx?FamilyID=aee949aa-d3e7-4b0f-b718-00b7c20f1257&#38;displayLang=en A few people [...]]]></description>
			<content:encoded><![CDATA[<p>Previously, I blogged about issues I was having where old recovery points were not being expired/removed from my DPM servers.&#160; I had to open a ticket with Microsoft, and worked with them to determine the cause, and since then, they have released a fix.</p>
<p>The fix that Microsoft developed is here: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=aee949aa-d3e7-4b0f-b718-00b7c20f1257&amp;displayLang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=aee949aa-d3e7-4b0f-b718-00b7c20f1257&amp;displayLang=en</a></p>
<p>A few people have asked for the PowerShell script “show-pruneshadowcopies.ps1” that Microsoft provided and I mentioned in my previous post <a href="http://nukeitmike.com/blog/2009/04/12/dpm-does-not-remove-expired-recovery-points/" target="_blank">(here)</a>.&#160; The script looks like this:</p>
<blockquote><p>#displays all RP for data sources and shows which RP&#8217;s would be deleted by the regular pruneshadowcopies.ps1      <br /># Outputs to a logfile:&#160; C:\Program Files\Microsoft DPM\DPM\bin\SHOW-PRUNESHADOWCOPIES.LOG </p>
<p>#Author&#160;&#160;&#160; : Mike J     <br />#Date&#160;&#160;&#160; : 02/24/2009      <br />$version=&quot;V1.0&quot; </p>
<p>$date=get-date     <br />$logfile=&quot;SHOW-PRUNESHADOWCOPIES.LOG.txt&quot; </p>
<p>function GetDistinctDays([Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.ProtectionGroup] $group,      <br />[Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.Datasource] $ds)      <br />{&#160;&#160;&#160; <br />&#160;&#160;&#160; if($group.ProtectionType -eq [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.ProtectionType]::DiskToTape)      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; return 0      <br />&#160;&#160;&#160; }      <br />&#160;&#160;&#160; $scheduleList = get-policyschedule -ProtectionGroup $group -ShortTerm      <br />&#160;&#160;&#160; if($ds -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.FileSystem.FsDataSource])      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $jobType = [Microsoft.Internal.EnterpriseStorage.Dls.Intent.JobTypeType]::ShadowCopy      <br />&#160;&#160;&#160; }      <br />&#160;&#160;&#160; else      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $jobType = [Microsoft.Internal.EnterpriseStorage.Dls.Intent.JobTypeType]::FullReplicationForApplication      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if($ds.ProtectionType -eq [Microsoft.Internal.EnterpriseStorage.Dls.Intent.ReplicaProtectionType]::ProtectFromDPM)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return 2      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; }      <br />&#160;&#160;&#160; write-host&#160;&#160; &quot;Look for jobType $jobType&quot; </p>
<p>&#160;&#160;&#160; foreach($schedule in $scheduleList)     <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;schedule jobType {0}&quot; -f $schedule.JobType)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if($schedule.JobType -eq $jobType)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; return [Math]::Ceiling(($schedule.WeekDays.Length * $ds.RecoveryRangeinDays) / 7)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160; return 0     <br />} </p>
<p>function IsShadowCopyExternal($id)     <br />{      <br />&#160;&#160;&#160; $result = $false; </p>
<p>&#160;&#160;&#160; $ctx = New-Object -Typename Microsoft.Internal.EnterpriseStorage.Dls.DB.SqlContext      <br />&#160;&#160;&#160; $ctx.Open() </p>
<p>&#160;&#160;&#160; $cmd = $ctx.CreateCommand()     <br />&#160;&#160;&#160; $cmd.CommandText = &quot;select COUNT(*) from tbl_RM_ShadowCopy where shadowcopyid = &#8216;$id&#8217;&quot;&#160;&#160; <br />&#160;&#160;&#160; write-host $cmd.CommandText      <br />&#160;&#160;&#160; $countObj = $cmd.ExecuteScalar()      <br />&#160;&#160;&#160; write-host $countObj      <br />&#160;&#160;&#160; if ($countObj -eq 0)      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $result = $true      <br />&#160;&#160;&#160; }      <br />&#160;&#160;&#160; $cmd.Dispose()      <br />&#160;&#160;&#160; $ctx.Close() </p>
<p>&#160;&#160;&#160; return $result     <br />} </p>
<p>function IsShadowCopyInUse($id)     <br />{      <br />&#160;&#160;&#160; $result = $true; </p>
<p>&#160;&#160;&#160; $ctx = New-Object -Typename Microsoft.Internal.EnterpriseStorage.Dls.DB.SqlContext      <br />&#160;&#160;&#160; $ctx.Open() </p>
<p>&#160;&#160;&#160; $cmd = $ctx.CreateCommand()     <br />&#160;&#160;&#160; $cmd.CommandText = &quot;select ArchiveTaskId, RecoveryJobId from tbl_RM_ShadowCopy where ShadowCopyId = &#8216;$id&#8217;&quot;&#160;&#160; <br />&#160;&#160;&#160; write-host $cmd.CommandText      <br />&#160;&#160;&#160; $reader = $cmd.ExecuteReader()      <br />&#160;&#160;&#160; while($reader.Read())      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ($reader.IsDBNull(0) -and $reader.IsDBNull(1))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $result = $false      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; }       <br />&#160;&#160;&#160; $cmd.Dispose()      <br />&#160;&#160;&#160; $ctx.Close() </p>
<p>&#160;&#160;&#160; return $result     <br />} </p>
<p>&quot;**********************************&quot; &gt; $logfile     <br />&quot;Version $version&quot; &gt;&gt; $logfile      <br />get-date &gt;&gt; $logfile </p>
<p>$dpmservername = &amp;&quot;hostname&quot; </p>
<p>$dpmsrv = connect-dpmserver $dpmservername </p>
<p>if (!$dpmsrv)     <br />{      <br />&#160;&#160;&#160; write-host &quot;Unable to connect to $dpmservername&quot;      <br />&#160;&#160;&#160; exit 1      <br />} </p>
<p>write-host $dpmservername     <br />&quot;Selected DPM server = $DPMservername&quot; &gt;&gt; $logfile      <br />$pgList = get-protectiongroup $dpmservername      <br />if (!$pgList)      <br />{      <br />&#160;&#160;&#160; write-host&#160;&#160; &quot;No PGs found&quot;      <br />&#160;&#160;&#160; disconnect-dpmserver $dpmservername      <br />&#160;&#160;&#160; exit 2      <br />} </p>
<p>write-host(&quot;Number of ProtectionGroups = {0}&quot; -f $pgList.Length)     <br />$replicaList = @{}      <br />$latestScDateList = @{} </p>
<p>foreach($pg in $pgList)     <br />{      <br />&#160;&#160;&#160; $dslist = get-datasource $pg      <br />&#160;&#160;&#160; if ($dslist.length -gt 0)      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160; write-host(&quot;Number of datasources in this PG = {0}&quot; -f $dslist.length)      <br />&#160;&#160;&#160; (&quot;Number of datasources in this PG = {0}&quot; -f $dslist.length) &gt;&gt; $logfile      <br />&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; Foreach ($ds in $dslist)      <br />&#160;&#160;&#160; {       <br />&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;DS NAME=&#160; $ds&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160; (&quot;DS NAME=&#160; $ds&quot;) &gt;&gt;$logfile      <br />&#160;&#160;&#160; }      <br />&#160;&#160;&#160; foreach ($ds in $dslist)      <br />&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $rplist = get-recoverypoint $ds | where { $_.DataLocation -eq &#8216;Disk&#8217; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;Number of recovery points for $ds {0}&quot; -f $rplist.length)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot;Number of recovery points for $ds {0}&quot; -f $rplist.length) &gt;&gt;$logfile&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $countDistinctDays = GetDistinctDays $pg $ds      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;Number of days with fulls = $countDistinctDays&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot;Number of days with fulls = $countDistinctDays&quot;) &gt;&gt;$logfile      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; if($countDistinctDays -eq 0)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host&#160;&#160; &quot;D2T PG. No recovery points to delete&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;D2T PG. No recovery points to delete&quot; &gt;&gt;$logfile       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; continue;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $replicaList[$ds.ReplicaPath] = $ds.RecoveryRangeinDays      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $latestScDateList[$ds.ReplicaPath] = new-object DateTime 0,0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $lastDayOfRetentionRange = ([DateTime]::UtcNow).AddDays($ds.RecoveryRangeinDays * -1);&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;Distinct days to count = {0}. LastDayOfRetentionRange = {1} &quot; -f $countDistinctDays, $lastDayOfRetentionRange)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot;Distinct days to count = {0}. LastDayOfRetentionRange = {1} &quot; -f $countDistinctDays, $lastDayOfRetentionRange) &gt;&gt;$logfile      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $distinctDays = 0;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $lastDistinctDay = (get-Date).Date      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; $numberOfRecoveryPointsDeleted = 0 </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ($rplist)     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach ($rp in ($rplist | sort-object -property UtcRepresentedPointInTime -descending))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ($rp)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if ($rp.UtcRepresentedPointInTime.Date -lt $lastDistinctDay)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $distinctDays += 1      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $lastDistinctDay = $rp.UtcRepresentedPointInTime.Date      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot; $ds&quot;)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot; $ds&quot;) &gt;&gt;$logfile      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host(&quot;&#160; Recovery Point #$distinctdays RPtime={0}&quot; -f $rp.UtcRepresentedPointInTime)      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot;&#160; Recovery Point #$distinctdays RPtime={0}&quot; -f $rp.UtcRepresentedPointInTime) &gt;&gt;$logfile       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (($distinctDays -gt $countDistinctDays) -and ($rp.UtcRepresentedPointInTime -lt $lastDayOfRetentionRange))      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host (&quot;Recovery Point would be deleted ! &#8211; RPtime={0}&quot; -f $rp.UtcRepresentedPointInTime)&#160; -foregroundcolor red      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (&quot;Recovery Point would be deleted ! &#8211; RPtime={0} &lt;&lt;&lt;&lt;&lt;&lt;&lt;&quot; -f $rp.UtcRepresentedPointInTime) &gt;&gt;$logfile      <br />#remove-recoverypoint $rp -ForceDeletion -confirm:$true | out-null      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; $numberOfRecoveryPointsDeleted += 1      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host &quot;&#160;&#160;&#160; Recovery point not expired yet&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;&#160;&#160;&#160; Recovery point not yet expired&quot; &gt;&gt;$logfile      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; else      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host &quot;Got a NULL rp&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;Got a NULL rp&quot; &gt;&gt;$logfile       <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; write-host &quot;Number of RPs that would be deleted = $numberOfRecoveryPointsDeleted&quot;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;Number of RPs that would be deleted = $numberOfRecoveryPointsDeleted&quot; &gt;&gt;$logfile&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }      <br />&#160;&#160;&#160; }      <br />} </p>
<p>disconnect-dpmserver $dpmservername     <br />write-host &quot;Exiting from script&quot; </p>
<p>exit </p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/08/07/follow-up-to-the-dpm-recovery-point-expiration-issues//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DPM v 3</title>
		<link>http://nukeitmike.com/blog/2009/05/05/dpm-v-3/</link>
		<comments>http://nukeitmike.com/blog/2009/05/05/dpm-v-3/#comments</comments>
		<pubDate>Tue, 05 May 2009 18:41:51 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[roadmap]]></category>
		<category><![CDATA[Server 2008]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/05/05/dpm-v-3/</guid>
		<description><![CDATA[I just watched a webcast on DPM v3 and thought I would share some of what I got from that. In the last 18 months, DPM 2007 (v2) delivered application protection for Exchange ,SQL Server, SharePoint and virtualization environments running Virtual Server and Hyper-V.&#160; Disaster recovery with Iron Mountain, Local Datasource Protection and Client backups [...]]]></description>
			<content:encoded><![CDATA[<p>I just watched a webcast on DPM v3 and thought I would share some of what I got from that.</p>
<blockquote><p>In the last 18 months, DPM 2007 (v2) delivered application protection for Exchange ,SQL Server, SharePoint and virtualization environments running Virtual Server and Hyper-V.&#160; Disaster recovery with Iron Mountain, Local Datasource Protection and Client backups have also come out through DPM 2007, its first feature update and Service Pack 1.&#160; Now it is time to show what is coming next for DPM.&#160; </p>
</blockquote>
<p>A few top line items are support for the following:</p>
<ul>
<li> support for Exchange 14, and more granular restore</li>
<li>protect the entire SQL instance, and auto discover new DB’s</li>
<li>protect 1000’s of DBs per DPM server</li>
<li>End User Recovery by the SQL Admin (role based access from the DPM console)</li>
<li>Office 14 </li>
<li>AD appears as a data source in DPM UI </li>
<li>Image restore from centrally managed DPM server – executed locally</li>
<li>Support for Windows guest on VMware hosts</li>
<li>SAP running on MS SQL</li>
</ul>
<p>and some other improvements:</p>
<ul>
<li>up to 100 servers, 1000 laptops, 2000 databases per DPM server</li>
<li>management pack updates</li>
<li>automatic re-running of jobs and improved self-healing&#160; &#8212;&#160; This is a huge one in my book</li>
<li>auto protect new sources for SQL and MOSS</li>
<li>improved scheduling capabilities</li>
<li>one click DPM DR failover and failback</li>
<li>continued support for SAN (scripts/whitepapers)</li>
</ul>
<p>platform requirements:</p>
<ul>
<li>DPM Server must be 64-bit Windows Server 2008 R2</li>
<li>Integration capability with Windows EBS 2008 R2</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/05/05/dpm-v-3//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>P2V fails at Copy Hard Disk</title>
		<link>http://nukeitmike.com/blog/2009/04/16/p2v-fails-at-copy-hard-disk/</link>
		<comments>http://nukeitmike.com/blog/2009/04/16/p2v-fails-at-copy-hard-disk/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 03:20:35 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SCVMM]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[Disaster Recovery]]></category>
		<category><![CDATA[P2V]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/04/16/p2v-fails-at-copy-hard-disk/</guid>
		<description><![CDATA[I have been trying to get a P2V of a production system to use in our DR plan.&#160; I have limited opportunity to do this, because I am not allowed to impact performance during production hours for this system, and the definition of production hours is fairly broad.&#160; I have been trying for a couple [...]]]></description>
			<content:encoded><![CDATA[<p>I have been trying to get a P2V of a production system to use in our DR plan.&#160; I have limited opportunity to do this, because I am not allowed to impact performance during production hours for this system, and the definition of production hours is fairly broad.&#160; I have been trying for a couple of months to get this figured out. </p>
<p>We have our regularly scheduled maintenance once a month on the third Thursday of the month.&#160; This is pretty awesome in that we are at liberty (most months) to take everything down from 6PM until 6AM.&#160; I look at it as giving the company an evening off. <img src='http://nukeitmike.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, that being tonight, I had it in my mind that I was going to beat the OAS boxes.&#160; (Oracle Application Servers, part of our new JD Edwards ERP system.)&#160; They are an interesting setup, because they are using Apache, which as great as it may be, isn’t something I have much experience with.&#160; They have a loopback adapter for use with the load balancing setup that they are in.&#160; The load balancing is performed using our Cisco switches, which as great as they are, I don’t know very much about.&#160; All in all, they are pretty complicated to troubleshoot in this case, because there are so many pieces that I am not completely familiar with.&#160; </p>
<p>Such is life…</p>
<p>Anyway,&#160; after a lot of hunting and a lot of posting in forums, I found an event that actually led to a solution. I probably should have found this before, and maybe I did, but didn’t pay enough attention…&#160; </p>
<p>This is the exact symptoms that I had, and the errors in the event log were there, but the machine that I am trying to convert is a Windows 2003 Server, not Windows XP:</p>
<blockquote><p><strong>The P2V process fails at 40% when you try to run the P2V process by using Microsoft System Center Virtual Machine Manager </strong><strong>2008 on a source computer that is running Windows XP</strong></p>
<p>You use Microsoft System Center Virtual Machine Manager 2008 to run the Physical-to-Virtual (P2V) process on a source computer that is running Windows XP. However, the process fails at 40% complete, and the following error is logged in the event log on the computer that has System Center Virtual Machine Manager (SCVMM) 2008 installed:</p>
<pre>Type:		Warning
Date:		&lt;Date&gt;
Time:		&lt;Time&gt;
Event:		1706
Source:		Virtual Machine Manager
Category:	None
Computer:	&lt;Computer Name&gt;
Event Msg:	Job 7bfcd14a-884e-4a71-9984-3274622adeb7 (Physical-to-virtual conversion) failed to complete. 7bfcd14a-884e-4a71-9984-3274622adeb7 Physical-to-virtual conversion TaskFailed    </pre>
<p>Additionally, you will find the following error logged in the event log on the source computer:</p>
<pre>Type:		Error
Date:		&lt;Date&gt;
Time:		&lt;Time&gt;
Event:		15005
Source:		HTTP
Category:	None
Computer:	&lt;Computer Name&gt;
Event Msg:	Unable to bind to the underlying transport for 0.0.0.0:443. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine.  The data field contains the error number.
Data:
 00 00 04 00 02 00 52 00 00 00 00 00 9D 3A 00 C0		 . . . . . . R . . . . . . . . À
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00		 . . . . . . . . . . . . . . . .
 00 00 00 00 00 00 00 00 43 00 00 C0				 . . . . . . . . C . . À</pre>
</blockquote>
<p><a href="http://support.microsoft.com/kb/960262">The P2V process fails at 40% when you try to run the P2V process by using Microsoft System Center Virtual Machine Manager 2008 on a source computer that is running Windows XP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/04/16/p2v-fails-at-copy-hard-disk//feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DPM does not remove expired recovery points</title>
		<link>http://nukeitmike.com/blog/2009/04/12/dpm-does-not-remove-expired-recovery-points/</link>
		<comments>http://nukeitmike.com/blog/2009/04/12/dpm-does-not-remove-expired-recovery-points/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 03:04:17 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[recovery points]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/04/12/dpm-does-not-remove-expired-recovery-points/</guid>
		<description><![CDATA[I have been using DPM for about 7 months now.&#160; (I tested with it for a few months before that.)&#160; I never installed 2006, but 2007 seems to be working ok.&#160; I have a few complaints, but I have complaints about all the backup software that I have ever used.&#160; None of it really makes [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using DPM for about 7 months now.&#160; (I tested with it for a few months before that.)&#160; I never installed 2006, but 2007 seems to be working ok.&#160; I have a few complaints, but I have complaints about all the backup software that I have ever used.&#160; None of it really makes me happy.&#160; But on to the story…</p>
<p>I have 3 production DPM servers.&#160; One of them has a large number of protection group members.&#160; 8 Protection Groups, 328 Members.&#160; And that is just to protect 39 computers, but one of the SQL servers has about 150 databases.</p>
<p>I noticed the problem because I kept running out of space on the Recovery Point volumes.&#160; I had a particular 2008 Domain Controller that the system state recovery point volume would have to be extended every couple of days.&#160; I was keeping the recovery points on disk for 5 days, so it finally occurred to me that it should take more that 200 GB to keep 5 days work of recovery points for the system state.&#160; </p>
<p>I called and opened a ticket with Microsoft and we have been working on this for almost 2 months.&#160; So far, the best that I can tell is that the process that clears the old recovery points slowly eats up memory.&#160; This coupled with the fact that I have a lot of PG members, and means that the job frequently fails before it completes.&#160; If the number of recovery points continues to grow, the job that clears them (pruneshadowcopies) takes longer and takes more memory.&#160; This increases the chance that it will fail… </p>
<p>I don’t have a solution to this problem yet, other than a few work-arounds and a way to manually run the process:</p>
<ul>
<li>add more RAM to your DPM Server.&#160; Especially if you are running SQL locally on the box.</li>
<li>reduce the number of PG members.&#160; Fewer members, less recovery points, less chance the prune job will fail.</li>
<li>open the DPM Management Shell (DPM PowerShell) and run “pruneshadowcopies.ps1”.&#160; This will manually run the job that is triggered by DPM at midnight every night.&#160; If you have a lot of recovery points that haven’t been pruned, then this will probably fail (crash) a few times before it finishes.&#160; I have had it run all weekend before and then crash, and I have seen it run for just an hour and then crash.&#160; Keep running it, and it will eventually finish.&#160; </li>
<li>Hope that Microsoft comes up with a real fix soon…</li>
</ul>
<p>To see if you have this problem, there is a version of the pruneshadowcopies script that just shows the recovery points, without actually expiring them.&#160; The tech that I have been working with on my case sent it to me.&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/04/12/dpm-does-not-remove-expired-recovery-points//feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Remove DPM agent from the DPM agent console</title>
		<link>http://nukeitmike.com/blog/2009/04/06/remove-dpm-agent-from-the-dpm-agent-console/</link>
		<comments>http://nukeitmike.com/blog/2009/04/06/remove-dpm-agent-from-the-dpm-agent-console/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 14:06:53 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Data Protection Manager]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[uninstall]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/04/06/remove-dpm-agent-from-the-dpm-agent-console/</guid>
		<description><![CDATA[I blogged about this last year, but when I moved my blog, I lost part of the post (the picture) so I just deleted the post.&#160; Then I noticed that Google is still sending people here to find the answer, so… If you have DPM Protected Computer that goes away before you uninstall the agent, [...]]]></description>
			<content:encoded><![CDATA[<p>I blogged about this last year, but when I moved my blog, I lost part of the post (the picture) so I just deleted the post.&#160; Then I noticed that Google is still sending people here to find the answer, so…</p>
<p>If you have DPM Protected Computer that goes away before you uninstall the agent, it isn’t obvious how you get the agent removed from the console.&#160; Or at least it wasn’t immediately obvious to me.</p>
<ol>
<li>In the Management/Agents tab, right click on the agent (it will have a red x and “Unavailable” in the Agent Status column) and select Uninstall…</li>
<li>Verify your list of agents (you can select more than one)</li>
<li>Click on “Uninstall Agents”</li>
<li>Enter the appropriate credentials.&#160; This must be an account that has permissions to remove the agent from the DPM server, even though the Protected computer doesn’t exist, it still has to be a valid account.</li>
<li>Select the “Manually restart the selected servers later” radio button</li>
<li>Click ok.</li>
</ol>
<p>So far, that isn’t any different than any other client uninstall.&#160;&#160; At this point, you will have the option to close the window, and go on about your business.&#160; And if the protected computer was still available, that would be perfectly fine to do.&#160; But since the protected computer isn’t still available, you have to wait for the error to pop up.&#160; First you will see that the uninstall failed and then you get this message:</p>
<p><a href="http://nukeitmike.com/blog/wp-content/uploads/2009/04/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://nukeitmike.com/blog/wp-content/uploads/2009/04/image-thumb1.png" width="240" height="126" /></a> </p>
<p>Basically, it says, I couldn’t find that computer to remove the agent, you want me to just forget that it existed?&#160; You click on “Yes” and then the entry for that computer is removed from the DPM database.&#160; Now wasn’t that obvious?</p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/04/06/remove-dpm-agent-from-the-dpm-agent-console//feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>New Features in System Center Virtual Machine Manager 2008 R2</title>
		<link>http://nukeitmike.com/blog/2009/04/04/new-features-in-system-center-virtual-machine-manager-2008-r2/</link>
		<comments>http://nukeitmike.com/blog/2009/04/04/new-features-in-system-center-virtual-machine-manager-2008-r2/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 03:20:49 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Beta]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SCVMM]]></category>
		<category><![CDATA[Server 2008]]></category>
		<category><![CDATA[System Center]]></category>
		<category><![CDATA[Clustered Shared Volumes]]></category>
		<category><![CDATA[LIve Migration]]></category>
		<category><![CDATA[LUN]]></category>

		<guid isPermaLink="false">http://nukeitmike.com/blog/2009/04/04/new-features-in-system-center-virtual-machine-manager-2008-r2/</guid>
		<description><![CDATA[Of the new features coming in the R2 versions of Windows Server 2008 and SCVMM, I think these two are the obvious winners: Support for Live Migration: With Windows 2008 R2 adding support for Live migration, it’s now added as a new migration option in VMM R2. Live migration requires the source and destination host [...]]]></description>
			<content:encoded><![CDATA[<p>Of the new features coming in the R2 versions of Windows Server 2008 and SCVMM, I think these two are the obvious winners:</p>
<blockquote><p><b>Support for Live Migration</b>: With Windows 2008 R2 adding support for Live migration, it’s now added as a new migration option in VMM R2. Live migration requires the source and destination host to be part of a failover cluster and that the VM is on a shared storage. Live migration means that there is no user perceived downtime; since the VM’s memory pages are being transferred, the hosts’ processors need to be the same (manufacturer and processor architecture). Our competition claims that Vmotion doesn’t require clustering but this only works for planned downtime and not for unplanned downtime. By combining Live migration and clustering, Hyper-V addresses both planned and unplanned downtime.</p>
</blockquote>
<blockquote><p><b>Multiple VMs per LUN</b>: VMM 2008 didn’t allow placing multiple VMs per LUN even though Hyper-V allowed it and the reason was that the LUN ownership was on a per host basis. This meant that migrating any VM on that shared LUN would result in all other VMs being migrated as well which can result in a confusing user experience (I’ve blogged about this at length). With CSV (Clustered Shared Volumes) in Windows 2008 R2, a single LUN is accessible by all hosts within a cluster. This enables a VM that’s on a shared LUN to be migrated without affecting other VMs on that LUN. As a result, with VMM R2, we’ll allow multiple VMs to be placed on the same LUN if CSV is enabled on the cluster. </p>
</blockquote>
<blockquote><p style="margin-right: 0px" dir="ltr"><a title="http://blogs.technet.com/rakeshm/archive/2009/03/16/scvmm-2008-r2-beta-is-available-now.aspx" href="http://blogs.technet.com/rakeshm/archive/2009/03/16/scvmm-2008-r2-beta-is-available-now.aspx">http://blogs.technet.com/rakeshm/archive/2009/03/16/scvmm-2008-r2-beta-is-available-now.aspx</a></p>
</blockquote>
<p style="margin-right: 0px">That is from the beta release announcement for SCVMM.&#160; I have downloaded the beta, but haven’t had time lately to get it setup.&#160; I am hoping to work on that this coming week…&#160; </p>
]]></content:encoded>
			<wfw:commentRss>http://nukeitmike.com/blog/2009/04/04/new-features-in-system-center-virtual-machine-manager-2008-r2//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

