<?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>Sysconfig&#039;s Blog</title>
	<atom:link href="http://sysconfig.org.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://sysconfig.org.uk</link>
	<description>FreeBSD, Linux, Virtualisation, Resilience, Scalability, Storage, and other (random) things</description>
	<lastBuildDate>Fri, 02 Mar 2012 03:04:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>There&#8217;s no such thing as &#8220;The&#8221; Cloud</title>
		<link>http://sysconfig.org.uk/2012/02/no-such-thing-as-the-cloud/</link>
		<comments>http://sysconfig.org.uk/2012/02/no-such-thing-as-the-cloud/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 17:08:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AWS/EC2]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Xen]]></category>
		<category><![CDATA[availability]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://sysconfig.org.uk/?p=1273</guid>
		<description><![CDATA[Personally I think &#8220;The Cloud&#8221; is one of the most abused terms of modern IT language. There are certainly some connotations going along with it, which get business people excited: scalable, flexible, resilient, on-demand pricing, low entry costs. And then the whole Nonsense-as-a-Service terminology (SaaS, IaaS, BaaS and whatnot)! It certainly gets the high-level non-technical [...]]]></description>
			<content:encoded><![CDATA[<p>Personally I think &#8220;The Cloud&#8221; is one of the most abused terms of modern IT language. There are certainly some connotations going along with it, which get business people excited: scalable, flexible, resilient, on-demand pricing, low entry costs. And then the whole Nonsense-as-a-Service terminology (SaaS, IaaS, BaaS and whatnot)! It certainly gets the high-level non-technical business folk&#8217;s meetings started! Sadly, they are not likely to ever come to a conclusion which makes sense on a technical level. The image, which many if not most people have in mind is that &#8220;The&#8221; Cloud is <em>the</em> answer to all IT problems, a no-brainer, and on top of it there&#8217;s a (in my opinion false) understanding that you chuck your stuff into &#8220;The&#8221; Cloud and it will then magically apply all those great features to your application. It couldn&#8217;t be further from the truth, unless you are willing to pay a <em>serious</em> amount of money and let someone else manage all that for you. That however removes <em>on-demand</em>, and <em>low entry costs</em> from your equation. Depending on the company you hire to do that, you&#8217;ll sometimes sacrifice <em>flexibility</em>, too.</p>
<p>You, as an IT person, certainly have been asked (or asked yourself) this question in the recent past: <em>&#8220;Should we move services to &#8216;The&#8217; Cloud?&#8221;</em><br />
<span id="more-1273"></span>That&#8217;s where the challenge starts. From a business person&#8217;s perspective, on a non-technical level, &#8220;The&#8221; Cloud appears to be a fixed term, maybe even a one-size-fits-it-all solution. But from an IT person&#8217;s point of view it&#8217;s a different story. Just like real clouds, &#8220;The&#8221; Cloud comes in all shapes and forms, from fluffy and bright, to dark, threatening and soon bursting into thunder and rain. &#8220;The&#8221; Cloud doesn&#8217;t exist &#8212; each and every hosting provider implements it differently and sets their own focus. There are very few common denominators, frankly. Whether or not it makes sense for your business or project pretty much depends on what you want to do, what you already have in place, and what you actually need. One of the biggest benefits is certainly that you don&#8217;t need to worry much about the future. You don&#8217;t need to buy expensive kit and infrastructure because you <em>might</em> require it soon-ish. That reduces overhead costs.</p>
<p>When I think of clouds, I think of something very versatile or flexible. In IT terms it means that I can build my own infrastructure with virtualised components, in any way I see fit. I would be able to run any operating system of my choice. I would run a variety of different VM types, built to their purpose, arrange internal networking between them, group and secure them with firewalls. Clouds move, so would my virtualised resources. I could add or remove them as I go, make them appear and disappear when and where I need them. What I created in one place could be cloned and deployed in a different place in the world. I could multiply my (pre-configured) resources if required, and remove unnecessary pieces to reduce overhead and costs. As with real clouds, this would happen on-the-fly, without disruption of service at any time.</p>
<p>Let&#8217;s get more technical and derive some key requirements from that. Your mileage may vary, obviously, but for me personally &#8220;The&#8221; Cloud has to compete with what I can easily build myself. I wouldn&#8217;t dare calling the ~20 servers a cloud, which I run for one client. Although most of them function as Xen hosts, and no single points of failure exist. The majority of &#8220;cloud hosting&#8221; offers out there should not call it that, either, to be quite honest with you. Three years ago they would have titled their offers &#8220;virtual private server hosting&#8221; (or VPS), but nowadays <em>cloud</em> and <em>IaaS</em> sell so much better!</p>
<p>Anyhow, back to the technical requirements. From a cloud offer I expect (in no particular order):</p>
<ul>
<li>Zero single points of failure (or full redundancy in other words), both for infrastructure/connectivity and storage</li>
<li>Ability to run any operating system or flavour, both from standard and customised images</li>
<li>Instant provisioning and availability of resources (if I decide to start a VM because I need it to scale out an application, I cannot wait 15 minutes or more)</li>
<li>Near-realtime snapshots of storage volumes and instant restoration of volumes and virtual machines</li>
<li>Very few limitations in terms of size and number of virtual machines</li>
<li>Scalability (horizontally and vertically, that is up/downscaling of individual virtual machines, the number of virtual machines running a clone, clever load balancing)</li>
<li>Security (VLANs between VMs which aren&#8217;t shared with others, ability to create firewalls outside of VMs)</li>
<li>Billing on an hourly basis for any resource type (<em>on-demand</em> does not work with monthly billing cycles)</li>
<li>Ability to reduce costs by committing/subscribing in advance (on a per-VM basis or as overall resource usage)</li>
<li>API and/or command line tools (if you cannot automate, it&#8217;s not flexible enough)</li>
<li>Excellent connectivity to main carriers and exchanges in the area</li>
<li>Knowledgeable support staff (I&#8217;d rather wait a couple of hours for a helpful answer than getting by-the-book answers from underpaid live chat staff)</li>
<li>Static IP addresses available, including reverse DNS records (vital for email servers)</li>
</ul>
<p>Ideally, there were some neat extra features, which I&#8217;d appreciate much:</p>
<ul>
<li>Storage outside of VMs which can be used to upload backups, share or distribute static content (CDN)</li>
<li>Up/down scaling of VMs (like adding RAM or horse power, attaching additional volumes etc)</li>
<li>VNC access (helpful with from-scratch customisation of VM images)</li>
<li>Specialised VM types/resources for high I/O workloads like databases (local SSD would be perfect)</li>
<li>Encrypted storage so that data at rest is secure (you can implement that yourself, I know, but it costs your CPU power)</li>
<li>PCI-DSS compliant infrastructure</li>
<li>Cluster-aware volumes which can be mounted to multiple VMs (using GFS, OCFS2, CLVM and the like inside)</li>
</ul>
<p>I know, this is a fairly massive list of requirements, but if only a fraction of them is met, it&#8217;s not a cloud. I need high flexibility and lots of options, because otherwise I could as well build it myself and likely end up cheaper. Well, truth is, the majority of these requirements are met in my own infrastructure, but if the client suddenly starts thinking about moving to &#8220;The&#8221; Cloud, I need to take all the things into consideration which we currently have. And certainly I&#8217;m not an isolated case. Surely many of you have been there, too. (I don&#8217;t even want to start the discussion whether the cloud is cheaper than running your own infrastructure. I believe in most cases it&#8217;s not, unless you tailor your applications for the particular cloud you decided to use, and make sure they allocate and release resources as and when they are really required. Depending on the application, development of such a fine-grained management mechanism can incur tremendous costs too, in particular if you are migrating rather than building from scratch.)</p>
<p>So, what have we got out there? What can the different clouds offer?</p>
<p>As you probably gathered, the discussion of possibly moving to &#8220;The&#8221; Cloud is taking place as I write this. My client came up with a bunch of cloud offers, most of which don&#8217;t get anywhere near the requirements. But in their defence, those offers did mention all the buzz words which business folks fall for. And at the end of the day it&#8217;s the business folks who shoulder the bill and the IT crowd who have to deal with whatever they get.</p>
<p>That&#8217;s of course a highly unsatisfying situation. What I decided to do is to look into different offers from different providers, which I selected myself. To be able to point out the differences and make the client aware of the pitfalls and how that can effect their considerations.</p>
<p>Only those providers which offer at least one European data centre location can be taken into consideration, due to company policies and data protection requirements. My selection includes: Amazon, Rackspace, Softlayer, CloudSigma and ElasticHosts. The list might grow over the coming days (though, for the purpose of this blog article it&#8217;s not relevant). The purpose of this article is not to give any recommendations. Instead, I want to support my thesis that no single cloud equals any other, and that therefore there&#8217;s no such thing as &#8220;The&#8221; Cloud. There are many clouds. Entirely different clouds. All clouds do have these things in common:</p>
<ul>
<li>They are virtualised (using different Hypervisors and different levels of vitualisation [HVM vs. PV])</li>
<li>It will take considerable effort to migrate our applications there</li>
<li>If we take our virtualised infrastructure and put it there, we cannot save costs at all, unless we redesign many parts of it (and if we did that on the current infrastructure, we&#8217;d get away cheaper, too)</li>
</ul>
<p>Sadly, that&#8217;s it already. Let&#8217;s go through some pros and cons of the selected providers. I only want to highlight a few things. Don&#8217;t take this as an all-inclusive or complete feature comparison. It&#8217;s not. If you feel that I should add certain things, or if your experience differs from mine, please do use the comment option.</p>
<p><strong>Amazon</strong>, with data centres in Dublin/Ireland, which I&#8217;ve been customer with for about two years, covers almost all of my must-have items. They allow me to run almost any operating system (my favourite, FreeBSD with some limitations, but it&#8217;s possible), are most flexible in terms of snapshots (near real-time), volume management, and security (security groups and firewalls). Also they allow running entirely encapsulated Virtual Private Clouds (VPCs), which can even be connected to other data centres using IPsec tunnels. When it comes to infrastructure, they are obviously ahead of everyone else, with data centres all over the globe. They do offer VM-independent storage (S3, EBS). It&#8217;s probably reasonable to call them the inventor of the cloud. Or at least they were the first to bring it to a wide audience.<br />
In terms of billing you can save money by committing to so-called Reserved Instances, which can significantly reduce your costs by paying a one-off fee for one or three years. However, Reserved Instances are tied to Availability Zones (specific data centre in a given region), a certain instance type, and even distinguish between EC2 and VPC instances. You want to think twice which resources you will need before committing so specifically. That said, a Reserved Instance is a slot, which allows you to run a particular instance type at reduced hourly costs, not an actual instance in itself. You&#8217;re still flexible, sort of.<br />
In terms of instance types, they&#8217;ve got a wide range from &#8220;Micro&#8221; to &#8220;Cluster Compute&#8221; and even &#8220;GPU&#8221; number-crunchers. However, there are some gaps between the instance types, and I bet many people wish for one or more instance types to fill those. Also there are some instance types which require a 32bit OS, whereas all others can run (or require) 64bit. This can be a problem when scaling vertically.<br />
A big plus for people designing seriously large applications are the different specialised instance types for MySQL, Oracle, Map/Reduce, DynamoDB and whatever else they&#8217;ve got. Memcache instances (ElastiCache) are a very unique offer as well.<br />
You usually get a reply to support inquiries within a day or two, if you don&#8217;t buy premium support (which guarantees response times on different levels). Alternatively you can post your issue into their forums, which most customers seem to do, and can be lucky to get a very quick response. That said, you don&#8217;t need their support often. Everything is automated (web console or API), and unless something is technically wrong (as in broken), you can always work around it. Also, there is a vast number of tools available which allows you to migrate to or from Amazon, up to the point where they let you bundle your VM or physical server, throw it onto S3, and create a running instance in EC2 from it.<br />
Amazon is the only provider in this article, which allows you to span applications across different data centres and provide actual physical resilience on all levels. (Yes they too do have their intermittent issues, but who doesn&#8217;t? If they can&#8217;t do it, there aren&#8217;t many who can.)</p>
<p><strong>Rackspace</strong>, with data centre in London/UK, have positioned themselves as competition to Amazon. However, I don&#8217;t think they live up to that expectation. What you can say is that smaller instances seem to deliver a constant level of performance, whereas with Amazon the Micro instances can be heavily throttled. However, the choice of instance types is very limited. If you want more RAM or CPU or disk space, you automatically have to increase everything else too. Hidden in their knowledge base you can further learn that bandwidth is throttled depending on the instance size as well. What you cannot get is static IP addresses.<br />
The choice of operating systems is very limited. Snapshots cannot be taken of a running instance (I know the risks, but it&#8217;s good to have that option anyway). You can make clones of your instance, but you cannot mount the volumes elsewhere to manipulate them. And talking of volumes, well, there aren&#8217;t any. You get a set amount of space depending on the instance size. That&#8217;s it. External firewalls don&#8217;t exist, and the internal network interfaces share one network (not a private VLAN). There&#8217;s no way you can import or export VM images. Customization is not their focus. FreeBSD is not supported at all as yet. Allegedly that will change soon. It remains to be seen.<br />
On the good side: Their support is brilliant and fast, and their user interface and API are intuitive and well documented. Rackspace&#8217;s Load Balancers allow using external backends, which can be handy, although there won&#8217;t be too many use cases for that.<br />
While priced reasonably and performing well, Rackspace&#8217;s focus clearly isn&#8217;t on flexibility and/or anything non-standard. Personally I find their options very restrictive and almost disappointing.</p>
<p><strong>SoftLayer</strong> have opened a data centre in Amsterdam/Netherlands only recently. However, I&#8217;ve been dedicated server customer with them in the past. I knew that their network quality and support are almost unrivaled. It&#8217;s one of the few providers out there which manage to make customers feel important and listened to. Considering their size and growth rate that is quite an achievement.<br />
SoftLayer is immensely flexible with instance types, storage and network option. They even offer multiple public IP addresses for instances, which is not very common at all. At the backend, you get access to a private VLAN, KVM-over-IP, VPN access (PP2P or SSL). That is outstanding.<br />
Like Amazon (S3, EBS) and Rackspace (CloudFiles) they also offer independent storage and distribution options (CloudLayer Storage, NAS, iSCSI even). And of course a CDN, too.<br />
What&#8217;s very interesting with SoftLayer is the ability to mix actual physical hardware and CloudLayer instances on your private VLAN. That really offers opportunities, which you struggle to find elsewhere, especially as you can customise your network, IPs, Storage etc any time.<br />
However, there&#8217;s one downside with SoftLayer: their pricing is certainly justified, but it&#8217;s the wrong place to go when you look at reducing costs. The smallest VM with 2GHz core, 1GB Ram, and 25GB storage together with 10MBit/s bandwidth will cost you about £50/month on an hourly schedule. Now, this isn&#8217;t very expensive, but extras like IPs, additional volumes etc weigh in significantly. It&#8217;s all the little extras which quickly let costs spiral. Most of those extras are charged on a monthly basis from what I gathered. On top of that your OS choice is limited (not as limited as Rackspace, but FreeBSD is not supported for example, and there don&#8217;t seem to be plans to change it.)<br />
I&#8217;d like to add that starting instances does not happen instantly. In my tests it took more than 10 minutes. Too long for my taste, but probably good enough in most use cases.</p>
<p><strong>ElasticHosts</strong>, with data centres in London, apparently use HVM virtualisation only. This allows enormous flexibility in OS choice (FreeBSD works, yay!), and gives you VNC access before the operating system even starts booting. You can run just about anything there. What I like is their subscriptions. For example you could reduce your costs by committing to an overall of 8GHz, 8GB, 80GB disk space, and then go and split it into 8 instances of 1GHz, 1GB, 10GB disk. That is quite neat, and their pricing is very attractive too.<br />
That said, their interface is dreadful compared to others, and it times out frequently resulting in error messages. I wasn&#8217;t at all convinced by their network and disk performance either. The idea and concept are great, but the technical implementation can&#8217;t compete with the big guys, I think. Your mileage may vary.<br />
What&#8217;s good there is that you can get VLANs, IPs, Firewall options etc, and you can download and upload your own OS images and CD-Roms via FTP.<br />
I like their ideas, but it somehow doesn&#8217;t feel right, if that makes any sense, although they have been around for a couple of years.<br />
But see for yourself. They offer a couple of days trial for free. (And don&#8217;t even ask you for credit card details.)</p>
<p><strong>CloudSigma</strong>, with data centre in Zurich/Switzerland, are surprisingly similar to ElasticHosts in their terminology and also offer a free trial period. The subscription model works exactly the same way. They, too, use HVM and give you VNC access. And they also have FTP upload and download functionality to get hold of your VM images or put your own there. Apparently, CloudSigma haven&#8217;t been around very long (two years or so).<br />
Their instances seem to perform better and disk I/O is faster than ElasticHosts&#8217;, too. Talking of disks, they even allow mounting the same volume to multiple VMs. However, that of course means you&#8217;d have to use an OS and filesystem, which is aware of clustering (OCFS2, GFS, CLVM). CloudSigma offer encryption for data at rest, which is very convenient.<br />
Another big plus is the availability of SSD storage. I am yet to test FreeBSD with ZFS on their instances, utilising a SSD volume for ZFS&#8217;s Intent Log (ZIL). In theory that should rock, at least if SSDs are local and not served via network! However, during the trial they disallow SSD use, and to get started you have to topup at least £50, which would be the equivalent of two very small VMs for a whole month.</p>
<p>Neither ElasticHost nor CloudSigma offer services like S3 our CloudFiles. Also, you won&#8217;t find load balancers or DNS services there.</p>
<p>&nbsp;</p>
<p>See, every single cloud is unique, and &#8220;The&#8221; Cloud simply doesn&#8217;t exist. One has to look very carefully at the offers and options. (This blog currently runs on FreeBSD in Amazon&#8217;s EC2, in case you wondered.)</p>
<p>I&#8217;m open for any other cloud provider suggestions to look into. If they match many of my requirements and have one or more data centres in Europe, I&#8217;m definitely interested! Please feel free to comment.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2012/02/no-such-thing-as-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GlusterFS on CentOS 6.x incl. Geo Replication</title>
		<link>http://sysconfig.org.uk/2012/02/glusterfs-on-centos-6-x-incl-geo-replication/</link>
		<comments>http://sysconfig.org.uk/2012/02/glusterfs-on-centos-6-x-incl-geo-replication/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 19:25:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[glusterfs]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://sysconfig.org.uk/?p=1259</guid>
		<description><![CDATA[For those of you who are interested in clustered storage, I&#8217;ve put together a very quick run-through for GlusterFS (3.2.5) on CentOS 6.2. It also includes setting up Geo Replication. It&#8217;s very short, but tackles a few of the pitfalls. Just head this way. In case you haven&#8217;t heard: RedHat acquired Gluster back in October [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who are interested in clustered storage, I&#8217;ve put together a very quick run-through for GlusterFS (3.2.5) on CentOS 6.2. It also includes setting up Geo Replication. It&#8217;s very short, but tackles a few of the pitfalls. Just <a title="GlusterFS on CentOS 6.x incl. Geo Replication -- Short Howto" href="http://wiki.sysconfig.org.uk/display/howto/GlusterFS+on+CentOS+6.x+incl.+Geo+Replication+--+Short+Howto" target="_blank">head this way</a>.</p>
<p>In case you haven&#8217;t heard: <a title="RedHat to acquire Gluster" href="http://www.redhat.com/promo/storage/brian-stevens.html" target="_blank">RedHat acquired Gluster</a> back in October 2011, and that is very good news, because it will push development, broaden the user base, and ultimately make it more interesting for some of the bigger players out there, which will result in even better stability and performance altogether.</p>
<p>Frankly, there were times when GlusterFS was in a mess and the only people knowing how to configure and properly use it were the devs (or the freaks who hung out in IRC whole day, which I sometimes did too), because documentation was a nightmare. These things will now change (and have already changed as far as documentation is concerned). That&#8217;s brilliant progress.</p>
<p>If you don&#8217;t look at GlusterFS now, you&#8217;ll probably feel left out soon. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_razz.gif?9d7bd4" alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2012/02/glusterfs-on-centos-6-x-incl-geo-replication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slim and up-to-date CentOS 6.2 AMIs for Amazon EC2</title>
		<link>http://sysconfig.org.uk/2012/02/slim-and-up-to-date-centos-6-2-amis-for-amazon-ec2/</link>
		<comments>http://sysconfig.org.uk/2012/02/slim-and-up-to-date-centos-6-2-amis-for-amazon-ec2/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 21:22:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AWS/EC2]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Xen]]></category>
		<category><![CDATA[AMI]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[EBS]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sysconfig.org.uk/?p=1235</guid>
		<description><![CDATA[[Update 01/Mar: updated EU-West AMIs, and added AMIs for AP-Southeast-1] As CentOS 6.x has finally caught up with RHEL&#8217;s update cycle (as far as possible for a clone/copy/fork/you name it), I thought it might be good to have up-to-date images on EC2. But to my surprise I didn&#8217;t find many. Maybe it&#8217;s because you can [...]]]></description>
			<content:encoded><![CDATA[<p>[<strong>Update 01/Mar</strong>: updated EU-West AMIs, and added AMIs for AP-Southeast-1]</p>
<p>As CentOS 6.x has finally caught up with RHEL&#8217;s update cycle (as far as possible for a clone/copy/fork/you name it), I thought it might be good to have up-to-date images on EC2. But to my surprise I didn&#8217;t find many. Maybe it&#8217;s because you can get RHEL instances there, but I still prefer not to be dependent on licensing.</p>
<p>Anyhow, most AMIs I&#8217;ve found are outdated (6.0) or littered/bloated or heavily customised. I didn&#8217;t find a single AMI to my liking in either Europe or in the US regions. Plus, I wanted SELinux in enforced mode, which the vast majority of AMIs out there don&#8217;t offer and which is a bit of a nuisance to rectify later (due to long relabeling procedure and required reboot). Hence I created my own, which I made public.</p>
<p><span id="more-1235"></span></p>
<p>The 32bit AMI works on t1.micro, m1.small and c1.medium out of the box. It&#8217;s wrapped into a 10GB EBS volume, 2GB of which are configured as swap space. The AMI is based on a <em>groupinstall core</em> (aka minimal installation). At startup it will gather your SSH key and chuck it into the authorized_keys2 file. The default user is <em>ec2-user</em> and root login is not allowed &#8212; going with Amazon&#8217;s best practices there.</p>
<p>If you prefer to log on as someone else, just type the username into the Userdata field when you create the instance via web console, or use the correct parameter (-d) with <em>ec2-run-instances</em>. I would for example just type carsten, and my SSH login will be carsten instead of ec2-user. I thought this would be a useful idea, if you run lots of instances and prefer to use your own login name. Old habits die hard as we know <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' /> </p>
<p>The AMIs are publicly available as of now in both Ireland, California and Singapore:</p>
<ul>
<li>eu-west-1: ami-c5053cb1 (32 bit) and ami-c3053cb7 (64 bit)</li>
<li>us-west-1: ami-2f9bc26a (32 bit) and ami-e792cba2 (64 bit)</li>
<li>ap-southeast-1: ami-76b8fc24 (32 bit) and ami-72b8fc20 (64 bit)</li>
</ul>
<p>Core features again:</p>
<ul>
<li>CentOS 6.2, no 3rd party repos, last update 15/Feb/2012 (32bit), 16/Feb (64bit)</li>
<li>based on &#8216;groupinstall core&#8217; (+ openssh_clients for scp)</li>
<li>SELinux enabled and enforced</li>
<li>swap preconfigured and part of the volume (/dev/xvde2)</li>
<li>login user with sudo access either ec2-user or user specified at launch in the userdata field</li>
<li>32 bit version works on t1.micro, m1.small and c1.medium</li>
<li>64 bit version works on t1.micro and all other 64 bit instance types (not tested on the cc1, cc2 and cg1 monsters)</li>
<li>ephemeral storage is made available, where the instance type permits (all but t1.micro); partitioning/formatting is your job</li>
</ul>
<p>However: Use at your own risk! It&#8217;s a clean CentOS setup on EC2, no dirty trickery or other changes which require my support or make it a non-CentOS setup. Hence, use the normal support channels for questions related to CentOS (or use my contact form and have some cash available to spend <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_razz.gif?9d7bd4" alt=':P' class='wp-smiley' /> )</p>
<p>Have fun and feel free to give feedback here or via contact form!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2012/02/slim-and-up-to-date-centos-6-2-amis-for-amazon-ec2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scientific Linux &#8212; an alternative to CentOS?</title>
		<link>http://sysconfig.org.uk/2011/08/scientific-linux-an-alternative-to-centos/</link>
		<comments>http://sysconfig.org.uk/2011/08/scientific-linux-an-alternative-to-centos/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 09:43:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[RHEL]]></category>
		<category><![CDATA[scientific linux]]></category>
		<category><![CDATA[updates]]></category>

		<guid isPermaLink="false">http://sysconfig.org.uk/?p=1071</guid>
		<description><![CDATA[As CentOS is currently in a bit worrying situation with security updates arriving late, and major and point releases being months behind, it&#8217;s probably a good idea to have a look around and check what else is out there that claims to be binary compatible with RHEL. With more than 100 active installations of CentOS, [...]]]></description>
			<content:encoded><![CDATA[<p>As CentOS is currently in a bit worrying situation with security updates arriving late, and major and point releases being months behind, it&#8217;s probably a good idea to have a look around and check what else is out there that claims to be binary compatible with RHEL. With more than 100 active installations of CentOS, I just have to make sure that we&#8217;re ready for the worst case. Obviously purchasing subscriptions with RHEL for all those installations is not an option; the customers can&#8217;t possibly agree to the significantly higher costs that would force on them.</p>
<p>Now, I don&#8217;t want to spread rumours or create unnecessary panic. I don&#8217;t really doubt that the CentOS team will somehow manage to increase their pace a little bit, and their latest announcement regarding <a href="http://www.h-online.com/open/news/item/CentOS-to-deliver-advance-updates-from-5-7-1323584.html" target="_blank">continuous releases</a> (essentially &#8220;backported&#8221; security updates) goes into the right direction, if they can for once stick to their promised timelines.</p>
<p>Nonetheless, I need stability and consistency. That absolutely entails security updates, quite obviously. From my personal and professional experience, if it has to be Linux, RHEL-derivates are by far the best bet for enterprise environments. So, just in case, what else is in store for paranoid people like me who have committed to using RHEL and its forks/clones? (where FreeBSD sadly isn&#8217;t an option)</p>
<p><span id="more-1071"></span></p>
<p>It&#8217;s not that I never heard of it before, but somehow I dismissed it as, well, scientific or academic: Scientific Linux. Probably I&#8217;m not the only one who was misguided by its name. The obvious questions are: Is it fully binary compatible with RHEL? What additions or modifications are included? Has anything important been removed? Who&#8217;s backing and supporting it? And: how up to date is it?</p>
<p>I had a close look at the website and repositories, and I was in for a very pleasant surprise actually: Scientific Linux is maintained by major scientific organisations, hence the name, and claims full binary compatibility with <a href="http://ftp.plusline.de/scientific/6.0/x86_64/os/sl-release-notes-6.0.html#changed" target="_blank">only very minor changes</a> to the base installation of RHEL 6. The main goal of Scientific Linux (or &#8220;SL&#8221;) is to provide their users with an easy to customise RHEL-clone, which can be wrapped up into entirely new distributions (&#8220;Spins&#8221;). Also they provide a bit of entirely optional stuff, basically additions to the original. The important thing is: SL is a full clone, and it is entirely built from RHEL&#8217;s source RPMs (which can be found in SL&#8217;s repository of course, as the GPL requires).</p>
<p>How long has it been around, and how likely is it that it will last? Again a nice surprise: It&#8217;s actually older than CentOS, by about one year, and first appeared early 2004. And obviously it&#8217;s got the resources (and manpower) to keep it going. Their updates are released much faster than CentOS&#8217;s. For example for 6.0:  RHEL Nov/2010, SL Mar/2011, CentOS Jul/2011.  For 6.1: RHEL May/2011, SL Jul/2011, CentOS not yet available. Or for 5.7: RHEL Jul/2011, SL and CentOS both not released yet. However, SL has all the upstream updates available. The latest updates are from yesterday and include the issues in DHCP, Firefox et al, as announced by RedHat two days ago. None of these recent updates are in CentOS&#8217;s CR repository, despite the two-day old promise that said updates would be made available via CR within 24 hours. The latest CR updates are 5 days old. For me personally it doesn&#8217;t matter, because I&#8217;m not affected by the issues which were fixed since then; but others may be.</p>
<p>Don&#8217;t get me wrong. Five days is not a long time, especially as rolling everything out across the board will take a few days as well, given typical enterprise planning pace and decision making. However, it&#8217;s not really continuous and not in line with Karanbir&#8217;s own guesstimates.</p>
<p>Anyways. Time for some hands-on impressions. Or, wait, what do we expect to see in a binary-compatible RHEL-clone, which we haven&#8217;t seen in CentOS already? Exactly, despite some branding changes it is the same. The installed packages are identical as well, except the tiny differences mentioned above. In fact you could go install CentOS 6 and take the SL update repositories to update to more current packages (or SL 6.1). I&#8217;ve done that to prove my own theory. No surprises there. It&#8217;s not the most elegant way of updating CentOS, but certainly even less intrusive than using other third party repositories, and lesser trouble than building your own updates from RHEL&#8217;s source RPMs, believe me. Plus, SL&#8217;s updates originally come from RHEL.</p>
<p>Or&#8230; well&#8230; you could of course switch to SL altogether, given that you get essentially the same product, with shorter update delays. Taking the background, history, manpower and all that into account, the seemingly academic distribution actually looks a lot more enterprisy at the moment than CentOS does. I hope Karanbir Singh and his team can fill that gap very quickly. I&#8217;m not too keen on switching to SL, and I know that the CentOS team is very committed and doing a great job. But if we can&#8217;t get at least latest security updates for CentOS in a timely manner, it might become inevitable to switch.</p>
<p>That doesn&#8217;t mean that I will hastily switch the distributions of ~100 installations; nor should anybody else rush that decision. But come the time that we put 6.x in production, we might as well go for SL then. However, that&#8217;s certainly not going to happen this year any more, and requires careful side-by-side evaluation first, which is starting as I write this, and will last for months. How close we get to switching to SL seems to depend solely on CentOS; if they manage to get back to normal pace, this whole consideration may become obsolete. It&#8217;s good to know though that there are viable alternatives if need be.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/08/scientific-linux-an-alternative-to-centos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FreeBSD 8.2 on Xen using Para-Virtualisation, Step-by-Step</title>
		<link>http://sysconfig.org.uk/2011/08/freebsd-8-2-on-xen-using-para-virtualisation-step-by-step/</link>
		<comments>http://sysconfig.org.uk/2011/08/freebsd-8-2-on-xen-using-para-virtualisation-step-by-step/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 18:55:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://sysconfig.org.uk/?p=911</guid>
		<description><![CDATA[Using FreeBSD on Xen is not exactly uncharted territory any more these days, however you&#8217;ll often find that people use hardware virtualisation (HVM) instead of para-virtualisation (PV). The latter can unleash quite a bit more potential, and of course features like memory ballooning, live migration, attaching of network interfaces or storage at runtime, etc.  Some [...]]]></description>
			<content:encoded><![CDATA[<p>Using FreeBSD on Xen is not exactly uncharted territory any more these days, however you&#8217;ll often find that people use hardware virtualisation (HVM) instead of para-virtualisation (PV). The latter can unleash quite a bit more potential, and of course features like memory ballooning, live migration, attaching of network interfaces or storage at runtime, etc.  Some of these features may not yet be supported very well, but I&#8217;ve got trust in the FreeBSD community! (I only wish my C/C++ wasn&#8217;t so rusty and I had focused more on system-level development in the past. But well, writing tutorials to help others use it isn&#8217;t too bad either, is it? <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_razz.gif?9d7bd4" alt=':P' class='wp-smiley' /> )  Problem is that documentation with regards to this subject is scattered all over the place and often outdated.</p>
<p>So anyways, enough waffle here. Those of you who are interested, should follow this link: my step-by-step guide on <a title="Xen FreeBSD 8.2 DomU" href="http://wiki.sysconfig.org.uk/display/howto/Xen+FreeBSD+8.2+DomU+%28PV%29+--+Step+by+Step+Howto">how to set up a FreeBSD PV guest from scratch</a>, including pygrub support. The tutorial will walk you through all the steps required from setting up an empty stub, over creating a HVM guest, to transforming that into a PV guest (or even hybrid, if you wish).</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/08/freebsd-8-2-on-xen-using-para-virtualisation-step-by-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GlusterFS, a workhorse that needs to be tamed</title>
		<link>http://sysconfig.org.uk/2011/07/glusterfs-a-workhorse-that-needs-to-be-tamed/</link>
		<comments>http://sysconfig.org.uk/2011/07/glusterfs-a-workhorse-that-needs-to-be-tamed/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 19:51:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=671</guid>
		<description><![CDATA[I&#8217;m sure by now most of you will have heard of GlusterFS, which allows you to store data on a very large scale, replicated, striped, or both &#8211; across multiple physical boxes. At the face of it, and if you believe the marketing, it is THE most reliable and fastest solution. And yes indeed, it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure by now most of you will have heard of <a title="GlusterFS Community Website" href="http://gluster.com/community/documentation/index.php/Main_Page" target="_blank">GlusterFS</a>, which allows you to store data on a very large scale, replicated, striped, or both &#8211; across multiple physical boxes. At the face of it, and if you believe the marketing, it is THE most reliable and fastest solution. And yes indeed, it has got massive potential, and it has matured a lot over the years since I last wrote about it. However, it still has got a few nasty pitfalls, which you need to be aware of before deploying it into a production environment. You should really test thoroughly how it copes with your workload, and how your applications and infrastructure behave in case of failure.</p>
<h2><span id="more-671"></span>What is GlusterFS, and what is it not?</h2>
<p>You can think of GlusterFS as a RAID device, which works across the boundaries of a single physical disk array. Take RAID-1 for example, which mirrors data between two identical disks. In GlusterFS&#8217;s jargon, you run two <em>bricks</em> in replicate mode, where a brick is defined as storage in general terms; it can be an array of disks (which could use RAID), a single disk, a partition, a directory. Anything that can be mounted into your filesystem hierarchy qualifies as a brick. The key feature of GlusterFS is now, to treat bricks on different physical machines as one volume, which can be accessed by any number of clients. It can be mounted either via Fuse/GlusterFS client, or even via NFS or CIFS/Samba.  You can use RAID-0 style striping for read speed, RAID-1 style mirroring for real-time replication, RAID-10 for both, or you can go beyond any of those and spread the stripes or mirrors across any number of bricks. 4-node replication? No problem at all. GlusterFS gives you truly enormous flexibility and performance when it comes to making large amounts of data available across multiple nodes.<br />
Since version 3.2 (if I&#8217;m not mistaken), they have even added GeoReplication, which allows a Master/Slave setup, where the slave can be a local or remote site. Be it for backups or to have a standby version of your application in a different geographical location&#8230; it&#8217;s possible. Due to the fact that GeoReplication does not require locking or synchronous replication, the network speed to your remote site isn&#8217;t that important either. It copes well with it.</p>
<p>This sounds very different than for example a DRBD/GFS2 or DRBD/OCFS2 setup, doesn&#8217;t it? And indeed it is! GlusterFS, unlike DRBD, is not providing a block device. What it means is that it compares hashes of files, and if files on nodes differ (for example after a failure), it will copy entire files across, not only the changed blocks. In normal day-to-day operation that&#8217;s not a big problem, in particular as you get a lot of flexibility, which is unmatched by other solutions. Where it does make a difference is during recovery. More on that in the Caveats section.</p>
<h2>A variety of different connectors</h2>
<p>I mentioned earlier that you can use a couple of different ways to connect to your GlusterFS volumes. First, there&#8217;s their own GlusterFS client, which uses the kernel&#8217;s Fuse layer. This client is Gluster&#8217;s recommendation, if your workload requires a high amount of fast write operations. If your workload is more about reading small files quickly, they recommend NFS. (The NFS server is part of the glusterd daemon, which serves the volumes to the clients.) Samba/CIFS is probably mainly targeting Windows clients.</p>
<p>All these connectors have their advantages and disadvantages. You want to test that thoroughly for your particular workload. Also, in SELinux environments, you will require some tweaking of your policies, if you use the GlusterFS client, whereas NFS is a lot more straight forward (don&#8217;t forget that apache needs to be allowed to access NFS directly if that&#8217;s your intention; <em>setsebool -P httpd_use_nfs=on</em> is your friend). I know most people find it easier to switch off SELinux altogether, but for me personally that is <em>never</em> an option. I&#8217;d rather spend hours tweaking the SELinux policies, if necessary. Anyhow, the bottom line is that both NFS and CIFS make GlusterFS very attractive for platforms beyond Linux. FreeBSD for example, although I&#8217;m not sure if the native client has reached a production-ready state there yet; I shall give that a spin soon, and in the meantime NFS will do.</p>
<h2>Performance</h2>
<p>As a rule of thumb you can say that high-availabily, robustness, scalability etc always come with a downside: write performance. During write operations, all nodes need to be kept in sync, which means that the weakest &#8220;link&#8221; (or slowest disk for that matter) together with some locking and network/protocol overhead determines the actual write speed. That is normal. (Note: pure throughput must not be confused with the time it takes to actually be able to access a file on a different node than it was written to)</p>
<p>For that reason you can never expect a high availability file system to solve all your problems. There&#8217;s no such thing as &#8220;one size fits it all&#8221;. Your application need to be cluster/HA aware. In practice that means you will have to select carefully which type of information you store where. This is of course true for GlusterFS, too. However, when it comes to read performance, GlusterFS is actually very fast. Not as fast as a local block device, obviously, but personally I wasn&#8217;t able to tell the difference between native NFS and Gluster&#8217;s NFS implementation. The GlusterFS client (fuse/glusterfs, not NFS) however seems to be a little bit slower reading data, while being faster writing. It really depends on your workload. Bottom line is: GlusterFS is fast and flexible, which alone is a big plus over many other solutions. For maximum read performance you can of course use stripes (data scattered across multiple nodes), which the glusterfs client connects to simultaneously. It&#8217;s kind of obvious that in particular big files benefit from such a setup.</p>
<h2>Caveats</h2>
<p>If you intend to deploy GlusterFS, you better plan a serious amount of time for the first tests, integration into your setup, including benchmarks and failover. GlusterFS is powerful and not too difficult to get started with, but you&#8217;ll soon run into various rather specific questions, which aren&#8217;t documented well (or not at all). Quite frankly the online documentation is poor, or rudimentary. Obviously Gluster, a business, wants to sell their expertise, and there&#8217;s nothing wrong with it. So be prepared to browse mailing list archives or hang out in #gluster in irc.freenode.net or so.</p>
<p>GlusterFS has matured a lot over the last years, and you certainly don&#8217;t need to be worried about losing data (after all it&#8217;s filesystem based and you can copy anything out of the bricks&#8217; directories directly, if you wish). However, some major issues and pitfalls still exist.</p>
<ul>
<li>If you reintroduce or replace a node, which was either faulty or offline for a while, the self-healing will transfer entire files back from up-2-date nodes onto the reintroduced one. This consumes a lot of network bandwidth, and even worse, CPU load (possibly due to the hash comparison). If a GlusterFS brick lives on a box together with other services, you will experience a significant performance hit.</li>
<li>Large files are locked while being replicated. In practice that means that you really can&#8217;t use GlusterFS as a backend for VMs at the moment, unless recovery always happens in a controlled manner at times where you can afford to shut down running VMs for the entire duration of the healing. That somehow defeats the purpose of a high-availability storage cluster.<br />
However, a GlusterFS engineer has told me earlier today on irc.freenode.net that this issue will be tackled in GlusterFS 3.3, if not earlier. Only a question of months, I suppose.</li>
<li>You absolutely must synchronise the system time of all bricks. If you&#8217;re not doing that already anyway, do it before deploying GlusterFS. (use NTP for your own sanity)</li>
<li>Make sure that the bricks of one volume are of identical size and that you don&#8217;t by mistake fill the disk space by other means. I had a situation the other day where I wanted to replace a brick; what I didn&#8217;t realise first was that someone set a disk quota on the new brick. Consequently it stopped writing long before all data could be copied. However, GlusterFS did not warn me, nor did it report an error; it actually confirmed successful migration, although only 1/3 of the files were transferred!<br />
Clearly the lack of accessible disk space wasn&#8217;t GlusterFS&#8217;s fault, and is probably not a common scenario either, but it should spit out at least an error message. Imagine what would have happened if I had taken the other node offline after allegedly successful migration! Total mess.</li>
</ul>
<p>Presumably none of these things would have happened, if I had taken their commercial offerings. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' />   Those of you who prefer D.I.Y., better be prepared to spend a serious amount of time to fit it into your use-case and more importantly&#8230; monitor it closely!</p>
<h2>Summary</h2>
<p>GlusterFS has made a lot of positive progress over the last 2-3 years. It&#8217;s very easy to get started, especially on RHEL/CentOS, and it offers enormous flexibility and opportunities. The new CLI makes basic configuration much much easier than it used to be before. With a few simple commands you can create your volumes (on multiple servers, aka &#8220;peers&#8221;, simultaneously). You could say that it&#8217;s actually fun to use GlusterFS!</p>
<p>However, if you (like me) are looking at GlusterFS as a backend for Xen or VMware VMs in order to facilitate live-migration and resilience, you will probably need to wait for version 3.3, unless controlled recovery with planned downtime is an option for you. Might be worth keeping an eye on their <a title="GlusterFS Git Repository" href="https://github.com/gluster/glusterfs" target="_blank">Git repository</a> (I certainly will). While using it to serve files for all sorts of things already, I&#8217;m really looking forward to using it as a backend for Xen soon! <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' /> </p>
<p>Version 3.3 brings some other new promising features, too&#8230; Unified storage, object storage&#8230; I see memcached on the list of dependencies&#8230; looks promising. Beta 1 is out, by the way.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/07/glusterfs-a-workhorse-that-needs-to-be-tamed/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>So long, XenServer</title>
		<link>http://sysconfig.org.uk/2011/01/so-long-xenserver/</link>
		<comments>http://sysconfig.org.uk/2011/01/so-long-xenserver/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 14:08:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=324</guid>
		<description><![CDATA[Citrix XenServer is great. No really. As long as you don&#8217;t want to do uncommon things like, say, replacing a network card which is your management interface, or deleting snapshots and expecting to get the freed space back instantly, XenServer is solid and very easy to setup and use. With a few clicks you can [...]]]></description>
			<content:encoded><![CDATA[<p>Citrix XenServer is great. No really. As long as you don&#8217;t want to do uncommon things like, say, replacing a network card which is your management interface, or deleting snapshots and expecting to get the freed space back instantly, XenServer is solid and very easy to setup and use. With a few clicks you can set up VMs with just about any available OS, attach them to a network interface or even VLAN [more on that later], and are only a few more mouse clicks away from starting it. I&#8217;ve run various different OS on it: a bunch of Linux flavours, FreeBSD, Solaris, Windows. It runs and runs and runs.</p>
<p>So where&#8217;s the <em>but</em>? Here it comes: &#8230;<em>but</em> if something unexpected happens, you are seriously screwed. Here are a few examples from the past couple of months.</p>
<p><span id="more-324"></span></p>
<p><strong>Changing a NIC,</strong> which is also management interface, of a pool server &#8212; This was about the worst nightmare I&#8217;ve ever had. What you&#8217;d expect to do is: shutdown the machine, open it, replace the NIC, close it, switch it on again, wait for it to boot and start the VMs, done. What really happened is: I had to actually wipe and re-install the whole box, because there was apparently no documented, reverse-engineerable, or otherwise known way to just simply change the MAC address somewhere, because that is managed by the pool master. Now, as the NIC was broken, the master wasn&#8217;t able to communicate with the pool server any more (not even on the second NIC, because that was not the management interface). Attempts to change it failed. Not even the &#8220;xe&#8221; tool was functional any more, so I couldn&#8217;t really gather the UUIDs in order to search through configurations etc. The master refused to talk to the pool server, and the pool server with the broken (and afterwards replaced NIC) refused to let me change anything, because that should be done on the master. Catch 22.</p>
<p>I consulted the <a href="http://forums.citrix.com/thread.jspa?threadID=278550&amp;tstart=0">official support forum</a>, but nobody knew an answer there either. I&#8217;m sure there is a way to change it easily. After all it&#8217;s a Linux box with a modified Xen, but still not an unaccessible blackbox. Hang on&#8230; actually it felt a bit like that. I would like to think that Citrix certainly knows an easy solution, but as I&#8217;m not paying thousands of Pounds for a product, which is almost entirely based on free software, they of course kept quiet. (The bloody toolstack, which complicated things, is their own development, by the way.)</p>
<p>End of that experience was that I had to remove the server from the pool (XenServer would then wipe the box, so you can&#8217;t re-join the pool later, either&#8230; awesome). After a clean setup and restoring all the VMs from previously created snapshots, the machine was finally able to join the pool. That was 6 hours after the NIC broke. Fortunately all VMs have an identical twin running on another machine, so it didn&#8217;t cause downtime (except a few minor hiccups while I was fiddling about with network settings). Otherwise all websites/applications would have been offline for 6 hours.</p>
<p>Without the XenServer toolstack, I could have resolved the issue within 10 minutes, which includes all of the steps mentioned earlier (what I would have expected).</p>
<p>I learned my lesson from it. As live-migration of VMs isn&#8217;t really necessary in most cases (my customers&#8217; applications don&#8217;t benefit from it), it&#8217;s actually better to not form pools of your servers. Disconnected standalone servers are a lot easier to maintain and you don&#8217;t risk side-effects with pool members, because there aren&#8217;t any. The only real downside is that VLANs need to be configured individually on each server. Same applies to shared resources (NAS etc). But that&#8217;s fine.</p>
<p>Another almost unbelievable example is deleting <strong>snapshots</strong>. I create them all the time, because if something goes wrong, or someone breaks a VM setup, you want to be able to roll back to a previous version. Snapshots are one of the biggest advantages of virtualisation. A whole VM can be brought back to an older state within seconds. Or you can export it and reimport it elsewhere, clone another instance from it, work there, swing later. Anyways, if you use that feature often, it fills your disk (even the huge disks you get nowadays). So you regularly delete them and get your space back. Right? Nope, wrong. With XenServer you may or may not get your space back. When your monitoring tells you that you are running out of disk space, although you haven&#8217;t done anything but rotating snapshots in a while, you scratch your head in disbelief. Well, at least I did. Unfortunately, the <a href="http://support.citrix.com/article/CTX123400" target="_blank">official documentation confirms</a> my observations. When I first read that <strong>reclaiming space causes downtime</strong>, I wasn&#8217;t sure if laughing or crying was the best course of action.</p>
<p>In a production environment, you can&#8217;t just go ahead and suspend VMs just to get space back. Even if you only reduce performance (without causing downtimes, as we&#8217;re running twins of everything), you need to make affected customers aware of it. And how do you explain that? &#8220;<em>Sorry, Sir, I need to suspend your service, because I need to delete old snapshots.</em>&#8221; They&#8217;ll think you&#8217;re taking the piss.</p>
<p>Again, this &#8220;feature&#8221; is brought to you by Citrix&#8217;s toolstack, not Xen. If I decide to delete an LVM-based snapshot of a running VM on Xen, I can do that any time. No need to suspend anything or to manually reclaim free space afterwards.</p>
<p>My favourite subject is <strong>VLANs</strong>. I don&#8217;t know how many hours I&#8217;ve wasted trying to find what I did wrong, just to figure out in the end that it was not my fault&#8230; Citrix apparently manipulated the bridge code and never really tested it. You have to actually install ebtables (iptables for bridges, if you will) to <a href="http://forums.citrix.com/thread.jspa?threadID=245149&amp;tstart=0" target="_blank">work around that issue</a>. I observed exactly the same thing as the poster there, and many others did, too. Their forums are full of problems related to VLANs and NIC bonding. Problems get worse with two NICs. VLANs may work out-of-the-box on both, only one, or none of the NICs. Apparently it depends on the used NIC (well, I&#8217;m assuming here that nobody uses old NICs without VLAN support any more nowadays), which of the NIC is management interface, and a couple of other factors like weather, mood etc. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_razz.gif?9d7bd4" alt=':P' class='wp-smiley' /> </p>
<p>Once you know about the workaround mentioned earlier, you can solve it. But now, when you update your XenServer version, you can&#8217;t rely on Citrix. They might just remove the required kernel modules so that ebtables wouldn&#8217;t work any more. Sounds unlikely? Well, reality is that ebtables did work until XenServer version 5.5, but in 5.6 the kernel support was removed (see <a href="http://forums.citrix.com/thread.jspa?threadID=245149&amp;start=15&amp;tstart=15" target="_blank">last post here</a>). To fix it, you end up downloading the XenServer SDK (which includes all the open source bits they are using) and recompile the kernel yourself.</p>
<p>I won&#8217;t go deeper into this subjcet, but there are several issues with bonded NICs as well. And the management interface can <em>never</em> be on a tagged VLAN. All those are restrictions/problems solely related to Citrix&#8217;s stuff. Linux itself lets you create any combination of bonds and VLANs on as many interfaces as you want to. Unfortunately, you need to unlearn all about Linux network configuration, because if you try applying your knowledge, XenServer will overwrite your configuration as soon as you reboot (best case) or use its API or Windows client to manage NICs/VLANs.</p>
<p>I could go on and on and on. There are many other quirks like being unable to shutdown a VM when for some reason it can&#8217;t attach to a VNC console (but keeps trying, although you absolutely don&#8217;t need a console to shut it down); having a &#8220;force&#8221; option for many commands, which is useless, because it doesn&#8217;t force anything; being unable to remove stale shared storage; having to work around limitations which would for example disallow you to build a pool with an i7 920 and an i7 930 server; and quite a few more, which are of minor relevance in a production environment.</p>
<p>Don&#8217;t get me wrong. If you dig deep enough, you will find problems in any similarly complex software. And Citrix&#8217;s XenServer is not a bad product at all. Much of the functionality like live-migration isn&#8217;t available in VMware&#8217;s free version ESXi, and said free version doesn&#8217;t run on top of CentOS but on a custom Linux, which officially you can&#8217;t access via SSH (there are ways though, but you can&#8217;t expect <em>any</em> support at all). Also, XenServer&#8217;s GUI is self-explanatory and easy to use &#8212; and certainly one of the main reasons for using XenServer, because whoever is going to use it after you set it up for them, they won&#8217;t have many problems getting started.</p>
<p>However, if you don&#8217;t have lesser knowledgeable people using it later, and if you don&#8217;t mind going the extra mile, you probably get most flexibility and reliability if you set up Xen instead (the vanilla or &#8220;real&#8221; one, not XenServer). XenServer doesn&#8217;t really provide any additional functionality, which isn&#8217;t available in Xen. (Some people even say the opposite is true, and you only get full Xen functionality if you purchase XenServer&#8217;s extra licenses; I wouldn&#8217;t go that far.) It does add convenience with its GUI and toolstack though, which you&#8217;d otherwise have to implement yourself &#8212; snapshots, shared storage use, starting up any type of guest OS etc. Most of those things aren&#8217;t exactly rocket science; only a few are a bit more tricky. But you can script/automate them <em>as you please </em>and you don&#8217;t need to expect any bad surprises caused by 3rd parties.</p>
<p>For example, I disabled Xen&#8217;s bridging code (by commenting out a single line in their scripts) and do the whole network configuration with standard OS tools, keeping it independent and consistent for future updates. (<a href="http://wiki.virtastic.com/display/howto/Xen+3.4.3+on+CentOS+5.5+--+Tutorial" target="_blank">More details here</a>.) Snapshots are easy enough to do with LVM, too. Live-migration I haven&#8217;t tested yet, but it doesn&#8217;t look too difficult to do either. (We don&#8217;t really need that feature here anyway)</p>
<p>What I&#8217;ve struggled with was <a href="http://wiki.virtastic.com/display/howto/Xen+DomU+configuration+examples+-+FreeBSD+and+CentOS" target="_blank">getting different OS running</a>, namely FreeBSD. But now that I have sorted that out, I can easily clone and fork more FreeBSD VMs on the vanilla Xen machines. Hence, Citrix XenServer isn&#8217;t providing any benefits there either.</p>
<p>As you can see (and as the title suggests), I&#8217;m considerably fed up with XenServer&#8217;s quirks; some of them are too huge to accept them in production environments. Consequently, we&#8217;re going to &#8220;migrate&#8221; back to Xen, where we can. (Admittedly, in some environments we won&#8217;t be able to do that for another year or so.)</p>
<p>Once you&#8217;ve worked out how XenServer stores VM backups (yep, they did their own thing there too, and the format is really stupid), it&#8217;s <a href="http://wiki.virtastic.com/display/howto/Convert+Citrix+XenServer+images+to+plain+Xen" target="_blank">not too difficult to convert them</a>. I&#8217;ve done that for both CentOS and FreeBSD XenServer images. They run smoothly on vanilla Xen after converting them back.</p>
<p>Once again the &#8220;keep it simple&#8221; motto wins. Additional toolstacks and bloat cause more problems than necessary, and the manufacturer turns out to be the only one benefitting from it &#8212; as often is the case. So long, XenServer &#8212; Hello Xen!</p>
<p>(Update: Only three hours after I published this, one of our XenServers started <a href="http://forums.citrix.com/thread.jspa?messageID=1525359" target="_blank">refusing to create new VMs from templates</a>&#8230;)</p>
<p>(Update 2: It&#8217;s cursed. Yesterday I was all of a sudden unable to attach any block devices, hence I was unable to start new VMs, reboot existing ones, or increase storage. I&#8217;m <a href="http://forums.citrix.com/thread.jspa?threadID=151301&amp;tstart=30">not the only one</a>, who faces that problem and does not get any help from the experts at Citrix.)</p>
<p>(Update 3, Aug 25th: Done. Last weekend we&#8217;ve transformed the last remaining XenServers to vanilla Xen. Thanks to the twin-design, this went through without any downtimes whatsoever; was a major piece of work though, but certainly worth it. Chapter closed. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' />  )</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/01/so-long-xenserver/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>EC2, Puppet, and some custom Development</title>
		<link>http://sysconfig.org.uk/2011/01/ec2-puppet-and-some-custom-development/</link>
		<comments>http://sysconfig.org.uk/2011/01/ec2-puppet-and-some-custom-development/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 01:37:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[availability]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[uptime]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=300</guid>
		<description><![CDATA[Hello, and a Happy New Year everyone! I have been quiet here for many months due to an incredible work load. Fortunately the festive season gave me some time to breath, and to look into things which I have been wanting to look into for months, namely Amazon&#8217;s EC2 cloud, which has become much more [...]]]></description>
			<content:encoded><![CDATA[<p>Hello, and a Happy New Year everyone! I have been quiet here for many months due to an incredible work load. Fortunately the festive season gave me some time to breath, and to look into things which I have been wanting to look into for months, namely Amazon&#8217;s EC2 cloud, which has become much more interesting (from a business perspective) since they have achieved <a href="http://aws.amazon.com/security/pci-dss-level-1-compliance-faqs/" target="_blank">PCI DSS certification</a>, and Puppet, which is a brilliant tool to automate lots of server (or EC2 instance) management tasks.</p>
<p><span id="more-300"></span></p>
<p>Admittedly the learning curve for both is quiet steep, and everyone&#8217;s well-advised to spend some serious time evaluating them. When I started looking into EC2, I only had a rough idea of all the services they offer. I was quite overwhelmed, how many related services EC2 (or more precisely AWS) entails:</p>
<ul>
<li>EC2, the cloud, which runs your instances (also known as virtual machines, Xen based) in one out of four regions (US East/West, EU, APAC) and one out of two-four availability zones in each region</li>
<li>Elastic Load Balancing (ELB), giving you the opportunity to spread load across instances, obviously</li>
<li>Elastic IPs, allowing you to assign (and re-assign) static IPs to instances of your choice</li>
<li>Simple Storage (S3), which guarantees replication of your stored data in three different locations, enabling it to survive an outage of two entire data centres (or one data centre, if you opt-in for the &#8220;reduced redundancy&#8221; option, which is a little bit cheaper &#8212; you can choose that for every file stored individually)</li>
<li>EBS (Elastic Block Storage), enabling you to create RAID-backed volumes of any size and attach them to any of your EC2 instances; on top of that you can create snapshots (which are internally stored on S3) within seconds</li>
<li>RDS (Relational Database Service), basically a MySQL offering, in either single, single/hot-standby, master/slave, or master/multi-slave setups, with nodes spread across different availability zones</li>
<li>CloudWatch, which entails monitoring facilities for most of the services</li>
<li>CloudFront, a multi-region CDN-like service</li>
<li>SimpleDB, Map/Reduce</li>
<li>Route 53 DNS services (beta)</li>
<li>DevPay, Flexible Payments</li>
</ul>
<p>All these services have one thing in common: They can be managed entirely via different APIs and command line tools. There&#8217;s <em>nothing</em> which you can&#8217;t automate, if you spend some time and effort to actually understand how it all fits together! It&#8217;s certainly very overwhelming in the beginning, and Amazon clearly doesn&#8217;t target customers who might want to fire up one or two instances and that&#8217;s it. It&#8217;s way too complex for that. And it requires an entirely different approach, for example an instance and all its data is lost when you terminate it. And all resources are very dynamic &#8212; for most simple use-cases too dynamic (you don&#8217;t know which IP or hostname your instance will have; most provided OS images won&#8217;t suit your needs, so you&#8217;ll need to build your own). But if you are interested in creating environments for your applications, which come with both high availability and scalability, then EC2 is definitely worth a shot. Amazon gives you the bullet-proof and battle-proven infrastructure and tools &#8212; you need to decide and find a way how to use them for your requirements.</p>
<p>Amazon offer the AWS console for very basic management of your resources. Very basic. You&#8217;ll soon find out that it can&#8217;t offer things, which you really will need:</p>
<ul>
<li>creating a snapshot, which you can use to boot another instance from (or as a backup to start the same instance again, when it fails)</li>
<li>setting triggers for the CloudWatch monitoring (or alarms as they call it in their API)</li>
<li>bundling your instance (or parts of it) and backing up on S3</li>
<li>moving instances between availability zones</li>
<li>configuring the RDS MySQL server</li>
<li>and many more things</li>
</ul>
<p>All of these things can be done via API (in Java, PHP, and other languages, or via command line tools, which can all be downloaded from Amazon). Some of them are trivial, most are not. Flexibility takes its toll. Consequently, you should be prepared to spend some time tailoring your own toolset. There are some 3rd party offers out there (notably the best on is s3cmd, which allows rsync-style file transfers between instance and S3 buckets). They may or may not suit your needs.</p>
<p>I&#8217;ve spent the last two weeks creating my own toolset. With very simple commands I can now build fully bootable AMI images for different Linux setups both in 32bit or 64bit (EC2 instance types differ in terms of architecture!), create bootable snapshots from running instances, detect instance failure and restart from the most recent snapshot (including re-assigning the elastic IP), set tags and other information/attributes on all sorts of resource types, create volumes (empty or from snapshot) and attach them to instances, hook instances into a load balancer, read all relevant CloudWatch metrics and feed them into RRD graphs, clone instances on-the-fly, launch any number of clones, manage security groups and keypairs etc.  Basically everything the AWS console can plus a few necessary features on top of that &#8212; with a single shell command and no more than 2-3 parameters each. I&#8217;m not exactly a developer and started doing this merely as a proof of concept (but then went further than originally intended to). If I can do that, some of you bright-minded developers can do a lot better for sure <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>This was AWS management covered. But how about managing the actual instances (their OS internals)? What if, for example, you want to deploy a web application on four identical, load-balanced nodes?  Should I create a dedicated image for that (not too difficult with my toolset)? Or would it be better to have a look into Puppet at last? I went for the latter. I&#8217;ve got customers on my own clusters outside of EC2 (mostly based on Citrix XenServer), and that environment is growing continuously. It&#8217;s about time that I simplified management there as well.</p>
<p>Consequently, I decided to take my EC2 proof of concept another step further. After getting acquainted to Puppet, I&#8217;ve deployed it on a playground-style bunch of EC2 instances and told it to install/configure various things. The language structure really gave me hard times in the beginning, but once you get used to it, you can almost write it down as you think.</p>
<p>The next thing I wanted to achieve was that puppet connects to the puppet master as soon as the instance is started. There were some obstacles in the way, though: AWS assigns hostnames dynamically, but your puppet master would need to know that hostname in order to sign the certificate used for communication between both. Catch 22 situation. Resolved by writing a tiny web service which allows the instance to figure out and set the hostname I assigned (and dynamically added to a DNS server as well) rather than using Amazon&#8217;s one. This happens during startup just after the network interface comes up, so that all running services use the correct hostname. Puppet then takes over at the end of the first startup of the instance and installs/configures as told by the puppet master. This way you can fire up a whole cluster, hook it into the load balancer, and are ready to go live in just under three minutes. Fully automated. And the monitoring mentioned earlier would pick up metrics via CloudWatch instantly.</p>
<p>I&#8217;ve heard it all in theory before. However, I wanted to see my own working proof of concept for a few things (and some others, which are still in progress). I&#8217;m pretty amazed actually, how much flexibility <em>and</em> reliability (often a contradiction in terms) AWS offers. You just have to embrace a slightly different model of implementing things (you&#8217;ll like the term &#8220;ephemeral&#8221;, which Amazon have chosen for a reason!).</p>
<p>So now the next question would be: How much does it cost. Is it really saving costs as many people state? Frankly, I don&#8217;t know yet. It may do. Surely, it reduces upfront costs, as Amazon won&#8217;t charge any setup or recurring fees, unless you opt-in for their &#8220;Reserved Instance&#8221; schemes, which are actually <em>significantly</em> cheaper in the long run. For example, a Micro instance (640 MB Ram, 1.7GHz Xeon; the smallest instance type) would usually be charged at US$ 0.025 per hour, which equals to US$ 219 per year if running full-time. If you commit to a year, paying US$ 54 one-off, your hourly rate is reduced to US$ 0.01, which together equals to yearly costs of US$ 117.60 or less than US$ 10 per month! That&#8217;s a smashing 50% discount almost. Higher discounts possible, if you can commit to 3 years.</p>
<p>However, the pricing is somewhat difficult to decipher and costs impossible to predict. I don&#8217;t actually know yet, how many IOPs (I/O operations) my EBS volumes and snapshots will generate. I can&#8217;t exactly tell how much S3 storage I will use. Also, I don&#8217;t know exactly what to expect on the inter-availability-zone traffic scale. Or the RDS (MySQL) read/write operations. Surely, previous monitoring gives me very rough estimates, but not good enough to make an educated guess as to what costs to expect on EC2. I will have to keep an eye on that over the next weeks and months, and also find some tools to get all these figures from the usage reports (CSV or XML files, downloadable from Amazon). At least you can see how your usage translates into actual costs for the current billing period, updated every few hours. So the costs wouldn&#8217;t hit you as a big surprise <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>On the plus side, you never pay for any over-capacity, which you would need to account for, if you built everything in-house. When you build infrastructure like that on your own, there are different things, which scale more or less dynamically (if you&#8217;ve got 10 servers already, buying two more doesn&#8217;t do a harm). But you&#8217;ve also got devices where upfront costs are enormous, because you buy them from the point of view, of what you <em>might</em> need in the foreseeable future, not what you do need at this very moment. Storage devices are a good example. A chassis from NetApp with only a few drives cost you an arm and a leg; then you can scale it a bit for a reasonable price; and then you&#8217;ll need another one sooner or later. But you always end up paying for more than you actually use at any given point. Same for networking devices.</p>
<p>Clouds like EC2 take those massive entry-costs from you (and your customers), which saves painful budget discussions. They&#8217;ve got a brilliant, scalable infrastructure, and one would be bold to assume that you could build anything better at a reasonable price (also take availability in distinct and independent data centres into account!). Now that they&#8217;ve got their PCI DSS certification, one of the biggest remaining concerns (what about data security in a proprietary, shared environment?) for many customers is gone, too.</p>
<p>I&#8217;ll go through the other proofs of concept on my list, see how usage translates into actual costs over time, and may then be able to add some very interesting offers to my company&#8217;s portfolio. Stay tuned <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>Surely, the cloud is not the solution to all problems (although it&#8217;s commonly propagated as that), but with decent automation and tools it can improve or at least add value to a variety of services.</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/01/ec2-puppet-and-some-custom-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why I&#8217;m not fond of Ubuntu Servers</title>
		<link>http://sysconfig.org.uk/2010/05/why-im-not-fond-of-ubuntu-servers/</link>
		<comments>http://sysconfig.org.uk/2010/05/why-im-not-fond-of-ubuntu-servers/#comments</comments>
		<pubDate>Sun, 16 May 2010 23:11:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=215</guid>
		<description><![CDATA[Recently I have found myself complaining about Ubuntu Server more often, and people apparently start taking offence. First, let me clarify that I do think that Ubuntu is a very good option for desktop computers, if you&#8217;re not too keen on running commercial operating systems like Windows or Mac OSX. Without Ubuntu founder Mark Shuttleworth&#8216;s help, [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I have found myself complaining about Ubuntu Server more often, and people apparently start taking offence. First, let me clarify that I do think that Ubuntu is a very good option for <em>desktop</em> computers, if you&#8217;re not too keen on running commercial operating systems like Windows or Mac OSX. Without Ubuntu founder <a href="http://www.markshuttleworth.com/biography" target="_blank">Mark Shuttleworth</a>&#8216;s help, Linux still wouldn&#8217;t be that popular on desktop computers. That is a great achievement and certainly helped Linux to become more mature (both on desktops and servers), as wider interest in Linux automatically helped growing the community of developers who participated in various Linux-related and open source projects.</p>
<p>That said, we must not forget Ubuntu&#8217;s focus, which I think (and I will expand on it later) is still valid: desktop and laptop computers.</p>
<p><span id="more-215"></span>Ubuntu aims to bring the latest drivers and technologies to desktops (I will use <em>desktop</em> as a term for desktop computers, laptops, and netbooks here). It has to, because otherwise it won&#8217;t be able to compete with proprietary operating systems (read: Windows and Mac OSX). To achieve that, it has to put the GPL/non-GPL debate (which is a big issue for Debian et al) aside. There&#8217;s a bunch of repositories of not exactly free (or not even open source) software, which is essential to get certain hardware (e.g. graphics cards) and software (e.g. media codecs) working: <em>Restricted, Multiverse, Universe, Medibuntu</em>, etc. Although they are not officially supported, all of them except <em>Medibuntu</em> are included in /etc/apt/sources.list and active, plus they reside on *.ubuntu.com servers. So it&#8217;s a bit difficult to not consider them part of Ubuntu, or at least part of the Ubuntu-Conquers-The-Desktop success, which makes the discussion of <em>&#8220;who&#8217;s responsible for what?&#8221;</em> a bit more difficult to answer. But it&#8217;s a crucial question in an enterprise setup. This is just one example why I think that Ubuntu is not targeting enterprise server environments, and you can&#8217;t be the best choice for something, which you are not focused at. More further down&#8230;</p>
<p>I&#8217;ve just installed Ubuntu Server 10.4 LTS in a virtual machine here to verify whether my past experience still holds true. I went for the Install Ubuntu Server option, and only used defaults (except that I added OpenSSH). So except stated otherwise, I will refer to this version, which is the latest release for servers and allegedly <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition" target="_blank">targets enterprises</a>.</p>
<p>The intention of this article is not to compare Linux distributions with each other or give any recommendations as to which Linux distribution is the best one to go for in an enterprise environment. It&#8217;s not my intention to badmouth Ubuntu or say that it&#8217;s not suitable for servers at all, either. I&#8217;m merely explaining why I&#8217;m not a big fan of Ubuntu, as I&#8217;ve been asked that question a couple of times recently. Okay, maybe I&#8217;ve provoked that question a little. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' />   It&#8217;s no secret though that my favourite Linux distribution for servers is CentOS, if it has to be Linux, or FreeBSD, if the scenario permits and the operating system decision is a matter of what we want to <em>achieve </em>rather than what we want to <em>use</em>. But again, that&#8217;s a separate discussion and beyond the scope of this article. Also, there&#8217;s no &#8220;one size fits it all&#8221;. I have noticed that many people stick to the things they know or like best in many situations, where another operating system or Linux distribution might have been more suitable for a certain job. Although I can&#8217;t scientifically prove it, this seemingly applies to many people who use or did use Ubuntu on desktops. Maybe we should use the &#8220;fanboi&#8221; term not only for Apple&#8217;s repeat customers, but also for Ubuntu users <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>Okay, back to the original question, why I don&#8217;t like Ubuntu on servers&#8230;</p>
<p>Let me first define what my expectations are:</p>
<ol>
<li>There is no such thing as one single server. Servers come in pairs at the very least. I build environments which are as fail-safe as possible (and affordable), load-balanced, robust.</li>
<li>Implementing the very latest developments and technologies usually does more harm than good, because they can&#8217;t have been tested by as many people as older features. I prefer well-tested, solid operating systems. If I really need a more up-to-date version of, say, PHP, then I build a package for that. I don&#8217;t need the entire distribution to include the latest features just because I need only one package to be a bit more up-to-date! (NB: I am talking about feature updates here, not security patches!)</li>
<li>I expect the operating system to provide reasonable security standards and default settings and leave the rest to me.</li>
<li>I prefer using established standard tools and best practices over &#8220;Mate, we&#8217;ve quickly put together a new tool for you&#8221;</li>
<li>I decide what is installed and what isn&#8217;t. I don&#8217;t need the OS to tell me what it <em>thinks</em> is good for me.</li>
<li>Most of all I expect a proper release cycle and thorough testing before labelling something as a final release. (Oh, I did mention that before, didn&#8217;t I? <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' /> )</li>
<li>I don&#8217;t like operating systems or derivates, which are entirely built on top of an existing one. Additional layers cause additional dependencies, often inherit errors, and make it more difficult to track down where an error comes from, and who has introduced it.</li>
</ol>
<p>Let me start with 7., because I hear you saying &#8220;But&#8230;&#8221;. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_wink.gif?9d7bd4" alt=';-)' class='wp-smiley' />   No, CentOS is not built on top of RedHat! It&#8217;s a 100% clone minus proprietary stuff, logos, and license/support costs. Ubuntu however is derived from Debian and has added loads of stuff, which includes many things that Debian refuses to include (e.g. proprietary drivers and non-GPL code in general), while incorporating lots of Debian packages. Remember this <a href="http://www.ubuntu.com/usn/usn-612-2" target="_blank">severe OpenSSL bug</a> exactly two years ago? What happened was that Debian broke the random number generator (making keys predictable) in their OpenSSL package.  The only distributions affected were Debian and all derivates including Ubuntu, but <a href="https://www.redhat.com/security/data/cve/CVE-2008-0166.html" target="_blank">not RedHat or clones</a>/derivates thereof. I don&#8217;t blame Ubuntu for inheriting broken code, because nobody can possibly read and understand the source code of everything. However, that was when I lost trust in Debian (<a href="http://svn.debian.org/viewsvn/pkg-openssl/openssl/trunk/rand/md_rand.c?p2=%2Fopenssl%2Ftrunk%2Frand%2Fmd_rand.c&amp;p1=openssl%2Ftrunk%2Frand%2Fmd_rand.c&amp;r1=141&amp;r2=140&amp;view=diff&amp;pathrev=141" target="_blank">the code change</a> was an utterly stupid attempt to get rid off compiler warnings without understanding what the code does), and as it is the foundation of Ubuntu, I can&#8217;t trust it either. You may call it nitpicking, but making changes (and introducing bugs) to crucial security related features, which would definitely not have gotten the upstream&#8217;s approval, if they had pushed it upstream, is pretty bad stuff. All SSH keys had to be re-generated and SSL certificates replaced. Not  a big deal for only a bunch of servers, but a massive amount of work for an enterprise.</p>
<p>Let me continue traversing the list above. Number 6: Releases. First of all, before installing a new update, I would like to be able to assess what changes will occur to my systems. That&#8217;s what release notes are for. However, if you are on the Ubuntu Server home page and click on Resources and then a bit further down on Release Notes, you in fact end up only with known issues for both Ubuntu Desktop and Server. It takes quite a while to find the actual key specs at least, hidden <a href="https://help.ubuntu.com/community/Server/TechSpecs/1004LTS" target="_blank">somewhere in the wiki</a>. But I wanted to elaborate on release cycles&#8230;</p>
<p>From a server Linux distribution I would expect that it has been presented to a huge group of users prior to its final release. Ideally it goes through various beta or pre-release cycles, giving the users time to test (some things need time to test them properly) and developers time to fix issues. Ubuntu however sets deadlines: every April and October of each year, there&#8217;s has to be a major release. In other words: In a half-year cycle new features have to be selected, introduced, and tested. It doesn&#8217;t seem to be top priority to have rock-solid releases. Let me quote an <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-April/000705.html" target="_blank">Ubuntu developer</a>:  &#8221;<em>And remember that, since this is a long-term supported (LTS) release, there are ample opportunities for <strong>further bugfixes after the final release</strong> by way of the SRU process[2].  Point releases for Ubuntu and Kubuntu LTS will be made at roughly six-month intervals, with the first expected in July 2010 <strong>to address any critical issues not identified or fixed in time</strong> for the 10.04 LTS release.&#8221;</em></p>
<p>I&#8217;m sure he didn&#8217;t mean it, but it sounds like: &#8220;<em>Hurry up. Doesn&#8217;t matter if we can&#8217;t fix things on time, as we&#8217;ll come up with a bugfix release in July anyway.</em>&#8221;  Beta 2, release candidate, and final release were published within only three weeks, by the way. Ubuntu, Ubuntu Server, and Kubuntu at the same time. It does raise questions, doesn&#8217;t it?</p>
<p>If you look at FreeBSD, just to compare two entirely different release policies, you&#8217;ll find that they first work out what issues need to be addressed and which features may be introduced. Then they come up with a very rough schedule. And then, after they have frozen the code, they go through many stages for major releases: BETA 1-4, Documentation updates, Release Candidate 1-3, Release. From the code freeze (except for bug fixes) to the actual <a href="http://wiki.freebsd.org/8.0TODO#head-3b57d56d79b75b38f8c23556ee179978a3244914" target="_blank">release of 8.0</a> in November 2009, it took them 4.5 months. And, as usual, the result is a rock-solid operating system. The minor release 8.1 is planned for July this year (but not yet announced for a good reason). I expect it to be available in September or so. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_wink.gif?9d7bd4" alt=';-)' class='wp-smiley' />  In my opinion, it&#8217;s much more important to get the issues solved rather than sticking to a fixed deadline.</p>
<p>Number 5: I&#8217;m the boss! As I said earlier, I just installed 10.04 LTS Server here. Although I did not select any packages except OpenSSH, I ended up with an installation eating 818 MB on my disk. Hello? It turned out that a whole pile of useless stuff is installed by default: Wireless support, PPP (yeah, good old dial-up!) support, file system support for NTFS and FAT32, tools to compile C/C++ etc. Seriously, that&#8217;s not funny. So the first thing I will have to do is remove all the litter (or scroll through lists of useless crap at install time and deselect there).</p>
<p>Also, I can&#8217;t remember that I have been asked whether or not I wanted AppArmor installed. I don&#8217;t! SELinux has been in the mainline Linux kernel since 2003. I don&#8217;t want that to be removed and replaced with another solution. At least I would like to have a choice. (However, I do embrace that Ubuntu comes with AppArmor now, which is still better than Debian&#8217;s and Ubuntu&#8217;s ignorance towards SELinux or any other security implementations over the last couple of years.)  Although iptables is available, per default it&#8217;s disabled. But instead they have the cool &#8220;ufw&#8221; tool, a front-end to the netfilter firewall, as they call it. What it does is using OpenBSD&#8217;s pf syntax to create rules for iptables. I guess I should like that, because pf&#8217;s syntax makes a lot more sense than iptable&#8217;s. Unfortunately, I don&#8217;t like any &#8220;front-ends&#8221; messing with my settings. On Linux, I expect to use iptables as the common standard. OpenBSD&#8217;s pf (packet filter) can be found on OpenBSD, NetBSD and FreeBSD. So again, I have to remove unnecessary stuff.</p>
<p>Furthermore, in the enterprise section, I would expect thoroughly tested support for DRBD, GFS2, heartbeat, haproxy et al in order to build solid clusters. However, GFS2 is marked experimental in Ubuntu 10.04. So it has not been tested properly in Ubuntu, which is a shame, because it has been on RedHat Enterprise Linux, where it comes from. And as GFS2 is one of the very few cluster-aware filesystems on Linux, I kind of would expect that to be thoroughly tested (GFS and GFS2 have been out there for years). Or why did Ubuntu Server claim to be an enterprise Linux again? Oh right, must have something to do with the Gentlemen&#8217;s agreement between Amazon and Ubuntu to exclusively ease access to Amazon EC2, a proprietary &#8220;cloud&#8221; (don&#8217;t get me started on this term). So what Ubuntu users get is an increasingly strong mix of GPL stuff with proprietary extensions.</p>
<p>Again, I&#8217;m not saying that Ubuntu is bad. And I really do appreciate Mark&#8217;s effort to create a very good desktop Linux, which keeps up with recent technology development and hardware support. For the server, on the other hand, I am a bit more conservative. I don&#8217;t need half-baked support for quite literally everything there. Nor do I need the very latest libraries and features. What I do need is robustness. I prefer a minimal base installation (which includes standard tools and security measurements) and to take it from there. And I prefer things which have been really thoroughly tested. Experimental is a word I don&#8217;t really want to read there. Bottom line is that Ubuntu Server <em>feels</em> a bit like an experimental server Linux for beginners.</p>
<p>That, my friends, is why I&#8217;m not fond of Ubuntu. Admittedly, I got a bit carried away here. And I do know that many of you (especially the Ubuntu &#8220;fanboi&#8221; folks <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_razz.gif?9d7bd4" alt=':P' class='wp-smiley' /> ) will disagree. At the end of the day, every systems administrator has got their own preferences. Each to their own. No Ubuntu for me (unless I&#8217;m being forced to). <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>Now bring on the stones you want to throw at me&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2010/05/why-im-not-fond-of-ubuntu-servers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reducing Downtime with Virtualisation</title>
		<link>http://sysconfig.org.uk/2009/10/reducing-downtime-with-virtualisation/</link>
		<comments>http://sysconfig.org.uk/2009/10/reducing-downtime-with-virtualisation/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 16:15:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[downtime]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[upgrades]]></category>
		<category><![CDATA[uptime]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=209</guid>
		<description><![CDATA[I&#8217;m not going to explain in depth how virtualisation can reduce downtimes in general, or what you need to achieve that. But from todays practical experience, I&#8217;d like to give one example. Let&#8217;s say you are running FreeBSD on a server, and you need to do a major upgrade (that is from 6.x to 7.x). [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not going to explain in depth how virtualisation can reduce downtimes in general, or what you need to achieve that. But from todays practical experience, I&#8217;d like to give one example.</p>
<p>Let&#8217;s say you are running FreeBSD on a server, and you need to do a major upgrade (that is from 6.x to 7.x). This process can take ages, if your machine is not running the latest hardware, and/or you have a lot of 3rd party software installed (ports). I&#8217;m not talking about an impatient person&#8217;s definition of ages, or about the one of a customer, who claims hundreds of quid financial loss in 20 minutes downtime on Sunday morning 1:30 am. <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':)' class='wp-smiley' />  I&#8217;m talking about ages as in <em>many</em> hours.</p>
<p>Of course, a FreeBSD upgrade doesn&#8217;t require to be offline while it&#8217;s proceeding. But you will need to reboot. And as a rule of thumb, one can assume that dependencies in the ports will break. Usually only one or two of them, but it requires manual work, and can cause an unpredictable partial downtime, which is longer than it takes to reboot the machine.</p>
<p>So how can virtualisation help here? In a nutshell, it allows you to do the whole upgrade on another virtual machine. You can take a snapshot of the production machine, start it as a new VM, and do your work there, while the original VM stays online.</p>
<p>This also reduces stress enormously, because if you break something during the upgrade, there&#8217;s no time pressure to fix it. You can spend as much time as it takes to finish your work properly. Cool, isn&#8217;t it?</p>
<p>And when you&#8217;ve finished your work, you can inform your customer about an upcoming 1 or 2 minutes downtime for a major system upgrade (which you have already finished). <img src="http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif?9d7bd4" alt=':-)' class='wp-smiley' /> </p>
<p>All you need to do when the time has come, is to sync files which changed during run-time (for example mail folders), change the network settings in order to make your upgraded snapshot take over, and then you can safely decommission the old VM. It really is as easy as that.</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2009/10/reducing-downtime-with-virtualisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching using memcached
Object Caching 1780/2015 objects using memcached

Served from: sysconfig.org.uk @ 2012-05-21 07:18:55 -->
