<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bashton Blog</title>
	<atom:link href="http://blog.bashton.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bashton.com</link>
	<description>Bashton Ltd</description>
	<lastBuildDate>Fri, 17 Feb 2012 15:06:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to make your own CentOS 6 AMIs</title>
		<link>http://blog.bashton.com/2012/how-to-make-your-own-centos-6-amis/</link>
		<comments>http://blog.bashton.com/2012/how-to-make-your-own-centos-6-amis/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 13:58:17 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[amazon ec2]]></category>
		<category><![CDATA[aws]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=1101</guid>
		<description><![CDATA[I had a pretty good response to the AMIs posted a couple of days ago. Here&#8217;s how I made them. Firstly, a word on security. I&#8217;ve been careful to ensure that there&#8217;s no trace of my machines or public keys on these images by not adding them in the first place. Many of the CentOS [...]]]></description>
			<content:encoded><![CDATA[<p>I had a pretty good response to the AMIs posted a couple of days ago.  Here&#8217;s how I made them.</p>
<p>Firstly, a word on security.  I&#8217;ve been careful to ensure that there&#8217;s no trace of my machines or public keys on these images by not adding them in the first place.  Many of the CentOS AMIs I tried out had entries in the last log from previous logins, and some even had root passwords set.  Using the kickstart file I created, the root account on the machine is locked and no password based logins are allowed over SSH.</p>
<p>Anyway, here&#8217;s what I did:</p>
<h2>Create suitable packages</h2>
<p>An AMI isn&#8217;t so useful without cloud-init, so I rebuilt it for el6.  I also rebuilt ec2-ami-tools, modifying the udev script so that devices appear where they&#8217;re supposed to.  Without it, a drive specified as sda will appear as sde, because the EL6 Xen kernel reserves the first four drive letters.  If you&#8217;re interested, take a look at <a href="http://bashton.com/downloads/centos-ami/SRPMS/">the SRPMs</a>.</p>
<h2>Create the instance-store image</h2>
<h3>Install the image</h3>
<p>I did this on a remote machine I had handy running Xen, although there&#8217;s no reason you couldn&#8217;t do this on a local machine with KVM &#8211; there&#8217;s no separate -xen kernel with EL6, Xen is fully merged in.  I used a remote machine because it was in a data centre with a very speedy Internet connection, something that&#8217;s very useful when you&#8217;re going to be uploading large images.  </p>
<p>I created the image as 5GB.  You can use any size you like from 1GB-10GB for an instance store image, but remember that the large it is, the longer it&#8217;ll take to start the machine.  Plus you&#8217;ll be using ephemeral or EBS storage for data on the machine anwyay.<br />
I created a kickstart file which installs the image and carries out the necessary modifications.  Specifically it sorts out networking by removing mac addresses from the ifcfg-eth0 file and udev, labels the partition and fixes the fstab, and modifies the grub config.  Anyway, enough of the chat, on with the install:</p>
<p><code>$ sudo virt-install -n "centos-ami" -r 1024 --nographics -l http://mirrors.melbourne.co.uk/centos/6/os/x86_64/ -x "ks=http://bashton.com/downloads/centos-ami/ami-kickstart.cfg" -f /dev/dsk/centosami --noreboot</code></p>
<h3>Select a suitable kernel</h3>
<p>We&#8217;re going to be using the EL6 kernel within the image, so we use the &#8216;PV Grub&#8217; loader within Amazon to boot this.<br />
You can find a suitable kernel by running:</p>
<p><code>$ ec2-describe-images -a  -F image-type=kernel -F manifest-location=*pv-grub*</code></p>
<p>For instance store images, use an image tagged hd0.  For EBS backed images, use an image tagged hd00.  Note that the Amazon Kernel Images (AKIs) are region specific.</p>
<h3>Bundle the image and upload the image to S3</h3>
<p>We need to expose the first (and only) partition of the image:</p>
<p><code>$ kpartx -a /dev/dsk/centosami</code></p>
<p>Now we bundle this into an image using the kernel we selected above.  This will write the image files into ~bundle</p>
<p><code>$ ec2-bundle-image -r x86_64 -d ~/bundle -p myimagename -u 561795456677  -k ~/amazonkey.pem --kernel aki-825ea7eb -c amazoncert.pem --image /dev/mapper/centosamip1</code></p>
<p>Now we upload it to a S3 bucket:</p>
<p><code>$ ec2-upload-bundle -b mybucketname -m ~/bundle/myimagename.manifest.xml -a S3_ACCESS_KEY -s S3_SECRET</code></p>
<p>And register it as an AMI:</p>
<p><code>$ ec2-register mybucketname/myimagename.manifest.xml</code></p>
<h2>Create the EBS backed image</h2>
<p>We need an EC2 instance to write to the EBS volume, so spin one up.  This can use the instance store AMI you created in step 1, but it doesn&#8217;t have to.</p>
<h3>Create a volume and attach</h3>
<p>Again, I&#8217;m creating an EBS image of 5GB.  You can create EBS root images of up to 100GB, so do whatever suits you.<br />
Make sure you create the volume in the same availability zone as the EC2 instance you just started up.</p>
<p><code>$ ec2-create-volume -s 5 -z eu-west-1a<br />
$ ec2-attach-volume vol-abcdwxyz -i i-1234abcd -d sdg</code></p>
<h3>Partition and format the volume</h3>
<p>We&#8217;re going to create two partitions, a root and a small swap.  The small swap is useful on t1.micro instances, where there is no ephemeral storage.</p>
<p><code>$ fdisk /dev/sdg<br />
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel<br />
Building a new DOS disklabel with disk identifier 0xd94fa889.<br />
Changes will remain in memory only, until you decide to write them.<br />
After that, of course, the previous content won't be recoverable.</p>
<p>Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)</p>
<p>WARNING: DOS-compatible mode is deprecated. It's strongly recommended to<br />
         switch off the mode (command 'c') and change display units to<br />
         sectors (command 'u').</p>
<p>Command (m for help): p</p>
<p>Disk /dev/sdg: 5368 MB, 5368709120 bytes<br />
255 heads, 63 sectors/track, 652 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0xd94fa889</p>
<p>   Device Boot      Start         End      Blocks   Id  System</p>
<p>Command (m for help): n<br />
Command action<br />
   e   extended<br />
   p   primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-652, default 1):<br />
Using default value 1<br />
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): +5000M</p>
<p>Command (m for help): p</p>
<p>Disk /dev/sdg: 5368 MB, 5368709120 bytes<br />
255 heads, 63 sectors/track, 652 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0xd94fa889</p>
<p>   Device Boot      Start         End      Blocks   Id  System<br />
/dev/sdg1               1         638     5124703+  83  Linux</p>
<p>Command (m for help): n<br />
Command action<br />
   e   extended<br />
   p   primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (639-652, default 639):<br />
Using default value 639<br />
Last cylinder, +cylinders or +size{K,M,G} (639-652, default 652):<br />
Using default value 652</p>
<p>Command (m for help): p</p>
<p>Disk /dev/sdg: 5368 MB, 5368709120 bytes<br />
255 heads, 63 sectors/track, 652 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Sector size (logical/physical): 512 bytes / 512 bytes<br />
I/O size (minimum/optimal): 512 bytes / 512 bytes<br />
Disk identifier: 0xd94fa889</p>
<p>   Device Boot      Start         End      Blocks   Id  System<br />
/dev/sdg1               1         638     5124703+  83  Linux<br />
/dev/sdg2             639         652      112455   83  Linux</p>
<p>Command (m for help): t<br />
Partition number (1-4): 2<br />
Hex code (type L to list codes): 82<br />
Changed system type of partition 2 to 82 (Linux swap / Solaris)</p>
<p>Command (m for help): w<br />
The partition table has been altered!</p>
<p>Calling ioctl() to re-read partition table.<br />
Syncing disks.</code></p>
<p>Format the partition and label, then set fsck never to be run on boot</p>
<p><code>$ sudo mkfs.ext4 -L '/' /dev/sdg1<br />
$ sudo tune2fs -c 0 -i 0 /dev/sdg1</code></p>
<p>Format and label swap<br />
<code><br />
$ sudo mkswap -L 'ebs-swap' /dev/sdg2<br />
</code></p>
<h3>Copy disk image across</h3>
<p>We need to copy the disk image across.  You can either use instance storage to temporarily store this image, or create an EBS volume.  Either way, make a directory that&#8217;s writeable by the ec2-user.<br />
On the machine you did the bare install on for the instance store:</p>
<p><code>$ dd if=/dev/mapper/centosamip1 of=- bs=1m | ssh -C ec2-user@newawsinstance.amazonaws.com "cat - > /media/ephemeral0/img/theimage.img"</code></p>
<h3>Copy image files</h3>
<p>Mount the image file as loopback<br />
<code>$ sudo mkdir /loop<br />
$ sudo mount -o loop /media/ephemeral0/theimage.img /loop<br />
</code></p>
<p>Mount the destination EBS partition and copy the files across</p>
<p><code>$ sudo mount /dev/sdg1 /mnt<br />
$ sudo rsync -avHx /loop/ /mnt</code></p>
<p>Modify grub config and add EBS swap to fstab</p>
<p><code><br />
$ sudo sed -i -e 's/hd0/hd0,0/'  /mnt/boot/grub/menu.lst<br />
$ echo "LABEL=ebs-swap		none	swap	sw	0	0" | sudo tee -a /mnt/etc/fstab</code></p>
<p>We&#8217;re done! Unmount the image.</p>
<p><code><br />
$ umount /mnt<br />
</code></p>
<h3>Create a snapshot</h3>
<p>Detach the volume and create a snapshot:</p>
<p><code><br />
$ ec2-detach-volume vol-abcdwxyz<br />
$ ec2-create-snapshot -d "My really great AMI snapshot" vol-abcdwxyz<br />
</code></p>
<p>Find a suitable kernel to use, selecting an &#8216;hd00&#8242; one this time:</p>
<p><code>$ ec2-describe-images -a  -F image-type=kernel -F manifest-location=*pv-grub*</code></p>
<p>Last step &#8211; register your image!</p>
<p><code>$ ec2-register -b "/dev/sda=snap-12345678::false" -b "/dev/sdb=ephemeral0" -n "My Great AMI" -a x86_64 --kernel aki-12345678</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2012/how-to-make-your-own-centos-6-amis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 6.2 EC2 AMI</title>
		<link>http://blog.bashton.com/2012/centos-6-2-ec2-ami/</link>
		<comments>http://blog.bashton.com/2012/centos-6-2-ec2-ami/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 12:21:54 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[ami]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[el6]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=961</guid>
		<description><![CDATA[I think Amazon Web Services is superb. We&#8217;re doing a lot of new customer deployments to it, and for creating a scalable, highly available infrastructure there&#8217;s really nothing that can match it. But for a lot of our use cases Amazon Linux doesn&#8217;t really fit. We don&#8217;t want new versions of packages every six months, [...]]]></description>
			<content:encoded><![CDATA[<p>I think Amazon Web Services is superb.  We&#8217;re doing a lot of new customer deployments to it, and for creating a scalable, highly available infrastructure there&#8217;s really nothing that can match it.<br />
But for a lot of our use cases Amazon Linux doesn&#8217;t really fit.  We don&#8217;t want new versions of packages every six months, we want to set something up and be confident that it&#8217;ll continue working with backported security fixes for several years.<br />
To fill that need, I&#8217;ve created Amazon Machine Images for CentOS 6.  There were already some public images out there, but they all seemed to be pretty hacky in nature &#8211; random repositories enabled, random extra packages installed, no instance based swap etc etc.<br />
These images are as close to a minimal CentOS 6 install as I think makes sense on AWS &#8211; CentOS6, with cloud-init and ec2-utils.  Ephemeral storage will be mounted under /media/ephemeral0, swap will be mounted too.  The EBS backed images include a small amount (~256MB) of swap to make them more useful on t1.micro &#8211; to disable this just run &#8216;swapoff LABEL=ebs-swap&#8217;.<br />
I&#8217;ll be writing a separate blog post detailing how these images were created, and how you can create your own in the next few days.<br />
Log in with the username &#8216;ec2-user&#8217;, using your SSH keypair.  You&#8217;ll have full sudo access without a password.</p>
<table>
<tr>
<th>Region</th>
<th>EBS-Backed (32-bit)</th>
<th>EBS-Backed (64-bit)</th>
<th>Instance Store (32-bit)</th>
<th>Instance Store (64-bit)</th>
</tr>
<tr>
<th>eu-west-1</th>
<td>ami-bda09ec9</td>
<td>ami-afa09edb</td>
<td>ami-7fa09e0b</td>
<td>ami-1ba09e6f</td>
</tr>
<tr>
<th>us-east-1</th>
<td>ami-94cf1cfd</td>
<td>ami-eece1d87</td>
<td>ami-62cd1e0b</td>
<td>ami-3ecd1e57</td>
</tr>
<tr>
<th>us-west-2</th>
<td>ami-c80d80f8</td>
<td>ami-c00d80f0</td>
<td>ami-e20d80d2</td>
<td>ami-c473fef4</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2012/centos-6-2-ec2-ami/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>We&#8217;re hiring: Senior Linux Consultant</title>
		<link>http://blog.bashton.com/2012/were-hiring-senior-linux-consultant/</link>
		<comments>http://blog.bashton.com/2012/were-hiring-senior-linux-consultant/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 08:35:12 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[jobs]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=931</guid>
		<description><![CDATA[We&#8217;re currently looking for another person to join our team based in Birchwood Park, Warrington, just outside Manchester.  If you&#8217;re interested, please take a look at the full job spec.]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re currently looking for another person to join our team based in Birchwood Park, Warrington, just outside Manchester.  If you&#8217;re interested, please take a look at the <a href="https://recruiterbox.com/jobs/6352">full job spec</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2012/were-hiring-senior-linux-consultant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why using FORCE INDEX can reduce I/O with MySQL</title>
		<link>http://blog.bashton.com/2011/why-using-force-index-can-reduce-io-with-mysql/</link>
		<comments>http://blog.bashton.com/2011/why-using-force-index-can-reduce-io-with-mysql/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 17:16:33 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[scaling]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=761</guid>
		<description><![CDATA[I attended the excellent Percona Live conference earlier this week, and I have to say it was easily the best conference I&#8217;ve ever attended. There were some great, very in-depth technical talks, which I&#8217;ll blog about later. This post is prompted by this question posted on Twitter. At the closing talk given by Domas of [...]]]></description>
			<content:encoded><![CDATA[<p>I attended the excellent Percona Live conference earlier this week, and I have to say it was easily the best conference I&#8217;ve ever attended.  There were some great, very in-depth technical talks, which I&#8217;ll blog about later.</p>
<p>This post is prompted by <a href="https://twitter.com/#!/jonathan_ukc/status/129932606925062144">this question posted on Twitter</a>.  At the closing talk given by <a href="http://dom.as/">Domas</a> of Facebook, he mentioned that one should use FORCE INDEX when optimising for performance.</p>
<p>Why is this?</p>
<p>If you look at the <a href="http://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html">manual page explaining how MySQL uses indexes</a> you&#8217;ll see that they are broadly selected based on which will find the smallest number of rows.  This means that as additional data is added to a table the &#8216;best&#8217; index use to can change.</p>
<p>Using FORCE INDEX tells MySQL to use a specific index (or indexes) for a query.  By using it, you&#8217;re avoiding the need to calculate which index to use for each query.  You&#8217;re also ensuring (or at least making it more likely) that the indexes that are most used stay in the buffer pool, thus removing the need to read them from disk.  MySQL also gets the opportunity to replace infrequently used indexes with data in the buffer pool.</p>
<p>I suspect that the benefits of FORCE INDEX don&#8217;t apply so much for those with smaller data sets, but when one has as massive a set of data as Facebook, many small optimisations make a big difference.</p>
<p><strong>Update:</strong> See also <a href="http://dom.as/2011/01/27/a-case-for-force-index/">this post</a> by the big man himself <img src='http://blog.bashton.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2011/why-using-force-index-can-reduce-io-with-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios check_sip plugin updated</title>
		<link>http://blog.bashton.com/2011/nagios-check_sip-plugin-updated/</link>
		<comments>http://blog.bashton.com/2011/nagios-check_sip-plugin-updated/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 11:36:22 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[VOIP]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=731</guid>
		<description><![CDATA[I just released version 1.3 of our Nagios check_sip plugin, with contributions provided by Ryanny Lin. The changes are support for SIP re-transmission, and a fix for a corner case where the RTT may appear to be negative. Download it here.]]></description>
			<content:encoded><![CDATA[<p>I just released version 1.3 of our Nagios check_sip plugin, with contributions provided by Ryanny Lin.  The changes are support for SIP re-transmission, and a fix for a corner case where the RTT may appear to be negative.</p>
<p>Download it <a href="http://bashton.com/osprojects/nagiosplugins/">here</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2011/nagios-check_sip-plugin-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Django fastcgi with Upstart</title>
		<link>http://blog.bashton.com/2011/using-django-fastcgi-with-upstart/</link>
		<comments>http://blog.bashton.com/2011/using-django-fastcgi-with-upstart/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 09:20:23 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[upstart]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=691</guid>
		<description><![CDATA[We look after quite a few servers running Django apps, and latterly we&#8217;ve been running these on Ubuntu 10.04 LTS, using nginx + fastcgi. On other systems we&#8217;ve used supervisor to launch the Django fastcgi process, but on Ubuntu 10.04, and now on Red Hat/CentOS 6, we have the wonderful upstart system built in which [...]]]></description>
			<content:encoded><![CDATA[<p>We look after quite a few servers running Django apps, and latterly we&#8217;ve been running these on Ubuntu 10.04 LTS, using nginx + fastcgi.</p>
<p>On other systems we&#8217;ve used supervisor to launch the Django fastcgi process, but on Ubuntu 10.04, and now on Red Hat/CentOS 6, we have the wonderful upstart system built in which provides everything we need.</p>
<p>Below, you can see the upstart config I&#8217;ve written to start fastcgi.  It assumes you have python-flup installed.<br />
We have one of these per Django project hosted on the machine &#8211; you&#8217;ll need to vary the port number specified for each project you have.  All you&#8217;ll need to alter otherwise is the path to run in, and the path to manage.py.  If you&#8217;re running under EL6, you&#8217;ll probably want to change www-data to apache, but beware that I haven&#8217;t actually tested this config in such an environment.<br />
Save the following in &#8220;/etc/init/djangoproject.conf&#8221;, where djangoproject is the name of your django project.</p>
<p><code><br />
description "Basic Django fcgi Upstart config"<br />
author "Sam Bashton"</p>
<p>start on (net-device-up<br />
          and local-filesystems<br />
          and runlevel [2345])<br />
stop on runlevel [016]</p>
<p>respawn<br />
chdir /var/www/djangoproject<br />
exec su -s /bin/sh -c 'exec "$0" "$@"' www-data -- \<br />
  /var/www/djangoproject/manage.py runfcgi \<br />
  method=prefork host=127.0.0.1 port=32769 minspare=4 maxspare=8 \<br />
  maxchildren=128 maxrequests=65535 daemonize=false<br />
</code></p>
<p>Once you&#8217;ve added the file, you can start it with the command &#8220;start djangoproject&#8221;, stop it with &#8220;stop djangoproject&#8221;, and restart it (for example, if you&#8217;ve updated the code) with &#8220;restart djangoproject&#8221;, replacing djangoproject with the name you gave the config of course.<br />
Should the fastcgi process die for some reason it will be automatically be restarted.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2011/using-django-fastcgi-with-upstart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re hiring</title>
		<link>http://blog.bashton.com/2011/were-hiring/</link>
		<comments>http://blog.bashton.com/2011/were-hiring/#comments</comments>
		<pubDate>Fri, 20 May 2011 15:30:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Meta]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=661</guid>
		<description><![CDATA[We&#8217;re currently looking for another Linux Consultant to join our team. The role primarily involves looking after Linux servers on behalf of our customers, as well as helping to implement new Linux based solutions. Day to day you&#8217;ll be working with a wide range of Open Source software, but we&#8217;ve deliberately not included a list [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re currently looking for another Linux Consultant to join our team.  The role primarily involves looking after Linux servers on behalf of our customers, as well as helping to implement new Linux based solutions.</p>
<p>Day to day you&#8217;ll be working with a wide range of Open Source software, but we&#8217;ve deliberately not included a list of apps &#8211; if you&#8217;re the right person for us, you&#8217;ll be able to pick up new technologies very quickly.  The interview process will contain a full technical assessment.</p>
<p>If you&#8217;re interested, you can see more details and apply by visiting <a href="http://bashton.com/jobs/">our job page</a>.  Please note that we&#8217;re really, really not interested from hearing from recruitment agencies and the like.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2011/were-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Red Hat Enterprise Linux 6 Released</title>
		<link>http://blog.bashton.com/2010/red-hat-enterprise-linux-6-released/</link>
		<comments>http://blog.bashton.com/2010/red-hat-enterprise-linux-6-released/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 09:09:52 +0000</pubDate>
		<dc:creator>sam</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[rhel6]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=641</guid>
		<description><![CDATA[I posted here in March speculating when RHEL6 would be released. I&#8217;m pleased to say that the final version of Red Hat Enterprise Linux 6 has now been officially released! Red Hat 5 was getting rather long in the tooth, and I&#8217;m sure many users will be happy to see the inclusion of more up [...]]]></description>
			<content:encoded><![CDATA[<p>I posted here in March <a href="http://blog.bashton.com/2010/so-wheres-rhel-6/">speculating when RHEL6</a> would be released.  I&#8217;m pleased to say that the final version of Red Hat Enterprise Linux 6 has now been officially released!</p>
<p>Red Hat 5 was getting rather long in the tooth, and I&#8217;m sure many users will be happy to see the inclusion of more up to date packages &#8211; MySQL 5.1, Python 2.6 and PHP 5.3 amongst the more notable that will have been giving some users of RHEL5 headaches.</p>
<p>Red Hat 6 provides much more than just a version bump to packages though, there are some key changes.  KVM is now the default virtualisation technology.  Xen is still supported, and RHEL6 will work as a RHEL5 guest out of the box, as long as one uses an ext3 /boot partition.  The para-virt drivers for VMWare are also included, making those deployments simpler too.</p>
<p>ext4 is now the default file system, which provides support for file systems up to 1 exabyte in size and files up to 16TB.  Red Hat only officially supported file systems of up to 8TB in size on RHEL5, although it was possible to make them larger than this.  ext4 also brings much better performance, and removes the limit of 32000 subdirectories in a single directory.</p>
<p>Upstart is now used for the boot process, replacing the old /etc/init.d scripts.  Upstart will be familiar to those who have used more recent versions of Ubuntu Linux, where the project was started.  It provides support for automatically respawning failed daemons &#8211; something that will be music to the ears of anyone who has ever tried to log into a machine that has had the SSH daemon killed by the out of memory killer.  It also always for parallel execution of startup scripts, meaning that RHEL6 boots significantly faster than previous versions.</p>
<p>One other piece of good news for sysadmins is that sendmail is now no longer the default MTA &#8211; I can almost hear the cheers of readers from here!  Postfix is now provided by default, with the distinct advantage of configuration files that are easily distinguishable from line noise.</p>
<p>Overall, Red Hat Enterprise Linux 6 is a massive step forward from the previous version &#8211; as you&#8217;d expect, given RHEL5 was released in 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/red-hat-enterprise-linux-6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using a Dell S300 RAID card under Linux</title>
		<link>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/</link>
		<comments>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 17:44:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[fakeraid]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[rhel]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=541</guid>
		<description><![CDATA[For anyone else googling trying to find the answer to this, as I was today, I refer you to the following Red Hat article: Do the S100 and S300 Software RAID controllers in my Dell PowerEdge Server work with Red Hat Enterprise Linux? To paraphrase, the solution is to take the RAID card out the [...]]]></description>
			<content:encoded><![CDATA[<p>For anyone else googling trying to find the answer to this, as I was today, I refer you to the following Red Hat article:</p>
<p><a href="http://kbase.redhat.com/faq/docs/DOC-19840">Do the S100 and S300 Software RAID controllers in my Dell PowerEdge Server work with Red Hat Enterprise Linux?</a></p>
<p>To paraphrase, the solution is to take the RAID card out the server and throw it in the bin.  The S300 isn&#8217;t a real RAID card, it&#8217;s a <a href="http://en.wikipedia.org/wiki/RAID">fakeraid</a>.  You&#8217;re better off just using Linux software RAID.</p>
<p>Unfortunately, the cabling in the server doesn&#8217;t allow for connecting to the on-board SATA ports, or rather for powering them.  Speaking to Dell support, they initially suggested that just disabling the card in the BIOS would be sufficient; they later admitted it isn&#8217;t, and offered to send out suitable cables.</p>
<p>I seem to remember Dell making a big deal of their entire server line offering full Linux support some time ago, so I&#8217;m surprised to see them making this retrograde step &#8211; particularly as Linux represents a large percentage of the server market.  In Dell&#8217;s defence they do make it reasonably clear that the S300 card isn&#8217;t supported under Linux at the ordering stage.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/using-a-dell-s300-raid-card-under-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>So where&#8217;s RHEL 6?</title>
		<link>http://blog.bashton.com/2010/so-wheres-rhel-6/</link>
		<comments>http://blog.bashton.com/2010/so-wheres-rhel-6/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 12:33:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[rhel release]]></category>
		<category><![CDATA[rhel6]]></category>

		<guid isPermaLink="false">http://blog.bashton.com/?p=491</guid>
		<description><![CDATA[As I keep getting asked by customers when they can expect Red Hat Enterprise Linux 6, I thought it was worthwhile to make a post on the subject. This is a reasonably long post, but the simple answer to the question is that I don&#8217;t know, but my educated guess would be Q4 2010, and [...]]]></description>
			<content:encoded><![CDATA[<p>As I keep getting asked by customers when they can expect Red Hat Enterprise Linux 6, I thought it was worthwhile to make a post on the subject.  This is a reasonably long post, but the simple answer to the question is that I don&#8217;t know, but my educated guess would be Q4 2010, and that we&#8217;ll have a firm(er) date by the end of June.  Please note that I&#8217;m not a Red Hat employee, although my company is a Red Hat partner, and that nothing in this post is official in any way, shape or form.</p>
<p>Red Hat Enterprise releases have been traditionally 18-24 months apart, and on that basis one might have expected RHEL6 to have been released sometime between October 2008 and March 2009, as RHEL5 was released in March of 2007.  So what&#8217;s taking Red Hat so long, and when can we expect RHEL6?</p>
<p>There are a number of reasons for the delay, but the biggest is related to the <a href="http://fedoraproject.org/">Fedora Project</a>, who create Fedora, on which Red Hat Enterprise is based.<br />
For Fedora releases up to version 6, on which RHEL5 was based, the Fedora Project was run very much as an in-house Red Hat project, with contributions from the wider Open Source community.  Post FC6, the Fedora Project was much more run by the Open Source community, with Red Hat contributors.  This seems to have led to a shift in focus from fixing bugs to implementing new features.  This isn&#8217;t necessarily a bad thing &#8211; Fedora exists to be the &#8216;bleeding edge&#8217; of development, pushing at the boundaries in a way Red Hat are obviously unable to do with an enterprise focussed  product like RHEL.  Unfortunately, Fedora 9, on which RHEL6 was to be based, released with a large number of critical bugs and stability issues.  Red Hat made the decision that they therefore couldn&#8217;t base RHEL6 on this release, and instead poured man-power into the Fedora Project, fixing bugs and generally improving stability as much as possible.</p>
<p>The evidence is that RHEL6 will now be based on Fedora 12, which was released in November of last year.  The was a gap of just under a year between Fedora 6 and RHEL5, so this would point to a release in Autumn of this year.</p>
<p>The other issue that has caused delays to RHEL is that of virtualisation.  RHEL4/RHEL5 utilised the Xen hypervisor for their virtualisation.  In September 2008 Red Hat purchased Qumranet, whose staff included the leaders of the KVM project, an alternate virtualisation technology.  KVM is very much seen as the future for Linux virtualisation, and Red Hat immediately made it clear that this was the direction they would be pursuing.  RHEL 5.4 included KVM as a &#8216;technology preview&#8217;, so clearly much progress has been made integrating it into the main Red Hat release.  It&#8217;s therefore likely that this is no longer holding up RHEL6.</p>
<p>I expect the final release date for RHEL6 to be announced at the Red Hat summit at the end of June.  There have been some suggestions that RHEL6 itself will be released at the summit.  Unless Red Hat release a beta within the next couple of weeks, I&#8217;d say this looks distinctly unlikely.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bashton.com/2010/so-wheres-rhel-6/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

