<?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>sniping.org &#187; Linux</title>
	<atom:link href="http://sniping.org/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://sniping.org</link>
	<description>snipe -- verb [intrans.] -- make a sly or petty verbal attack</description>
	<lastBuildDate>Sat, 17 Jul 2010 18:44:58 +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>A Couple of Links</title>
		<link>http://sniping.org/2007/11/12/a-couple-of-links/</link>
		<comments>http://sniping.org/2007/11/12/a-couple-of-links/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 16:31:34 +0000</pubDate>
		<dc:creator>fdiv_bug</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://sniping.org/2007/11/12/a-couple-of-links/</guid>
		<description><![CDATA[<a href="http://sniping.org/2007/11/12/a-couple-of-links/" title="A Couple of Links"></a>I don&#8217;t usually just post links, but these are too great to not share. The Nerd Handbook This explains so much about me and &#8220;my people&#8221; that it borders on the uncanny. Everyone who is dating, has ever dated, or &#8230;<p class="read-more"><a href="http://sniping.org/2007/11/12/a-couple-of-links/">Read more &#187;</a>]]></description>
			<content:encoded><![CDATA[<a href="http://sniping.org/2007/11/12/a-couple-of-links/" title="A Couple of Links"></a><p>I don&#8217;t usually just post links, but these are too great to not share.</p>

<dl>
<dt><a href="http://www.randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html">The Nerd Handbook</a></dt>
<dd>This explains so much about me and &#8220;my people&#8221; that it borders on the uncanny.  Everyone who is dating, has ever dated, or is planning on dating a nerd/geek needs to read this.</dd>
<dt><a href="http://diveintomark.org/archives/2007/11/11/installing-mysql-on-ubuntu">Installing MySQL on Ubuntu</a></dt>
<dd>A sarcastic response to <a href="http://hivelogic.com/narrative/articles/installing-mysql-on-mac-os-x">a post by Dan Benjamin</a> about how to install the MySQL database on Mac OS X.  It still floors me when Mac people talk about how great it is that you can install software by hand, from source.  We got over that years and years ago in the Linux world, FreeBSD&#8217;s Ports has been a solid solution for many years as well, and they&#8217;re even getting past it in Solaris.  Mac OS X has <a href="http://www.macports.org/">MacPorts</a> and lots of people use it, but there&#8217;s still a great deal of software-management-by-hand done in that world.</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://sniping.org/2007/11/12/a-couple-of-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Resizing of RAID5 Arrays in Linux</title>
		<link>http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/</link>
		<comments>http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 21:58:18 +0000</pubDate>
		<dc:creator>fdiv_bug</dc:creator>
				<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/</guid>
		<description><![CDATA[<a href="http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/" title="Live Resizing of RAID5 Arrays in Linux"></a>A friend of mine asked about the benefits of software RAID versus hardware RAID in Linux, and I proceeded to voice my support for the former. It was then brought up that online resizing was one of her concerns, and &#8230;<p class="read-more"><a href="http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/">Read more &#187;</a>]]></description>
			<content:encoded><![CDATA[<a href="http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/" title="Live Resizing of RAID5 Arrays in Linux"></a><p>A friend of mine asked about the benefits of software <a href="http://en.wikipedia.org/wiki/RAID">RAID</a> versus hardware RAID in Linux, and I proceeded to voice my support for the former.  It was then brought up that online resizing was one of her concerns, and I set about to figure out how to do just that.  These instructions were crafted in a <a href="http://www.centos.org/">CentOS 5</a> virtual machine, and come with no warranty or guarantee of any sort; I put them here on the off chance that they might help someone.</p>

<p><span id="more-82"></span></p>

<ol>
<li><p>First, I started by adding four additional SCSI drives to my CentOS 5 virtual machine.  I then booted the VM up, and partitioned the disks, creating one partition that encompassed the entire drive and setting its type to &#8220;fd&#8221;:</p>

<pre><code>for i in a b c d ; do echo "; ; fd ;" | sfdisk /dev/sd$i ; done
</code></pre></li>
<li><p>Then I created the new RAID5 array with four devices, none of which should be kept as spares:</p>

<pre><code>mdadm --create /dev/md0 --spare-devices=0 --level=5 --raid-devices=4 /dev/sd{a,b,c,d}1
</code></pre></li>
<li><p>Third, create a physical volume for LVM to use:</p>

<pre><code>pvcreate /dev/md0
</code></pre></li>
<li><p>After that, I made a volume group:</p>

<pre><code>vgcreate vg0 /dev/md0
</code></pre></li>
<li><p>Then I made a logical volume in that group using all free physical extents:</p>

<pre><code>lvcreate --extents=100%VG --name=storage vg0
</code></pre></li>
<li><p>Sixth, slap a file system on that guy:</p>

<pre><code>mke2fs -j /dev/vg0/storage
</code></pre></li>
<li><p>Mount it, put some data on it, and enjoy.</p></li>
</ol>

<p>After you&#8217;ve been using the array for a while (or, after it&#8217;s finished resyncing if you&#8217;re just following along at home), you add some new drives to the machine that you want to add to the array.  I shut my VM down, added some additional virtual disks to it, and powered it back up; your steps would presumably be somewhat similar.  After the system came back up, I added the new drives like so.</p>

<ol>
<li><p>Partition them as with the other drives in the set:</p>

<pre><code>for i in e f ; do sfdisk -d /dev/sda | sfdisk /dev/sd$i ; done
</code></pre></li>
<li><p>Add them to the RAID array:</p>

<pre><code>mdadm --add /dev/md0 /dev/sd{e,f}1
</code></pre></li>
<li><p>Expand the array to encompass all the disks (note that this will probably take a while, so you might want to do it overnight):</p>

<pre><code>mdadm --grow --raid-devices=6 /dev/md0
</code></pre></li>
<li><p>Expand the LVM physical volume to include the new space:</p>

<pre><code>pvresize /dev/md0
</code></pre></li>
<li><p>Then expand the logical volume as well:</p>

<pre><code>lvresize --extents=100%VG /dev/vg0/storage
</code></pre></li>
<li><p>Finally, grow the file system:</p>

<pre><code>resize2fs /dev/vg0/storage
</code></pre></li>
</ol>

<p>With the exception of powering down to add the new drives, nothing had to be brought offline, and if your storage controller supports the hot-adding of devices then you may not even have to that (though the scope of doing so is beyond this tutorial, since I don&#8217;t have ready access to such hardware).</p>

<p>Hope that helps, and please let me know if you see any inconsistencies or run into any problems!</p>
]]></content:encoded>
			<wfw:commentRss>http://sniping.org/2007/06/08/live-resizing-of-raid5-arrays-in-linux/feed/</wfw:commentRss>
		<slash:comments>-1</slash:comments>
		</item>
		<item>
		<title>What I Look for in a (Linux) Server System</title>
		<link>http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/</link>
		<comments>http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 15:05:13 +0000</pubDate>
		<dc:creator>fdiv_bug</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/</guid>
		<description><![CDATA[<a href="http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/" title="What I Look for in a (Linux) Server System"></a>A coworker of mine and I had discussed my stance on Apple &#8212; it hasn&#8217;t really changed much since I wrote that, in case you&#8217;re wondering &#8212; and she asked me for my thoughts on what I look for and &#8230;<p class="read-more"><a href="http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/">Read more &#187;</a>]]></description>
			<content:encoded><![CDATA[<a href="http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/" title="What I Look for in a (Linux) Server System"></a><p>A coworker of mine and I had discussed my <a href="http://sniping.org/2006/08/09/im-getting-fed-up-with-apple/">stance on Apple</a> &#8212; it hasn&#8217;t really changed much since I wrote that, in case you&#8217;re wondering &#8212;  and she asked me for my thoughts on what I look for and expect in a Linux system, so I offered to write them down here.  Most of these considerations and observations also apply to other Unix, or even non-Unix systems, too.</p>

<p><span id="more-67"></span></p>

<p><dl>
<dt>Manageability</dt>
<dd><p>I should be able to deploy fifty systems as easily as I can deploy one system.</p></p>

<p>This is easily the most important aspect to any system.  The various <a href="http://distrowatch.com/">Linux distributions</a> provide a handful of ways of doing it, and we&#8217;ve been very successful with <a href="http://www.redhat.com">Red Hat</a> Kickstart functionality in the <a href="http://www.centos.org">CentOS</a> distro.  With Kickstart and network booting via PXE, I can deploy a new Linux box without even really having to set hands on it &#8212; our operations team can power the system on and hit F12.  Solutions like this exist for other systems, and are included out-of-the-box with Mac OS X (provided you have a Mac OS X Server machine to serve up the NetBoot images or are clever enough to hack it together yourself), so it&#8217;s hardly unique to Linux, but I would not deploy any OS that doesn&#8217;t have rapid provisioning and installation capabilities.</p></dd>
<dt>Packaging</dt>
<dd><p>I should be able to install a piece of software on fifty servers as easily as I can install it on one server.</p>

<p>The point of a server is to provide services to users, and to do so requires software, whether it&#8217;s a web server like Apache or IIS, an NFS server daemon, Windows file sharing services, or any of another effectively limitless number of options.  Sometimes this software is part of the core system &#8212; in the case of a Windows file server, you don&#8217;t need to add anything else to the system for it to be able to fulfill that role.  Other times it&#8217;s included with the system but is a separate part &#8212; this is more commonly the case in the Unix world where, for instance, Apache might be available out of the box but it&#8217;s not a core part of the OS.  And in the third case you&#8217;ll find software that needs to be obtained from somewhere else and built or installed on the systems on which it will run &#8212; commercial software and lesser-known or newer Open Source software tends to fall into this category since it&#8217;s either unavailable for wide distribution or isn&#8217;t popular enough to come with your distribution.  It&#8217;s largely these latter pieces of software which concern me the most, since they&#8217;re the ones that cause the most trouble.  By providing me with an &#8220;easy&#8221; mechanism for packing and deploying a piece of software and all its dependencies, I can manage the software installed on my various systems as cohesive units.  Think of it like a mason considering each brick in the wall he&#8217;s building:  He might get most of his bricks prefabricated, while forging some of his own for applying a special unique style along the top, for instance.  He can rely on the bricks he bought from a brickyard just as I can rely on the software packages provided with my distribution and depend on them for packages I&#8217;m building.  Most of the Linux distributions have this pretty much nailed down, Solaris provides decent facilities for creating new packages, and even Windows has <acro title="Microsoft Installer">MSI</acro> bundles that can be deployed via Group Policy Objects in Active Directory.  Mac OS X, however, is laughably bad in this area.  There are no standards or even common practices for packaging software, and while the tools are available for creating them, no one&#8217;s packages can be expected to play well with anyone else&#8217;s.  If you can&#8217;t count on the package infrastructure, then you can&#8217;t count on packaging.</p></dd>
<dt>Transparency and Accountability</dt>
<dd><p>I should be able to know exactly what code is going on to my systems and why.</p>

<p>This is Linux&#8217;s &#8212; and, to be fair, <a href="http://www.openbsd.org">the <a href="http://www.netbsd.org">various <a href="http://www.freebsd.org">BSD</a>s, and <a href="http://www.opensolaris.org">OpenSolaris</a> as well &#8212; strength in the enterprise.  When I&#8217;m installing updated software or OS bits, I want to have the opportunity to examine exactly what I&#8217;m putting on there and if things have changed, I want to know who changed them.  Bug tracking systems such as <a href="http://bugzilla.redhat.com">Red Hat&#8217;s Bugzilla</a> and <a href="http://launchpad.net">Ubuntu&#8217;s Launchpad</a> enable me to see precisely what changed and who changed it, leaving me with a feeling of safety and comfort that I&#8217;m not pushing changes which may cause other breakages.  Furthermore, with Red Hat Enterprise Linux, Red Hat is very careful to only push bugfixes or security enhancements and not new features.  You don&#8217;t necessarily want a server to have the latest and greatest features; you want it to be stable and do its job.  Obviously this level of transparency isn&#8217;t possible with Windows, and only some pieces of Mac OS X are Open Source, but at least you do have a vendor you can talk to if any problems do surface.</p></dd>
<dt>Monitoring</dt>
<dd><p>I should be able to see what&#8217;s going on with my servers and services using open protocols and standardized tools.</p>

<p>If I want to keep track of system load, memory usage, network bandwidth consumption, temperature, or any of another number of parameters, I should be able to use the tools of my choice.  Linux excels in this area by utilizing the <a href="http://net-snmp.sourceforge.net">net-snmp</a> tools, allowing me to query anything I can conceive of using the open <a href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">SNMP</a> protocol.  Mac OS X Server also utilizes net-snmp, but last I tried to work with it I had a whole host of problems trying to get a reasonably recent version to build, and then I had to wrestle with packaging the blasted thing.  Our Linux boxes install it automatically during their Kickstart, but even if it had gotten left out I could either <code>yum install net-snmp</code> or <code>apt-get install net-snmp</code> and call it a day.  There are SNMP agents available for Windows, as well, but as I understand it all the best ones cost money.  net-snmp can also build on Windows, I believe, but I don&#8217;t even want to know about what that&#8217;d require for deployment to servers.</dd>
<dt>Hardware Availability and Affordability</dt>
<dd><p>I should be able to run my systems on hardware from the vendor of my choice.</p>

<p><p>Whether I go with a certain vendor because of their lower prices, better support, higher performance, or any other reason, I need the OSes I deploy to be able to run on that hardware.  Linux has excellent hardware support, especially in the low- to mid-range server space, and can readily be deployed on commodity systems.  Windows has exceptional hardware support, as well.  Mac OS X Servers must be bought from Apple or one of Apple&#8217;s authorized resellers, and will only &#8212; officially &#8212; run Mac OS X.  If I buy a system from Sun and put Linux on it, then later decide that it&#8217;d be better serving us as a Solaris box, I can do that.  I could even put Windows on it.  If I bought an Apple Xserve and Mac OS X Server wasn&#8217;t doing the job, I&#8217;d be out a machine and a few thousand dollars.</p></dd></p>

<p>I believe this covers the major bases.  I might update or enhance this with additional information as time goes by, so you may want to watch this space.</p>
]]></content:encoded>
			<wfw:commentRss>http://sniping.org/2007/04/03/what-i-look-for-in-a-linux-server-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

