<?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>Mark's blog</title>
    <link>http://www.markround.com/</link>
    <description>Solaris, Linux, BSD and other techie things...</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 25 Jun 2009 15:32:38 GMT</pubDate>

    <image>
        <url>http://www.markround.com/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Mark's blog - Solaris, Linux, BSD and other techie things...</title>
        <link>http://www.markround.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Building a redundant iSCSI and NFS cluster with Debian - Part 5</title>
    <link>http://www.markround.com/archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=55</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=55</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    This is part 5 of a series on building a redundant iSCSI and NFS SAN with Debian.&lt;br /&gt; 
&lt;p&gt;Part 1 - &lt;a title=&quot;Overview, network layout and DRBD installation on Debian&quot; href=&quot;http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a title=&quot;DRBD and LVM on a Debian cluster&quot; href=&quot;http://www.markround.com/archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - &lt;a title=&quot;Heartbeat and automated failover&quot; href=&quot;http://www.markround.com/archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html&quot;&gt;Heartbeat and automated failover&lt;/a&gt;&lt;br /&gt;Part 4 - &lt;a title=&quot;iSCSI and IP failover&quot; href=&quot;http://www.markround.com/archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html&quot;&gt;iSCSI and IP failover&lt;/a&gt;&lt;br /&gt;Part 5 - &lt;a title=&quot;Multipathing and client configuration&quot; href=&quot;http://www.markround.com/archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html&quot;&gt;Multipathing and client configuration&lt;/a&gt;&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt; 
&lt;p&gt;In this part of the series, we&#039;ll configure an iSCSI client (&amp;quot;initiator&amp;quot;), connect it to the storage servers and set up multipathing. Note : Since Debian Lenny has been released since this series of articles started, that&#039;s the version we&#039;ll use for the client.&lt;br /&gt;&lt;br /&gt;If you refer back to &lt;a href=&quot;http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;part one&lt;/a&gt; to refresh your memory of the network layout, you can see that the storage client (&amp;quot;badger&amp;quot; in that diagram) should have 3 network interfaces :&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;eth0 : 172.16.7.x for the management interface, this is what you&#039;ll use to SSH into it. &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;And two storage interfaces. As the storage servers (&amp;quot;targets&amp;quot;) are using 192.168.x.1 and 2, I&#039;ve given this client the following addresses :&lt;br /&gt;&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;eth1: 192.168.1.10 &lt;/li&gt; 
&lt;li&gt;eth2: 192.168.2.10 &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Starting at .10 on each range keeps things clear - I&#039;ve found it can help to have a policy of servers being in a range of, say, 1 to 10, and clients being above this. Before we continue, make sure that these interfaces are configured, and you can ping the storage server over both interfaces, e.g. try pinging 192.168.1.1 and 192.168.2.1.&lt;br /&gt;&lt;br /&gt;Assuming the underlying networking is configured and working, the first thing we need to do is install open-iscsi (which is the &amp;quot;initiator&amp;quot; - the iSCSI client). This is done by a simple :&lt;/p&gt; 
&lt;pre&gt;# aptitude install open-iscsi&lt;/pre&gt; 
&lt;p&gt;You should see the package get installed, and the service started :&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;Setting up open-iscsi (2.0.870~rc3-0.4) ...
Starting iSCSI initiator service: iscsid.
Setting up iSCSI targets:
iscsiadm: No records found!&lt;/pre&gt; 
&lt;p&gt;At this point, we have all we need to start setting up some connections.&amp;#160; &lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html#extended&quot;&gt;Continue reading &quot;Building a redundant iSCSI and NFS cluster with Debian - Part 5&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 24 Jun 2009 11:47:56 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/55-guid.html</guid>
    
</item>
<item>
    <title>Updated Cacti iostat package now supports Solaris</title>
    <link>http://www.markround.com/archives/54-Updated-Cacti-iostat-package-now-supports-Solaris.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/54-Updated-Cacti-iostat-package-now-supports-Solaris.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=54</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=54</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;Just a quick update to my &lt;a title=&quot;Cactio iostat monitoring scripts and templates&quot; href=&quot;http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html&quot;&gt;Cacti iostat monitoring scripts and templates&lt;/a&gt; - thanks to the work of Marwan Shaher and Eric Schoeller, the package now supports Solaris! The updated package is available here :&amp;#160;
&lt;a href=&quot;http://www.markround.com/uploads/uploads/cacti-iostat-1.4.tar.gz&quot; title=&quot;cacti-iostat-1.4.tar.gz&quot; target=&quot;_blank&quot;&gt;cacti-iostat-1.4.tar.gz&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt; I have also updated the original blog post with the new package.&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 18 May 2009 11:05:11 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/54-guid.html</guid>
    
</item>
<item>
    <title>Oracle to buy Sun</title>
    <link>http://www.markround.com/archives/53-Oracle-to-buy-Sun.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/53-Oracle-to-buy-Sun.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=53</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=53</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;&lt;!-- s9ymdb:55 --&gt;&lt;/p&gt; 
&lt;p&gt;My response to today&#039;s news:&lt;/p&gt; 
&lt;p&gt;&lt;img width=&quot;400&quot; height=&quot;164&quot; src=&quot;http://www.markround.com/uploads/no.jpg&quot; style=&quot;border: 0px none ; padding-left: 5px; padding-right: 5px;&quot; class=&quot;serendipity_image_center&quot; /&gt;&lt;/p&gt; 
&lt;p&gt;&lt;!-- s9ymdb:56 --&gt;&lt;img width=&quot;400&quot; height=&quot;400&quot; src=&quot;http://www.markround.com/uploads/no2.jpg&quot; style=&quot;border: 0px none ; padding-left: 5px; padding-right: 5px;&quot; class=&quot;serendipity_image_center&quot; /&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 20 Apr 2009 14:19:10 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/53-guid.html</guid>
    
</item>
<item>
    <title>Cracking dictionary passwords</title>
    <link>http://www.markround.com/archives/52-Cracking-dictionary-passwords.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/52-Cracking-dictionary-passwords.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=52</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;I was talking with my wife a few days ago, and the subject of password security came up. Now, we all know that we&#039;re supposed to pick a secure password, use at least 8 characters and never to pick a word from the dictionary. But then she asked how long it would take to brute-force a password using a dictionary attack, and I had to admit I had no idea. I knew it would only be a matter of minutes, but wanted to give it a try.&lt;/p&gt;
&lt;p&gt;So, For anyone who is interested, I knocked up a quick BASH script to compare a MD5 hashed password against the contents of /usr/share/dict/words, which on a Red Hat 5.3 system contains 479,623 words. The script is as follows :&lt;/p&gt;&lt;pre&gt;#!/bin/bash&lt;br /&gt;TARGET_HASH=$1&lt;br /&gt;while read WORD; do&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WORD_HASH=$(echo $WORD | md5sum | awk &#039;{print $1}&#039;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ &quot;$WORD_HASH&quot; == &quot;$TARGET_HASH&quot; ]; then&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &quot;Found match!&quot;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &quot;Password is : $WORD&quot;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exit&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi&lt;br /&gt;done &amp;lt; /usr/share/dict/words&lt;/pre&gt;
&lt;p&gt;Now, this was just a quick hack to satisfy my curiosity, and only something I threw together after a few seconds. Of particular relevance is the fact that it&#039;s a shell script, and uses a lot of forking to generate the MD5 hashes of the dictionary. If I wrote it in C, I&#039;m sure it would be faster by an order of magnitude.&lt;/p&gt;
&lt;p&gt;But anyway, on to the test - I created a MD5 phrase for it to crack, and timed it :&lt;/p&gt;&lt;pre&gt;# time ./crack.sh 3a783fb2aa3a2318499f0a60d7ef6078&lt;br /&gt;Found match!&lt;br /&gt;Password is : hedgehog&lt;/pre&gt;&lt;pre&gt;real&amp;#160;&amp;#160;&amp;#160; 8m43.432s&lt;br /&gt;user&amp;#160;&amp;#160;&amp;#160; 1m48.410s&lt;br /&gt;sys&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8m27.030s&lt;/pre&gt;
&lt;p&gt;Not bad - just under 9 minutes. Obviously, that&#039;d take longer if I used a word starting with &quot;x&quot; or &quot;z&quot;!&amp;#160; I then realised it would be a lot faster if I generated a &quot;compiled&quot; version of the dictionary file with the MD5 hashes preprepared :&lt;/p&gt;&lt;pre&gt;while read WORD; do echo &quot;$WORD:$(echo $WORD | md5sum | awk &#039;{print $1}&#039;)&quot;; done &amp;lt; /usr/share/dict/words&amp;#160; &amp;gt; md5.txt&lt;/pre&gt;
&lt;p&gt;Obviously, I could then generate compiled dictionary files for each hashing algorithm I wanted to crack (assuming that they are non-Salted algorithms).&amp;#160; This took around 30 minutes, but now I don&#039;t have to generate the hashes again, all I need to do is check against the second column of the file for a match. It is also irrelevant whether the word lies near the start or end of the file, it now takes about the same time to find a match :&lt;/p&gt;&lt;pre&gt;# time grep ac23b37db0039dda62896bb21f312755 md5.txt | cut -d&#039;:&#039; -f1&lt;br /&gt;aardvark&lt;/pre&gt;&lt;pre&gt;real&amp;#160;&amp;#160;&amp;#160; 0m0.019s&lt;br /&gt;user&amp;#160;&amp;#160;&amp;#160; 0m0.008s&lt;br /&gt;sys&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0m0.011s&lt;/pre&gt;&lt;pre&gt;# time grep 981fe627ab4906b677ce9d3e6eff499f md5.txt | cut -d&#039;:&#039; -f1&lt;br /&gt;zoology&lt;/pre&gt;&lt;pre&gt;real&amp;#160;&amp;#160;&amp;#160; 0m0.019s&lt;br /&gt;user&amp;#160;&amp;#160;&amp;#160; 0m0.006s&lt;br /&gt;sys&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0m0.014s&lt;/pre&gt;
&lt;p&gt;So there you have it. It was an interesting way to spend a few minutes, and I now have an answer whenever someone asks &quot;how long would it take to crack a password based on a dictionary word&quot;: Assuming you have the compiled hash files, around 0.019 seconds.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;#160;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 17 Apr 2009 15:22:33 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/52-guid.html</guid>
    
</item>
<item>
    <title>OpenVPN on Windows XP and Vista</title>
    <link>http://www.markround.com/archives/51-OpenVPN-on-Windows-XP-and-Vista.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/51-OpenVPN-on-Windows-XP-and-Vista.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=51</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=51</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;Just a quick post this time, as I thought this may help others in the same situation I found myself in recently. At work, we&#039;ve been using &lt;a title=&quot;OpenVPN&quot; href=&quot;http://openvpn.org/&quot;&gt;OpenVPN&lt;/a&gt; which works a treat with Unix clients; Windows clients (Vista in particular) were more problematic, though. &lt;/p&gt;&lt;p&gt;None of our regular users have admin privileges (for &lt;a title=&quot;A very good reason to restrict admin rights&quot; href=&quot;http://www.computerworld.com/action/article.do?command=viewarticlebasic&amp;articleid=9127318&quot;&gt;obvious reasons&lt;/a&gt;), but this caused problems with the routing setup: users could use the GUI tool, but could not create the necessary routes required to direct traffic over the VPN. We experimented for a while with setting up persistent routes, but this didn&#039;t work for multiple users. I&#039;d read all kinds of posts about running the executables as an Administrator, disabling Vista UAC, registry tweaks and other voodoo - either they didn&#039;t work, or they were unacceptable in our environment. &lt;/p&gt;&lt;p&gt;I then hit upon a simple workaround that also &lt;a href=&quot;http://osdir.com/ml/network.openvpn.devel/2006-11/msg00005.html&quot;&gt;seems to work&lt;/a&gt; on Windows XP: Just add the user to the &amp;quot;Network Configuration Operators&amp;quot; group:&lt;/p&gt;&lt;p&gt;Administrative Tools -&amp;gt; Computer Management -&amp;gt; Local Users and Groups -&amp;gt; Groups -&amp;gt; Network Configuration Operators&lt;/p&gt;&lt;p&gt;Now, everything works right out of the box on Vista SP1 with the 2.1RC builds of OpenVPN (&lt;a href=&quot;http://openvpn.org/index.php/downloads.html&quot;&gt;OpenVPN 2.1_rc15&lt;/a&gt; was the version we tested). You have to install this as an Administrator, and you do have to be happy with giving your VPN users slightly elevated privileges - but at least it stops way short of having to give them administrator rights. &lt;/p&gt;&lt;p&gt;For reference, here&#039;s the client config file as well :&lt;/p&gt;&lt;pre&gt;client&lt;br /&gt;script-security 3 system&lt;br /&gt;dev tun&lt;br /&gt;proto udp&lt;br /&gt;remote &amp;lt;openvpn server address&amp;gt; 1194&lt;br /&gt;nobind&lt;br /&gt;persist-key&lt;br /&gt;persist-tun&lt;br /&gt;ca ca.crt&lt;br /&gt;cert &amp;lt;user.name&amp;gt;.crt&lt;br /&gt;key &amp;lt;user.name&amp;gt;.key&lt;br /&gt;cipher BF-CBC &lt;br /&gt;comp-lzo&lt;br /&gt;verb 3&lt;br /&gt;mute 20&lt;br /&gt;route-method exe&lt;br /&gt;route-delay 2&lt;/pre&gt; 
    </content:encoded>

    <pubDate>Fri, 13 Feb 2009 09:20:44 +0000</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/51-guid.html</guid>
    
</item>
<item>
    <title>Building a redundant iSCSI and NFS cluster with Debian - Part 4</title>
    <link>http://www.markround.com/archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=50</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=50</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;This is part&amp;#160;4 of a series on building a redundant iSCSI and NFS SAN with Debian.&lt;/p&gt;
&lt;p&gt;Part 1 - &lt;a title=&quot;Overview, network layout and DRBD installation on Debian&quot; href=&quot;archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a title=&quot;DRBD and LVM on a Debian cluster&quot; href=&quot;archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - &lt;a title=&quot;Heartbeat and automated failover&quot; href=&quot;archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html&quot;&gt;Heartbeat and automated failover&lt;/a&gt;&lt;br /&gt;Part 4 - &lt;a title=&quot;iSCSI and IP failover&quot; href=&quot;archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html&quot;&gt;iSCSI and IP failover&lt;/a&gt;&lt;br /&gt;Part 5 - &lt;a title=&quot;Multipathing and client configuration&quot; href=&quot;archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html&quot;&gt;Multipathing and client configuration&lt;/a&gt;&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;
&lt;p&gt;In this part, we&#039;ll configure Heartbeat to manage IP address failover on the two storage interfaces. We&#039;ll also install and configure an iSCSI target to provide block-level storage to clients.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html#extended&quot;&gt;Continue reading &quot;Building a redundant iSCSI and NFS cluster with Debian - Part 4&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 09 Feb 2009 14:27:21 +0000</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/50-guid.html</guid>
    
</item>
<item>
    <title>Building a redundant iSCSI and NFS cluster with Debian - Part 3</title>
    <link>http://www.markround.com/archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=49</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=49</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;This is part 3 of a series on building a redundant iSCSI and NFS SAN with Debian.&lt;/p&gt;
&lt;p&gt;Part 1 - &lt;a title=&quot;Overview, network layout and DRBD installation on Debian&quot; href=&quot;archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a title=&quot;DRBD and LVM on a Debian cluster&quot; href=&quot;archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - &lt;a title=&quot;Heartbeat and automated failover&quot; href=&quot;archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html&quot;&gt;Heartbeat and automated failover&lt;/a&gt;&lt;br /&gt;Part 4 - &lt;a title=&quot;iSCSI and IP failover&quot; href=&quot;archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html&quot;&gt;iSCSI and IP failover&lt;/a&gt;&lt;br /&gt;Part 5 - &lt;a title=&quot;Multipathing and client configuration&quot; href=&quot;archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html&quot;&gt;Multipathing and client configuration&lt;/a&gt;&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the last two guides, we set up a DRBD resource and LVM volume group which we could manually migrate between the two cluster nodes. In this guide, we&#039;ll set up the Heartbeat cluster software to handle automatic migration of services between the two nodes in our cluster (&quot;failover&quot;).&lt;br /&gt;&lt;br /&gt;The version of Heartbeat included in Debian Etch is 1.x. It is a very simple system, and is limited to two node clusters, making it ideal for something simple such as failover for services between two nodes. The current 2.x branch is a lot more complicated, and has a new XML configuration format, although it can still be used with the original 1.x format files. Although it adds many useful features, it&#039;s overkill for our needs at the moment - plus, sticking to 1.x avoids the need to install software not included in the current stable distribution. &lt;/p&gt;
&lt;p&gt;&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html#extended&quot;&gt;Continue reading &quot;Building a redundant iSCSI and NFS cluster with Debian - Part 3&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 03 Feb 2009 15:15:05 +0000</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/49-guid.html</guid>
    
</item>
<item>
    <title>Linux iostat monitoring with Cacti</title>
    <link>http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=48</wfw:comment>

    <slash:comments>23</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=48</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;I&#039;ve been looking for ages for a tool to parse the output from &quot;iostat&quot; on Linux, and graph it in &lt;a title=&quot;Cacti monitoring tool&quot; href=&quot;http://www.cacti.net&quot;&gt;Cacti&lt;/a&gt;. I found a few scripts and templates that did some of what I was looking for (disk I/O etc.), but nothing that gave me the full set of statistics such as queue length, utilisation, service time etc. I finally got round to writing my own set of templates and a data gathering script to provide this information, and it seems to work very well. So that others can benefit, I&#039;ve posted the package archive and a brief description over on the &lt;a title=&quot;iostat cacti templates&quot; href=&quot;http://forums.cacti.net/viewtopic.php?t=29426&quot;&gt;Cacti forums&lt;/a&gt; (click &lt;a href=&quot;http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#extended&quot;&gt;Continue Reading&lt;/a&gt; for a download link to an updated version - the one on the Cacti forums has a bug so that it won&#039;t work with all versions of sysstat). Below are a couple of sample graphs to give you an idea of what it can do - there&#039;s also a few more samples posted in the Cacti forums thread :&lt;!-- s9ymdb:49 --&gt;&lt;/p&gt;
&lt;div style=&quot;WIDTH: 595px&quot; class=&quot;serendipity_imageComment_center&quot;&gt;
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:49 --&gt;&lt;img class=&quot;serendipity_image_center&quot; src=&quot;http://www.markround.com/uploads/bytes_sec.png&quot; width=&quot;595&quot; height=&quot;245&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Displaying iostat&#039;s kB/s data source.&lt;/div&gt;&lt;/div&gt;
&lt;div style=&quot;WIDTH: 595px&quot; class=&quot;serendipity_imageComment_center&quot;&gt;
&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:50 --&gt;&lt;img class=&quot;serendipity_image_center&quot; src=&quot;http://www.markround.com/uploads/times.png&quot; width=&quot;595&quot; height=&quot;233&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Timing information from iostat (average wait and service time)&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Installation is a simple matter of creating a cron job to gather iostat data, extending your snmpd.conf to call the included iostat.pl script, and then importing the templates. Full instructions are included in the README within the archive (click the &lt;a title=&quot;Linux iostat monitoring with Cacti - README&quot; href=&quot;http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#extended&quot;&gt;Continue Reading&lt;/a&gt; link to see them), but if you have any comments, suggestions or problems please let me know! &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#extended&quot;&gt;Continue reading &quot;Linux iostat monitoring with Cacti&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 15 Oct 2008 11:02:31 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/48-guid.html</guid>
    
</item>
<item>
    <title>Blastwave is dead</title>
    <link>http://www.markround.com/archives/46-Blastwave-is-dead.html</link>
            <category>Blastwave</category>
    
    <comments>http://www.markround.com/archives/46-Blastwave-is-dead.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=46</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=46</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    
Earlier on today, the main &lt;a href=&quot;http://www.blastwave.org/&quot;&gt;Blastwave&lt;/a&gt; website got replaced by this message :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Blastwave is a registered trademark of Blastwave.org Inc. in the&lt;br /&gt;United States and Canada. All assets of Blastwave.org Inc. are frozen&lt;br /&gt;until further notice. All Solaris(tm) related open source software&lt;br /&gt;work and services are cancelled. All websites, documents and binary&lt;br /&gt;software packages that bear the mark Blastwave or Blastwave(tm) are no&lt;br /&gt;longer available until further notice.&lt;/blockquote&gt;&lt;br /&gt;At the same time, mailing lists, shell logins and other services seem to have been shutdown and/or removed from DNS. None of this came with any warning or notification to the maintainers, and I still don&#039;t know what&#039;s going on. I can&#039;t access any of the build servers, so it&#039;s fairly safe to assume that my build scripts, packages, documentation, and everything else I&#039;ve been working on for the Solaris community over the last 5 years is gone also. As if that wasn&#039;t enough, there are also reports that someone has been &lt;a href=&quot;http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/0caea4ad853bee35/8ac0dd3c207b3fca&quot;&gt;attempting to sabotage various mirror sites&lt;/a&gt;. I don&#039;t know how to take that - but frankly, right now, I don&#039;t care. I&#039;m out. I&#039;ve had it with the political fighting and drama. Many maintainers had already left following the last spat - I simply don&#039;t have the will to get involved in it any more, the damage has already been done. If anyone is still using my Blastwave packages (PostgreSQL, Nessus, PHP4, and some others) I recommend you switch to something else, like Sun&#039;s own &lt;a href=&quot;http://cooltools.sunsource.net/coolstack/&quot;&gt;CoolStack&lt;/a&gt; or &lt;a href=&quot;http://www.opensolaris.com/get/index.html&quot;&gt;OpenSolaris&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;There&#039;s plenty more I could say, but at this point I think it&#039;s perhaps better to simply leave it. It&#039;s a sad day for me: seeing years of work towards something that I believed in, and helped a great many people, all go to ruin. It&#039;s even sadder for the Solaris community as a whole; this was a true grass-roots organisation - made up from like-minded Solaris users, admins, programmers and fans - who gave up countless hours of their own time to help others. I think the least we deserve is an explanation, but somehow I don&#039;t think one at this stage would make any difference anyway.
&lt;/p&gt;&lt;p&gt;Update : People have been mailing me to say the main page is back up - true, but it&#039;s a case of &amp;quot;the lights are on, but no one&#039;s home&amp;quot;. Check the &lt;a href=&quot;http://groups.google.com/group/comp.unix.solaris/browse_thread/thread/0caea4ad853bee35/8ac0dd3c207b3fca&quot;&gt;thread&lt;/a&gt; in comp.unix.solaris.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 07 Aug 2008 15:49:01 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/46-guid.html</guid>
    
</item>
<item>
    <title>Building a redundant iSCSI and NFS cluster with Debian - Part 2</title>
    <link>http://www.markround.com/archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=45</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=45</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;This is part 2 of a series on building a redundant iSCSI and NFS SAN with Debian.&lt;/p&gt;
&lt;p&gt;Part 1 - &lt;a title=&quot;Overview, network layout and DRBD installation on Debian&quot; href=&quot;archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a title=&quot;DRBD and LVM on a Debian cluster&quot; href=&quot;archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - &lt;a title=&quot;Heartbeat and automated failover&quot; href=&quot;archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html&quot;&gt;Heartbeat and automated failover&lt;/a&gt;&lt;br /&gt;Part 4 - &lt;a title=&quot;iSCSI and IP failover&quot; href=&quot;archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html&quot;&gt;iSCSI and IP failover&lt;/a&gt;&lt;br /&gt;Part 5 - &lt;a title=&quot;Multipathing and client configuration&quot; href=&quot;archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html&quot;&gt;Multipathing and client configuration&lt;/a&gt;&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuring DRBD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Following on from part one, where we covered the basic architecture and got DRBD installed, we&#039;ll proceed to configuring and then initialising the shared storage across both nodes. The configuration file for DRBD (/etc/drbd.conf) is very simple, and is the same on both hosts. The full configuration file is below - you can copy and paste this in; I&#039;ll go through each line afterwards and explain what it all means. Many of these sections and commands can be fine tuned - see the man pages on &lt;a href=&quot;http://www.drbd.org/users-guide/re-drbdconf.html&quot;&gt;drbd.conf&lt;/a&gt; and &lt;a href=&quot;http://www.drbd.org/users-guide/re-drbdsetup.html&quot;&gt;drbdsetup&lt;/a&gt; for more details.&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;pre style=&quot;MARGIN-RIGHT: 0px&quot; dir=&quot;ltr&quot;&gt;global {&lt;br /&gt;}&lt;br /&gt;resource r0 {&lt;br /&gt;&amp;#160; protocol C;&lt;br /&gt;&amp;#160; incon-degr-cmd &quot;echo &#039;!DRBD! pri on incon-degr&#039; | wall ; sleep 60 ; halt -f&quot;;&lt;br /&gt;&lt;br /&gt;&amp;#160; startup {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; wfc-timeout&amp;#160; 0;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; disk {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; on-io-error&amp;#160;&amp;#160; detach;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; net {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; on-disconnect reconnect;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; syncer {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; rate 30M;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; on weasel {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; device&amp;#160;&amp;#160;&amp;#160;&amp;#160; /dev/drbd0;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; disk&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /dev/md3;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; address&amp;#160;&amp;#160;&amp;#160; 10.0.0.2:7788;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; meta-disk&amp;#160; internal;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; on otter {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; device&amp;#160;&amp;#160;&amp;#160; /dev/drbd0;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; disk&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /dev/md3;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; address&amp;#160;&amp;#160; 10.0.0.1:7788;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; meta-disk internal;&lt;br /&gt;&amp;#160; }&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;The structure of this file should be pretty obvious - sections are surrounded by curly braces, and there are two main sections - a global one, in which nothing is defined, and a resource section, where a shared resource named &quot;r0&quot; is defined.&lt;/p&gt;
&lt;p&gt;The global section only has a few options available to it - see the &lt;a href=&quot;http://www.drbd.org/&quot;&gt;DRBD website&lt;/a&gt; for more information; though it&#039;s pretty safe to say you can ignore this part of the configuration file when you&#039;re getting started.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html#extended&quot;&gt;Continue reading &quot;Building a redundant iSCSI and NFS cluster with Debian - Part 2&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 19 May 2008 15:39:49 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/45-guid.html</guid>
    
</item>
<item>
    <title>Building a redundant iSCSI and NFS cluster with Debian - Part 1</title>
    <link>http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=44</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=44</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;p&gt;It&#039;s been a while now since I last updated this blog with any decent material (&lt;a href=&quot;http://www.markround.com/archives/43-Poo.html&quot;&gt;The Poo Truck&lt;/a&gt; notwithstanding, as honestly, that&#039;s a classic) so I thought I&#039;d dust off some of my notes on building a redundant iSCSI&amp;#160;and NFS SAN using Debian Etch. &lt;/p&gt;
&lt;p&gt;The following post takes the form of a &quot;HOWTO&quot; guide - I&#039;ll include all the relevant commands, configuration files and output produced so you can follow along. This is the first part of the series; I&#039;ll post the different sections in phases, each covering a different part of the setup. The plan is to cover all this in 5 (possibly 6) separate posts, with the following content :&lt;/p&gt;
&lt;p&gt;Part 1 - &lt;a title=&quot;Overview, network layout and DRBD installation on Debian&quot; href=&quot;archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a title=&quot;DRBD and LVM on a Debian cluster&quot; href=&quot;archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - &lt;a title=&quot;Heartbeat and automated failover&quot; href=&quot;archives/49-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-3.html&quot;&gt;Heartbeat and automated failover&lt;/a&gt;&lt;br /&gt;Part 4 - &lt;a title=&quot;iSCSI and IP failover&quot; href=&quot;archives/50-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-4.html&quot;&gt;iSCSI and IP failover&lt;/a&gt;&lt;br /&gt;Part 5 - &lt;a title=&quot;Multipathing and client configuration&quot; href=&quot;archives/55-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-5.html&quot;&gt;Multipathing and client configuration&lt;/a&gt;&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;
&lt;p&gt;So, this being part one, I&#039;ll start with a quick overview of what I&#039;m trying to achieve here :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cluster overview&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The cluster will consist of 2 storage servers, providing iSCSI and NFS services to a number of clients, over floating IP addresses and from a replicated pool of storage. This storage will be used for file sharing (NFS), and block devices (iSCSI) - although you could add any kind of service on top of the cluster; an obvious option would be to provide SMB (Microsoft Windows file services), although I won&#039;t explore that particular avenue.&lt;/p&gt;
&lt;p&gt;This will be replicated with &lt;a title=&quot;Distributed Replicated Block Device&quot; href=&quot;http://www.drbd.org/&quot;&gt;DRBD&lt;/a&gt;, and managed using &lt;a title=&quot;The Linux Logical Volume Manager&quot; href=&quot;http://sourceware.org/lvm2/&quot;&gt;LVM2&lt;/a&gt;. I&#039;ll also be using multipathing to the storage, so that a component (NIC, switch, cable etc.) can fail in one channel but the storage will still be accessible. Failover and cluster management will be provided by the &lt;a href=&quot;http://www.linux-ha.org/&quot;&gt;Linux-HA&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;The distribution I&#039;m using is Debian Etch (4.0), although most of the configuration files and commands used will work on any distro, although file locations and the package management commands will obviously differ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Network layout&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The two storage nodes (which I&#039;ll call &quot;otter&quot; and &quot;weasel&quot;) will have the following 4 network interfaces configured :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;eth0: 172.16.1.x -Management interface (the address we SSH into to manage the system) 
&lt;/li&gt;&lt;li&gt;eth1: 10.0.0.x - This is for data replication and heartbeat between the two nodes, and will be via a cross-over cable connected directly between the two servers 
&lt;/li&gt;&lt;li&gt;eth2 and eth3: 192.168.1.x - This is the storage network, clients will connect to this for their storage. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And the client (which I&#039;ll call &quot;badger&quot;) will have the following 3 network interfaces configured :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;eth0 : 172.16.1.x - Management / public interface 
&lt;/li&gt;&lt;li&gt;eth1 and eth2 : 192.168.x.1 - Storage network (where we access the iSCSI and NFS storage). These will use 192.168.1.1 and 192.168.2.1, both with a netmask of 255.255.255.0 to ensure that requests go to the correct interface when using multipathing (more on that later). &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In a real-world scenario, these would be on physically different NICs, and would also be on separate switches - particularly the multipathed storage interfaces. Utilising the different private ranges makes it easier to see at a glance what is going on, and makes trouble-shooting a lot easier. It&#039;s also obviously a good idea to separate your storage network from the rest of your regular network traffic.&lt;/p&gt;
&lt;p&gt;Of course, there is nothing stopping you from utilising virtual NICs and having each address on eth0:1, eth0:2 and so on. Obviously, GigE or higher would be required in a production network, but there&#039;s nothing stopping you from using 100Mb in a test/development environment. Just don&#039;t expect stellar performance!&lt;/p&gt;
&lt;p&gt;There will also be a null-modem cable connected between the two serial ports on each storage node. This is to supplement the network heartbeat, and will help avoid the problem of &quot;split-brain&quot; that can occur in clusters. If there was a problem with the heartbeat network - the switch failing, for instance - both nodes would then see the other as failed, and try to assume the master role. Having a secondary heartbeat connection between the nodes will help avoid this problem - particularly as it is a &quot;straight-through&quot; connection, and does not rely on any intermediate devices such as a network switch.&lt;/p&gt;
&lt;p&gt;At this point, a diagram might be in order - you&#039;ll have to excuse my &quot;Dia&quot; skills, which are somewhat lacking! &lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; BORDER-RIGHT: 0px&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://www.markround.com/uploads/cluster.png&quot; width=&quot;592&quot; height=&quot;422&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;This diagram shows all the important connections between the various hosts, so hopefully this will make things a little clearer. You can see that with this architecture, we could loose one storage server or one switch, and we&#039;d still have a valid path to the storage from our client.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html#extended&quot;&gt;Continue reading &quot;Building a redundant iSCSI and NFS cluster with Debian - Part 1&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 13 May 2008 12:04:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/44-guid.html</guid>
    
</item>
<item>
    <title>Poo</title>
    <link>http://www.markround.com/archives/43-Poo.html</link>
            <category>Personal</category>
    
    <comments>http://www.markround.com/archives/43-Poo.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=43</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=43</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    
OK, I readily admit that this is really childish. I haven&#039;t updated this site for ages; I know there are far better things that I could be writing about. At the age of nearly 30, I really shouldn&#039;t be sniggering at naughty words like I&#039;m back in primary school. But when I saw this unbelievably apt number plate on a sewage truck, I realised I had witnessed the stuff of playground legends. I present to you The Poo Truck in all it&#039;s glory...&lt;br /&gt;&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 800px;&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:46 --&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;img height=&quot;412&quot; width=&quot;800&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://www.markround.com/uploads/poo.jpg&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;THE POO TRUCK!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 12 May 2008 21:27:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/43-guid.html</guid>
    
</item>
<item>
    <title>I'm married!</title>
    <link>http://www.markround.com/archives/40-Im-married!.html</link>
            <category>Personal</category>
    
    <comments>http://www.markround.com/archives/40-Im-married!.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    
&lt;p&gt;&lt;!-- s9ymdb:40 --&gt;&lt;img width=&quot;448&quot; height=&quot;604&quot; style=&quot;border: 0px none ; float: left; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.markround.com/uploads/n521146581_281707_7976.jpg&quot; /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 19 Sep 2007 13:21:54 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/40-guid.html</guid>
    
</item>
<item>
    <title>ZFS Replication</title>
    <link>http://www.markround.com/archives/38-ZFS-Replication.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/38-ZFS-Replication.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=38</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=38</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    
&lt;p&gt;As I&#039;ve been investigating ZFS for use on production systems, I&#039;ve been making a great deal of notes, and jotting down little &amp;quot;cookbook recipies&amp;quot; for various tasks. One of the coolest systems I&#039;ve created recently utilised the zfs send &amp;amp; receive commands, along with incremental snapshots to create a replicated ZFS environment across two different systems. True, all this is present in the zfs manual page, but sometimes a quick demonstration makes things easier to understand and follow.&lt;/p&gt;&lt;p&gt;While this isn&#039;t true filesystem replication (you&#039;d have to look at something like &lt;a href=&quot;http://opensolaris.org/os/project/avs/&quot;&gt;StorageTek AVS&lt;/a&gt; for that) it does provide periodic snapshots and incremental updates; these can be run every minute if you&#039;re driving this from cron - or, at even more granular intervals if you write your own daemon. Nonetheless, this suffices for disaster recovery and redundancy if you don&#039;t need up-to-the second replication between systems.&lt;br /&gt;&lt;br /&gt;I&#039;ve typed up my notes in blog format so you can follow along with this example yourself, all you&#039;ll need is a Solaris system running ZFS. Read more for the full demonstration...&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/38-ZFS-Replication.html#extended&quot;&gt;Continue reading &quot;ZFS Replication&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 11 Jul 2007 00:15:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/38-guid.html</guid>
    
</item>
<item>
    <title>ZFS as a volume manager</title>
    <link>http://www.markround.com/archives/37-ZFS-as-a-volume-manager.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/37-ZFS-as-a-volume-manager.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.markround.com/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    
While browsing the ZFS man page recently, I made an interesting discovery: ZFS can export block devices from a zpool, which means you can separate &amp;quot;ZFS the volume manager&amp;quot; from &amp;quot;ZFS the filesystem&amp;quot;. This may well be old news to many; however I haven&#039;t seen many references to this on the web, so thought I&#039;d post a quick blog update. &lt;br /&gt;
 &lt;p&gt;The example used in this post is the creation of a mirrored zpool which is then used to create a block device, on top of which I&#039;ll create a UFS filesystem. The reasons for doing this are many and varied : you may have an application that needs UFS (particularly forcedirectio); you may need to create a block device for some reason but all your storage is currently tied up in zpools; or you just need a quick block device to use for testing. &lt;/p&gt;&lt;p&gt;Using ZFS as a volume manager also has it&#039;s advantages over something like SVM (formerly &amp;quot;DiskSuite&amp;quot;). The management features are much improved (along with a browser-based GUI, if that&#039;s your thing) and you also gain access to ZFS features which operate at the volume manager layer and aren&#039;t dependant on the filesystem parts of ZFS. This includes features such as end-to-end error checking and recovery, along with snapshots.&lt;/p&gt;&lt;p&gt;Read on for the full update...&lt;/p&gt;&lt;p /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/37-ZFS-as-a-volume-manager.html#extended&quot;&gt;Continue reading &quot;ZFS as a volume manager&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 10 Jul 2007 22:48:41 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/37-guid.html</guid>
    
</item>

</channel>
</rss>