<?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>DotBlag.Com &#187; Speed.Demon</title>
	<atom:link href="http://www.dotblag.com/category/speeddemon/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotblag.com</link>
	<description>Technical Trials And Errors</description>
	<lastBuildDate>Sun, 25 Jul 2010 18:40:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pogoplug[ged]</title>
		<link>http://www.dotblag.com/2010/02/15/pogoplugged/</link>
		<comments>http://www.dotblag.com/2010/02/15/pogoplugged/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 21:45:24 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[.Hardware]]></category>
		<category><![CDATA[Net.working]]></category>
		<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[ARM9]]></category>
		<category><![CDATA[cifs]]></category>
		<category><![CDATA[feroceon]]></category>
		<category><![CDATA[hfs+]]></category>
		<category><![CDATA[JTAG]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[marvell]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[orion]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[pogoplug]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=169</guid>
		<description><![CDATA[So I recently bought a Pogoplug device, sort of on a whim.  I needed a NAS device, and the fact that the Pogoplug had HFS+ (OS/X filesystem) support made it a clear winner for me.  I&#8217;ve been living with mine for about a week now, mostly with single 320GB HFS+ formatted drive.  The $130 device [...]]]></description>
			<content:encoded><![CDATA[<p>So I recently bought a <a href="http://pogoplug.com">Pogoplug</a> device, sort of on a whim.  I needed a <a href="http://en.wikipedia.org/wiki/Network-attached_storage">NAS</a> device, and the fact that the Pogoplug had HFS+ (OS/X filesystem) support made it a clear winner for me.  I&#8217;ve been living with mine for about a week now, mostly with single 320GB HFS+ formatted drive.  The $130 device runs <a href="http://kernel.org">Linux</a>, is supported as open (they give you the default root login and password on their site) and sports 256MB of RAM, 32MB of flash for the OS/on-board software, and what I&#8217;m pretty sure is a 1.2Ghz variant of the <a href="http://www.arm.com/products/processors/classic/arm9/arm926.php">ARM926EJ-S</a> in the form of a <a href="http://www.marvell.com/products/processors/embedded/kirkwood/HW_88F6281_OpenSource.pdf">Marvell Orion/Feroceon 88F6281 SoC</a>.  You have 4x USB2.0 ports hanging off of the Marvell Orion <a href="http://en.wikipedia.org/wiki/EHCI">EHCI</a> controller giving you four directly connected ports, you can also connect USB2.0 hubs for more.  Ethernet connectivity is provided by the Orion SoC&#8217;s integrated Gig-E.  All of this hardware puts it in the same category as many more expensive devices, without any mind burning annoying-as-all-heck blue LEDs either.</p>
<p><a href="http://cloudengines.com">CloudEngines</a> saw fit to include relatively robust filesystem support sporting <a href="http://en.wikipedia.org/wiki/HFS_Plus">HFS+</a>, <a href="http://en.wikipedia.org/wiki/NTFS">NTFS</a> as well as the usual <a href="http://en.wikipedia.org/wiki/Ext3">ext2/3</a>, <a href="http://en.wikipedia.org/wiki/File_Allocation_Table">FAT/FAT32/VFAT</a>.  HFS+ is provided by custom kernel modules, that work better than their cousins integrated into the Linux kernel (I&#8217;ve had some experience with them).  I haven&#8217;t yet tested the NTFS support.</p>
<p>The really unique thing about the Pogoplug is that it is completely integrated with the Internet.  <a href="http://pogoplug.com/dev/web.html">The API</a> system allows you to write your own scripts, or use others.  You can even cross-compile and run binaries on the Pogoplug itself.  Setup was easier than anything I&#8217;ve ever used of this nature. I plugged my device in, and went to the Pogoplug site.  I created a login, it quickly identified my Pogoplug device (I assume the Pogoplug called home and it saw us both coming from the same IP) and I was able to immediately use the WebUI to upload and download files.  They don&#8217;t support <a href="http://en.wikipedia.org/wiki/CIFS">SMB/CIFS</a>, but they have OS level drivers for Windows, OS/X, and Linux readily available.  I&#8217;ve only tried the OS/X and Win64 (Windows 7) drivers and they work very well.  Honestly since they seem to be fully supporting multiple OSes, and SMB/CIFS is so complicated and slow I don&#8217;t feel like this is much of a minus.  It does limit native support to &#8220;Supported&#8221; OSes for now unless the WebUI/API access fits for you.  I don&#8217;t know what their product roadmap is but I did find a (broken) symlink/mention of Samba within the device itself, and for those users that are on other OSes and *really* want CIFS they can cross-compile and install/run their own <a href="http://samba.org/">Samba</a> binaries.</p>
<p>The native clients I&#8217;ve tested under Windows 7 and OS/X 10.6 (<a href="http://apple.com/snowleopard">Snow Leopard</a>) seem to perform well and bug free.  I&#8217;ll be pushing them a bit harder in the coming days to see what happens.  So far though I&#8217;ve had no issues.  The Native clients can be set to multiple drive or single drive mode.  The Windows client defaults to single drive mode with all of your connected drives showing up as P:\&lt;Device Name&gt;.  The OS/X (and I assume Linux clients) default to multiple drive mode with all of your connected drives showing up as separately mounted volumes.</p>
<p>You also can not initialize (format) a drive from the Pogoplug.  So you have to format your removable devices with a PC/Mac first.  This rather minor since if you have this device, then you have a machine, and the drives are removable by nature.</p>
<p>Performance is also very good, thanks in no small part to the speedy embedded Orion SoC, the Ethernet controller also has <a href="http://en.wikipedia.org/wiki/TCP_segmentation_offloading">TSO</a>, Receive and Transmit Checksum Offloading (part of <a href="http://en.wikipedia.org/wiki/TCP_Offload_Engine">TOE</a>) which helps keep the CPU free from a lot of overhead.  These offload features are common in higher end servers and many &#8216;gaming&#8217; Ethernet adapters.  Having a 1.2GHz CPU and these helpful hardware offload engines means that the CPU doesn&#8217;t work too hard and the performance will generally be limited by the RAM speeds.  To get the full LAN performance you do need to install the native clients.  The unit may be a little slow when you first start it as it indexes your files for searching and generates thumbnails and video previews.  This latter bit enables one of the more interesting features, search.</p>
<p>You can search all of your Pogoplug drives relatively easily from the WebUI, I haven&#8217;t toyed with this much yet but on the drive after you mount it the Pogoplug software creates a .ceid file that includes the name of the device and the version of the metadata, and a .cedata directory holding an <a href="http://www.sqlite.org/">SQLite 3</a> database file for indexed information and directories for the generated thumbnails and video previews.</p>
<p>The Pogoplug also &#8216;integrates&#8217; with <a href="http://facebook.com">Facebook</a>, <a href="http://myspace.com">MySpace </a>and <a href="http://twitter.com">Twitter</a>.  The Twitter support is definitely buggy, I was able to authenticate to it for one drive but not for another, and after signing out I have been unable to authenticate again.  Once setup you can &#8216;share&#8217; a folder to these services and the unit will post updates whenever the folders are changed.  The update includes a (public) link to the folder&#8217;s contents.  Users can then download the data.  However the data is pushed directly from your Pogoplug so you must be connected via broadband.</p>
<p>On the hardware side inside the case there&#8217;s <a href="http://www.pogoplugged.com/forum/thread/12366/Pins-for-the-two-connectors-on-the-v2-Pink-board">documented JTAG and Serial Port</a>.  What does this mean?  Well if you&#8217;re asking then it won&#8217;t matter to you.  <img src='http://www.dotblag.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Basically it means that with a <a href="http://en.wikipedia.org/wiki/JTAG">JTAG</a> dongle and a 3.3v FTDI to USB serial adapter you have a $130 ARM9 dev kit, not bad at all.</p>
<p>I haven&#8217;t (yet) opened mine&#8230;I may yet buy another to do just that.  The Orion/Feroceon has a <a href="http://en.wikipedia.org/wiki/SATA">SATA</a> controller that&#8217;s turned off (and quite possibly not even pinned out) on this board.  It also has a second Gig-E MAC thats likewise not available.  The CloudEngines/Pogoplug Engineers do read their forums, and seem to be (refreshingly!) helpful to those people who ask specific questions about the hardware and essentially how to use it as a dev platform, de-<a href="http://en.wikipedia.org/wiki/Brick_%28electronics%29">brick</a> it, etc.  Being so helpful as to even link to DigiKey Parts for the mating connectors to the JTAG/Serial ports.</p>
<p>There are some chinks.  It has a NEON PINK &#8220;foot&#8221;.  The device has no &#8216;shutdown&#8217; command (either via WebUI or SSH, or anything) so you can&#8217;t cleanly shut down the unit, you have to manually eject via the WebUI.  Unplugging the device, at least with HFS+, can cause the filesystem to come up ReadOnly with no way to fix it from the Pogoplug short of ejecting the device and manually running the included chkhfs utility.  Even that may not work since the utility is based off hfsprogs, which aren&#8217;t very good.  It will claim errors, not tell you what they are, and refuse to fix them.  Morale, either eject before you unplug the Pogoplug, or use other, better supported, filesystems.  I also have no clue what happens to the device when it loses Internet connectivity.  It may turn into a pretty pink and white brick, I don&#8217;t know, that&#8217;s one of the only things that actually worry me so far. I&#8217;ll be toying with that in coming days and make an updated post time permitting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2010/02/15/pogoplugged/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wall of shame?</title>
		<link>http://www.dotblag.com/2009/06/20/wall-of-shame/</link>
		<comments>http://www.dotblag.com/2009/06/20/wall-of-shame/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 23:57:27 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[.Fail]]></category>
		<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=105</guid>
		<description><![CDATA[I am torn between showing the whole thing as a wall of shame item or just ranting about an anonymous (open source) user management product. It&#8217;s not alone in this sin, I&#8217;ve seen the same problem in *expensive* database driven shopping cart and user management apps. What problem is this that I am speaking of? [...]]]></description>
			<content:encoded><![CDATA[<p>I am torn between showing the whole thing as a wall of shame item or just ranting about an anonymous (open source) user management product.  It&#8217;s not alone in this sin, I&#8217;ve seen the same problem in *expensive* database driven shopping cart and user management apps.</p>
<p>What problem is this that I am speaking of? LACK OF INDEXES.  Seriously.  If you have a sessions table, and you&#8217;re searching for old sessions to expire YOU NEED AN INDEX ON THE TIME COLUMN.</p>
<p>Another fun one is seeing &#8216;delete&#8217; functions that don&#8217;t take care of the extra data referencing the main table, this is largely MySQL&#8217;s fault for not having foreign key support until lately.  It really is the database&#8217; job to deal with that.</p>
<p>1.8 million sessions occupying about 500MB or so, bringing a server down to it&#8217;s knees.  CREATE INDEX sessions_last_active_idx ON sessions (last_active); and suddenly everything is 100% kosher.</p>
<p>What I am saying is, either find someone who has a damned clue to design your DB Schema INCLUDING INDEXES with you, and review your EVERY SELECT, DELETE AND UPDATE, or learn how to do it yourself, or don&#8217;t write the app.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2009/06/20/wall-of-shame/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>State of the storage benchmark</title>
		<link>http://www.dotblag.com/2009/03/27/state-of-the-storage-benchmark/</link>
		<comments>http://www.dotblag.com/2009/03/27/state-of-the-storage-benchmark/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 16:53:32 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[.Fail]]></category>
		<category><![CDATA[.WTFMate?]]></category>
		<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[specsfs]]></category>
		<category><![CDATA[sun]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=96</guid>
		<description><![CDATA[Bryan Cantrill over at Sun Fishworks wrote an Excellent Blog Post on why SPECsfs sucks. Go read it. Seriously. You need to.  Then start to wonder about all the other &#8220;benchmarks&#8221; SPEC publishes.  The blog post there explains WHY you can&#8217;t get affordable storage from big vendors, and why all of it&#8217;s performance is so crappy [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.sun.com/bmc">Bryan Cantrill</a> over at <a href="http://sun.com">Sun</a> Fishworks wrote an <a href="http://blogs.sun.com/bmc/entry/eulogy_for_a_benchmark">Excellent Blog Post</a> on why <a href="http://www.spec.org/sfs2008/">SPECsfs</a> sucks.  Go read it.  Seriously.  You need to.  Then start to wonder about all the other &#8220;benchmarks&#8221; <a href="http://spec.org">SPEC</a> publishes.  The blog post there explains WHY you can&#8217;t get affordable storage from big vendors, and why all of it&#8217;s performance is so crappy in real world scenarios.  They&#8217;re all targeting this benchmark as their milestone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2009/03/27/state-of-the-storage-benchmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dear yum, you suck.</title>
		<link>http://www.dotblag.com/2009/02/10/dear-yum-you-suck/</link>
		<comments>http://www.dotblag.com/2009/02/10/dear-yum-you-suck/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 01:09:55 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[.Fail]]></category>
		<category><![CDATA[.WTFMate?]]></category>
		<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=83</guid>
		<description><![CDATA[While doing a template fetch onto our Virtuozzo machine.  A template fetch really just downloads every configured application (this is different from say EVERY application to create a mirror, it just downloads applications configured, and their dependencies).  So it&#8217;s running yum in download-only mode. [root@vps1 private]# vztop vztop - 18:02:45 up 4 days, 17:30, 2 [...]]]></description>
			<content:encoded><![CDATA[<p>While doing a template fetch onto our Virtuozzo machine.  A template fetch really just downloads every configured application (this is different from say EVERY application to create a mirror, it just downloads applications configured, and their dependencies).  So it&#8217;s running yum in download-only mode.</p>
<pre>[root@vps1 private]# vztop

vztop - 18:02:45 up 4 days, 17:30,  2 users,  load average: 1.29, 1.36, 1.28
Tasks: 372 total,   2 running, 370 sleeping,   0 stopped,   0 zombie
Cpu(s): 13.3% us,  1.1% sy,  0.0% ni, 85.2% id,  0.1% wa,  0.1% hi,  0.2% si
Mem:  65881472k total, 22104056k used, 43777416k free,  1624648k buffers
Swap:  4192924k total,        0k used,  4192924k free, 17053276k cached

 CTID   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    0 27254 root      25   0  308m 299m 4504 R  100  0.5  46:03.17 yum
    0 31593 root      15   0 89524 4672 2568 S    8  0.0   0:35.59 sshd</pre>
<p>Seriously guys? 299MB?  SERIOUSLY?</p>
<p>Not that it really matters on this machine.  For those of you having trouble with the math, thats 64GB w/ around 42GB *free*, yes, same machine from the <a href="http://www.dotblag.com/index.php/2009/02/04/serverpr0n/">Serverpr0n</a> article earlier.  It&#8217;s still annoying.  And, 100% CPU.  Doing WHAT?!  Hell if I know.  YES THATS 45 MINUTES!  At 2GHZ!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2009/02/10/dear-yum-you-suck/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New server coming!</title>
		<link>http://www.dotblag.com/2008/08/19/new-server-coming/</link>
		<comments>http://www.dotblag.com/2008/08/19/new-server-coming/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 09:16:52 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[.Hardware]]></category>
		<category><![CDATA[Net.working]]></category>
		<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[nexenta]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=56</guid>
		<description><![CDATA[Well, the box running dotblag.com, while plenty serviceable, is showing it&#8217;s age.  I&#8217;ve ordered a pretty large machine (just short of $3000 in total parts) and the bits are on their way, woohoo!  I&#8217;ll be setting it up and burning it in over the next month or two.  Once it&#8217;s ready dotblag will be moving [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the box running dotblag.com, while plenty serviceable, is showing it&#8217;s age.  I&#8217;ve ordered a pretty large machine (just short of $3000 in total parts) and the bits are on their way, woohoo!  I&#8217;ll be setting it up and burning it in over the next month or two.  Once it&#8217;s ready dotblag will be moving to it.  I&#8217;m still not sure exactly how the software&#8217;s going to be, but some sort of master/host OS with virtual containers to run stuff.  One for my email, one for the <a href="http://freenode.net">Freenode</a> IRC server, one for webserving/this probably&#8230;you get the idea.  I&#8217;ll probably be trying out the now free VMWare ESXi, and Nenenta core.  I&#8217;ll actually probably be &#8220;donate&#8221;ing the machine to the <a href="http://nexenta.org">Nexenta</a> guys during their hackathon.  I&#8217;ve kinda leaning towards Nexenta, being I&#8217;ve been a <a href="http://sun.com/solaris">Solaris</a> or <a href="http://freebsd.org">FreeBSD</a> guy at heart for a long time, but LOVE <a href="http://debian.org">Debian&#8217;s</a> APT system.  Nexenta is OpenSolaris, with APT/dpkg, which is probably about as close to sysop nerdvana as you&#8217;re going to get!  I have yet to play with it but from what I gather it&#8217;s zone&#8217;s support not only lx (Linux Solaris Zone) but Xen.  Or something like that.</p>
<p>I&#8217;ll try to keep this updated.</p>
<p>But Mr. SysOp, how lame are you that it&#8217;s going to take months to setup a machine?!  I have a day job folks.  A BUSY day job.  Doing SA work in my VERY limited spare time is hard, and not very attractive.  So yes it could take a while.  I might throw up Nexenta or the free ESX and find out I hate it.  I want to have time to play with those options before I commit to moving live services to it.  Once I do that I&#8217;ll be totally stuck with my choice, warts and all.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2008/08/19/new-server-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Mail Is Not Your Error Log</title>
		<link>http://www.dotblag.com/2008/02/01/e-mail-is-not-your-error-log/</link>
		<comments>http://www.dotblag.com/2008/02/01/e-mail-is-not-your-error-log/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 22:49:37 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[E.Mail]]></category>
		<category><![CDATA[Speed.Demon]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=7</guid>
		<description><![CDATA[Or, how NOT to &#8220;log&#8221; errors.  Especially on web based stuff.  ESPECIALLY. Output from one of our mail processing frontends.  The script runs mailq and collates the output, sorted by recipient domain.  Redacted of course to protect the people with the bad idea. mfe3:~# /opt/bin/top-mailq-to-domains 2947 *REDACTED*.com 158 *REDACTED*.co.uk 117 *REDACTED*.org 116 mailbox.com   This [...]]]></description>
			<content:encoded><![CDATA[<p>Or, how NOT to &#8220;log&#8221; errors.  Especially on web based stuff.  ESPECIALLY.</p>
<p>Output from one of our mail processing frontends.  The script runs mailq and collates the output, sorted by recipient domain.  Redacted of course to protect the people with the bad idea.</p>
<pre>mfe3:~# /opt/bin/top-mailq-to-domains
   2947 *REDACTED*.com
    158 *REDACTED*.co.uk
    117 *REDACTED*.org
    116 mailbox.com</pre>
<p> </p>
<p>This is why sending yourself an email for every error on your site is A BAD IDEA.  Make a log.  Process the log.</p>
<p> </p>
<p>Kthnxbai.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2008/02/01/e-mail-is-not-your-error-log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NFS, How I Loathe Thee!</title>
		<link>http://www.dotblag.com/2008/02/01/nfs-how-i-loathe-thee/</link>
		<comments>http://www.dotblag.com/2008/02/01/nfs-how-i-loathe-thee/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 20:58:24 +0000</pubDate>
		<dc:creator>SysOp</dc:creator>
				<category><![CDATA[Speed.Demon]]></category>
		<category><![CDATA[nfs]]></category>

		<guid isPermaLink="false">http://www.dotblag.com/?p=5</guid>
		<description><![CDATA[NFS.  The very bane of my existence.  Well maybe not quite, but it sure makes my life hell.  You can&#8217;t narrow down problem/runaway areas because there&#8217;s no granularity to what tiny statistics gathering it can/does do.  There&#8217;s no authentication, and little to no access control. Please, don&#8217;t start on NFSv4.  Linux can&#8217;t even support NFSv3 [...]]]></description>
			<content:encoded><![CDATA[<p>NFS.  The very bane of my existence.  Well maybe not quite, but it sure makes my life hell.  You can&#8217;t narrow down problem/runaway areas because there&#8217;s no granularity to what tiny statistics gathering it can/does do.  There&#8217;s no authentication, and little to no access control.</p>
<p>Please, don&#8217;t start on NFSv4.  Linux can&#8217;t even support NFSv3 hardly, and the 2.6 kernel is worse than 2.4.  Atleast 2.4 doesn&#8217;t completely lose track of locks and locking the way 2.6 clients do.  They completely forget about cleaning up after NFS locks somewhat randomly.  Don&#8217;t believe me?</p>
<pre>
<div>web4:~# uname -an</div>
<div>Linux web4 2.6.18-5-amd64 #1 SMP Tue Oct 2 20:37:02 UTC 2007 x86_64 GNU/Linux</div>
<div>web4:~# cat /proc/locks</div>
<div>1: FLOCK  ADVISORY  WRITE 25347 00:33:6591864 0 EOF</div>
<div>2: POSIX  ADVISORY  READ  21417 00:23:3323129 0 426</div>
<div>3: POSIX  ADVISORY  READ  12981 00:23:3323129 0 426</div>
<div>4: POSIX  ADVISORY  READ  14067 00:23:3323129 0 426</div>
<div>5: POSIX  ADVISORY  WRITE 15061 08:09:48938 0 9223372036854775806</div>
<div>6: POSIX  ADVISORY  WRITE 15061 08:09:48936 0 9223372036854775806</div>
<div>7: POSIX  ADVISORY  WRITE 15061 08:09:48934 0 9223372036854775806</div>
<div>8: POSIX  ADVISORY  WRITE 15061 08:09:48932 0 9223372036854775806</div>
<div>9: POSIX  ADVISORY  WRITE 15061 08:09:48929 0 9223372036854775806</div>
<div>10: POSIX  ADVISORY  WRITE 15061 08:09:48895 0 9223372036854775806</div>
<div>11: POSIX  ADVISORY  WRITE 15061 08:09:48893 0 9223372036854775806</div>
<div>12: FLOCK  ADVISORY  WRITE 14354 08:08:402423 0 EOF</div>
<div>13: FLOCK  ADVISORY  WRITE 3263 08:08:96619 0 EOF</div>
<div>14: POSIX  ADVISORY  WRITE 2628 08:08:322011 1024 2047</div>
<div>web4:~# stat /proc/14354</div>
<div>stat: cannot stat `/proc/14354': No such file or directory</div>
<div>web4:~# cat /proc/locks</div>
<div>1: FLOCK  ADVISORY  WRITE 25464 00:24:1986016 0 EOF</div>
<div>2: FLOCK  ADVISORY  WRITE 25463 00:23:106101 0 EOF</div>
<div>3: POSIX  ADVISORY  READ  21417 00:23:3323129 0 426</div>
<div>4: POSIX  ADVISORY  READ  12981 00:23:3323129 0 426</div>
<div>5: POSIX  ADVISORY  READ  14067 00:23:3323129 0 426</div>
<div>6: POSIX  ADVISORY  WRITE 15061 08:09:48938 0 9223372036854775806</div>
<div>7: POSIX  ADVISORY  WRITE 15061 08:09:48936 0 9223372036854775806</div>
<div>8: POSIX  ADVISORY  WRITE 15061 08:09:48934 0 9223372036854775806</div>
<div>9: POSIX  ADVISORY  WRITE 15061 08:09:48932 0 9223372036854775806</div>
<div>10: POSIX  ADVISORY  WRITE 15061 08:09:48929 0 9223372036854775806</div>
<div>11: POSIX  ADVISORY  WRITE 15061 08:09:48895 0 9223372036854775806</div>
<div>12: POSIX  ADVISORY  WRITE 15061 08:09:48893 0 9223372036854775806</div>
<div>13: FLOCK  ADVISORY  WRITE 14354 08:08:402423 0 EOF</div>
<div>14: FLOCK  ADVISORY  WRITE 3263 08:08:96619 0 EOF</div>
<div>15: POSIX  ADVISORY  WRITE 2628 08:08:322011 1024 2047</div>
<div>web4:~# </div>
<div></div>
</pre>
<p>Yeah, PID 14354 is LONG GONE but still holding a lock.  Yes I know they&#8217;re advisory, but 2.4 doesn&#8217;t have a problem cleaning up and getting rid of locks when processes die.  Back with 2.6.8 we tried to convert our NFS Server from 2.4-&gt;2.6, and that was a complete disaster.  The 2.6.8 NFS Server would just randomly spit out permission denied errors to clients under load.  We never tried again.  NFS isn&#8217;t where it&#8217;s at for us.  We&#8217;re moving to <a href="http://www.openafs.org/">AFS</a>.  AFS isn&#8217;t without pitfalls either mind you.  And we&#8217;ll have to do a LOT of work to get there including some custom code, most notably to support device inodes.  There&#8217;s also a pretty bad bug in the Linux AFS client that we&#8217;re hoping to see fixed soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotblag.com/2008/02/01/nfs-how-i-loathe-thee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.551 seconds -->
