<?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>Easy to Read Articles &#187; Linux</title>
	<atom:link href="http://www.easyreadarticles.com/Tags/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.easyreadarticles.com</link>
	<description>Best Technical Writing Online , Easy Reading Books and much more!</description>
	<lastBuildDate>Fri, 10 Feb 2012 03:40:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>News: Dell Latitude 2100 Mobile Computing Station</title>
		<link>http://www.easyreadarticles.com/internet/news-dell-latitude-2100-mobile-computing-station/#utm_source=articlesfeed&#038;utm_medium=articlesfeed&#038;utm_campaign=articlesfeed</link>
		<comments>http://www.easyreadarticles.com/internet/news-dell-latitude-2100-mobile-computing-station/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 23:49:17 +0000</pubDate>
		<dc:creator>EasyReadArticles.com</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[k-12]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[LatitudeTM 2100]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.easyreadarticles.com/?p=178</guid>
		<description><![CDATA[News on the new Dell Latitude 2100 Mobile Computing Station.]]></description>
			<content:encoded><![CDATA[<p>Greetings All!</p>
<p>Well I just got the email this morning regarding the Dell Latitude 2100 Mobile Computing Station.</p>
<p>The price was a little more than what I expected at around $4,500.00 AUD.</p>
<p>I was thinking more around the High 2&#8242;s up to mid 3&#8242;s however for your money it has everything integrated such as push image SW updates remotely, power without touching cords and no cord damage over time.</p>
<p>Some media for your below:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/lvPb0nQEt_U&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lvPb0nQEt_U&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>Catchya round &#8211; Phil</p>
]]></content:encoded>
			<wfw:commentRss>http://www.easyreadarticles.com/internet/news-dell-latitude-2100-mobile-computing-station/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tech: Dell LatitudeTM 2100</title>
		<link>http://www.easyreadarticles.com/applications/tech-dell-latitudetm-2100/#utm_source=articlesfeed&#038;utm_medium=articlesfeed&#038;utm_campaign=articlesfeed</link>
		<comments>http://www.easyreadarticles.com/applications/tech-dell-latitudetm-2100/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 07:47:25 +0000</pubDate>
		<dc:creator>EasyReadArticles.com</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[k-12]]></category>
		<category><![CDATA[latitude]]></category>
		<category><![CDATA[student]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.easyreadarticles.com/?p=174</guid>
		<description><![CDATA[Well the Dell rep just brought in the Dell LatitudeTM 2100 into us for a look.
I must say it looked like a toy a first glance however after having a play with it the whole kit is a well balanced machine.]]></description>
			<content:encoded><![CDATA[<p>Well the Dell rep just brought in the Dell LatitudeTM 2100 into us for a look.</p>
<p>I must say it looked like a toy a first glance however after having a play with it the whole kit is a well balanced machine.</p>
<p>You notice there are no exhuast holes anywhere so if you manage to put the laptop on water or other type of moisture you are sure not to get it wet inside.</p>
<p>Rubber in all the right places and utilizing a touch screen the LatitudeTm 2100 was something I can see being used in a school.</p>
<p>The touch screen was responsive and unlucky for me only manage to play the physic game, so I&#8217;m not sure how it will perform on the network.</p>
<p>The keyboard was nice to use and I didn&#8217;t feel like I had to change my comfort zone just to type something, unlike the Dell Mini 9.</p>
<p>Now these are not final pricing however just a quick quote it was gestimated around $600.00 AUD for basic model which includes 1GB Ram no webcam and 1 year warranty from memory.</p>
<p>Moving up to 2gb RAM, webcam and extended warranty probably around $800.00 AUD &#8211; <strong>Please don&#8217;t quote me.</strong></p>
<p>We couldn&#8217;t get a price on the managed trolley so as soon as I hear what we are looking at I&#8217;ll post something up.</p>
<p>[nggallery id=3]</p>
<p>Cheers</p>
<p>Phil</p>
]]></content:encoded>
			<wfw:commentRss>http://www.easyreadarticles.com/applications/tech-dell-latitudetm-2100/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Setting up a High Availability NAS/SAN using Openfiler</title>
		<link>http://www.easyreadarticles.com/applications/setting-up-a-high-availability-nassan-using-openfiler/#utm_source=articlesfeed&#038;utm_medium=articlesfeed&#038;utm_campaign=articlesfeed</link>
		<comments>http://www.easyreadarticles.com/applications/setting-up-a-high-availability-nassan-using-openfiler/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:47:52 +0000</pubDate>
		<dc:creator>The-Mesh.Org</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ha]]></category>
		<category><![CDATA[nas]]></category>
		<category><![CDATA[openfiler]]></category>
		<category><![CDATA[san]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.easyreadarticles.com/?p=150</guid>
		<description><![CDATA[Installing and Configuring Openfiler with DRBD and Heartbeat]]></description>
			<content:encoded><![CDATA[<p>This HowTo focuses on setting up the <span class="wiki">OpenSource</span> NAS/SAN <a rel="nofollow" class="wiki external" rel="external" href="http://www.openfiler.com/" target="_blank">Openfiler</a> as a High Availability storage. There currently does not appear to be a lot of documentation available on setting it up in version 2.3, so we thought we would document it here.</p>
<p>We will follow the version 2.2 HowTo from <a rel="nofollow" class="wiki" href="http://wiki.hyber.dk/doku.php" target="_blank">http://wiki.hyber.dk/doku.php</a> with a few modifications and comments on the setup process.</p>
<h2 id="Requirements" class="showhide_heading">Requirements</h2>
<p id="Hardware" class="showhide_heading"><strong>Hardware</strong></p>
<ul>
<li> 2 x boxes that meet the minimum spec of Openfiler&#8217;s hardware specifications.</li>
<li> 2 x ethernet interfaces in each box</li>
<li> Openfiler 2.3 installation media.</li>
<li> Both boxes should have the same size drives in each to avoid any replication inconsistencies.</li>
</ul>
<p id="Software" class="showhide_heading"><strong>Software</strong></p>
<ul>
<li> Install Openfiler 2.3 on both boxes utilising a disk setup such as the following:
<ul>
<li> 3gig /</li>
<li> 512meg swap</li>
<li> 300meg partition for cluster_metadata DRBD</li>
<li> Data partition configured as an unmounted LVM (this will be DRBD vg0_drbd)</li>
</ul>
</li>
</ul>
<pre class="codelisting" style="overflow: auto;" dir="ltr"><strong>[root@filer1 ~]#</strong> fdisk -l

Disk /dev/hdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1   *           1         382     3068383+  83  Linux
/dev/hdb2             383        4206    30716280   8e  Linux LVM
/dev/hdb3            4207        4239      265072+  82  Linux swap / Solaris
/dev/hdb4            4240        4276      297202+  83  Linux</pre>
<h2 class="showhide_heading">Network</h2>
<p>As you are using two network interfaces on each box, you need to select a range of IP addresses you want to use. The first interface is used to talk to your network&#8230; this is what your computers will see when they talk to your NAS/SAN.</p>
<p>The second interface is used for the DRBD data replication (dedicated interface) between the two filers. Ideally this interface has at least a gigabit of bandwidth, but it does work on 100mbit (depending on how much data you are putting through your NAS/SAN).</p>
<p>One thing to note in High Availability is you will need three IP addresses allocated to your cluster. The first IP address is the address that all of the computers on your network will talk to. Depending on which of your filers is Primary at the time, it will be configured to use this IP address. In an event of a fail over, the Secondary filer will become Primary and take over this IP address.</p>
<p>The other two IP addresses are used purely for administration, so you can directly communicate with each filer.</p>
<p>So, as an example, we will use a 192.168.8.0/24 subnet on our first interfaces, and 192.168.9.0/29 on the second interface.</p>
<p>So we can allocate the following:</p>
<ul>
<li> filer1
<ul>
<li> LAN Interface (eth0) 192.168.8.11</li>
<li> Replication Interface (eth1) 192.168.9.11</li>
</ul>
</li>
</ul>
<ul>
<li> filer2
<ul>
<li> LAN Interface (eth0) 192.168.8.12</li>
<li> Replication Interface (eth1) 192.168.9.12</li>
</ul>
</li>
</ul>
<ul>
<li> HA NAS/SAN Address (eth0) 192.168.8.10</li>
</ul>
<p><strong>Note:</strong> The Heartbeat service controls the HA Address, so DO NOT declare this address in your network config scripts&#8230; it will be declared when we configure Heartbeat.</p>
<h2 id="Hostname_setup" class="showhide_heading">Hostname setup</h2>
<p>We want both filers to be able to recognise each other. As Openfiler works off it&#8217;s FQDN (Fully Qualified Domain Name), we will use that.</p>
<p><strong>On filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> hostname &#8211;fqdn<br />
filer1</div>
<p>Modify our /etc/hosts (on filer1):</p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr"># Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               filer1 localhost.localdomain localhost
192.168.8.12             filer2</pre>
</div>
<p><strong>On filer2:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> hostname &#8211;fqdn<br />
filer2</div>
<p>Modify our /etc/hosts (on filer2):</p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr"># Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               filer2 localhost.localdomain localhost
192.168.8.11             filer1</pre>
</div>
<h2 id="SSH_Shared_keys" class="showhide_heading">SSH Shared keys</h2>
<p>We wan the two boxes to talk to each other without having to use a password. So, we will use SSH shared keys as mentioned in the <span class="wiki external">Openfiler 2.2 Howto</span>:</p>
<p><strong>On filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span># </strong>ssh-keygen -t dsa</div>
<p>Hit enter at the prompts (we don&#8217;t want to set a password on the key).</p>
<p><strong>On filer2:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> ssh-keygen -t dsa</div>
<p>Hit enter at the prompts (we don&#8217;t want to set a password on the key).</p>
<p>The above command will generate a file called &#8220;id_dsa.pub&#8221; in ~/.ssh/, which is the public key we need to copy over to our other filer:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span># </strong>scp ~/.ssh/id_dsa.pub root@filer2:~/.ssh/authorized_keys2</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> scp ~/.ssh/id_dsa.pub root@filer1:~/.ssh/authorized_keys2</div>
<h2 id="Configure_DRBD" class="showhide_heading">Configure DRBD</h2>
<p><a rel="nofollow" class="wiki external" rel="external" href="http://www.drbd.org/" target="_blank">DRBD</a> is what we will use to keep the data between the two filers consistent. DRBD allows us to run a RAID-1 (mirror) over the network, so if one host goes down, the other can come up in it&#8217;s place without having inconsistent data (that&#8217;s the theory anyway).</p>
<p><strong>On filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mv /etc/drbd.conf /etc/drbd.conf.org</div>
<p>Then we make our drbd.conf (version <img src='http://www.easyreadarticles.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> like the following:</p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr">global {
    # minor-count 64;
    # dialog-refresh 5; # 5 seconds
    # disable-ip-verification;
    usage-count ask;
}

common {
  syncer { rate 100M; }
}

resource cluster_metadata {

  protocol C;

  handlers {
    pri-on-incon-degr "echo O &gt; /proc/sysrq-trigger ; halt -f";
    pri-lost-after-sb "echo O &gt; /proc/sysrq-trigger ; halt -f";
    local-io-error "echo O &gt; /proc/sysrq-trigger ; halt -f";
#    outdate-peer "/usr/sbin/drbd-peer-outdater";
  }

 startup {
    # wfc-timeout  0;
    degr-wfc-timeout 120;    # 2 minutes.
  }

  disk {
    on-io-error   detach;

  }

  net {
    after-sb-0pri disconnect;
    after-sb-1pri disconnect;
    after-sb-2pri disconnect;
    rr-conflict disconnect;
  }

  syncer {
#    rate 10M;
#    after "r2";
    al-extents 257;
  }

  on filer1 {
    device     /dev/drbd0;
    disk       /dev/sda3;
    address    192.168.9.11:7788;
    meta-disk internal;
 }

   on filer2 {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address   192.168.9.12:7788;
    meta-disk internal;
  }
}

resource vg0_drbd {

  protocol C;
  startup {
    wfc-timeout         0;  ## Infinite!
    degr-wfc-timeout  120;  ## 2 minutes.
  }

  disk {
    on-io-error detach;
  }

  net {
    # timeout           60;
    # connect-int       10;
    # ping-int          10;
    # max-buffers     2048;
    # max-epoch-size  2048;
  }

  syncer {
  after "cluster_metadata";
  }

 on filer1 {
  device     /dev/drbd1;
  disk       /dev/sda5;
  address    192.168.9.11:7789;
  meta-disk internal;
  }

  on filer2 {
  device    /dev/drbd1;
  disk      /dev/sda5;
  address   192.168.9.12:7789;
  meta-disk internal;
  }
}</pre>
</div>
<p>Take note of the &#8220;disk&#8221; variable, as these partitions may be different on your filers. Basically just need to make sure the 300meg partitions are used for cluster_metadata and the LVM partition is used for our vg0_drbd.</p>
<p>We get to use /dev/drbd1 as a PV (Physical Volume) for our LVM, which may not sound that exiting if you&#8217;re not used to using LVMs, but it allows us to have a dynamic volume control of our data volumes, on top of a network RAID1 device (/dev/drbd1).</p>
<ul>
<li> More information on LVM <a rel="nofollow" class="wiki external" rel="external" href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29" target="_blank">here</a>.</li>
</ul>
<p>Both hosts need the SAME drbd.conf, so we overwrite filer2&#8242;s config with our modified filer1 configuration:</p>
<div class="simplebox"><strong><span class="wiki">r</span><span class="wiki">oot@filer1 ~</span>#</strong> scp /etc/drbd.conf root@filer2:/etc/drbd.conf</div>
<p>Initialise metadata on /dev/drbd0 (cluster_metadata) and /dev/drbd1 (vg0_drbd) on both filers:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> drbdadm create-md cluster_metadata</div>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> drbdadm create-md vg0_drbd</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> drbdadm create-md cluster_metadata</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> drbdadm create-md vg0_drbd</div>
<div class="simplebox">Note: if you get errors about needing to zero out the file system you can use the following command:</div>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> dd if=/dev/zero of=/dev/hdb2</div>
<div class="simplebox">Please be careful with this command and make sure its on the correct drive</div>
<p>We can now start DRBD on both hosts:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> service drbd start</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> service drbd start</div>
<p>If all goes well, they should connect and you should be able to run &#8220;service drbd status&#8221; and get a result similar to the following:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 /</span>#</strong> service drbd status<br />
drbd driver loaded OK; device status:<br />
version: 8.0.12 (api:86/proto:86)<br />
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44<br />
m:res               cs         st                   ds                         p  mounted  fstype<br />
0:cluster_metadata  Connected  Secondary/Secondary  Inconsistent/Inconsistent  C<br />
1:vg0_drbd          Connected  Secondary/Secondary  Inconsistent/Inconsistent  C</div>
<p>So, once both drbd resources are connected and both filers are in Secondary state (as above), we need to set a Primary filer&#8230; which we will make filer1:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> drbdsetup /dev/drbd0 primary -o<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> drbdsetup /dev/drbd1 primary -o</div>
<p>This should give you a status result of something like the following:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 /</span>#</strong> service drbd status<br />
drbd driver loaded OK; device status:<br />
version: 8.0.12 (api:86/proto:86)<br />
GIT-hash: 5c9f89594553e32adb87d9638dce591782f947e3 build by phil@mescal, 2008-04-24 13:29:44<br />
m:res               cs           st                 ds                     p  mounted  fstype<br />
&#8230;                 sync&#8217;ed:     17.9%              (247232/297152)K<br />
0:cluster_metadata  SyncSource Primary/Secondary  UpToDate/Inconsistent  C<br />
1:vg0_drbd          PausedSyncS Primary/Secondary  UpToDate/Inconsistent  C</div>
<p>Enable DRBD to startup at boot:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> chkconfig &#8211;level 2345 drbd on</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> chkconfig &#8211;level 2345 drbd on</div>
<p>We now create our cluster_metadata filesystem. We use this 300meg partition to keep all of the Openfiler configuration data and the data for the services we want to be available in HA (eg. NFS, iSCSI, SMB).</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mkfs.ext3 /dev/drbd0</div>
<p>We don&#8217;t add this partition to an /etc/fstab, as like our HA Interface, this is managed by Heartbeat&#8230; we will configure this shortly.</p>
<h2 id="Configure_LVM_Partition" class="showhide_heading">Configure LVM Partition</h2>
<p>As mentioned before, we create our /dev/drbd1 as a PV (Physical Volume) for our data volume group, which we then use to create Logical Volumes for our data.</p>
<p>First we need to edit /etc/lvm/lvm.conf and modify the filter line:<br />
From:</p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr">filter = [ "a/.*/" ]</pre>
</div>
<p>To:</p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr">filter = [ "r|/dev/sda5|" ]</pre>
</div>
<p><strong>Note:</strong> Change /dev/sda5 to reflect the partition of your LVM, as it may be different. Also remember to apply these changes on both filer1 and filer2.</p>
<p>My understanding of this is so when the host scans for LVM partitions, it excludes our LVM partition, as this seems to cause problems with drbd consistency when this filter is not enabled.</p>
<p>Create our LVM Physical Volume (we only do this on our Primary filer, as it will replicate to the Second filer via drbd):</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 /</span>#</strong> pvcreate /dev/drbd1<br />
Physical volume &#8220;/dev/drbd1&#8243; successfully created</div>
<h2 id="Configure_Heartbeat" class="showhide_heading">Configure Heartbeat</h2>
<p>As mentioned before, Heartbeat controls our fail_over between hosts. Basically the two filers run the Heartbeat service, that sends out a heartbeat pulse on our secondary interface (eth1). If one of the filers dies, then Heartbeat detects this and roles over the surviving filer to Primary (if it wasn&#8217;t already) using startup scripts available in /etc/ha.d/resources.d.</p>
<p>We need to make modifications to /etc/ha.d/ha.cf and /etc/ha.d/authkeys. Make sure you make these changes on both filers.</p>
<p>In /etc/ha.d/authkeys, add:</p>
<div class="simplebox">auth 2<br />
2 crc</div>
<p>You may have to actually create the /etc/ha.d/authkeys file, as it does not appear to exist in Openfiler 2.3.</p>
<p>We also need restrict permissions to authkeys to just &#8220;root&#8221;:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> chmod 600 /etc/ha.d/authkeys</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> chmod 600 /etc/ha.d/authkeys</div>
<p>Now we create a /etc/ha.d/ha.cf on both filers (needs to be identical on both, just like /etc/drbd.conf.</p>
<div class="simplebox">debugfile       /var/log/ha-debug<br />
logfile         /var/log/ha-log<br />
logfacility     local0<br />
bcast           eth1<br />
keepalive       5<br />
warntime        10<br />
deadtime        120<br />
initdead        120<br />
udpport         694<br />
auto_failback   off<br />
node            filer1<br />
node            filer2</div>
<p>Enable Heartbeat to startup at boot:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 </span><span class="wiki">~</span>#</strong> chkconfig &#8211;level 2345 heartbeat on</div>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> chkconfig &#8211;level 2345 heartbeat on</div>
<h2 id="Openfiler_data_configuration" class="showhide_heading">Openfiler data configuration</h2>
<p>As mentioned above, we have created a 300meg partition to keep our configuration and HA services available when we do a fail_over. To get this working, we copy our services and Openfiler config data over to our new partition &#8211; symbolically linking it back to it&#8217;s original location. If this does not make much sense now, it should be a little clearer when we start testing the fail_over of services.</p>
<p><strong>filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir /cluster_metadata<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mount /dev/drbd0 /cluster_metadata<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mv /opt/openfiler/ /opt/openfiler.local<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir /cluster_metadata/opt<br />
<strong><span class="wiki">root@filer1 ~</span># </strong>cp -a /opt/openfiler.local /cluster_metadata/opt/openfiler<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/opt/openfiler /opt/openfiler<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> rm /cluster_metadata/opt/openfiler/sbin/openfiler<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /usr/sbin/httpd /cluster_metadata/opt/openfiler/sbin/openfiler<br />
<strong><span class="wiki">root@filer1 ~</span># </strong>rm /cluster_metadata/opt/openfiler/etc/rsync.xml<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /opt/openfiler.local/etc/rsync.xml /cluster_metadata/opt/openfiler/etc/</div>
<p>We then edit our /opt/openfiler.local/etc/rsync.xml file:</p>
<div class="simplebox">&lt;xml version=&#8221;1.0&#8243; &gt;<br />
&lt;rsync&gt;<br />
&lt;remote hostname=&#8221;192.168.9.12&#8243;/&gt; ## IP address of peer filer.<br />
&lt;item path=&#8221;/etc/ha.d/haresources&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ha.d/ha.cf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ldap.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/openldap/ldap.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ldap.secret&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/nsswitch.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/krb5.conf&#8221;/&gt;<br />
&lt;/rsync&gt;</div>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir -p /cluster_metadata/etc/httpd/conf.d</div>
<p><strong>filer2:</strong></p>
<p><strong><span class="wiki">root@filer2 ~</span>#</strong> mkdir /cluster_metadata<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> mv /opt/openfiler/ /opt/openfiler.local<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/opt/openfiler /opt/openfiler</p>
<p>Change the /opt/openfiler.local/etc/rsync.xml to reflect below:</p>
<div class="simplebox">&lt;xml version=&#8221;1.0&#8243; &gt;<br />
&lt;rsync&gt;<br />
&lt;remote hostname=&#8221;192.168.9.11&#8243;/&gt; ## IP address of peer filer.<br />
&lt;item path=&#8221;/etc/ha.d/haresources&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ha.d/ha.cf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ldap.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/openldap/ldap.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/ldap.secret&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/nsswitch.conf&#8221;/&gt;<br />
&lt;item path=&#8221;/etc/krb5.conf&#8221;/&gt;<br />
&lt;/rsync&gt;</div>
<h2 id="Heartbeat_Cluster_configuration" class="showhide_heading">Heartbeat Cluster configuration</h2>
<p>We then modify the /cluster_metadata/opt/openfiler/etc/cluster.xml config file. This config file generates our /etc/ha.d/haresources file, which tells Heartbeat what we want it to do in an event of a fail_over.</p>
<p><strong>filer1 Only:</strong></p>
<div class="simplebox">
<pre class="codelisting" style="overflow: auto;" dir="ltr">&lt;xml version="1.0" &gt;
&lt;cluster&gt;
   &lt;clustering state="on" /&gt;
   &lt;nodename value="filer1" /&gt;
   &lt;resource value="MailTo::root@localhost::ClusterFailover"/&gt;
   &lt;resource value="IPaddr::192.168.8.10/24" /&gt;
   &lt;resource value="drbddisk::" /&gt;
   &lt;resource value="LVM::vg0_drbd" /&gt;
   &lt;resource value="Filesystem::/dev/drbd0::/cluster_metadata::ext3::defaults,noatime" /&gt;
   &lt;resource value="MakeMounts" /&gt;
&lt;/cluster&gt;</pre>
</div>
<p>Note how we have declared the HA IP Address here (192.168.8.10). As mentioned before, Heartbeat controls both the setup of the network interface and the mounting of our LVM VG and /cluster_metadata.</p>
<h2 id="Samba_and_NFS_Support" class="showhide_heading">Samba and NFS Support</h2>
<p>Modify Samba and NFS so it&#8217;s available on our /cluster_metadata drbd resource.</p>
<p><strong>filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir /cluster_metadata/etc<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mv /etc/samba/ /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/etc/samba/ /etc/samba<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir -p /cluster_metadata/var/spool<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mv /var/spool/samba/ /cluster_metadata/var/spool/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mkdir -p /cluster_metadata/var/lib<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mv /var/lib/nfs/ /cluster_metadata/var/lib/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs<br />
<strong><span class="wiki">root@filer1 ~</span># </strong>mv /etc/exports /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/etc/exports /etc/exports</div>
<p><strong>Note:</strong> We have moved /var/spool/samba into /cluster_metadata, which is only a 300meg partition. So, if you put some large print jobs through Samba, you will find the free space on this volume will get eaten up pretty quickly. So, if this is the case, you may want to create a separate DRBD resource for your /var directory. Or you may want to reconsider hosting your print services on a server that isn&#8217;t your SAN/NAS. <img src="http://the-mesh.org/img/smiles/icon_wink.gif" alt="wink" /></p>
<p><strong>filer2:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> rm -rf /etc/samba/<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/etc/samba/ /etc/samba<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> rm -rf /var/spool/samba/<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> rm -rf /var/lib/nfs/<br />
<strong><span class="wiki">root@filer2 ~</span># </strong>ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> rm -rf /etc/exports<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/etc/exports /etc/exports</div>
<h2 id="iSCSI_Support" class="showhide_heading">iSCSI Support</h2>
<p><strong>filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span># </strong>mv /etc/ietd.conf /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span># </strong>ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> mv /etc/initiators.allow /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow<br />
<strong><span class="wiki">root@filer1 ~</span># </strong>mv /etc/initiators.deny /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny</div>
<p><strong>filer2:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> rm /etc/ietd.conf</p>
<p><strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> rm /etc/initiators.allow<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> rm /etc/initiators.deny<br />
<strong><span class="wiki">root@filer2 ~</span># </strong>ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny</p>
</div>
<h2 id="FTP_Support" class="showhide_heading">FTP Support</h2>
<p><strong>filer1:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> mv /etc/proftpd /cluster_metadata/etc/<br />
<strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd</div>
<p><strong>filer2:</strong></p>
<div class="simplebox"><strong><span class="wiki">root@filer2 ~</span>#</strong> rm -rf /etc/proftpd<br />
<strong><span class="wiki">root@filer2 ~</span>#</strong> ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd</div>
<h2 id="Configure_Volume_Group" class="showhide_heading">Configure Volume Group</h2>
<p><strong>filer1:</strong></p>
<p>Create a Volume group from our /dev/drbd1:</p>
<div class="simplebox"><span class="wiki">root@filer1 etc</span># vgcreate vg0_drbd /dev/drbd1<br />
Volume group &#8220;vg0_drbd&#8221; successfully created</div>
<p><strong>Note:</strong> If you plan on using Windows to connect your iSCSI targets, do not use the &#8220;_&#8221; character or any other special characters when creating your Volume group.</p>
<p>Once the Heartbeat service has been configured and started (see below), you should be able to use the Openfiler web administration on <span class="wiki">https://192.168.8.10:446</span> to create LVM volumes and to export them via iSCSI etc.</p>
<h2 id="Starting_Heartbeat_and_first_time_configuration" class="showhide_heading">Starting Heartbeat and first-time configuration</h2>
<p>In order to get Openfiler to write the /etc/ha.d/haresources file based on the cluster.xml config file, we need to restart the Openfiler service and then log onto the web interface (using the Primary filer&#8217;s direct IP) and click on System -&gt; HA Cluster Setup.</p>
<p>Make sure you do this on the Primary filer (assumably filer1).</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> rm /opt/openfiler/etc/httpd/modules</div>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> ln -s /usr/lib/httpd/modules /opt/openfiler/etc/httpd/modules</div>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> service openfiler restart</div>
<p>After Openfiler restarts and you log onto the web interface, it should have a whole heap of values that reflect the clustes.xml file. With any luck, Openfiler has written this file out to /etc/ha.d/haresources. If haresources exist, you should be right to copy it over to filer2.</p>
<p>Before we can start Heartbeat we must create a volume for our heartbeat to start (Otherwise HA will fail to start).</p>
<div class="simplebox">[<strong>root@filer1 ~#</strong> lvcreate -L 50M -n StartVolume vg0_drbd</div>
<p>When you log onto the web interface and activate a service such as NFS or iSCSI. this will force Openfiler to rewrite the /etc/ha.d/haresources file. You will then need to scp this file over to the second filer as follows:</p>
<div class="simplebox"><strong><span class="wiki">root@filer1 ~</span>#</strong> scp /etc/ha.d/haresources root@filer2:/etc/ha.d/haresources</div>
<p>Since we have added heartbeat to our start up scripts earlier, we should be right to reboot filer1 then after that to reboot filer2.</p>
<p>If all goes to plan you should be able to access the primary filer with your web browser via <span class="wiki">https://192.168.8.10:446</span> (the High Available ip address). You can then remove the &#8216;StartVolume&#8217; you created above and create any other volumes you need via the web interface (Make sure you add one in before restarting otherwise HA will fail to start)</p>
<p>If the webserver does not work for any reason a good place to look for errors is in /var/log/ha-log this should allow you to work out where the problem may be.</p>
<h2 id="Note_" class="showhide_heading">Note:</h2>
<p>The rsync configuration is meant to synchronise changes between the two filers, but from observation this does not appear to happen. So, if you update your clusters.xml file, make sure you put the re-generated haresources file on both filers. Do not modify /etc/ha.d/haresources directly, as it will get overwritten. Always use /cluster_metadata/opt/openfiler/etc/cluster.xml.</p>
<p>Also it is a good idea to copy over the /etc/ha.d/haresources file everytime you change your lvm volumes as this can alter the haresources file and prevent the second filer from failing over.</p>
<p>We have filed a bug report which has since been fixed, I am yet to try just updating this file to see if it works or not.</p>
<p><a rel="nofollow" class="wiki" href="https://project.openfiler.com/tracker/ticket/791" target="_blank">https://project.openfiler.com/tracker/ticket/791</a></p>
<h2 id="Software_updates" class="showhide_heading">Software updates</h2>
<p>Note from the <a rel="nofollow" class="wiki external" rel="external" href="http://wiki.hyber.dk/doku.php/openfiler_2.2_ha-cluster_guide" target="_blank">2.2 HA Cluster Guide</a>:</p>
<div class="simplebox">When updating Openfiler, you need to run ‘conary updateall –replace-files’ on the primary active filer in the cluster (the one with /cluster_metadata currently mounted.) Running the update on the secondary filer in the cluster will fail because /cluster_metadata (which /opt/openfiler is symlinked to) does not exist.</div>
<p>Not sure if the second filer is meant to be updated by becoming Primary and updating as the note above suggests for the first filer. Assumably this would not cause any problems, but at this stage it is something we have not tested.</p>
<h2 id="Credits" class="showhide_heading">Credits</h2>
<p>We would like to acknowledge that this HowTo is heavily based on the <a rel="nofollow" class="wiki external" rel="external" href="http://wiki.hyber.dk/doku.php/openfiler_2.2_ha-cluster_guide" target="_blank">Openfiler 2.2 HA Cluster Guide</a>. Please make sure this is signified in all reproductions of this documentation. We have copied information from the 2.2 HA Cluster Guide with an understanding it is a public domain document. If this is not the case, please notify us and we will correct this.</p>
<p style="text-align: center;">The article is licensed under the terms of the <a rel="nofollow" href="http://the-mesh.org/tiki-index.php?page=GNU%20FDL&amp;copyrightpage=HomePage">GNU FDL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.easyreadarticles.com/applications/setting-up-a-high-availability-nassan-using-openfiler/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Moblin v2.0 beta for Netbooks and Nettops &#8211; It&#8217;s here&#8230;</title>
		<link>http://www.easyreadarticles.com/internet/moblin-v20-beta-for-netbooks-and-nettops-its-here/#utm_source=articlesfeed&#038;utm_medium=articlesfeed&#038;utm_campaign=articlesfeed</link>
		<comments>http://www.easyreadarticles.com/internet/moblin-v20-beta-for-netbooks-and-nettops-its-here/#comments</comments>
		<pubDate>Mon, 25 May 2009 22:10:33 +0000</pubDate>
		<dc:creator>EasyReadArticles.com</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Moblin]]></category>
		<category><![CDATA[netbook]]></category>
		<category><![CDATA[nettops]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.easyreadarticles.com/?p=82</guid>
		<description><![CDATA[The Moblin steering committee is happy to release the Moblin v2.0 beta for Netbooks and Nettops for developer testing.]]></description>
			<content:encoded><![CDATA[<blockquote><p>The Moblin steering committee is happy to release the Moblin v2.0 beta for Netbooks and Nettops for developer testing. With this release, developers can begin to experience and work with the source code of the visually rich, interactive user interface designed for Intel Atom based Netbooks. The Moblin v2.0 user experience has been designed from the ground up to provide unique ways to engage with the internet, aggregate your social networking activity, and enjoy your media content. The new user experience and core applications were developed using the Clutter animation framework, leveraging heavily from GL and the physics engine.</p></blockquote>
<p><a rel="nofollow" href="http://moblin.org/community/blogs/imad/2009/moblin-v20-beta-netbooks-and-nettops-its-here">Read More..</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.easyreadarticles.com/internet/moblin-v20-beta-for-netbooks-and-nettops-its-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

