<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed 
   xmlns="http://www.w3.org/2005/Atom"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    
    <link href="http://www.markround.com/feeds/atom10.xml" rel="self" title="Mark's blog" type="application/atom+xml" />
    <link href="http://www.markround.com/"                        rel="alternate"    title="Mark's blog" type="text/html" />
    <link href="http://www.markround.com/rss.php?version=2.0"     rel="alternate"    title="Mark's blog" type="application/rss+xml" />
    <title type="html">Mark's blog</title>
    <subtitle type="html">Solaris, Linux, BSD and other techie things...</subtitle>
    <icon>http://www.markround.com/templates/default/img/s9y_banner_small.png</icon>
    <id>http://www.markround.com/</id>
    <updated>2011-08-16T13:39:04Z</updated>
    <generator uri="http://www.s9y.org/" version="1.5.5">Serendipity 1.5.5 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>

    <entry>
        <link href="http://www.markround.com/archives/56-Dell-MD3000i.html" rel="alternate" title="Dell MD3000i" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2009-09-14T11:08:59Z</published>
        <updated>2011-08-16T13:39:04Z</updated>
        <wfw:comment>http://www.markround.com/wfwcomment.php?cid=56</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.markround.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=56</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/56-guid.html</id>
        <title type="html">Dell MD3000i</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I've just got a new array to play with at work for a small Xen
virtualisation setup. It's the Dell MD3000i, which I've seen a few posts about before but though I'd chime in with my experiences. It is a budget array, but I have to say for
the price it's not a bad bit of kit.<br /> <br />
We've got it configured with dual controllers, 8x300Gb and 7x146GB 15k
SAS drives. Throughput is around GigE wire speed - 110MB/s for both
reads and writes. I'm also seeing a respectable IOPS figure depending
on workloads: During an iozone run, I could see it sustaining around
1.5k IOPS.<br /> <br />
True, the management features fall a little short when compared to the usual Sun and
HP storage kit I'm used to, but it does the job. My main gripes are :<br /> 
<ul> 
<li>No built in graphing (seriously, Dell - WTF?), but you can do it from the CLI - see <a title="MD3000i performance monitoring" href="http://www.delltechcenter.com/page/MD3000i+Performance+Monitoring">here</a>.<br /> </li> 
<li>Can't resize or change the I/O profile of a virtual disk once
it's setup. This is a real pain, so make sure you set things up correctly
the first time! You can however change the RAID level of a disk group
once it's been created.<br /> </li> 
<li>You need a Windows or RHEL box to run the administration GUI
on - I'm sure you can probably hack a way to get the CLI running under
Debian, but I haven't tried. You're probably straight out of luck if you want to run it
on anything else like Solaris.  </li> 
<li>Can't mix SAS and SATA in the same enclosure. The controllers
do support SATA as well as SAS, although SATA drives don't show up as
options in the Dell pricing configuration thingy. Our account manager
advised us that although technically you can mix SAS and SATA in the
same enclosure, they'd experienced a higher than average number of disk
failures in that configuration, due to the vibration patterns created
by disks spinning at different rates (15K SAS and 7.2K SATA). If you
need to mix the two types, your only real option is to attach a MD1000
array to the back (you can add up to two of these) and have each
chassis filled with just one type of drive.<br /> </li> 
</ul> 
<p>  
The hardware failover works nicely - the array is active/passive for
each virtual disk, as both controllers are typically active, each
handling separate virtual disks for load-balancing purposes. When a
controller fails, the remaining &quot;good&quot; controller takes over the
virtual disks or disk groups from the failed controller. Failback is
pretty transparent - the GUI guides you through the steps, but I found
that simply inserting a replacement HD/Controller/etc. just did the job
automagically.<br /> <br />
Multipath support under RHEL/CentOS with multipath-tools (dm-multipath) works fine with some tweaking - it
uses the RDAC modules which lead to some oddness on CentOS 5.3. What
tends to happen is that the first time device mapper picks up the
paths, RDAC doesn't get a chance to initialise things properly
(scsi_dh_rdac module isn't loaded) so you end up with all sorts of SCSI
errors showing up in your logs. After flushing your paths (multipath
-F) and restarting multipathd, things are OK. This is <a href="https://bugzilla.redhat.com/show_bug.cgi?id=487293" title="MD3000i in RHEL 5.4">apparently fixed
in RHEL 5.4</a>, so should make it's way out to CentOS from there. I'm unsure what the status is on other distros, though. </p> 
<p> It also works great with <a title="Xenserver Review" href="http://www.markround.com/archives/63-Citrix-XenServer-5.6-Review.html">Citrix Xenserver</a>, although you have to use 
MPP-RDAC instead of DM-Multipath due to performance issues with the 
latter.<br /> <br />
My multipath.conf contains the following :<br /> </p> 
<div class="bbc-block code"> 
<pre>devices {
        device {
                vendor "DELL"
                product "MD3000i"
                product_blacklist "Universal Xport"
                path_grouping_policy group_by_prio
                getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
                path_checker rdac
                prio_callout "/sbin/mpath_prio_rdac /dev/%n"
                hardware_handler "1 rdac"
                failback immediate
        }
}
</pre> 
</div>And with everything working, multipath -ll shows :<br /> 
<div class="bbc-block code"> 
<pre>360026b90002ab6f40000056a4aa9e87b dm-12 DELL,MD3000i
[size=409G][features=0][hwhandler=1 rdac][rw]
_ round-robin 0 [prio=200][active]
 _ 21:0:0:1  sdi 8:128 [active][ready]
 _ 22:0:0:1  sdj 8:144 [active][ready]
_ round-robin 0 [prio=0][enabled]
 _ 20:0:0:1  sdg 8:96  [active][ghost]
 _ 23:0:0:1  sdh 8:112 [active][ghost] 
</pre> 
</div> 
<p><strong>Update:</strong> It looks like the admin tool and SMcli are just shell
script wrappers that run Java apps. I tried a quick'n'dirty hack of installing
everything under RHEL, tarring up /opt/dell and /var/opt/SM and then
transferring them over to a Debian Lenny host. All I had to change was
the #!/bin/sh to #!/bin/bash at the top of the SMcli and SMclient
wrappers, and they seem to work. I haven't put them through any serious
testing though...</p> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.markround.com/archives/52-Cracking-dictionary-passwords.html" rel="alternate" title="Cracking dictionary passwords" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2009-04-17T14:22:33Z</published>
        <updated>2011-08-05T11:34:35Z</updated>
        <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=atom1.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/52-guid.html</id>
        <title type="html">Cracking dictionary passwords</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>I was talking a few days ago, and the subject of password security came up. Now, we all know that we're supposed to pick a secure password, use at least 8 characters and never to pick a word from the dictionary. But then I was 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.</p> 
<p>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 :</p>
<pre>#!/bin/bash
TARGET_HASH=$1
while read WORD; do
&#160;&#160;&#160;&#160;&#160;&#160;&#160; WORD_HASH=$(echo $WORD | md5sum | awk '{print $1}')
&#160;&#160;&#160;&#160;&#160;&#160;&#160; if [ "$WORD_HASH" == "$TARGET_HASH" ]; then
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo "Found match!"
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo "Password is : $WORD"
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; exit
&#160;&#160;&#160;&#160;&#160;&#160;&#160; fi
done &lt; /usr/share/dict/words</pre> 
<p>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'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'm sure it would be faster by an order of magnitude.</p> 
<p>But anyway, on to the test - I created a MD5 phrase for it to crack, and timed it :</p>
<pre># time ./crack.sh 3a783fb2aa3a2318499f0a60d7ef6078
Found match!
Password is : hedgehog</pre>
<pre>real&#160;&#160;&#160; 8m43.432s
user&#160;&#160;&#160; 1m48.410s
sys&#160;&#160;&#160;&#160; 8m27.030s</pre> 
<p>Not bad - just under 9 minutes. Obviously, that'd take longer if I used a word starting with &quot;x&quot; or &quot;z&quot;!&#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 :</p>
<pre>while read WORD; do echo "$WORD:$(echo $WORD | md5sum | awk '{print $1}')"; done &lt; /usr/share/dict/words&#160; &gt; md5.txt</pre> 
<p>Obviously, I could then generate compiled dictionary files for each hashing algorithm I wanted to crack (assuming that they are non-Salted algorithms).&#160; This took around 30 minutes, but now I don'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 :</p>
<pre># time grep ac23b37db0039dda62896bb21f312755 md5.txt | cut -d':' -f1
aardvark</pre>
<pre>real&#160;&#160;&#160; 0m0.019s
user&#160;&#160;&#160; 0m0.008s
sys&#160;&#160;&#160;&#160; 0m0.011s</pre>
<pre># time grep 981fe627ab4906b677ce9d3e6eff499f md5.txt | cut -d':' -f1
zoology</pre>
<pre>real&#160;&#160;&#160; 0m0.019s
user&#160;&#160;&#160; 0m0.006s
sys&#160;&#160;&#160;&#160; 0m0.014s</pre> 
<p>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.</p> 
<p><br /> </p> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.markround.com/archives/63-Citrix-XenServer-5.6-Review.html" rel="alternate" title="Citrix XenServer 5.6 Review" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2010-09-23T15:44:28Z</published>
        <updated>2011-05-18T16:04:56Z</updated>
        <wfw:comment>http://www.markround.com/wfwcomment.php?cid=63</wfw:comment>
    
        <slash:comments>10</slash:comments>
        <wfw:commentRss>http://www.markround.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/63-guid.html</id>
        <title type="html">Citrix XenServer 5.6 Review</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <h2>Introduction</h2> 
<p>I've been using and evaluating <a title="Citrix Xenserver product page" href="http://www.citrix.com/xenserver">Citrix XenServer</a> now for a while, and felt I should really post a review. I haven't seen much detailed coverage of this product at the level I'm interested in, so what follows is my take on it from a Unix Sysadmin's perspective. There won't be any funky screenshots or graphics; instead, I tried to cover the sort of things I wanted to know about when I was looking at it as a candidate for our virtualization solution at work. &#160;<br /><br />After all, implementing a new hypervisor is a big step, and a decision that you'll likely be stuck with for a long time. If there's anything else you'd like to know, just post in the comments section and I'll do my best to answer.<br /><br />As some background: I've been using the open source Xen hypervisor as a virtualization platform, alongside VMware for Windows hosts for a good few years now at work. Part of the reason for picking Xen was that it was the standard on the systems I inherited, and also it was free and well-supported on most Linux distributions at the time. To date, I have been using <a title="CentOS Linux Distribution" href="http://www.centos.org/">CentOS</a> as a Dom0 - as it's a free &quot;clone&quot; of Red Hat Enterprise Linux, it follows the same support schedules (up to 2014 for RHEL/CentOS 5.x) and is supported by pretty much every hardware vendor out there. It also has the <a title="Libvirt Virtualization API" href="http://libvirt.org/">libvirt</a> tools built into it, as well as up to date packages for storage infrastructure such as <a title="DRBD replication" href="http://www.drbd.org/">DRBD</a> and <a title="Open-iSCSI project" href="http://www.open-iscsi.org/">open-iscsi</a>. It's well supported, and even though it is a conservative &quot;stable&quot; distro, point releases occur regularly with back-ported drivers and user-land updates.<br /><br />With some work, you can roll your own management tools and scripts, and end up with a very flexible solution. However, it lacks some management ease of use, particularly for other systems administrators who may not be totally comfortable in a Linux environment. We also wanted to standardise on one virtualization platform if possible, and this all coincided nicely with a planned upgrade/migration off the VMware stack.<br /><br />XenServer therefore presents a very attractive proposition: A well known, widely tested and supported open source hypervisor, with a superior management stack. The basic product is free, although support and enterprise features are available for a price. The prices for the advanced features are very reasonable, all the more so when you compare against VMware's offerings. Also consider that the free product allows you to connect to a wide range of networked storage systems and includes live migration, something that the free&#160;<a title="ESXi" href="http://www.vmware.com/products/vsphere-hypervisor/index.html">ESXi</a> doesn't offer.<br /><br />All of what follows covers the freely downloadable XenServer 5.6; Both <a title="Dell and XenServer" href="http://content.dell.com/us/en/enterprise/d/virtualization/CitrixXenServerDellEditionVirtualizationforeveryserver.aspx">Dell</a> and <a title="HP and XenServer" href="http://h18000.www1.hp.com/products/servers/software/citrix/virtualization/index.html">HP</a> offer embedded versions for some of their servers, however running and managing these systems should be near enough identical apart from the installation steps. </p> 
<p><strong>Update :</strong> Just after writing this, the beta of &quot;FP1&quot; (an update to XenServer 5.6) was <a title="XenServer beta announcement" href="http://www.citrix.com/lang/English/lp/lp_1340047.asp">announced</a>. Full details of what will be in this update are <a title="FP1 release notes" href="http://downloadns.citrix.com.edgesuite.net/akdlm/5305/XenServer-5.6.0-fp1-beta-releasenotes.htm">here</a>&#160;in the release notes. It looks like there will be plenty of significant improvements across all areas (including MPP RDAC, scheduled backups, supported jumbo frames, on-line coalescing of snapshot&#160;space&#160;and various other things of particular interest to me). Bear in mind when reading this review, that many of the little issues I have with XenServer may well be resolved in the upcoming version, and other areas may be totally overhauled. As soon as the final version is released I'll post a full update...</p> 
<p><strong>Update 2 :</strong> FP1 is indeed a big improvement. I've been using it in production now for a few months and should have an update soon, covering the new features such as the distributed switch, self-service portal etc. <br /></p> 
<p>Click the &quot;Continue reading&quot; link for the full review. </p> <br /><a href="http://www.markround.com/archives/63-Citrix-XenServer-5.6-Review.html#extended">Continue reading "Citrix XenServer 5.6 Review"</a>
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.markround.com/archives/61-Xenserver-snapshot-and-template-based-backup-script.html" rel="alternate" title="Xenserver snapshot and template based backup script" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2010-08-17T13:24:14Z</published>
        <updated>2011-05-18T11:40:36Z</updated>
        <wfw:comment>http://www.markround.com/wfwcomment.php?cid=61</wfw:comment>
    
        <slash:comments>18</slash:comments>
        <wfw:commentRss>http://www.markround.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=61</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/61-guid.html</id>
        <title type="html">Xenserver snapshot and template based backup script</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
We have recently started using <a href="http://www.citrix.com/English/ps2/products/product.asp?contentID=683148" title="Citrix Xenserver">Citrix Xenserver</a> in production at work (fantastic product, see <a href="http://www.markround.com/archives/63-Citrix-XenServer-5.6-Review.html" title="Citrix XenServer Review">my review </a>for more information) and needed a simple backup solution. Our VMs run from an iSCSI SAN and are backed up daily through various methods - e.g. <a href="http://www.bacula.org/en/" title="Bacula backup system">Bacula</a> for the Unix/Linux systems. However, we wanted the ability to quickly roll back to a previous VM snapshot, and get up and running quickly if our SAN failed for whatever reason. Our solution was to create a large shared NFS storage repository, and periodically snapshot VMs and copy the templates over to this SR. Doing this means that if the SAN fails, we can create a new VM quickly from this NFS store (using the Xenserver's local disks, or even the NFS SR itself as storage). Once up and running, we can bring VMs back up to date by restoring the latest backup to them. <br /><br />In order to automate this, I wrote a quick script which I thought may prove useful to someone else, so decided to post it here : <a href="http://www.markround.com/static/snapback.sh" title="Xenserver snapshot and template backup script">snapback.sh</a>.</p> 
<p><strong>Update:</strong> This script is now being hosted at <a href="https://github.com/markround/XenServer-snapshot-backup">GitHub</a>. This means you can check out the latest version from there, by doing :</p> 
<p> </p> 
<pre>git clone https://github.com/markround/XenServer-snapshot-backup.git</pre> 
<p>or accessing the raw script file at&#160;<a href="https://github.com/markround/XenServer-snapshot-backup/raw/master/snapback.sh">https://github.com/markround/XenServer-snapshot-backup/raw/master/snapback.sh</a></p> 
<p> </p> 
<p>It is very simple, and although it may serve well as your only backup solution, it's really intended as an image-level compliment to your primary file-system based backup system such as Bacula, Amanda, Netbackup etc. It also has not had much testing, and I fully appreciate the scripting is pretty rudimentary and could do with some optimisation - there's no error checking, for instance. I kept it pretty verbose on purpose though, so you can get a good idea of exactly what it's doing at each step; it may be better to think of this as a template you can base your own scripts off!<br /> </p> 
<h2>Overview</h2> 
<p>The script creates a snapshot of a running VM on a configurable schedule, and then creates a template from this snapshot. It will copy all these backup templates over to a configurable storage repository, and then clean up any old backups according to a specified retention policy. These backups are full backups, so if you have a 10GB VM and keep 7 previous copies you will need a total of 80GB disk space on your backup VM. Non-running VMs, and those not configured (as detailed below) will be skipped.</p> 
<p><strong>Important</strong>: See <a href="http://support.citrix.com/article/CTX123400">http://support.citrix.com/article/CTX123400</a>.&#160;After backing up each VM, you will end up with a new VDI, so you may need to manually coalesce your VDIs again to reclaim disk space.</p> 
<h2>Installation and usage</h2>First, copy the script to your Xenserver pool master, and make it executable. A good location for this is /usr/local/bin/snapback.sh.<br /><br />Next, create a cron entry for the script - to make it run daily just after 1AM, you'd create /etc/cron.d/backup with the following contents :<br /> 
<pre>2 1 * * * root /usr/local/bin/snapback.sh &gt; /var/log/snapback.log 2&gt;&amp;1</pre> 
<p>This will also record a log of it's actions to /var/log/snapback.log. You now need to edit the script and change the <strong>DEST_SR</strong> variable to the UUID of your backup storage repository. You can find this value by clicking on the SR in Xencenter; the UUID will be displayed as a value like &quot;2c01dc26-f525-70d6-dedf-00baaec76645&quot;.<br /><br />Lastly, you need to configure your backup and retention policy for your VMs. In Xencenter, right click your VM, and select &quot;Properties&quot;. Click on &quot;Custom Fields&quot;, and then &quot;Edit Custom Fields&quot;. You should add two text fields :<br /></p> 
<ul> 
<li><strong>backup</strong> : Can be one of &quot;daily&quot;, &quot;weekly&quot;, or &quot;monthly&quot;. If it is set to weekly, it will by default run on a Sunday, and if it set to monthly, it will run on the first Sunday of the month. This day can be changed at the top of the script - see the <strong>WEEKLY_ON</strong> and <strong>MONTHLY_ON</strong> variables. </li> 
<li><strong>retain</strong> : How many previous backups (in addition to the currently running backup) to keep. So, setting this to a value of &quot;2&quot; would mean that after a backup has run, you would end up with 3 backups in total. </li> 
</ul> 
<div style="width: 321px;" class="serendipity_imageComment_center"> 
<div class="serendipity_imageComment_img"><!-- s9ymdb:76 --><img height="289" width="321" src="http://www.markround.com/uploads/uploads/newfield.png" alt="Adding a custom field" title="Adding a custom field" class="serendipity_image_center" /></div> 
<div class="serendipity_imageComment_txt">Adding a custom field</div> 
</div> 
<p>The script will look for these fields when it is run, and will skip any VM that doesn't have them set. You can also see them in the Xencenter summary and properties for the VM : </p> 
<div style="width: 220px;" class="serendipity_imageComment_center"> 
<div class="serendipity_imageComment_img"><a href="http://www.markround.com/uploads/uploads/summary.png" title="VM summary showing the custom fields" class="serendipity_image_link"><!-- s9ymdb:78 --><img height="105" width="220" src="http://www.markround.com/uploads/uploads/summary.serendipityThumb.png" alt="VM summary showing the custom fields" title="VM summary showing the custom fields" class="serendipity_image_center" /></a></div> 
<div class="serendipity_imageComment_txt">VM summary showing the custom fields</div> 
</div> 
<p>You can now either run the script manually, or wait until the cron job kicks off. It will produce a detailed log to the console (or log file if run through cron), and when it's finished, you'll see your template backup VMs listed in Xencenter, similar to this :</p> 
<div style="width: 187px;" class="serendipity_imageComment_center"> 
<div class="serendipity_imageComment_img"><!-- s9ymdb:77 --><img height="37" width="187" src="http://www.markround.com/uploads/uploads/backups.png" alt="Backups listed in Xencenter" title="Backups listed in Xencenter" class="serendipity_image_center" /></div> 
<div class="serendipity_imageComment_txt">Backups listed in Xencenter</div> 
</div><br />If you find that this clutters up the Xencenter view a little, you can always hide them (View-&gt;Server View-&gt;Custom Templates). To restore a VM from a backup, just right click, and choose &quot;New template from backup&quot;. Anyway, I hope this helps someone else!<br /><br /> 
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.markround.com/archives/48-Linux,-Solaris-and-FreeBSD-iostat-monitoring-with-Cacti.html" rel="alternate" title="Linux, Solaris and FreeBSD iostat monitoring with Cacti" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2008-10-15T10:02:31Z</published>
        <updated>2011-03-10T15:27:13Z</updated>
        <wfw:comment>http://www.markround.com/wfwcomment.php?cid=48</wfw:comment>
    
        <slash:comments>84</slash:comments>
        <wfw:commentRss>http://www.markround.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=48</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/48-guid.html</id>
        <title type="html">Linux, Solaris and FreeBSD iostat monitoring with Cacti</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>I've been looking for ages for a tool to parse the output from &quot;iostat&quot; on Linux, and graph it in <a href="http://www.cacti.net" title="Cacti monitoring tool">Cacti</a>. 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've posted the package archive and a brief description over on the <a href="http://forums.cacti.net/viewtopic.php?t=29426" title="iostat cacti templates">Cacti forums</a> (click <a href="http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#extended">Continue Reading</a> for a download link to an updated version - the one on the Cacti forums has a bug so that it won'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's also a few more samples posted in the Cacti forums thread :<!-- s9ymdb:49 --></p> 
<div class="serendipity_imageComment_center" style="width: 595px; "> 
<div class="serendipity_imageComment_img"><!-- s9ymdb:49 --><img width="595" height="245" src="http://www.markround.com/uploads/bytes_sec.png" class="serendipity_image_center" /></div> 
<div class="serendipity_imageComment_txt">Displaying iostat's kB/s data source.</div> 
</div> 
<div class="serendipity_imageComment_center" style="width: 595px; "> 
<div class="serendipity_imageComment_img"><!-- s9ymdb:50 --><img width="595" height="233" src="http://www.markround.com/uploads/times.png" class="serendipity_image_center" /></div> 
<div class="serendipity_imageComment_txt">Timing information from iostat (average wait and service time)</div> 
</div> 
<p> </p> 
<p>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 <a href="http://www.markround.com/archives/48-Linux-iostat-monitoring-with-Cacti.html#extended" title="Linux iostat monitoring with Cacti - README">Continue Reading</a> link to see them), but if you have any comments, suggestions or problems please let me know! </p> 
<p> </p> 
<p> </p> <br /><a href="http://www.markround.com/archives/48-Linux,-Solaris-and-FreeBSD-iostat-monitoring-with-Cacti.html#extended">Continue reading "Linux, Solaris and FreeBSD iostat monitoring with Cacti"</a>
            </div>
        </content>
        
    </entry>
    <entry>
        <link href="http://www.markround.com/archives/13-Nessus-3.0-released.html" rel="alternate" title="Nessus 3.0 released" />
        <author>
            <name>Mark Round</name>
                    </author>
    
        <published>2005-12-13T11:04:08Z</published>
        <updated>2010-10-06T11:23:41Z</updated>
        <wfw:comment>http://www.markround.com/wfwcomment.php?cid=13</wfw:comment>
    
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.markround.com/rss.php?version=atom1.0&amp;type=comments&amp;cid=13</wfw:commentRss>
    
            <category scheme="http://www.markround.com/categories/3-Sysadmin" label="Sysadmin" term="Sysadmin" />
    
        <id>http://www.markround.com/archives/13-guid.html</id>
        <title type="html">Nessus 3.0 released</title>
        <content type="xhtml" xml:base="http://www.markround.com/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>
While I've been preparing an update to the 2.2.6 <a href="http://www.blastwave.org">Blastwave</a> packages of nessus, Teneable <a href="http://home.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20051212005715&amp;newsLang=en">just released</a> their new 3.0 package - offering a whole host of enhancements including a very funky looking RSS feed for plugin updating, and major performance improvements to name just two. Except this time, I'm not doing my usual w00t-dance, and I won't be packaging it, or even running it, for that matter.

</p>
<p>The reason being that Tenable chose to make this version closed source. Now, that's all well and good and they're obviously well within their rights to do so. But as with so many closed source products (Zend, I'm looking at you), it's released for Linux/x86 first (although FreeBSD packages are also available), and everything else takes a back seat until some unspecified time in the future. It it is this ramification of the license change that I find most infuriating. It wouldn't perhaps be so bad if Tenable could guarantee that all platforms would have binaries available for them - but this means they're leaving a large section of their userbase out in the cold. And woe betide you if you're running anything they consider really obscure or not worth supporting. Even something like Solaris/x86 is frequently ignored, and I can't begin to imagine what people running something like NetBSD on Alpha must have to contend with... 

</p>
<p>With the open source model (take MySQL as an example), you can get the source code, and can be pretty sure that you can build it on pretty much any platform you want. MySQL runs on most platforms - from Unix to Windows, OpenVMS to Linux/S390. If it doesn't run on your chosen platform, or the developers don't have access to the relevant development environment, you can hack it yourself and contribute patches back to the community. 

Once the source is closed, that option is gone forever. You're then totally dependant on the developer to continue supporting your platform. You also, by extension, have to hope they never go out of business, especially if their product incorporates some sort of time-locked licensing! If they wake up one morning and decide that it's no longer economically viable to continue building their product for your platform, you're screwed. </p>
<p>Never mind that you may have built your entire infrastructure around a certain technology, and it's not economically viable for <em>you</em> to jump ship to whatever the flavour of the month is; if you want to continue running closed source product X, you have to dance to the beat of the developers' drum.

It's for precisely this reason that I was so glad to see Sun open up Solaris (SPARC has been an open architecture for a long while now, so that's never been an issue). Yeah, the community Sun has built up around it is fantastic, as is the ability to get a sneak preview of all the latest features and <a href="http://cvs.opensolaris.org/source/xref/on/usr/src/">browse the code</a> yourself. But it now means that whatever happens to Sun (although I seriously doubt they're going anywhere anytime soon), our investment is secure. 

So, I'm sorry that Tenable felt they had no other option than to close the source of Nessus - but I for one look forward to the continued development of the <a href="http://www.openvas.org/doku.php?id=">forked GPL version</a>. As soon as there is code released, there will be Blastwave packages...</p> 
            </div>
        </content>
        
    </entry>

</feed>
