<?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>Blastwave, Solaris, and other techie things...</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.3 - http://www.s9y.org/</generator>
    <pubDate>Wed, 27 Aug 2008 13:36:05 GMT</pubDate>

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

<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>
    &lt;br /&gt;
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;br /&gt;
&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>0</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;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 - Heartbeat and automated failover&lt;br /&gt;Part 4 - iSCSI and IP failover&lt;br /&gt;Part 5 - Multipathing and client configuration&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;&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;&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;&gt;&lt;p&gt;global {&lt;br /&gt;}&lt;/p&gt;&lt;p /&gt;&lt;p&gt;resource r0 {&lt;br /&gt;  protocol C;&lt;br /&gt;  incon-degr-cmd &amp;quot;echo &#039;!DRBD! pri on incon-degr&#039; | wall ; sleep 60 ; halt -f&amp;quot;;&lt;br /&gt;&lt;br /&gt;  startup {&lt;br /&gt;    wfc-timeout  0;&lt;br /&gt;  }&lt;/p&gt;&lt;p&gt;  disk {&lt;br /&gt;    on-io-error   detach;&lt;br /&gt;  }&lt;/p&gt;&lt;p /&gt;&lt;p&gt;  net {&lt;br /&gt;    on-disconnect reconnect;&lt;br /&gt;  }&lt;/p&gt;&lt;p /&gt;&lt;p&gt;  syncer {&lt;br /&gt;    rate 30M;&lt;br /&gt;  }&lt;/p&gt;&lt;p /&gt;&lt;p&gt;  on weasel {&lt;br /&gt;    device     /dev/drbd0;&lt;br /&gt;    disk       /dev/md3;&lt;br /&gt;    address    10.0.0.2:7788;&lt;br /&gt;    meta-disk  internal;&lt;br /&gt;  }&lt;/p&gt;&lt;p&gt;  on otter {&lt;br /&gt;    device    /dev/drbd0;&lt;br /&gt;    disk      /dev/md3;&lt;br /&gt;    address   10.0.0.1:7788;&lt;br /&gt;    meta-disk internal;&lt;br /&gt;  }&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/blockquote&gt;&lt;p /&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 &amp;quot;r0&amp;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>0</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;br /&gt;
&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 and NFS SAN using Debian Etch. &lt;/p&gt;&lt;p&gt;The following post takes the form of a &amp;quot;HOWTO&amp;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 href=&quot;http://www.markround.com/archives/44-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-1.html&quot; title=&quot;Part one on building a redundant iSCSI and NFS cluster with Debian&quot;&gt;Overview, network layout and DRBD installation&lt;/a&gt;&lt;br /&gt;Part 2 - &lt;a href=&quot;http://www.markround.com/archives/45-Building-a-redundant-iSCSI-and-NFS-cluster-with-Debian-Part-2.html&quot; title=&quot;DRBD and LVM on a Debian Cluster&quot;&gt;DRBD and LVM&lt;/a&gt;&lt;br /&gt;Part 3 - Heartbeat and automated failover&lt;br /&gt;Part 4 - iSCSI and IP failover&lt;br /&gt;Part 5 - Multipathing and client configuration&lt;br /&gt;Part 6 - Anything left over!&lt;/p&gt;&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;&lt;p&gt;This will be replicated with &lt;a href=&quot;http://www.drbd.org/&quot; title=&quot;Distributed Replicated Block Device&quot;&gt;DRBD&lt;/a&gt;, and managed using &lt;a href=&quot;http://sourceware.org/lvm2/&quot; title=&quot;The Linux Logical Volume Manager&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;&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 &amp;quot;otter&amp;quot; and &amp;quot;weasel&amp;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 &amp;quot;badger&amp;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.1.x - Storage network (where we access the iSCSI and NFS storage)&lt;/li&gt;&lt;/ul&gt;&lt;p /&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;&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;&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 &amp;quot;split-brain&amp;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 &amp;quot;straight-through&amp;quot; connection, and does not rely on any intermediate devices such as a network switch.&lt;/p&gt;&lt;p /&gt;&lt;p&gt;At this point, a diagram might be in order - you&#039;ll have to excuse my &amp;quot;Dia&amp;quot; skills, which are somewhat lacking! &lt;/p&gt;&lt;p /&gt;&lt;p&gt;&lt;img height=&quot;510&quot; width=&quot;592&quot; src=&quot;http://www.markround.com/uploads/cluster.png&quot; style=&quot;border: 0px none ; padding-right: 5px; padding-left: 5px;&quot; class=&quot;serendipity_image_center&quot; /&gt;&lt;/p&gt;&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>
    &lt;br /&gt;
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;&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;br /&gt;
&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;&lt;br /&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>3</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;br /&gt;
&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>2</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>
    &lt;br /&gt;
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;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>
<item>
    <title>ZFS and caching for performance</title>
    <link>http://www.markround.com/archives/35-ZFS-and-caching-for-performance.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/35-ZFS-and-caching-for-performance.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=35</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
I&#039;ve recently been experimenting with ZFS in a production environment, and have discovered some very interesting performance characteristics. I have seen many benchmarks indicating that for general usage, ZFS should be at least as fast if not faster than UFS (&lt;a href=&quot;http://blogs.sun.com/roch/entry/zfs_and_directio&quot; title=&quot;ZFS and DirectIO&quot;&gt;directio&lt;/a&gt; not withstanding), but nothing prepared me for what I discovered in my preliminary benchmarking.&lt;p&gt;&lt;br /&gt;To give a little background :  I have been experiencing really bad throughput on our 3510-based SAN. The hosts are X4100s, 12Gb RAM, 2x dual core 2.6Ghz opterons and Solaris 10 11/06. They are each connected to a 3510FC dual-controller array via a dual-port HBA and 2 Brocade SW200e switches, using MxPIO. All fabric is at 2Gb/s.&lt;/p&gt;&lt;p&gt;So far, pretty straightforward. I had been using &lt;a href=&quot;http://www.iozone.org/&quot; title=&quot;IOZone disk benchmarking tool&quot;&gt;iozone&lt;/a&gt; as my benchmarking tool (using a 512Mb file as that&#039;s the average table size for our databases), and compared a wide range of systems and configurations, from an Ultra 20 with 7200RPM SATA drives, to the X4100&#039;s internal 10K RPM SAS disks as well as LUNs made available from the SAN in a variety of RAID levels.&lt;/p&gt;&lt;p&gt;Some interesting results here, which I&#039;ll skip over for the moment (like the Ultra20 beating the X4100 and SAN in read performance!) - the kicker happens when I added ZFS into the mix as an experiment.&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/35-ZFS-and-caching-for-performance.html#extended&quot;&gt;Continue reading &quot;ZFS and caching for performance&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 29 Mar 2007 21:00:10 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/35-guid.html</guid>
    
</item>
<item>
    <title>Digital Badger</title>
    <link>http://www.markround.com/archives/34-Digital-Badger.html</link>
            <category>Personal</category>
    
    <comments>http://www.markround.com/archives/34-Digital-Badger.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=34</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
I couldn&#039;t resist it. I can&#039;t remember how it came up in conversation, but today the immortal phrase &amp;quot;digital badger&amp;quot; was uttered at work. I overheard it and thought to myself, &amp;quot;Now, &lt;i&gt;there&#039;s&lt;/i&gt; a cool domain name&amp;quot;. I had a look, and sure enough - &lt;a title=&quot;Digital Badger&quot; href=&quot;http://www.digitalbadger.net&quot;&gt;digitalbadger.net&lt;/a&gt; was available. So now it&#039;s mine, all mine! Stupid, but still oh so very cool. However, I do apologise if you stumbled upon this site actually looking for information pertaining to binary mustelids. 
    </content:encoded>

    <pubDate>Thu, 29 Mar 2007 20:15:09 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/34-guid.html</guid>
    
</item>
<item>
    <title>Apache mod_proxy balancing with PHP sticky sessions</title>
    <link>http://www.markround.com/archives/33-Apache-mod_proxy-balancing-with-PHP-sticky-sessions.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/33-Apache-mod_proxy-balancing-with-PHP-sticky-sessions.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=33</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;I&#039;ve been investigating the new improved mod_proxy in Apache 2.2.x for use in our new production environment, and in particular the built-in load balancing support. It was always possible to build a load-balanced proxy server with Apache before, using some mod_rewrite voodoo, but having a whole set of directives that do all the hard work for you is a great feature. &lt;/p&gt;&lt;p&gt;There is however, a catch. It won&#039;t work out of the box with PHP sessions, or many other applications. I&#039;ve since worked out a way around this which enables you to continue using all the great features mod_proxy_balancer offers and still bind requests to an originating server. All you need is a little mod_rewrite magic : Read on for more details...&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/33-Apache-mod_proxy-balancing-with-PHP-sticky-sessions.html#extended&quot;&gt;Continue reading &quot;Apache mod_proxy balancing with PHP sticky sessions&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 27 Oct 2006 11:53:44 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/33-guid.html</guid>
    
</item>
<item>
    <title>Sun V240 to X4100 : AMD vs SPARC</title>
    <link>http://www.markround.com/archives/32-Sun-V240-to-X4100-AMD-vs-SPARC.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/32-Sun-V240-to-X4100-AMD-vs-SPARC.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=32</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt; At work, we just migrated a database server from a Sun Fire V240 to a Sun X4100. This makes it the first AMD64 system we&#039;ve put into production, and the performance advantage is staggering. I could post the benchmarks and various statistics, but I believe the following graphs paint a far more interesting and convincing argument for the price/performance benefit of Sun&#039;s AMD64 offerings...&lt;/p&gt;&lt;p&gt;&lt;b&gt;Before (V240) CPU Utilisation&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img width=&quot;538&quot; hspace=&quot;5&quot; height=&quot;151&quot; border=&quot;0&quot; src=&quot;http://www.markround.com/uploads/v240_utilisation.gif&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;After (X4100) CPU Utilisation&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img width=&quot;544&quot; hspace=&quot;5&quot; height=&quot;154&quot; border=&quot;0&quot; src=&quot;http://www.markround.com/uploads/x4100_utilisation.gif&quot; /&gt;&lt;/p&gt;&lt;p&gt;All told, I&#039;m impressed. The X4100 is ripping through queries at a phenomenal rate and is barely breaking a sweat. The V240 on the other hand was clearly struggling and was maxing out at 100% load. True, it&#039;s not a true like-for-like comparison, as it&#039;s pretty much impossible to do that across different systems and different architectures. But take a look at the price levels of these two systems - the &lt;a title=&quot;V240 pricing options&quot; href=&quot;http://uk.sun.com/catalog/?n-state=http://catalog.sun.com/partpricing.xml?site%3dUNITEDKGB%26catalogue%3dFC%26segment%3dFC_R%26item%3dFC_SC_CAT%26group%3d2010%26fid%3d5118%26id%3d11994~~~G!073318CE9EBA!WBPkexcnEpBE33lB~standard~ws-nocache~~@http://syndicator.sun-catalogue.com/ukunited/unitedkingdomcontext&quot;&gt;V240&lt;/a&gt; came in at around £7,500 for dual 1.5Ghz UltraSPARC IIIi processors, whereas for £4,800 you can get the &lt;a title=&quot;X4100 pricing options&quot; href=&quot;http://uk.sun.com/catalog/?n-state=http://catalog.sun.com/partpricing.xml?site%3dUNITEDKGB%26catalogue%3dFC%26segment%3dFC_R%26item%3dFC_SC_CAT%26group%3d2010%26fid%3d5154%26id%3d13143~~~G!0A8F5A8FF0A6!WBPkexcnEpBE33lB~standard~ws-nocache~~@http://syndicator.sun-catalogue.com/ukunited/unitedkingdomcontext&quot;&gt;X4100&lt;/a&gt; with dual dual-core AMD 285 processors clocked at 2.6Ghz. Frankly, it&#039;s no contest. The only thing you don&#039;t get with the X4100 is another couple of disks which is no big deal as we&#039;ve hooked it up to our SAN. However, even if you want to go for the &lt;a title=&quot;Sun X4200&quot; href=&quot;http://www.sun.com/servers/entry/x4200/&quot;&gt;X4200&lt;/a&gt; which has room inside for 4 internal disks, you&#039;d still only end up paying £5,100.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 14 Aug 2006 22:17:21 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/32-guid.html</guid>
    
</item>
<item>
    <title>PHP 4.4.3 packages now in testing</title>
    <link>http://www.markround.com/archives/31-PHP-4.4.3-packages-now-in-testing.html</link>
            <category>Blastwave</category>
    
    <comments>http://www.markround.com/archives/31-PHP-4.4.3-packages-now-in-testing.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=31</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
Blastwave PHP4 packages are available in &lt;a title=&quot;Blastwave testing directory&quot; href=&quot;http://www.blastwave.org/testing/&quot;&gt;/testing&lt;/a&gt;. These bump PHP4 up to &lt;a title=&quot;Release notes for PHP 4.4.3&quot; href=&quot;http://www.php.net/release_4_4_3.php&quot;&gt;4.4.3&lt;/a&gt;, which is primarily a bug fix and security upgrade. It also fixes an issue with the packaging of the current 4.4.2 packages, which resulted in a non-working PEAR installation due to an error in the upstream source tarball. &lt;p /&gt;&lt;p&gt;I hope to get these packages released to unstable in the next few days - I&#039;ve been running them for a few days here and there appears to be no issues, but as always any other testing or feedback is always appreciated. Make sure you head the warning at the top of the testing page, though!&lt;br /&gt;
&lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 11 Aug 2006 11:13:37 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/31-guid.html</guid>
    
</item>
<item>
    <title>LigHTTPd and Apache - Symfony benchmarks</title>
    <link>http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=30</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;At work, we&#039;re developing a brand new in-house CMS based on the &lt;a title=&quot;Symfony PHP4 framework&quot; href=&quot;http://www.symfony-project.com/&quot;&gt;Symfony framework&lt;/a&gt;. As it uses no mod_rewrite rules or other Apache dependencies and is a &amp;quot;clean break&amp;quot; for us, I figured it would be an ideal candidate for benchmarking under LigHTTPd, comparing it to Apache 2.2 in order to give me some statistics to compliment my &lt;a href=&quot;http://markround.com/archives/29-Migrating-from-Apache-to-Lighttpd.html&quot;&gt;last blog entry&lt;/a&gt; on the subject.&lt;br /&gt; &lt;/p&gt;&lt;p&gt;The results from the &amp;quot;ab&amp;quot; Apache-benchmark tool are pretty stunning - although I&#039;m still at a loss as to explain just why LigHTTPd is so much faster. The configuration of everything apart from the webserver is identical. I&#039;m running on a Sun Ultra 20 with 2Gb of RAM and Solaris 10 01/06. I have a shared document root, and two separately, identically configured zones, one running Apache 2.2.3 with prefork MPM, the other running LigHTTPd. PHP on both is 5.1.4, built using exactly the same compiler (Sun Studio 11) and flags for the Apache 2.2 SAPI and Fast-CGI build. Apache is using PHP loaded as a DSO, whilst LigHTTPd is running PHP through a socket, with 8 pre-forked PHP child processes :&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;fastcgi.server = (&lt;br /&gt;  &amp;quot;.php&amp;quot; =&amp;gt; ((&lt;br /&gt;    &amp;quot;socket&amp;quot; =&amp;gt; &amp;quot;/tmp/php-fastcgi.socket&amp;quot;,&lt;br /&gt;    &amp;quot;bin-path&amp;quot; =&amp;gt; &amp;quot;/usr/local/php/bin/php&amp;quot;,&lt;br /&gt;    &amp;quot;bin-environment&amp;quot; =&amp;gt; (&lt;br /&gt;      &amp;quot;PHP_FCGI_CHILDREN&amp;quot; =&amp;gt; &amp;quot;8&amp;quot;,&lt;br /&gt;      &amp;quot;PHP_FCGI_MAX_REQUESTS&amp;quot; =&amp;gt; &amp;quot;10000&amp;quot;&lt;br /&gt;    ),&lt;br /&gt;&amp;quot;bin-copy-environment&amp;quot; =&amp;gt; (&lt;br /&gt;      &amp;quot;PATH&amp;quot;, &amp;quot;SHELL&amp;quot;, &amp;quot;USER&amp;quot;&lt;br /&gt;    ),&lt;br /&gt;    	&amp;quot;min-procs&amp;quot; =&amp;gt; 1,&lt;br /&gt;        &amp;quot;max-procs&amp;quot; =&amp;gt; 1,&lt;br /&gt;  ))&lt;br /&gt;)&lt;/pre&gt;&lt;/blockquote&gt;&lt;p /&gt;&lt;p&gt;The page in question is just the initial login page to the CMS. There&#039;s no database access at all, so no communication with any system external to the web server. It&#039;s just straight Symfony processing, using the current trunk.&lt;/p&gt;&lt;p&gt;Read on for the results...&lt;br /&gt; &lt;/p&gt;&lt;p /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/30-LigHTTPd-and-Apache-Symfony-benchmarks.html#extended&quot;&gt;Continue reading &quot;LigHTTPd and Apache - Symfony benchmarks&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 04 Aug 2006 13:54:17 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/30-guid.html</guid>
    
</item>
<item>
    <title>Migrating from Apache to Lighttpd</title>
    <link>http://www.markround.com/archives/29-Migrating-from-Apache-to-Lighttpd.html</link>
            <category>Sysadmin</category>
    
    <comments>http://www.markround.com/archives/29-Migrating-from-Apache-to-Lighttpd.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=29</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;&lt;br /&gt;
In my role as a sysadmin, the bulk of the Unix systems I administer are web servers, running the now standard open-source stack of Apache, MySQL and PHP (note that whatever my personal misgivings may be about those elements, they are pretty much the standard now and what&#039;s been mandated at work). If you&#039;re using PHP on Unix, it&#039;s pretty much taken for granted that you&#039;ll be running it through Apache via mod_php. In fact, it almost goes without syaing that if you&#039;re doing any kind of webserving on Unix at all, you&#039;ll most likely be using Apache. It&#039;s a setup that has perfomed well in each instance I&#039;ve deployed it - from small personal sites and development systems, to the large high-traffic sites I&#039;m responsible for at work. It&#039;s free, robust, and above all well documented.&lt;/p&gt;&lt;p&gt;So why am I now seriously considering ditching Apache ? One word :&lt;a href=&quot;http://www.lighttpd.net&quot; title=&quot;Lighttpd web server&quot;&gt;LigHTTPd&lt;/a&gt;. I&#039;d been hearing a lot recently about this webserver, including the usual foaming at the mouth advocacy from the Ruby-On-Rails crowd - but more interestingly and certainly more pertinant to my circumstances, were the &lt;a href=&quot;http://weblog.textdrive.com/article/44/taking-a-full-frontal-slashdot-lighttpdly&quot; title=&quot;TextDrive benchmark lighttpd&quot;&gt;glowing reports&lt;/a&gt; of people running PHP through it. So, over the last few days I&#039;ve been experimenting with it, culminating with moving all sites on this webserver (including my blog) over to Lighttpd. To put it mildly, I&#039;ve been blown away. It&#039;s been a long time since I was this impressed with a piece of software, let alone something as apparently mundane as a webserver.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/29-Migrating-from-Apache-to-Lighttpd.html#extended&quot;&gt;Continue reading &quot;Migrating from Apache to Lighttpd&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 20 Jul 2006 14:09:45 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/29-guid.html</guid>
    
</item>
<item>
    <title>Introduction to tablature</title>
    <link>http://www.markround.com/archives/25-Introduction-to-tablature.html</link>
            <category>Guitar</category>
    
    <comments>http://www.markround.com/archives/25-Introduction-to-tablature.html#comments</comments>
    <wfw:comment>http://www.markround.com/wfwcomment.php?cid=25</wfw:comment>

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

    <author>nospam@example.com (Mark Round)</author>
    <content:encoded>
    &lt;br /&gt;
&lt;p&gt;Before we go much further, I&#039;ll briefly cover guitar tablature. I&#039;ll be transcribing exercises and showing you various chord shapes throughout the forthcoming lessons, so I need some way of imparting the information on where you put your fingers. &lt;/p&gt;&lt;p&gt;Now, I can&#039;t read traditional sheet music to save my life (which, I&#039;ll freely admit is a real hinderance) but fortunately, most guitarists prefer to read &lt;i&gt;&lt;b&gt;tablature &lt;/b&gt;&lt;/i&gt;or &amp;quot;tab&amp;quot; instead. This is a simple system of notation, where instead of showing notes on a musical staff, it depicts fret numbers on strings. The advantages of this approach are obvious - you can start reading the notation straight away, and it shows you exactly where to put your fingers. As we&#039;ll see later, you can play the same note in several positions on the guitar neck, so tablature removes this confusion. In addition to all this, symbols can also be added to show guitar&lt;br /&gt;
specific techniques such as slides, bends, muting and much more.&lt;br /&gt;&lt;br /&gt;The drawback is that you can&#039;t show the rhythm of a piece of music - you can only show the pitch. This means that a piece of tablature on it&#039;s own is largely useless; you have to either know the tune or have some additional means of working out the timing, such as showing the tablature alongside traditional notation. This is the approach taken by most guitar magazines. In the case of these lessons, I&#039;ll place a link under each piece of tablature you see - when you click on it, it will link to a MP3 sample of the tab being played. That way you&#039;ll be able to hear what you should be playing, and follow it along on screen.&lt;/p&gt;&lt;p /&gt;&lt;p /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.markround.com/archives/25-Introduction-to-tablature.html#extended&quot;&gt;Continue reading &quot;Introduction to tablature&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 26 Jun 2006 10:01:53 +0100</pubDate>
    <guid isPermaLink="false">http://www.markround.com/archives/25-guid.html</guid>
    
</item>

</channel>
</rss>