<?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>Jeans Weblog &#187; Linux</title>
	<atom:link href="http://jeanbruenn.info/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://jeanbruenn.info</link>
	<description>a computer without windows is like a chocolatecake without mustard</description>
	<lastBuildDate>Fri, 03 Sep 2010 16:52:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Lunar Linux Boot in 5, 10 or 15 seconds</title>
		<link>http://jeanbruenn.info/linux_lunar-linux-boot-in-5-10-or-15-seconds.html</link>
		<comments>http://jeanbruenn.info/linux_lunar-linux-boot-in-5-10-or-15-seconds.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 07:34:52 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lunar Linux]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=919</guid>
		<description><![CDATA[You might or might not remember that there have been posts about booting Linux in very short time (like 10 seconds or less) read the following Articles for example: LPC: Booting Linux in five seconds and Did Ubuntu 10.04 Achieve Its Ten Second Boot Goal? and Meego 1.0 Boot time especially the last one is [...]]]></description>
			<content:encoded><![CDATA[<p>You might or might not remember that there have been posts about booting Linux in very short time (like 10 seconds or less) read the following Articles for example: <a href="http://lwn.net/Articles/299483/">LPC: Booting Linux in five seconds</a> and <a href="http://www.phoronix.com/scan.php?page=article&#038;item=ubuntu_lucid_final&#038;num=1">Did Ubuntu 10.04 Achieve Its Ten Second Boot Goal?</a> and <a href="http://www.youtube.com/watch?v=c6VtDG2h2Tg">Meego 1.0 Boot time </a> especially the last one is very interesting. In this &#8220;Article&#8221; i wanna show how to boot a normal Desktop PC with Lunar Linux in less than 20 seconds &#8211; My original goal was 10 seconds, currently I&#8217;m at 15. It will take a few days till i get it to 10 seconds because the &#8220;easy&#8221; changes have been done already by me &#8211; To improve the boot-time of this box even more i need to configure the Kernel differently and hack some of the boot scripts.<br />
<span id="more-919"></span><br />
<strong>My Hardware</strong></p>
<ul>
<li>AMD Athlon(tm) 64 X2 Dual Core Processor 3800+</li>
<li>3 GB Ram</li>
<li>3x WDC WD5000AADS-00S9B0 (500 GB) in SW Raid 5</li>
<li>nVidia Corporation G98 [GeForce 8400 GS]</li>
<li>Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder (DVB-T Card)</li>
<li>nVidia Corporation MCP61 High Definition Audio (snd-hda-intel)</li>
<li>LITE-ON DVDRW LH-20A1P, ATAPI CD/DVD-ROM drive</li>
</ul>
<p><strong>Linux Boot Step by Step</strong></p>
<p>To give you an idea how the boot-process works in Linux, here&#8217;s a little step by step overview about what happens when:</p>
<ol>
<li>Boot-loader</li>
<li>Kernel</li>
<li>Init</li>
<li>Services</li>
</ol>
<p>Before you start to tune the boot-time of your System you should set yourself some goals. Don&#8217;t set unrealistic goals. My goals are:</p>
<ul>
<li>Kernel max 3 seconds</li>
<li>Init-Scripts max 7 seconds</li>
</ul>
<p>(a bit later you will notice that i switch from sysvinit to runit &#8211; and thus the goals change to: one-time-scripts: max 3 seconds, rest max 4 seconds) &#8211; This way i should achieve a boot-time of 10 seconds.<br />
<br style="clear: both;"/><br />
<strong>Another note:</strong> I&#8217;ll write about the disk-throughput in my examples below, however i don&#8217;t think this is a helpful value as this might change from boot-to-boot.<br />
<br style="clear: both;"/><br />
<strong>Current &#8211; Sysvinit, default kernel</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-001.png" title="" rel="lightbox[singlepic1]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/1__150x100_bootchart-001.png" alt="bootchart-001" title="bootchart-001" />
</a>

<p class="display: inline;">Alright, let&#8217;s take a look at the current boot time. As you can see in this graphic my current boot is 47 seconds. According to the graphic we have 9 seconds for the Kernel till init starts and 38 seconds till the system is &#8220;ready to use&#8221;. You can see easily that every service is started one-by-one so if you have 10 services, and each is taking 2 seconds, we&#8217;re talking about 2*10 seconds. Now take a look at the top of the graphic, you&#8217;ll see that the disk throughput (31 mb/s) is not very good and the system is more or less &#8220;bored&#8221; while booting (which simply means, the system could do a lot more in the same time)</p>
<p>This is a big problem with SysvInit &#8211; But gladly there are sysvinit replacements around. For example runit, upstart and systemd. I personally dislike systemd and upstart &#8211; Upstart because of its dependencies to python and dbus. Systemd because it seems to be really buggy at the moment and the on-demand feature is imho something which shouldn&#8217;t go into an init-system (and let&#8217;s be serious &#8211; re-inventing xinetd/inetd makes which sense?) plus the fact that systemd needs cgroupthingy and thus won&#8217;t run on non-linux-platforms.<br />
<br style="clear: both;"/><br />
<strong>sysvinit to runit &#8211; minimal migration</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-002.png" title="" rel="lightbox[singlepic2]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/2__150x100_bootchart-002.png" alt="bootchart-002" title="bootchart-002" />
</a>

<p class="display: inline;">After switching sysvinit to runit, and doing minimal migration of the services (runit is sysv compatible &#8211; so i just wrote all the init scripts except for a few into /etc/runit/1) i got this graphic, on which you can see the boot-time is at 36 seconds (11 seconds won) and the throughput is at 38 MB/s (7 MB/s won). The  kernel takes only 7 seconds anymore (without doing anything to it &#8211; so no idea why this happened).</p>
<p><br style="clear: both;"/><br />
<strong>runit &#8211; fully migrated</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-003.png" title="" rel="lightbox[singlepic3]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/3__150x100_bootchart-003.png" alt="bootchart-003" title="bootchart-003" />
</a>

<p class="display: inline;">After migrating everything possible (talking about the services from sysvinit scripts to runit-run-scripts) i got a screen with a boot time of 27 seconds (won another 9 seconds) and a throughput of 91 MB/s (which is near to the limit of my hard discs and an improvement of another 53 MB/s). Kernel time is still around 7 seconds.</p>
<p>So &#8211; the only thing we did was: Replacing SysVinit with Runit and migrating all services. Just by doing so we boot in 27 seconds of 47 (20 seconds less), and got a throughput of 91 MB/s instead of 31 (60 MB/s more). Of course, thats not all, and i still didn&#8217;t reached the goal of a 10 seconds boot. It&#8217;s time to take a look at the kernel.<br />
<br style="clear: both;"/><br />
<strong>modifying the kernel &#8211; remove not needed stuff</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-004.png" title="" rel="lightbox[singlepic4]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/4__150x100_bootchart-004.png" alt="bootchart-004" title="bootchart-004" />
</a>

<p class="display: inline;">In this graphic you will see that i have a boot-time of 23 seconds (we won around 4 seconds) and a throughput of 68 MB/s (we lost around 23 MB/s). All i did was removing not needed modules and not needed stuff from the default Lunar Linux kernel, enabling preempt (low latency desktop). The kernel-time went down from ca 7 seconds to 5 seconds &#8211; so we won 2 seconds. However, the goal was 3 seconds &#8211; So i still need to do something with the Kernel. The easiest thing to have the Kernel at a 3 seconds boot is to just make everything which is not needed for a boot modularized. For example your USB-mouse and keyboard, your CD-ROM drive, your DVB-t card and similar stuff. That stuff doesn&#8217;t need to be available while booting the kernel, so make it a module&#8230;</p>
<p><br style="clear: both;"/><br />
<strong>make everything not important modular</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-005.png" title="" rel="lightbox[singlepic5]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/5__150x100_bootchart-005.png" alt="bootchart-005" title="bootchart-005" />
</a>

<p class="display: inline;">&#8230;and i get this screen &#8211; which shows 24 seconds boot time (so we lost 1 second) and a throughput of 56mb/s (lost 12 MB/s) &#8211; However: The kernel-time is only around 3,2 up to 3,3 seconds instead of 5 seconds &#8211; So I&#8217;d say first goal achieved &#8211; Kernel needs only around 3 seconds. I&#8217;m sure it&#8217;s possible to boot the kernel in 2 seconds &#8211; do dmesg | less and enable kernel time display so that you can see what is &#8220;hanging&#8221; where &#8211; you can tune the time then by making things modular or by disabling them.</p>
<p><br style="clear: both;"/><br />
<strong>modify init/run scripts</strong></p>
<p>As you can see in the latest graphic the time from running rcS to start the services in parallel is about 13 seconds long. As you might remember the goal was to have the one-time-scripts done/started within 3 seconds. So we&#8217;ll tune this now by modifying rcS.</p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-006.png" title="" rel="lightbox[singlepic6]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/6__150x100_bootchart-006.png" alt="bootchart-006" title="bootchart-006" />
</a>

<p class="display: inline;">Due to these changes the boot-time goes down from 24 seconds to 17 seconds &#8211; so we made it take 7 seconds less. And only 7 seconds to our &#8220;goal&#8221;. The time of the one-time-scripts went down to ca 5 seconds. So we need to get 2 more seconds out here. This means hacking the udev and mount script. Remember, we went down from 47 to 17 seconds already &#8211; and we didn&#8217;t touch mount, udev, x11 &#8211; So you&#8217;re booting Linux with x11 plus networking in 17 seconds.</p>
<p><br style="clear: both;"/><br />
<strong>hacking the udev and mount init script</strong></p>
<p>
<a href="http://jeanbruenn.info/wp-content/gallery/bootchart/bootchart-007.png" title="" rel="lightbox[singlepic7]" >
	<img class="ngg-singlepic ngg-left" src="http://jeanbruenn.info/wp-content/gallery/cache/7__150x100_bootchart-007.png" alt="bootchart-007" title="bootchart-007" />
</a>

<p class="display: inline;">For the mount script, which takes about 5 seconds, do the following: comment wait_some everywhere (except for the function at the start). Then remove the 2.4 kernel compatibility stuff and finally comment out LVM stuff (if you dont need it &#8211; i don&#8217;t).</p>
<p><em>Wow &#8211; Booting in 15 seconds. </em><br />
<br style="clear: both;"/><br />
<strong>To be continued&#8230; :)</strong></p>
<p><strong>Other Links</strong></p>
<ul>
<li><a href="http://www.lunar-linux.org">Lunar Linux</a></li>
<li><a href="http://www.ibm.com/developerworks/linux/library/l-boot.html">Boot Linux faster</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_lunar-linux-boot-in-5-10-or-15-seconds.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux (File/Storage) Clustering using DRBD and OCFS2</title>
		<link>http://jeanbruenn.info/linux_linux-filestorage-clustering-using-drbd-and-ocfs2.html</link>
		<comments>http://jeanbruenn.info/linux_linux-filestorage-clustering-using-drbd-and-ocfs2.html#comments</comments>
		<pubDate>Tue, 15 Sep 2009 20:01:00 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=428</guid>
		<description><![CDATA[The company i work for asked me to write a document about how to use DRBD and OCFS2 for MySQL Clustering as replacement for the MySQL NDB Stuff. This Document is nearly finished, however, today i talked with a friend, who&#8217;s working a lot with oracle databases and asked him what tests he would do [...]]]></description>
			<content:encoded><![CDATA[<p>The company i work for asked me to write a document about how to use DRBD and OCFS2 for MySQL Clustering as replacement for the MySQL NDB Stuff. This Document is nearly finished, however, today i talked with <a href="http://www.usn-it.de/">a friend, who&#8217;s working a lot with oracle databases</a> and asked him what tests he would do to test the locking characteristics of the Filesystem. He told me this can be made using dd in 4 Tests:</p>
<ol>
<li>&#8220;dd if=/dev/zero of=/mnt/filename bs=100M count=100&#8243; on Node1 on the Clusterfilesystem</li>
<li>The same on the other node (Node2), the times should be equal.</li>
<li>Two times (2x) the same on Node1, the time will break in</li>
<li>Now on both nodes at the same time &#8211; The time should be higher, the higher the worse.</li>
</ol>
<p>So, i did this checks on the System i&#8217;ve setup with DRBD and OCFS2, here are the results:<br />
<span id="more-428"></span><br />
<strong>Check 1</strong></p>
<pre>ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
1048576000 bytes (1.0 GB) copied, 88.1202 s, 11.9 MB/s
real    1m29.530s
user    0m0.000s
sys     0m3.496s</pre>
<p><strong>Check 2</strong></p>
<pre>ER-20026:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
1048576000 bytes (1.0 GB) copied, 84.3576 s, 12.4 MB/s
real    1m24.622s
user    0m0.000s
sys     0m5.408s</pre>
<p><strong>Check 3</strong></p>
<pre>ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10 &amp;
[1] 5252
ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
1048576000 bytes (1.0 GB) copied, 84.1481 s, 12.5 MB/s
real    1m24.314s
user    0m0.000s
sys     0m2.964s
1048576000 bytes (1.0 GB) copied, 137.668 s, 7.6 MB/s
[1]+  Done                    time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
real    2m19.164s
user    0m0.000s
sys     0m5.364s</pre>
<p><strong>Check 4</strong></p>
<pre>Node 1:
    ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
    1048576000 bytes (1.0 GB) copied, 156.417 s, 6.7 MB/s
    real    2m36.583s
    user    0m0.004s
    sys     0m2.512s
Node 2:
    ER-20026:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=10
    1048576000 bytes (1.0 GB) copied, 173.982 s, 6.0 MB/s
    real    3m24.200s
    user    0m0.000s
    sys     0m3.372s</pre>
<p>My friend was interested into the %CPU and %WAIT Data of the nodes during test 3 and 4, so i will redo the tests now. As you can see above, i used 1 GB instead of 10 GB. My next test will use 2 GB:</p>
<p><strong>The Box(es)</strong></p>
<ul>
<li>2 GB Ram</li>
<li>Intel(R) Core(TM)2 Duo CPU     E7200  @ 2.53GHz</li>
<li>160 GB Sata (Seagate Barracuda 7200.10 family, ST3160215AS)</li>
<li>Debian Lenny</li>
</ul>
<pre>top - 22:54:22 up 1 day,  7:04,  1 user,  load average: 0.08, 0.15, 0.11
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st</pre>
<p><strong>Check 1</strong></p>
<pre>dd:
    ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20
    2097152000 bytes (2.1 GB) copied, 187.962 s, 11.2 MB/s
    real    3m8.043s
    user    0m0.000s
    sys     0m9.937s
Top after 30 seconds:
    top - 22:56:31 up 1 day,  7:07,  1 user,  load average: 1.86, 0.63, 0.27
    Cpu0  :  0.0%us,  1.6%sy,  0.0%ni, 66.3%id, 32.1%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu1  :  0.0%us,  8.9%sy,  0.0%ni, 18.4%id, 66.6%wa,  1.3%hi,  4.7%si,  0.0%st</pre>
<p><strong>Check 2</strong></p>
<pre>dd:
    2097152000 bytes (2.1 GB) copied, 178.706 s, 11.7 MB/s
    real    2m59.232s
    user    0m0.000s
    sys     0m5.836s
Top after 30 seconds:
    ER-40021:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20
    top - 22:38:37 up 1 day,  7:10,  1 user,  load average: 1.97, 0.53, 0.31
    Cpu0  :  0.0%us,  4.0%sy,  0.0%ni, 30.2%id, 61.1%wa,  1.7%hi,  3.0%si,  0.0%st
    Cpu1  :  0.0%us,  9.3%sy,  0.0%ni,  9.6%id, 78.0%wa,  0.7%hi,  2.4%si,  0.0%st</pre>
<p><strong>Check 3</strong></p>
<pre>dd:
    ER-20026:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20 &amp;
    ER-20026:/var/lib/mysql# time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20 &amp;
    2097152000 bytes (2.1 GB) copied, 205.511 s, 10.2 MB/s
    real    3m25.861s
    user    0m0.000s
    sys     0m6.152s
    2097152000 bytes (2.1 GB) copied, 205.622 s, 10.2 MB/s
    real    3m25.692s
    user    0m0.000s
    sys     0m3.500s
    [1]-  Done                    time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20
    [2]+  Done                    time dd if=/dev/zero of=/var/lib/mysql/test bs=100M count=20
Top after 30 seconds:
    top - 22:44:15 up 1 day,  7:16,  1 user,  load average: 2.29, 1.41, 0.80
    Cpu0  :  0.0%us,  2.7%sy,  0.0%ni,  3.7%id, 89.0%wa,  0.7%hi,  4.0%si,  0.0%st
    Cpu1  :  0.0%us,  2.1%sy,  0.0%ni, 92.8%id,  0.4%wa,  0.8%hi,  3.8%si,  0.0%st</pre>
<p><strong>Check 4</strong></p>
<pre>Node1:
    dd:
        2097152000 bytes (2.1 GB) copied, 410.541 s, 5.1 MB/s
        real    6m50.703s
        user    0m0.008s
        sys     0m3.448s
    Top after 30 seconds:
        top - 23:15:07 up 1 day,  7:25,  1 user,  load average: 1.19, 0.40, 0.37
        Cpu0  :  0.0%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
        Cpu1  :  0.0%us, 12.9%sy,  0.0%ni, 79.6%id,  4.2%wa,  0.8%hi,  2.5%si,  0.0%st
Node2:
    dd:
        2097152000 bytes (2.1 GB) copied, 400.627 s, 5.2 MB/s
        real    6m40.983s
        user    0m0.000s
        sys     0m7.560s
    Top after 30 seconds:
        top - 22:53:29 up 1 day,  7:25,  1 user,  load average: 2.03, 1.42, 1.19
        Cpu0  :  0.0%us,  2.0%sy,  0.0%ni, 88.7%id,  6.0%wa,  0.3%hi,  3.0%si,  0.0%st
        Cpu1  :  0.0%us,  4.4%sy,  0.0%ni, 67.4%id, 25.8%wa,  0.3%hi,  2.0%si,  0.0%st</pre>
<p>As you can see, the Wait is quite high, this might be due to too slow discs or most likely the network. Both boxes are connected with each other over a 100mbit/s NIC so the datatransfer between those boxes is limited to technically 12MB/s (practically 10MB/s). However, i&#8217;ve shown this data to my friend and his comments were:</p>
<blockquote><p>What we can see here is a mixture of two concurrency problems. Firsthand, it&#8217;s hard disk internal concurrency, the write head has to jump back and forth to write the different positions, of course. It&#8217;s the usual IOPS problem of magnetic disks.</p>
<p>The other problem here is concurrency between the nodes, two in this case. Changing blocks within the same file in the same directory and changing blocks that may still be in the file system cache of the opposite node &#8211; all that is stuff the cluster file system has to manage. It has to provide integrity, but should avoid locks whenever possible.</p>
<p>Now about the numbers of the 2GB test series. Tests 1 and 2 are desired to find the absolute range of IO power we are talking about. Test 3 tells us, how much the disk-internal concurrency affects our result, and Test 4 is what we are looking for.</p>
<p>You can see, Test 1+2 are 11MB/s each, if started concurrently on one node, it&#8217;s still 10MB/s but with about 90% of IO wait of the CPU. The high wait rate of Test 3 means, that the media is about to go in a saturation state now, luckily Jean caught something near the break even point with his test.</p>
<p>In preparation for Test 4, this tells us: All degradation in speed we can see from now on, is made by the cluster FS, not by the disk. Despite we have much less IO speed in Test 4 (5 MB/s vs. 10MB/s in reference), there is much less WAIT% now. WAIT% is &#8220;waiting for IO&#8221; &#8211; unlocking mechanisms my OCFS2 via network are causing slight SYS% increase instead. One last point of interest is to look for the limitation now &#8211; the values don&#8217;t provide it.</p>
<p>My guess is Networking: Bandwidth, or more likely: Latency.</p></blockquote>
<p>Thanks to Martin (usn) for his time :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_linux-filestorage-clustering-using-drbd-and-ocfs2.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Acer Aspire One</title>
		<link>http://jeanbruenn.info/linux_acer-aspire-one.html</link>
		<comments>http://jeanbruenn.info/linux_acer-aspire-one.html#comments</comments>
		<pubDate>Sun, 30 Aug 2009 23:26:08 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=417</guid>
		<description><![CDATA[Hey, ich hab von glako (danke!) nen&#8217; acer aspire one bekommen, da habe ich mir jetzt erstmal Lunar Linux installiert, läuft ganz fein. Wobei ich anfangs schon etwas Probleme hatte bei der Installation. Aber das liegt eher daran das ich kein externes CD Rom bzw DVD Rom habe und somit leichte Probleme hatte irgendwas auf [...]]]></description>
			<content:encoded><![CDATA[<p>Hey,</p>
<p>ich hab von glako (danke!) nen&#8217; acer aspire one bekommen, da habe ich mir jetzt erstmal Lunar Linux installiert, läuft ganz fein. <a href="http://jeanbruenn.info/wp-content/uploads/2009/08/aao2-large.png"><img src="http://jeanbruenn.info/wp-content/uploads/2009/08/aao2.png" alt="aao2" title="aao2" class="alignright size-thumbnail wp-image-418" /></a> Wobei ich anfangs schon etwas Probleme hatte bei der Installation. Aber das liegt eher daran das ich kein externes CD Rom bzw DVD Rom habe und somit leichte Probleme hatte irgendwas auf dem Teil zu installieren mangels Media. Wie auch immer. Rechts solltet ihr nen Screenshot sehen können.</p>
<p>Die Auflösung ist 1024x600px. Es läuft alles einwandfrei, bis auf die Grafikkarte. Manchmal wackelt das Bild, als ob es kurz nach rechts und links geht, als ob der Display sowas wie Autoadjustment macht. Wobei das wirklich nicht so häufig passiert, das passiert nur unter Last. Möglicherweise irgendwas, was ich falsch eingestellt habe, in der xorg.conf oder so.</p>
<p>Bin ich mir gerade nicht sicher. Mal sehen ich will demnächst mal sehen das ich Bluetooth einbaue, eine 1.8&#8243; oder 2.5&#8243; Festplatte, sowie die grünen Leds durch blaue austausche. Erstes sollte beides möglich sein, dafür habe ich schon Howtos gefunden. Bin etwas verwirrt was die SSD angeht &#8211; Dazu existiert ein Haufen an Informationen, Fakt ist einfach: Niemand kann sagen wann die SSD den Geist aufgibt, weil ich nicht einsehen kann (auch nicht mit smartctl) wieviele cycles die SSD schon hatte. Anders als Festplatten ist eine SSD limitiert &#8211; Hat eine SSD also maximal 100 000 write cycles &#8211; Hält Sie exakt 100 000 mal &#8211; beim 101 000 mal ist sie tot. Ganz einfach. Allerdings habe ich auch schon Hochrechnungen gesehen nach denen eine SSD 7-519 Jahre halten soll.. Also.. Nunja.</p>
<p>Whatever :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_acer-aspire-one.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quotas</title>
		<link>http://jeanbruenn.info/linux_quotas.html</link>
		<comments>http://jeanbruenn.info/linux_quotas.html#comments</comments>
		<pubDate>Wed, 15 Jul 2009 11:15:06 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=409</guid>
		<description><![CDATA[A company i&#8217;m working for asked me to write a php script which is autoinstalling software like wordpress, gallery2, etc. I nearly finished that script, the only thing which is still missing is the &#8220;free-space&#8221; check. This is because it&#8217;s not simply just checking for the free space, in fact i have to check for [...]]]></description>
			<content:encoded><![CDATA[<p>A company i&#8217;m working for asked me to write a php script which is autoinstalling software like wordpress, gallery2, etc. I nearly finished that script, the only thing which is still missing is the &#8220;free-space&#8221; check. This is because it&#8217;s not simply just checking for the free space, in fact i have to check for quotas, if they exist, too. However, that was the reason why i played around with quotas.</p>
<p>First of all i enabled quota support in the Kernel. Then i added &#8220;usrquota,grpquota&#8221; to the options in /etc/fstab. After that i created the files quota.user and quota.group on / (which is the device i&#8217;m trying to work with quota on) and rebooted (-o remount was not working). Now back online i issued &#8220;quotacheck -avug&#8221; to the box and got:<br />
<span id="more-409"></span></p>
<pre>
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: WARNING - Quotafile //quota.user was probably truncated. Cannot save quota settings...
quotacheck: WARNING - Quotafile //quota.group was probably truncated. Cannot save quota settings...
quotacheck: Cannot remount filesystem mounted on / read-only so counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force checking.
</pre>
<p>Let&#8217;s start using google. The first thing is easily solvable.. instead of &#8220;usrquota&#8221; and &#8220;grpquota&#8221; use: usrjquota.. and grpjquota i guess. However, issueing &#8220;mount /dev/sda2 / -t ext3 -o remount,rw,usrjquota=aquota.user,jqfmt=vfsv0&#8243; brings nothing. dmesg is showing:</p>
<pre>
EXT3-fs: old and new quota format mixing.
</pre>
<p>This isn&#8217;t as easy as i thought to be honest&#8230;Then finally i found a howto, explaining it quite right. You have to do it this way:</p>
<p><b>1. Add &#8220;usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0&#8243; to the partition you wanna use. For example:</b></p>
<pre>
wdp@yulivee ~ $ cat /etc/fstab | grep quota
/dev/sda2       /       ext3    defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1
wdp@yulivee ~ $
</pre>
<p><b>2. create some files, change permissions and remount the disc</b></p>
<pre>
touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
</pre>
<p><b>3. Last Step, run the commands quotacheck -avugm and quotaon -avug</b></p>
<pre>
root@yulivee /home/wdp # quotacheck -avugm
quotacheck: WARNING -  Quotafile //aquota.user was probably truncated. Cannot save quota settings...
quotacheck: WARNING -  Quotafile //aquota.group was probably truncated. Cannot save quota settings...
quotacheck: Scanning /dev/sda2 [/] done
quotacheck: Checked 99960 directories and 1613505 files
root@yulivee /home/wdp # quotaon -avug
/dev/sda2 [/]: group quotas turned on
/dev/sda2 [/]: user quotas turned on
root@yulivee /home/wdp #
</pre>
<p>Nice nice nice :-) Now i need to do the PHP Part, for that i&#8217;m adding now a testuser with quotas and checking the outputs of df and the quota tools. But first we&#8217;re coming to another problem. Adding quotas for the user quotatest:</p>
<pre>
root@yulivee /home/wdp # edquota quotatest
Disk quotas for user quotatest (uid 1003):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda2                        20          0          0          6        0        0
</pre>
<p>I want to set 200 MB Quota and have to deal with blocks and inodes &#8211; Funny, or? However &#8211; Inodes is the Amount of files. Blocks depends on the system. Means first of all we need to check the size of a block on / &#8211; This can be done this way:</p>
<pre>
root@yulivee /home/wdp # tune2fs -l /dev/sda2 | grep "Block size"
Block size:               4096
root@yulivee /home/wdp #
</pre>
<p>Normally, we would calculate the quota limit in bytes / blocksize, the blocksize on my box is 4096 <b>but this was not working</b>. I had to use /1024 instead of /4096 to have a limit of 200 MB.  So it seems you can ignore the blocksize of the filesystem completly.</p>
<p>Now we need to calculate a bit:</p>
<pre>
# ( Quota Limit in MB * 1024 * 1024 ) / 1024 = Blocks
( 200 * 1024 * 1024 ) / 1024 = 204800
# or:
200 MB * 1024 * 1024 = 209715200 (Bytes)
209715200 (Bytes) / 1024 = 204800 (Blocks)
# or:
200 MB * 1024 = 204800 Blocks
</pre>
<p>Now we know, that 204800 Blocks on my disc (filesystem) are 200 MB. For 195 MB it&#8217;s 199680. Now in edquota define it this way:</p>
<pre>
root@yulivee /home/wdp # edquota quotatest
Disk quotas for user quotatest (uid 1003):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda2                        20            199680   204800          6        0        0
</pre>
<p>okay, su &#8211; quotatest, type in quota, you&#8217;ll something similar to:</p>
<pre>
quotatest@yulivee ~ $ quota
Disk quotas for user quotatest (uid 1003):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda2  20 199680  204800            6       0       0
</pre>
<p>Seems to work, let&#8217;s now create a big file using dd, just to test whether quota is working or not:</p>
<pre>
quotatest@yulivee ~ $ dd if=/dev/urandom of=test.datei bs=1048576 seek=1024
sda2: warning, user block quota exceeded.
sda2: write failed, user block limit reached.
dd: writing `test.datei': Disk quota exceeded
150+0 records in
149+0 records out
157126656 bytes (157 MB) copied, 30.6894 s, 5.1 MB/s
quotatest@yulivee ~ $ du -h
200M    .
</pre>
<p>As you can see it&#8217;s working. Let&#8217;s come to the PHP Part. First of all we need to check whether there are quotas for the user or not. If there are quotas we have to check them, if not we have to check on which disc/partition the user is and how much of it free is.</p>
<p>if the system has no quotas the command quota will return nothing. If the system has quotas but no quotas are set for the user the command quota returns &#8220;Disk quotas for user wdp (uid 1000): none&#8221; for example if your username is wdp. If the system got quotas and quotas are set it will return something like what i wrote prior (just scroll up).</p>
<pre>
&lt;?php

        // This is just an example, there might be nicer solutions
        // it will "echo" the free "blocks" which is the same then
        // KB in my example here.
        $quota = `quota -w`;
        if(empty($quota))
        {
                $quotas = false;
        } else
        {
                if(substr_count($quota, " ") == 7)
                        $quotas = false;
                else
                        $quotas = true;
        }

        if($quotas == true)
        {

                $toreplace = array("\r", "\n", "\t");
                $line = str_replace($toreplace, ' ', $quota);
                $line = preg_replace('/\s+/s', " ", $line);
                $array = explode(" ", $line);
                $quotaCurrent = $array[17];
                $quotaSoft = $array[18];
                $quotaHard = $array[19];
                if(($quotaSoft > 0) &#038;&#038; ($quotaSoft > $quotaCurrent))
                        $free = $quotaSoft - $quotaCurrent;
                else
                        $free = $quotaHard - $quotaCurrent;
                echo $free;

        } else
        {

                // We reached this part because it
                // seems there are no usable quotas
                // this is a fallback!

        }

?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_quotas.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Licenses &#8211; CDDL and GPL</title>
		<link>http://jeanbruenn.info/linux_licenses-cddl-and-gpl.html</link>
		<comments>http://jeanbruenn.info/linux_licenses-cddl-and-gpl.html#comments</comments>
		<pubDate>Sun, 21 Dec 2008 12:45:26 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSolaris]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=159</guid>
		<description><![CDATA[After using OpenSolaris now for two weeks or something i started to think about the different licenses and in irc someone said &#8220;GPL isn&#8217;t free, the CDDL is&#8221; i was wondering about this sentence and so i started to look a bit at both licenses. What i found out, is the following link, which i [...]]]></description>
			<content:encoded><![CDATA[<p>After using OpenSolaris now for two weeks or something i started to think about the different licenses and in irc someone said &#8220;GPL isn&#8217;t free, the CDDL is&#8221; i was wondering about this sentence and so i started to look a bit at both licenses. What i found out, is the following link, which i got in IRC. This link is old though very interesting and explains it very good. If i understood it correct, the GPL forces everyone to use the GPL; you have to put all your modifications of a GPLd &#8220;thing&#8221; under the GPL. Thus you&#8217;re forced to use a license; you aren&#8217;t really free, as the license is trying to tell you. Though as i&#8217;m not a lawyer this could probably be wrong &#8211; write me if it&#8217;s wrong and i change it :)</p>
<p><a href="http://blogs.sun.com/chandan/entry/copyrights_licenses_and_cddl_illustrated">copyrights_licenses_and_cddl_illustrated</a></p>
<p>Anyway. I think the CDDL is much more useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_licenses-cddl-and-gpl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMGL: OpenGL Hardware 3D Acceleration for VMs</title>
		<link>http://jeanbruenn.info/linux_vmgl-opengl-hardware-3d-acceleration-for-vms.html</link>
		<comments>http://jeanbruenn.info/linux_vmgl-opengl-hardware-3d-acceleration-for-vms.html#comments</comments>
		<pubDate>Sun, 07 Dec 2008 12:51:44 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSolaris]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=148</guid>
		<description><![CDATA[Recently Rayne in #linux-forum.de posted a link to an Article, in which they wrote about VMGL. The whole Project seems very interesting and useful (respect!) anyway. I took this Article as a test, as i felt recently into a Problem with OpenSolaris Zones. I use X11 using TCP Connections within a Zone to the X [...]]]></description>
			<content:encoded><![CDATA[<p>Recently Rayne in #linux-forum.de posted a link to an Article, in which they wrote about VMGL. The whole Project seems very interesting and useful (respect!) anyway. I took this Article as a test, as i felt recently into a Problem with OpenSolaris Zones. I use X11 using TCP Connections within a Zone to the X Server of the Host. This works fine for normal Applications, but for more and Games like Urban Terror it&#8217;s not enough (30 FPS within the game on quiet good Hardware) &#8211; I&#8217;m not sure but i think using the Unix Socket would speed this up a lot. But as OpenSolaris Zones are totally different from a simply chroot where i could bind the Unix Socket &#8211; All my tries failed. Sym/Hardlinking doesn&#8217;t work either (logically as i found out). So for now, as i didn&#8217;t found a way to use the Socket, VMGL could probably do this Job.<br />
<span id="more-148"></span></p>
<p>Let&#8217;s try it out. I got the Source of it from their Website: http://sysweb.cs.toronto.edu/projects/7 and tried to compile it as explained. What &#8220;tried&#8221; mean? Well, it could well be that this isn&#8217;t working at all as i&#8217;m not using vmware, nor qemu nor xen. Anyway.. In the Host i get:</p>
<pre>
-------------------------------------------------------------------------------
              Building stub-daemon for SunOS (RELEASE)
-------------------------------------------------------------------------------
gmake[3]: Entering directory `/export/home/chani/vmgl.hg/cr/stub-daemon'
Compiling daemon.c
Linking stub-daemon for SunOS
Undefined			first referenced
 symbol  			    in file
bind                                ../dist/lib//libvmglstubdaemon.a(vmgl-stub-daemon.o)
accept                              ../dist/lib//libvmglstubdaemon.a(vmgl-stub-daemon.o)
listen                              ../dist/lib//libvmglstubdaemon.a(vmgl-stub-daemon.o)
socket                              ../dist/lib//libvmglstubdaemon.a(vmgl-stub-daemon.o)
ld: fatal: Symbol referencing errors. No output written to ../dist/bin//stub-daemon
collect2: ld returned 1 exit status
gmake[3]: *** [../dist/bin//stub-daemon] Error 1
gmake[3]: Leaving directory `/export/home/chani/vmgl.hg/cr/stub-daemon'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/export/home/chani/vmgl.hg/cr/stub-daemon'
make[1]: *** [stub-daemon.subdir] Error 2
make[1]: Leaving directory `/export/home/chani/vmgl.hg/cr'
find: cannot read dir /etc/sfw/openssl/private: Permission denied
find: cannot read dir /etc/inet/secret: Permission denied
find: cannot read dir /etc/flash/postcreation: Permission denied
find: cannot read dir /etc/flash/precreation: Permission denied
find: cannot read dir /etc/flash/preexit: Permission denied
find: cycle detected for /lib/32/
find: cycle detected for /lib/secure/32/
find: cycle detected for /usr/lib/link_audit/32/
find: cannot read dir /usr/lib/mozilla: Permission denied
find: cycle detected for /usr/lib/locale/en_US.UTF-8/LC_CTYPE/32/
find: cycle detected for /usr/lib/locale/en_US.UTF-8/LO_LTYPE/32/
find: cycle detected for /usr/lib/locale/en_US.UTF-8/32/
find: cycle detected for /usr/lib/32/
find: cycle detected for /usr/lib/secure/32/
find: cycle detected for /usr/lib/elfedit/32/
find: cycle detected for /usr/lib/lwp/32/
install: libarrayspu.so was not found anywhere!
find: cannot read dir /etc/sfw/openssl/private: Permission denied
find: cannot read dir /etc/inet/secret: Permission denied
find: cannot read dir /etc/flash/postcreation: Permission denied
find: cannot read dir /etc/flash/precreation: Permission denied
find: cannot read dir /etc/flash/preexit: Permission denied
find: cycle detected for /lib/32/
find: cycle detected for /lib/secure/32/
find: cycle detected for /usr/lib/link_audit/32/
find: cannot read dir /usr/lib/mozilla: Permission denied
find: cycle detected for /usr/lib/locale/en_US.UTF-8/LC_CTYPE/32/
find: cycle detected for /usr/lib/locale/en_US.UTF-8/LO_LTYPE/32/
find: cycle detected for /usr/lib/locale/en_US.UTF-8/32/
find: cycle detected for /usr/lib/32/
find: cycle detected for /usr/lib/secure/32/
find: cycle detected for /usr/lib/elfedit/32/
find: cycle detected for /usr/lib/lwp/32/
install: glstub was not found anywhere!
make: *** [all] Error 1
chani@yulivee:~/vmgl.hg$
</pre>
<p>And in the Lunar Zone:</p>
<pre>
root@lunar ~/vmgl.hg # make
install -d /root/vmgl.hg/dist/lib/
install -d /root/vmgl.hg/dist/bin/
(cd cr ; \
	    make ; \
	    install -s -m 0755 dist/lib/*.so /root/vmgl.hg/dist/lib/ ; \
	    install -s -m 0755 dist/bin/* /root/vmgl.hg/dist/bin/ ; \
	) || exit 1
make[1]: Entering directory `/root/vmgl.hg/cr'
/bin/sh: gmake: command not found
make[1]: *** [util.subdir] Error 127
make[1]: Leaving directory `/root/vmgl.hg/cr'
install: cannot stat `dist/lib/*.so': No such file or directory
install: cannot stat `dist/bin/*': No such file or directory
make: *** [all] Error 1
root@lunar ~/vmgl.hg #
</pre>
<p>That was a simply &#8220;make&#8221; in host and guest. As you can see.. it&#8217;s not easy to compile this Stuff. Anyway. I have no time to try fixing this issues yet. Probably next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_vmgl-opengl-hardware-3d-acceleration-for-vms.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screenshots of my OSOL Install with LL</title>
		<link>http://jeanbruenn.info/linux_screenshots-of-my-osol-install-with-ll.html</link>
		<comments>http://jeanbruenn.info/linux_screenshots-of-my-osol-install-with-ll.html#comments</comments>
		<pubDate>Mon, 01 Dec 2008 22:20:43 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[jean]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=111</guid>
		<description><![CDATA[Here are two Screenshots of my gnome desktop within OpenSolaris. On the right side you&#8217;ll see a terminal where i issued &#8220;zlogin lunar&#8221; to login to the Lunar Linux Zone. As you can see on Screenshot 1 &#8211; lin is working without any issues. As you can see on Screenshot 2 i&#8217;m even able to [...]]]></description>
			<content:encoded><![CDATA[<p>Here are two Screenshots of my gnome desktop within OpenSolaris. On the right side you&#8217;ll see a terminal where i issued &#8220;zlogin lunar&#8221; to login to the Lunar Linux Zone. As you can see on Screenshot 1 &#8211; lin is working without any issues. As you can see on Screenshot 2 i&#8217;m even able to start x11 apps within that zone and let them run within XOrg in OpenSolaris.</p>
<p><a href="http://jeanbruenn.info/lunar_osol.jpg"><img src="http://jeanbruenn.info/lunar_osol_thumb.jpg" /></a><br />
<a href="http://jeanbruenn.info/lunar_osol2.jpg"><img src="http://jeanbruenn.info/lunar_osol2_thumb.jpg" /></a></p>
<p>By the way, just in case someone is interested, the background is a graphic from &#8220;The Forbidden Kingdom&#8221; a film with Jet Li and Jackie Chan. Nice Movie, i like it, though never seen Jet Li in such a funny &#8220;art&#8221; before :)</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_screenshots-of-my-osol-install-with-ll.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZFS in Linux</title>
		<link>http://jeanbruenn.info/linux_zfs.html</link>
		<comments>http://jeanbruenn.info/linux_zfs.html#comments</comments>
		<pubDate>Tue, 25 Nov 2008 10:21:31 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=105</guid>
		<description><![CDATA[Hello, today i wanna have a short look at ZFS, everytime i look at ZFS news and videos i get more interested into this filesystem but i bet i&#8217;m not alone. My first try getting opensolaris working within qemu failed. So i&#8217;ll try for now zfs-fuse (the linux port over fuse) with a bit luck [...]]]></description>
			<content:encoded><![CDATA[<p>Hello,</p>
<p style="padding: 3px;">today i wanna have a short look at ZFS, everytime i look at ZFS news and videos i get more interested into this filesystem but i bet i&#8217;m not alone. My first try getting opensolaris working within qemu failed. So i&#8217;ll try for now zfs-fuse (the linux port over fuse) with a bit luck i can play arround with ZFS then.</p>
<p style="padding: 3px;">By the way, as i&#8217;m using &#8220;files&#8221; instead of real devices i can&#8217;t say anything to the performance.</p>
<p><span id="more-105"></span></p>
<p style="padding: 3px;">first i need to install fuse and scons</p>
<hr style="margin: 10px;;" />
<pre>
root@chani ~ # lin -cr fuse scons
...
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">then i need libaio. doesn&#8217;t seem to be in my distribution, so i googled for it and installed it manually.</p>
<p style="padding: 3px;">after wget&#8217;ing the zfs-fuse bz2 i compiled it</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp/Desktop # tar -xjvf
zfs-fuse-0.5.0.tar.bz2
root@chani /home/wdp/Desktop # cd zfs-fuse-0.5.0
root@chani /home/wdp/Desktop/zfs-fuse-0.5.0 # cd src
root@chani /home/wdp/Desktop/zfs-fuse-0.5.0/src # scons
...
root@chani /home/wdp/Desktop/zfs-fuse-0.5.0/src # scons install
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">then i had to start zfs-fuse</p>
<hr style="margin: 10px;;" />
<pre>
root@chani ~ # zfs-fuse
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">and then i created the first pool</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # zpool create zfsmagic
raidz2 /home/wdp/disk1_zfs \
         /home/wdp/disk2_zfs \
         /home/wdp/disk3_zfs \
         /home/wdp/disk4_zfs \
         /home/wdp/disk5_zfs \
         /home/wdp/disk6_zfs \
         /home/wdp/disk7_zfs \
         /home/wdp/disk8_zfs \
         /home/wdp/disk9_zfs \
         /home/wdp/disk10_zfs \
         /home/wdp/disk11_zfs \
         /home/wdp/disk12_zfs
root@chani /zfsmagic # df -hT | grep zfs
zfsmagic      fuse     30G   45K   30G   1% /zfsmagic
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">seems nice so far</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /zfsmagic # zpool status
  pool: zfsmagic
 state: ONLINE
 scrub: none requested
config:

        NAME                      STATE     READ WRITE CKSUM
        zfsmagic                  ONLINE       0     0     0
          raidz2                  ONLINE       0     0     0
            /home/wdp/disk1_zfs   ONLINE       0     0     0
            /home/wdp/disk2_zfs   ONLINE       0     0     0
            /home/wdp/disk3_zfs   ONLINE       0     0     0
            /home/wdp/disk4_zfs   ONLINE       0     0     0
            /home/wdp/disk5_zfs   ONLINE       0     0     0
            /home/wdp/disk6_zfs   ONLINE       0     0     0
            /home/wdp/disk7_zfs   ONLINE       0     0     0
            /home/wdp/disk8_zfs   ONLINE       0     0     0
            /home/wdp/disk9_zfs   ONLINE       0     0     0
            /home/wdp/disk10_zfs  ONLINE       0     0     0
            /home/wdp/disk11_zfs  ONLINE       0     0     0
            /home/wdp/disk12_zfs  ONLINE       0     0     0

errors: No known data errors
root@chani /home/wdp # zpool list
NAME       SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
zfsmagic  35.8G  3.00G  32.7G     8%  ONLINE  -
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">okay. so far so good. let&#8217;s now copy over some files. cp not mv. we just use to check some things. I just copy over some music songs (7 GB) let&#8217;s check again how much space we use, using df and zpool list:</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # zpool list
NAME       SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
zfsmagic  35.8G  9.07G  26.7G    25%  ONLINE  -

root@chani /home/wdp # df -hT | grep zfs
zfsmagic      fuse     30G  7.6G   22G  26% /zfsmagic
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">As you can see, some differences in displaying the amount of used data. though this shouldn&#8217;t be a problem.</p>
<p style="padding: 3px;">Now let&#8217;s do a .. crashtest. I&#8217;m first running zpool scrub to to make sure that integrety is okay.. after it i&#8217;ll check for the biggest zfs device file and remove this one using mv. at the same time i&#8217;ll play a song from that disc. Let&#8217;s see whether it works or not.</p>
<hr style="margin: 10px;;" />
<pre>
root@chani ~ # zpool scrub zfsmagic
root@chani ~ # zpool status
  pool: zfsmagic
 state: ONLINE
 scrub: scrub in progress for 0h9m, 48.38% done, 0h10m to go
config:

        NAME                      STATE     READ WRITE CKSUM
        zfsmagic                  ONLINE       0     0     0
          raidz2                  ONLINE       0     0     0
            /home/wdp/disk1_zfs   ONLINE       0     0     0
            /home/wdp/disk2_zfs   ONLINE       0     0     0
            /home/wdp/disk3_zfs   ONLINE       0     0     0
            /home/wdp/disk4_zfs   ONLINE       0     0     0
            /home/wdp/disk5_zfs   ONLINE       0     0     0
            /home/wdp/disk6_zfs   ONLINE       0     0     0
            /home/wdp/disk7_zfs   ONLINE       0     0     0
            /home/wdp/disk8_zfs   ONLINE       0     0     0
            /home/wdp/disk9_zfs   ONLINE       0     0     0
            /home/wdp/disk10_zfs  ONLINE       0     0     0
            /home/wdp/disk11_zfs  ONLINE       0     0     0
            /home/wdp/disk12_zfs  ONLINE       0     0     0

errors: No known data errors
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">let&#8217;s wait 10 minutes&#8230; :)</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # du -h disk*
784M    disk10_zfs
784M    disk11_zfs
784M    disk12_zfs
784M    disk1_zfs
784M    disk2_zfs
784M    disk3_zfs
784M    disk4_zfs
784M    disk5_zfs
784M    disk6_zfs
784M    disk7_zfs
784M    disk8_zfs
784M    disk9_zfs
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">okay.. that will not be very useful. i just remove 1 random file.</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # mkdir zfs_old
root@chani /home/wdp # mv disk6_zfs zfs_old/
root@chani /home/wdp # zpool scrub zfsmagic
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">at the same time i play a song on a different console.</p>
<hr style="margin: 10px;;" />
<pre>
root@chani ~ # zpool status
  pool: zfsmagic
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: scrub in progress for 0h0m, 0.00% done, 208h30m to go
config:

        NAME                      STATE     READ WRITE CKSUM
        zfsmagic                  DEGRADED     0     0     0
          raidz2                  DEGRADED     0     0     0
            /home/wdp/disk1_zfs   ONLINE       0     0     0
            /home/wdp/disk2_zfs   ONLINE       0     0     0
            /home/wdp/disk3_zfs   ONLINE       0     0     0
            /home/wdp/disk4_zfs   ONLINE       0     0     0
            /home/wdp/disk5_zfs   ONLINE       0     0     0
            /home/wdp/disk6_zfs   UNAVAIL      0     0     0  cannot open
            /home/wdp/disk7_zfs   ONLINE       0     0     0
            /home/wdp/disk8_zfs   ONLINE       0     0     0
            /home/wdp/disk9_zfs   ONLINE       0     0     0
            /home/wdp/disk10_zfs  ONLINE       0     0     0
            /home/wdp/disk11_zfs  ONLINE       0     0     0
            /home/wdp/disk12_zfs  ONLINE       0     0     0

errors: No known data errors
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">wow! okay.. let&#8217;s remove one more. by the way, song is still playing.</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # mv disk4_zfs zfs_old/
root@chani /home/wdp # zpool scrub zfsmagic
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">wow! still working&#8230; let&#8217;s remove one more.</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # mv disk12_zfs zfs_old/
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">crashed. :)</p>
<hr style="margin: 10px;;" />
<pre>
root@chani /home/wdp # zpool scrub zfsmagic
zfsfuse_ioctl_read_loop(): file descriptor closed
cannot scrub zfsmagic: I/O error
root@chani /home/wdp # 

root@chani /home/wdp/Desktop/zfs-fuse-0.5.0 # zpool status
connect: Connection refused
Please make sure that the zfs-fuse daemon is running.
internal error: failed to initialize ZFS library
root@chani /home/wdp/Desktop/zfs-fuse-0.5.0 #
</pre>
<hr style="margin: 10px;;" />
<p style="padding: 3px;">I don&#8217;t know what exactly was causing this, anyway, it seems like something with zfs-fuse as the daemon got killed by itself. i&#8217;ve seen that removing two discs from a pool is working and that the whole pool was still running. ZFS is a really really nice filesystem, if i could i would use it within my linux, but for now.. it&#8217;s probably not ready enough well. at least not zfs-fuse.</p>
<p style="padding: 3px;">By the way, some more Information about ZFS can be obtained here:</p>
<p style="padding: 3px;"><a href="http://zfs-on-fuse.blogspot.com/">zfs-fuse</a><br />
<a href="http://opensolaris.org/os/community/zfs/">ZFS OpenSolaris Community</a></p>
<p>And here&#8217;s a nice Video i found in <a href="http://www.usn-it.de/">Martin&#8217;s Blog</a>:<br />
<a href="http://video.google.com/googleplayer.swf?docid=8100808442979626078&#038;hl=en&#038;fs=true">ZFS-Video by Systemhelden</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_zfs.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux hat so seine Tücken&#8230;</title>
		<link>http://jeanbruenn.info/linux_linux-hat-so-seine-tucken.html</link>
		<comments>http://jeanbruenn.info/linux_linux-hat-so-seine-tucken.html#comments</comments>
		<pubDate>Mon, 24 Nov 2008 10:24:22 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[Link]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=103</guid>
		<description><![CDATA[&#8230;dachte ich mir als ich heute über TheBonsai&#8217;s Blog gestolpert bin und seit einer Stunde am lachen bin (Nein. Keine Drogen, glaub ich, nur ein Bier&#8217;chen). Fangen wir mal an mit: Link zum Thread Berechnung von Pi in einem Forum Alleine die erste Seite ist schon zum weinen. Aber man soll sich über hilfesuchende nicht [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;dachte ich mir als ich heute über TheBonsai&#8217;s Blog gestolpert bin und seit einer Stunde am lachen bin (Nein. Keine Drogen, glaub ich, nur ein Bier&#8217;chen). Fangen wir mal an mit:</p>
<p><a href="http://www.linux-forum.de/berechnung-von-pi-20931.html">Link zum Thread Berechnung von Pi in einem Forum</a></p>
<p>Alleine die erste Seite ist schon zum weinen. Aber man soll sich über hilfesuchende nicht lustig machen. Sowas tut man nicht *kopfschyttel* gehen wir also über zu den Leuten die keine Hilfe suchen, sondern Hilfe geben.<br />
<span id="more-103"></span><br />
<a href="http://www.junauza.com/2008/11/7-deadly-linux-commands.html">Link zu &#8230; nunja, schaut selbst</a></p>
<p>Doof nur.. das das so gar nicht geht. Machen wir mal den Versuch: bei 1. sagt er ein rm -rf / wird rekursiv und geforced alles löschen..</p>
<p>wdp@chani ~ $ rm -rf /<br />
rm: cannot remove root directory `/&#8217;<br />
wdp@chani ~ $</p>
<p>Hm.. Hat nich geklappt. Und nun? Also gu</p>
<p>wdp@chani ~ $ mkfs.ext3 /dev/hda<br />
mke2fs 1.41.3 (12-Oct-2008)<br />
/dev/hda is entire device, not just one partition!<br />
Proceed anyway? (y,n) y<br />
mkfs.ext3: Permission denied while trying to determine filesystem size<br />
wdp@chani ~ $</p>
<p>Verdammt.. Auch das klappt nicht.</p>
<p>wdp@chani ~ $ :(){:|:&amp;};:<br />
-bash: syntax error near unexpected token `{:&#8217;<br />
wdp@chani ~ $</p>
<p>Ok. Dieser Trot.. Autor hat sich vertippt oder schlecht kopiert. Die Forkbomb geht nämlich wie folgt:</p>
<pre class="source-bash">:<span class="br0">(</span><span class="br0">)</span><span class="br0">{</span> :|:&amp; <span class="br0">}</span>;:</pre>
<p>Und ja. Der Autor hat recht, dieser Schnippsel kann den Rechner lahm legen unter gewissen Vorraussetzungen versteht sich, die meisten Distributionen haben vernünftige ulimits gesetzt (ulimit -a) mithilfe von diesen Beschränkungen macht entsprechende &#8220;forkbomb&#8221; nichts. Beispiel:</p>
<p>-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable<br />
-bash: fork: Resource temporarily unavailable</p>
<p>[1]+  Done                    : | :</p>
<p>Klappt also.. auch nicht. Auch die restlichen Befehle, wollen das man Root ist &#8211; Deswegen arbeitet man unter Linux niemals als Root ausser zum installieren, warten und konfigurieren des Systems als solches.</p>
<p>Auch nett, ist TheBonsai&#8217;s Blog dazu:</p>
<p><a href="http://www.thebonsai.net/2008/11/21/why-some-people-better-shouldnt-play-admin/#more-72">Bonsai&#8217;s Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_linux-hat-so-seine-tucken.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>rkhunter &#8211; Rootkit Hunter</title>
		<link>http://jeanbruenn.info/linux_rkhunter-rootkit-hunter.html</link>
		<comments>http://jeanbruenn.info/linux_rkhunter-rootkit-hunter.html#comments</comments>
		<pubDate>Sat, 31 May 2008 22:56:03 +0000</pubDate>
		<dc:creator>jean</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jeanbruenn.info/?p=96</guid>
		<description><![CDATA[Rootkit Hunter ist eine sehr nette Applikation die möglicherweise hilfreich ist. Mithilfe diese Anwendung könnte man sein System per Cronjob öfter überwachen lassen und nach Rootkits ausschau halten, aber auch ein paar mehr Dinge werden angezeigt. Wer denkt er hat ein Rootkit installiert oder sich das Tool aus Sicherheitsgründen mal ansehen will wird bei folgender [...]]]></description>
			<content:encoded><![CDATA[<p>Rootkit Hunter ist eine sehr nette Applikation die möglicherweise hilfreich ist. Mithilfe diese Anwendung könnte man sein System per Cronjob öfter überwachen lassen und nach Rootkits ausschau halten, aber auch ein paar mehr Dinge werden angezeigt. Wer denkt er hat ein Rootkit installiert oder sich das Tool aus Sicherheitsgründen mal ansehen will wird bei folgender Website fündig:</p>
<p>http://rkhunter.sourceforge.net/</p>
<p>Die Ausgabe des netten Tools bei mir lokal ist übrigens:</p>
<p>System checks summary<br />
=====================</p>
<p>File properties checks&#8230;<br />
Required commands check failed<br />
Files checked: 118<br />
Suspect files: 13</p>
<p>Rootkit checks&#8230;<br />
Rootkits checked : 109<br />
Possible rootkits: 0</p>
<p>Applications checks&#8230;<br />
Applications checked: 4<br />
Suspect applications: 0</p>
<p>The system checks took: 2 minutes and 42 seconds</p>
]]></content:encoded>
			<wfw:commentRss>http://jeanbruenn.info/linux_rkhunter-rootkit-hunter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
