<?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>geek scrap &#187; redhat</title>
	<atom:link href="http://geekscrap.com/tags/redhat/feed/" rel="self" type="application/rss+xml" />
	<link>http://geekscrap.com</link>
	<description>there is at least one way to do it</description>
	<lastBuildDate>Tue, 12 Apr 2011 10:14:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>What evil lurks in OCFS2</title>
		<link>http://geekscrap.com/2010/01/what-evil-lurks-in-ocfs2/</link>
		<comments>http://geekscrap.com/2010/01/what-evil-lurks-in-ocfs2/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 07:30:40 +0000</pubDate>
		<dc:creator>geekscrap</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[gfs]]></category>
		<category><![CDATA[gfs2]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[novell]]></category>
		<category><![CDATA[ocfs2]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[san]]></category>

		<guid isPermaLink="false">http://geekscrap.com/?p=104</guid>
		<description><![CDATA[In the beginning, Linux was a free general purpose OS and it was not clear how Linux companies would generate profits out of it. In 1999 RedHat company went public and started to develop a real business plan. After a few years, in 2003, one of its main competitors, SuSE Linux, was acquired by Novell. [...]]]></description>
			<content:encoded><![CDATA[<p>In the beginning, Linux was a free general purpose OS and it was not clear how Linux companies would generate profits out of it. In 1999 RedHat company went public and started to develop a real business plan. After a few years, in 2003, one of its main competitors, SuSE Linux, was acquired by Novell. Since then, both companies worked hard to reduce their involvement in desktop solutions and develop a segment known as &#8220;server market&#8221;.</p>
<p>One of the key technologies of enterprise server market is <a rel="nofollow" href="http://en.wikipedia.org/wiki/Storage_area_network">Storage Area Network</a>: an infrastructure that abstracts storage resources. When Linux companies started to compete in server market, Linux had support for accessing SAN storages (Fibrechannel and iSCSI drivers), advanced disk partitioning support (LVM and EVMS), but no free <a rel="nofollow" href="http://en.wikipedia.org/wiki/Clustered_file_system#Shared-disk">shared-storage filesystem</a>. So RedHat acquired Sistina&#8217;s GFS, a shared-storage filesystem, imported some work from OpenGFS developers, released it under Open Source license and evolved it to GFS2.</p>
<p><span id="more-104"></span>In the meanwhile, Novell looked around and found that Oracle had an ongoing open source project named OCFS2. It was a general purpose refactoring of original OCFS filesystem, which Oracle had developed years before to deal with clustering of its database product. So Novell decided to integrate OCFS2 into its Suse Linux Enterprise Server platform and advertise it as their top-notch <em>mature</em> filesystem for clustering in SAN environment.</p>
<p>Unluckily, what Novell marketing dept didn&#8217;t actually know is that OCFS2 has never been production-ready, yet.</p>
<p>In the last two years, I&#8217;ve deployed a number of OCFS2 filesystems with Novell SLES 10 SP2 and experienced the following troubles:</p>
<ol>
<li>In <a rel="nofollow" href="http://oss.oracle.com/bugzilla/show_bug.cgi?id=915">certain situations</a>, filesystem reports &#8220;Not enough disk space&#8221; even if df reports 50-60% usage, due to a bug in inode allocation when disk is very fragmented. This bug was reported over two years ago and is still &#8220;in the wild&#8221;!</li>
<li>If a node crashes, it has no support for intelligent fencing like RedHat&#8217;s, so if your cluster has several nodes, you may need to restore quorum manually.</li>
<li>There are several racing conditions in file locking that lead to corruption in shared bdb databases or similar faults.</li>
<li>Sharing OCFS2 folders with Samba on the nodes <a rel="nofollow" href="http://oss.oracle.com/bugzilla/show_bug.cgi?id=1058">crashes the kernel</a>, due to a bug in distributed locking routines. This bug was posted over one year ago and is still marked as &#8220;NEW&#8221; in Oracle&#8217;s bugzilla.</li>
<li>In the event of a system crash, OCFS2 may not recover automatically and needs a fsck. In this case, fsck takes <em>forever</em>, may report critical errors and finally fail, leaving the filesystem unusable and unrecoverable.</li>
<li>Restoring from backup a SAN filesystem of several Terabytes on OCFS2 takes longer. How longer? More.</li>
</ol>
<p>Any attempt to fix these problems using Novell rpm packages, Oracle-released source packages, Linux stock kernels, Linux experimental branches and patches found on bugzilla failed miserably. Furthermore, it&#8217;s pretty clear that Oracle treats users as if they were beta-testers.</p>
<p>Buyers beware: <strong>OCFS2 sucks</strong>.</p>
<p>Is GFS2 any better? Yes (it&#8217;s really designed as an enterprise product and integrated with RedHat clustering suite), but it&#8217;s still too <em>slow</em> for enterprise applications.</p>
<p>Bottom line: Don&#8217;t believe the marketing vapor, Linux on a SAN in 2010 is still a no-go.</p>
]]></content:encoded>
			<wfw:commentRss>http://geekscrap.com/2010/01/what-evil-lurks-in-ocfs2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Process management roundup/1</title>
		<link>http://geekscrap.com/2010/01/process-management-roundup-1/</link>
		<comments>http://geekscrap.com/2010/01/process-management-roundup-1/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 14:11:17 +0000</pubDate>
		<dc:creator>geekscrap</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[launchd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[redhat]]></category>
		<category><![CDATA[smf]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[sysinitv]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://geekscrap.com/?p=143</guid>
		<description><![CDATA[Under UNIX-like operating systems, there are several ways to manage long-running processes such as daemons. Process management is a crucial aspect of system maintainance and therefore it&#8217;s one of the aspects to take into account when planning a deployment. Since available solutions are getting more and more complex and specialized, I thought of writing a [...]]]></description>
			<content:encoded><![CDATA[<p>Under UNIX-like operating systems, there are several ways to manage long-running processes such as daemons. Process management is a crucial aspect of system maintainance and therefore it&#8217;s one of the aspects to take into account when planning a deployment. Since available solutions are getting more and more complex and specialized, I thought of writing a series of articles to recap the state of the art and draw up a comparative analysis.</p>
<p>This post deals with two system-wide alternatives, sysinitv and Mac OS X&#8217;s launchd: the first represents the tradition, while the latter represent innovation. Feel free to use comments to share your tips.</p>
<p><span id="more-143"></span></p>
<h3>System V init</h3>
<p>Also known as <em>sysinitv</em>, it&#8217;s the historical choice for most unices. Every OS has customized its own version so there&#8217;s no common standard. First process, typically /sbin/init reads config in /etc/inittab and executes a series of commands, depending on which <em>runlevel</em> is currently set.</p>
<p>In typical configurations, init launches a main rc script on runlevel change (boot sequence runlevel, default multiuser runlevel, etc), which in turn runs all the initialization scripts in a runlevel-specific folder. For example, in Redhat Linux each system service has an init script in /etc/init.d/. These init scripts respond to a number of actions that can be passed as parameter, for example <em>/etc/init.d/sendmail start</em> runs a function that starts sendmail daemon. Typical actions include: <em>start, stop, restart, status</em>. Some scripts implement specific actions: for instance apache service implements <em>reload</em> action, which does a graceful signal-based reload. Furthermore, most OSes include additional dependency information in those scripts and import script configuration directives from external files (/etc/sysconfig/ on Debian, SuSE, etc, /etc/conf.d/ in Gentoo).</p>
<p>When rc scripts is ready to process init scripts, it looks in appropriate runlevel folder (in RedHat Linux and derivatives its /etc/rc.d/rc&lt;runlevel&gt;.d/,  Gentoo has /etc/runlevels/&lt;runlevel&gt;/, etc) and executes entries which are symlinks to the actual /etc/init.d scripts.</p>
<p>Most of these systems use a specific naming convention for these symlinks, to define order of execution (scripts are run in alphabetic order) and action to be passed as parameter. For example, on RedHat-style systems, scripts are named as S&lt;NN&gt;&lt;service&gt; or K&lt;NN&gt;&lt;service&gt;, where NN is a number from 00 to 99. S means start action (ie. <em>/etc/rc.d/rc3.d/S60sendmail start</em>), while K means stop action. In other systems such as Gentoo, order of execution is determined dynamically by dependency information (requires additional computing and dependency caching).</p>
<p>Operating systems typically implement command-line, ncurses-based or X11-based tools to manage adding and removing items from runlevels: <a rel="nofollow" href="http://www.linuxjournal.com/article/4445">chkconfig</a> under RedHat/CentOS, <a rel="nofollow" href="http://www.debuntu.org/how-to-manage-services-with-update-rc.d">update-rc.d</a> under Debian, <a rel="nofollow" href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=4#doc_chap2">rc-update</a> under Gentoo, <a rel="nofollow" href="http://www.marzocca.net/linux/bum.html">boot up manager</a> (bum) under Ubuntu.</p>
<p><strong>Pros</strong>: well known, easy for unix admins, easy to add new custom scripts.<br />
<strong>Cons</strong>: no common standard, no parallel execution (except for Gentoo), no support process monitoring (ie. restarting daemons on crash).</p>
<h3>launchd</h3>
<p>It&#8217;s installed by default on <strong>Mac OS X 10.4 (Tiger)</strong> and later. Once <a rel="nofollow" href="http://launchd.macosforge.org/">launchd</a> is run by the kernel, it runs /etc/rc (a BSD-style system wide initialization script) and scans<em>/System/Library/LaunchAgents</em> and <em>/Library/LaunchDaemons</em> for plist files. Each plist contains a series of properties that define behaviour of launchd and customize run setup (command parameters, working directory, process owner, resource limits, etc). Launchd monitors processes and dynamically acts to adapt process status to requirements defined by configuration. This includes: running process automatically at boot, respawning process on unexpected quit, starting and stopping process upon several conditions (cpu load, network status, filesystem mounts, file presence, time schedule, shutdown, sleep, etc).</p>
<p>Finally, launchd companion is user tool <a rel="nofollow" href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/launchctl.1.html">launchctl</a>, which interacts with launchd through a socket and allows administrator to send in requests like start, stop, list, limit, shutdown, etc.</p>
<p><strong>Pro</strong>: amazing configuration directives, powerful extension mechanism, post-spawn process monitoring and usage management, scheduled actions (as in cron), stdio-to-inet support as inetd, can add processes without configuration files.<br />
<strong>Cons</strong>: configuration plists are an Apple-world standard, many great features are Mac OS X specific, strict process launching requisites (see <a rel="nofollow" href="http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html">launchd.plist manpage</a>), no support for configurable dependencies, no support for custom process signaling, complex logic may lead to unexpected results.</p>
<p><em>(continues)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://geekscrap.com/2010/01/process-management-roundup-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
