<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Esoteric Curio - OpenSolaris</title>
    <link>http://www.lethargy.org/~jesus/</link>
    <description>Theo's Contributions to Technological Surreality</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3.1 - http://www.s9y.org/</generator>
    <pubDate>Sat, 03 Jan 2009 17:22:06 GMT</pubDate>

    <image>
        <url>http://www.lethargy.org/~jesus/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Esoteric Curio - OpenSolaris - Theo's Contributions to Technological Surreality</title>
        <link>http://www.lethargy.org/~jesus/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>A talk with Ben Rockwood</title>
    <link>http://www.lethargy.org/~jesus/archives/139-A-talk-with-Ben-Rockwood.html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/139-A-talk-with-Ben-Rockwood.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;It has been a long time since I&#039;ve done an interview with anyone.  Recently, I had the pleasure of being interviewed by the esteemed &lt;a href=&quot;http://www.cuddletech.com/blog/&quot;&gt;Ben Rockwood&lt;/a&gt; for his &lt;a href=&quot;http://www.cuddletech.com/sapro/&quot;&gt;SA Pro&lt;/a&gt; program.  Ben has been in the industry a long time and his standards are what standards should be.  It is nice to speak with someone in the systems administration field that works in an Internet-centric environment and still respects his work as a trade and presents himself as a craftsman.&lt;/p&gt;
&lt;p&gt;While it is a long listen, clocking in at over an hour, I&#039;m quite pleased with the interview.  It covers a variety of topics like how &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI&lt;/a&gt; started, a bit about the culture that is instrumental to staff retention, service quality and customer satisfaction.  Feel free to spend an hour of your time &lt;a href=&quot;http://www.cuddletech.com/sapro/SApro-Episode002.mp3&quot;&gt;listening to a bit about operations, technology and culture at OmniTI&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 03 Jan 2009 11:07:31 -0500</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/139-guid.html</guid>
    
</item>
<item>
    <title>A month later... like clockwork.</title>
    <link>http://www.lethargy.org/~jesus/archives/138-A-month-later...-like-clockwork..html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/138-A-month-later...-like-clockwork..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=138</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=138</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;A great success occurred for the &lt;a href=&quot;http://httpd.apache.org/&quot;&gt;Apache httpd project&lt;/a&gt; today.  A month ago at ApacheCon I presented my &quot;Apache Projects on DTrace&quot; talk where I presented some &lt;a href=&quot;http://lethargy.org/~jesus/archives/137-DTrace-and-Apache.html&quot;&gt;magic mojo around a DTrace enabled Apache httpd&lt;/a&gt;.  A few days ago &lt;a href=&quot;http://journal.paul.querna.org/&quot;&gt;Paul Querna&lt;/a&gt; invested the time to putback some of the patch set required to make this go.  The &lt;a href=&quot;http://mail-archives.apache.org/mod_mbox/httpd-dev/200812.mbox/raw/%3C4938A57D.6050109@force-elite.com%3E/&quot;&gt;code is all in&lt;/a&gt;, just a bit of build magic remains to utilize the parts.  Hopefully we can work to put that part back soon.  Paul, I know your time is scarce and valuable, many thanks for the effort!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 08 Dec 2008 22:40:52 -0500</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/138-guid.html</guid>
    
</item>
<item>
    <title>DTrace and Apache</title>
    <link>http://www.lethargy.org/~jesus/archives/137-DTrace-and-Apache.html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/137-DTrace-and-Apache.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=137</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=137</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;DTrace kicks ass.  Everyone knows I love ZFS, but in my opinion DTrace is the most significant and disruptive systems technology in at least 10 years.&lt;/p&gt;
&lt;p&gt;Today I gave my talk at ApacheCon; it was well received.  I hope that I inspired some people to go use DTrace and look in their systems&#039; underpants.&lt;/p&gt;
&lt;p&gt;Here are &lt;a href=&quot;http://lethargy.org/~jesus/misc/d1.pdf&quot;&gt;my slides&lt;/a&gt; and &lt;a href=&quot;http://labs.omniti.com/trac/project-dtrace/browser/trunk/apache22&quot;&gt;the scripts&lt;/a&gt; I used for my live demo.&lt;/p&gt;
&lt;p&gt;I&#039;ll update this entry with the video as soon as I have the link.&lt;/p&gt;
&lt;p&gt;I mentioned a Linux port underway.  I got the name wrong when I talked about it (sorry Paul!).  The person working on the port is Paul Fox, the author of the CRiSP editor.  For more information, check out &lt;a href=&quot;http://www.crisp.demon.co.uk/blog/index.html&quot;&gt;his blog&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 05 Nov 2008 19:05:20 -0500</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/137-guid.html</guid>
    
</item>
<item>
    <title>Eloquence in technical prose.</title>
    <link>http://www.lethargy.org/~jesus/archives/136-Eloquence-in-technical-prose..html</link>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/136-Eloquence-in-technical-prose..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=136</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=136</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I met Bryan Cantrill a few years back at OSCON where he gave a session on DTrace. As any reader of my blog would know, I&#039;m a big DTrace fan. Bryan&#039;s presentation style was passionate and animated and I was quite convinced there was an illegal substance involved. I&#039;ve come to learn that style is Bryan&#039;s style.&lt;/p&gt;

&lt;p&gt;Since then, I&#039;ve had a few opportunities to dialogue with Bryan and on every occasion he reinforced my opinion that he is one of the more insightful minds in today&#039;s computer engineering field. His critique and vision has an element of clarity and completeness to it that is far too rare. Combine that with truly elegant written prose and I am unable to resist consuming what he writes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://blogs.sun.com/bmc/entry/concurrency_s_shysters&quot;&gt;Bryan&#039;s latest communication&lt;/a&gt; on transactional memory is an exquisite example of poise in both thought and communication.  At one point he states that &quot;experience has taught me to be wary of crooked problem statements.&quot; I must admit that in my efforts to play devil&#039;s advocate I often construct straw-man arguments and unjustified counterpoints.  I do this in an effort to &lt;span style=&quot;text-decoration: line-through;&quot;&gt;force&lt;/span&gt; lead my counterpart to conciseness and deeper well-founded justification in their argument.  Backing out of a solid justification is, at the very least, revealing.&lt;/p&gt;

&lt;p&gt;I took two things away from his prose.  First, his output is very worth digesting.  Second, when I present solutions to problems I should vehemently avoid perfunctory problem definition and invest equal efforts in the completeness of both the problem statement and the solution proposed.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Wed, 05 Nov 2008 01:00:15 -0500</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/136-guid.html</guid>
    
</item>
<item>
    <title>Zetaback. Respect.</title>
    <link>http://www.lethargy.org/~jesus/archives/131-Zetaback.-Respect..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/131-Zetaback.-Respect..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=131</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=131</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;With the release of &lt;a href=&quot;http://opensolaris.org/os/community/zfs/&quot;&gt;ZFS&lt;/a&gt; on Solaris 10, I sat down and marveled at the opportunities for off-site backups.  I have already &lt;a href=&quot;http://lethargy.org/~jesus/archives/114-ZFS.-Respect..html&quot;&gt;written a bit about ZFS detailing why I think it kicks so much ass&lt;/a&gt;.  With zfs send and zfs receive, one can manage block-level incremental backups and restores.  What&#039;s missing?  An elegant hack leveraging that to provide a simple and reliable backup infrastructure for a network of ZFS capable machines (including Mac OS X and FreeBSD now, BTW).&lt;/p&gt;

&lt;p&gt;So, I sat down and wrote &lt;a href=&quot;https://labs.omniti.com/trac/zetaback&quot;&gt;Zetaback&lt;/a&gt; -- which is currently 1032 lines of perl code (including complete documentations) plus a thin agent on remote machines that is 290 lines of perl code (including complete documentation).  I&#039;d like to note that the only reason there is documentation, let alone complete documentation, is because of &lt;a href=&quot;http://omniti.com/is/eric-sproul&quot;&gt;Eric Sproul&lt;/a&gt;.  This really demonstrates to me that &quot;Keep It Simple Stupid&quot; still works for important tasks.&lt;/p&gt;

&lt;p&gt;Zetaback is a rather full features backup and restore system.  It can manage multiple hosts, multiple ZFS per host, both frequency and retention policies on full and incremental backups.  It can report policy violators (things that haven&#039;t been backed up within the policy).  It can manage the archiving of backups.  It provides both non-interactive and interactive restores.  It has an excellent command line syntax.  And most importantly, it has saved my ass more times than I can count.&lt;/p&gt;

&lt;p&gt;I&#039;m not usually big on awards... I find the single unexpected email from someone saying: &quot;damn that was useful, thanks!&quot; to be more gratifying most of the time.  However, Zetaback was one of the first projects &lt;a href=&quot;http://omniti.com/&quot;&gt;we&lt;/a&gt; put up on &lt;a href=&quot;http://labs.omniti.com/&quot;&gt;labs&lt;/a&gt;, so being a 3rd place winner in the &lt;a href=&quot;http://www.opensolaris.org/os/project/awards/awards_land/Entries/&quot;&gt;OpenSolaris Community Innovation Awards&lt;/a&gt; is pretty exciting.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 19 Sep 2008 10:02:15 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/131-guid.html</guid>
    
</item>
<item>
    <title>Varnish, get your patch on.</title>
    <link>http://www.lethargy.org/~jesus/archives/125-Varnish,-get-your-patch-on..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/125-Varnish,-get-your-patch-on..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=125</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;http://varnish.projects.linpro.no/&quot;&gt;Varnish&lt;/a&gt; is a &quot;bad ass&quot; new HTTP caching accelerator.  It&#039;s developed by &lt;a href=&quot;http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/misc.html#BIKESHED-PAINTING&quot;&gt;some crufty old BSD hacker&lt;/a&gt; and has a lot of Linux users.  By and large, it has ignored Solaris.  This sort of neglect isn&#039;t malicious, it is just neglect... you know: &quot;out of sight, out of mind.&quot;&lt;/p&gt;

&lt;p&gt;Well, check out &lt;a href=&quot;http://varnish.projects.linpro.no/svn/trunk/varnish-cache/&quot;&gt;Varnish trunk&lt;/a&gt; and give &lt;a href=&quot;http://lethargy.org/%7Ejesus/misc/varnish-solaris-trunk-3071.diff&quot;&gt;this patch&lt;/a&gt; a spin.  Let me know what you think.&lt;/p&gt;

&lt;p&gt;Perhaps one day, the Solaris networking team (or someone else) will satisfy this pretty abysmal shortcoming: &lt;a href=&quot;http://bugs.opensolaris.org/view_bug.do?bug_id=4641715&quot;&gt;BugID 4641715&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 10 Aug 2008 21:50:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/125-guid.html</guid>
    
</item>
<item>
    <title>OSCON2008 Presentation</title>
    <link>http://www.lethargy.org/~jesus/archives/123-OSCON2008-Presentation.html</link>
            <category>BWPUG</category>
            <category>Damaged Bits</category>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/123-OSCON2008-Presentation.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=123</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=123</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;Hello from OSCON.  I gave my full-stack introspection crash course talk today.  It has been quite a while since I&#039;ve presented anything in a 40 minute format, but I think the talk went quite well.  I got a lot of positive feedback.&lt;/p&gt;

&lt;p&gt;I decided to take a risky approach inspired by &lt;a href=&quot;http://wikis.sun.com/display/DTrace/dtrace.conf&quot;&gt;dtrace.conf(08)&lt;/a&gt; by demonstrating dtrace on a live, mission-critical system we run at &lt;a href=&quot;http://omniti.com/&quot;&gt;OmniTI&lt;/a&gt;.  The risks of this are: network connections flake out, dtrace doesn&#039;t work correctly or I do something stupid and cause some service unavailability.  Well, as I use dtrace just about every day, I wasn&#039;t worried about the breaking things.  And while my network connection winked out for about one minute and dtrace has some &lt;a href=&quot;http://forums.sun.com/thread.jspa?messageID=10099871&quot;&gt;annoying &lt;b&gt;sub-second&lt;/b&gt; aborts&lt;/a&gt;, I think the demonstration was quite effective.&lt;/p&gt;

&lt;p&gt;Many people gave positive commentary at the end and afterward.  People asked for the slide to be put online... and while they have no real content of value (as the demo was everything), I put them here anyway:&lt;/p&gt;

&lt;div style=&quot;width:425px;text-align:left&quot; id=&quot;__ss_526241&quot;&gt;&lt;a style=&quot;font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;&quot; href=&quot;http://www.slideshare.net/guestaeae3b/oscon2008-fullstack-introspection-crash-course?src=embed&quot; title=&quot;OSCON2008 Full-stack Introspection Crash Course&quot;&gt;OSCON2008 Full-stack Introspection Crash Course&lt;/a&gt;&lt;div class=&quot;youtube-video&quot;&gt;&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=oscon2008-1216885292078669-8&quot;&gt; &lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt; &lt;/param&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt; &lt;/param&gt;&lt;embed src=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=oscon2008-1216885292078669-8&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt; &lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&quot;&gt;view &lt;a href=&quot;http://www.slideshare.net/guestaeae3b/oscon2008-fullstack-introspection-crash-course?src=embed&quot; title=&quot;View OSCON2008 Full-stack Introspection Crash Course on SlideShare&quot;&gt;presentation&lt;/a&gt; (tags: &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://slideshare.net/tag/oscon&quot;&gt;oscon&lt;/a&gt; &lt;a style=&quot;text-decoration:underline;&quot; href=&quot;http://slideshare.net/tag/dtrace&quot;&gt;dtrace&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In addtion to the slide stack, I&#039;ve included the simple scripts that I used during the demonstration.  I ran
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/qps.d&quot;&gt;qps.d&lt;/a&gt;,
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/query_speed.d&quot;&gt;query_speed.d&lt;/a&gt;, and
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/query_speed2.d&quot;&gt;query_speed2.d&lt;/a&gt; on the database server and
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/r3.sh&quot;&gt;r3.sh&lt;/a&gt;,
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/perl.d&quot;&gt;perl.d&lt;/a&gt;,
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/pcpu.d&quot;&gt;pcpu.d&lt;/a&gt;,
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/papcpu.d&quot;&gt;papcpu.d&lt;/a&gt;, and
&lt;a href=&quot;http://www.lethargy.org/~jesus/misc/oscon2008/papcpu2.d&quot;&gt;papcpu2.d&lt;/a&gt; on the web server.  These require The Devel::DTrace perl module, &lt;a href=&quot;http://labs.omniti.com/trac/project-dtrace/browser/trunk/postgresql&quot;&gt;PostgreSQL patches&lt;/a&gt;, and &lt;a href=&quot;http://labs.omniti.com/trac/project-dtrace/browser/trunk/apache22&quot;&gt;Apache 2.2.8 patches&lt;/a&gt;.  Some of them are approximations of correctness, so weigh the output appropriately (the perl ones).  Enjoy!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 24 Jul 2008 03:58:09 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/123-guid.html</guid>
    
</item>
<item>
    <title>Reconnoiter and another platform</title>
    <link>http://www.lethargy.org/~jesus/archives/121-Reconnoiter-and-another-platform.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/121-Reconnoiter-and-another-platform.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=121</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=121</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;a href=&quot;http://labs.omniti.com/trac/reconnoiter&quot;&gt;Reconnoiter&lt;/a&gt; is coming along.  Unlike most open source project, I tend not to talk about mine until their are really useful to people.  Over the last year, I&#039;ve adopted the unhealthy attitude that useful means &quot;shiny front-end.&quot;  So, I&#039;m blogging to break that attitude and talk a bit about project that doesn&#039;t have a shiny front-end... yet.&lt;br /&gt;&lt;br /&gt;Reconnoiter is built out of years of frustration using tools like RRDTOOL, Munin, Cacti, ZenOSS, Nagios, etc. etc.  I have a lot of problems with these tools.  First, they are not efficient.  I need a powerful machine to monitor a mere 10k services.  And it actually gets to be an engineering challenge to monitor 100k services with these tools.  Also, the graphs are about 10 years old with respect to design and usability.  I want something new, something fresh, and something that doesn&#039;t need a damn web UI to configure.  Several people have asked, why are you reinventing the wheel?  Why don&#039;t you just improve an existing product?  My answer is that I want a well-thought-out product foundation so that I can trust all the bits.  I want reponsibilities decoupled at the right spots.  I want data in a form that the world can query and run reports the likes of which I have not concieved.  I don&#039;t want the load on my monitoring machines to be 8.  I want my monitoring system to check services and metrics when it planned to, not several minutes (or event 2 seconds) after it told me it would.  Simply put, I expect it to work well, all the time.  And, of course, I want it to work how I would expect it to work.&lt;br /&gt;&lt;br /&gt;Reconnoiter was born out of the need to monitor the internals of many disconnected data centers with between 10 and 1000 machines in each facility.  Monitoring can mean a lot of things, here I consider it to be the collection of metrics and awareness of their availability.  In and of itself, monitoring is pretty useless, but it is the foundation for two critical pursuits in Internet infrastructure and business management: fault detection and trending.&lt;br /&gt;&lt;br /&gt;Fault detection is as simple as understanding when something has faulted.  However, knowing something is broken is easier than knowing something is about to break.  Is it better to know that your machine just crashed because the chip slagged to the motherboard, or that the temperatures in rack 043 are rising unexpectedly?  Answer: both, but I hope I only learn the latter and not the former.  Truly, there are too many things to monitor... hundred or thousands of metrics on each piece of equipment.  I can&#039;t reasonable go in and configure good/bad thresholds on each one.  I want anomaly detection.  I want a system that I can say: &quot;this looks right, tell me when it stops looking right.&quot;  That, to me, is a much need companion to tradition fault detection.&lt;br /&gt;&lt;br /&gt;To me, trending is much more than drawing graphs... it is about intelligent data correlation, regression analysis/curve fitting and looking into the past to see how much you fucked up getting where you are now -- in the vain hope that you learn from your mistakes and plan better next time.&lt;br /&gt;&lt;br /&gt;Reconnoiter is an attempt to build these things.  Building a system requires starting with pain (need), solid structure and plumbing (good engineering).  So, reconnoiter is underway.  And this post is in mid-step:&lt;br /&gt;&lt;br /&gt;It started on OpenBSD, and added support for FreeBSD, Mac OS X, Linux.&lt;br /&gt;&lt;br /&gt;As of changeset [292], we have Solaris/OpenSolaris support.&lt;br /&gt;&lt;br /&gt;We have a pretty nice front-end for trending under construction, but it isn&#039;t there yet.  We&#039;ll have numeric data combined with textual &quot;event&quot; data on the same graphs.  All that convenient stuff.  Here&#039;s the rather plain-Jane graph you get now (because some people won&#039;t even read a post if it doesn&#039;t have a pretty graph):&lt;br /&gt;&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;&lt;img style=&quot;max-width: 800px;&quot; src=&quot;http://www.lethargy.org/%7Ejesus/uploads/noit_bw_graph.png&quot; /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Honestly, I don&#039;t know what the value of this post is, but people around here keep telling me that people should be aware of an open-source tool like this, even if it isn&#039;t finished (read: usable) yet.  I say it isn&#039;t usable yet, but on our development instances here, we monitor 2892 production metrics across two data centers and the load never peaks past 0.10.  I&#039;m pretty excited about where this is going.  Honestly, my favorite part right now is that I can configure and control the noitd checking nodes via a telnet console and it acts as if it is a piece of network equipment rather than an &quot;application&quot; -- as it should be IMHO.&lt;br /&gt; 
    </content:encoded>

    <pubDate>Fri, 27 Jun 2008 17:27:27 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/121-guid.html</guid>
    
</item>
<item>
    <title>ZFS. Respect.</title>
    <link>http://www.lethargy.org/~jesus/archives/114-ZFS.-Respect..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/114-ZFS.-Respect..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=114</wfw:comment>

    <slash:comments>30</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;Today someone asked me: &quot;You speak about ZFS a lot.  I know other people that talk about the latest filesystems with praise, but generally speaking they just don&#039;t have much to offer.  Is ZFS that different?&quot;&lt;/p&gt;

&lt;p&gt;My answer is &quot;yes.&quot;  But, of course, I can&#039;t leave it at that.  I&#039;m not going to make a performance argument -- ZFS is fast in some cases and slow in others -- just like everything else.  I think one of the things we&#039;ve seen in the last 10 years is that everyone felt the need to come out with their own filesystem -- at least on Linux.  So, you have to as yourself why.  My personal opinion is that filesystems on Linux suck.&lt;/p&gt;

&lt;p&gt;Most filesystems on the market support snapshots.  No open source filesystems on Linux (that I&#039;m aware of) support snapshots.  Of course, you can use LVM to do block-level snapshots.  First off, that&#039;s a pain in the ass w.r.t. storage provisioning.  Other systems make the process of allocating and managing snapshots &quot;not my problem.&quot; (simple and easy).  Let&#039;s be frank, ext2 and ext3 are nothing to write home about. reiserfs, xfs, jfs, the list goes on and on.&lt;/p&gt;

&lt;p&gt;There are a few closed-source filesystems that are really nice.  Specifically Veritas Filesystem (VxFS) and its excellent layered volume manager VxVM which appears to have heavily inspired geom on FreeBSD.  DEC thought it was so cool that they pulled it white-label into Tru64.  Respect.&lt;/p&gt;

&lt;p&gt;So, what makes ZFS so different?  ZFS is a disruptive technology as it abolishes the sacred line in the sand between block devices, volume management and filesystems.  This means it just make storage management easy.  When I say easy... I mean &lt;b&gt;easy&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;So you want more space?  Add more disks.  Want to move from from failing disks to replacements?  Tell zfs to add the new ones and tell it to remove the old ones.  Read that report by Google about disk errors?  ZFS checksums all data.  My personal experience says checksums are &lt;em&gt;good&lt;/em&gt;.   Snapshots?  Sure snapshot to your heart&#039;s content.  We snapshot some systems hourly and never &lt;em&gt;ever delete&lt;/em&gt; the old ones.  Snapshots are really cool, but what if you could rollback to a snapshot?  zfs rollback.  What if you wanted to make a read/write copy of the fileystem or an old snapshot? zfs clone.  You want to store a lot of raw data? zfs has built-in compression.  Oh, and it is open-source.&lt;/p&gt;

&lt;p&gt;Simply put.  ZFS.  Respect.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 22 Apr 2008 23:16:32 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/114-guid.html</guid>
    
</item>
<item>
    <title>PostgreSQL: Looking under the hood with Solaris</title>
    <link>http://www.lethargy.org/~jesus/archives/111-PostgreSQL-Looking-under-the-hood-with-Solaris.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/111-PostgreSQL-Looking-under-the-hood-with-Solaris.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=111</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=111</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://lethargy.org/~jesus/misc/PostgreSQLonSolaris.pdf&quot; border=&quot;0&quot;&gt;&lt;img src=&quot;http://lethargy.org/~jesus/misc/PostgreSQLonSolaris.title.png&quot; height=&quot;240&quot; width=&quot;320&quot; alt=&quot;PostgreSQL on Solaris&quot; style=&quot;padding: 2px; border: 1px solid #ccc;&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For those interested, here is my slide stack from PostgreSQL Conference East &#039;08.  I think the title of the talk was &quot;&lt;a href=&quot;http://lethargy.org/~jesus/misc/PostgreSQLonSolaris.pdf&quot;&gt;PostgreSQL: Looking under the hood with Solaris&lt;/a&gt;.&quot;&lt;/p&gt;

&lt;p&gt;The presentation was 90 minutes long and had lots of shell-based show-and-tell.  Obviously that stuff isn&#039;t available in the slides.  I think it went over quite well.  The audience was small, but hopefully people took away the a lasting impression of what DTrace has to offer and at least one person had the response: &quot;By the power of Greyskull.&quot;  Regardless, enjoy the slides!&lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 30 Mar 2008 09:21:05 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/111-guid.html</guid>
    
</item>
<item>
    <title>Talking w/ Sun</title>
    <link>http://www.lethargy.org/~jesus/archives/108-Talking-w-Sun.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/108-Talking-w-Sun.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=108</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=108</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;New acquaintances walk away from their first conversation with me and either think that I am in love with a particular vendor or technology or they think I truly hate all technology.  Both are true in some fashion.&lt;/p&gt;

&lt;p&gt;The fact that I have an OpenSolaris feed on my blog might indicate that I&#039;m a fan of &lt;a href=&quot;http://sun.com/&quot;&gt;Sun&lt;/a&gt;.  The truth is I am and I am not.  As is true of any large organization, it&#039;s really tough to be enamored with all of it.  I &lt;em&gt;am&lt;/em&gt; a huge fan of Solaris 10 and Sun&#039;s initiative to support strict ABI compatibility for stable interfaces, and I&#039;m downright giddy about their ZFS and DTrace technologies.  I think Zones/Containers are cool and I think their engineering team has some brilliant shining stars and is on the whole smarter than average.  Yet, the OpenSolaris community is challenged in a lot of ways due to the corporate involvement by Sun that leaves me with a funny taste in my mouth.  I&#039;m luke-warm about Java and feel like their hardware initiative is going down-hill with bad quality problems on some of their new offerings compared to their spectacularly rock-solid history (sans the E4500). &lt;/p&gt;

&lt;p&gt;Recently, I did an interview with Mark Thacker of Sun about &lt;a href=&quot;http://omniti.com/&quot;&gt;our&lt;/a&gt; use of Solaris for their &lt;a href=&quot;http://www.sun.com/software/solaris/podcasts.jsp&quot;&gt;Solaris Podcast series&lt;/a&gt;.  We&#039;ve had some bad experiences here and there, but all-in-all it has been a win.  DTrace has been a god-send and ZFS has saved my bacon several times.  Anyone who&#039;s talked to me knows that I&#039;m brutally honest and appreciate those that return the favor.   I&#039;ll look at solution and I tell you what you did wrong.  I don&#039;t tell you what you did correctly... after all it was &lt;strong&gt;all&lt;/strong&gt; supposed to be done correctly.  So, upon listening to this &lt;a href=&quot;http://wcdata.sun.com/webcast/download/podcast/SolarisRevealed/OmniTI-3.6.08.mp3&quot;&gt;Sun podcast&lt;/a&gt;, several of my colleagues said: &quot;that had to have been edited.&quot;  As marketing people usually do, they attempt to limit the negative exposure as much as possible -- most notably, they removed a section about lack of tight integration between ZFS and Zones which has made for some very painful upgrade paths.  We have marketing here at OmniTI too, I know the drill.  All-in-all, I think the interview went rather well and fairly represents the benefits we&#039;ve realized by deploying Solaris 10.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 16 Mar 2008 23:21:55 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/108-guid.html</guid>
    
</item>
<item>
    <title>dtrace.conf(08)</title>
    <link>http://www.lethargy.org/~jesus/archives/107-dtrace.conf08.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/107-dtrace.conf08.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=107</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=107</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;As many people already know, I&#039;m a big fan of DTrace.  Well, today I attended &lt;a href=&quot;http://wikis.sun.com/display/DTrace/dtrace.conf&quot;&gt;dtrace.conf(08)&lt;/a&gt; -- the first (un)conference revolving around planet DTrace.  It was awesome.  Many people who know me well have heard me say, &quot;my good days are when I&#039;m the dumbest person in the room.&quot;  That&#039;s not to be confused with &quot;I like having bad days.&quot;  Instead, I like to be at my best and still struggle to keep up.  Here at dtrace.conf(08), the people here are damn smart -- a bunch of higher level thinking.&lt;/p&gt;

&lt;p&gt;I gave a demo of the &lt;a href=&quot;https://labs.omniti.com/trac/pgsoltools&quot;&gt;PostgreSQL stuff we do using dtrace&lt;/a&gt;.  I put back my &lt;a href=&quot;http://wikis.sun.com/display/DTrace/sdt+Provider&quot;&gt;SDT&lt;/a&gt; postgres probes into our internal packaging systems -- I hope that I can get those back into PostgreSQL soon...  I talked very briefly about the ZFS magic we&#039;ve experienced, but as the conference was focused intensely on DTrace, I saved most of that for &lt;a href=&quot;http://www.postgresqlconference.org/&quot;&gt;PostgreSQL Conference East 08&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As usual, I particularly enjoyed &lt;a href=&quot;http://blogs.sun.com/bmc/&quot;&gt;Bryan Cantril&lt;/a&gt;&#039;s infectious excitement and pungent humor.  I&#039;d like to thank Sun and the DTrace Team for running the conference (as well as the sponsors).  I really appreciate the effort.  DTrace has empowered OmniTI to make our customers more successful.  Hands-down awesome technology.&lt;/p&gt;

&lt;p&gt;I&#039;ve said it before and I&#039;ll say it again.  ZFS and DTrace are the most impressive operating system advances I&#039;ve seen this decade.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 14 Mar 2008 21:28:49 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/107-guid.html</guid>
    
</item>
<item>
    <title>Spine-tingling dtrace euphoria: &quot;What the SCSI?&quot;</title>
    <link>http://www.lethargy.org/~jesus/archives/104-Spine-tingling-dtrace-euphoria-What-the-SCSI.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/104-Spine-tingling-dtrace-euphoria-What-the-SCSI.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=104</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=104</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;I am oft in the position where SCSI is not working right for me.  Whereas I &lt;i&gt;always&lt;/i&gt; seem to be in the position where SATA over promises and under delivers.  When SCSI misbehaves, it usually really matters.  Where&#039;s my disk go?  Time outs?  And the king of all frustrations: wassup with that tape robot?!&lt;/p&gt;

&lt;p&gt;This clearly puts me in the sysadmin geek category, but I had to share.  I had a spin-tingling euphoria when I read the details of SCSI packet sniffer written in dtrace. OMG this is cool: &lt;a href=&quot;http://blogs.sun.com/chrisg/resource/scsi_d/scsi.d-1.12&quot;&gt;http://blogs.sun.com/chrisg/resource/scsi_d/scsi.d-1.12&lt;/a&gt;.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 20 Dec 2007 08:52:01 -0500</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/104-guid.html</guid>
    
</item>
<item>
    <title>Zimbra on ZFS and Zones.</title>
    <link>http://www.lethargy.org/~jesus/archives/98-Zimbra-on-ZFS-and-Zones..html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/98-Zimbra-on-ZFS-and-Zones..html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=98</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=98</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;So, we&#039;re moving from an old Cyrus installation to &lt;a href=&quot;http://zimbra.com/&quot;&gt;Zimbra&lt;/a&gt;.  We considered moving to Dovecot, but the need for tight corporate calendaring that isn&#039;t hosted by big brother (&lt;a href=&quot;https://www.google.com/accounts/ServiceLogin?service=cl&amp;passive=true&amp;nui=1&amp;continue=http%3A%2F%2Fwww.google.com%2Fcalendar%2Frender&amp;followup=http%3A%2F%2Fwww.google.com%2Fcalendar%2Frender&quot;&gt;Google&lt;/a&gt; or &lt;a href=&quot;http://yahoo.com/&quot;&gt;Y!&lt;/a&gt;) was too strong.&lt;/p&gt;

&lt;p&gt;So, I call up Zimbra...&lt;/p&gt;

&lt;blockquote&gt;
&lt;strong&gt;Me&lt;/strong&gt;: Gimme that for Solaris.&lt;br /&gt;
&lt;strong&gt;Zimbra&lt;/strong&gt;: No.&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: Umm... It&#039;s open source and the &quot;closed&quot; bits are non-native Java.&lt;br /&gt;
&lt;strong&gt;Zimbra&lt;/strong&gt;: Umm... It doesn&#039;t work on Solaris, just install Linux.&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: Just give me a sound off-site backup strategy that works as well as ZFS.&lt;br /&gt;
&lt;strong&gt;Zimbra&lt;/strong&gt;: Umm... Install Linux, it&#039;s easy.&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: You&#039;re kinda missing the point.&lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;I then turn to Sergey, master of brute force, on our SA team and said: you&#039;ve got five days to run this on Solaris.  Sergey says: &quot;done.&quot;&lt;/p&gt;

&lt;p&gt;From here, we test quite a bit, doing migrations from the existing solution and installation tests. Whiz, bang, whirrrrr.  We&#039;re happy, and I go back to Zimbra with some trepidation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;strong&gt;Me&lt;/strong&gt;: How much?&lt;br /&gt;
&lt;strong&gt;Zimbra&lt;/strong&gt;: Fill out this form and fax it.&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: Okay... [faxed form]&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: I sent it.&lt;br /&gt;
&lt;strong&gt;Zimbra&lt;/strong&gt;: Got it, you should have your license.&lt;br /&gt;
&lt;strong&gt;Me&lt;/strong&gt;: Wow, that was easy.&lt;br /&gt;
&lt;/blockquote&gt;

&lt;p&gt;While I like free software a lot.  Boy is it refreshing to find a company that knows how to take your money without pain and suffering, like &lt;a href=&quot;http://microsoft.com/&quot;&gt;some companies I know&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&#039;m sure that Zimbra is just trying to limit the support platforms to help control their engineering costs.  The support for Linux is a no-brainer -- it&#039;s the most popular new deployment platform for just about everyone.  But, support for Mac OS X... as if there is demand for that in the enterprise?!  WTF?  I know all about &lt;a href=&quot;http://messagesystems.com/&quot;&gt;developing mail products&lt;/a&gt; and I understand that Mac OS X support is often iintroduced due to the engineering staff owning MacBook Pros.  But, come on... Tier 1 support for Mac OS X before Solaris, not very good market research here fellas.&lt;/p&gt;

&lt;p&gt;Anyway, we&#039;ve got Zimbra cooking on a sweet Solaris box attached to a Sun StorEdge T3.  One zone runs Zimbra Network Edition and another zone runs Zimbra Open Source Edition.  Both of these running on some nice ZFS mount points that are conveniently backed up with &lt;a href=&quot;https://labs.omniti.com/trac/zetaback/&quot;&gt;Zetaback&lt;/a&gt;... Bliss.&lt;/p&gt;

&lt;p&gt;Oh yeah.  One detractor to my bliss: I spent 2 days deleting old mail folders and eliminating cruft (built up over the last 10 years).  11 hours of imapsync to get my now down to 14 gigabyte mail store over is just painful.  There should be a universal mail store format so that I can &quot;burn&quot; by old mail into a universal archive format and just plug that into mail any mail server.  Right.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 29 Oct 2007 22:13:59 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/98-guid.html</guid>
    
</item>
<item>
    <title>PostgreSQL warm standby on ZFS crack</title>
    <link>http://www.lethargy.org/~jesus/archives/92-PostgreSQL-warm-standby-on-ZFS-crack.html</link>
            <category>OpenSolaris</category>
    
    <comments>http://www.lethargy.org/~jesus/archives/92-PostgreSQL-warm-standby-on-ZFS-crack.html#comments</comments>
    <wfw:comment>http://www.lethargy.org/~jesus/wfwcomment.php?cid=92</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://www.lethargy.org/~jesus/rss.php?version=2.0&amp;type=comments&amp;cid=92</wfw:commentRss>
    

    <author>nospam@example.com (Theo Schlossnagle)</author>
    <content:encoded>
    &lt;p&gt;So, the state of open source database replication is pretty sad.  &lt;a href=&quot;http://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; replication just doesn&#039;t cut it in many serious environments because the slaves can&#039;t keep up with the write load on the master.  So, &lt;a href=&quot;http://www.postgresql.org/&quot;&gt;PostgreSQL&lt;/a&gt; right?  Well, not so fast.  PostgreSQL replication is handled in one of two ways: &lt;a href=&quot;http://slony.info/&quot;&gt;Slony&lt;/a&gt; or &lt;a href=&quot;http://www.postgresql.org/docs/8.2/static/continuous-archiving.html&quot;&gt;PITR&lt;/a&gt; (point-in-time recovery).&lt;/p&gt;

&lt;p&gt;Slony provides all the same features as MySQL&#039;s replication (except that it is much harder to setup and maintain), but also boasts the same acute performance issues -- a busy master can easily outpace slaves, leaving them in the dust.  Query-log-based replication is pretty flawed and while &lt;a href=&quot;http://mysqldatabaseadministration.blogspot.com/2007/05/pre-fetch-binlogs-to-speed-up-mysql.html&quot;&gt;creative people will do whack shit to try to push the envelope&lt;/a&gt; this still doesn&#039;t make it a good method.&lt;/p&gt;

&lt;p&gt;PITR is much more like &lt;a href=&quot;http://www.oracle.com/&quot;&gt;Oracle&lt;/a&gt;&#039;s replication mechanism.  PITR takes the WAL (write-ahead logs) and ships them over to the slave to be reapplied.  This leaves you with an identical database (block for block) and a weak machine can easily keep up with a beefy master.  In Oracle terminology &quot;WALs&quot; are called &quot;archive logs.&quot;&lt;/p&gt;

&lt;p&gt;So, with PITR, all our problems are solved, right?  No.  When using a PITR-style warm standby configuration the database is in &quot;recovery mode&quot; all the time.  This means the database is &quot;sorta up&quot; waiting for the next WAL log to appear so that it can play forward through the transactions and &quot;catch up&quot; to the master: &quot;continuous recovery.&quot;  This means the database isn&#039;t available for queries.  Now, Oracle works the same way.  While Oracle is recovering, you can&#039;t use the database.  However, using Oracle you can cancel recover, mount the database read-only, do some queries, unmount and begin recovery again picking right up where you left off.  In PostgreSQL you cannot open the database in read-only mode and then later continue recovery as the act of opening the database (even in read-only mode) will deviate from the path of the recovery -- can we say design flaw?&lt;/p&gt;

&lt;p&gt;While Oracle&#039;s &quot;got game&quot; on PostgreSQL, the concept of stopping recovery so that we can run queries on the slave isn&#039;t ideal.  If my queries are substantial my &quot;warm standby&quot; will get colder and colder as it sits neglecting to apply archive logs.  So, I want my warm standby and I want to be able to run long, heavy queries against it.  &lt;a href=&quot;http://code.google.com/soc/2007/postgres/appinfo.html?csaid=6545828A8197EBC6&quot;&gt;And someone&#039;s going to give it to me!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, I&#039;m impatient.  So, I&#039;m going to make it work myself.  Using the power of ZFS, I&#039;m going to snap my PITR slave and clone it into a &quot;disposable&quot; &quot;point-in-time&quot; copy.  This is really useful for running heavy reports.&lt;/p&gt;

The basic concept is this:

&lt;ul&gt;
&lt;li&gt;I&#039;ve got PostgreSQL running on my box as a PITR slave.  The master is pushing WAL logs over and this box is running in recovery mode.&lt;/li&gt;
&lt;li&gt;Per best practices, my postgres data directory, xlogs and WAL archives are on different filesystems (ZFS of course).

&lt;pre&gt;
intmirror/postgres/82_xlogs  64.1M  66.8G  64.1M  /data/postgres/82_xlogs
store2/postgres/82    10.5G  1.97T  8.15G  /data/postgres/82
store2/postgres/82_walarchives 14.4G  1.97T  3.89G  /data/postgres/82_walarchives
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;zfs create store2/clonedb&lt;/li&gt;
&lt;li&gt;I create zone called &quot;clonedb&quot; with a zonepath /zones/clonedb&lt;/li&gt;
&lt;li&gt;I make &#039;store2/clonedb&#039; subject to an &#039;add dataset&#039; in the clonedb zone configuration.&lt;/li&gt;
&lt;li&gt;I setup the zone to run postgres just as the globalzone does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, all I have to do is get a copy of the PITR stuff into that zone.  There are a few caveats: (1) due to postgres&#039; design the copy must be read-write as it will be destructive even in read-only mode and (2) it will still be in recovery mode, so I&#039;ll need the last WAL archive so that it can &quot;finish&quot; recovery before I bring it online.&lt;/p&gt;

&lt;p&gt;ZFS gives us cheap, fast read-write clones of filesystems:&lt;/p&gt;
&lt;pre&gt;
&lt;b&gt;In the global zone:&lt;/b&gt;
zfs snapshot store2/postgres/82@clonebase
zfs clone store2/postgres/82@clonebase store2/clonedb/82

&lt;b&gt;In the clonedb zone:&lt;/b&gt;
zfs mount /store2/postgres/82
zfs set mountpoint=/data/postgres/82 store2/clonedb/82
&lt;/pre&gt;

&lt;p&gt;I need to make sure I copy the latest WAL archive from the PITR slave into the pg_walarchives directory on my clonedb zone. Then I just startup my postgres instance in the zone and touch the /data/postgres/82/failover file (this file tells my recovery script to stop recovering and start up normally).  Viola.&lt;/p&gt;

&lt;p&gt;It might sound complicated, but we just run ./&lt;a href=&quot;https://labs.omniti.com/trac/pgsoltools/browser/trunk/pitr_clone/clonedb_startclone.sh&quot;&gt;clonedb_startclone.sh&lt;/a&gt; and in about one minute we have a fully operational read-write database and the PITR slave is merrily continuing recovery.&lt;/p&gt;

&lt;pre&gt;
# ./clonedb_startclone.sh
[Mon Jul  2 20:37:14 EDT 2007] Stopping postgres in clonedb
[Mon Jul  2 20:37:20 EDT 2007] Dropping clone and base snapshot
[Mon Jul  2 20:37:38 EDT 2007] Snapshot store2/postgres/82
[Mon Jul  2 20:37:39 EDT 2007] Clone to store2/clonedb/82
[Mon Jul  2 20:37:41 EDT 2007] Mount store2/clonedb/82 at /data/postgres/82 in clonedb
[Mon Jul  2 20:37:43 EDT 2007] Copy last WAL [0000000100000016000000FA]
[Mon Jul  2 20:37:43 EDT 2007] Make it active [induce failover]
[Mon Jul  2 20:37:43 EDT 2007] Start postgres in clonedb
[Mon Jul  2 20:38:07 EDT 2007] System up
&lt;/pre&gt;

&lt;p&gt;Now I can run long data mining queries and other complicated reports against my standby database.  No load is induced on the master database at all (so no concern about negative production service effects) and the standby recovery is continuing on unaffected, so from the failover point-of-view nothing has changed either.  I am not even limited to one zone!  Any time I&#039;d like to, I can just &quot;snap&quot; myself a new query slave.  It&#039;s a &lt;em&gt;cheap&lt;/em&gt;, mutable, entirely disposable copy. Nice.&lt;/p&gt;

&lt;p&gt;It&#039;s worth noting that this same technique should work like a charm on Oracle as well.  Also, it should work well with any other filesystem that supports copy-on-write cloning -- though I don&#039;t know of any other than ZFS.&lt;/p&gt;

&lt;p&gt;This, in a long line of things, just lets you know that when your database doesn&#039;t quite have the spunk to finish the race, today&#039;s operating systems are actually powerful enough to drag them across the finish line.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 02 Jul 2007 21:06:32 -0400</pubDate>
    <guid isPermaLink="false">http://www.lethargy.org/~jesus/archives/92-guid.html</guid>
    
</item>

</channel>
</rss>