<?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>Fubra &#187; Servers</title>
	<atom:link href="http://www.fubra.com/blog/category/technology/servers/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fubra.com</link>
	<description>Focused on you</description>
	<lastBuildDate>Mon, 06 Feb 2012 02:38:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Storage Improvements</title>
		<link>http://www.fubra.com/blog/2010/05/03/storage-improvements/</link>
		<comments>http://www.fubra.com/blog/2010/05/03/storage-improvements/#comments</comments>
		<pubDate>Mon, 03 May 2010 10:36:29 +0000</pubDate>
		<dc:creator>Mark Sutton</dc:creator>
				<category><![CDATA[CatN]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coraid]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[lustre]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Storage]]></category>

		<guid isPermaLink="false">http://www.fubra.com/?p=1634</guid>
		<description><![CDATA[It&#8217;s been a very busy bank holiday weekend at Fubra following an intermittent backplane failure...]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a very busy bank holiday weekend at Fubra following an intermittent backplane failure on one of our storage arrays. With the help of our storage vendor, <a title="Coraid" href="http://www.coraid.com/" target="_blank">Coraid</a>, we&#8217;ve managed to stabilise the failing unit as a temporary measure while we move all of the storage to our other array.</p>
<p>This is taking us quite some time however, as it contains hundreds of gigabytes of production storage. We hope to get this process completed later today.</p>
<p><span id="more-1634"></span></p>
<h2>Platform Improvements</h2>
<p>On Tuesday we are expecting to receive a replacement for the failed unit, at which point we will be making some fundamental changes to our storage model to ensure that any future failures of this type can in future be recovered much more quickly. This will be done by replicating all data to a warm standby array that can be switched in immediately in the case of an array going bad.</p>
<p>Although there is still more planning to do, we expect that this measure will massively reduce the impact of any future storage array issues.</p>
<p>In addition to improving our storage array architecture, we are also making other improvements.</p>
<p>The most fundamental change is that we are finally eliminating all of our <a title="Lustre" href="http://wiki.lustre.org/index.php/Main_Page" target="_blank">Lustre</a>-backed storage, and replacing all customer volumes with raw volumes hosted directly on the storage array itself. This has been planned for some time, and will reduce the complexity of our storage to provide much fewer points of failure. The difference will be noticed by all customers previously hosted on our Lustre filesystems.</p>
<p>In addition to stability this will also improve filesystem performance as there will be fewer servers and network round-trips involved in the stack.</p>
<h2>Improving Communication</h2>
<p>Another area we will concentrate on is communication. We recognise that improvements need to be made when it comes to giving a realistic resolution timescale, and are going to work on this in the coming days to put in place an improved system that enables us to communicate more effectively and respond faster during events such as this.</p>
<p>On this occasion, due to the scale of the outage we had difficulty keeping everyone informed in a timely manner as we scrambled to get things fixed. In the first hours of response it can be very difficult to give an idea of timescales, as it can take some time to get to the root cause. This is much more difficult when the issue lies in storage.</p>
<p>As the week unfolds we will make further progress announcements. In the time being if you experience any problems at all then please contact us via the usual channels and we will rectify the problem as quickly as possible.</p>
<p>I&#8217;d like to offer our sincere apologies to all customers affected by these recent issues, and give our assurance that the measures we are taking will dramatically improve our hosting platform for the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2010/05/03/storage-improvements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINX66 Presentation</title>
		<link>http://www.fubra.com/blog/2009/08/17/linx66-presentation/</link>
		<comments>http://www.fubra.com/blog/2009/08/17/linx66-presentation/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 14:52:09 +0000</pubDate>
		<dc:creator>Jonathon</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Brendan]]></category>
		<category><![CDATA[Datacentre]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Presentation]]></category>

		<guid isPermaLink="false">http://www.fubra.com/?p=1068</guid>
		<description><![CDATA[Today saw day 1 of LINX66, the LINX members meeting at Goodenough College in London. ...]]></description>
			<content:encoded><![CDATA[<p>Today saw day 1 of <a href="https://www.linx.net/members/events/meetings/L66/LINX66.html">LINX66</a>, the LINX members meeting at Goodenough College in London.  As a LINX member we dispatched our MD Brendan to make a short talk to the group about one of our latest projects &#8212; our in-house datacentre.</p>
<p>The presentation briefly covered why we had opted to develop our own infrastructure, how we have gone about implementing all the ancillary services required in a datacentre environment, the network and technology we have built the main services around, how we had gone about detecting and overcoming the inevitable problems which crop up during the day-to-day running of such a facility, and finally the services we are offering at our facility.  Brendan then took questions from the floor relating to the final price tag of the project, as well as addressing some of the technical questions relating to our environmental monitoring network.</p>
<p>For more information download the <a href="http://www.fubra.com/wp-content/blogs.dir/22/files/2009/08/LINX66-Fubra.ppt">slides which accompanied the presentation</a> (they&#8217;re in PowerPoint format).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2009/08/17/linx66-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving to Google Apps</title>
		<link>http://www.fubra.com/blog/2009/08/08/moving-to-google-apps/</link>
		<comments>http://www.fubra.com/blog/2009/08/08/moving-to-google-apps/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 09:29:14 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.fubra.com/?p=871</guid>
		<description><![CDATA[This week we decided to take the plunge and finally migrate our internal e-mail system...]]></description>
			<content:encoded><![CDATA[<p>This week we decided to take the plunge and finally migrate our internal e-mail system to Google Apps. I&#8217;ve been using Gmail personally since it launched, and I&#8217;ve always been impressed with its amazing spam fighting abilities and the general level of innovation throughout the system.</p>
<p>Up until now we&#8217;ve hosted our own e-mail servers in-house, and whilst that has given us a high degree of flexibility, it&#8217;s also been a pain to configure, maintain and keep spam free!</p>
<p style="text-align: center"><img class="size-medium wp-image-874 aligncenter" src="http://www.fubra.com/wp-content/uploads/2009/08/Google-Apps-Dashboard-300x231.png" alt="Google Apps Dashboard" width="300" height="231" /></p>
<p>We&#8217;re particularly happy with gmail&#8217;s filters &#8211; previously we had to edit a maildrop filter file on our server in order to set up new rules. Not only does Google provide a simple interface to configure them, it also gives us the ability to choose whether they are marked as read when they come in. I know it&#8217;s possible to replicate this in a desktop mail client, but it&#8217;s much better to do it on the server &#8211; that way if you access your e-mails from multiple devices, they will be organised the same way on each one. This is particularly handy for us as we receive a fair amount of auto-generated notification e-mails from our various web sites which we don&#8217;t need to read as they come in but we do like to keep to refer back to.</p>
<p>So the key benefits to us are:</p>
<ul>
<li>Simplified and improved filter configuration</li>
<li>Improved spam detection</li>
<li>Excellent web mail platform</li>
<li>Shared calendars</li>
<li>Easier Administration for setting up new users and groups.</li>
<li>Takes less time to maintain.</li>
</ul>
<p>We also plan to become a Google App&#8217;s Authorised Reseller over the next few months, so that we can resell these services via hoston.it</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2009/08/08/moving-to-google-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unattended linux installation</title>
		<link>http://www.fubra.com/blog/2008/04/09/unattended-linux-installation/</link>
		<comments>http://www.fubra.com/blog/2008/04/09/unattended-linux-installation/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 11:08:58 +0000</pubDate>
		<dc:creator>Dawid Golunski</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Kickstart]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PXE]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2008/04/unattended-linux-installation/</guid>
		<description><![CDATA[If you ever had to do multiple linux installations you know how laborious it can...]]></description>
			<content:encoded><![CDATA[<p>If you ever had to do multiple linux installations you know how laborious it can be. At times like this you may have wondered if it would be possible to carry out a fully automatic linux installation. Fortunately it is not only possible to prepare a fully hands-off installation, but also a one that does not require any discs. You can read how to perform a network installation on  <a href="http://www.pyrosoft.co.uk/blog/2008/04/03/setting-up-a-pxe-install-for-linux/">Paul&#8217;s blog</a>, while in this post we will concentrate on making the installation fully automatic. Having a configuration described on Paul&#8217;s blog such installation is fairly easy to set up. There are four things we will have to do:</p>
<ul>
<li>Prepare a kickstart file</li>
<li>Save the kickstart file in a place accessible for the installer</li>
<li>Prepare an installation source</li>
<li>Modify the PXE config so it instructs the kernel to use the kickstart file</li>
</ul>
<p><span id="more-259"></span></p>
<p>1. Kickstart file is a text file which contains a set of instructions/answers for the linux installer so it automatically knows the answers to all the questions normally asked during the installation process (for example, what partition the system should be installed on, what file system is to be used, what are the network settings, what packages are to be installed etc.). You can either use a special tool called Kickstart Configurator (different for every distibution) which will generate a kickstart file for you after answering a set of questions, or create it from scratch yourself. The latter allows you to become familiar with the structure of this file, as well as is the only choice if there is no Kickstart Configurator for your linux distribution. An example kickstart file (which you can use as a template) for a CentOS distribution may look like this:</p>
<blockquote>
<pre># System language
lang en_GB
# Language modules to install
langsupport en_GB
# System keyboard
keyboard uk
# System mouse
mouse
# Sytem timezone
timezone Europe/London
# Root password
rootpw root-password
# Reboot after installation
reboot
# Use text mode install
text
# Install OS instead of upgrade
install
# Use Web installation
url --url http://192.168.1.2/distros/centos5.1-iso
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr yes
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype ext3 --size 100
part / --fstype ext3 --size 1 --grow
part swap --recommended
# System authorization infomation
auth  --useshadow  --enablemd5
# Network information
network --bootproto=dhcp --device=eth1
network --bootproto=dhcp --device=eth0
# Firewall configuration
firewall --disabled
# SELinux configuration
selinux --disabled
# Do not configure XWindows
skipx
# Package install information
%packages --resolvedeps
%post</pre>
</blockquote>
<p>I am not going to describe each of these options separately as they are all pretty obvious and intuitive. More in detail descriptions as well as the list of all available options can be found <a href="http://www.centos.org/docs/4/html/rhel-sag-en-4/s1-kickstart2-options.html">here</a>. In short, the above kickstart file will install CentOS from web, without XWindows system, creating 3 ext3 partitions. If you want to use this file for installing other linux distributions you need to take into account that some options may be slightly different. If this is the case you should use an appropriate Kickstart Configurator or find an example kickstart file suitable for your distribution.</p>
<p>2. Once we have a kickstart file we need to make it available for the installer.<br />
There are a few ways to do that. We can put the file on ftp, www or nfs server. We can even store the file directly inside the initrd.img file, so it is accessible for the installer the second the image gets expanded in the memory, although this is the most troublesome way. The most common and easiest way is to put the kickstart file on a www server.</p>
<p>3. Installer has to know where to obtain the packages once the installation process is started. You can choose from a few installation sources: nfs, ftp, http. Again, web installation is the most convenient option. Looking back at our kickstart config you can see that we provided a path to the centos directory:</p>
<blockquote>
<pre>url --url http://192.168.1.2/distros/centos5.1-iso</pre>
</blockquote>
<p>The directory is simply the content of a CentOS installation disc. If the only thing you have is an ISO file of the installation disc you can still make use of it by mounting the image on a desired directory. To do so you need to run the following command:</p>
<blockquote>
<pre>mkdir /var/www/distros/centos5.1-iso
mount -oloop,ro /path/to/centos-iso-file.iso /var/www/distros/centos5.1-iso</pre>
</blockquote>
<p>After that you should be able to browse the content of the image by entering the directory.</p>
<p>4. The last step is to modify the pxe config. Let us look at the CentOS label that we already have:</p>
<blockquote>
<pre>LABEL centos5.1
     KERNEL distros/centos5.1/vmlinuz
     APPEND initrd=distros/centos5.1/initrd.img ramdisk_size=6454 ip=dhcp</pre>
</blockquote>
<p>There are two other options that we need to append to the kernel to make it use our kickstart file. The first one is &#8216;ks&#8217; which is a path to the kickstart file. In our case it will be:</p>
<blockquote>
<pre>ks=http://192.168.1.2/distros/kickstart.ks</pre>
</blockquote>
<p>and the other is &#8216;ksdevice&#8217; which specifies what network interface should be used in order to retrieve the kickstart file. We may specify interface name like &#8216;eth0&#8242; or &#8216;eth1&#8242; however this is not a very handy solution. When you have a server with multiple interfaces you cannot be sure what interface you are actually using. Connecting network cable to the first port on your NIC does not necessarily guarantee that the kernel will recognize this interface as eth0. In such a situation the installer will not be able to retrieve your kickstart file. To avoid this, we can specify &#8216;bootif&#8217; as the ksdevice. This will make the installer use the interface that we booted from. For this option to work, we also need to add &#8216;IPAPPEND 2&#8242; option just above the &#8216;APPEND&#8217; string.</p>
<p>To sum up, the modified label should look like this:</p>
<blockquote>
<pre>LABEL centos5.1
KERNEL distros/centos5.1/vmlinuz
IPAPPEND 2
APPEND initrd=distros/centos5.1/initrd.img ramdisk_size=6454 ip=dhcp nofb ksdevice=bootif ks=http://192.168.1.2/distros/kickstart.ks</pre>
</blockquote>
<p>One thing to note here is that the bootif option is not supported by all installers. Therefore if you are having problems with loading your kickstart file, try to specify the exact interface (bearing in mind that the first interface on your NIC does not have to be eth0 interface).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2008/04/09/unattended-linux-installation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.htaccess vs httpd.conf</title>
		<link>http://www.fubra.com/blog/2008/01/07/htaccess-vs-httpdconf/</link>
		<comments>http://www.fubra.com/blog/2008/01/07/htaccess-vs-httpdconf/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 00:19:00 +0000</pubDate>
		<dc:creator>Dawid Golunski</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Configuration]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2008/01/htaccess-vs-httpdconf/</guid>
		<description><![CDATA[If you are an Apache user you will have certainly heard about the two different...]]></description>
			<content:encoded><![CDATA[<p>If you are an Apache user you will have certainly heard about the two different ways to make configuration changes to Apache server. The first one is to make changes directly inside the main configuration file (i.e httpd.conf) and the second is to use .htaccess files. The second method allows us to make configuration changes on a per-directory basis.</p>
<p>There are some general opinions that tell you to never use .htaccess files on your web server, putting all the options in the main configuration file.</p>
<p><span id="more-199"></span></p>
<p>Here is a quote from Apache documentation:</p>
<blockquote><p>When AllowOverride  is set to allow the use of .htaccess files, Apache will look in every directory for .htaccess files. Thus, permitting .htaccess files causes a performance hit, whether or not you actually even use them! Also, the .htaccess file is loaded every time a document is requested.</p></blockquote>
<p>which sounds pretty scary! Since .htaccess files offer many advantages including much greater flexibility (possibility of making changes on the fly without root access, and without a need to restart the server), we decided not to give up on using them that easily and to carry out some tests ourselves to see the actual impact they have on performance.</p>
<p><strong>Setting up a test environment</strong></p>
<p>First of all we need to edit our Apache httpd.conf file in order to set up two separate directories and enable .htaccess files for one of them:</p>
<blockquote>
<pre>&lt;Directory /var/www/html/htaccess-enabled&gt;
    Options FollowSymLinks
    AllowOverride All
&lt;/Directory&gt;</pre>
<pre>&lt;Directory /var/www/html/htaccess-disabled&gt;
    AddHandler php5-script .php_script
    Options FollowSymLinks
    AllowOverride None
&lt;/Directory&gt;</pre>
</blockquote>
<p>Now we need to create the directories:</p>
<blockquote>
<pre># mkdir /var/www/html/htaccess-enabled
# mkdir /var/www/html/htaccess-disabled</pre>
</blockquote>
<p>and .htaccess file:</p>
<blockquote>
<pre># echo 'AddHandler php5-script .php_script'
&gt;/var/www/html/htaccess-enabled/.htaccess</pre>
</blockquote>
<p>We also need to create simple pages so we could request them later:</p>
<blockquote>
<pre># echo '<strong>.htaccess enabled</strong>'
&gt;/var/www/html/htaccess-enabled/enabled.html
# echo '<strong>.htaccess disabled</strong>'
&gt;/var/www/html/htaccess-disabled/disabled.html</pre>
</blockquote>
<p>After restarting the server:</p>
<blockquote>
<pre># apachectl restart</pre>
</blockquote>
<p>we can start our tests.</p>
<p><strong>Testing </strong></p>
<p>By using the following command we can see how long it will take to request each of the pages 500 times:</p>
<blockquote>
<pre># time for i in `seq 5000`; do
curl http://localhost/htaccess-disabled/disabled.html &gt;/dev/null;done
real    0m51.677s
user    0m28.482s
sys     0m21.101s

# time for i in `seq 5000`; do
curl http://localhost/htaccess-enabled/enabled.html &gt;/dev/null;done
real    0m52.217s
user    0m28.206s
sys     0m21.317s</pre>
</blockquote>
<p>In order to get more comprehensive results we can use ab (Apache Benchmark) program as follows:</p>
<blockquote>
<pre># ab -n 5000 -c10 http://localhost/htaccess-disabled/disabled.html
# ab -n 5000 -c10 http://localhost/htaccess-enabled/enabled.html</pre>
</blockquote>
<p>-n denotes number of requests, and -c number of requests to be sent at the same time.</p>
<p>Repeating the test 5 times for each of the URL&#8217;s we achieve the following results:</p>
<table border="0" cellspacing="10" cellpadding="10">
<tbody>
<tr>
<td><strong>.htaccess disabled:</strong></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Time (s)</td>
<td>Requests per second</td>
</tr>
<tr>
<td></td>
<td>1.10</td>
<td>4539</td>
</tr>
<tr>
<td></td>
<td>1.13</td>
<td>4429</td>
</tr>
<tr>
<td></td>
<td>1.12</td>
<td>4451</td>
</tr>
<tr>
<td></td>
<td>1.13</td>
<td>4424</td>
</tr>
<tr>
<td></td>
<td>1.67</td>
<td>4683</td>
</tr>
<tr>
<td><strong>Average</strong></td>
<td><strong>1.23</strong></td>
<td><strong>4505</strong></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="10" cellpadding="10">
<tbody>
<tr>
<td><strong>.htaccess enabled:</strong></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Time (s)</td>
<td>Requests per second</td>
</tr>
<tr>
<td></td>
<td>1.85</td>
<td>4606</td>
</tr>
<tr>
<td></td>
<td>1.21</td>
<td>4121</td>
</tr>
<tr>
<td></td>
<td>1.19</td>
<td>4188</td>
</tr>
<tr>
<td></td>
<td>1.22</td>
<td>4098</td>
</tr>
<tr>
<td></td>
<td>1.24</td>
<td>4026</td>
</tr>
<tr>
<td><strong>Average</strong></td>
<td><strong>1.34</strong></td>
<td><strong>4208</strong></td>
</tr>
</tbody>
</table>
<p>That gives us a difference of around 6.6% less requests per second while .htaccess is turned on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2008/01/07/htaccess-vs-httpdconf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Howto: Setup a Mac Mini as a BGP Router</title>
		<link>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/</link>
		<comments>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/#comments</comments>
		<pubDate>Fri, 19 Oct 2007 09:58:00 +0000</pubDate>
		<dc:creator>Mark Sutton</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[BGP]]></category>
		<category><![CDATA[Cisco]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac Mini]]></category>
		<category><![CDATA[Router]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2007/10/howto-setup-a-mac-mini-as-a-bgp-router/</guid>
		<description><![CDATA[Thinking Differently&#8230; An update on our Mac Mini Routers at LINX We have been quiet...]]></description>
			<content:encoded><![CDATA[<p><em>Thinking Differently&#8230; An update on our Mac Mini Routers at LINX</em></p>
<p>We have been quiet for a while on the subject of the mac minis we installed into <a href="https://www.linx.net/">LINX</a> at Telehouse several months ago&#8230;</p>
<p>You may remember the <a href="http://www.fubra.com/blog/2007/04/first-mac-mini-bgp-routers-on-worlds.html">previous article</a>, basically we are using a pair of Mac Mini computers to connect our hosting platform to the LINX Internet exchange in London.</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/3macminis-756319.jpg"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/3macminis-756317.jpg" border="0" alt="" /></a></p>
<p><span id="more-201"></span></p>
<p>Having a connection to LINX enables us to get much closer to our end users and to our primary content providers, meaning our information moves faster and at lower cost.</p>
<p>Our decision to use the Mac Minis as routers was based on a combination of economic factors. Compared with the typical <a href="http://www.cisco.com/en/US/products/hw/routers/ps341/index.html">Cisco 7200</a> or <a href="http://www.juniper.net/products_and_services/m_series_routing_portfolio/index.html">Juniper M-series</a> routers, the Minis use less space and a fraction of the power whilst providing a massive 2GB of RAM for routing tables, a Core2 DUO 1.83GHz CPU and Gigabit network interface for a <span style="font-style: italic">tiny</span> fraction of the cost.</p>
<p>Whilst some old-school network purists might have their own opinion on software routers, we have used Linux based routers at our edge and core for over four years now with no issues at all and saved tens of thousands of pounds in routing hardware. So far, packet-for-packet the Minis have performed every bit as well as our 1u rackmount routers in use at our less power constrained sites.</p>
<p>Now that the initial setup is completed, I have been asked to into go more detail about the system and how we solved the various issues encountered along the way. And there have been many issues to solve, mainly because the Mac Mini wasn&#8217;t really designed for use as a border router.</p>
<p>So first, the hardware issues&#8230;</p>
<h3>Hardware problem 1 &#8211; Booting without a monitor</h3>
<p>The Mac Mini is designed for use as a desktop computer. As such it expects to have a monitor attached &#8211; and somewhat unusually will not boot without one.</p>
<p>To get around this problem we made up some svga dongles as described <a href="http://www.mythic-beasts.com/support/macminicolo_howto.html">here</a> and connected them using the svga-&gt;dvi adapters supplied by Apple.</p>
<p><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/svga-dongle-parts.jpg" border="0" alt="" /></p>
<p><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/svga-dongle-assembled.jpg" border="0" alt="" /></p>
<p>Granted, from a purist perspective an svga dongle sticking out of the back does spoil the form of the Mini slightly, but in another way it looks like a chromed exhaust pipe, quite fitting for our little hot-hatch routers!</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/Macmini-749542.jpg"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/Macmini-749531.jpg" border="0" alt="" /></a></p>
<h3>Hardware problem 2 &#8211; Automatic power-on</h3>
<p>The next hardware problem encountered was how to make the minis boot automatically after a power cut/cycle. Fortunately this was also figured out quite easily, it was simply a case of adding the following line early in the boot process:</p>
<blockquote>
<pre>  # setpci -s 0:1f.0 0xa4.b=0</pre>
</blockquote>
<h3>Hardware problem 3 &#8211; complex routing on a single network interface</h3>
<p>The final hardware problem &#8211; well not really a problem, but something I often get asked about &#8211; is how the networking works.  The Mini has just one network card and most people think of a router as having more than one physical network interface.</p>
<p>However, by installing a decent &#8216;managed&#8217; network switch between our physical network connections and the router, we are able to use VLAN technology (802.1q VLAN Tagging to be precise) to provide multiple secure &#8216;virtual&#8217; network connections to Linux.</p>
<p><a href="http://www.fubra.com/blog/uploaded_images/fubravlanrouter-large.png"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer" src="http://www.fubra.com/blog/uploaded_images/fubravlanrouter-small.png" border="0" alt="" /></a></p>
<p>Problem solved.  Next, software and driver issues.</p>
<p>We run Ubuntu-Server 7.04 as the operating system on the Minis. For those who aren&#8217;t in the know yet, Ubuntu is one of the leading Linux software distributions. Fubra is no stranger to Linux with more than 150 Fedora, Centos and Ubuntu Linux systems deployed across the network as workstations, web servers, email servers, databases and routers.</p>
<h3>Software problem 1 &#8211; Dodgy ethernet drivers&#8230;</h3>
<p>Probably the biggest problem we had with the Minis was getting the network cards to remain stable under heavy load. The culprit in this case was what appears to be the buggy (aka &#8220;experimental&#8221; in kernel speak <img src='http://www.fubra.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  SKY2 network card driver supplied in the Linux kernel.</p>
<p>In the end we decided to stop using the SKY2 driver altogether until it is more stable. Instead we chose to use the Marvell supplied driver which can be found <a href="http://www.marvell.com/drivers/driverDisplay.do?dId=153&amp;pId=36">here</a>. Since switching to the Marvell driver the network card has remained rock solid and we have had no problems or device lockups at all.</p>
<h3>Software problem 2 &#8211; Connecting to the Internet. Oh yeah, and support for md5 passwords&#8230;</h3>
<p>For most people, connecting to the Internet means subscribing to a broadband service, which typically provides a single route out to the Internet at between 2 and 20Mb/s. As a hosting company with a lot of high-traffic websites, we have multiple connections to the Internet running at between 100 and 1000Mb/s, enabling us to handle a lot of simultaneous visitors without slowing down.</p>
<p>The other main reason for having multiple connections is that we can survive ISP failures on our network, but implementing this level of protection requires another software protocol running on the router called Border Gateway Protocol, or BGP.</p>
<p>BGP is like a route-planning system for the Internet. In much the same way as an in-car, GPS-based navigation system does, it knows of every route between any two given points on the Internet and can calculate which is the best path to take.</p>
<p>The only issue we had with BGP was getting md5 signatures (a common authentication method for BGP routers) to work &#8211; and judging by the <a href="http://www.quagga.net/">Quagga</a> mailing list and <a href="http://wiki.quagga.net/index.php/Main/AddRes">wiki</a> this has been a perennial problem for quite some time.  I won&#8217;t go into too much detail but from what I can tell the resolution was quite typical for an open source project:</p>
<ol>
<li>Some kernel developers suggest md5 signing has no place in the kernel &#8211; it should go into userspace.</li>
<li>Some userspace developers feel the most appropriate place for md5 signing is in the kernel.</li>
<li>Both solutions end up developed&#8230; [<a href="http://www.pilosoft.com/bgpmd5/bgpmd5.pl">bgpmd5.pl</a>] [<a href="http://lists.quagga.net/pipermail/quagga-users/2006-March/006662.html">md5qd</a>] [<a href="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/">Kernel &gt;=2.6.20</a>]</li>
</ol>
<p>In the end we went for the following recipe:</p>
<ul>
<li>Linux Kernel 2.6.22 (compiled from Vanilla sources)</li>
<li>Quagga 0.99.9 plus Solinno patch found <a href="http://www.solinno.co.uk/md5sig/quagga_md5_bsd_linux_v7.diff">here</a></li>
</ul>
<p>Note it took a couple of extra steps not all that well documented anywhere to get quagga to work properly with the in-kernel support for md5 signing:</p>
<p>First, since the patch was taken against quagga-0.99.8, it has to be applied as follows:</p>
<blockquote>
<pre>  # tar -zxvf quagga-0.99.9.tar.gz
  # cd quagga-0.99.9
  # patch -p1 &lt;../quagga_md5_bsd_linux_v7.diff</pre>
</blockquote>
<p>Next, the sources need to be configured with an option to disable IPV6 (note that this disables support for IPV6 in Quagga altogether):</p>
<blockquote>
<pre>  # ./configure --enable-ipv6=no --localstatedir=/var/run/quagga --sysconfdir=/etc/quagga</pre>
</blockquote>
<p>To enable the md5 support provided by the Solinno patch, an extra line should be added to config.h before compiling and installing:</p>
<blockquote>
<pre>  # echo "#define HAVE_TCP_MD5SIG" &gt;&gt;config.h
  # make &amp;&amp; make install</pre>
</blockquote>
<p>I&#8217;d like to thank all the guys on the Quagga mailing list who have worked on the md5 problem over the last couple of years.</p>
<p>Having used both of the user-space solutions in production (bgpmd5.pl, md5qd), I can honestly say that the in-kernel method seems to be far more reliable once you get it working and &#8220;just feels right&#8221;.</p>
<p>Plus a special shout to Dunc from <a href="http://www.thebunker.net/">The Bunker</a> who has been working on the same bgp md5 problems for just about as long as I have <img src='http://www.fubra.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>So how fast will our little hot-hatches go?</h3>
<p>To be fair, I&#8217;m not yet 100% sure what we can expect from our Mini routers but the bottom line is, with a 1.8GHz processor, 2GB of ram for holding large routing tables, a Gigabit network interface and a liberal sprinkling of kernel tweaks I fully expect the routers to handle several hundred Megabits per second (and yes, before you shout at me I know &#8211; its really about packets per second, not Megabits!).</p>
<p>Hopefully we&#8217;ll get the opportunity to fully test some Minis under lab conditions to get some real numbers. When we do, I&#8217;ll be sure to post the results in a subsequent article.</p>
<p>I&#8217;m convinced that one day we will have to invest in something a little more substantial, after all a hot hatch is great but it doesn&#8217;t have enough room for four kids and a pram.</p>
<p>Until then we&#8217;ll enjoy the lower fuel consumption and lower purchase cost of our Mac Minis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2007/10/19/howto-setup-a-mac-mini-as-a-bgp-router/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing our new Rackable racks</title>
		<link>http://www.fubra.com/blog/2007/06/06/installing-our-new-rackable-racks/</link>
		<comments>http://www.fubra.com/blog/2007/06/06/installing-our-new-rackable-racks/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 14:49:00 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[Bunker]]></category>
		<category><![CDATA[Datacentre]]></category>
		<category><![CDATA[Rackable]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2007/06/installing-our-new-rackable-racks/</guid>
		<description><![CDATA[We sent Mark and Nigel (our server gurus) on another mission yesterday: To install one...]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-436" src="/wp-content/uploads/2007/06/rackable1-225x300.jpg" alt="rackable1" width="225" height="300" />We sent Mark and Nigel (our server gurus) on another mission yesterday: To install one of our new Rackable racks into <a href="http://www.thebunker.net">the Bunker data centre</a> in Kent.</p>
<p>The Bunker is an <strong>ex-cold war nuclear bunker</strong> that has been converted into a state of the art co-location facility. It&#8217;s also one of the three data centres we currently use along with <a href="http://www.ixeurope.com/index.php?page=londonwest">IXEurope Heathrow</a>, and <a href="http://www.telehouse.net/en/global-locations/uk">TeleHouse North</a>.</p>
<p>The actual data centre floor is situated <strong>30 metres below ground level</strong>, and so the first challenge was to get rack down there by lowering it on a crane lift. Since the rack was so heavy, they had to remove all 38 dual xeon servers and take them down seperately.</p>
<p>Mark was impressed with the overall ease of assembly of the Rackable rack, saying <em>&#8220;Stripping down, rebuilding and cabling a rack of 38 servers would normally take at least a full day, if not more. We managed to get from loading bay to power-up in less than 6 hours, including a complete network rewire of the system, 126 patch cables in total.&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2007/06/06/installing-our-new-rackable-racks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Mac Mini BGP routers on world&#039;s largest Internet exchange</title>
		<link>http://www.fubra.com/blog/2007/04/26/first-mac-mini-bgp-routers-on-worlds-largest-internet-exchange/</link>
		<comments>http://www.fubra.com/blog/2007/04/26/first-mac-mini-bgp-routers-on-worlds-largest-internet-exchange/#comments</comments>
		<pubDate>Thu, 26 Apr 2007 12:32:00 +0000</pubDate>
		<dc:creator>paul</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[BGP]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Mac Mini]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2007/04/first-mac-mini-bgp-routers-on-worlds-largest-internet-exchange/</guid>
		<description><![CDATA[We think this could be a world&#8217;s first: Forget Cisco or Juniper, yesterday we hooked...]]></description>
			<content:encoded><![CDATA[<p>We think this could be a world&#8217;s first: Forget Cisco or Juniper, yesterday we hooked up two Mac Mini boxes running <a href="http://www.quagga.net/">Quagga</a> in to the <a href="http://www.linx.net/www_public/about">London INternet eXchange (LINX)</a> to act as <a href="http://en.wikipedia.org/wiki/Border_Gateway_Protocol">BGP</a> border routers for the Fubra Network.</p>
<p>LINX handles 95% of total UK Internet traffic, and as their newest members we had to come up with a clever solution to keep costs low and speeds high. Utilitising <strong>just 3U of rackspace</strong>, we were able to install 2 low latency HP gigabit switches and a pair of 1.83 GHz Mac Minis with 2 GB Ram, giving us fully redundant connections to the largest Internet Exchange Point in the world.</p>
<p><span id="more-210"></span></p>
<p>Fulfilling our environmental obligations, <strong>the total power draw of this setup is less than 2 ordinary household lightbulbs (&lt; 120W)</strong>.</p>
<div id="attachment_440" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-440" src="/wp-content/uploads/2007/04/mac-mini1-300x225.jpg" alt="Our 2 mac mini boxes and HP switches in the LINK rack" width="300" height="225" /><p class="wp-caption-text">Our 2 mac mini boxes and HP switches in the LINK rack</p></div>
<div id="attachment_441" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-441" src="/wp-content/uploads/2007/04/mac-mini2-300x225.jpg" alt="Another mac mini router picture" width="300" height="225" /><p class="wp-caption-text">Another mac mini router picture</p></div>
<div id="attachment_442" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-442" src="/wp-content/uploads/2007/04/mac-mini3-300x225.jpg" alt="mac-mini3" width="300" height="225" /><p class="wp-caption-text">Another mac mini router picture</p></div>
<p>Our engineers, Nigel Marett and Mark Sutton, who installed the kit said the contrast between our tiny Mac Minis and the existing telco router kit that other people were using was striking.</p>
<p>Nigel commented, <span style="font-style:italic">&#8220;It is kinda a strange sight mate: you walk into that room, and there is a Juniper m120 and another even larger (half rack) router, one of them has an OC48 (STM-15) and three gbit fibres coming out of it, the other one a whole bunch of fibre, and then you get to our rack and there&#8217;s two mini&#8217;s!&#8221;</span></p>
<p><strong>Background</strong></p>
<p>Recently we have been re-designing our core hosting network and IP connectivity, and as part of this overhaul we decided to join LINX. For those of you who don&#8217;t know, an Internet Exchange is where a bunch of ISPs and content providers get together to swap traffic. This saves money and improves network performance as you don&#8217;t have to use a 3rd party transit provider to carry data on your behalf.</p>
<p>Since there is a shortage of power in most London data centres, and space is at a premium, our solution would have to work within tight constraints. After searching high and low for suitable dedicated hardware routers, it was clear that Cisco, Juniper and Extreme Networks&#8217; offerings were all too big and power hungry for the job. Someone said &#8220;what about a Mac Mini running Quagga?&#8221; and the rest, as they say, is history.</p>
<p>Currently our total traffic is at 42Mbps, and we hope that <a href="http://www.apple.com/macmini/specs.html">Mac Minis</a> will cope with anything up to several hundred megabits per second on their gigabit interfaces.</p>
<p><strong>Setup</strong></p>
<p>If you want to make your own iRouter setup, you will need the following:</p>
<ul>
<li>2 x HP Procurve 1800 24G Switches</li>
<li>2 x 1.83GHz Intel Core Duo Mac Minis (with 2Gb Memory upgrade)</li>
<li>Ubuntu 7.04 Feisty Fawn (Server Edition) + OpenSSH + Quagga</li>
<li>2 x 100Mbps connections to LINX (eXtreme LAN and Foundry LAN) or similar</li>
</ul>
<p><strong>Fixes</strong></p>
<p>If you plan on using a Mac Mini as a server with Ubuntu 7.04, you need to add the following to the end of your rc.local</p>
<blockquote>
<pre>setpci -d 8086:27b9 0xa4.b=0</pre>
</blockquote>
<p>This will fix the power restore status, by telling the EFI not to reset the power flag on reboot. The machine will then auto-power on after a power cut.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2007/04/26/first-mac-mini-bgp-routers-on-worlds-largest-internet-exchange/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fubra loads up on RACK</title>
		<link>http://www.fubra.com/blog/2007/04/01/fubra-loads-up-on-rack/</link>
		<comments>http://www.fubra.com/blog/2007/04/01/fubra-loads-up-on-rack/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 17:32:00 +0000</pubDate>
		<dc:creator>Brendan</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[LINX]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Rackable]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2007/04/fubra-loads-up-on-rack/</guid>
		<description><![CDATA[Things are getting a bit busy now on the Fubra network which was part of...]]></description>
			<content:encoded><![CDATA[<p>Things are getting a bit busy now on the Fubra network which was part of the reason for our LINX membership that we announced last week. With all the traffic we are getting it will be great to pay less to get our data onto the ISP&#8217;s networks our users come from but it left us thinking what about the extra servers we are going to need.</p>
<p>As anyone running a lot of web servers knows well the old model of pricing based on space is now mostly out the window and now the major consideration in data centres we look at is power. We are fairly power hungry customer already as you might expect with the site of our network so we have been doing a lot of research and development work to try and reduce our power costs which are growing with us.</p>
<p>Up until recently we had focused on the software and platform solution side of things. By virtulising our hardware demand we have been able to get the best out of our current servers and turn machines that we are not using off and on via our network. This has made a huge difference for us but our hardware when on still sucks a lot of power. We needed a hardware partner that was as obsessed about hardware saving power as we were about optimising our code to be more efficient.</p>
<p>Well we found them, Rackable Systems, and we have just made a huge investment in two new racks of servers. They have lots of advantages over the current batches of 1U servers we are using at the moment but the most exciting part is that they can pack a load more servers into the same space and because the servers run on DC power which is converted from AC only once at the top of the rack and the cooling is very cleverly designed. So we will be saving power and therefore money as well as saving space and therefore more money.</p>
<p>It&#8217;s pretty wonderful news because it means we will be able to deliver the services we are working on at a lower cost and so I am very excited about taking delivery of the racks.</p>
<p>I think they may have a new customer for life because the latest product &#8216;a data centre in a container&#8217;, just released called <a href="http://www.rackable.com/solutions/concentro.htm">Concentro</a>, is definitely what we are aiming for as we grow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2007/04/01/fubra-loads-up-on-rack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secure FTP it&#039;s about time!</title>
		<link>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/</link>
		<comments>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/#comments</comments>
		<pubDate>Mon, 02 May 2005 22:05:00 +0000</pubDate>
		<dc:creator>Brendan</dc:creator>
				<category><![CDATA[Servers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[SCP]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[WinSCP]]></category>

		<guid isPermaLink="false">http://www.fubra.com/blog/2005/05/secure-ftp-its-about-time/</guid>
		<description><![CDATA[I have always been quite annoyed at the web standards FTP is among the worst...]]></description>
			<content:encoded><![CDATA[<p>I have always been quite annoyed at the web standards FTP is among the worst of them and whilst SSH has had it&#8217;s fair share of <a href="http://www.openssh.com/txt/preauth.adv">bad news</a> it is sensible that all web traffic should be secured where possible.</p>
<p>When Paul showed me <a href="http://winscp.net">WinSCP</a> as a great alternative to FTP I was well chuffed mainly because we haven&#8217;t really been able to get to our servers via FTP as hardly any run FTP servers but also because I can use my SSH key to authenticate rather than remembering passwords which I almost never use because they are so hard to remember.</p>
<p>The people behind this project should be proud it is definitely one of my favorite apps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fubra.com/blog/2005/05/02/secure-ftp-its-about-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

