<?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>Edwin M SarmientoThe Lifeblood Across The Wire &#8211; Edwin M Sarmiento</title>
	<atom:link href="https://www.edwinmsarmiento.com/the-lifeblood-across-the-wire/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.edwinmsarmiento.com</link>
	<description>Intentional Excellence</description>
	<lastBuildDate>Mon, 13 Apr 2026 21:00:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">84283043</site>		<item>
		<title>The Lifeblood Across The Wire</title>
		<link>https://www.edwinmsarmiento.com/the-lifeblood-across-the-wire/</link>
		<comments>https://www.edwinmsarmiento.com/the-lifeblood-across-the-wire/#comments</comments>
		<pubDate>Mon, 22 Feb 2016 21:08:35 +0000</pubDate>
		<dc:creator>Edwin M Sarmiento</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Availability Groups]]></category>
		<category><![CDATA[SQL Server AlwaysOn]]></category>
		<guid isPermaLink="false">http://www.edwinmsarmiento.com/?p=2495</guid>

				<description><![CDATA[Five Things That You Need To Consider When Deploying SQL Server Availability Group Replicas in a Disaster Recovery Site - Part 3. SQL Server Availability Groups have been around for a while. But not a lot of organizations have implemented them yet mainly because they haven’t upgraded their database platforms to SQL Server 2012/2014. As more and more organizations move away from older versions and into the newer ones, Availability Groups will become much more common. And [&#8230;]]]></description>
					<content:encoded><![CDATA[<p><em id="gnt_postsubtitle" style="color:#770005;font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:1.3em;line-height:1.2em;font-weight:normal;font-style:italic;">Five Things That You Need To Consider When Deploying SQL Server Availability Group Replicas in a Disaster Recovery Site - Part 3</em></p> <img width="654" height="455" src="https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate.jpg" class="featured-image wp-post-image" alt="" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate.jpg 654w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate-300x209.jpg 300w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate-518x360.jpg 518w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate-82x57.jpg 82w, https://www.edwinmsarmiento.com/wp-content/uploads/2015/10/heartrate-600x417.jpg 600w" sizes="(max-width: 654px) 100vw, 654px" /><p><span class="dropcap" title="S">S</span>QL Server Availability Groups have been around for a while. But not a lot of organizations have implemented them yet mainly because they haven’t upgraded their database platforms to SQL Server 2012/2014. As more and more organizations move away from older versions and into the newer ones, Availability Groups will become much more common. And with the Basic Availability Groups feature coming up in SQL Server 2016 Standard Edition, it will eventually become a viable replacement for the already deprecated Database Mirroring feature.</p>
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;">This blog post is the third installation in a series that talks about the five things that you need to consider when deploying SQL Server Availability Group Replicas in a Disaster Recovery Site</div>
<p>In the <a href="https://www.edwinmsarmiento.com/five-things-that-you-need-to-consider-when-deploying-sql-server-availability-groups-1/" target="_blank" rel="noopener">first installation in this series</a>, I talked about how Active Directory Domain Services (ADDS) authentication and replication affect a SQL Server Availability Group implementation in a disaster recovery (DR) site. The <a href="https://www.edwinmsarmiento.com/much-ado-about-dns/" target="_blank" rel="noopener">second installation in this series</a> is about Domain Name System (DNS.) Now, as a SQL Server professional, the first two items mentioned are things that we can consider outside of our job description. We could easily dismiss those as &#8220;<strong>someone else&#8217;s job.</strong>&#8221; But this one is something that we are responsible for the moment we start managing SQL Server Availability Groups. I consider this the lifeblood of the Windows Server Failover Cluster (WSFC): the <strong>heartbeat</strong>.</p>
<p>The <span style="color: #0000ff;"><strong>cluster heartbeat</strong></span> is a private communications channel within the cluster used to monitor the status and health of all the nodes. I like to call it the cluster nodes’ “<span style="color: #800000;"><strong>secret language</strong></span>” to pass messages around each other to make sure they have each others’ backs. In a WSFC where the nodes are in the same data center, server administrators barely paid attention to the heartbeat because the network connectivity between the nodes have relatively good performance or quality of service (QoS.) I bet that nobody ever configured the heartbeat for WSFC where the nodes are in the same data center.</p>
<p>Now, you might be thinking, &#8220;<span style="color: #800000;"><em><strong>isn&#8217;t that the job of the network engineer?</strong></em></span>&#8221; Yes and No. <strong>Yes,</strong> because it&#8217;s the network engineers job to make sure that the network QoS meets the service level agreement of whatever applications use it. I mean, let&#8217;s face it. You do complain when your Internet connection is slow. And, <strong>no</strong>, because they don&#8217;t have any idea about the application other than the amount of data that is being sent and received thru the network. That makes it <strong>our</strong> responsibility.</p>
<h2>How the Heartbeat Affects the WSFC</h2>
<p>In a <a href="https://www.edwinmsarmiento.com/the-windows-server-failover-cluster-properties-that-we-almost-always-ignore/" target="_blank" rel="noopener">previous blog post</a>, I talked about the WSFC properties that affect the heartbeat behavior for nodes in the same data center. This behavior also affects quorum (I&#8217;ll save this for <a href="https://www.edwinmsarmiento.com/every-vote-matters/" target="_blank" rel="noopener">part 4</a> of this series.) If the WSFC nodes are in the same data center, there wouldn&#8217;t be much of an issue communicating with each other to determine and decide about the health of the WSFC.</p>
<p>But if there are WSFC nodes in a remote location like that of a disaster recovery (DR) site, things would be slightly different. I use the example of sending a text message to your friend on a regular basis to determine how your friend is doing.</p>
<p><a href="http://www.flaticon.com/free-icon/smartphone-and-speech-bubble_89" target="_blank" rel="noopener"><img decoding="async" class="aligncenter size-full wp-image-2499" src="https://www.edwinmsarmiento.com/wp-content/uploads/2016/02/smartphone-and-speech-bubble.png" alt="smartphone-and-speech-bubble" width="128" height="128" srcset="https://www.edwinmsarmiento.com/wp-content/uploads/2016/02/smartphone-and-speech-bubble.png 128w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/02/smartphone-and-speech-bubble-35x35.png 35w, https://www.edwinmsarmiento.com/wp-content/uploads/2016/02/smartphone-and-speech-bubble-82x82.png 82w" sizes="(max-width: 128px) 100vw, 128px" /></a></p>
<h3>When The WSFC Nodes Are In The Same Data Center</h3>
<p>Imagine that you and your friend send text messages to each other to check how each one is doing. You both agree that you need to send a text message every second (I know that could become annoying) and if you don&#8217;t receive any text messages after five consecutive tries, you panic and call the National Guard (OK, maybe not that extreme but you get the picture.) Sending text messages is similar to a WSFC heartbeat. The delay &#8211; every second &#8211; is similar to the <strong><a href="https://msdn.microsoft.com/en-us/library/jj151938(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetDelay</a></strong> property of the WSFC; the amount of time it takes to send the heartbeat and ask the next “<em><strong>are you OK?</strong></em>” question. This property value is set in milliseconds where the default value is 1000 or one (1) second. That means the WSFC will ask the “<em><strong>are you OK?</strong></em>” question to all of the nodes every second. The number of times before you panic is similar to the <strong><a href="https://msdn.microsoft.com/en-us/library/jj151939(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetThreshold</a> </strong>property of the WSFC; it defines how many times the question wasn’t answered before concluding that there is something wrong. This property value is set in numeric type where the default value is five (5.) That means the WSFC will ask the “<em><strong>are you OK?</strong></em>” question five times and not get a response consecutively.</p>
<h3>When The WSFC Nodes Are In Different Data Centers</h3>
<p>If you are sending text messages within the same city, the response will be relatively fast. Imagine sending a text message to a different country in a different time zone. Responses will take a while. Would you still consider the same agreements you had with your friend about sending text messages every second and panic if you haven&#8217;t received any response after five attempts? I doubt it. You will reconsider the original agreement, taking into account the amount of time it takes to send and receive the text message. I&#8217;m sure it will be longer. You can change it to maybe sending a text message every three (3) seconds instead of every second and maybe only panicking after not getting any responses after seven consecutive tries.</p>
<p>These are similar to the <strong><a href="https://msdn.microsoft.com/en-us/library/jj151938(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetDelay</a> </strong>and<strong>  <strong><a href="https://msdn.microsoft.com/en-us/library/jj151939(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetThreshold</a> </strong></strong>properties. The <strong><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151927(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetDelay</a> </strong>property refers to the amount of time it takes to send the heartbeat on WSFC nodes in a different network subnet (or different data center) whereas the <strong><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151928(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetThreshold</a></strong> property refers to how many times the heartbeat didn&#8217;t get a response from WSFC nodes in a different subnet (or different data center.) Unfortunately, the default values for the <strong><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151927(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetDelay</a> </strong>and<strong> <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151928(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetThreshold</a> </strong>properties are the same as the <strong><a href="https://msdn.microsoft.com/en-us/library/jj151938(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetDelay</a> </strong>and<strong>  <strong><a href="https://msdn.microsoft.com/en-us/library/jj151939(v=vs.85).aspx" target="_blank" rel="noopener">SameSubnetThreshold</a> </strong></strong>properties, respectively.</p>
<p>This means that when your Availability Groups stretch across data centers, you need to pay attention to the network QoS so you can adjust these property values accordingly, You certainly don&#8217;t want the network latency between your production data center and DR data center dictating whether or not the WSFC stays online.</p>
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><span style="color: #800000;"><strong>UPDATE:</strong></span> Windows Server 2016 introduced two (2) new failover cluster parameters &#8211; <strong><a href="https://msdn.microsoft.com/en-us/library/mt791992(v=vs.85).aspx" target="_blank" rel="noopener">CrossSiteDelay</a></strong> and <strong><a href="https://msdn.microsoft.com/en-us/library/mt791993(v=vs.85).aspx" target="_blank" rel="noopener">CrossSiteThreshold</a> </strong>&#8211; to make way for the site awareness feature for failover clusters. This makes it easier to manage failover cluster nodes in different sites. Additional information about site awareness in Windows Server 2016 Failover Cluster can be found in <a href="https://blogs.msdn.microsoft.com/clustering/2015/08/19/site-aware-failover-clusters-in-windows-server-2016/" target="_blank" rel="noopener">this blog post</a>.</div>
<h3>Redefining The Original Agreement</h3>
<p>We can modify the <strong><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151927(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetDelay</a> </strong>and<strong> <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/jj151928(v=vs.85).aspx" target="_blank" rel="noopener">CrossSubnetThreshold</a> </strong>properties accordingly but not without consulting your network engineers. They have a very good understanding of what is going on in your network and can advise you on the appropriate values for these two. To modify these properties, we need to use Windows PowerShell. Below is a sample code to change these properties.</p>
<pre class="brush: powershell; title: ; notranslate">

#Assign the output of Get-Cluster PowerShell cmdlet to a variable
$clust = Get-Cluster

#Modify the CrossSubnetDelay property of the WSFC to 3000 milliseconds
$clust.CrossSubnetDelay = 3000

#Modify the CrossSubnetThreshold property of the WSFC to 7
$clust.CrossSubnetThreshold = 7

</pre>
<p>&nbsp;</p>
<p>I just used these values to illustrate the point. The appropriate values will depend on your network configuration. Also, be careful not to mask network latency issues by changing these property values. I&#8217;ve seen cases where adjusting properties like these (and other configuration settings that are influenced by network latency) are used as band-aid fixes to hide the real issue. If there are latency issues with the network, assist the network engineers in addressing it so it does not escalate into something more problematic.</p>
<h2>Next Steps</h2>
<p>Evaluate the WSFC that your existing SQL Server Availability Groups deployment are running on top of. Modifying the <strong>CrossSubnetDelay</strong> and <strong>CrossSubnetThreshold</strong> properties can help maintain a highly available database architecture.</p>
<h3>Additional Resources</h3>
<ul>
<li><a href="https://www.edwinmsarmiento.com/the-windows-server-failover-cluster-properties-that-we-almost-always-ignore/" target="_blank" rel="noopener">The Windows Server Failover Cluster Properties That We Almost Always Ignore</a></li>
<li><a href="http://learnsqlserverhadr.com/unit/understanding-heartbeat-settings-for-multi-subnet-windows-server-failover-cluster/" target="_blank" rel="noopener">Online Course Module: Understanding Heartbeat Settings for Multi-Subnet Windows Server Failover Cluster</a></li>
<li><a href="https://www.mssqltips.com/sqlservertip/2533/sql-server-2012-multisubnet-cluster-part-2/" target="_blank" rel="noopener">SQL Server 2012 Multi-Subnet Cluster Part 2</a> (Tuning Cluster heartbeat Settings)</li>
</ul>
<p>&nbsp;</p>
<hr />
<h2>Feeling helpless and confused when dealing with Windows Server Failover Clustering  (WSFC) for your SQL Server databases?</h2>
<p>You&#8217;re not alone. I&#8217;ve heard the same thing from thousands of SQL Server administrators throughout my entire career. These are just a few of them.</p>
<p><span style="color: #0000ff;"><em>&#8220;How do I properly size the server, storage, network and all the AD settings which we do not have any control over?&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I don&#8217;t quite understand how the Windows portion of the cluster operates and interacts with what SQL controls.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I&#8217;m unfamiliar with multi-site clustering.&#8221;</em></span></p>
<p><span style="color: #0000ff;">&#8220;<em>Our servers are setup and configured by our parent company, so we don&#8217;t really get much experience with setting up Failover Clusters.</em>&#8220;</span></p>
<p>If you feel the same way, then, this course is for you. It&#8217;s a simple and easy-to-understand way for you to learn and master how Windows Server Failover Clusters can keep your SQL Server databases highly available. Be confident in designing, building and managing SQL Server databases running on Windows Server Failover Clusters.</p>
<p>But don&#8217;t take my word for it. Here&#8217;s what my students have to say about the course.</p>
<p><span style="color: #0000ff;"><em>&#8220;The techniques presented were very valuable, and used them the following week when I was paged on an issue.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;Thanks again for giving me confidence and teaching all this stuff about failover clusters.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I’m so gladdddddd that I took this course!!&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;Now I got better knowledge to setup the Windows FC ENVIRONMENT (DC) for SQL Server FCI and AlwaysON.&#8221;</em></span></p>
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"><span style="color: #800000;"><strong>NOTE:</strong></span> Registration for my online course <a href="https://learnsqlserverhadr.com/" target="_blank" rel="noopener"><span style="color: #800000;"><strong>Windows Server Failover Clustering (WSFC) for the Smart SQL Server DBA</strong></span></a> will re-open in <span style="color: #0000ff;"><strong>January 2018</strong></span>. But be sure you do not miss out. This will be the last time that the course will be offered. After this, you will no longer be able to register for the course.</div>
<hr />
<div style="background-color:#eeeeee;border:1px solid #D6D6D6;font-family:arial,helvetica,sans-serif;font-size:15px;line-height:20px;margin:8px 0 20px;padding:15px 20px;"></p>
<p><!-- Begin MailChimp Signup Form --></p>
<style type="text/css">
	#mc_embed_signup{background:#fff; clear:left; font:14px Helvetica,Arial,sans-serif; }<br />	/* Add your own MailChimp form style overrides in your site stylesheet or in this style block.<br />	   We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */<br /></style>
<p>&nbsp;</p>
<div id="mc_embed_signup">
<form id="mc-embedded-subscribe-form" class="validate" action="//EdwinMSarmiento.us4.list-manage.com/subscribe/post?u=08cdb91518ee67ce09d618509&amp;id=46cff8469f" method="post" name="mc-embedded-subscribe-form" novalidate="" target="_blank">
<div id="mc_embed_signup_scroll">
<h2>Get notified about the next batch of enrollment so you don&#8217;t miss out.</h2>
<div class="indicates-required"><span class="asterisk">*</span> indicates required</div>
<div class="mc-field-group"><label for="mce-EMAIL">Email Address <span class="asterisk">*</span><br />
</label><br />
<input id="mce-EMAIL" class="required email" name="EMAIL" type="email" value="" /></div>
<div class="mc-field-group"><label for="mce-FNAME">First Name </label><br />
<input id="mce-FNAME" class="" name="FNAME" type="text" value="" /></div>
<div id="mce-responses" class="clear"></div>
<p><!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--></p>
<div style="position: absolute; left: -5000px;" aria-hidden="true"><input tabindex="-1" name="b_08cdb91518ee67ce09d618509_46cff8469f" type="text" value="" /></div>
<div class="clear"><input id="mc-embedded-subscribe" class="button" name="subscribe" type="submit" value="Keep me updated!" /></div>
</div>
</form>
</div>
<p><script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script><script type='text/javascript'>(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);</script><br />
<!--End mc_embed_signup--><br />
</div>
]]></content:encoded>
			

		<wfw:commentRss>https://www.edwinmsarmiento.com/the-lifeblood-across-the-wire/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
				<post-id xmlns="com-wordpress:feed-additions:1">2495</post-id>	</item>
	</channel>
</rss>