<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet HA</title>
	<link rel="self" href="atom.xml"/>
	<link href="default"/>
	<id>atom.xml</id>
	<updated>2010-03-10T14:20:06+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">Better days Arrive when Dev Meet Ops</title>
		<link href="http://www.krisbuytaert.be/blog/better-days-arrive-when-dev-meet-ops"/>
		<id>http://www.krisbuytaert.be/991 at http://www.krisbuytaert.be/blog</id>
		<updated>2010-03-06T13:03:27+00:00</updated>
		<content type="html">&lt;p&gt;A couple of weeks a go &lt;a href=&quot;http://twitter.com/LinuxScribe&quot;&gt;Brian Profitt&lt;/a&gt; pinged me for a chat about  Devops ,  the result of that chat , his article can now be found on the Zenoss blog, it's  titled &lt;a href=&quot;http://community.zenoss.org/blogs/zenossblog/2010/03/05/datacenter-barometer-better-days-arrive-when-dev-meets-ops&quot;&gt;Datacenter Barometer: Better days arrive when dev meets ops&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It's a very nice read with some pointers to places regular readers of my blog should already know ;)&lt;br /&gt;
So with lots of leading Open Source infrastructure companies  on different levels, such as config management (OpsCode and Reductive Labs) , monitoring (Zenoss) , deployment (openQRM, RPath, and obviously &lt;a href=&quot;http://www.inuits.be&quot;&gt;Consultancy&lt;/a&gt; companies  , the upcoming Devops conferences around the planet promise to be a lot of fun ! ;)&lt;/p&gt;
&lt;p&gt;Oh, and apparently there is some more on the  story on &lt;a href=&quot;http://slashdot.org/submission/1186968/&quot;&gt;/.&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/devops&quot; rel=&quot;tag&quot;&gt;devops&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/krisbuytaert&quot; rel=&quot;tag&quot;&gt;krisbuytaert&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/monitoring&quot; rel=&quot;tag&quot;&gt;monitoring&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/opensource&quot; rel=&quot;tag&quot;&gt;opensource&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/zenoss&quot; rel=&quot;tag&quot;&gt;zenoss&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/better-days-arrive-when-dev-meet-ops/shareomatic-drupal/Better days Arrive when Dev Meet Ops&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/better-days-arrive-when-dev-meet-ops/shareomatic-drupal/Better days Arrive when Dev Meet Ops&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/better-days-arrive-when-dev-meet-ops&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/better-days-arrive-when-dev-meet-ops&quot; dc:title=&quot;Better days Arrive when Dev Meet Ops&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/991&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/991&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Contributing resource agent patches to Linux-HA</title>
		<link href="http://fghaas.wordpress.com/2010/03/01/contributing-resource-agent-patches-to-linux-ha/"/>
		<id>http://fghaas.wordpress.com/?p=369</id>
		<updated>2010-03-01T08:50:59+00:00</updated>
		<content type="html">&lt;p&gt;If you contribute a &lt;a href=&quot;http://www.linux-ha.org/wiki/Resource_Agents&quot;&gt;resource agent&lt;/a&gt; to the Linux-HA repository, we love you. If you contribute a patch to an existing resource agent, and fix an bug or add functionality, we love you too. If you persist through the constructive criticism by nitpicks like myself on the linux-ha-dev mailing list, we love you even more.&lt;/p&gt;
&lt;p&gt;And here&amp;#8217;s a couple of ideas for making the process easy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please please please send patches. Working in a Mercurial checkout and then using &lt;a href=&quot;http://mercurial.selenic.com/wiki/Export&quot;&gt;hg export&lt;/a&gt; or &lt;a href=&quot;http://mercurial.selenic.com/wiki/PatchbombExtension&quot;&gt;hg email&lt;/a&gt; makes reviewing and merging your patch a breeze.&lt;/li&gt;
&lt;li&gt;If you really do not want to familiarize yourself with Mercurial, then please take your version of the RA, &lt;a href=&quot;http://linux.die.net/man/1/diff&quot;&gt;diff -u&lt;/a&gt; it against a released version, and send that diff to the mailing list. Be sure to state the exact version of the resource-agents package (cluster-agents package on Debian) that it applies to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You see, resource agents change. All the time. This may not affect the functionality of the RA at all. We might just &lt;a href=&quot;http://hg.linux-ha.org/agents/rev/f9b41ad72775&quot;&gt;add auto-generation of man pages&lt;/a&gt;. Or change an internal interface. &lt;a href=&quot;http://hg.linux-ha.org/agents/rev/14e3bac1f56e&quot;&gt;Or streamline some functions&lt;/a&gt;. Bottom line, the code changes. If you just send us your version of the RA &amp;#8220;with all relevant changes applied,&amp;#8221; then it&amp;#8217;s quite likely that the RA you are changing has been modified a bit since the most recent release.&lt;/p&gt;
&lt;p&gt;And suddenly, when we diff your version against the one in the upstream repository, we see a bunch of differences which, if applied, would &lt;em&gt;roll back&lt;/em&gt; changes made in the meantime. And singling out which of your changes were actually meant to be applied becomes a truly tedious task for anyone who reviews your submission.&lt;/p&gt;
&lt;p&gt;If, by contrast, you send a patch, we see only the changes you meant to apply. And even if upstream has changed in the meantime, chances are that we can wiggle your patch in with minimal fiddling.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/369/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/369/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/369/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/369/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/369/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/369/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/369/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/369/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/369/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/369/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=369&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Linux 2.6.33 released, first kernel with DRBD included</title>
		<link href="http://fghaas.wordpress.com/2010/02/24/linux-2-6-33-released-first-kernel-with-drbd-included/"/>
		<id>http://fghaas.wordpress.com/?p=363</id>
		<updated>2010-02-24T20:40:37+00:00</updated>
		<content type="html">&lt;p&gt;Today, &lt;a href=&quot;http://en.wikipedia.org/Linus_Torvalds&quot;&gt;Linus&lt;/a&gt; &lt;a href=&quot;http://lwn.net/Articles/376008/&quot;&gt;released Linux 2.6.33&lt;/a&gt;, the first &lt;a href=&quot;http://en.wikipedia.org/wiki/Linux_kernel&quot;&gt;vanilla kernel&lt;/a&gt; with DRBD integrated as part of the mainline tree. &lt;a href=&quot;http://www.linbit.com/en/news/single-news/art/42/31/&quot;&gt;As announced in December&lt;/a&gt;, this release marks the end of DRBD&amp;#8217;s former existance as an out-of-tree kernel module.&lt;/p&gt;
&lt;p&gt;The first distro to sport the new kernel, to the best of our knowledge, will be &lt;a href=&quot;http://fedoraproject.org/wiki/Releases/13&quot;&gt;Fedora 13&lt;/a&gt;, whose default kernel build will of course have the DRBD module enabled. That gives Fedora 13 users the ability to just say &lt;code&gt;yum install drbd&lt;/code&gt;, and get the full DRBD userland package and no extra kernel module.&lt;/p&gt;
&lt;p&gt;We are expecting other distributions to follow suit shortly. And even if your favorite distribution does not adopt a 2.6.33+ kernel anytime soon, don&amp;#8217;t despair! Chances are that it has carried DRBD as an add-on kernel module all along, and will continue to do so. And then of course, &lt;a href=&quot;http://www.linbit.com&quot;&gt;LINBIT&lt;/a&gt; DRBD support comes with DRBD certified binaries for a multitude of distros.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/363/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/363/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/363/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/363/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/363/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/363/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/363/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/363/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/363/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/363/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=363&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Pacemaker removed from OBS</title>
		<link href="http://theclusterguy.clusterlabs.org/post/370384760"/>
		<id>http://theclusterguy.clusterlabs.org/post/370384760</id>
		<updated>2010-02-04T10:42:00+00:00</updated>
		<content type="html">&lt;p&gt;Today I removed Pacemaker from server:ha-clustering on the openSUSE build service.&lt;/p&gt;

&lt;p&gt;I lost patience with the service some time ago and the project has been providing pre-built packages from &lt;a href=&quot;http://www.clusterlabs.org/rpm&quot;&gt;cluster labs&lt;/a&gt; ever since (see our &lt;a href=&quot;http://www.clusterlabs.org/wiki/Install&quot;&gt;install page&lt;/a&gt; for more details).&lt;/p&gt;

&lt;p&gt;It seems no-one else has had the time or patience to keep the build service updated since my departure so, after noticing their age and the fact that they no longer even build on the majority of targets, I made the decision to remove them.&lt;/p&gt;

&lt;p&gt;Hopefully this will help avoid confusing those wanting the latest Pacemaker software.&lt;/p&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Heartbeat 3.0.2 released</title>
		<link href="http://fghaas.wordpress.com/2010/02/01/heartbeat-3-0-2-released/"/>
		<id>http://fghaas.wordpress.com/?p=354</id>
		<updated>2010-02-01T18:49:32+00:00</updated>
		<content type="html">&lt;p&gt;After a long release hiatus, an elaborate project re-organization, and with a &lt;a href=&quot;http://fghaas.wordpress.com/2009/11/16/linbit-announces-stewardship-for-heartbeat-code-base/&quot;&gt;new primary project sponsor&lt;/a&gt;, the &lt;a href=&quot;http://www.linux-ha.org/wiki/Heartbeat&quot;&gt;Heartbeat cluster messaging layer&lt;/a&gt; &lt;a href=&quot;http://lists.linux-ha.org/pipermail/linux-ha-dev/2010-February/017021.html&quot;&gt;saw its 3.0.2 release earlier today&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Heartbeat 3.0.2 is the first official Heartbeat release since 2.1.3, released over 2 years ago. There have been a number of intermediate releases in the interim, including some Fedora releases labeled 3.0.0 and 3.0.1, but this is the first official Heartbeat 3.0 release. This means that Pacemaker, the definitive Linux cluster stack, continues to be fully supported on both the Heartbeat and &lt;a href=&quot;http://www.corosync.org&quot;&gt;Corosync/OpenAIS&lt;/a&gt; messaging layers.&lt;/p&gt;
&lt;p&gt;The release tarball may be downloaded &lt;a href=&quot;http://hg.linux-ha.org/dev/archive/STABLE-3.0.2.tar.bz2&quot;&gt;directly from the Mercurial repository&lt;/a&gt;, or from &lt;a href=&quot;http://www.linux-ha.org/wiki/Download&quot;&gt;the Linux-HA web site&lt;/a&gt;. Debian packages will soon be available from &lt;a href=&quot;http://people.debian.org/~madkiss/ha/&quot;&gt;Martin Loschwitz&amp;#8217; people.debian.org repository&lt;/a&gt; and are expected to make their way into &lt;a href=&quot;http://www.debian.org/releases/squeeze&quot;&gt;Squeeze&lt;/a&gt; shortly.&lt;/p&gt;
&lt;p&gt;And yes, we had planned to make this release in January. But 2/1/2010 just looked so neat as a release date.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/354/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/354/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/354/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/354/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/354/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/354/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/354/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/354/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/354/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/354/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=354&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Disaster Recovery survey — we need your feedback!</title>
		<link href="http://fghaas.wordpress.com/2010/01/21/disaster-recovery-survey-we-need-your-feedback/"/>
		<id>http://fghaas.wordpress.com/?p=349</id>
		<updated>2010-01-21T17:24:05+00:00</updated>
		<content type="html">&lt;p&gt;Want to help us out making DRBD an even better fit for off-site Disaster Recovery? &lt;a href=&quot;http://surveys.polldaddy.com/s/F20DB24A85DF1127/&quot;&gt;Then please participate in our survey&lt;/a&gt;. It&amp;#8217;s just 6 questions and will take up barely 3 minutes of your time. Thanks!&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/349/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/349/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/349/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/349/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/349/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/349/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/349/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/349/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/349/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/349/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=349&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Pacemaker 1.0.7 Released</title>
		<link href="http://theclusterguy.clusterlabs.org/post/340780359"/>
		<id>http://theclusterguy.clusterlabs.org/post/340780359</id>
		<updated>2010-01-18T11:38:47+00:00</updated>
		<content type="html">&lt;p&gt;The latest installment of the &lt;a href=&quot;http://www.clusterlabs.org/wiki/Pacemaker&quot;&gt;Pacemaker&lt;/a&gt; 1.0 stable series is now ready for general consumption.&lt;/p&gt;

&lt;p&gt;In this release, we’ve made a number improvements to clone handling - particularly the way ordering constraints are processed - as well as some really nice improvements to the shell.&lt;/p&gt;

&lt;p&gt;The next 1.0 release is anticipated to be in mid-March.
We will be switching to a bi-monthly release schedule to begin focusing on development for the next stable series (more details soon).
If you have feature requests, now is the time to voice them and/or provide patches :-)&lt;/p&gt;

&lt;p&gt;Pre-built packages for Pacemaker and it’s immediate dependancies are currently building and will be available for openSUSE, SLES, Fedora, RHEL, CentOS from the &lt;a href=&quot;http://www.clusterlabs.org/rpm/&quot;&gt;ClusterLabs Build Area&lt;/a&gt; shortly.&lt;/p&gt;

&lt;p&gt;Debian users should check for updates &lt;a href=&quot;http://clusterlabs.org/wiki/Install#Debian&quot;&gt;Martin’s repo&lt;/a&gt; over the coming days and Ubuntu fans can visit &lt;a href=&quot;https://edge.launchpad.net/~ubuntu-ha-maintainers/+archive/ppa&quot;&gt;LaunchPad&lt;/a&gt; for 8.04 and 9.10 packages.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://hg.clusterlabs.org/pacemaker/stable-1.0/archive/Pacemaker-1.0.7.tar.bz2&quot;&gt;source tarball&lt;/a&gt; is also available directly from Mercurial.&lt;/p&gt;

&lt;p&gt;General installation instructions are available at from the &lt;a href=&quot;http://clusterlabs.org/wiki/Install&quot;&gt;ClusterLabs wiki&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Release Statistics&lt;/h3&gt;

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Changesets&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt; 193 &lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Diff&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt; 220 files changed, 15933 insertions(+), 8782 deletions(-)&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;Changes of note since Pacemaker-1.0.6&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;High: PE: Bug 2213 - Ensure groups process location constraints so that clone-node-max works for cloned groups&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2153 - non-clones should not restart when clones stop/start on other nodes&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2209 - Clone ordering should be able to prevent startup of dependant clones&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2216 - Correctly identify the state of anonymous clones when deciding when to probe&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2225 - Operations that require fencing should wait for ‘stonith_complete’ not ‘all_stopped’.&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2225 - Prevent clone peers from stopping while another is instance is (potentially) being fenced&lt;/li&gt;
&lt;li&gt;High: PE: Correctly anti-colocate with a group&lt;/li&gt;
&lt;li&gt;High: PE: Correctly unpack ordering constraints for resource sets to avoid graph loops&lt;/li&gt;
&lt;li&gt;High: Tools: crm: load help from crm_cli.txt&lt;/li&gt;
&lt;li&gt;High: Tools: crm: resource sets (bnc#550923)&lt;/li&gt;
&lt;li&gt;High: Tools: crm: support for comments (LF 2221)&lt;/li&gt;
&lt;li&gt;High: Tools: crm: support for description attribute in resources/operations (bnc#548690)&lt;/li&gt;
&lt;li&gt;High: Tools: hb2openais: add EVMS2 CSM processing (and other changes) (bnc#548093)&lt;/li&gt;
&lt;li&gt;High: Tools: hb2openais: do not allow empty rules, clones, or groups (LF 2215)&lt;/li&gt;
&lt;li&gt;High: Tools: hb2openais: refuse to convert pure EVMS volumes&lt;/li&gt;
&lt;li&gt;High: cib: Ensure the loop for login message terminates&lt;/li&gt;
&lt;li&gt;High: cib: Finally fix reliability of receiving large messages over remote plaintext connections&lt;/li&gt;
&lt;li&gt;High: cib: Fix remote notifications&lt;/li&gt;
&lt;li&gt;High: cib: For remote connections, default to CRM_DAEMON_USER since thats the only one that the cib can validate the password for using PAM&lt;/li&gt;
&lt;li&gt;High: cib: Remote plaintext - Retry sending parts of the message that did not fit the first time&lt;/li&gt;
&lt;li&gt;High: crmd: Ensure batch-limit is correctly enforced&lt;/li&gt;
&lt;li&gt;High: crmd: Ensure we have the latest status after a transition abort&lt;/li&gt;
&lt;li&gt;High (bnc#547579,547582): Tools: crm: status section editing support&lt;/li&gt;
&lt;li&gt;High: shell: Add allow-migrate as allowed meta-attribute (bnc#539968)&lt;/li&gt;
&lt;li&gt;Medium: Build: Do not automatically add -L/lib, it could cause 64-bit arches to break&lt;/li&gt;
&lt;li&gt;Medium: PE: Bug lf#2206 - rsc_order constraints always use score at the top level&lt;/li&gt;
&lt;li&gt;Medium: PE: Only complain about target-role=master for non m/s resources&lt;/li&gt;
&lt;li&gt;Medium: PE: Prevent non-multistate resources from being promoted through target-role&lt;/li&gt;
&lt;li&gt;Medium: PE: Provide a default action for resource-set ordering&lt;/li&gt;
&lt;li&gt;Medium: PE: Silently fix requires=fencing for stonith resources so that it can be set in op_defaults&lt;/li&gt;
&lt;li&gt;Medium: Tools: Bug lf#2286 - Allow the shell to accept template parameters on the command line&lt;/li&gt;
&lt;li&gt;Medium: Tools: Bug lf#2307 - Provide a way to determin the nodeid of past cluster members&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: add update method to template apply (LF 2289)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: direct RA interface for ocf class resource agents (LF 2270)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: direct RA interface for stonith class resource agents (LF 2270)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: do not add score which does not exist&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: do not consider warnings as errors (LF 2274)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: do not remove sets which contain id-ref attribute (LF 2304)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: drop empty attributes elements&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: exclude locations when testing for pathological constraints (LF 2300)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: fix exit code on single shot commands&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: fix node delete (LF 2305)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: implement -F (—force) option&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: rename status to cibstatus (LF 2236)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: revisit configure commit&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: stay in crm if user specified level only (LF 2286)&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: verify changes on exit from the configure level&lt;/li&gt;
&lt;li&gt;Medium: ais: Some clients such as gfs_controld want a cluster name, allow one to be specified in corosync.conf&lt;/li&gt;
&lt;li&gt;Medium: cib: Clean up logic for receiving remote messages&lt;/li&gt;
&lt;li&gt;Medium: cib: Create valid notification control messages&lt;/li&gt;
&lt;li&gt;Medium: cib: Indicate where the remote connection came from&lt;/li&gt;
&lt;li&gt;Medium: cib: Send password prompt to stderr so that stdout can be redirected&lt;/li&gt;
&lt;li&gt;Medium: cts: Fix rsh handling when stdout is not required&lt;/li&gt;
&lt;li&gt;Medium: doc: Fill in the section on removing a node from an AIS-based cluster&lt;/li&gt;
&lt;li&gt;Medium: doc: Update the docs to reflect the 0.6/1.0 rolling upgrade problem&lt;/li&gt;
&lt;li&gt;Medium: doc: Use Publican for docbook based documentation&lt;/li&gt;
&lt;li&gt;Medium: fencing: stonithd: add metadata for stonithd instance attributes (and support in the shell)&lt;/li&gt;
&lt;li&gt;Medium: fencing: stonithd: ignore case when comparing host names (LF 2292)&lt;/li&gt;
&lt;li&gt;Medium: tools: Make crm_mon functional with remote connections&lt;/li&gt;
&lt;li&gt;Medium: xml: Add stopped as a supported role for operations&lt;/li&gt;
&lt;li&gt;Medium: xml: Bug bnc#552713 - Treat node unames as text fields not IDs&lt;/li&gt;
&lt;li&gt;Medium: xml: Bug lf#2215 - Create an always-true expression for empty rules when upgrading from 0.6&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Ubuntu looking for Pacemaker testers</title>
		<link href="http://theclusterguy.clusterlabs.org/post/336017772"/>
		<id>http://theclusterguy.clusterlabs.org/post/336017772</id>
		<updated>2010-01-15T17:22:52+00:00</updated>
		<content type="html">&lt;p&gt;Ubuntu is looking to switch its supported cluster stack to Corosync+Pacemaker and has put out a “&lt;a href=&quot;http://blog.init.hr/?p=69&quot;&gt;Call for testers&lt;/a&gt;”.&lt;br /&gt;
Check out the link if this is something you’re interested in.&lt;/p&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Pre-Announce: End of Pacemaker 0.6 support is near</title>
		<link href="http://theclusterguy.clusterlabs.org/post/330462486"/>
		<id>http://theclusterguy.clusterlabs.org/post/330462486</id>
		<updated>2010-01-12T12:18:00+00:00</updated>
		<content type="html">&lt;p&gt;Unless there are violent objections, I plan to officially stop supporting 0.6 at the end of February.&lt;/p&gt;

&lt;p&gt;Since I’ve not seeing any bugs reported for some time, it seems that anyone still using 0.6 is happy with it for their workload.&lt;/p&gt;

&lt;p&gt;Also, 1.0 has been out for over a year now and contains significant improvements over 0.6 including&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A unified shell that hides the XML scaffolding&lt;/li&gt;
&lt;li&gt;Migration thresholds that are easy to configure and understand&lt;/li&gt;
&lt;li&gt;Failures can be ignored after a specified period of time&lt;/li&gt;
&lt;li&gt;Ability to specify defaults for resource an operation parameters&lt;/li&gt;
&lt;li&gt;Man pages for all CLI tools&lt;/li&gt;
&lt;li&gt;Up-to-date online documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;a href=&quot;http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/index.html&quot;&gt;online documentation&lt;/a&gt; has more details on whats new/different in &lt;a href=&quot;http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/ap-changes.html&quot;&gt;Appendix C&lt;/a&gt; and detailed instructions for upgrading in &lt;a href=&quot;http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/ap-upgrade.html&quot;&gt;Appendix E&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">And just when you thought LINBIT was all about DRBD…</title>
		<link href="http://fghaas.wordpress.com/2009/12/11/and-just-when-you-thought-linbit-was-all-about-drbd/"/>
		<id>http://fghaas.wordpress.com/?p=341</id>
		<updated>2009-12-11T21:05:14+00:00</updated>
		<content type="html">&lt;p&gt;&amp;#8230; &lt;a href=&quot;http://lists.linux-ha.org/pipermail/linux-ha-dev/2009-December/016905.html&quot;&gt;here&amp;#8217;s our first RC of Heartbeat 3.0.2&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;High availability, that&amp;#8217;s us. Bottom to top.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/341/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/341/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/341/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/341/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/341/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/341/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/341/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/341/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/341/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/341/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=341&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">We’re in!</title>
		<link href="http://fghaas.wordpress.com/2009/12/08/were-in/"/>
		<id>http://fghaas.wordpress.com/?p=307</id>
		<updated>2009-12-08T17:02:43+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.drbd.org&quot;&gt;DRBD&lt;/a&gt; has entered a new phase. After being developed out of tree for 9 years, and after an extended review and streamlining phase since March, &lt;a href=&quot;http://www.linbit.com/en/company/management/philipp-reisner/&quot;&gt;Phil&lt;/a&gt; &lt;a href=&quot;http://marc.info/?l=linux-kernel&amp;m=125302593323927&amp;w=2&quot;&gt;submitted DRBD to be merged into 2.6.32 release&lt;/a&gt; of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Linux&quot;&gt;Linux&lt;/a&gt; mainline kernel. The submission was accepted by block layer maintainer &lt;a href=&quot;http://en.wikipedia.org/wiki/Jens_Axboe&quot;&gt;Jens Axboe&lt;/a&gt;, &lt;a href=&quot;http://git.kernel.dk/?p=linux-2.6-block.git;a=commit;h=5898c1d13d14cae37c0ca00701ad4469581d0eef&quot;&gt;who merged DRBD in September&lt;/a&gt;, then deferred to the 2.6.33 merge window, and this morning &lt;a href=&quot;http://en.wikipedia.org/wiki/Linus_Torvalds&quot;&gt;Linus&lt;/a&gt; &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6035ccd8e9e40bb654fbfdef325902ab531679a5&quot;&gt;pulled DRBD&lt;/a&gt; into &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/block/drbd;h=cbdeb9de856406a1b391fbcdab9d0efe57439e42;hb=6035ccd8e9e40bb654fbfdef325902ab531679a5&quot;&gt;his tree&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That makes DRBD an integral part of Linux, starting with the 2.6.33 release expected in a few weeks&amp;#8217; time.&lt;/p&gt;
&lt;p&gt;We have something to celebrate.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/307/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/307/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/307/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/307/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/307/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/307/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/307/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/307/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/307/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/307/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=307&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Disabling DHCP on a LibVirt setup</title>
		<link href="http://www.krisbuytaert.be/blog/disabling-dhcp-libvirt-setup"/>
		<id>http://www.krisbuytaert.be/967 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-12-04T18:43:27+00:00</updated>
		<content type="html">&lt;p&gt;So you have this libvirt setup and you  want to have a dhcp server on the virtual machines you are playing with , or you want to have all static IP's.&lt;/p&gt;
&lt;p&gt;Libvirt uses dnsmasq to provide dhcp services etc and when you  generate a config from the gui it will look like&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&amp;lt;network&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;name&amp;gt;piponet&amp;lt;/name&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;uuid&amp;gt;e87d3bf1-a2e7-96ca-e131-7ae51ac033f9&amp;lt;/uuid&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;bridge name='virbr2' stp='on' delay='0' /&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;ip address='192.168.100.1' netmask='255.255.255.0'&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;    &amp;lt;dhcp&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;      &amp;lt;range start='192.168.100.128' end='192.168.100.254' /&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;    &amp;lt;/dhcp&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;/ip&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;lt;/network&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
If you  fully remove the dhcp  section, then restart libvirt you'll notice dnsmasq running with no dhcpd on that subnet so you'll have full control again :)&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&amp;lt;network&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;name&amp;gt;piponet&amp;lt;/name&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;uuid&amp;gt;e87d3bf1-a2e7-96ca-e131-7ae51ac033f9&amp;lt;/uuid&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;bridge name='virbr2' stp='on' delay='0' /&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;  &amp;lt;ip address='192.168.100.1' netmask='255.255.255.0'&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;     &amp;lt;/ip&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;lt;/network&amp;gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/dhcp&quot; rel=&quot;tag&quot;&gt;dhcp&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/kvm&quot; rel=&quot;tag&quot;&gt;kvm&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/libvirt&quot; rel=&quot;tag&quot;&gt;libvirt&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/xen&quot; rel=&quot;tag&quot;&gt;xen&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/disabling-dhcp-libvirt-setup/shareomatic-drupal/Disabling DHCP on a LibVirt setup&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/disabling-dhcp-libvirt-setup/shareomatic-drupal/Disabling DHCP on a LibVirt setup&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/disabling-dhcp-libvirt-setup&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/disabling-dhcp-libvirt-setup&quot; dc:title=&quot;Disabling DHCP on a LibVirt setup&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/967&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/967&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">How to recover data from a &quot;dead&quot; hard drive or from a human error</title>
		<link href="http://blog.trivadis.com/blogs/gregorysteulet/archive/2009/11/27/how-to-recover-data-from-a-quot-dead-quot-hard-drive-or-from-a-human-error.aspx"/>
		<id>7f420732-9615-472e-9723-d9bd9f35b01c:73057</id>
		<updated>2009-11-27T20:55:00+00:00</updated>
		<content type="html">&lt;p&gt;
 
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 




 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&amp;quot;Table Normal&amp;quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&amp;quot;&amp;quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;}



&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;Who never encountered problems
with a failing media, never accidently dropped a valuable file, corrupted his
FAT(File Allocation Table) or simply got bad disk block sectors ? Of course
restoring his backup in such cases would be the easiest way to recover precious
data.. Unfortunately it is often in such a situation we saw that backup is a
month old or our files have never been backuped. The following lines relate
such stories and introduce some ways to recover data with open source
softwares.&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;



 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 






&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;br /&gt;A nice sunny day&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;It was a nice sunny
Saturday and I was invited at my girlfriend’s mother home for tea. During lunch
she spoke about weird behavior with her&lt;b&gt; &lt;/b&gt;PC
under windows XP, error messages, impossible files to drop from the desktop and
a lot of other weird stuff. I was quite proud to offer some help in order to
solve those problems. &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;So I tried to switch
on the computer by pressing the power button but the PC shutdown after 5 seconds!
Furthermore, the power button remained pushed in each time I pressed on it due
to a broken plastic inside the power switch. After 5 minutes I finally
succeeded starting the PC and a wonderful Windows XP logo preceding &lt;span&gt;&amp;nbsp;&lt;/span&gt;error messages about missing “.dll” files appeared.
Finally after removing 2 out of 3 antivirus/spywares and some unused programs,
the computer behavior became smoother, although still very slow so I decided to
run a checkdisk on C:\ drive. As you know when one does such an operation on
windows, one has to &lt;span&gt;&amp;nbsp;&lt;/span&gt;reboot it, which I
did. The checkdisk started, step 1 out of 5, 2 out of 5, when the following
message appeared : &lt;span&gt;&amp;nbsp;&lt;/span&gt;“unable to locate the
file name attribute of index entry etc”, “not enough space to rebuild index”,
etc..&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;When the chkdsk ended,
the computer restarted, the windows xp logo appeared and the computer automatically
switched off. Nothing concerning the power switch button this time, it was the
disk. No more visible data on it. This nice sunny day became really cloudy when
my girlfriend told me that her mother stored a lot of important documents
concerning her work and many pictures. Of course she obviously hadn’t any
backup as well as the majority of people storing precious data.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;I decided to
take the hard drive home to plug it in as ”slave” on my own PC. The disk was
present but windows indicated 0 disk space available and 0 disk space used. Disappointed,
I decided to contact a company specialized in data recovery to ask for a quote
and received it a few days later with the amount of 1684 Euro for a complete
data recovery without &lt;/span&gt;&lt;span&gt;guarantee
that the integrity of the data would be recovered. It indicated&lt;/span&gt;&lt;span&gt; : “&lt;/span&gt;&lt;span&gt;The
reasons for the defective data are major structure damages.”&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;It was simply too expensive to recover maybe
only unusable blocks on a drive. &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;img src=&quot;http://blog.trivadis.com/blogs/gregorysteulet/ext3grep/image001.png&quot; alt=&quot;cause of data loss&quot; width=&quot;586&quot; align=&quot;&quot; border=&quot;&quot; height=&quot;314&quot; hspace=&quot;&quot; /&gt;&lt;/p&gt;

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}


 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 





 

 
  
 

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;Let’s save those data with
open source softwares&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;I decided to look for softwares on the internet
in order to resolve this problem. I was amazed to discover so many recovery
tools e.g.: active partition recovery, ontrack easy recovery, active uneraser,
lost &amp;amp; found, prosoft media tools, active undelete and many others.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Attempting to repair the filesystem directly
on the defective disk would generate &lt;/span&gt;&lt;span&gt;unnecessary disk activity
and carries the risk of further damage to the drive.&lt;/span&gt;&lt;span&gt; Therefore the first step in such a
situation is to copy the hard drive onto another one.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;I firstly thought about dd for this task and
noticed a lot of better tools had been developed to copy data from one disk to another,
like ddrescue, dd_rescue and dd_rhelp (&lt;/span&gt;&lt;span&gt;wrapper script
for dd_rescue)&lt;/span&gt;&lt;span&gt;. My
choice went on ddrescue because it combines advantages from dd_rescue and dd_rhelp.&lt;/span&gt;&lt;span&gt; Unlike dd, dd_rescue will not stop when it encounters errors. It is
especially useful when you work with failing media. In addition it allows
copying blocks backward&lt;/span&gt;&lt;span&gt;, so if we have an error in the middle of a block, ddrescue will copy
both data before and after the error inside this block.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Ubuntu distrib has been used to proceed to this
recovery.Notice that it’s not needed to have any Linux installation, knoppix
allows to boot on a live CD and all needed software to copy and recover data
are available on it.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;In the following case the partition /dev/sdc2
need to be duplicated. In order to proceed to the partition copy it’s mandatory
to create a new partition of the same size as the defective one on a backup
disk. &lt;span&gt;&amp;nbsp;&lt;/span&gt;Fdisk will perfectly fullfill this
mission.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;The partition size can be calculated by substracting
the end column(last cylinders) to the start column(first cylinder). &lt;span&gt;&amp;nbsp;&lt;/span&gt;In the case below 10240-833 = &lt;b&gt;9507&lt;/b&gt; cylinders. &lt;/span&gt;&lt;/p&gt;

&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;steulet@steulet-desktop:~$
sudo fdisk&lt;span&gt;&amp;nbsp; &lt;/span&gt;/dev/sdc&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Command (m for help): p&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdc: 80.0 GB,
80060424192 bytes&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;240 heads, 63
sectors/track, 10341 cylinders&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Units = cylinders of 15120
* 512 = 7741440 bytes&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk identifier: 0x1549f232&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Device Boot&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Start&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Blocks&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Id&lt;span&gt;&amp;nbsp; &lt;/span&gt;System&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;/dev/sdc1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;832&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;6289888+&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;c&lt;span&gt;&amp;nbsp; &lt;/span&gt;W95 FAT32 (LBA)&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;/dev/sdc2&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;*&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;833&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;10340&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;71880480&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;7&lt;span&gt;&amp;nbsp; &lt;/span&gt;HPFS/NTFS&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Creation of a new partition - /dev/sdd1 -
onto the new media - /dev/sdd - with fdisk is a straightforward process.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;steulet@steulet-desktop:~$
sudo fdisk /dev/sdd&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Command (m for help): n&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Command action&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;e&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;extended&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;p&lt;span&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;primary partition (1-4)&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;p&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Partition number (1-4):&lt;b&gt; 1&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;First cylinder (1-38913,
default 1): &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Using default value &lt;b&gt;1&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Last cylinder, +cylinders
or +size{K,M,G} (1-38913, default 38913): &lt;b&gt;9508&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Then ddrescue can duplicate blocks on the second
media. As shown bellow the average rate for duplicate is about 1Mb/s on a small
configuration, meaning that about 28 hours are needed to copy a 100Gb partition
and 12 days for 1Tb. &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;steulet@steulet-desktop:~$
sudo ddrescue /dev/sdc2 /dev/sdd1&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Press Ctrl-C to interrupt&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;rescued:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;73605 MB,&lt;span&gt;&amp;nbsp;
&lt;/span&gt;errsize:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 B,&lt;span&gt;&amp;nbsp; &lt;/span&gt;current rate:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;699 kB/s&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;ipos:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;73605 MB,&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;errors:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0,&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;average rate:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1064 kB/s&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;opos:&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;73605 MB&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Once the failing media partition is fully copied,
data recovery can start. One more time a variety of useful tools can be found
on internet. The one used in this example is TestDisk. &lt;span&gt;&amp;nbsp;&lt;/span&gt;TestDisk is a free open source software originaly
created to recover lost partition or making non bootable disk bootable again. &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk has a large set of functionalities such
as : undeleting files from FAT,NTFS and ext2 filesystem, recovering/rebuilding NTFS
boot sector, fixing FAT tables, copying files from deleted FAT, NTFS, ext2/ext3
partitions and many others. In addition TestDisk can be run on many operating
systems such as Windows, Linux, macOS, SunOS, BSD. &lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Having a short look on TestDisk will present
some interesting functionalities&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER &amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;TestDisk is free software, and&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;comes with ABSOLUTELY NO
WARRANTY.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Select a media (use Arrow
keys, then press Enter):&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sda - 160 GB /
149 GiB - ATA SAMSUNG HD160JJ&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdb - 160 GB /
149 GiB - ATA SAMSUNG HD160JJ&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdc - 80 GB / 74
GiB - ATA SAMSUNG SP0802N&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd - 320 GB / 298 GiB - Hitachi HTS543232L9A300&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[Proceed
]&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;
&lt;/span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;Quit&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Note: Disk capacity must be
correctly detected for a successful recovery.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;If a disk listed above has
incorrect size, check HD jumper settings, BIOS&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;detection, and install the
latest OS patches and disk drivers.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;After having selected the disk to analyze,
TestDisk will ask you for the partition table type. In the current case “Intel”
is used. Notice that it is also possible to use Mac, Sun or even Xbox
partition.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd1 - 85 GB / 79
GiB - Hitachi HTS543232L9A300&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Please select the partition
table type, press Enter when done.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[Intel&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;Intel/PC partition&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[EFI GPT]&lt;span&gt;&amp;nbsp; &lt;/span&gt;EFI GPT partition map (Mac i386, some
x86_64...)&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[Mac&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;]&lt;span&gt;&amp;nbsp;
&lt;/span&gt;Apple partition map&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[None&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;Non
partitioned media&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[Sun&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;]&lt;span&gt;&amp;nbsp;
&lt;/span&gt;Sun Solaris partition&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[XBox&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;]&lt;span&gt;&amp;nbsp;
&lt;/span&gt;XBox partition&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[Return ]&lt;span&gt;&amp;nbsp; &lt;/span&gt;Return to disk selection&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Note: Do NOT select 'None'
for media with only a single partition. It's very&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;rare for a drive to be
'Non-partitioned'.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;After analyzing disk partitions, TestDisk shows the
available partitions and also offers functionalities such as rebuilding boot
sector.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd - 320 GB /
298 GiB - CHS 38913 255 63&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Partition&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Start&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Size in sectors&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1 * HPFS - NTFS&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp; &lt;/span&gt;1
10340 254 63&lt;span&gt;&amp;nbsp; &lt;/span&gt;166128102 [HP_PAVILION]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Boot sector&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;img width=&quot;184&quot; height=&quot;66&quot; alt=&quot;&quot; /&gt;&lt;/span&gt;&lt;span&gt;Status:
OK&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Backup boot sector&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Status: Bad&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Sectors are not identical.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;A valid NTFS Boot sector
must be present in order to access&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;any data; even if the
partition is not bootable.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;Quit&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;List&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[Org. BS ]&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;[Rebuild BS]&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;[&lt;span&gt;&amp;nbsp;
&lt;/span&gt;Dump&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Copy boot sector over
backup sector&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data Recovery
Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd - 320 GB /
298 GiB - CHS 38913 255 63&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Partition&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Start&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Size in sectors&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1 * HPFS - NTFS&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp; &lt;/span&gt;1
10340 254 63&lt;span&gt;&amp;nbsp; &lt;/span&gt;166128102 [HP_PAVILION]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;filesystem size&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;166128102 166112100&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;sectors_per_cluster&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;8 8&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;mft_lcn&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;10 10&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;mftmirr_lcn&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1048576 1048576&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;clusters_per_mft_record&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-10 -10&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;clusters_per_index_record 1
1&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Extrapolated boot sector
and current boot sector are different.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;Dump&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;List&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;[
Write&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;[&lt;span&gt;&amp;nbsp;
&lt;/span&gt;Quit&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;List directories and
files&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Write new NTFS boot sector, confirm ? (&lt;span&gt;Y&lt;/span&gt;/N)&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;As expected TestDisk recovered the backup boot sector&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd - 320 GB /
298 GiB - CHS 38913 255 63&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Partition&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Start&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Size in sectors&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1 * HPFS - NTFS&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp; &lt;/span&gt;1
10340 254 63&lt;span&gt;&amp;nbsp; &lt;/span&gt;166128102 [HP_PAVILION]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Boot sector&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Status: OK&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Backup boot sector&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Status: OK&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Sectors are identical.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;A valid NTFS Boot sector
must be present in order to access&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;any data; even if the
partition is not bootable.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;Quit&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;List&lt;span&gt;&amp;nbsp;
&lt;/span&gt;]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[Rebuild BS]&lt;span&gt;&amp;nbsp; &lt;/span&gt;[Repair MFT]&lt;span&gt;&amp;nbsp;
&lt;/span&gt;[&lt;span&gt;&amp;nbsp; &lt;/span&gt;Dump&lt;span&gt;&amp;nbsp; &lt;/span&gt;]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Return to Advanced
menu&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Sometimes the MFT
(Master File Table) can be also corrupted. Microsoft Check Disk (chkdsk) can
failed trying to repair the MFT. TestDisk offers the possibility to repair this
MFT through the advanced menu after having selected the NTFS partition has shown
above „Repair MFT“.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk provides plenty of other functionalities, adding a partition, changing
is type or listing files inside a partition and copy those files to another
location, etc…&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER &amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Disk /dev/sdd - 320 GB /
298 GiB - CHS 38913 255 63&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Partition&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Start&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;End&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;Size in sectors&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;* HPFS - NTFS&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp; &lt;/span&gt;1
10340 254 63&lt;span&gt;&amp;nbsp; &lt;/span&gt;166128102 [HP_PAVILION]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Structure: Ok.&lt;span&gt;&amp;nbsp; &lt;/span&gt;Use Up/Down Arrow keys to select partition.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Use Left/Right Arrow keys
to CHANGE partition characteristics:&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;*=Primary bootable&lt;span&gt;&amp;nbsp; &lt;/span&gt;P=Primary&lt;span&gt;&amp;nbsp;
&lt;/span&gt;L=Logical&lt;span&gt;&amp;nbsp; &lt;/span&gt;E=Extended&lt;span&gt;&amp;nbsp; &lt;/span&gt;D=Deleted&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Keys A: add partition, L:
load backup, T: change type, &lt;span&gt;P: list files&lt;/span&gt;,&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Enter: to continue&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;NTFS, 85 GB / 79 GiB&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Example below demonstrates the possibility to copy
files from defected media to another place.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;TestDisk 6.10, Data
Recovery Utility, July 2008&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Christophe GRENIER
&amp;lt;grenier@cgsecurity.org&amp;gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;http://www.cgsecurity.org&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;* HPFS - NTFS&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1&lt;span&gt;&amp;nbsp; &lt;/span&gt;1
10340 254 63&lt;span&gt;&amp;nbsp; &lt;/span&gt;166128102 [HP_PAVILION]&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Directory /&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;6-Sep-2009 17:52 .&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;6-Sep-2009 17:52 ..&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;50&lt;span&gt;&amp;nbsp; &lt;/span&gt;1-Jan-2005 19:49 AUTOEXEC.BAT&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;218 30-Oct-2005 18:04
BOOT.BAK&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;298 30-Oct-2005 18:04
boot.ini&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 04:00 Config.Msi&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 23-Nov-2004 15:21
CONFIG.SYS&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 13-May-2006 12:18
C_DILLA&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;62&lt;span&gt;&amp;nbsp; &lt;/span&gt;6-Sep-2009 17:16 delfichier.bat&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:01 &lt;span&gt;Documents and Settings&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;528011264&lt;span&gt;&amp;nbsp; &lt;/span&gt;6-Sep-2009 17:24 hiberfil.sys&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:05 hp&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 23-Nov-2004 15:21
IO.SYS&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 23-Nov-2004 15:21
MSDOS.SYS&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;47564&lt;span&gt;&amp;nbsp; &lt;/span&gt;5-Aug-2004 13:00 NTDETECT.COM&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;252240&lt;span&gt;&amp;nbsp; &lt;/span&gt;5-Aug-2004 13:00 ntldr&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;-r--r--r--&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;792723456 23-Dec-2007 05:35
pagefile.sys&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:21 Program Files&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:21 Python22&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;0&lt;span&gt;&amp;nbsp;
&lt;/span&gt;2-Jan-2005 05:21 RECYCLER&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:21 sysprep&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0 28-Oct-2005 17:29
System Volume Information&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 04:12 system.sav&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;0 17-Mar-2006 17:36 temp&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;dr-xr-xr-x&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;0&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;0&lt;span&gt;&amp;nbsp; &lt;/span&gt;2-Jan-2005 05:37 WINDOWS&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Use Right arrow to change
directory, &lt;span&gt;c&lt;/span&gt; to copy,&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;q to quit&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 




 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&amp;quot;Table Normal&amp;quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&amp;quot;&amp;quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;}



&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;But what about ext3
filesystem ?&lt;/span&gt;&lt;/b&gt;&lt;i&gt;&lt;span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Among the TestDisk limitations there
is the impossibility to recover deleted files which stand on an ext3 partition.
&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Having a look on forum about ext3
file recovery will often discourage you. If you are not convice that file recovery
on ext3 is not possible having a look on ext3 FAQ (http://batleth.sapienti-sat.org/projects/FAQs/ext3-faq.html
) will definitively remove any hope.&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;h2&gt;&lt;a title=&quot;undelete&quot; class=&quot;&quot; name=&quot;undelete&quot;&gt;&lt;/a&gt;&lt;span&gt;&lt;span&gt;1.1&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Q: How can I
recover (undelete) deleted files from my ext3 partition?&lt;/span&gt;&lt;/h2&gt;

&lt;span&gt;&lt;/span&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Actually,
you can't! This is what one of the developers, Andreas Dilger, said about it: &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;In order to ensure that ext3 can
safely resume an unlink after a crash, it actually zeros out the block pointers
in the inode, whereas&lt;br /&gt;
ext2 just marks these blocks as unused in the block bitmaps and marks the inode
as &amp;quot;deleted&amp;quot; and leaves the block pointers alone. &lt;/i&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Your only hope is to
&amp;quot;grep&amp;quot; for parts of your files that have been deleted and hope for
the best.&lt;/i&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Hopefully it looks that
this statement is too categorical. When a file is removed, &lt;/span&gt;&lt;span&gt;data are not really overwritten&lt;/span&gt;&lt;span&gt;. On ext3 filesystem &lt;/span&gt;&lt;span&gt;the
pointer that reference a file is simply removed meaning that the disk area can be
overwritten if writes operation occur. Therefore the first thing to do after such
a mistake is avoiding any additional write operation. The best way to achieve
that is simply unmouting the filesystem.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Once the filesystem unmounted
one can take time looking for recovery tools. I found two tools able to recover
deleted files. &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://foremost.sourceforge.net/&quot;&gt;&lt;span&gt;Foremost &lt;/span&gt;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;is a &lt;a href=&quot;http://www.forensicswiki.org/wiki/Linux&quot; title=&quot;Linux&quot;&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/a&gt; based program data
     for &lt;a href=&quot;http://www.forensicswiki.org/wiki/Recovering_deleted_data&quot; title=&quot;Recovering deleted data&quot;&gt;&lt;span&gt;recovering
     deleted files&lt;/span&gt;&lt;/a&gt; and was origionally developed for the US Air Force
     Office of Special Investigations by &lt;a href=&quot;http://www.forensicswiki.org/wiki/Jesse_Kornblum&quot; title=&quot;Jesse Kornblum&quot;&gt;&lt;span&gt;Jesse Kornblum&lt;/span&gt;&lt;/a&gt;
     and &lt;a href=&quot;http://www.forensicswiki.org/wiki/Kris_Kendall&quot; title=&quot;Kris Kendall&quot;&gt;&lt;span&gt;Kris Kendall&lt;/span&gt;&lt;/a&gt;.&lt;b&gt;
     &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span&gt;ext3grep &lt;span&gt;&amp;nbsp;&lt;/span&gt;is a simple tool developed by Carlo Wood and
     intended to aid anyone who accidentally deletes a file on an ext3
     filesystem.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Both of them are intended to be run on &lt;a href=&quot;http://www.forensicswiki.org/wiki/Disk_image&quot; title=&quot;Disk image&quot;&gt;&lt;span&gt;disk images&lt;/span&gt;&lt;/a&gt;, meaning that it
is mandatory to create a disk image of the partition where the removed files
stand.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 




 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&amp;quot;Table Normal&amp;quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&amp;quot;&amp;quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;}



&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;Some doubts ?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;A concrete exemple needing file restoration
on ext3 partition could be removing all *.log files on a partition hosting redo
log files from an &lt;span&gt;&amp;nbsp;&lt;/span&gt;Oracle Database. Redo
logs that would be named with *.log extension (which is by the way strongly not
recommended especially for this reason) would be removed after such an
operation. As you maybe know an Oracle Database cannot work without at least
two redo log groups therefore such a delete would lead to a database crash.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;The storage setup in the following
example is composed by two groups of raid 5 with three disks each configured by
mdadm. On the top a raid 0 (stripping) has been configured with LVM2. This
configuration – RAID 50 - is illustrated in the figure below.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;img src=&quot;http://blog.trivadis.com/blogs/gregorysteulet/ext3grep/image004.png&quot; alt=&quot;raid 50&quot; width=&quot;444&quot; align=&quot;&quot; border=&quot;&quot; height=&quot;364&quot; hspace=&quot;&quot; /&gt; &lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;
 
  Normal
  0
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 




 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&amp;quot;Table Normal&amp;quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&amp;quot;&amp;quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;}



&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;The Oracle
database version is 10.2.0.4 and the filesystem_io_option is set to “setall“.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;After removing redo logs of the SOUK
database, the following can be seen in the Oracle alert log.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;LGWR: Failed to archive log 2 thread 1 sequence 72 (16198)&lt;br /&gt;
Sun Nov&lt;span&gt;&amp;nbsp; &lt;/span&gt;8 17:17:32 2009&lt;br /&gt;
Thread 1 advanced to log sequence 72 (LGWR switch)&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;Current log# 2 seq# 72 mem# 0:
/u05/oradata/SOUK/redog02a_SOUK.log&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;Current log# 2 seq# 72 mem# 1:
/u05/oradata/SOUK/redog02b_SOUK.log&lt;br /&gt;
Sun Nov&lt;span&gt;&amp;nbsp; &lt;/span&gt;8 17:18:47 2009&lt;br /&gt;
ORA-00313: open failed for members of log group 1 of thread 1&lt;br /&gt;
ORA-00312: online log 1 thread 1: '/u05/oradata/SOUK/redog01b_SOUK.log'&lt;br /&gt;
ORA-27037: unable to obtain file status&lt;br /&gt;
Linux Error: 2: No such file or directory&lt;br /&gt;
Additional information: 3&lt;br /&gt;
ORA-00312: online log 1 thread 1: '/u05/oradata/SOUK/redog01a_SOUK.log'&lt;br /&gt;
ORA-27037: unable to obtain file status&lt;br /&gt;
Linux Error: 2: No such file or directory&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;br /&gt;In order to restore redo log files,
the first step is to avoid any additional write on the filesystem. The most writes
operations occur, the less chance we have to recover those files. That why it
is needed to stop any processes that write on this specific filesystem.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;oracle@slo02test:~/
[SOUK] sqh&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;SQL*Plus:
Release 10.2.0.4.0 - Production on Fri Oct 23 00:08:36 2009&lt;br /&gt;
Copyright (c) 1982, 2007, Oracle.&lt;span&gt;&amp;nbsp; &lt;/span&gt;All
Rights Reserved.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Connected
to:&lt;br /&gt;
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production&lt;br /&gt;
With the Partitioning, OLAP, Data Mining and Real Application Testing options&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; shutdown abort&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;ORACLE
instance shut down.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;br /&gt;The filesystem needs to be unmounted to avoid any write
access.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[root@slo02test
~]# umount /u05&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;br /&gt;Then an image copy of the
filesystem can be done with “dd” command as shown bellow. “dd” perfectly fits
our need in such a case.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[root@slo02test ~]# dd if=/dev/mapper/vgdata-lvdata of=/u99/copyU05&lt;br /&gt;
6291456+0 records in&lt;br /&gt;
6291456+0 records out&lt;br /&gt;
3221225472 bytes (3.2 GB) copied, 241.446 seconds, 13.3 MB/s&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;br /&gt;Now we simply have to execute ext3grep
with the filesystem image in parameter. Several options are provided allowing
restoring from a specific date or a specific file or simply everything.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[root@slo02test u99]# ext3grep /u99/copyU05 --restore-all&lt;br /&gt;
Running ext3grep version 0.10.0&lt;br /&gt;
Number of groups: 24&lt;br /&gt;
Minimum / maximum journal block: 713 / 17115&lt;br /&gt;
Loading journal descriptors... sorting... done&lt;br /&gt;
The oldest inode block that is still in the journal, appears to be from
1257696360 = Sun Nov&lt;span&gt;&amp;nbsp; &lt;/span&gt;8 17:06:00 2009&lt;br /&gt;
Number of descriptors in journal: 108; min / max sequence numbers: 3 / 34&lt;br /&gt;
Writing output to directory RESTORED_FILES/&lt;br /&gt;
Finding all blocks that might be directories.&lt;br /&gt;
D: block containing directory start, d: block containing more directory
entries.&lt;br /&gt;
Each plus represents a directory start that references the same inode as a
directory start that we found previously.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Searching group 0: DDD+D+++&lt;br /&gt;
Searching group 1:&lt;br /&gt;
Searching group 2:&lt;br /&gt;
…&lt;br /&gt;
…&lt;br /&gt;
Searching group 22:&lt;br /&gt;
Searching group 23:&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Writing analysis so far to 'copyU05.ext3grep.stage1'. Delete that file
if you want to do this stage again.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Result of stage one:&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;4 inodes are referenced by one or more
directory blocks, 4 of those inodes are still allocated.&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;3 inodes are referenced by more than
one directory block, 3 of those inodes are still allocated.&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;0 blocks contain an extended directory.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Result of stage two:&lt;br /&gt;
&lt;span&gt;&amp;nbsp; &lt;/span&gt;4 of those inodes could be resolved
because they are still allocated.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;All directory inodes are accounted for!&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Writing analysis so far to 'copyU05.ext3grep.stage2'. Delete that file
if you want to do this stage again.&lt;br /&gt;
Restoring oradata/SOUK/redog01a_SOUK.log&lt;br /&gt;
Restoring oradata/SOUK/redog01b_SOUK.log&lt;br /&gt;
Restoring oradata/SOUK/redog02a_SOUK.log&lt;br /&gt;
Restoring oradata/SOUK/redog02b_SOUK.log&lt;br /&gt;
Restoring oradata/SOUK/redog03a_SOUK.log&lt;br /&gt;
Restoring oradata/SOUK/redog03b_SOUK.log &lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;br /&gt;Restored files are copied in the “RESTORED_FILES” directory
of the current path. &lt;span&gt;&amp;nbsp;&lt;/span&gt;Now we only have to
copy them in the correct directory.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[root@slo02test ~]# ls -ls RESTORED_FILES/ -R&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;RESTORED_FILES/:&lt;br /&gt;
total 8&lt;br /&gt;
4 drwx------ 2 root root 4096 Oct 22 23:06 lost+found&lt;br /&gt;
4 drwxr-xr-x 3 root root 4096 Oct 22 23:09 oradata&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;RESTORED_FILES/lost+found:&lt;br /&gt;
total 0&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;RESTORED_FILES/oradata:&lt;br /&gt;
total 4&lt;br /&gt;
4 drwxr-xr-x 2 root root 4096 Oct 22 23:38 SOUK&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;RESTORED_FILES/oradata/SOUK:&lt;br /&gt;
total 82080&lt;br /&gt;
10260 -rw-r----- 1 root root 10486272 Oct 22 23:17 redog01a_SOUK.log&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;10260 -rw-r----- 1 root root 10486272 Nov 22 23:17 redog01b_SOUK.log&lt;br /&gt;
10260 -rw-r----- 1 root root 10486272 Oct 22 23:18 redog02a_SOUK.log&lt;br /&gt;
10260 -rw-r----- 1 root root 10486272 Oct 22 23:18 redog02b_SOUK.log&lt;br /&gt;
10260 -rw-r----- 1 root root 10486272 Oct 22 23:18 redog03a_SOUK.log&lt;br /&gt;
10260 -rw-r----- 1 root root 10486272 Oct 22 23:18 redog03b_SOUK.log&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;[root@slo02test ~]# mount /u05&lt;br /&gt;
&lt;br /&gt;
[root@slo02test ~]# cp RESTORED_FILES/oradata/SOUK/redog0?a_SOUK.log
/u05/oradata/SOUK/&lt;br /&gt;
[root@slo02test ~]# chown oracle.oinstall /u05/oradata/SOUK/ -R&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;



&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;Once redo logs restored and copied
into the original path, database start can be done. However keep in consideration
that committed transactions could be lost depending on your database and
filesystem configuration!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;oracle@slo02test:~/ [SOUK] sqh&lt;br /&gt;
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Oct 22 23:43:41 2009&lt;br /&gt;
&lt;br /&gt;
Copyright (c) 1982, 2007, Oracle.&lt;span&gt;&amp;nbsp; &lt;/span&gt;All
Rights Reserved.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Connected to an idle instance.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;SQL&amp;gt; startup&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;ORACLE instance started.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Total System Global Area 1073741824 bytes&lt;br /&gt;
Fixed Size&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;1271588 bytes&lt;br /&gt;
Variable Size&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;264243420 bytes&lt;br /&gt;
Database Buffers&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;805306368 bytes&lt;br /&gt;
Redo Buffers&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;2920448 bytes&lt;br /&gt;
Database mounted.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Database opened.&lt;/span&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;As we can see,
dropping redo log files or any other file do not necessarily lead to definitely
loosing transactions. Ext3grep can be used as an additional way to recover your
database.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}


 
  Normal
  0
  false
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 




 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&amp;quot;Table Normal&amp;quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&amp;quot;&amp;quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;}



&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;Conclusion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Several situations can lead to
media recovery, site disaster, block corruption, FAT corrupted, etc… In case of
hardware errors the most secure way to solve it is often calling media recovery
companies. Dealing with physical damages to a hard drive with such tools can destroy
any last hope of a successful recovery. However if no physical damages are
confirmed these tools can recover precious data.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;The first thing to do when media
error occurs is stopping immediately any activity on this media. It is only
after stopping any activity on the media that we can take time to think about
the way to proceed. As shown in this article the second step is generally copying
the failing media on a trusted support. Working directly on the failing media
could lead to definitively loosing valuable data. That’s why it is strongly
recommended duplicating data before any other operation. Several tools provide
duplication functionalities such as dd_rescue.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Once the failing media duplicated
recovery can be done using the backup media. One more time a variety of tools
can be used depending on the filesystem and data to recover.&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Finally once data recovered it
may worth doing a backup. Although those tools can get out of hopeless situations
and add a way to recover files to usual methods, testing backup and restore
processes at regular intervals is maybe the best way to avoid spending time in
such recovery processes.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Gregory Steulet&lt;br /&gt;
Oracle Certified Professional 10G&lt;br /&gt;
MySQL Cluster 5.1 Certified&lt;br /&gt;
Avaloq Certified Professional&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;Trivadis SA&lt;br /&gt;
Rue Marterey 5 &lt;br /&gt;
CH-1005 Lausanne &lt;br /&gt;
Tel: +41-21-321 47 00&lt;br /&gt;
Fax: +41-21-321 47 01&lt;br /&gt;
Internet:&amp;nbsp; www.trivadis.com&lt;br /&gt;
Mail: info@trivadis.com&lt;/span&gt;&lt;/p&gt;

&lt;b&gt;&lt;span&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;span&gt;Literature and Links…&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.cgsecurity.org/wiki/TestDisk&quot;&gt;&lt;span&gt;http://www.cgsecurity.org/wiki/TestDisk&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.gnu.org/software/ddrescue/ddrescue.html&quot;&gt;&lt;span&gt;http://www.gnu.org/software/ddrescue/ddrescue.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.knoppix.org/&quot;&gt;&lt;span&gt;http://www.knoppix.org/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.xs4all.nl/%7Ecarlo17/howto/undelete_ext3.html&quot;&gt;&lt;span&gt;http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://foremost.sourceforge.net/&quot;&gt;&lt;span&gt;http://foremost.sourceforge.net/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.hiren.info/&quot;&gt;&lt;span&gt;http://www.hiren.info/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.krollontrack.com/&quot;&gt;&lt;span&gt;http://www.krollontrack.com/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&lt;a href=&quot;http://www.giis.co.in/&quot;&gt;&lt;span&gt;http://www.giis.co.in/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&amp;nbsp;

&amp;nbsp;

&amp;nbsp;

&amp;nbsp;

&lt;img src=&quot;http://blog.trivadis.com/aggbug.aspx?PostID=73057&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</content>
		<author>
			<name>Gregory Steulet blog</name>
			<uri>http://blog.trivadis.com/blogs/gregorysteulet/default.aspx</uri>
		</author>
		<source>
			<title type="html">Gregory Steulet blog</title>
			<subtitle type="html">High-Availability and Open Source fields</subtitle>
			<link rel="self" href="http://blog.trivadis.com/blogs/gregorysteulet/rss.aspx"/>
			<id>http://blog.trivadis.com/blogs/gregorysteulet/rss.aspx</id>
			<updated>2009-11-29T11:40:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Got Interviewed</title>
		<link href="http://www.krisbuytaert.be/blog/got-interviewed"/>
		<id>http://www.krisbuytaert.be/960 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-11-18T20:05:47+00:00</updated>
		<content type="html">&lt;p&gt;by &lt;a href=&quot;http://www.johnmwillis.com/devopsdays/devopsdays-09-interview-with-kris-buytaert/&quot;&gt;@botchagalupe&lt;/a&gt;&lt;br /&gt;
on Virtualization, Open Source tools and DNS Problems&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/dnsproblem&quot; rel=&quot;tag&quot;&gt;dnsproblem&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/drupal&quot; rel=&quot;tag&quot;&gt;drupal&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/heartbeat&quot; rel=&quot;tag&quot;&gt;heartbeat&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/linux-ha&quot; rel=&quot;tag&quot;&gt;linux-ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/mysql&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/pacemaker&quot; rel=&quot;tag&quot;&gt;pacemaker&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/puppet&quot; rel=&quot;tag&quot;&gt;puppet&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/virtualization&quot; rel=&quot;tag&quot;&gt;virtualization&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/xen&quot; rel=&quot;tag&quot;&gt;xen&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/got-interviewed/shareomatic-drupal/Got Interviewed&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/got-interviewed/shareomatic-drupal/Got Interviewed&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/got-interviewed&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/got-interviewed&quot; dc:title=&quot;Got Interviewed&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/960&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/960&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Publican packages for Ubuntu karmic</title>
		<link href="http://fghaas.wordpress.com/2009/11/18/publican-packages-for-ubuntu-karmic/"/>
		<id>http://fghaas.wordpress.com/?p=330</id>
		<updated>2009-11-18T13:57:29+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.clusterlabs.org/wiki/Andrew_Beekhof&quot;&gt;Andrew&lt;/a&gt;, whom I helped convince to switch to &lt;a href=&quot;http://www.docbook.org&quot;&gt;DocBook&lt;/a&gt; for writing &lt;a href=&quot;http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/index.html&quot;&gt;Pacemaker documentation&lt;/a&gt;, pointed me to &lt;a href=&quot;https://fedorahosted.org/publican/&quot;&gt;Publican&lt;/a&gt;, a DocBook publishing framework developed by tech writers at &lt;a href=&quot;http://www.redhat.com&quot;&gt;Red Hat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Publican packages have been available in &lt;a href=&quot;http://www.debian.org&quot;&gt;Debian&lt;/a&gt; &lt;a href=&quot;http://www.debian.org/releases/squeeze&quot;&gt;squeeze&lt;/a&gt; for a while, but as of today are not included in &lt;a href=&quot;http://www.ubuntu.com&quot;&gt;Ubuntu&lt;/a&gt;. Thus, I built packages for &lt;a href=&quot;http://wiki.ubuntu.com/KarmicKoala&quot;&gt;karmic&lt;/a&gt;, which you may fetch by adding the following line to your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;deb http://people.linbit.com/~florian/ubuntu/publican karmic main&lt;/pre&gt;
&lt;p&gt;Then fetch my GnuPG key so you can verify the Release file&amp;#8217;s integrity:&lt;/p&gt;
&lt;pre&gt;apt-key adv --keyserver pgp.mit.edu --recv-keys 7349B897BC759CF1&lt;/pre&gt;
&lt;p&gt;Now you can install with&lt;/p&gt;
&lt;pre&gt;aptitude update
aptitude install publican&lt;/pre&gt;
&lt;p&gt;&amp;#8230; and then hack away.&lt;/p&gt;
&lt;p&gt;Ubuntu folks (&lt;a href=&quot;http://www.roaksoax.com/&quot;&gt;Andres&lt;/a&gt;, that means you!), can we have this in the upstream Ubuntu distros please?&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/330/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/330/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/330/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/330/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/330/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/330/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/330/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/330/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/330/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/330/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=330&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">LINBIT announces stewardship for Heartbeat code base</title>
		<link href="http://fghaas.wordpress.com/2009/11/16/linbit-announces-stewardship-for-heartbeat-code-base/"/>
		<id>http://fghaas.wordpress.com/?p=327</id>
		<updated>2009-11-16T19:06:35+00:00</updated>
		<content type="html">&lt;p&gt;Here is an announcement we made earlier today on the linux-ha and linux-ha-dev mailing lists.&lt;/p&gt;
&lt;p&gt;This is to announce that LINBIT, with the kind permission from the &lt;a href=&quot;http://www.linux-ha.org&quot;&gt;Linux-HA&lt;/a&gt; project board, will act as the &amp;#8220;steward&amp;#8221; of the Heartbeat cluster messaging layer code base, from this point forward. This is a summary of our motivation and plans related to that role.&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-327&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;What does this entail?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LINBIT will assume responsibility for bug fixes for the Heartbeat code base, currently hosted at &lt;a href=&quot;http://hg.linux-ha.org/dev/&quot;&gt;http://hg.linux-ha.org/dev/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;LINBIT will bundle up the 3.0 beta codebase, make a 3.0 final release (currently this is planned for the month of January 2010), and subsequently make bugfix releases as deemed necessary.&lt;/li&gt;
&lt;li&gt;LINBIT will further collaborate with the Pacemaker project to keep the existing dual-stack capability in Pacemaker.&lt;/li&gt;
&lt;li&gt;LINBIT will continue making the public Mercurial repository available at the present location (any eventual relocation, if desired by the Board, would be publicly announced with ample advance notice).&lt;/li&gt;
&lt;li&gt;LINBIT will administer the public mailing lists (linux-ha and linux-ha-dev) on the servers currently hosting them (again, any eventual relocation, would be publicly announced with ample advance notice).&lt;/li&gt;
&lt;li&gt;LINBIT intends to offer improved documentation for the Heartbeat messaging layer. This is meant to consolidate the content currently found on the linux-ha.org wiki site.&lt;/li&gt;
&lt;li&gt;LINBIT intends to offer support services for the Heartbeat/Pacemaker cluster stack (i.e. the Pacemaker cluster resource manager running on top of the Heartbeat cluster communication layer).&lt;/li&gt;
&lt;li&gt;LINBIT will continue to respect he Board as the final authority on matters affecting the project as a whole.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What does this not entail?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LINBIT has no intention to add significant features to the Heartbeat code base, or extend its functionality significantly.&lt;/li&gt;
&lt;li&gt;LINBIT has no intention to apply changes to the licensing, development model, or collaboration model for the Linux-HA code base.&lt;/li&gt;
&lt;li&gt;LINBIT has no intention to establish the Heartbeat code base as a &lt;em&gt;long-term&lt;/em&gt; alternative or competition to the OpenAIS/Corosync cluster messaging layer. However, we do believe that it is a valid alternative for the short to mid term, and for some configurations where OpenAIS/Corosync is currently suffering from some growing pains.&lt;/li&gt;
&lt;li&gt;LINBIT has no intention to support or advocate continued use of Heartbeat in v1 (haresources) configurations. We will continue to recommend to switch to the Pacemaker cluster stack, now that two (technically and commercially) supported cluster messaging layers are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At this time, the primary contact in charge of Heartbeat development matters at LINBIT is Lars Ellenberg, the person in charge of documentation is myself. The best means of relaying comments and asking questions continues to be the public mailing list.&lt;/p&gt;
&lt;p&gt;We hope that this is a useful service to the Heartbeat user community. I want to reiterate that we have no intention whatsoever to change the current, proven, community centric approach to how the Heartbeat code base is managed. We continue to welcome, and depend on, community suggestions, feedback, and collaboration. Heartbeat is a community project and will remain so.&lt;/p&gt;
&lt;p&gt;If you have any questions about our intentions and plans, please post them on the mailing list, or peruse the comment fields below.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/fghaas.wordpress.com/327/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/fghaas.wordpress.com/327/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/fghaas.wordpress.com/327/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/fghaas.wordpress.com/327/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/fghaas.wordpress.com/327/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/fghaas.wordpress.com/327/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/fghaas.wordpress.com/327/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/fghaas.wordpress.com/327/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/fghaas.wordpress.com/327/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/fghaas.wordpress.com/327/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=fghaas.wordpress.com&amp;blog=1182330&amp;post=327&amp;subd=fghaas&amp;ref=&amp;feed=1&quot; /&gt;</content>
		<author>
			<name>Florian's blog</name>
			<uri>http://fghaas.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Florian's blog</title>
			<subtitle type="html">Linux, DRBD, and other stuff of interest</subtitle>
			<link rel="self" href="http://blogs.linbit.com/florian/feed/"/>
			<id>http://blogs.linbit.com/florian/feed/</id>
			<updated>2010-03-01T09:00:26+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">New Documentation Formats</title>
		<link href="http://theclusterguy.clusterlabs.org/post/246103679"/>
		<id>http://theclusterguy.clusterlabs.org/post/246103679</id>
		<updated>2009-11-16T15:56:08+00:00</updated>
		<content type="html">&lt;p&gt;I’m pleased to report that the core Pacemaker documentation is now available in PDF, HTML (chunked and single page) and even TXT formats.&lt;/p&gt;

&lt;p&gt;The old &lt;a href=&quot;http://www.apple.com/iwork/pages/&quot;&gt;Pages.app&lt;/a&gt; sources have been replaced with &lt;a href=&quot;http://en.wikipedia.org/wiki/DocBook&quot;&gt;DocBook&lt;/a&gt; which allows them to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;published in a variety of formats&lt;/li&gt;
&lt;li&gt;kept under version control&lt;/li&gt;
&lt;li&gt;included in the packages&lt;/li&gt;
&lt;li&gt;updated by anybody&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additionally, we’re using &lt;a href=&quot;https://fedorahosted.org/publican/&quot;&gt;Publican&lt;/a&gt; to produce the final result so supporting multiple languages should be now possible.
Let us know if you’re interested in doing some translation :-)&lt;/p&gt;

&lt;p&gt;The primary location for Pacemaker documentation will remain &lt;a href=&quot;http://www.clusterlabs.org/wiki/Documentation&quot;&gt;http://www.clusterlabs.org/wiki/Documentation&lt;/a&gt; however there is also a index of the generated documentation at &lt;a href=&quot;http://www.clusterlabs.org/doc/&quot;&gt;http://www.clusterlabs.org/doc/&lt;/a&gt; which includes the date and version from which it was generated.&lt;/p&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Finding your MySQL High-Availability solution – Replication</title>
		<link href="http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/"/>
		<id>http://www.mysqlperformanceblog.com/?p=1607</id>
		<updated>2009-11-13T20:22:36+00:00</updated>
		<content type="html">&lt;p&gt;In the last 2 blog posts about High Availability for MySQL we have introduced &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&quot;&gt;definitions&lt;/a&gt; and provided a list of (&lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%E2%80%93-the-questions/&quot;&gt; questions&lt;/a&gt; that you need to ask yourself before choosing a HA solution.  In this new post, we will cover what is the most popular HA solution for MySQL, replication.  &lt;/p&gt;
&lt;h3&gt;High Availability solution for MySQL: Replication&lt;/h3&gt;
&lt;p&gt;This HA solution is the easiest to implement and to manage.  You basically need to setup MySQL replication between a master and one or more slaves.  Upon failure of the master, one of the slaves is manually promoted to the master role and replication on the other slaves is re-adjusted to point to the new master.  This solution works well with all the MySQL storage engines including MyISAM (NDB is a special discussed later) but it suffers from the limitation of MySQL replication.  The main limitation, in term of HA, is the asynchronous design of MySQL replication which does not allow the master to be sure the slave has been updated before returning after a &lt;em&gt;commit&lt;/em&gt; statement.  There is a window in time where it is possible that a fully committed transaction has not been pushed to the slave(s) leading to data loss.  Many large websites that are fine with some data loss rely on replication for HA and for read scaling.  &lt;/p&gt;
&lt;p&gt;In addition to hardware failure, the level of availability of this solution is affected by the availability of the MySQL replication link between the servers.  Replication often break for various reasons and while replication is broken, there is no High-Availability.  Also, the availability of this solution is affected by how much the slaves were behind the master when the outage occurred.  So, if you want to have a good level of availability, you need a good monitoring and alerting system to quickly react to replication issue and you need a rather small write load so that the slaves do not lag behind the master too much.  To maximize the level of availability, recovery should be automatic.&lt;/p&gt;
&lt;p&gt;Apart of its simplicity, an HA solution based on replication as many interesting properties, no wonder it is so popular.  First, if the application is well designed and has specific database handles for read and write operations,  this HA solution can scales the read operations to a high level.  Using the slaves for reads cause a second interesting side effect, the caches of the slaves are hot so failing over to a slave means no degraded performance associated with caches warm up.  Finally, it is well known that with MySQL,  altering a table means  recreating the whole table and it is a blocking operations.  Altering a large table may takes many hours.  The trick here is to run the alter table on a slave and then, once done, we let the slave catch up with the master using the new table schema, we failover to the slave and repeat the alter table on the other server.  Those online schema change are easier when a master to master topology is used.  &lt;/p&gt;
&lt;p&gt;The following figure summarize the simplest HA architecture using MySQL replication.  All writes are going to the master while reads are spread between the master and the slave.  Upon failure of the master, replication is stopped on the slave and all traffic is redirected to the slave which now handles reads and writes.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/uploads/2009/11/replication1.png&quot; alt=&quot;HA replication&quot; title=&quot;HA replication&quot; width=&quot;524&quot; height=&quot;322&quot; class=&quot;alignnone size-full wp-image-1699&quot; /&gt;&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Pros&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Cons&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple&lt;/td&gt;
&lt;td&gt;Variable level of availability (98-99.9+%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inexpensive&lt;/td&gt;
&lt;td&gt;Not suitable for high write loads&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All the servers can be used, no idle standby&lt;/td&gt;
&lt;td&gt;read scaling only if application splits reads from writes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supports MyISAM&lt;/td&gt;
&lt;td&gt;Can lose data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Caches on failover slave are not cold&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Online schema changes&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low impact backups&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt; Automatic failover with replication&lt;/h3&gt;
&lt;p&gt;I already mentioned that for best HA levels, failover or recovery should be automatic.  There are tools to manage automatic failover  with replication like MMM, Flipper and Tungsten.  Here, I will quickly describe the most popular one, MMM.&lt;/p&gt;
&lt;p&gt;With MMM, you need to add a separate server, the Manager that, like the name imply, manages the availability of the MySQL service.  A high availability solution based on MMM requires at the 2 MySQL servers configured in a Master to Master topology.  Additional slaves can also be added.  A MMM agent runs on all the MySQL servers and it is used to do OS level operations.  The principle of operation of MMM is based on VIPs.  There is one write VIP, where write operations are sent and as many read VIPs as the number of MySQL servers.  For the write VIP, MMM monitors the state of the current master and, upon failure, try to kill all the connections to the failing server and transfer the write VIP to the other master.  For the read VIPs, MMM monitors the state of the slaves and remove the read VIP of a slave if it has failed or is lagging behind the master by more than a defined threshold.  One of the main limitation of MMM is its lack of fencing capability.  It is important to stop all the connections to the failing master and if that server is not responding, maybe because of a network problem, a stonith device must be used to fence it.  I am far from being an expert with MMM, other guys on my team are way better than me, but I heard that the MMM v1 code base had some deficiencies.  MMM v2 is a complete rewrite that addresses some of the shortcomings of v1. Walter Heck from OpenQuery gave an excellent &lt;a href=&quot;http://forge.mysql.com/wiki/Dual_Master_Setups_With_MMM&quot;&gt;webinar&lt;/a&gt; on it recently.&lt;/p&gt;
&lt;p&gt;The architecture of a highly available setup using MMM and Master-Master replication is presented on the figure below. Apart from the minimum requirement of two MySQL servers replicating each other, there is a third server, called the manager, that controls both MySQL server through an agent that is running on each server. The manager controls and monitors the state of the replication and assign virtual IPs for specific roles.  There are one VIP where write operations are sent and two or more VIPs where read operations are sent.  If replication on one of the MySQL servers lags behind too much, its read VIP will be moved to another server.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/uploads/2009/11/master-master.png&quot; alt=&quot;master-master&quot; title=&quot;master-master&quot; width=&quot;528&quot; height=&quot;537&quot; class=&quot;alignnone size-full wp-image-1700&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As a conclusion, replication can be used in many cases to build effective and scalable highly available solutions but it has some limitations.  In my next blog post, I&amp;#8217;ll present another HA solution build around Heartbeat and DRBD.&lt;/p&gt;
    &lt;hr noshade=&quot;noshade&quot; /&gt;
    &lt;p&gt;Entry posted by yves |
      &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/#comments&quot;&gt;5 comments&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;Add to: &lt;a href=&quot;http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/&amp;title=Finding your MySQL High-Availability solution – Replication&quot; title=&quot;Bookmark this post on del.icio.us&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png&quot; alt=&quot;delicious&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/&amp;title=Finding your MySQL High-Availability solution – Replication&quot; title=&quot;Digg this post on Digg.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png&quot; alt=&quot;digg&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/&amp;title=Finding your MySQL High-Availability solution – Replication&quot; title=&quot;Submit this post on reddit.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png&quot; alt=&quot;reddit&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/&amp;T=Finding your MySQL High-Availability solution – Replication&quot; title=&quot;Vote for this article on Netscape&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif&quot; alt=&quot;netscape&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/11/13/finding-your-mysql-high-availability-solution-%e2%80%93-replication/&amp;title=Finding your MySQL High-Availability solution – Replication&quot; title=&quot;Add to Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>MySQL Performance Blog » High Availability</name>
			<uri>http://www.mysqlperformanceblog.com</uri>
		</author>
		<source>
			<title type="html">MySQL Performance Blog » High Availability</title>
			<subtitle type="html">Everything about MySQL Performance</subtitle>
			<link rel="self" href="http://www.mysqlperformanceblog.com/category/high-availability/feed/"/>
			<id>http://www.mysqlperformanceblog.com/category/high-availability/feed/</id>
			<updated>2010-03-04T18:00:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Yet Another DNS Issue</title>
		<link href="http://www.krisbuytaert.be/blog/yet-another-dns-issue"/>
		<id>http://www.krisbuytaert.be/958 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-11-12T21:01:43+00:00</updated>
		<content type="html">&lt;p&gt;While browsing trough  my enormous mailinglist backlog I ran into the following message from Gianluca Cecchi on the DRBD-user mailing list&lt;/p&gt;
&lt;p&gt;guess I`ll have to give Lars a T-Shirt when we next meet ;)&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;From: Gianluca Cecchi&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;To: drbd-user@lists.linbit.com&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Subject: [DRBD-user] notes on 8.3.2&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;- drbdadm create-md r0 segfaults when the command &amp;quot;hostname&amp;quot; on the&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;server contains the fully qualified domain name but you have put only&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;the hostname part in drbd.conf&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Instead, the command &amp;quot;drbdadm dump&amp;quot; correctly gives you a warning in&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;this case (suggesting how to correct the error you made....):&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;suppose complete hostname is virtfed.domainname.com and you put&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;virtfed alone in drbd.conf&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;[root@virtfed ~]# drbdadm dump&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;WARN: no normal resources defined for this host (virtfed.domainname.com)!?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;while&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;[root@virtfed ~]# drbdadm create-md r0&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Segmentation fault&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Guess I`ll have to give the Linbit crowd a T-Shirt when we next meet ;)&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/dnsproblem&quot; rel=&quot;tag&quot;&gt;dnsproblem&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/drbd&quot; rel=&quot;tag&quot;&gt;drbd&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/linux-cluster&quot; rel=&quot;tag&quot;&gt;linux-cluster&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/yet-another-dns-issue/shareomatic-drupal/Yet Another DNS Issue&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/yet-another-dns-issue/shareomatic-drupal/Yet Another DNS Issue&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/yet-another-dns-issue&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/yet-another-dns-issue&quot; dc:title=&quot;Yet Another DNS Issue&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/958&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/958&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Pacemaker 1.0.6 Released</title>
		<link href="http://theclusterguy.clusterlabs.org/post/230672127"/>
		<id>http://theclusterguy.clusterlabs.org/post/230672127</id>
		<updated>2009-11-02T10:19:53+00:00</updated>
		<content type="html">&lt;p&gt;The next installment of the &lt;a href=&quot;http://www.clusterlabs.org/wiki/Pacemaker&quot;&gt;Pacemaker&lt;/a&gt; 1.0 stable series is now ready for general consumption.&lt;/p&gt;

&lt;p&gt;In addition to further polishing of the crm shell and CLI tools, this is the first release to support CoroSync (version 1.1.2 or greater is required).&lt;/p&gt;

&lt;p&gt;The ”Pacemaker Explained” reference has also been converted to docbook and is included as part of the tarball (and pre-built packages if the relevant stylesheets are present at build time).&lt;/p&gt;

&lt;p&gt;Pre-built packages for Pacemaker and it’s immediate dependancies will be available for openSUSE, SLES, Fedora, RHEL, CentOS from the &lt;a href=&quot;http://software.opensuse.org/download/server:/ha-clustering&quot;&gt;OpenSUSE Build Service&lt;/a&gt; in the next couple of days depending in how overloaded it is.&lt;/p&gt;

&lt;p&gt;Debian users should check for updates &lt;a href=&quot;http://clusterlabs.org/wiki/Install#Debian&quot;&gt;Martin’s repo&lt;/a&gt; over the coming days and Ubuntu fans can visit &lt;a href=&quot;https://edge.launchpad.net/~ubuntu-ha-maintainers/+archive/ppa&quot;&gt;LaunchPad&lt;/a&gt; for 8.04 and 9.10 packages.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://hg.clusterlabs.org/pacemaker/stable-1.0/archive/Pacemaker-1.0.6.tar.bz2&quot;&gt;source tarball&lt;/a&gt; is also available directly from Mercurial.&lt;/p&gt;

&lt;p&gt;General installation instructions are available at from the &lt;a href=&quot;http://clusterlabs.org/wiki/Install&quot;&gt;ClusterLabs wiki&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Release Statistics&lt;/h3&gt;

&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Changesets&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt; 185 &lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Diff&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt; 331 files changed, 13858 insertions(+), 3277 deletions(-)&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;Project Administrivia&lt;/h3&gt;

&lt;p&gt;We may switch to a bi-monthly release cycle.
If you have any thoughts on this (for or against), please get in touch.&lt;/p&gt;

&lt;h3&gt;Changes of note since Pacemaker-1.0.5&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;High: cib: Correctly clean up when both plaintext and tls remote ports are requested&lt;/li&gt;
&lt;li&gt;High: ais: Avoid excessive load by checking for dead children every 1s (instead of 100ms)&lt;/li&gt;
&lt;li&gt;High: ais: Bug lf#2199 - Prevent expected-quorum-votes from being populated with garbage&lt;/li&gt;
&lt;li&gt;High: ais: Bug rh#525589 - Prevent shutdown deadlocks when running on CoroSync&lt;/li&gt;
&lt;li&gt;High: ais: Gracefully handle changes to the AIS nodeid&lt;/li&gt;
&lt;li&gt;High: ais: Prevent deadlock - dont try to release IPC message if the connection failed&lt;/li&gt;
&lt;li&gt;High: ais: Ubuntu needs a leading zero for directory modes&lt;/li&gt;
&lt;li&gt;High: cib: For validation errors, send back the full CIB so the client can display the errors&lt;/li&gt;
&lt;li&gt;High: cib: Prevent use-after-free for remote plaintext connections&lt;/li&gt;
&lt;li&gt;High: cib: Repair the ability to connect to the cluster from non-cluster machines&lt;/li&gt;
&lt;li&gt;High: Core: Bug lf#2169 - Allow dtd/schema validation to be disabled&lt;/li&gt;
&lt;li&gt;High: crmd: Bug bnc#527530 - Wait for the transition to complete before leaving S_TRANSITION_ENGINE&lt;/li&gt;
&lt;li&gt;High: crmd: Bug lf#2201 - Guard against possible cause of a segfault&lt;/li&gt;
&lt;li&gt;High: crmd: Prevent use-after-free with LOG_DEBUG_3&lt;/li&gt;
&lt;li&gt;High: Extras: Add sctp support to the controld RA&lt;/li&gt;
&lt;li&gt;High: PE: Bug bnc#515172 - Provide better defaults for lt(e) and gt(e) comparisions&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2106 - Not all anonymous clone children are restarted after configuration change&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2170 - stop-all-resources option had no effect&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2171 - Prevent groups from starting if they depend on a complex resource which can’t&lt;/li&gt;
&lt;li&gt;High: PE: Bug lf#2197 - Allow master instances placemaker to be influenced by colocation constraints&lt;/li&gt;
&lt;li&gt;High: PE: Disable resource management if stonith-enabled=true and no stonith resources are defined&lt;/li&gt;
&lt;li&gt;High: PE: Don’t include master score if it would prevent allocation&lt;/li&gt;
&lt;li&gt;High: PE: Make sure promote/demote pseudo actions are created correctly&lt;/li&gt;
&lt;li&gt;High: PE: Prevent target-role from promoting more than master-max instances&lt;/li&gt;
&lt;li&gt;High: shell: Add allow-migrate as allowed meta-attribute (bnc#539968)&lt;/li&gt;
&lt;li&gt;High: tools: bnc#547579,547582 - crm: status section editing support&lt;/li&gt;
&lt;li&gt;High: Tools: crm: add semantic checks depending on the meta-data from resource agents&lt;/li&gt;
&lt;li&gt;High: Tools: crm: improve processing of group edit and constraints&lt;/li&gt;
&lt;li&gt;High: Tools: crm: improve the edit command&lt;/li&gt;
&lt;li&gt;High: Tools: pingd - Fix a number of critical bugs (patch via Kazunori INOUE)&lt;/li&gt;
&lt;li&gt;Med: xml: Mask the “symmetrical” attribute on rsc_colocation constraints (bnc#540672)&lt;/li&gt;
&lt;li&gt;Medium (bnc#520707): Tools: crm: new templates ocfs2 and clvm&lt;/li&gt;
&lt;li&gt;Medium (LF 2164): Tools: hb_report: expand the crm status command&lt;/li&gt;
&lt;li&gt;Medium (LF 2184): Tools: crm: extend ptest command&lt;/li&gt;
&lt;li&gt;Medium (LF 2185): Tools: crm: add resource promote/demote commands&lt;/li&gt;
&lt;li&gt;Medium (LF 2198): Tools: crm: add node fence command&lt;/li&gt;
&lt;li&gt;Medium: ais: Attempt to enable core file generation if it was disabled&lt;/li&gt;
&lt;li&gt;Medium: ais: Include version details in plugin name&lt;/li&gt;
&lt;li&gt;Medium: Build: Re-enable asciidoc documentation&lt;/li&gt;
&lt;li&gt;Medium: Build: Shell templates arent documentation&lt;/li&gt;
&lt;li&gt;Medium: cib: Remove delay for remote plaintext connections&lt;/li&gt;
&lt;li&gt;Medium: Core: Disable syslog for any process that doesn’t want its arguments logged&lt;/li&gt;
&lt;li&gt;Medium: crmd: Requery the resource metadata after every start operation&lt;/li&gt;
&lt;li&gt;Medium: cts: add —benchmark for scalability tests&lt;/li&gt;
&lt;li&gt;Medium: cts: Prepare for corosync testing&lt;/li&gt;
&lt;li&gt;Medium: Extra: Include SNMP MIB file for crm_mon (from Michael Schwartzkopff)&lt;/li&gt;
&lt;li&gt;Medium: PE: Bug lf#2178 - Indicate unmanaged clones&lt;/li&gt;
&lt;li&gt;Medium: PE: Bug lf#2180 - Include node information for all failed ops&lt;/li&gt;
&lt;li&gt;Medium: PE: Bug lf#2189 - Incorrect error message when unpacking simple ordering constraint&lt;/li&gt;
&lt;li&gt;Medium: PE: Correctly log resources that would like to start but can’t&lt;/li&gt;
&lt;li&gt;Medium: PE: Correctly log the state of orphaned clone instances&lt;/li&gt;
&lt;li&gt;Medium: PE: If no migrate_(from|to) action is defined, look for migrate instead&lt;/li&gt;
&lt;li&gt;Medium: PE: Only re-instate target-role if it is less than the calculated one&lt;/li&gt;
&lt;li&gt;Medium: PE: Provide details for the maintenance-mode option&lt;/li&gt;
&lt;li&gt;Medium: PE: Stop ptest from logging to syslog&lt;/li&gt;
&lt;li&gt;Medium: Tools: attrd_updater - Suppress all logging with —quiet&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: add extra flag to CibObject for invalid objects&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: do return cached resources dom node&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: expand template documentation&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm: first child of a removed parent inherits constraints&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm_attribute - Suppress all logging with —quiet&lt;/li&gt;
&lt;li&gt;Medium: Tools: crm_shadow - log diffs to stdout instead of stderr&lt;/li&gt;
&lt;li&gt;Medium: Tools: Use -q as the short form for —quiet (for consistency)&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">29 Oct 2009</title>
		<link href="http://www.advogato.org/person/lmb/diary.html?start=104"/>
		<id>http://www.advogato.org/person/lmb/diary.html?start=104</id>
		<updated>2009-10-29T11:02:56+00:00</updated>
		<content type="html">&lt;p&gt;Again a tip on how to write your OpenAIS/Pacemaker
configuration in a simpler fashion; this applies to &lt;a href=&quot;http://www.novell.com/products/highavailability/&quot;&gt;SUSE
Linux Enterprise 11 High-Availability Extension&lt;/a&gt; too, of
course.
&lt;p&gt;For the full cluster functionality with
OpenAIS/OCFS2/cLVM2 and an OCFS2 mount on top, you need to
configure DLM, O2CB, cLVM2 clones, one to start the LVM2
volume group, and Filesystem resources to mount the file
system. Add in all the dependencies needed, and you end up
with a configuration pretty much like this (shown in CRM
shell syntax, which is already much more concise than the
raw XML):&lt;br /&gt;
&lt;pre&gt;
primitive clvm ocf:lvm2:clvmd
primitive dlm ocf:pacemaker:controld
primitive o2cb ocf:ocfs2:o2cb
primitive ocfs2-2 ocf:heartbeat:Filesystem \
        params device=&quot;/dev/cluster-vg/ocfs2&quot;
directory=&quot;/ocfs2-2&quot; fstype=&quot;ocfs2&quot;
primitive vg1 ocf:heartbeat:LVM \
        params volgrpname=&quot;cluster-vg&quot;
clone c-ocfs2-2 ocfs2-2 \
        meta target-role=&quot;Started&quot; interleave=&quot;true&quot;
clone clvm-clone clvm \
        meta target-role=&quot;Started&quot; interleave=&quot;true&quot;
ordered=&quot;true&quot;
clone dlm-clone dlm \
        meta interleave=&quot;true&quot; ordered=&quot;true&quot;
target-role=&quot;Stopped&quot;
clone o2cb-clone o2cb \
        meta target-role=&quot;Started&quot; interleave=&quot;true&quot;
ordered=&quot;true&quot;
clone vg1-clone vg1 \
        meta target-role=&quot;Started&quot; interleave=&quot;true&quot;
ordered=&quot;true&quot;
colocation colo-clvm inf: clvm-clone dlm-clone
colocation colo-o2cb inf: o2cb-clone dlm-clone
colocation colo-ocfs2-2 inf: c-ocfs2-2 o2cb-clone
colocation colo-ocfs2-2-vg1 inf: c-ocfs2-2 vg1-clone
colocation colo-vg1 inf: vg1-clone clvm-clone
order order-clvm inf: dlm-clone clvm-clone
order order-o2cb inf: dlm-clone o2cb-clone
order order-ocfs2-2 inf: o2cb-clone c-ocfs2-2
order order-ocfs2-2-vg1 inf: vg1-clone c-ocfs2-2
order order-vg1 inf: clvm-clone vg1-clone
&lt;/pre&gt;
That's quite a bite, and becomes cumbersome for every fs you
add.

&lt;p&gt; &lt;p&gt;However, there is a little known feature - you can
actually clone a resource group:&lt;br /&gt;
&lt;pre&gt;
primitive clvm ocf:lvm2:clvmd
primitive dlm ocf:pacemaker:controld
primitive o2cb ocf:ocfs2:o2cb
primitive ocfs2-2 ocf:heartbeat:Filesystem \
        params device=&quot;/dev/cluster-vg/ocfs2&quot;
directory=&quot;/ocfs2-2&quot; fstype=&quot;ocfs2&quot;
primitive vg1 ocf:heartbeat:LVM \
        params volgrpname=&quot;cluster-vg&quot;
group base-group dlm o2cb clvm vg1 ocfs2-2
clone base-clone base-group \
	meta interleave=&quot;true&quot;
&lt;/pre&gt;

&lt;p&gt; &lt;p&gt;I think this speaks for itself; &lt;i&gt;20 lines of
configuration reduced&lt;/i&gt;. You will also find that
&lt;code&gt;crm_mon&lt;/code&gt; output is much simpler and shorter,
allowing
you to
see more of the cluster status in one go.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Advogato blog for lmb</name>
			<uri>http://www.advogato.org/person/lmb/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for lmb</title>
			<subtitle type="html">Advogato blog for lmb</subtitle>
			<link rel="self" href="http://www.advogato.org/person/lmb/rss.xml"/>
			<id>http://www.advogato.org/person/lmb/rss.xml</id>
			<updated>2010-03-10T14:20:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">State of the art: Galera – synchronous replication for InnoDB</title>
		<link href="http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/"/>
		<id>http://www.mysqlperformanceblog.com/?p=1556</id>
		<updated>2009-10-27T15:08:58+00:00</updated>
		<content type="html">&lt;p&gt;First time I heard about Galera on Percona Performance Conference 2009, Seppo Jaakola was presenting &lt;a href=&quot;http://www.percona.com/ppc2009/PPC2009_galera.pdf&quot;&gt;&amp;#8220;Galera: Multi-Master Synchronous MySQL Replication Clusters&amp;#8221;&lt;/a&gt;. It was impressed as I personally always wanted it for InnoDB, but we had it in plans at the bottom of the list, as this is very hard to implement properly.&lt;br /&gt;
The idea by itself is not new, I remember synchronous replication was announced for SolidDB on MySQL UC 2007, but later the product was killed by IBM.&lt;/p&gt;
&lt;p&gt;So long time after PPC 2009 there was available version mysql-galera-0.6, which had serious flow, to setup a new node you had to take down whole cluster. And all this time Codership ( company that develops Galera) was working on 0.7 release that introduces node propagation keeping cluster online. You can play with 0.7pre release by yourself &lt;a href=&quot;http://www.codership.com/en/downloads/galera&quot;&gt;MySQL/Galera Release 0.7pre&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In current version propagation is done by mysqldump from one of nodes (&amp;#8220;donor&amp;#8221;). In next release Codership is going to support LVM snapshot and xtrabackup which will make the setup of new node even easier. The current annoyance I see is that if you shutdown one node for short period of time for quick maintenance, after  start, the node has to load whole mysqldump, like it is new empty node. I hope Codership guys will address this also.&lt;br /&gt;
Another thing I miss for now is support of InnoDB-plugin, which as we know performs much better than standard InnoDB &amp;reg;.&lt;/p&gt;
&lt;p&gt;So what is so interesting about Galera. Couple things:&lt;/p&gt;
&lt;p&gt;- High Availability. Any of N standby nodes are available immediately when main node fails. Galera is serious pretender to be included to the list, Yves put recently, &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&quot;&gt;http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&lt;/a&gt;. I am not sure how many nines it will provide &lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; , but efforts on test setup and deployment should be comparable with MMM setup.&lt;/p&gt;
&lt;p&gt;- Scale Writes. Galera allows to write to any of N nodes and automatically propagate to other nodes. It sounds too ideal, and there is drawback &amp;#8211; with increasing amount of nodes you write to, your transaction rollback rate may increase, especially if you working on the same dataset. You can find some results on &lt;a href=&quot;http://www.codership.com/en/content/benchmarking-write-scalability&quot;&gt;Codership&amp;#8217;s page&lt;/a&gt;,  and I am going to run my own benchmarks also. Also from benchmark you can see that communication overhead maybe significant for short writes.&lt;/p&gt;
&lt;p&gt;- Scale Reads. It can be done with regular replication, but  with synchronous your &amp;#8220;slaves-nodes&amp;#8221; are in the same state, there is no &amp;#8220;slave behind&amp;#8221;. When you read from any slave, you read actual data. Although it also has serious drawback &amp;#8211;  our cluster is fast as fast the &amp;#8220;weakest&amp;#8221; node in the chain. So if one node gets overloaded and performance degrades, the same happens with whole cluster.&lt;/p&gt;
&lt;p&gt;- Heterogeneous-database replication. It is not here yet, and I do not know what&amp;#8217;s in Codership roadmap, but group manager protocol in Galera is database independent, and it&amp;#8217;s only matter of database drivers. For InnoDB currently it is set of patches, and I see it is quite possible to make the same for Postgres. So MySQL-Postgres cluster setup is not so far ahead &lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;On &lt;a href=&quot;http://www.codership.com/en/company/about&quot;&gt;&amp;#8220;Company page&amp;#8221; Codership says&lt;/a&gt; their goal is &amp;#8220;to promote and exploit the latest developments in computer science to produce fast and scalable synchronous replication solution that &amp;#8220;just works&amp;#8221; for databases and similar applications&amp;#8221;, which I think they have success in. Implementing fast, scalable and working group communication and transaction manager is the art.&lt;/p&gt;
&lt;p&gt;As for now I would not put 0.7 release into production yet, but you may seriously consider to play with it in test environment, and report bugs to Codership team, they are very responsive.&lt;br /&gt;
I am waiting for next releases and looking to make integration with XtraDB.&lt;/p&gt;
    &lt;hr noshade=&quot;noshade&quot; /&gt;
    &lt;p&gt;Entry posted by Vadim |
      &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/#comments&quot;&gt;11 comments&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;Add to: &lt;a href=&quot;http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &amp;#8211; synchronous replication for InnoDB&quot; title=&quot;Bookmark this post on del.icio.us&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png&quot; alt=&quot;delicious&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &amp;#8211; synchronous replication for InnoDB&quot; title=&quot;Digg this post on Digg.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png&quot; alt=&quot;digg&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &amp;#8211; synchronous replication for InnoDB&quot; title=&quot;Submit this post on reddit.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png&quot; alt=&quot;reddit&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;T=State of the art: Galera &amp;#8211; synchronous replication for InnoDB&quot; title=&quot;Vote for this article on Netscape&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif&quot; alt=&quot;netscape&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/27/state-of-the-art-galera-synchronous-replication-for-innodb/&amp;title=State of the art: Galera &amp;#8211; synchronous replication for InnoDB&quot; title=&quot;Add to Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>MySQL Performance Blog » High Availability</name>
			<uri>http://www.mysqlperformanceblog.com</uri>
		</author>
		<source>
			<title type="html">MySQL Performance Blog » High Availability</title>
			<subtitle type="html">Everything about MySQL Performance</subtitle>
			<link rel="self" href="http://www.mysqlperformanceblog.com/category/high-availability/feed/"/>
			<id>http://www.mysqlperformanceblog.com/category/high-availability/feed/</id>
			<updated>2010-03-04T18:00:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Nines , Damn Nines  and More Nines</title>
		<link href="http://www.krisbuytaert.be/blog/nines-damn-nines-and-more-nines"/>
		<id>http://www.krisbuytaert.be/951 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-10-19T21:46:41+00:00</updated>
		<content type="html">&lt;p&gt;Funny how different experiences lead to different evaluations of tools. The MySQL HA solutions &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%E2%80%93-the-questions/&quot;&gt;the MySQL Performanceblog&lt;/a&gt; list, are almost listed in the complete opposited order of what  my impressions are.&lt;/p&gt;
&lt;p&gt;Ok agreed, I should probably not put my MySQL NDB experiences from 2-3 years ago with multiple Query of deaths and more problems than you into account  anymore ,  but back then went in the list Less stable than a single node.   I've had NDB POC setups going down for much more than 05:16 minutes&lt;br /&gt;
Ndb comes with a lot of restrictions, there are&lt;/p&gt;
&lt;p&gt;As for MySQL on DRBD, &lt;a href=&quot;http://www.krisbuytaert.be/blog/mysql-and-drbd-often-say-no&quot;&gt;I've said this before&lt;/a&gt; , I love DRBD, but having to wait for a long InnoDB recovery after a failover  just kills your uptime ,&lt;br /&gt;
I remember being called by a customer during &lt;a href=&quot;http://lefred.be/&quot;&gt;Fred&lt;/a&gt; last holiday who was waiting over 20 minutes for recovery , twice, so putting the DRBD/San setup second would not be my preference.   But agreed .. it's only listed at 99.9% meaning almost 9 hours of downtime per year are allowed.&lt;/p&gt;
&lt;p&gt;On the other hand we've seen database uptime of MySQL MultiMaster setups with Heartbeat reaching better figures than 99.99%  Heck I've seen single nodes  achieve better  than 99.99% :)&lt;/p&gt;
&lt;p&gt;So what does this teach us ... there is no golden rule for HA,  lots of situations are different,  it's the preferences of the customer, the size of the database,   the kind of application , and much&lt;br /&gt;
more ..  you always need to think and evaluate the environment ...&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/cluster&quot; rel=&quot;tag&quot;&gt;cluster&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/drbd&quot; rel=&quot;tag&quot;&gt;drbd&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/linux-ha&quot; rel=&quot;tag&quot;&gt;linux-ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/mysql&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/nines&quot; rel=&quot;tag&quot;&gt;nines&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/nines-damn-nines-and-more-nines/shareomatic-drupal/Nines , Damn Nines  and More Nines &quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/nines-damn-nines-and-more-nines/shareomatic-drupal/Nines , Damn Nines  and More Nines &quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/nines-damn-nines-and-more-nines&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/nines-damn-nines-and-more-nines&quot; dc:title=&quot;Nines , Damn Nines  and More Nines &quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/951&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/951&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Finding your MySQL High-Availability solution – The questions</title>
		<link href="http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/"/>
		<id>http://www.mysqlperformanceblog.com/?p=1334</id>
		<updated>2009-10-16T21:02:55+00:00</updated>
		<content type="html">&lt;p&gt;After having reviewed the definition my the previous post (&lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&quot;&gt;The definitions&lt;/a&gt;), the next step is to respond to some questions.&lt;/p&gt;
&lt;h3&gt;Do you need MySQL High-Availability?&lt;/h3&gt;
&lt;p&gt;That question is quite obvious but some times, it is skipped.  It can also be formulated  &amp;#8220;What is the downtime cost of the service?&amp;#8221;.  In the cost, you need to include lost revenue from the service and you also need to consider less direct impact like loss of corporate image and other marketing costs.  If your downtime cost is under $10/h, you can stop reading this document, you don&amp;#8217;t need HA.  For the others, let&amp;#8217;s move on!&lt;/p&gt;
&lt;h3&gt;How to determine which MySQL High-Availability solution is best?&lt;/h3&gt;
&lt;p&gt;What is really tricky with MySQL is the number of possible HA solutions.  From the simplest the most complex let&amp;#8217;s list the most common ones:&lt;/p&gt;
&lt;p&gt;- MySQL replication with manual failover&lt;br /&gt;
- Master-Master with MMM manager&lt;br /&gt;
- Heartbeat/SAN&lt;br /&gt;
- Heartbeat/DRBD&lt;br /&gt;
- NDB Cluster&lt;/p&gt;
&lt;p&gt;These technologies are by far, not a one size fits all and many deployments use combination of solutions.  I will not cover ScaleDB and Continuent because I know almost nothing of these solutions. There are many more questions you need to ask yourself before being able to pick the right one.  Below, I listed the most common questions, I might have missed some.&lt;/p&gt;
&lt;h4&gt;1. What level of HA do you need?&lt;/h4&gt;
&lt;p&gt;Since all the technologies do not offer the same level of availability, this is a first important sorting factor. Here are estimates of the level of availability offered by the various solutions.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Level of availability&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple replication&lt;/td&gt;
&lt;td&gt;98 to 99.9+%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master-Master with MMM manager&lt;/td&gt;
&lt;td&gt;99% &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/SAN (depends on SAN)&lt;/td&gt;
&lt;td&gt;99.5% to 99.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/DRBD&lt;/td&gt;
&lt;td&gt;99.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDB Cluster&lt;/td&gt;
&lt;td&gt;99.999%&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;From the table, if your requirements are for 99.99%, you are restricted to NDB Cluster while if it is only 99% you have more options.  I recall that the level of availability is hard to estimate and subject to debate.  These are the usually accepted level of availability for these technologies.&lt;/p&gt;
&lt;h4&gt;2. Can you afford to lose data?&lt;/h4&gt;
&lt;p&gt;Obviously, if you are concerned about loss of data, you are most likely using the InnoDB storage engine, since MyISAM is not transactional and do not sync data to disk.  Similarly, MySQL replication is an asynchronous process and although it is fairly fast at transferring data between the master and the slaves, there is a window of time where data loss is possible.&lt;/p&gt;
&lt;p&gt;If you can afford to lose some data, you can consider &amp;#8220;MySQL replication&amp;#8221; and &amp;#8220;Master-Master with MMM manager&amp;#8221; otherwise, you can only consider the other three solutions.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Data 100% safe&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL replication&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master-Master with MMM manager&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/SAN (depends on SAN)&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/DRBD &lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDB Cluster&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;3. Does your application use MyISAM only features?&lt;/h4&gt;
&lt;p&gt;There are some features like Full text indexes and GIS indexes that are supported only by MyISAM.  The HA solutions that work well with MyISAM are &amp;#8220;MySQL replication&amp;#8221; and &amp;#8220;Master-Master with MMM manager&amp;#8221;.  Depending on the application, the MyISAM Full text indexes might be replaced by another search engine like Sphinx in order to remove the restriction.  There is no HA solution other than the ones based on replication that handles GIS indexes.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;HA solutions&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need MyISAM Full text or GIS indexes &lt;/td&gt;
&lt;td&gt;&amp;#8220;MySQL replication&amp;#8221; and &amp;#8220;Master-Master with MMM manager&amp;#8221;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Don&amp;#8217;t use any special MyISAM feature&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can change MyISAM Full text to Sphinx&lt;/td&gt;
&lt;td&gt;All&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;4. What is the write load?&lt;/h4&gt;
&lt;p&gt;The HA solutions we present are not equal in term of their write capacity.  Due to the way replication is implemented, only one thread on the slave can handle the write operations.  If the replication master is multi-cores servers and is heavily writing using multiple threads, the slaves will likely not be able to keep up.  Replication is not the only technology that put a strain on the write capacity, DRBD, a shared storage emulator for Linux, also reduce by about 30% (very dependent on hardware) the write capacity of a database server.  In term of write capacity here are you choices.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Write capacity&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL replication&lt;/td&gt;
&lt;td&gt;Fair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master-Master with MMM manager&lt;/td&gt;
&lt;td&gt;Fair&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/SAN (depends on SAN)&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/DRBD&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDB Cluster&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;5. For what level of growth are you planning?&lt;/h4&gt;
&lt;p&gt;Since NDB Cluster is an integrated sharding environment, if you are planning for a growth that will need sharding (splitting the database over multiple servers), then you might need to take a serious at that solution.  If not, then, apart from the write capacity, all the solutions are approximately equal.&lt;/p&gt;
&lt;h4&gt;6. How qualified is your staff or support company?&lt;/h4&gt;
&lt;p&gt;There is a quite direct relationship between the level of availability and the complexity of the solution.  In order to reach the promised level of availability, the staff maintaining the HA setup, either internal or external, must have the required level of expertise.  The required expertise level is summarized in the table below.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Expertise level&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL replication&lt;/td&gt;
&lt;td&gt;Typical, average MySQL DBA + some Sysadmin skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master-Master with MMM manager&lt;/td&gt;
&lt;td&gt;Good, average MySQL DBA + good Sysadmin skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/SAN (depends on SAN)&lt;/td&gt;
&lt;td&gt;High, Good MySQL DBA + strong Sysadmin skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/DRBD&lt;/td&gt;
&lt;td&gt;High, Good MySQL DBA + strong Sysadmin skills&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDB Cluster&lt;/td&gt;
&lt;td&gt;Very high, Specific NDB knowledge, strom MySQL skills and strong Sysadmin skills&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h4&gt;7. How deep are your pocket?&lt;/h4&gt;
&lt;p&gt;The last aspect that needs to be considered is the budget, complexity is expensive.  We will consider two types of setup.  The first one is a basic proof of concept of the technology with the hardware tested, the data imported and basic testing and documentation.  A proof of concept setup is a good way to get used to a technology and experiment with it in a test environment.  The other type of setup we will consider is a full production setup that includes extensive testing, fire drills, full documentation, monitoring, alerting, backups, migration to production and post migration monitoring.  Of course, it is the safest way to migrate an HA solution to production.  All the times here are estimates based on field experience, the values presented here are fairly typical and contains some buffers for unexpected problems. Although an HA solution can be built remotely through a KVM over IP and adequate remote power management, an on site intervention with physical access to the servers is the preferred way, especially for the most complex solutions.&lt;/p&gt;
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; summary=&quot;&quot; border=&quot;1&quot;&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Proof of concept&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;Migration to Production&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MySQL replication&lt;/td&gt;
&lt;td&gt;4 hours&lt;/td&gt;
&lt;td&gt;12 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Master-Master with MMM manager&lt;/td&gt;
&lt;td&gt;8 hours&lt;/td&gt;
&lt;td&gt;24 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/SAN (depends on SAN)&lt;/td&gt;
&lt;td&gt; 32 hours&lt;/td&gt;
&lt;td&gt;120 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heartbeat/DRBD&lt;/td&gt;
&lt;td&gt;40 hours&lt;/td&gt;
&lt;td&gt;120 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NDB Cluster&lt;/td&gt;
&lt;td&gt;40 hours&lt;/td&gt;
&lt;td&gt;120 hours+&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Editor&amp;#8217;s Note&lt;/strong&gt;: We&amp;#8217;ve gotten many questions about the time estimates mentioned here.  The above estimates shouldn&amp;#8217;t be used to compare against any specific situation.  Time will vary greatly depending on your project.  For example, &amp;#8220;setting up replication&amp;#8221; can be as simple as CHANGE MASTER TO, and can take as little as a few minutes in some circumstances.  Yves&amp;#8217;s estimate is for a &lt;em&gt;project to create a replication slave for HA purposes&lt;/em&gt;, not for &amp;#8220;setting up replication.&amp;#8221;  There is a big difference between an HA project and a DBA task. &lt;em&gt;&amp;#8211; Baron Schwartz&lt;/em&gt;&lt;/p&gt;
    &lt;hr noshade=&quot;noshade&quot; /&gt;
    &lt;p&gt;Entry posted by yves |
      &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/#comments&quot;&gt;32 comments&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;Add to: &lt;a href=&quot;http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&amp;title=Finding your MySQL High-Availability solution – The questions&quot; title=&quot;Bookmark this post on del.icio.us&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png&quot; alt=&quot;delicious&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&amp;title=Finding your MySQL High-Availability solution – The questions&quot; title=&quot;Digg this post on Digg.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png&quot; alt=&quot;digg&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&amp;title=Finding your MySQL High-Availability solution – The questions&quot; title=&quot;Submit this post on reddit.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png&quot; alt=&quot;reddit&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&amp;T=Finding your MySQL High-Availability solution – The questions&quot; title=&quot;Vote for this article on Netscape&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif&quot; alt=&quot;netscape&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-%e2%80%93-the-questions/&amp;title=Finding your MySQL High-Availability solution – The questions&quot; title=&quot;Add to Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>MySQL Performance Blog » High Availability</name>
			<uri>http://www.mysqlperformanceblog.com</uri>
		</author>
		<source>
			<title type="html">MySQL Performance Blog » High Availability</title>
			<subtitle type="html">Everything about MySQL Performance</subtitle>
			<link rel="self" href="http://www.mysqlperformanceblog.com/category/high-availability/feed/"/>
			<id>http://www.mysqlperformanceblog.com/category/high-availability/feed/</id>
			<updated>2010-03-04T18:00:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Heartbeat 2 OpenAIS</title>
		<link href="http://www.krisbuytaert.be/blog/heartbeat-2-openais"/>
		<id>http://www.krisbuytaert.be/950 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-10-16T18:53:13+00:00</updated>
		<content type="html">&lt;p&gt;While upgrading a pretty recent Heartbeat cluster to OpenAis earlier today I ran  into the following weird situation&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;Last updated: Fri Oct 16 08:50:03 2009&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Stack: openais&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Current DC: CO_NMS-1 - partition with quorum&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Version: 1.0.5-462f1569a43740667daf7b0f6b521742e9eb8fa7&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;4 Nodes configured, 2 expected votes&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;1 Resources configured.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;============&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Online: [ CO_NMS-1 CO_NMS-2 ]&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;OFFLINE: [ co_nms-1 co_nms-2 ]&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;or &lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;crm(live)node# show&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;co_nms-1(5c48ab4f-767f-e2dc-20ec-5969cddad152): normal&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;co_nms-2(922ff786-eca9-bed0-d79d-8222727a2c5b): normal&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;CO_NMS-1: normal&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;CO_NMS-2: normal&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Whohoo.. OpenAIS must have realized I have upperase and lowercase cores :)&lt;/p&gt;
&lt;p&gt;Funny to see .. but quickly solved..&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/heartbeat&quot; rel=&quot;tag&quot;&gt;heartbeat&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/high+availability&quot; rel=&quot;tag&quot;&gt;high availability&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/openais&quot; rel=&quot;tag&quot;&gt;openais&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/heartbeat-2-openais/shareomatic-drupal/Heartbeat 2 OpenAIS&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/heartbeat-2-openais/shareomatic-drupal/Heartbeat 2 OpenAIS&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/heartbeat-2-openais&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/heartbeat-2-openais&quot; dc:title=&quot;Heartbeat 2 OpenAIS&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/950&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/950&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Monitoring MySQL</title>
		<link href="http://www.krisbuytaert.be/blog/monitoring-mysql-0"/>
		<id>http://www.krisbuytaert.be/945 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-10-11T18:18:04+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://ronaldbradford.com/blog/what-alert-monitoring-do-you-use-2009-10-07/&quot;&gt;Ronald Bradford&lt;/a&gt; wants to know what kind of Monitoring you use..&lt;br /&gt;
He specifically wants to know about Alerting tools&lt;/p&gt;
&lt;p&gt;There's different cases , looking at it from a full infrastructure point my current favourite is Zabbix or good old Nagios,&lt;/p&gt;
&lt;p&gt;But when looking at it from a debugging perspective you have MySQLAR or Hyperic, but those aren't in the  alerting list.&lt;/p&gt;
&lt;p&gt;However, when you are building HA clusters, you have custom scripts running either from mon  or from pacemaker ..&lt;/p&gt;
&lt;p&gt;Still .. Ronald probably wants more input :)&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/monitoring&quot; rel=&quot;tag&quot;&gt;monitoring&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/msql&quot; rel=&quot;tag&quot;&gt;msql&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/zabbix&quot; rel=&quot;tag&quot;&gt;zabbix&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/zenos&quot; rel=&quot;tag&quot;&gt;zenos&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/monitoring-mysql-0/shareomatic-drupal/Monitoring MySQL&quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/monitoring-mysql-0/shareomatic-drupal/Monitoring MySQL&quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/monitoring-mysql-0&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/monitoring-mysql-0&quot; dc:title=&quot;Monitoring MySQL&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/945&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/945&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Finding your MySQL High-Availability solution – The definitions</title>
		<link href="http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/"/>
		<id>http://www.mysqlperformanceblog.com/?p=1331</id>
		<updated>2009-10-09T23:03:14+00:00</updated>
		<content type="html">&lt;p&gt;As my first contribution to the MySQL Performance Blog, I joined Percona at the beginning September, I chose to cover the various high-availability (HA) options available for MySQL.  I have done dozen of MySQL HA related engagements while working for Sun/MySQL over the last couple of years using Heartbeat, DRBD and NDB cluster and I&amp;#8217;ll probably be doing the same at Percona.  I have built my first DRBD based HA solution nearly 10 years ago.&lt;/p&gt;
&lt;p&gt;There is quite a lot of confusion surrounding HA solutions for MySQL, I will try to present them objectively, my goal here been not to sell any specific technology but to help people choose the right one for their needs.  This post is first of a series,  I don&amp;#8217;t yet know how many I will write in the series.&lt;/p&gt;
&lt;p&gt;Before we start, it must be stated that high-availability is not only a matter of technical solutions, good management practices covering monitoring, alerting, security and documentation are also needed to insure a successful solution. In other words, no solution is fool proof, if a high-availability solution is running in recovery mode for months without nobody caring about it, the risk of a complete failure is much higher.&lt;/p&gt;
&lt;p&gt;In order to all be on the same page, I will first give some definitions of the key terms.  I don&amp;#8217;t pretend those definitions are perfect but let&amp;#8217;s build on them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;High-Availability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s first define what is meant by high-availability.  The most general definition would be that a high-availability setup is special  computer architecture designed to improve the availability of a computer service, like a MySQL database.  High-availability, HA for short, introduces a wealth of peculiar concepts, we will first review the main ones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uptime/Downtime&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Uptime means the service is available even if degraded as long as it is above some defined performance threshold. Downtime means the opposite, either the service is completely down or unresponsive according to the defined performance threshold.  In many cases, people don&amp;#8217;t define a performance threshold, it is basically the service monitoring frequency and timeout that fix it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Level of Availability&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The level of availability is basically the guaranteed percentage of uptime you will get over a year.  It has always been a subject of debate and it is something hard to evaluate since, most of the time, the samples are small and all the conditions of the deployments are not easily controlled. See the level of availability as the availability you, as the operator of the service, can promise in case of a worse case scenario. For example, 98% availability means a downtime of a little more than 7 days per year.  The cost is approximately an exponential function of the level of availability and has to be compared with the downtime cost. If an HA setup with a level of availability of 99% is fairly simple and affordable, moving to 99.9% and 99.99% can be much more expensive and complex. Also, you need to consider the environmental factors.  If your ISP cannot guarantee you a level of availability of more then 99.9% for the Internet access, it is useless to go beyond that no matter the importance of the application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Single point of failure (SPOF)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Single points of failure are the things you are looking to remove when you build an HA solution.  Basically, they are the devices/things that if they are not available, the service is down.  A data center can be considered a SPOF at a high enough level of availability.  Usually the more SPOFs you consider, the higher the availability of your solution and the higher its cost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Recovery/failover&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Recovery (or failover) is the process by how a HA setup recovers from a failure. During the recovery time, the service is down.  With the most simple solutions, it can be a manual process but most of the time, it is automatic.  Also, there is a time associated with the recovery.  If a failure happened during the night and the operator is only available from 8am to 5pm then, you might have a recovery time of more than 12 hours.  The more complex solutions have automatic recovery and do not need human intervention.  Once again, although they are some exceptions, faster and automatic recovery usually means higher costs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cluster &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A bunch of servers used for the same task.  In our case, dedicated to high availability of the MySQL database service.&lt;/p&gt;
&lt;p&gt;With theses common definitions, we will then be able to move to the second step, the questions.&lt;/p&gt;
    &lt;hr noshade=&quot;noshade&quot; /&gt;
    &lt;p&gt;Entry posted by yves |
      &lt;a href=&quot;http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/#comments&quot;&gt;9 comments&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;Add to: &lt;a href=&quot;http://del.icio.us/post?url=http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&amp;title=Finding your MySQL High-Availability solution &amp;#8211; The definitions&quot; title=&quot;Bookmark this post on del.icio.us&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/delicious.png&quot; alt=&quot;delicious&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&amp;title=Finding your MySQL High-Availability solution &amp;#8211; The definitions&quot; title=&quot;Digg this post on Digg.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/digg.png&quot; alt=&quot;digg&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://reddit.com/submit?url=http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&amp;title=Finding your MySQL High-Availability solution &amp;#8211; The definitions&quot; title=&quot;Submit this post on reddit.com&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/reddit.png&quot; alt=&quot;reddit&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.netscape.com/submit/?U=http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&amp;T=Finding your MySQL High-Availability solution &amp;#8211; The definitions&quot; title=&quot;Vote for this article on Netscape&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/netscape.gif&quot; alt=&quot;netscape&quot; /&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.mysqlperformanceblog.com/2009/10/09/finding-your-mysql-high-availability-solution-the-definitions/&amp;title=Finding your MySQL High-Availability solution &amp;#8211; The definitions&quot; title=&quot;Add to Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.mysqlperformanceblog.com/wp-content/themes/boxy-but-gold/images/google.png&quot; alt=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>MySQL Performance Blog » High Availability</name>
			<uri>http://www.mysqlperformanceblog.com</uri>
		</author>
		<source>
			<title type="html">MySQL Performance Blog » High Availability</title>
			<subtitle type="html">Everything about MySQL Performance</subtitle>
			<link rel="self" href="http://www.mysqlperformanceblog.com/category/high-availability/feed/"/>
			<id>http://www.mysqlperformanceblog.com/category/high-availability/feed/</id>
			<updated>2010-03-04T18:00:04+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Why learn to type ?</title>
		<link href="http://www.krisbuytaert.be/blog/why-learn-type"/>
		<id>http://www.krisbuytaert.be/944 at http://www.krisbuytaert.be/blog</id>
		<updated>2009-10-09T10:06:12+00:00</updated>
		<content type="html">&lt;p&gt;When your machine knows what you mean .. &lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;[s3p-root@XMS-1 tomcat6]# crm configure &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;crm(live)configure# bye&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;[s3p-root@XMS-1 tomcat6]# crm confiure &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;crm(live)configure# bye&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;[s3p-root@XMS-1 tomcat6]# crm confiture &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;crm(live)configure# bye&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;[s3p-root@XMS-1 tomcat6]# &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;I'd better&lt;br /&gt;
&lt;div class=&quot;geshifilter&quot;&gt;&lt;pre class=&quot;text geshifilter-text&quot;&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;apt-get install coffee&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;div class=&quot;technorati_tags&quot;&gt;&lt;img alt=&quot;Technorati Tags:&quot; src=&quot;http://www.krisbuytaert.be/blog/sites/all/modules/technorati/technobubble.gif&quot; /&gt;&lt;strong&gt;Technorati Tags: &lt;/strong&gt;&lt;a href=&quot;http://technorati.com/tag/configure&quot; rel=&quot;tag&quot;&gt;configure&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/crm&quot; rel=&quot;tag&quot;&gt;crm&lt;/a&gt; &lt;a href=&quot;http://technorati.com/tag/ha&quot; rel=&quot;tag&quot;&gt;ha&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;sharomaticbutton&quot;&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/why-learn-type/shareomatic-drupal/Why learn to type &quot;&gt;&lt;img src=&quot;http://www.shareomatic.com/images/s_16_black.gif&quot; alt=&quot;Share with Shareomatic!&quot; title=&quot;Post this item on various social news sites with Shareomatic!&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.shareomatic.com/http://www.krisbuytaert.be/blog/why-learn-type/shareomatic-drupal/Why learn to type &quot;&gt;Share with Shareomatic!&lt;/a&gt; &lt;/div&gt;
&lt;!--
&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:trackback=&quot;http://madskills.com/public/xml/rss/module/trackback/&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.krisbuytaert.be/blog/why-learn-type&quot; dc:identifier=&quot;http://www.krisbuytaert.be/blog/why-learn-type&quot; dc:title=&quot;Why learn to type ?&quot; trackback:ping=&quot;http://www.krisbuytaert.be/blog/trackback/944&quot; /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class=&quot;trackback-url&quot;&gt;&lt;div class=&quot;box&quot;&gt;

  &lt;h3&gt;Trackback URL for this post:&lt;/h3&gt;

  &lt;div class=&quot;content&quot;&gt;http://www.krisbuytaert.be/blog/trackback/944&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Everything is a Freaking DNS problem - ha</name>
			<uri>http://www.krisbuytaert.be/blog/taxonomy/term/449/0</uri>
		</author>
		<source>
			<title type="html">Everything is a Freaking DNS problem - ha</title>
			<link rel="self" href="http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed"/>
			<id>http://www.krisbuytaert.be/blog/taxonomy/term/449/0/feed</id>
			<updated>2010-03-10T14:00:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Advisory: Don't use Pacemaker on Corosync (yet)</title>
		<link href="http://theclusterguy.clusterlabs.org/post/205886990"/>
		<id>http://theclusterguy.clusterlabs.org/post/205886990</id>
		<updated>2009-10-06T14:20:00+00:00</updated>
		<content type="html">&lt;p&gt;I spent some time looking into the state of the Pacemaker/Corosync integration today and I can only recommend Pacemaker users stay on the previous version of OpenAIS (aka. Whitetank).&lt;/p&gt;

&lt;p&gt;In a nutshell, shutdown is utterly broken.&lt;/p&gt;

&lt;p&gt;r2140 of Corosync removed the shutdown worker thread which allowed plugins such as Pacemaker to continue sending and receiving cluster messages.&lt;br /&gt;
Without it, Corosync waits for Pacemaker to finish and Pacemaker waits for the messages it tried to send to arrive and be acted upon.
Needless to say no-one makes any progress.&lt;/p&gt;

&lt;p&gt;Stay tuned, now that integration testing has started it shouldn’t take too long to get everything sorted out.&lt;/p&gt;

&lt;h3&gt;Update&lt;/h3&gt;

&lt;p&gt;Since writing this, the necessary testing has been done and Pacemaker is now supported on Corosync provided you have corosync &gt;= 1.1.2 and pacemaker &gt;= 1.0.6&lt;/p&gt;</content>
		<author>
			<name>The Cluster Guy</name>
			<uri>http://theclusterguy.clusterlabs.org/</uri>
		</author>
		<source>
			<title type="html">The Cluster Guy</title>
			<subtitle type="html">ǝɹǝɥ ʇxǝʇ lnɟʇɥƃısuı
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));

try {
var pageTracker = _gat._getTracker(&quot;UA-8156370-3&quot;);
pageTracker._trackPageview();
} catch(err) {}</subtitle>
			<link rel="self" href="http://theclusterguy.clusterlabs.org/rss"/>
			<id>http://theclusterguy.clusterlabs.org/rss</id>
			<updated>2010-03-10T13:50:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GitHub: Speed matters</title>
		<link href="http://www.anchor.com.au/blog/2009/09/github-speed-matters/"/>
		<id>http://www.anchor.com.au/blog/?p=1161</id>
		<updated>2009-09-29T06:39:27+00:00</updated>
		<content type="html">&lt;p&gt;&lt;em&gt;Impressions from the first article (in its first day) and the first 24 hours of the GitHub migration, have caused us at Anchor to believe that; &lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;GitHub is just as popular as we thought, &lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The migration was worth it, as things are running much faster (just check your twitter feeds, or better yet, check your GitHub source tree for no reason &lt;img src=&quot;http://www.anchor.com.au/blog/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot; /&gt;  ); and,&lt;strong&gt; &lt;/strong&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;People are interested in what has gone under the hood of the new GitHub (insert your favorite fast car here; otherwise lets say a roadster). &lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Taking these three things into account, this installment will discuss why things are so much faster post migration compared to prior.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I said &amp;#8216;faster&amp;#8217; and not &amp;#8216;fast&amp;#8217;, because GitHub is now as fast as any website should be. So in comparison, yes, GitHub is fast now, however it is akin to riding your bicycle with half inflated tires: when fully inflated, suddenly your old bike is blazing fast. Now this is not to be critical of the former architecture which held its merits when GitHub was founded. GitHub had simply moved to a stage where a infrastructure architecture refresh was logical.&lt;/p&gt;
&lt;p&gt;The main thing, in the large, that made this new architecture fast was that we were given a blank slate and large amounts of freedom to make an architecture that would do the job well.  This is an incredibly rare thing, and it no doubt took a lot of courage on Github&amp;#8217;s part.  For that, we have to say &amp;#8220;thankyou&amp;#8221; to the Github team for letting us have that freedom.  I like to think that we&amp;#8217;ve repaid that trust with a pretty awesome architecture that will serve them well for some time to come.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SCALE: &lt;/strong&gt;When looking at the new architecture as a whole, the increased scale is immediately evident. GitHub now consumes far more hardware than ever before:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Old Infrastructure:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;10 VMs&lt;/li&gt;
&lt;li&gt;39 VCPUs&lt;/li&gt;
&lt;li&gt;54GB &lt;span&gt;RAM&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;New Infrastructure:&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16 physical machines&lt;/li&gt;
&lt;li&gt;128 physical cores&lt;/li&gt;
&lt;li&gt;288GB &lt;span&gt;RAM&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Or for those who enjoy visual cues:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1179&quot; src=&quot;http://www.anchor.com.au/blog/wp-content/uploads/2009/09/Memory_Compare1.png&quot; alt=&quot;Resource comparison old to new infrastructure&quot; width=&quot;375&quot; height=&quot;436&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It is a credit to the old infrastructure and GitHub&amp;#8217;s code that it ran so well on so little (in comparison). The first credit for increased performance is &lt;strong&gt;increased scale&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;An important note regarding the hardware is that there is nothing special (or industry secretive) regarding it. The solution in its entirety is run from commodity hardware. No special black boxes doing scary things with packets and routes. No appliance servers. The solution architecture developed by Anchor can be used with any hardware vendor (insert: Dell, HP, IBM, SuperMicro, etc). Vendor neutrality provides GitHub with no encumbrance with either scaling up or out, a key issue when considering growth and future flexibility.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: The architectures flexibility allows for the user repository storage to be expanded with a mix of vendor hardware (should GitHub ever change hardware vendor). Furthermore, any component can be exchanged for another vendor&amp;#8217;s hardware with no change to GitHubs architecture or software.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In a nutshell, the increased scale provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More GitHub front-end servers to service your requests;&lt;/li&gt;
&lt;li&gt;More storage; and&lt;/li&gt;
&lt;li&gt;More I/O bandwidth when working with your repository data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;HARDWARE PERFORMANCE:&lt;/strong&gt; The speed specifications of the underlying components is important, in addition to how that hardware is utilised.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Storage I/O: &lt;/em&gt;A common factor in poor performance with any solution is an &lt;a href=&quot;http://www.anchor.com.au/hosting/development/HuntingThePerformanceWumpus#head-8f4521847d24e2119a421aa8d89a89d7e8372fdc&quot;&gt;I/O bottleneck at the storage level&lt;/a&gt;.  This pain was GitHub&amp;#8217;s. To alleviate this, not only is the storage now distributed across several servers (distributing the I/O), but it is now running on direct-attached 15,000 RPM SAS disks on battery-backed hardware RAID. Therefore, the second credit for increased performance is &lt;strong&gt;faster storage&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Direct access to hardware: &lt;/em&gt;Virtualisation is great. What isn&amp;#8217;t great is when virtualisation is used as a universal solution. At Anchor we believe there is a place for virtualisation, and systems with massive I/O or CPU requirements is not that place. By moving resource heavy systems onto dedicated hardware, any contention for resources between individual VMs is removed. The third credit goes to &lt;strong&gt;less overhead&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ARCHITECTURE:&lt;/strong&gt; Throwing hardware at a scaling problem is an easy solution, but without the right division of resources and the right software to properly use it, it&amp;#8217;s not going to run real fast.&lt;/p&gt;
&lt;p&gt;For GitHub, this was their innovative Git command proxying systems, which do an excellent job of taking requests from the frontends (where users connect with their web browser, git client, or SSH client) and shipping them to the fileservers.  The database structure, filesystem layout, and code efficiency also contribute to this.&lt;/p&gt;
&lt;p&gt;Given that the software isn&amp;#8217;t our speciality, there&amp;#8217;s not a lot for us to say about this, but Github are planning a series of posts on &lt;a href=&quot;http://github.com/blog&quot;&gt;their blog&lt;/a&gt;, and I&amp;#8217;m quite sure it&amp;#8217;ll be enlightening.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TO REVIEW&lt;/strong&gt;: The factors involved in GitHub&amp;#8217;s faster response on the new infrastructure include (but are not limited to):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Increased Infrastructure (Scale)&lt;/li&gt;
&lt;li&gt;Faster Hardware ( Storage)&lt;/li&gt;
&lt;li&gt;No resource contention (More resources per server)&lt;/li&gt;
&lt;li&gt;Solid, scalable architecture (Awesomeness)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Keep an eye on this space, as we delve into technology specific posts regards what kinds of 11 herbs and spices Anchor used to realise the new GitHub architecture.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;</content>
		<author>
			<name>Anchor Web Hosting Blog » drbd</name>
			<uri>http://www.anchor.com.au/blog</uri>
		</author>
		<source>
			<title type="html">Anchor Web Hosting Blog » drbd</title>
			<subtitle type="html">A view into the Anchor Engineroom</subtitle>
			<link rel="self" href="http://www.anchor.com.au/blog/tag/drbd/feed/"/>
			<id>http://www.anchor.com.au/blog/tag/drbd/feed/</id>
			<updated>2010-03-10T08:30:36+00:00</updated>
		</source>
	</entry>

</feed>
