<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Is DRBD the right choice for me?</title>
	<atom:link href="http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/</link>
	<description>Everything about MySQL Performance</description>
	<lastBuildDate>Sat, 21 Nov 2009 05:23:57 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Baron Schwartz</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-614153</link>
		<dc:creator>Baron Schwartz</dc:creator>
		<pubDate>Sun, 12 Jul 2009 18:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-614153</guid>
		<description>Apachez, Enterprise is no different from community.  In fact, they are discontinuing this split.  See http://blogs.sun.com/datacharmer/entry/the_pursuit_of_openness</description>
		<content:encoded><![CDATA[<p>Apachez, Enterprise is no different from community.  In fact, they are discontinuing this split.  See <a href="http://blogs.sun.com/datacharmer/entry/the_pursuit_of_openness" rel="nofollow">http://blogs.sun.com/datacharmer/entry/the_pursuit_of_openness</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Morgan Tocker</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-614150</link>
		<dc:creator>Morgan Tocker</dc:creator>
		<pubDate>Sun, 12 Jul 2009 14:51:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-614150</guid>
		<description>@Apachez - The only difference I can think of, is that the SAN probably has some very large caches which (if still primed with the correct data) should make the crash recovery and initial warming period faster.

Using MySQL Enterprise edition is not going to change anything.</description>
		<content:encoded><![CDATA[<p>@Apachez &#8211; The only difference I can think of, is that the SAN probably has some very large caches which (if still primed with the correct data) should make the crash recovery and initial warming period faster.</p>
<p>Using MySQL Enterprise edition is not going to change anything.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Apachez</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-613810</link>
		<dc:creator>Apachez</dc:creator>
		<pubDate>Sat, 11 Jul 2009 22:41:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-613810</guid>
		<description>What about those who use a SAN as backend to store the mysqldata?

Could it be that mysql enterprise edition has something for these compared to the community version?</description>
		<content:encoded><![CDATA[<p>What about those who use a SAN as backend to store the mysqldata?</p>
<p>Could it be that mysql enterprise edition has something for these compared to the community version?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Hodges</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-610154</link>
		<dc:creator>Robert Hodges</dc:creator>
		<pubDate>Wed, 08 Jul 2009 21:32:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-610154</guid>
		<description>@Yves

Please have a look at Tungsten Replicator.  We have solutions for the consistency problems that tend to break MySQL replication (your point #2).  These include global transaction IDs for safe slave promotion, crash-safe slaves, and built-in consistency checks similar to mk-table-checksum.  Also, we will be introducing parallel replication during the next quarter, which is one answer--and a good one--to your point #1 about slave lag. 

Cheers, Robert

p.s., Not to disagree at all with your conclusions about DRBD.  For the right cases it really can be the cat&#039;s miaow.</description>
		<content:encoded><![CDATA[<p>@Yves</p>
<p>Please have a look at Tungsten Replicator.  We have solutions for the consistency problems that tend to break MySQL replication (your point #2).  These include global transaction IDs for safe slave promotion, crash-safe slaves, and built-in consistency checks similar to mk-table-checksum.  Also, we will be introducing parallel replication during the next quarter, which is one answer&#8211;and a good one&#8211;to your point #1 about slave lag. </p>
<p>Cheers, Robert</p>
<p>p.s., Not to disagree at all with your conclusions about DRBD.  For the right cases it really can be the cat&#8217;s miaow.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609954</link>
		<dc:creator>peter</dc:creator>
		<pubDate>Wed, 08 Jul 2009 15:57:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609954</guid>
		<description>What a fun discussion as usually on this topic :)

I would mention few things 

1) When you want application to be up often does not only applies to failures but also minimizing scheduling downtime needed.   MMM allows much more here - ALTER TABLEs, MySQL Upgrades,  Storage Engine changes etc.

2) Anders: The switch to the slave is not instant - it indeed needs to catch up but in well configured systems (in particular designed to minimize switch time) the lag should be fractions of the seconds.

3) Anders: Indeed it is possible for master to remain in tact  after failure.   It would be reasonable to run mk-table-checksum before putting traffic back on it or simply reclone it from the slave using MMM.   You also may resolve the changes at the same time.

4) Yves:  The trick is NOT to let your slave to get lagged behind.  This indeed requires more discipline - if you use DRBD all overhead is on the Master so it simply can&#039;t handle the load which means it gets instant attention while replication lag may be allowed  to appear.

5) Yves:  Yes... Replication is a risk here. The monitoring for replication of course must be in place as well as regular checks with mk-table-checksum.  In general for most applications replication can run rather stable.</description>
		<content:encoded><![CDATA[<p>What a fun discussion as usually on this topic <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I would mention few things </p>
<p>1) When you want application to be up often does not only applies to failures but also minimizing scheduling downtime needed.   MMM allows much more here &#8211; ALTER TABLEs, MySQL Upgrades,  Storage Engine changes etc.</p>
<p>2) Anders: The switch to the slave is not instant &#8211; it indeed needs to catch up but in well configured systems (in particular designed to minimize switch time) the lag should be fractions of the seconds.</p>
<p>3) Anders: Indeed it is possible for master to remain in tact  after failure.   It would be reasonable to run mk-table-checksum before putting traffic back on it or simply reclone it from the slave using MMM.   You also may resolve the changes at the same time.</p>
<p>4) Yves:  The trick is NOT to let your slave to get lagged behind.  This indeed requires more discipline &#8211; if you use DRBD all overhead is on the Master so it simply can&#8217;t handle the load which means it gets instant attention while replication lag may be allowed  to appear.</p>
<p>5) Yves:  Yes&#8230; Replication is a risk here. The monitoring for replication of course must be in place as well as regular checks with mk-table-checksum.  In general for most applications replication can run rather stable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Morgan Tocker</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609889</link>
		<dc:creator>Morgan Tocker</dc:creator>
		<pubDate>Wed, 08 Jul 2009 14:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609889</guid>
		<description>@Yves:

&quot;How do you failover if the surviving master is lagging 2 hours behind&quot;

You don&#039;t let it lag 2 hour behind.  I know this is easier said than done (with replication being single threaded), but this would be one of the requirements for replication based availability.

&quot;Replication often breaks, while broken, HA is very limited.&quot;

That&#039;s true.  But this comes down to the same argument in my post - &quot;MySQL Replication (with a manager such as MMM) aims to have 100% availability&quot;.  In this context availability means purely &quot;Uptime&quot; not redundancy.

&quot;Since Master-Master rely on replication and replication as no built-in self-healing, it is my opinion that a Heartbeat/DRBD HA solution is easier to manage, especially in shops where there are no full-time DBA.&quot;

Ease of use is always a difficult/subjective component to measure - especially when it can get in the way of choosing the best (performance-wise) solution.  I don&#039;t dispute how helpful the built in functions of DRBD are (online device verification, replication event checksums, fast resync after a node has been offline), and I wish that MySQL Replication had the same features.  But it&#039;s fairly easy to emulate most of what you need with tools like maatkit and mmm.</description>
		<content:encoded><![CDATA[<p>@Yves:</p>
<p>&#8220;How do you failover if the surviving master is lagging 2 hours behind&#8221;</p>
<p>You don&#8217;t let it lag 2 hour behind.  I know this is easier said than done (with replication being single threaded), but this would be one of the requirements for replication based availability.</p>
<p>&#8220;Replication often breaks, while broken, HA is very limited.&#8221;</p>
<p>That&#8217;s true.  But this comes down to the same argument in my post &#8211; &#8220;MySQL Replication (with a manager such as MMM) aims to have 100% availability&#8221;.  In this context availability means purely &#8220;Uptime&#8221; not redundancy.</p>
<p>&#8220;Since Master-Master rely on replication and replication as no built-in self-healing, it is my opinion that a Heartbeat/DRBD HA solution is easier to manage, especially in shops where there are no full-time DBA.&#8221;</p>
<p>Ease of use is always a difficult/subjective component to measure &#8211; especially when it can get in the way of choosing the best (performance-wise) solution.  I don&#8217;t dispute how helpful the built in functions of DRBD are (online device verification, replication event checksums, fast resync after a node has been offline), and I wish that MySQL Replication had the same features.  But it&#8217;s fairly easy to emulate most of what you need with tools like maatkit and mmm.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yves Trudeau</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609860</link>
		<dc:creator>Yves Trudeau</dc:creator>
		<pubDate>Wed, 08 Jul 2009 13:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609860</guid>
		<description>Hi Morgan,
  Of course, a DRBD/Heartbeat setup is not for every use case.  Like you mentioned, the main part of the failover time is the InnoDB recovery.  The one minute failover time _implies_ small innodb log files, usually 2 files of around 100 MB. With DRBD/Heartbeat, once it is setup, you know what the recovery time will be.

With Master-Master, here are my 2 big cons:
- How do you failover if the surviving master is lagging 2 hours behind?
- Replication often breaks, while broken, HA is very limited.

To be honest, I must also add a con on the DRBD side, write performance is slower.  Depending on the hardware, it can be significant, a 30% drop is not uncommon.  Most of the time, it is due to the networking connection between the two nodes, even if bonding is used to boost the bandwidth.

Since Master-Master rely on replication and replication as no built-in self-healing, it is my opinion that a Heartbeat/DRBD HA solution is easier to manage, especially in shops where there are no full-time DBA.</description>
		<content:encoded><![CDATA[<p>Hi Morgan,<br />
  Of course, a DRBD/Heartbeat setup is not for every use case.  Like you mentioned, the main part of the failover time is the InnoDB recovery.  The one minute failover time _implies_ small innodb log files, usually 2 files of around 100 MB. With DRBD/Heartbeat, once it is setup, you know what the recovery time will be.</p>
<p>With Master-Master, here are my 2 big cons:<br />
- How do you failover if the surviving master is lagging 2 hours behind?<br />
- Replication often breaks, while broken, HA is very limited.</p>
<p>To be honest, I must also add a con on the DRBD side, write performance is slower.  Depending on the hardware, it can be significant, a 30% drop is not uncommon.  Most of the time, it is due to the networking connection between the two nodes, even if bonding is used to boost the bandwidth.</p>
<p>Since Master-Master rely on replication and replication as no built-in self-healing, it is my opinion that a Heartbeat/DRBD HA solution is easier to manage, especially in shops where there are no full-time DBA.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Morgan Tocker</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609836</link>
		<dc:creator>Morgan Tocker</dc:creator>
		<pubDate>Wed, 08 Jul 2009 13:20:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609836</guid>
		<description>@Anders: Agreed that DRBD is better out of the box, but with third party tools these problems can still be handled:

* MMM acts as the HA framework.  On a failover, it will wait for the relay log to be empty on the slave.

* For failback, it&#039;s true the master can&#039;t be trusted straight away, but as Peter mentioned mk-table-checksum is your friend ;)

* The &#039;dual lag problem&#039; is also handled by MMM - it will monitor that the slave is not greater than a certain number of seconds behind the master, and alert you if it is (this problem relates to bullet point #1).

- Morgan</description>
		<content:encoded><![CDATA[<p>@Anders: Agreed that DRBD is better out of the box, but with third party tools these problems can still be handled:</p>
<p>* MMM acts as the HA framework.  On a failover, it will wait for the relay log to be empty on the slave.</p>
<p>* For failback, it&#8217;s true the master can&#8217;t be trusted straight away, but as Peter mentioned mk-table-checksum is your friend <img src='http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>* The &#8216;dual lag problem&#8217; is also handled by MMM &#8211; it will monitor that the slave is not greater than a certain number of seconds behind the master, and alert you if it is (this problem relates to bullet point #1).</p>
<p>- Morgan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Morgan Tocker</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609833</link>
		<dc:creator>Morgan Tocker</dc:creator>
		<pubDate>Wed, 08 Jul 2009 13:11:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609833</guid>
		<description>@Florian: The problem with the cache heating scripts is they can take a long time (best measured in hours) on some of the larger servers customers are using these days - 16G/32G/64G++ of RAM seems to be very common.

I think this is an issue that needs to be addressed by the MySQL Server team, since not only does it make failover with DRBD more difficult, but it makes server restarts to turn on features like &#039;log-bin&#039; very painful.

Jeremy provided a proof of concept patch to one possible solution:
http://provenscaling.com/blog/2008/10/06/making-mysql-more-usable-innodb-saverestore-buffer-pool-patch/

If the idea he mentioned &quot;Add runtime commands to save/restore the buffer pool state from a running server, without shutting down&quot; was implemented, this could be used for DRBD to periodically checkpoint.</description>
		<content:encoded><![CDATA[<p>@Florian: The problem with the cache heating scripts is they can take a long time (best measured in hours) on some of the larger servers customers are using these days &#8211; 16G/32G/64G++ of RAM seems to be very common.</p>
<p>I think this is an issue that needs to be addressed by the MySQL Server team, since not only does it make failover with DRBD more difficult, but it makes server restarts to turn on features like &#8216;log-bin&#8217; very painful.</p>
<p>Jeremy provided a proof of concept patch to one possible solution:<br />
<a href="http://provenscaling.com/blog/2008/10/06/making-mysql-more-usable-innodb-saverestore-buffer-pool-patch/" rel="nofollow">http://provenscaling.com/blog/2008/10/06/making-mysql-more-usable-innodb-saverestore-buffer-pool-patch/</a></p>
<p>If the idea he mentioned &#8220;Add runtime commands to save/restore the buffer pool state from a running server, without shutting down&#8221; was implemented, this could be used for DRBD to periodically checkpoint.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Florian Haas</title>
		<link>http://www.mysqlperformanceblog.com/2009/07/07/is-drbd-the-right-choice-for-me/comment-page-1/#comment-609562</link>
		<dc:creator>Florian Haas</dc:creator>
		<pubDate>Wed, 08 Jul 2009 07:47:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.mysqlperformanceblog.com/?p=716#comment-609562</guid>
		<description>@Morgan: agree (with the original post, but even more specifically on comment 4).

@Jeremy: I understand people commonly &quot;preheat&quot; caches on MySQL startup using a clever SELECT script with --init-file, so as far as I can see that point is moot -- am I mistaken?

@Anders: I&#039;d love to see someone write a Master/Slave capable, MySQL replication aware version of the Pacemaker mysql OCF resource agent so people could get the best of both worlds while using the same cluster framework all the time. I&#039;ve tried myself; but found myself lacking the insight into MySQL replication to implement this properly. Any takers?</description>
		<content:encoded><![CDATA[<p>@Morgan: agree (with the original post, but even more specifically on comment 4).</p>
<p>@Jeremy: I understand people commonly &#8220;preheat&#8221; caches on MySQL startup using a clever SELECT script with &#8211;init-file, so as far as I can see that point is moot &#8212; am I mistaken?</p>
<p>@Anders: I&#8217;d love to see someone write a Master/Slave capable, MySQL replication aware version of the Pacemaker mysql OCF resource agent so people could get the best of both worlds while using the same cluster framework all the time. I&#8217;ve tried myself; but found myself lacking the insight into MySQL replication to implement this properly. Any takers?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
