<?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 &#187; Operating Systems</title>
	<atom:link href="http://sysconfig.org.uk/category/os/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>Thu, 25 Aug 2011 10:41:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<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>3</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' 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' 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' 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>4</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' 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' alt=':)' class='wp-smiley' />  )</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2011/01/so-long-xenserver/feed/</wfw:commentRss>
		<slash:comments>3</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' 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' 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' 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' 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' 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' 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' 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>Ubuntu or FreeBSD?</title>
		<link>http://sysconfig.org.uk/2009/07/ubuntu-or-freebsd/</link>
		<comments>http://sysconfig.org.uk/2009/07/ubuntu-or-freebsd/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 23:32:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating Systems]]></category>

		<guid isPermaLink="false">http://sysconfig.ossafe.org/?p=85</guid>
		<description><![CDATA[That&#8217;s one of the most stupid controversial questions I&#8217;ve ever read on Twitter. (Ok, I haven&#8217;t used Twitter for a long time yet, so I&#8217;m prepared for worse questions.) It shows that 140 characters cannot transport any substantial information really. The funny thing is that people indeed try to answer that question on Twitter &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>That&#8217;s one of the most <span style="text-decoration: line-through;">stupid</span> controversial questions I&#8217;ve ever read on Twitter. (Ok, I haven&#8217;t used Twitter for a long time yet, so I&#8217;m prepared for worse questions.) It shows that 140 characters cannot transport any substantial information really. The funny thing is that people indeed try to answer that question on Twitter &#8212; with 140 characters &#8212; recommending one or the other operating system to the one who asked. Total madness.</p>
<p>First of all, questions like this, which do not tell anything about the author&#8217;s aims and intentions, are not answerable. One could as well ask: Ferrari or Landrover? I&#8217;d suggest taking the Ferrari for the next cross-country rally, whereas the Landrover is definitely the best choice for the F1 track. Anyway, you got my point. <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This blog post has potential for flamewars between the lovers of BSD and Linux, and also between lovers of either of the Linux distributions. So let me emphasize that this is my personal opinion.</p>
<p><span id="more-85"></span>Let me kick off with two certainly arguable statements and take it from there:</p>
<ul>
<li><strong>Production</strong> environment: The operating system of your choice should be the one, which you are most comfortable administering, because it&#8217;s your job to secure it to the best of your knowledge and solve upcoming issues within the least possible amount of time and effort.</li>
<li><strong>Experimental</strong> environment: Do whatever you want to. Experimental environments are meant to gain more knowledge, experience or compare it with other environments.</li>
</ul>
<p>In this context, let&#8217;s be clear about this: Any server that is accessible from any other untrusted machine (aka Internet), is a production environment! Why so? Because it could easily be turned into a threat to others (if not secured properly), which can cause trouble with your ISP or with third parties, which leads to costs, and in the worst case lawsuits! This means: Although you run it for your own pleasure, you have to ensure that your pleasure does not become a nuisance to others &#8212; be it by your mistake or by third parties taking over your server. Should be common sense, but apparently it&#8217;s not.</p>
<p>Now that we&#8217;ve understood that the playground approach is misplaced in a server environment, you may want agree with my previous statements. <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><em>&#8220;I hear you, but which Linux/BSD/Unix is the best for which aims?&#8221;</em> Let me first briefly explain how things have evolved and why a FreeBSD user will have problems recommending <em>any</em> Linux distribution.</p>
<p>Unlike any Linux distribution, which strictly speaking is merely the kernel bundled with a bunch of (mostly) GNU tools and programs, FreeBSD is a real operating system, where all core elements are maintained by a central &#8220;authority&#8221;, the FreeBSD Project (which is funded by donations collected by the FreeBSD Foundation). That ensures a high level of integrity and as a result stability. FreeBSD (like NetBSD) is a fork of the original BSD by the Berkeley University, which was derived from AT&amp;T Unix. Nowadays you find three major BSDs out there: FreeBSD, NetBSD, and OpenBSD (which was forked from NetBSD). They are maintained by their core teams, and cross-port various functionality whenever suitable (e.g. OpenBSD&#8217;s packet filter pf). When you install any of these BSD&#8217;s base, you will end up with a working operating system and all core tools needed to administer it.</p>
<p>When you install any of the approximately 250 different Linux distributions out there, you more precisely install a third-party bootloader, the Linux kernel, and a whole bunch of third-party (GNU) tools and software. What exactly you end up with, depends on the taste and policies of the distributors. It should be easy to understand that a distribution which focuses on including the latest drivers and software in every release, cannot be as stable as a distribution with a rather long release cycle that has got a big number of enterprise-level users. Essentially they are all the same, but the collection of software and tools (and their branding and look&amp;feel) differs. As various GNU projects have got a lot of cross-dependencies (e.g. PHP with GD, ImageMagick, MySQL, to mention a popular one), it is a tedious and time-consuming task to bundle the right versions with each other in order to get a stable system.</p>
<p>Or in other words: A Linux distributor has to ensure that their selection of <em>third-party software</em> form a stable system, whereas the major BSD derivates <em>maintain the core system</em> themselves. In the BSD world, third-party software isn&#8217;t part of the core functionality. Hence BSD doesn&#8217;t depend on the good will of other software projects. However, you can of course get a lot of third-party software, too: The portstree (in FreeBSD for example), currently contains over 20,000 different programs, carefully selected and tested, and linked against other ports and/or the core libraries. As the latter are provided by the BSD maintainers, you can be sure to have a solid foundation.</p>
<p>If you look at SELinux, it was a rather <span style="text-decoration: line-through;">chaotic</span> uncoordinated situation in the beginning: SELinux was developed and maintained by the NSA, and was not part of the kernel initially, but you could compile it as a kernel module (don&#8217;t get me started on kernel modules on a server). The tools to actually use it are part of the GNU coreutils package &#8212; third party software, strictly speaking. When SELinux reached a stable status and was supported by the Linux kernel, some distributors decided to include and activate it by default (Fedora, RHEL, and CentOS), while others didn&#8217;t make use of it at all (Debian, Ubuntu). So security was a matter of the distributor&#8217;s taste. That happens when there&#8217;s no central &#8220;authority&#8221; which ensures continuity, and coordinates kernel (and related) development. A sad result was that people didn&#8217;t want to get used to SELinux, because it wasn&#8217;t (and still isn&#8217;t) accepted as a standard and must-have. Even nowadays you read recommendations like <em>&#8220;use &#8216;setenforce 0&#8242;&#8221;</em>, which effectively switches SELinux restrictions and its security improvements off! As far as I know, only RHEL and CentOS install and activate SELinux and its utilities by default. They are also the only mainstream Linux distributions which activate the iptables firewall by default, <em>and</em> apply a restrictive ruleset, by the way.</p>
<p>You&#8217;ll still even find Linux distributions, which allegedly target the server market, without SELinux utilities installed. How can you ignore huge security enhancements in a server environment? Ah right, the distributor has got a different taste and would probably add <span style="text-decoration: line-through;">no</span> other security tools.</p>
<p>Apologies for my sarcasm. Linux is not all bad, but you must not expect any distribution to be as rock-solid as any of the three main BSDs. Let&#8217;s check out which Linux is the least of all evil <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The first commercial distribution back in the early 90&#8242;s was Slackware, which nowadays is only being used on a minority of Linux-based servers. Slackware is sort of considered geeky.</p>
<p>A couple of years ago, the big players were RedHat Linux in the English-speaking countries, and SuSE in the German-speaking areas. That has changed. RedHat Linux for the commodity market does not exist any more (it is now the community-maintained Fedora Linux, supported by RedHat). RedHat&#8217;s own Linux distribution is RedHat Enterprise Linux, which obviously targets enterprise-level customers, who are willing to pay for licenses and professional support. For those who don&#8217;t, CentOS as a de-branded RHEL copy has become more and more popular. It claims 100% binary compatibility with RHEL, without asking for license fees, and without offering professional paid support. The target group for both RHEL and CentOS are enterprises and server installations, whereas Fedora targets the desktop market.</p>
<p>Especially in Germany, Debian Linux is also widely used. The easy package management with <em>apt-get </em>certainly played an important role in its success. Fedora introduced <em>yum</em> to make RPM package management as easy. (Open)SuSE seems to lose market share. YaST as their package manager could be one reason.</p>
<p>Ubuntu was started as a Debian derivate just a few years ago, and initially aimed the desktop market trying to keep up with current hardware drivers and new features. Apart from its LTS (long term support) versions, which are being released once every two years, the life cycle of the half-year releases is very short. However, Ubuntu has experienced great success and played an important role in making Linux a widely accepted desktop operating system. In my opinion it is not the best choice for server installations where robustness is more important than introducing the latest features and device drivers, though. It also lacks SELinux utilities in its default installation.</p>
<p>For the tough cookies, there&#8217;s also Gentoo Linux, which covers kind of a niche market: people who believe in stability by compiling everything from scratch (and most obviously took BSD as an example), but who are reluctant to leave the Linux terrain towards BSD. <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Why am I saying this? Simply because compiling from scratch is rather not suitable for newbies, but all the effort still doesn&#8217;t provide a BSD level of stability in a Linux environment as too many bits and pieces are actually third-party software.</p>
<p>Personally, although I used to prefer Debian (before SELinux became de facto standard), I cannot take that distribution seriously any more. They made a <a href="http://taint.org/2008/05/13/153959a.html" target="_blank">terrible mistake</a> when they &#8220;patched&#8221; the OpenSSL library, turning all generated keys and certificates built with them into garbage (or what do we call keys and certs which are created with a predictable random generator?). In my opinion, it shows pretty well why a more centralised approach of maintaining core components is better. There&#8217;s a thin line between diversity and mess. When distributors start patching core components just like that, rather than contributing code to the upstream projects, the diversity will soon equal mess &#8212; and introduce absolutely unnecessary distribution-related security flaws.</p>
<p>In my personal opinion, CentOS is <em>the</em> Linux distribution for a server setup (or RHEL for those who rely on professional support), whereas a desktop or laptop user&#8217;s best bet would be Ubuntu (if you can live with a short release cycle and are happy to update your whole system often) or Fedora.</p>
<p>However, I do prefer FreeBSD for servers (as you could easily tell after reading all this). <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   And on a desktop/laptop, MacOS is my favourite. (I know that paying for solid software is political incorrect nowadays, but at least it has a reliable &#8212; FreeBSD/Darwin &#8212; foundation!)</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2009/07/ubuntu-or-freebsd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ZFS on FreeBSD 7 &#8212; experimental for a reason!</title>
		<link>http://sysconfig.org.uk/2008/05/zfs-on-freebsd-7-experimental-for-a-reason/</link>
		<comments>http://sysconfig.org.uk/2008/05/zfs-on-freebsd-7-experimental-for-a-reason/#comments</comments>
		<pubDate>Wed, 28 May 2008 18:04:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.admin-at-once.co.uk/?p=12</guid>
		<description><![CDATA[Yes, it has a reason that ZFS is not yet marked stable on FreeBSD! I had to learn the hard lesson today. Under very high load and many concurrent read requests (I set up the company&#8217;s mail server with ZFS and root from ZFS), the two disks in the Raid array repeatedly lost sync, forcing [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, it has a reason that ZFS is not yet marked stable on FreeBSD! I had to learn the hard lesson today.</p>
<p>Under very high load and many concurrent read requests (I set up the company&#8217;s mail server with ZFS and root from ZFS), the two disks in the Raid array repeatedly lost sync, forcing an automatic re-silvering (auto healing) process to be started, which blocked the system as everything (except /boot) was running from that ZFS arrray. As far as I figured out, the system halted entirely as there was another inconsistency occuring while the re-silvering was still in progress.</p>
<p>I would have investigated further, if it wasn&#8217;t a crucial production machine. And that kind of traffic is very difficult to simulate under laboratory situations (maybe I can do that when I have more time). So I had to revert back to UFS as the downtime had to be minimized. It&#8217;s a shame, really, because I love the features ZFS offers. On my private server it runs very smoothly, but traffic, load and I/O are not comparable to the mail server in question.</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2008/05/zfs-on-freebsd-7-experimental-for-a-reason/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two neat storage machines</title>
		<link>http://sysconfig.org.uk/2008/05/two-neat-storage-machines/</link>
		<comments>http://sysconfig.org.uk/2008/05/two-neat-storage-machines/#comments</comments>
		<pubDate>Sat, 10 May 2008 13:44:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.admin-at-once.co.uk/?p=10</guid>
		<description><![CDATA[Yesterday I set up one of our new storage machines for testing: Dell 2950, Quad Xeon, 8GB, 6&#215;750 GB HDD. I installed FreeBSD 7 with ZFS (following up this article). Firstly it seemed to be a bit tricky, because the PERC/6i controller configuration is &#8212; sorry &#8212; crap from the usuability point of view. It [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I set up one of our new storage machines for testing: Dell 2950, Quad Xeon, 8GB, 6&#215;750 GB HDD. I installed FreeBSD 7 with ZFS (following up <a href="http://blog.admin-at-once.co.uk/2008/04/zfs-on-freebsd/" target="_self">this article</a>). Firstly it seemed to be a bit tricky, because the PERC/6i controller configuration is &#8212; sorry &#8212; crap from the usuability point of view. It seemed not to support non-RAID configurations, but taking a closer look it turned out to be a wrong assumption. Six RAID-0 Arrays with only one drive each is in fact the same as no RAID at all. (The reason why RAID does not make sense is, that ZFS will do this job, and its auto-healing is much better than any hardware controller&#8217;s auto-healing)</p>
<p>After having set up the minimal FreeBSD and doing some tuning (such as creating the ZFS volumes), I ran some tests. You won&#8217;t believe me, but writing a 10GB file (/dev/random to the ZFS volume) resulted in a transfer rate at about 160MB/sec and reading (cp testfile /dev/null) was done at a speed of more than 270MB/sec!!</p>
<p>To be continued&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2008/05/two-neat-storage-machines/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solaris&#8217; ZFS on FreeBSD 7.0</title>
		<link>http://sysconfig.org.uk/2008/04/zfs-on-freebsd/</link>
		<comments>http://sysconfig.org.uk/2008/04/zfs-on-freebsd/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 13:21:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>

		<guid isPermaLink="false">http://blog.admin-at-once.co.uk/?p=8</guid>
		<description><![CDATA[Wasn&#8217;t it annoying that FreeBSD never had a volume manager which allowed to resize volumes including the contained filesystem on the fly? Well, it was possible to use gvinum in conjunction with UFS&#8217; growfs tool to make filesystems bigger at least. But that&#8217;s not as flexible as Solaris&#8217; ZFS. Moreover, UFS does not support snapshots [...]]]></description>
			<content:encoded><![CDATA[<p>Wasn&#8217;t it annoying that FreeBSD never had a volume manager which allowed to resize volumes including the contained filesystem on the fly? Well, it was possible to use gvinum in conjunction with UFS&#8217; growfs tool to make filesystems bigger at least. But that&#8217;s not as flexible as Solaris&#8217; ZFS. Moreover, UFS does not support snapshots as well as ZFS does. But finally we have a solution: Since FreeBSD 7.0, ZFS is part of the OS! Although it is still considered experimental and lacks some of the original&#8217;s features, it works quite well. Also, it is possible to use ZFS as a boot partition! See <a href="http://www.ish.com.au/solutions/articles/freebsdzfs" target="_blank">this great article</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2008/04/zfs-on-freebsd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>(C&#124;G)lustered Storage</title>
		<link>http://sysconfig.org.uk/2008/04/clustered-storage/</link>
		<comments>http://sysconfig.org.uk/2008/04/clustered-storage/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 14:12:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.admin-at-once.co.uk/?p=7</guid>
		<description><![CDATA[As the company I work with has to store many media files, backups, rapidly changing documents and so on, they used to run a NetworkAppliance FAS2020 storage machine, which is quite neat. Unfortunately, the current setup does not allow to scale the volumes any more. So we needed to find an alternative. Consequently we asked [...]]]></description>
			<content:encoded><![CDATA[<p>As the company I work with has to store many media files, backups, rapidly changing documents and so on, they used to run a NetworkAppliance FAS2020 storage machine, which is quite neat. Unfortunately, the current setup does not allow to scale the volumes any more. So we needed to find an alternative.</p>
<p><span id="more-7"></span></p>
<p>Consequently we asked for quotes on bigger NetApp devices. Unfortunately, they cost more than a good car. The investigation on other solutions began&#8230; <img src='http://sysconfig.org.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>After doing some research and testing as well performance as failure behaviour, the decision was made: I will setup a storage cluster based on i386 hardware and <a href="http://www.gluster.org/glusterfs.php" target="_blank">GlusterFS</a>. Its speed was quite impressive. And also the fact that mirroring (for data security) and striping (for performance) can be combined, is very convincing.</p>
<p>We will start with two huge servers which run partly in mirrored and partly in striped mode. The only thing which needs to be tested before hand is, if FreeBSD&#8217;s UFS in combination with its snapshot feature makes sense here (this could be a bit tricky). If it works, this solution will be as good as the proprietary offer. But it costs less than 1/5!</p>
<p>I will keep you posted.</p>
]]></content:encoded>
			<wfw:commentRss>http://sysconfig.org.uk/2008/04/clustered-storage/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/

Page Caching using apc
Database Caching 1/36 queries in 0.088 seconds using apc
Object Caching 1834/1906 objects using apc

Served from: sysconfig.org.uk @ 2012-02-05 19:59:51 -->
