<?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>ShainMiley.com</title>
	<atom:link href="http://www.shainmiley.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shainmiley.com/wordpress</link>
	<description>Techmology...what is it allabout?</description>
	<lastBuildDate>Thu, 08 Mar 2012 15:35:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>zfsonlinux and gluster so far&#8230;.</title>
		<link>http://www.shainmiley.com/wordpress/2012/03/06/zfsonlinux-and-gluster-so-far/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/03/06/zfsonlinux-and-gluster-so-far/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 23:19:57 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Gluster]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[Redhat]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Zfs]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1164</guid>
		<description><![CDATA[Recently I started to revisit the idea of using zfs and linux (zfsonlinux) as the basis for a server that will eventually be the foundation of our gluster storage infrastructure.  At this point we are using the Opensolaris version of zfs and an older (but stable) version of gluster (3.0.5). The problem with staying with [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I started to revisit the idea of using zfs and linux (<a href="http://zfsonlinux.org" target="_blank">zfsonlinux</a>) as the basis for a server that will eventually be the foundation of our gluster storage infrastructure.  At this point we are using the Opensolaris version of zfs and an older (but stable) version of gluster (3.0.5).</p>
<p>The problem with staying with Opensolaris (besides the fact that it is no longer being actively supported itself),  is that we would be unable to upgrade gluster&#8230;.and thus we would be unable to take advantage of some of the new and upcoming features that exist in the later versions (such as geo-replication, snapshots, active-active geo-replication and various other bugfixes, performance enhancements, etc).</p>
<p><strong>Hardware:</strong></p>
<p>Here are the specs for the current hardware I am using to test:</p>
<ul>
<li>2 x Intel Xeon E5410 @ 2.33GHz:CPU</li>
<li>32 GB DDR2 DIMMS:RAM</li>
<li>48 X 2TB Western Digital SATA II:HARD DRIVES</li>
<li>2 x 3WARE 9650SE-24M8 PCIE:RAID CONTROLLER</li>
<li>Ubuntu 11.10</li>
<li>Glusterfs version 3.2.5</li>
<li>1 Gbps interconnects (LAN)</li>
</ul>
<p><strong>ZFS installation:</strong></p>
<p>I decided to use Ubuntu 11.10 for this round of testing, currently the daliy ppa has a lot of bugfixes and performance improvements that do not exist in the latest stable release ( 0.6.0-rc6) so the daily ppa is the version that should be used until either v0.6.0-rc7 or v0.6.0 final are released.</p>
<p>Here is what you will need to get zfs installed and running:</p>
<div class="ex"># apt-add-repository ppa:zfs-native/daily<br />
# apt-get update<br />
# apt-get install debootstrap ubuntu-zfs</div>
<p>At this point we can create our first zpool. Here is the syntax used to create a 6 disk raidz2 vdev:</p>
<div class="ex"># zpool create -f tank raidz2 sdc sdd sde sdf sdg sdh</div>
<p>Now let&#8217;s check the status of the zpool:</p>
<div class="ex"># zpool status tank<br />
pool: tank<br />
state: ONLINE<br />
scan: none requested<br />
config:NAME STATE READ WRITE CKSUM<br />
tank ONLINE 0 0 0<br />
raidz2-0 ONLINE 0 0 0<br />
sdc ONLINE 0 0 0<br />
sdd ONLINE 0 0 0<br />
sde ONLINE 0 0 0<br />
sdf ONLINE 0 0 0<br />
sdg ONLINE 0 0 0<br />
sdh ONLINE 0 0 0errors: No known data errors</div>
<p><strong>ZFS Benchmarks:</strong></p>
<p>I ran a few tests to see what kind of performance I could expect out of zfs first, before I added gluster on top, that way I would have better idea about where the bottleneck (if any) existed.</p>
<p>linux 3.3-rc5 kernel untar:</p>
<div class="ex">single ext4 disk: 3.277s<br />
zfs 2 disk mirror: 19.338s<br />
zfs 6 disk raidz2: 8.256s</div>
<p>dd using block size of 4096:</p>
<div class="ex">single ext4 disk: 204 MB/s<br />
zfs 2 disk mirror: 7.5 MB/s<br />
zfs 6 disk raidz2: 174 MB/s</div>
<p>dd using block size of 1M:</p>
<div class="ex">single ext4 disk: 153.0 MB/s<br />
zfs 2 disk mirror: 99.7 MB/s<br />
zfs 6 disk raidz2: 381.2 MB/s</div>
<p><strong>Gluster + ZFS Benchmarks</strong></p>
<p>Next I added gluster (version 3.2.5) to the mix to see how they performed together:</p>
<p>linux 3.3-rc5 kernel untar:</p>
<div class="ex">zfs 6 disk raidz2 + gluster (replication): 4m10.093s<br />
zfs 6 disk raidz2 + gluster (geo replication): 1m12.054s</div>
<p>dd using block size of 4096:</p>
<div class="ex">zfs 6 disk raidz2 + gluster (replication): 53.6 MB/s<br />
zfs 6 disk raidz2 + gluster (geo replication): 53.7 MB/s</div>
<p>dd using block size of 1M:</p>
<div class="ex">zfs 6 disk raidz2 + gluster (replication): 45.7 MB/s<br />
zfs 6 disk raidz2 + gluster (geo replication): 155 MB/s</div>
<p><strong>Conclusion</strong></p>
<p>Well so far so good, I have been running the zfsonlinux port for two weeks now without any real issues. From what I understand there is still a decent amount of work left to do around dedup and compression (neither of which I necessarily require for this particular setup).</p>
<p>The good news is that the zfsonlinux developers have not even really started looking into improving performance at this point, since their main focus thus far has been overall stability.</p>
<p>A good deal of development is also taking place in order to allow linux to boot using a zfs &#8216;/boot&#8217; partition.  This is currently an option on several disto&#8217;s including Ubuntu and Gentoo, however the setup requires a fair amount of effort to get going, so it will be nice when this style setup is supported out of the box.</p>
<p>In terms of Gluster specifically, it performs quite well using geo-replication with larger file sizes. I am really looking forward to the active-active geo-replication feature currently planned for v3.4 to become fully implemented and available. Our current production setup (currently using two node replication) has a T3 (WAN) interconnect, so having the option to use geo-replication in the future should really speed up our write throughput, which is currently hampered by the throughput of the T3 itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/03/06/zfsonlinux-and-gluster-so-far/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Introduction to Btrfs</title>
		<link>http://www.shainmiley.com/wordpress/2012/02/05/introduction-to-btrfs/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/02/05/introduction-to-btrfs/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 01:48:23 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[BTRFS]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1135</guid>
		<description><![CDATA[I have been waiting for the video presentation of a talk given by Chris Mason at this year&#8217;s Scale 10x to finally be posted online. The original Scale 10x talks were streamed live, and the website claims that the videos will be posted online soon, however at this point no date has been provided. In [...]]]></description>
			<content:encoded><![CDATA[<p>I have been waiting for the video <a href="http://www.socallinuxexpo.org/scale10x/presentations/btrfs" target="_blank">presentation</a> of a talk given by Chris Mason at this year&#8217;s <a href="http://www.socallinuxexpo.org/scale10x" target="_blank">Scale 10x</a> to finally be posted online. The original Scale 10x talks were streamed live, and the website claims that the videos will be posted online soon, however at this point no date has been provided.</p>
<p>In the meantime however, I found a link to another talk given by Chirs, this time hostsed at <a href="https://training.linuxfoundation.org/linux-tutorials/introduction-to-btrfs" target="_blank">linuxfoundation.org</a>. In order to view the full video you do need to provide your name and email address, but the process is painless and well worth the 30 seconds it takes to fill in the form.</p>
<p>It appears as though this was put together in December 2011, so it is relatively new and up to date, provides a nice introduction to btrfs, a look at the upcoming feature set, and a list of work that still needs to be done in order to make btrfs production ready.</p>
<p>Here is a link to the first few minutes of the talk:</p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/ZW2E4WgPlzc&amp;ap=%2526fmt%3D18" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed wmode="opaque" src="http://www.youtube.com/v/ZW2E4WgPlzc&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object>]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/02/05/introduction-to-btrfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XFS: Adventures in Filesystem Scalability</title>
		<link>http://www.shainmiley.com/wordpress/2012/02/05/xfs-adventures-in-filesystem-scalability/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/02/05/xfs-adventures-in-filesystem-scalability/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 01:34:28 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[BTRFS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xfs]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1124</guid>
		<description><![CDATA[There was another file system talk to come out of the recent Linux.conf.au conference, this one was given by Dave Chinner and was entitled &#8216;XFS: Recent and Future Adventures in Filesystem Scalability&#8217;. Here Dave discusses some of the historical roadblocks which prevented XFS from scaling as well as it could have, provides some in depth [...]]]></description>
			<content:encoded><![CDATA[<p>There was another file system talk to come out of the recent <a href="http://linux.conf.au/" target="_blank">Linux.conf.au</a> conference, this one was given by Dave Chinner and was entitled &#8216;XFS: Recent and Future Adventures in Filesystem Scalability&#8217;.</p>
<p>Here Dave discusses some of the historical roadblocks which prevented XFS from scaling as well as it could have, provides some in depth details about how these issue were eventually overcome, shows off some benchmarks comparing throughput and overall scaling using XFS, EXT4 and BTRFS.</p>
<p>Dave finishes up the talk with some discussion about what you can expect next from XFS and then takes some questions from the audience.</p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/FegjLbCnoBw&amp;ap=%2526fmt%3D18" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed wmode="opaque" src="http://www.youtube.com/v/FegjLbCnoBw&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object>]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/02/05/xfs-adventures-in-filesystem-scalability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The future of gluster.org</title>
		<link>http://www.shainmiley.com/wordpress/2012/01/30/the-future-of-gluster-org/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/01/30/the-future-of-gluster-org/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 22:31:51 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Gluster]]></category>
		<category><![CDATA[Redhat]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1109</guid>
		<description><![CDATA[Now that RedHat has purchased Gluster, and they are in the process of releasing their storage software appliance, many people are wondering what all this means for the GlusterFS project and gluster.org as a whole. John Mark Walker conducted a webinar last week entitled &#8216;The Future of GlusterFS and Gluser.org&#8217;. In the beginning of this presentation [...]]]></description>
			<content:encoded><![CDATA[<p>Now that RedHat has purchased Gluster, and they are in the process of releasing their storage software appliance, many people are wondering what all this means for the GlusterFS project and gluster.org as a whole.</p>
<p><a href="http://www.linkedin.com/in/johnmarkwalker" target="_blank">John Mark Walker</a> conducted a webinar last week entitled &#8216;The Future of GlusterFS and Gluser.org&#8217;. In the beginning of this presentation John talks about the history behind, and origins of the Gluster project, he then goes into a basic overview of the features provided by GlusterFS, and finally he talks about what to expect from version 3.3 of GlusterFS and the GlusterFS open source community going forward.</p>
<p>Here are some of the talking points that were discussed during the webinar:</p>
<ul>
<li>Unstructured data is expected to grow 44X by 2020</li>
<li>Scale out storage will hold 63,000 PB by 2015</li>
<li>RedHat is aggressively hiring developers with file system knowledge</li>
<li>Moving back to an open-source model from and open-core model</li>
<li>Open source version will be testing ground for new features</li>
<li>RHSSA will be more hardened and thoroughly tested</li>
<li>Beta 3 for 3.3 due in Feb/Mar 2012</li>
<li>GlusterFS 3.3 expected in Q2/Q3 of 2012</li>
</ul>
<p><a href="https://redhat.webex.com/redhat/lsr.php?AT=pb&amp;SP=EC&amp;rID=5637457&amp;rKey=792D93DF5BBC4551" target="_blank">Here</a> is the link to the entire presentation in a downloadable .mp4 format.</p>
<p><a href="http://redhatstorage.redhat.com/2012/01/27/the-future-of-glusterfs-slides/" target="_blank">Here</a> is a link to all the slides that were presented during the talk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/01/30/the-future-of-gluster-org/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A tour of btrfs by Avi Miller</title>
		<link>http://www.shainmiley.com/wordpress/2012/01/30/a-tour-of-btrfs-by-avi-miller/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/01/30/a-tour-of-btrfs-by-avi-miller/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 18:34:13 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[BTRFS]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1091</guid>
		<description><![CDATA[Here is a Youtube video of a presentation from this years Linux.conf.au conference given by Avi Miller.  The video talks about the current state of btrfs, some of the upcoming features, and Avi also provides a demonstration of one of the filesystem recovery tools in action. Here are a a few of the highlights: Lots [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a Youtube video of a presentation from this years Linux.conf.au conference given by <a title="am" href="http://www.linkedin.com/in/avimiller" target="_blank">Avi Miller</a>.  The video talks about the current state of btrfs, some of the upcoming features, and Avi also provides a demonstration of one of the filesystem recovery tools in action.</p>
<p>Here are a a few of the highlights:</p>
<ul>
<li>Lots of performance and stability fixes</li>
<li>Lots of code cleanup</li>
<li>New compression options (LZO and snappy)</li>
<li>Auto file defrag</li>
<li>Kernel 3.3 will allow larger block sizes (4k,8k,16k) for better meta-data throughput</li>
<li>A ZFS like send/receive is in the works</li>
<li>New filesystem checker (btrfsck) should be released by Feb 14th</li>
<li>Raid 5/6 code (from Intel) will go into mainline kernel after the release of btrfsck</li>
<li>Options exist/will exist to do mixed raid modes for data and meta-data</li>
<li>Btrfs will be production filesystem in next version of Oracle Unbreakable Linux</li>
</ul>
<p>No doubt about it, if you are interested in the current state of btrfs you should check out this talk.</p><object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/hxWuaozpe2I&amp;ap=%2526fmt%3D18" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed wmode="opaque" src="http://www.youtube.com/v/hxWuaozpe2I&amp;ap=%2526fmt%3D18" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"></embed></object>]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/01/30/a-tour-of-btrfs-by-avi-miller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mdadm cheat sheet</title>
		<link>http://www.shainmiley.com/wordpress/2012/01/17/mdadm-cheat-sheet/</link>
		<comments>http://www.shainmiley.com/wordpress/2012/01/17/mdadm-cheat-sheet/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 18:09:44 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1070</guid>
		<description><![CDATA[I have spent some time over the last few weeks getting familiar with mdadm and software RAID on Linux, so I thought I would write down some of the commands and example syntax that I have used while getting started. 1)If we would like to create a new RAID array from scratch we can use [...]]]></description>
			<content:encoded><![CDATA[<p>I have spent some time over the last few weeks getting familiar with mdadm and software RAID on Linux, so I thought I would write down some of the commands and example syntax that I have used while getting started.</p>
<p><strong>1)If we would like to create a new RAID array from scratch we can use the following example commands:</strong></p>
<p>RAID1-with 2 Drives:</p>
<div class="ex"># mdadm &#8211;create &#8211;verbose /dev/md0 &#8211;level=1 /dev/sda1 /dev/sdb1</div>
<p>RAID5-with 5 Drives:</p>
<div class="ex"># mdadm &#8211;create &#8211;verbose /dev/md0 &#8211;level=5 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1</div>
<p>RAID6-with 4 Drives with 1 spare:</p>
<div class="ex"># mdadm &#8211;create &#8211;verbose /dev/md0 &#8211;level=6 &#8211;raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1</div>
<p><strong>2)If we would like to add a disk to an existing array:</strong></p>
<div class="ex"># mdadm &#8211;add /dev/md0 /dev/sdf1 (only added as a spare)<br />
# mdadm &#8211;grow /dev/md0 -n [new number of active disks - spares] (grow the size of the array)</div>
<p><strong>3)If we would like to remove a disk from an existing array:</strong></p>
<p>First we need to &#8216;fail&#8217; the drive:</p>
<div class="ex"># mdadm &#8211;fail /dev/md0 /dev/sdc1</div>
<p>Next it can be safely removed from the array:</p>
<div class="ex"># mdadm &#8211;remove /dev/md0 /dev/sdc1</div>
<p><strong>4)In order to make the array survive a reboot, you need to add the details to &#8216;/etc/mdadm/mdadm.conf&#8217;</strong></p>
<div class="ex"># mdadm &#8211;detail &#8211;scan &gt;&gt; /etc/mdadm/mdadm.conf (Debian)<br />
# mdadm &#8211;detail &#8211;scan &gt;&gt; /etc/mdadm.conf (Everyone else)</div>
<p><strong>5)In order to delete and remove the entire array:</strong></p>
<p>First we need to &#8216;stop&#8217; the array:</p>
<div class="ex"># mdadm &#8211;stop /dev/md0</div>
<p>Next it can be removed:</p>
<div class="ex"># mdadm &#8211;remove /dev/md0</div>
<p><strong>6)Examining the status of your RAID array:</strong></p>
<p>There are two options here:</p>
<div class="ex">
# cat /proc/mdstat<br />
or<br />
# mdadm &#8211;detail /dev/md0
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2012/01/17/mdadm-cheat-sheet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Access files underneath an already mounted partition in Linux</title>
		<link>http://www.shainmiley.com/wordpress/2011/12/05/access-files-underneath-an-already-mounted-partition-in-linux/</link>
		<comments>http://www.shainmiley.com/wordpress/2011/12/05/access-files-underneath-an-already-mounted-partition-in-linux/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 19:36:03 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1052</guid>
		<description><![CDATA[Here is a quick tip for anyone who needs to access files that exists underneath an already mounted filesystem mount point.  For example suppose that you have some files located in a directory called &#8216;/tmp/docs&#8217;. At some point someone might decide to accidentally take that same directory, and create an NFS or CIFS mount, if [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a quick tip for anyone who needs to access files that exists underneath an already mounted filesystem mount point.  For example suppose that you have some files located in a directory called &#8216;/tmp/docs&#8217;.</p>
<p>At some point someone might decide to accidentally take that same directory, and create an NFS or CIFS mount, if you need to access the original files that existed before the new mount point was put into place, you have two options.</p>
<ol>
<li>Unmount the NFS or CIFS filesystem and access your files and then remount.</li>
<li>However, you may find yourself in a situation (such as I did), where it is extremely inconvenient or impossible for you have the downtime associated with the umount/remount process. In that case you have another option&#8230;you can use a &#8216;bind&#8217; mount.</li>
</ol>
<p>All you need to do is something like the following:</p>
<p><code>mount --bind /tmp /tmp/new_location</code></p>
<p>Now you should be able to access the original files here:</p>
<p>&#8216;/tmp/new_location/docs&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2011/12/05/access-files-underneath-an-already-mounted-partition-in-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The current CouchDB ecosystem</title>
		<link>http://www.shainmiley.com/wordpress/2011/11/29/the-current-couchdb-ecosystem/</link>
		<comments>http://www.shainmiley.com/wordpress/2011/11/29/the-current-couchdb-ecosystem/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 04:31:11 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Couchbase]]></category>
		<category><![CDATA[Couchdb]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=1021</guid>
		<description><![CDATA[Over the last few weeks I have started to familiarise myself with the current state of the CouchDB ecosystem. I hope that this will be the first of several posts in which I will be able to detail some of the things I been able to learn about CouchDB so far, and also in the [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks I have started to familiarise myself with the current state of the CouchDB ecosystem. I hope that this will be the first of several posts in which I will be able to detail some of the things I been able to learn about CouchDB so far, and also in the future when we are finally able to put this database into production.</p>
<p>With all the different companies, similar sounding projects names and technology buzzwords surrounding CouchDB, it can often seem very confusing, and some people have found it difficult to sift through all the jargon, and come away with a firm grasp on exactly who and what is behind CouchDB.</p>
<p>Let&#8217;s start off by defining some of the players and an overview of what they provide:</p>
<p>1) <a title="apache_couchdb" href="http://couchdb.apache.org/">Apache CouchDB</a> &#8211; is an open source, document-oriented database, it is part of the new breed of databases commonly referred to by some as NoSQL datastores.  CouchDB uses JSON to store documents, and you can interact with the database using a RESTful JSON API.</p>
<p>2) <a title="couchbase" href="http://www.couchbase.org/">Couchbase</a> &#8211; is a company that provides software and enterprise support for several projects that are based on the CouchDB source code. Lets take a look at a couple of these projects in more detail:</p>
<ul>
<li>Membase Server (Couchbase) &#8211; is an elastic, distributed, key-value database management system optimized for storing data for web applications. For anyone already familiar with with memcached, Membase is basically memcached on steroids, it allows you to build a distributed cluster of memcached instances, and it provides options for both persistent and non persistant storage. Another nice feature provided by Membase is a web gui that is displays all sorts of useful statistics that can help you understand exactly what is going on with your servers.</li>
<li>Couchbase Single Server &#8211; is the software package that you would download if you were looking for a replacement for (or an equivalent to) Couchdb. This is basically the stock Apache Couchdb source code, with the geocouch extension enabled, as well as some additional patches provided by the developers that work for Couchbase.</li>
<li>Couchbase Server 2.0 &#8211; represents the future of both the Couchbase and Membase codebases. Server 2.0 basically removes the SQLite backend that is currently being used by Membase, and replaces it with CouchDB. At this point Server 2.0 has been released with a &#8216;Developer Preview&#8217; status, and thus I do not believe it is quite ready for production use. Currently Couchbase Server 2.0 only allows you to access the data stored in the backend CouchDB database using the memcache protocol (you have to go through memcache to access the data stored in CouchDB). Future versions (3.0, etc) promise to allow you to access the data via both the memcache protocols as well as the CoucbDB RESTful JSON API, but this is currently not the case, and will  most likely not be available for some time.</li>
</ul>
<p>3) <a title="bigcouch" href="https://github.com/cloudant/bigcouch" target="_blank">BigCouch</a> &#8211; an open source version of CouchDB written in Erlang, that allows scaling beyond a master/slave architecture via database sharding, A BigCouch deployment will be seen as a single large CouchDB instance from the application perspective.</p>
<p>4) <a title="lounge" href="http://code.google.com/p/couchdb-lounge/" target="_blank">Couchdb-lounge</a> &#8211; an open source project which uses Nginx and Python to provide a proxy based framework to achieve additional scaling beyond a master/slave architecture for Couchdb.</p>
<p>5) <a title="cloudant" href="https://cloudant.com/" target="_blank">Cloudant</a> &#8211; an enterprise software company which provides CouchDB hosting, enterprise support, as well as being the company behind BigCouch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2011/11/29/the-current-couchdb-ecosystem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.10 + Gnome Shell + ATI drivers + multiple monitors</title>
		<link>http://www.shainmiley.com/wordpress/2011/10/24/ubuntu-11-10-gnome-shell-ati-drivers-multiple-monitors/</link>
		<comments>http://www.shainmiley.com/wordpress/2011/10/24/ubuntu-11-10-gnome-shell-ati-drivers-multiple-monitors/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 19:56:01 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=986</guid>
		<description><![CDATA[**UPDATE** Dane (see comments) pointed out that ATI has in fact released the 11.10 version of their drivers, I went ahead and gave them a try and using them broke most things for me. Once I booted back in to Gnome&#8230;I had some of the Gnome3 look and feel&#8230;but everything else (menus, icons, etc) were [...]]]></description>
			<content:encoded><![CDATA[<p>**UPDATE**</p>
<p>Dane (see comments) pointed out that ATI has in fact released the 11.10 version of their drivers, I went ahead and gave them a try and using them broke most things for me.</p>
<p>Once I booted back in to Gnome&#8230;I had some of the Gnome3 look and feel&#8230;but everything else (menus, icons, etc) were clearly from Gnome2.  I reinstalled version 11.9 and everything was back to normal.  This update might work for some other setups&#8230;but for now I&#8217;ll just stick with the version that is working 95% of the time.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>I was finally able to get a working desktop using Ubuntu 11.10, Gnome Shell, Gnome 3.2 along with my Radeon HD 2400 XT video card.  The adventure started a few weeks ago when I tried to setup my existing Ubuntu 11.04 desktop using some PPA repositories I found online.</p>
<p>I was able to successfully upgrade from Ubuntu 11.04 to 11.10 beta, and  since the 11.10 final release was right around the corner I figured it was safe to go ahead and give it a try.  The upgrade went well, but I spent the next day fighting to try and get gnome-shell to play nicely with my Radeon card using the existing ATI drivers.</p>
<p>I ended up starting from scratch a few days later, by backing up some important files in my home directory and doing a clean install of 11.10 once the final version was released.</p>
<p>After doing an update and installing some other packages such as  ubuntu-restricted-extras, vlc, pidgin, etc installing gnome-shell was painless:</p>
<div class="ex"># apt-get install gnome-shell</div>
<p>After rebooting, I logged in to find some of the same problems as before with this desktop install (screen tearing, blurry icons, multicolored menus, etc). I found some posts around the net that alluded to the fact that I might be able to solve some of my problems if I used the latest drivers (version 11.9) off the ATI website.</p>
<p>On the other hand, I found other posts by people claiming that even using the latest drivers had not completely solved all their problems and that ATI would be releasing version 11.10 sometime within the next 2 to 3 weeks, and that this new version would be specifically tested against Gnome 3.x (and fix the remaining bugs).</p>
<p>Anyway, I decided that I had nothing to lose at this point and decided to grab the latest version from the web:</p>
<div class="ex"># mkdir ati-11.9; cd ati-11.9<br />
# wget http://www2.ati.com/drivers/linux/ati-driver-installer-11-9-x86.x86_64.run<br />
# sh ati-driver-installer-11-9-x86.x86_64.run &#8211;buildpkg Ubuntu/oneiric<br />
# dpkg -i fglrx*.deb<br />
# aticonfig &#8211;initial -f </div>
<p>After rebooting my machine again, I was pleasantly surprised to see that everything was looking good, no more problems with screen tearing and all my icons and menus were seemingly in order.</p>
<p>The only thing I needed to do now was to setup my multiple monitors correctly, since at that point I was staring at two cloned spaces instead of one large desktop spread across both my two 24&#8243; monitors.</p>
<p>First I launched the Catalyst control panel:</p>
<div class="ex"># gksu amdcccle</div>
<p>Under the &#8216;Display Manager&#8217; page I had to select &#8216;Multi-display desktop with display&#8217;</p>
<p>***FOR EACH OF MY TWO MONITORS****</p>
<p>After a reboot I went into the Gnome &#8216;System Settings&#8217; and choose &#8216;Displays&#8217;&#8230;.I was finally able to uncheck &#8216;Mirror displays&#8217; and hit &#8216;Apply&#8217; without error.</p>
<p>The final two steps required for me to getting everything working %100 correctly was to install the gnome-tweak-tool:</p>
<div class="ex"># apt-get install gnome-tweak-tool</div>
<p>and disable the &#8216;Have file manager handle the desktop&#8217; option in the &#8216;Desktop&#8217; section (that did away with the extra menu I was seeing).</p>
<p>The final step in the process involved installing a new theme&#8230;I really liked the Elementary them found <a href="http://half-left.deviantart.com/art/GNOME-Shell-Elementary-251536124" target="_blank">here</a>. So that is the one I choose&#8230;.now everything is working as it should be!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2011/10/24/ubuntu-11-10-gnome-shell-ati-drivers-multiple-monitors/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Proxmox 1.9 and Java oom problems</title>
		<link>http://www.shainmiley.com/wordpress/2011/10/12/proxmox-1-9-and-java-oom-problems/</link>
		<comments>http://www.shainmiley.com/wordpress/2011/10/12/proxmox-1-9-and-java-oom-problems/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 16:16:30 +0000</pubDate>
		<dc:creator>shainmiley</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[Proxmox]]></category>

		<guid isPermaLink="false">http://www.shainmiley.com/wordpress/?p=967</guid>
		<description><![CDATA[Ever since we upgraded from Proxmox 1.8 to version 1.9 we have had users who have periodically complained about receiving out of memory errors when attempting to start or restart their java apps. The following two threads contain a little bit more information about the problems people are seeing: 1)Proxmox mailing list thread 2)Openvz mailing [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since we upgraded from Proxmox 1.8 to version 1.9 we have had users who have periodically complained about receiving out of memory errors when attempting to start or restart their java apps.</p>
<p>The following two threads contain a little bit more information about the problems people are seeing:</p>
<p>1)<a href="http://forum.proxmox.com/threads/6998-Best-strategy-to-handle-stran%20ge-JVM-errors-inside-VPS?p=39904#post39904" target="_blank">Proxmox mailing list thread</a><br />
2)<a href="http://forum.openvz.org/index.php?t=tree&amp;th=10025&amp;" target="_blank">Openvz mailing list thread</a></p>
<p>At least one of the threads suggest you allocate a minimum of 2 cpu&#8217;s per VM in order to remedy the issue.  We already have 2 cpu&#8217;s per VM, so that was not a possible workaround for us.</p>
<p>Another suggestion made by one of the posters was to  revert back to using a previous version of the kernel, or downgrade Proxmox 1.9 to Proxmox 1.8 altogether.</p>
<p>I decided I would try to figure out a work around that did not involving downgrading software versions.</p>
<p>At first I tried to allocate additional memory to the VM&#8217;s and that seemed to resolve the issue for a short period of time, however after several days I once again started to hear about out of memory errors with Java.</p>
<p>After checking &#8216;/proc/user_beancounters&#8217; on several of the VM&#8217;s,  I noticed that the failcnt numbers on the  &#8216;privvmpages&#8217; parameter was increasing steadily over time.</p>
<p>The solution so far for us has been to increase the &#8216;privvmpages&#8217; parameter (in my case I simply doubled it) to such a level that these errors are no longer incrementing the &#8216;failcnt&#8217; counter.</p>
<p>If you would like to learn more about the various UBC parameters that can be modified inside openvz you can check out this <a href="http://wiki.openvz.org/UBC_parameters_table" target="_blank">link</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shainmiley.com/wordpress/2011/10/12/proxmox-1-9-and-java-oom-problems/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

