<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3150674382612555986</id><updated>2011-09-28T10:07:37.745-07:00</updated><category term='transcode'/><category term='linux iptables raw sockets firewall dhcpd dhcp'/><category term='Linux apcupsd ups script power usage'/><category term='blu ray dead'/><category term='type'/><category term='linux mdadm raid chunk size benchmark performance'/><category term='vendor'/><category term='convert'/><category term='ISO'/><category term='availability'/><category term='lustre ost failure data loss'/><category term='default ssl key vendor-supplied key decrypt ssl wireshark'/><category term='Minimum security requirements system hardening'/><category term='storage'/><category term='wpa cowpatty four-way handshake crack aircrack'/><category term='ipad iphone user-friendly human ios  apple'/><category term='linux bonding trunking gigabit 2gb'/><category term='array'/><category term='zabbix security'/><category term='linux djbdns caching forwarding dns server bernstein'/><category term='iPhone'/><category term='disks'/><category term='norco RPC-4020 Linux RAID 6 MDADM 20 disk 18 TB'/><category term='energy efficient home server nas htpc router 24/7 wake on lan wol'/><category term='Linux'/><category term='RAID 10'/><category term='mac mini boot after power failure power loss reboot'/><category term='script'/><category term='application security database accounts'/><category term='motherboard'/><category term='laptop netbook router battery screen keyboard ion atom'/><category term='iPod touch'/><category term='ipad iphone kill flash'/><category term='VIDEO_TS'/><category term='DVD'/><category term='bash inter process communication asynchronous FIFO'/><category term='data recovery gpart linux partition search'/><category term='model'/><category term='RAID 5'/><category term='Handbrake'/><category term='linux hard disk drive temperature smartmontools script colour  layout  graphic representation'/><category term='debian wake on lan wol realtek r8168 r8169'/><category term='manufacturer'/><category term='iphone ipad freedom'/><category term='Debian Linux Lenny Mac Mini EFI Disk utility Master Boot Record'/><category term='Linux monitor files directories asynchronous'/><title type='text'>Louwrentius.com</title><subtitle type='html'>About Linux, Storage, Mac, Security, and other stuff.

Moved to louwrentius.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>96</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6747540495085414086</id><published>2011-01-01T06:32:00.000-08:00</published><updated>2011-01-03T16:09:43.862-08:00</updated><title type='text'>This blog has been moved to louwrentius.com</title><content type='html'>I decided to move away from blogger and host my own blog at another location. The new location for my blog is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://louwrentius.com/"&gt;http://louwrentius.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visit my new blog for a &lt;a href="http://louwrentius.com/blog/2010/12/migrated-this-blog-from-blogger.com-to-blogofile/"&gt;motivation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;All comments have also been migrated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6747540495085414086?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6747540495085414086/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6747540495085414086' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6747540495085414086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6747540495085414086'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2011/01/this-blog-has-been-moved-to.html' title='This blog has been moved to louwrentius.com'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6284555235042964362</id><published>2010-12-27T17:15:00.000-08:00</published><updated>2010-12-27T17:16:39.686-08:00</updated><title type='text'>LFS - Linux Firewall Script released</title><content type='html'>I started a small new Google project for a new script I wrote called &lt;a href="http://code.google.com/p/lfs/"&gt;LFS&lt;/a&gt;. It stands for Linux Firewall Script.&lt;br /&gt;&lt;br /&gt;I run a small Linux box as an internet router that doubles as a firewall. The firewall is configured using iptables. In my opinion, iptables is not the easiest tool to use and may have a steep learning curve for people new to it.&lt;br /&gt;&lt;br /&gt;The goal of LFS is to provide an easier interface to iptables. It also adds some features that by default are not or difficult to setup using only iptables. The most important additional feature is the use of objects and &amp;nbsp;groups. Object groups can be used to make a single rule affect multiple hosts, networks or services.&lt;br /&gt;&lt;br /&gt;LFS uses a single configuration file which contains the firewall rules. Rules look like this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;nat "$INTERNAL_NETWORK" "$EXTERNAL_IP" "$NAT_INTERFACE"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;port_forward "$EXTERNAL_IP" &amp;nbsp;"$INTERNAL_HTTP_SERVER" "80/tcp" "8080/tcp"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Please visit the project page for some examples.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/lfs/"&gt;http://code.google.com/p/lfs/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6284555235042964362?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6284555235042964362/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6284555235042964362' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6284555235042964362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6284555235042964362'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/12/lfs-linux-firewall-script-released.html' title='LFS - Linux Firewall Script released'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3165161332693519347</id><published>2010-12-27T06:57:00.000-08:00</published><updated>2010-12-27T06:57:39.791-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux iptables raw sockets firewall dhcpd dhcp'/><title type='text'>Why filtering DHCP traffic is not always possible with iptables</title><content type='html'>When configuring my &amp;nbsp;new firewall using iptables, I noticed something very peculiar. Even if all input, forward and output traffic was dropped, DHCP traffic to and from my DHCP server was &lt;b&gt;not &lt;/b&gt;blocked even if there were no rules permitting this traffic.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I even flushed all rules, put a drop all rule on all chains and only allowed SSH to the box. It did not matter. The DHCP server received the DHCP requests and happily answered back.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How on earth is this possible? In my opinion, a firewall should block all traffic no matter what.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But at least I found out the cause of this peculiar behaviour. &amp;nbsp;The ISC DHCP daemon does not use the TCP/UDP/IP stack of the kernel. &lt;a href="http://www.mail-archive.com/netfilter@lists.samba.org/msg03206.html"&gt;It uses RAW sockets&lt;/a&gt;. Raw sockets bypass the whole netfilter mechanism and thus the firewall.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So remember: applications using RAW sockets cannot be fire walled by default. Applications need root privileges to use RAW sockets, so RAW sockets thankfully cannot be used by arbitrary unprivileged users on a system, but never the less. Be aware of this issue.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please understand that if a serious security vulnerability is found in the ISC DHCP daemon, you cannot protect your daemon with a local firewall on your system. Patching or disabling would then be the only solution.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3165161332693519347?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3165161332693519347/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3165161332693519347' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3165161332693519347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3165161332693519347'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/12/why-filtering-dhcp-traffic-is-not.html' title='Why filtering DHCP traffic is not always possible with iptables'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7248105751500646955</id><published>2010-12-08T12:53:00.000-08:00</published><updated>2010-12-08T12:53:11.407-08:00</updated><title type='text'>Belkin Gigabit USB 2.0 adapter works perfectly with Linux</title><content type='html'>My ISP upgraded my internet connection speed to a whopping 120 Mbit. I am using a &lt;a href="http://louwrentius.blogspot.com/2009/11/how-to-run-debian-linux-on-intel-based.html"&gt;mac mini&lt;/a&gt;&amp;nbsp;as my internet router. As you may be aware, the mini has only one network interface, so I added a second interface using a USB to ethernet adapter. This adapter was limited to 100 Mbit, so to make full use of the 120 Mbit connection, I had to upgrade this adapter.&lt;br /&gt;&lt;br /&gt;I took the gamble and bought the &lt;a href="http://www.belkin.com/IWCatProductPage.process?Product_Id=258897"&gt;Belkin Gigabit USB 2.0&lt;/a&gt; adapter. I could not figure out if it would work with Linux, but on the box it officially supports Mac OS X, which is always a good sign.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_1tZXi-PpPDE/TP_vHqYWqII/AAAAAAAAADA/GGMVFypTzR8/s1600/belkin-gigabit.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_1tZXi-PpPDE/TP_vHqYWqII/AAAAAAAAADA/GGMVFypTzR8/s1600/belkin-gigabit.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This adapter is recognized by Debian Linux without a hitch:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Mini:~# ethtool -i eth0&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;driver: asix&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;version: 14-Jun-2006&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;firmware-version: ASIX AX88178 USB 2.0 Ethernet&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;bus-info: usb-0000:00:1d.7-5&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;lsusb output:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bus 005 Device 004: ID 050d:5055 Belkin Components F5D5055 Gigabit Network Adapter [AX88xxx]&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I did not test the actuall performance of this adapter, but it at least goes beyond the 100 Mbit (it does 120 Mbit at least). I expect it to be limited at say max 300 Mbit, being constrained by the maximum speed of &amp;nbsp;USB 2.0.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7248105751500646955?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7248105751500646955/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7248105751500646955' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7248105751500646955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7248105751500646955'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/12/belkin-gigabit-usb-20-adapter-works.html' title='Belkin Gigabit USB 2.0 adapter works perfectly with Linux'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1tZXi-PpPDE/TP_vHqYWqII/AAAAAAAAADA/GGMVFypTzR8/s72-c/belkin-gigabit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8935487660434726148</id><published>2010-11-26T11:42:00.000-08:00</published><updated>2010-11-27T05:27:37.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Minimum security requirements system hardening'/><title type='text'>The minimum requirements for a secure system</title><content type='html'>The most secure server system is a system that is not connected to a network and turned off. However, little work seems to be getting done this way. So we want to turn systems on and connect them to a network, or even (God forbid) the internet.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The thing is this. A system connected to a network without any running services is almost as as secure as a system that is turned off. They also share a common property: they are useless. A system starts to get useful if you start running services on them. And make these services accessible from the network for clients.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Services&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Security on a technical level is all about securing those services. Every service that you enable is an opportunity for an attacker to compromise your system. If a service is not installed or running on your system, it cannot be used to compromise your server.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If a service is enabled and accessible through the network, it is logically of vital importance that you know:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;what does this service do?&lt;/li&gt;&lt;li&gt;what can it be used for?&lt;/li&gt;&lt;li&gt;what steps needs to be taken to properly secure it?&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;If you know what a service does, you can understand the potential security risks. If you understand the product you are using, you can secure it properly. Security is all about understanding. If you don't understand what you are running, then it can't be secure.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Firewalls&lt;/b&gt;&lt;/div&gt;&lt;div&gt;So if you only run required services, why do you need to run a firewall? You don't. Yes that's right. Think about it. A firewall protects services that should not be accessible and allows access to services that should be accessible. If you just disable those services that should not be accessible from the outside, why use a local firewall? You don't want the Internet to access the SNMP-service on your system, you say? But then why not bind it only to the management interface instead of the production interface? You have a separate management network, right?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of course, firewalls are a good thing. They are an ADDITIONAL line of defense. They mostly protect you against yourself. If you make a mistake and, by accident, enable some vulnerable service on a system, a properly configured firewall will prevent access to it and save your behind. That is the purpose of a firewall.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;People often wrongly see the firewall as the first line of defense. If you do, you are wrong. The first line of defense is to secure your services.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The whole point is that there are holes in your firewalls. Those holes allow access to services. Those services may be necessary, like a web server, but nevertheless holes. You are exposing services to the Internet.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Web applications (or web-based back doors?)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;We are now mostly running web-based applications on the services that we make accessible for the network or the internet. Those applications run on application servers. Yes, these application servers, like Apache Tomcat or IIS ASP.NET need to be secured, but nowadays, they are almost secure by default.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All security depends on the level of security of the application you are running on your application server. Is your application written well, with security principles in mind? Does it protect against SQL-injection or cross-site scripting? Are sessions predictable? Can a user access data of another user?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Firewalls don't protect against vulnerabilities in your web applications. You need to do it right at the core level: the application itself. Just like how you harden a system. You must run &lt;a href="http://www.owasp.org/index.php/Category:OWASP_Guide_Project"&gt;secure code&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And be aware that if you run third-party code, watch out for security news. There have been many worms exploiting vulnerable commodity software such as phpBB, Wordpress or similar products.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the really hard part. Deploying secure software and keeping it secure during the development life cycle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Patches&lt;/b&gt;&lt;br /&gt;The last fundamental principle of keeping systems secure is keeping up with security patches. Many security vulnerabilities are often only exploitable under specific conditions and may not be that important. But the most important thing is to be aware of vulnerabilities and available patches. Then you can decide for yourself how to act.&lt;br /&gt;&lt;br /&gt;There is always a risk that a security patch breaks functionality. But that's not a real problem, because you have this test environment so you can check first, right?&lt;br /&gt;&lt;br /&gt;Keep up with security patches and non-security patches. If you first have to install 100+ patches to be able to install the latest high-risk security patch, something might break. So then it's choosing between staying vulnerable or going off-line until you have fixed everything.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/div&gt;&lt;div&gt;So what are the most basic ingredients for secure systems?&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;only run required services&lt;/li&gt;&lt;li&gt;harden those required services&lt;/li&gt;&lt;li&gt;deploy a firewall as an additional defense layer&lt;/li&gt;&lt;li&gt;deploy secure application code&lt;/li&gt;&lt;li&gt;keep up-to-date with security patches&lt;/li&gt;&lt;li&gt;Audit and review your systems and application code on a regular basis.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;With this small number of steps, you will be able to protect against a lot of security threats. I don't say this is everything that is necessary. But it is a good foundation to build on. You still have to identify risks that may apply to your particular situation. These risks may require you to take (additional) measures not discussed here.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8935487660434726148?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8935487660434726148/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8935487660434726148' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8935487660434726148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8935487660434726148'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/minimum-requirements-for-secure-system.html' title='The minimum requirements for a secure system'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5171026949582654398</id><published>2010-11-21T23:08:00.000-08:00</published><updated>2010-11-21T23:20:59.425-08:00</updated><title type='text'>Linux: using disk labels to counter storage device name changes</title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;My router decided to change the device name for some USB storage devices. &amp;nbsp;So /dev/sdc was swapped for /dev/sdd and vice versa. The result was some file system corruption on /dev/sdc, because it was used on a remote system through iSCSI, using a different file system from /dev/sdd.&lt;br /&gt;&lt;br /&gt;With regular internal disks, attached with PATA, SATA or SAS, the chances are very small that such an event will occur, but it is possible, especially if you start adding/subtracting disks. With USB devices the risk is substantially bigger.&lt;br /&gt;&lt;br /&gt;To prevent your system from mixing up drives because there device names change, use file system labels. &amp;nbsp;All information that follows have been &lt;a href="http://wikis.sun.com/display/BigAdmin/Using+Disk+Labels+on+Linux+File+Systems"&gt;stolen from this location&lt;/a&gt;. Since this blog is also my personal notepad, the relevant bits are reproduced here.&lt;br /&gt;&lt;br /&gt;There are three steps involved, the third being optional:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;ol&gt;&lt;li&gt;add a label to the file system&lt;/li&gt;&lt;li&gt;add the label to /etc/fstab&lt;/li&gt;&lt;li&gt;update grub boot manager (optional)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;1. Add a label to the file system&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Setting a label when the file system is created&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkfs.ext3 -L ROOT /dev/sda1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkfs.xfs -L BIGRAID /dev/sde&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Set label for existing file system&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;EXT3:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;e2label /dev/sda1 PRIMARY_ROOT&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;e2label /dev/sda1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;XFS:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;xfs_admin -L DATA1 /dev/sdf&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;xfs_admin /dev/sdf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Set label for swap partition&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;mkswap -L SWAP0 /dev/sdb5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. add the label to fstab&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Example of contents of fstab:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;LABEL=ROOT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ext3 &amp;nbsp; &amp;nbsp;defaults &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 1&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;LABEL=BOOT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/boot &amp;nbsp; &amp;nbsp; ext3 &amp;nbsp; &amp;nbsp;defaults &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1 2&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;LABEL=SWAP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;swap &amp;nbsp; &amp;nbsp; &amp;nbsp;swap &amp;nbsp; &amp;nbsp;defaults &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;LABEL=HOME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/home &amp;nbsp; &amp;nbsp; ext3 &amp;nbsp; &amp;nbsp;nosuid,auto &amp;nbsp; &amp;nbsp; 1 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Update the grub boot manager&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;title server&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;root (hd0,0)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;kernel (hd0,0)/vmlinuz ro root=LABEL=SERVER_ROOT0 rhgb quiet&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;initrd (hd0,0)/initrd.img&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5171026949582654398?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5171026949582654398/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5171026949582654398' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5171026949582654398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5171026949582654398'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/linux-using-disk-labels-to-counter.html' title='Linux: using disk labels to counter storage device name changes'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8459323353489729453</id><published>2010-11-18T13:40:00.000-08:00</published><updated>2010-11-18T13:44:35.638-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application security database accounts'/><title type='text'>Secure programming: how to implement user account management</title><content type='html'>Most web applications work like this:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;The application uses a single database account to perform all actions. Users are just some records in a table. Account privileges and roles are part of this table, or separate tables.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This implies that all security must be designed and build by the application developer. I think this is entirely wrong. There is a big risk:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;In such applications, SQL-injection will allow full control of the entire database.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This is something that is often overlooked. And the solution is simple. The application should not use a general account with full privileges. The application should use the database account of the user accessing the application. All actions performed by this user are thus limited by the privileges of this database account. The impact of SQL-injection would be significantly reduced.&lt;br /&gt;&lt;br /&gt;The public part of a website is still using an application account, but the privileges of this account can be significantly reduced. To obtain elevated privileges, a user must first authenticate against the application and thus the database.&lt;br /&gt;&lt;br /&gt;Please understand another benefit: it is not required to store username/password combinations of privileged accounts on the application server. The configuration file will only contain the credentials of the unprivileged account. An attacker compromising the application server with limited privileges, won't have access to the database with elevated privileges.&lt;br /&gt;&lt;br /&gt;I understand that this solution requires a bit more work to setup at the start, but once implemented, it reduces complexity and improves security so much.&lt;br /&gt;&lt;br /&gt;Of course, the security of your data is as good as the hardening of your database server. But that's another story.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8459323353489729453?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8459323353489729453/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8459323353489729453' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8459323353489729453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8459323353489729453'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/secure-programming-how-to-implement.html' title='Secure programming: how to implement user account management'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-4672216445116667889</id><published>2010-11-17T13:00:00.001-08:00</published><updated>2010-11-17T13:01:34.214-08:00</updated><title type='text'>Do not buy a hardware RAID controller for home use</title><content type='html'>Hardware RAID controllers are considered 'the best' solution for high performance and high availability. However, this is not entirely true. Using a hardware RAID controller might even endanger your precious data.&lt;br /&gt;&lt;br /&gt;For enterprise environments, where performance is critical, it is more important that the arrays keeps on delivering data at a high speed.&amp;nbsp;Professional RAID controllers use&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Time-Limited_Error_Recovery"&gt;TLER&lt;/a&gt;&amp;nbsp;with TLER-enabled disks to limit the time spend on recovering bad sectors.&amp;nbsp;If a disk encounters a bad sector, there is no time to pause and try to fix it. The disk is just dropped out of the RAID array after just a couple of seconds. At that moment, the array still performes relatively well, but there is no redundancy. If another disk fails (another bad sector?) the array is lost, with all its data.&lt;br /&gt;&lt;br /&gt;More people are building NAS boxes for centralized storage of data, for private home use. Since disks are cheap, it is possible to create lots of storage capacity for little money. Creating backups of terabytes of data is however not cheap. Or you have to create two NAS boxes. But that is very expensive and not worth the effort.&lt;br /&gt;&lt;br /&gt;People seem to spend lots of money on expensive enterprise level hardware RAID cards, not understanding that the whole TLER-mechanism causes an increased risk for their data. In enterprise environments, budgets are relatively big, and data is always backed up. They can afford to take the risk of losing a RAID array due to these backups. But consumers often don't have the money to spend on creating backups of terabytes of data. They just go for RAID 5 or RAID 6 and hope for the best.&lt;br /&gt;&lt;br /&gt;For consumers, if the RAID array goes, all data is lost.&lt;br /&gt;&lt;br /&gt;So consumers should choose a RAID solution that will do its best to recover from hardware failure. Performance is not so much an issue. Reliability is. So consumers do want disks to spend 'ages' on recovering bad sectors if this means that the RAID array will survive.&lt;br /&gt;&lt;br /&gt;Linux software RAID and ZFS do not use TLER and therefore are a safer choice for your data then regular hardware RAID controllers. You may still use such controllers (but please test them properly) but only to provide SATA ports with individual disks, the RAID part should be handled by Linux.&lt;br /&gt;&lt;br /&gt;So in my opinion, hardware RAID controllers are more expensive, require more expensive (enterprise) disks and are less safe for your data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-4672216445116667889?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/4672216445116667889/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=4672216445116667889' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4672216445116667889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4672216445116667889'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/do-not-buy-hardware-raid-controller-for.html' title='Do not buy a hardware RAID controller for home use'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6920676856795977676</id><published>2010-11-11T14:40:00.000-08:00</published><updated>2010-11-12T02:14:37.464-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux bonding trunking gigabit 2gb'/><title type='text'>Linux network interface bonding / trunking or how to get beyond 1 Gb/s</title><content type='html'>&lt;div&gt;This article discusses Linux bonding and how to achieve 2 Gb/s transfer speeds with a single TCP/UDP connection.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;A gigabit network card provides about 110 MB/s (megabytes) of bandwidth. If you want to go faster, the options are:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;buy infiniband stuff: I have no experience with it, may be smart thing to do but seems expensive.&lt;/li&gt;&lt;li&gt;buy 10Gigabit network cards: very very expensive compared to other solutions.&lt;/li&gt;&lt;li&gt;strap multiple network interfaces together to get 2 Gb/s or more with more cards.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;This article is discussing the third option. Teaming or bonding two network cards to a single virtual card that provides twice the bandwidth will provide you with that extra performance that you where looking for. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the 64000 dollar question is: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to obtain 2 Gb/s with a &lt;b&gt;single &lt;/b&gt;transfer? Thus with a single TCP connection?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The trick is to use Linux network bonding. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most bonding options only provide an accumulated performance of 2 Gb/s, by balancing different network connections over different interfaces. Individual transfers will never reach beyond 1 Gbit/s but it is possible to have two 1 Gb/s transfers going on at the same time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That is not what I was looking for. I want to copy a file using NFS and just get more than just 120 MB/s. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only bonding mode that supports single TCP or UDP connections to go beyond 1 Gb/s is mode 0: Round Robin. This bonding mode is kinda like RAID 0 over two or more network interfaces. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, you cannot use Round Robin with a standard switch. You need an advanced switch that is capable of creating "trunks".  A trunk is a virtual network interface, that consists of individual ports that are grouped together".  So you cannot use Round Robin mode with an average unmanaged switch. The only other option is to use direct cables between two hosts, although I didn't tested this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now the results: I was able to obtain a transferspeed (read) of 155 MB/s with a file copy using NFS. Normal transfers capped at 109 MB/s. To be honest: I had hoped to achieve way more, like 180MB/s. However, the actual transfer speeds that will be obtained will depend on the hardware used. I recommend using Intel or Broadcom hardware for this purpose. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, I was not able to obtain write speed that surpasses the 1 Gb/s. Since I used a fast RAID array to write the data to, the underlying storage subsystem was not the bottleneck. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the bottom line is that it is possible to get more than 1 Gb/s but the performance gain is not as high as you may want to. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Configuration:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Client: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;modprobe bonding mode=0&lt;/div&gt;&lt;div&gt;ifconfig bond0 up&lt;/div&gt;&lt;div&gt;ifenslave bond0 eth0 eth1&lt;/div&gt;&lt;div&gt;ifconfig bond0 10.0.0.1 netmask 255.255.255.0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Server: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;modprobe bonding mode=4 lacp_rate=0 xmit_hash_policy=layer3+4&lt;/div&gt;&lt;div&gt;&lt;div&gt;ifconfig bond0 up&lt;/div&gt;&lt;div&gt;ifenslave bond0 eth0 eth1&lt;/div&gt;&lt;div&gt;ifconfig bond0 10.0.0.2 netmask 255.255.255.0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;cat /proc/net/bonding/bond0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Ethernet Channel Bonding Driver: v3.3.0 (June 10, 2008)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bonding Mode: IEEE 802.3ad Dynamic link aggregation&lt;/div&gt;&lt;div&gt;Transmit Hash Policy: layer3+4 (1)&lt;/div&gt;&lt;div&gt;MII Status: up&lt;/div&gt;&lt;div&gt;MII Polling Interval (ms): 100&lt;/div&gt;&lt;div&gt;Up Delay (ms): 0&lt;/div&gt;&lt;div&gt;Down Delay (ms): 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;802.3ad info&lt;/div&gt;&lt;div&gt;LACP rate: slow&lt;/div&gt;&lt;div&gt;Active Aggregator Info:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Aggregator ID: 2&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Number of ports: 2&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Actor Key: 9&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Partner Key: 26&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Partner Mac Address: 00:de:ad:be:ef:90&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Slave Interface: eth0&lt;/div&gt;&lt;div&gt;MII Status: up&lt;/div&gt;&lt;div&gt;Link Failure Count: 0&lt;/div&gt;&lt;div&gt;Permanent HW addr: 00:co:ff:ee:aa:00&lt;/div&gt;&lt;div&gt;Aggregator ID: 2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Slave Interface: eth1&lt;/div&gt;&lt;div&gt;MII Status: up&lt;/div&gt;&lt;div&gt;Link Failure Count: 0&lt;/div&gt;&lt;div&gt;Permanent HW addr: 00:de:ca:fe:b1:7d&lt;/div&gt;&lt;div&gt;Aggregator ID: 2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6920676856795977676?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6920676856795977676/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6920676856795977676' title='4 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6920676856795977676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6920676856795977676'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/definitive-guide-to-linux-network.html' title='Linux network interface bonding / trunking or how to get beyond 1 Gb/s'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7634762722649973062</id><published>2010-11-05T18:12:00.000-07:00</published><updated>2010-11-07T16:13:38.889-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ipad iphone user-friendly human ios  apple'/><title type='text'>The iPhone, iPad and iOS are powering a revolution</title><content type='html'>Most people just don't understand computers. Are these people dumb? Some may be dumb, but the people who make them are maybe even dumber. Because they can't seem to figure out how to create a computer that the majority of people understand.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When the original macintosh arrived at the stage back in the eighties, computers became a bit more human-friendly, but it was limited to the constraints of the then available hardware. It put away the text-based interface and introduced the graphic interface. It used the desktop metaphor to create this graphic environment. But this metaphor has had its day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many people don't understand the desktop metaphor since they don't have a desktop and have never used one. Also, it is a metaphor, it's to translate the computer environment to something humans understand. But what if they don't understand the metaphor? For example, many people just don't 'get' the Windows Explorer or the Mac OS X finder. The desktop metaphor does not seem to fit in how people think.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Every time you see a person enter a URL like www.youtube.com in the google search field, you will realize that we still have a long way to go.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most people did not seem to realize back then that the release of the iPhone wasn't that important, but the release of iOS. The iPhone was the first smartphone (a word most people are not familiar with) that did away with a stylus or hardware keyboard. It uses what is closest to us: our fingers. A totally new user interface, one that is very natural and close to us, is now available.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using touch as input required a total redesign of the entire user interface. All other interfaces were designed around hardware keyboard and mouse devices. Fingers are big, and are obstructing the view. But it allows for a more direct interaction with a device. And now all new smart phones sport a touch interface.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rumors of an Apple tabled existed for long, but it was very clear when the iPhone was released that if Apple would release a tablet, it would run this new iOS operating system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When the iPad was released, it became an instant hit. As of today, there is no device on the market that can be truly called a competitor. But why is this so? The ground work has been done by the iPhone. Most people with an iPhone will notice that aside from some performance issues in the past, the device just always worked. It was instantly available to sent an email, look something up on wikipedia or find the nearest Starbucks. An iPhone just always works. No boot. Very reliable. And an interface that makes you happy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why does iOS make people happy? Because it provides a user interface that is human. People understand it instinctively. Any person of any age or background will be able to use an iOS device within minutes. The interface doesn't make you look like you are dumb because you just don't understand how it works. It not only works, it is easy to use and you are not afraid to break anything.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iPhone and the iPad are learning a lot of people not to fear computers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iOS does away with the old desktop metaphor, but so does Symbian or similar interfaces. It is the combination with touch and the well thought out interface that sets it apart from other mobile operating systems. Even when the iOS platform did not have native applications, people still bought it and not only because Apple released a new shiny toy.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, the app store on iOS has created a very special and important environment. People can finally install and remove applications in an extremely simple way. They don't need to be scared that some program will crash your computer either while installing it, using it, or removing it. The whole iOS ecosystem creates an environment wherein people don't need any help any longer from other people. They are finally in control. They don't need to be afraid of their computer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This trend will affect the old-school user interfaces such as Mac OS X. How it will turn out is anybodies guess. But there is at least a small trend to 'eradicate' the finder as much as possible. iPhoto stores your photos. iTunes stores your music. If you want to include a photo or song within an application, you pick the photo or song in question from a miniature iPhoto or iTunes interface. There is no finder anymore. The finder is disappearing from the workflow. And why not? If programs are written well, why bother with it? The finder should be abstracted away, as is the case on iOS, where you don't have a finder.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another thing is multitasking, you know, that stuf we like to do, but cant. We can only do one thing at a time. What we do want is fast task switching, not multitasking. Sure, some programs must be running in de background, to continue to operate, such as a chat program, but that is not the point. Most people are just going crazy if you show how multitasking works, with different windows. Again, iOS shows how 'multitasking' should be implemented. It is implemented as fast application switching, allowing these applications to register services that must continue to run, while the application itself freezes when the user switches to another application. People tend to use one application at a time and especially on mobile devices, every single bit of screen real estate counts, so they are always running full screen. This full screen notion will also be incorporated in the next Mac OS X release, Lion. People switch, but do one thing at a time.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Computer nerds tend to feel superior to people who don't have much skill using a computer. This feeling of superiority is totally misplaced. They should be really humble. because up until the advent of iOS, nobody was able to create a human friendly computer interface. It is not the lack of understanding on the side of computer users, it is the lack of &amp;nbsp;understanding on the part of the computer nerds on how normal humans think and act.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple, human friendly computer interfaces will liberate humanity from those pesky computer nerds. And that will cause a bit less suffering in the world I hope.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7634762722649973062?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7634762722649973062/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7634762722649973062' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7634762722649973062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7634762722649973062'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/11/why-computers-still-suck-and-ios-will.html' title='The iPhone, iPad and iOS are powering a revolution'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6000269463841960071</id><published>2010-10-23T04:05:00.000-07:00</published><updated>2010-10-23T04:12:09.538-07:00</updated><title type='text'>Apple is killing off the optical drive just like the floppy disk</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;With the release of the new MacBook Air we are one step closer to killing off the cd-rom and the dvd. As with the previous MacBook Air, this device has no optical drive. And that is a good thing. People do not need an optical drive. You have the network and you have USB disks. They are faster, more reliable and have more capacity.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;I may expect that in the upcoming years this trend may continue with the other laptops. Just as Apple killed the floppy disk, it is killing the optical drive, one step at a time. I'd rather have a smaller and lighter laptop or more disk or battery capacity, than an optical drive. So I hope this is a trend that will continue and all other manufacturers will follow.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6000269463841960071?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6000269463841960071/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6000269463841960071' title='6 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6000269463841960071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6000269463841960071'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/10/apple-is-killing-off-optical-drive-just.html' title='Apple is killing off the optical drive just like the floppy disk'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3670173067268615584</id><published>2010-09-29T13:58:00.000-07:00</published><updated>2010-09-29T13:58:27.425-07:00</updated><title type='text'>Linux Software RAID benchmarking script</title><content type='html'>Just a small post.&lt;br /&gt;&lt;br /&gt;To benchmark your Linux software RAID array as setup with MDADM, please use my &lt;a href="http://members.multiweb.nl/nan1/misc/raid-tester.sh"&gt;new benchmark script&lt;/a&gt;.&amp;nbsp;I used this script to create &lt;a href="http://louwrentius.blogspot.com/2010/05/raid-level-and-chunk-size-benchmarks.html"&gt;these results&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You may need to configure some values within the header of this file to make it fit your enviroment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="white-space: pre-wrap; word-wrap: break-word;"&gt;&lt;blockquote&gt;DEVICES="/dev/sd[a-f]"&lt;/blockquote&gt;&lt;blockquote&gt;NO_OF_DEVICES=6&lt;/blockquote&gt;&lt;blockquote&gt;ARRAY=/dev/md5&lt;/blockquote&gt;&lt;blockquote&gt;CHUNKS="4 8 16 32 64 128 256 512 1024"&lt;/blockquote&gt;&lt;blockquote&gt;MOUNT=/storage&lt;/blockquote&gt;&lt;blockquote&gt;LOG=/var/log/raid-test.log&lt;/blockquote&gt;&lt;blockquote&gt;LOGDEBUG=/var/log/raid-test-debug.log&lt;/blockquote&gt;&lt;blockquote&gt;LEVEL="0 5 6 10"&lt;/blockquote&gt;&lt;blockquote&gt;TESTFILE=$MOUNT/test.bin&lt;/blockquote&gt;&lt;blockquote&gt;TESTFILESIZE=10000 (IN MB, thus this is 10 GB)&lt;/blockquote&gt;&lt;blockquote&gt;TRIES=5 (how many times to run a benchmark.)&lt;/blockquote&gt;&lt;br /&gt;By default, the script wil format the array using XFS, feel free to format it with another filesystem such as EXT4 or EXT3 or whatever you want to test.&amp;nbsp;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3670173067268615584?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3670173067268615584/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3670173067268615584' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3670173067268615584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3670173067268615584'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/09/linux-software-raid-benchmarking-script.html' title='Linux Software RAID benchmarking script'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-526759375181007809</id><published>2010-09-27T15:35:00.000-07:00</published><updated>2010-11-26T12:14:21.216-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zabbix security'/><title type='text'>Zabbix Security: client-server communication seems insecure</title><content type='html'>Zabbix is a populair tool for monitoring servers, services and network equipment. For monitoring hosts, Zabbix provides an agent that can be installed on the hosts that must be monitored.&lt;br /&gt;&lt;br /&gt;Based on the supplied documentation and &lt;a href="http://www.zabbix.com/forum/archive/index.php/t-625.html"&gt;some remarks&lt;/a&gt; on the internets, the 'security' of Zabbix agents seems to rely on an IP-filter. It only accepts traffic from a specific IP-address. However, the protocol that is used between the Zabbix server and agents is unencrypted and does not seem to employ any additional authentication.&lt;br /&gt;&lt;br /&gt;With a man-in-the-middle attack, pretending to be the Zabbix server, you would be able to compromise all servers running Zabbix. If remote commands are enabled on these hosts, the damage that could be done may be something you don't want to think about. Or maybe you do. Although it is true that for such an attack to be possible, as an attacker you need access to a system within the same network (VLAN) as the server, but none the less, it is just not secure.&lt;br /&gt;&lt;br /&gt;Personally I don't think that Zabbix is suitable for high-security environments, due to the lack of encryption of sensitive data and the weak authentication mechanism.&lt;br /&gt;&lt;br /&gt;Zabbix should employ at least SSL as a means for encrypted transport and use a password or shared secret for authentication. Even better would be the use of client-side certificates such as implemented by the system management tool Puppet.&lt;br /&gt;&lt;br /&gt;[update]&lt;br /&gt;Please note that Nagios agents also seem to work this way, but I have no experience with Nagios so I can't say for sure.&lt;br /&gt;&lt;br /&gt;And Nagios is widely deployed in the enterprise...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-526759375181007809?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/526759375181007809/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=526759375181007809' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/526759375181007809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/526759375181007809'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/09/zabbix-may-not-be-as-secure-as-you-may.html' title='Zabbix Security: client-server communication seems insecure'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8041085356653037214</id><published>2010-08-20T12:53:00.000-07:00</published><updated>2010-08-20T12:53:53.366-07:00</updated><title type='text'>Debian Lenny and Dell R410 network card not supported</title><content type='html'>For those who are running Debian Lenny and want to order the new Dell R410 server, beware!&lt;br /&gt;&lt;br /&gt;There is no safe solution to get Debian Lenny working with the on-board Broadcom network cards. A fairly recent kernel is required. Basically, you will have to install back-ported kernels, more recent modules and thus must violate the reasons why you were running Debian Lenny in the first place.&lt;br /&gt;&lt;br /&gt;There is one solution, although it may not be an option: run VMware on the hardware and run Debian Lenny in a virtual machine. I think that in most cases, this will be sufficient for many cases and it has all the benefits of virtualisation and the stability of Debian Lenny.&lt;br /&gt;&lt;br /&gt;It is unfortunate that Broadcom or Dell do not support Debian.&lt;br /&gt;&lt;br /&gt;If you do have an easy and quite safe solution to get the Broadcom network cards working with Debian Lenny, please drop a note.&lt;br /&gt;&lt;br /&gt;Beware though: the H200 and H700 RAID controllers are also &lt;a href="http://louwrentius.blogspot.com/2010/07/debian-lenny-and-new-dell-s300-h200-and.html"&gt;not supported by Debian Lenny&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8041085356653037214?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8041085356653037214/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8041085356653037214' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8041085356653037214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8041085356653037214'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/debian-lenny-and-dell-r410-network-card.html' title='Debian Lenny and Dell R410 network card not supported'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2484076399276084284</id><published>2010-08-14T15:55:00.000-07:00</published><updated>2010-08-14T16:03:01.509-07:00</updated><title type='text'>Solaris is an obsolete platform</title><content type='html'>Assuming that the rumor is true and OpenSolaris will be slain by Oracle, we must conclude that the Solaris operating system is obsolete. Solaris can be considered legacy. Sun was a hardware shop and to sell their hardware, they needed a great operating system.&lt;br /&gt;&lt;br /&gt;Sun had a great operating system. And the Solaris platform was popular for a long time. And I think that was for the right reasons, at that time. If you or your company is still running on a Solaris platform, it may be time to rethink this strategy.&lt;br /&gt;&lt;br /&gt;I do not understand why Oracle bought Sun. Oracle sells software. Sun sells hardware. Sun had some great products, like Java, so I can see some reasons. In the past, Solaris and Oracle had a tight relationship. But the only thing Oracle may be doing right now is a vendor lock-in strategy, where you are totally dependent &amp;nbsp;on both hardware and software from Oracle.&lt;br /&gt;&lt;br /&gt;But p&lt;a href="http://www.crn.com/news/channel-programs/226500112/sun-oracle-vars-differ-over-future-of-sun-hardware.htm"&gt;eople don't seem to buy this&lt;/a&gt;, literally. People do want to continue to run Solaris, because thats the platform the've invested in. But they don't want to pay for those exotic Solaris Sparc systems, often way more expensive than commodity x86 hardware.&lt;br /&gt;&lt;br /&gt;Oracle invested bilions in Sun assets. How are they going to make money of it? Squeeze out existing Sun Solaris customers who are depending on their platform? &lt;br /&gt;&lt;br /&gt;If you are setting up a new business or if you think you can pull this off: stay away from this legacy platform. Migrate away from Solaris. Use an open platform that does not lock you in.&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://utcc.utoronto.ca/~cks/space/blog/solaris/OracleSunFuture"&gt;this is also a very interesting&lt;/a&gt; read.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2484076399276084284?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2484076399276084284/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2484076399276084284' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2484076399276084284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2484076399276084284'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/solaris-is-obsolete-platform.html' title='Solaris is an obsolete platform'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-908247820140618367</id><published>2010-08-14T03:51:00.000-07:00</published><updated>2010-08-14T03:53:38.484-07:00</updated><title type='text'>The future of ZFS now that OpenSolaris is dead</title><content type='html'>With the probable loss of OpenSolaris, there may be another, maybe more devastating loss.&lt;br /&gt;&lt;br /&gt;The very popular and very advanced Zetabyte File System (ZFS)&lt;br /&gt;&lt;br /&gt;The only open source platform that actively supports ZFS is FreeBSD. And they just 'copied' the code from OpenSolaris. Are they able to maintain and further develop ZFS on their own? I don't think the community can handle a thing like that. Development on ZFS will severely be hampered and will not continue in the pace it did.&lt;br /&gt;&lt;br /&gt;It is also clear that Oracle doesn't give a shit about open source or open operating systems. That is ok with me, everyone is entitled to their own opinion. But keep this in mind when you decide to use any Oracle product whatsoever.&lt;br /&gt;&lt;br /&gt;It's not that I'm suggesting that you should not buy Oracle stuff. I have no grudge against Oracle in any way, it is just an objective observation, just be aware of this issue.&lt;br /&gt;&lt;br /&gt;From the perspective of Oracle: what is their benefit regarding OpenSolaris? I understand their decision, but its sad nevertheless. And I'm really scared for the future of ZFS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-908247820140618367?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/908247820140618367/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=908247820140618367' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/908247820140618367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/908247820140618367'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/future-of-zfs-now-that-opensolaris-is.html' title='The future of ZFS now that OpenSolaris is dead'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2041253938697630733</id><published>2010-08-13T08:06:00.000-07:00</published><updated>2010-08-13T08:06:57.049-07:00</updated><title type='text'>RAID 5 vs. RAID 6 or do you care about your data?</title><content type='html'>Storage is cheap. Lots of storage with 10+ hard drives is still cheap. Running 10 drives increases the risk of a drive failure tenfold. So often RAID 5 is used to keep your data up and running if one single disks fails.&lt;br /&gt;&lt;br /&gt;But disks are so cheap and storage arrays are getting so vast that RAID 5 does not cut it anymore. With larger arrays, the risk of a second drive failure while your failed array is in a degraded state (a drive already failed and the array is rebuilding or waiting for a replacement), is serious.&lt;br /&gt;&lt;br /&gt;RAID 6 uses two parity disks, so you loose two disks of capacity, but the rewards in terms of availability are very large. Especially regarding larger arrays.&lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://blog.kj.stillabower.net/?p=93"&gt;a blog posting&lt;/a&gt; that showed the results on a big simulation run on the reliability of various RAID setups. One picture of this post is important and it is shown below. This picture shows the risk of the entire RAID array failing before 3 years.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://blog.kj.stillabower.net/wp-content/uploads/2009/08/3fail.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://blog.kj.stillabower.net/wp-content/uploads/2009/08/3fail.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From this picture, the difference between RAID 5 and RAID 6 regarding reliability (availability) is astounding. There is a strong relation with the size of the array (number of drives) and the increased risk that more than one drive fails, thus destroying the array. Notice the strong contrast with RAID 6.&lt;br /&gt;&lt;br /&gt;Even with a small RAID 5 array of 6 disks, there is already a 1 : 10 chance that the array will fail within 3 years. Even with 60+ drives, a RAID 6 array never comes close to a risk like that.&lt;br /&gt;&lt;br /&gt;Creating larger RAID 5 arrays beyond 8 to 10 disks means there is a 1 : 8 to 1 : 5 chance that you will have to recreate the array and restore the contents from backup (which you have of course).&lt;br /&gt;&lt;br /&gt;I have a 20 disk RAID 6 running at home. Even with 20 disks, the risk that the entire array fails due to failure of more than 2 disks is very small. It is more likely that I lose my data due to failure of a RAID controller, motherboard or PSU than dying drives.&lt;br /&gt;&lt;br /&gt;There are more graphs that are worth viewing, so &lt;a href="http://blog.kj.stillabower.net/?p=93"&gt;take a look at this excelent blog post.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2041253938697630733?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2041253938697630733/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2041253938697630733' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2041253938697630733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2041253938697630733'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/raid-5-vs-raid-6-or-do-you-care-about.html' title='RAID 5 vs. RAID 6 or do you care about your data?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-699125442665951678</id><published>2010-08-04T08:39:00.000-07:00</published><updated>2010-08-04T08:44:31.980-07:00</updated><title type='text'>A Moment Of Silence: OpenSolaris Is Dead</title><content type='html'>The last release of OpenSolaris dates back to July 2009. The next release was scheduled for March 2010, but Oracle did not release anything. It is dead silent around OpenSolaris.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;On 12 July 2010, the OpenSolaris Government Board &lt;a href="http://www.h-online.com/open/news/item/OpenSolaris-governing-board-threatens-dissolution-1037134.html"&gt;sent out an ultimatum&lt;/a&gt; to Oracle: "please communicate with us or we will resign and hand over the little power we have back to Oracle".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333; line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;These are all signs that OpenSolaris has no real future. And think about it: what is Oracle's interest in OpenSolaris? Maintaining an operating system and develop new features is extremely expensive. What is their benefit? I can't see any. Sun was a hardware manufacturer and promoting OpenSolaris made sure that people got exp&lt;/span&gt;erience with the operating system that powers their hardware.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unless your environment already consists of Solaris-based systems, as of 2010, there is no reason to use Solaris any more. OpenSolaris was, until recent, the only operating system that supported ZFS natively, so the only choice if you really wanted to use ZFS. Now FreeBSD has native support for ZFS too.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the people who are fanatical about ZFS this is great, because it would be a shame if ZFS could only be used in combination with a dead operating system that supports less hardware than Mac OS X.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But I see no future in OpenSolaris and you should think twice about running it, either as a production platform or at home. Use a platform that has a large user-base and a big community.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think that if you are running OpenSolaris, you must start thinking about migrating to FreeBSD or Linux, however painful that may be.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-699125442665951678?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/699125442665951678/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=699125442665951678' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/699125442665951678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/699125442665951678'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/moment-of-silence-opensolaris-is-dead.html' title='A Moment Of Silence: OpenSolaris Is Dead'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8630218183065815014</id><published>2010-08-03T12:31:00.000-07:00</published><updated>2010-08-05T08:57:58.889-07:00</updated><title type='text'>Compiling Handbrake CLI on Debian Lenny</title><content type='html'>In this post I will show you how to compile Handbrake for Debian Lenny. Please note that although the Handbrake GUI version does compile on Lenny, it crashes with a segmentation fault like this:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Gtk: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 17&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;(ghb:1053): GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' &amp;nbsp; failed&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;(ghb:1053): GStreamer-CRITICAL **: gst_element_set_state: assertion `GST_IS_ELEMENT (element)' &amp;nbsp;failed&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;(ghb:1053): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;Segmentation fault&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;So this post only describes how to compile the command-line version of Handbrake: HandBrakeCLI.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Issue the following apt-get commando to install all required libraries and software:&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;apt-get install subversion yasm build-essential&amp;nbsp;autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev&amp;nbsp;libpthread-stubs0-dev&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Download the source code at&amp;nbsp;http://sourceforge.net/projects/handbrake/files/&lt;/li&gt;&lt;li&gt;Extract the source code and cd into the new handbrake directory.&lt;/li&gt;&lt;li&gt;Compile handbrake like this:&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;./configure --disable-gtk --launch --force --launch-jobs=2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The --launch-jobs parameter determines how many parallel threads are used for compiling Handbrake, based on the number of CPU cores of your system. If you have a quad-core CPU you should set this value to 4.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The resulting binary is called HandBrakeCLI and can be found in the ./build directory. Issue a 'make install' to install this binary onto your system.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8630218183065815014?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8630218183065815014/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8630218183065815014' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8630218183065815014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8630218183065815014'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/08/compiling-handbrake-cli-on-debian-lenny.html' title='Compiling Handbrake CLI on Debian Lenny'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-9096358237196533726</id><published>2010-07-10T14:50:00.000-07:00</published><updated>2010-11-24T11:50:25.063-08:00</updated><title type='text'>Debian Lenny and Dell S300 H200 and H700 RAID controllers</title><content type='html'>update november 2010: it is reported in the comments that the next release will support these controllers. However, which controllers are supported is not clear. Also, we may have to wait for quite some time before squeeze will be released.&lt;br /&gt;&lt;br /&gt;Just a quick note: it seems that the new Dell RAID controllers are not supported by the current stable version of Debian: Lenny. The S300, H200 and H700&amp;nbsp;controllers&amp;nbsp;as supplied with the R310, R410 and 'higher' systems, are thus not a great choice if you want to keep things 'stock'. You may have to run backported kernels and installer images and I couldn't figure out if these controllers actually work with these latest images.&lt;br /&gt;&lt;br /&gt;The Perc 6/i controller is supported by Debian. It seems that it can only be supplied with the &amp;nbsp;R410 and higher systems. If you have any additional information, like actual experience with these controllers, please report this.&lt;br /&gt;&lt;br /&gt;I installed VMware ESX 4.1 and installed DEbian Lenny om top of that without problems.&lt;br /&gt;&lt;br /&gt;Please note that the network cards of the R410 are still &lt;a href="http://louwrentius.blogspot.com/2010/08/debian-lenny-and-dell-r410-network-card.html"&gt;not supported&lt;/a&gt; and will cause a headache!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-9096358237196533726?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/9096358237196533726/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=9096358237196533726' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/9096358237196533726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/9096358237196533726'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/07/debian-lenny-and-new-dell-s300-h200-and.html' title='Debian Lenny and Dell S300 H200 and H700 RAID controllers'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7169990868656836021</id><published>2010-07-03T15:53:00.000-07:00</published><updated>2010-07-05T07:11:27.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lustre ost failure data loss'/><title type='text'>Lustre and the risk of Serious Data Loss</title><content type='html'>Personally I have a weakness for big-ass storage. Say 'petabyte' and I'm interested. So I was thinking about how you would setup a large, scalable storage infrastructure. How should such a thing work?&lt;br /&gt;&lt;br /&gt;Very simple: you should be able just to add hosts with some bad-ass huge RAID arrays attached to them. Maybe even not that huge, say 8 TB RAID 6 arrays or maybe bigger. You use these systems as building blocks to create a single and very large storage space. And then there is one additional requirement: as the number of these building blocks increase, you must be able to loose some and not loose data or availability. You should be able to continue operations without one or two of those storage building blocks before you would loose data and/or availability. Like RAID 5 or 6 but then over server systems instead of hard drives.&lt;br /&gt;&lt;br /&gt;The hard part is in connecting all this separate storage to one virtual environment. A solution to this problem is Lustre. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.lustre.org/index.php/Main_Page"&gt;Lustre&lt;/a&gt; is a network clustering filesystem. What does that mean? You can use Lustre to create a scalable storage platform. A single filesystem that can grow to multiple Petabytes.&amp;nbsp;Lustre is deployed within production environments at large scale sites involving some of the fastest and largest computer clusters. Luster is thus something to take seriously.&lt;br /&gt;&lt;br /&gt;Lustre stores all metadata about files on a separate MetaDataServer (MDS). Al actual file data is stored on Object Storage Targets (OSTs). These are just machines with one or more big RAID arrays (or simple disks) attached to them. The OSTs are not directly accessible by clients, but through an Object Storage Server (OSS). The data stored within a file can be striped over multiple OSTs for performance reasons. &amp;nbsp;A sort of network RAID 0.&lt;br /&gt;&lt;br /&gt;Lustre does not only allow scaling up to Petabytes of storage, but allows also a parallel file transfer performance in excess of 100 GB/s. How you like them apples? That is just wicked sick.&lt;br /&gt;&lt;br /&gt;Just take a look at this diagram about how Lustre operates:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_1tZXi-PpPDE/TC-5EukzR8I/AAAAAAAAACQ/nkTgUuuvS-w/s1600/lustre-schema.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/_1tZXi-PpPDE/TC-5EukzR8I/AAAAAAAAACQ/nkTgUuuvS-w/s640/lustre-schema.png" width="580" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://members.multiweb.nl/nan1/img/lustre-schema.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm not going into the details about Lustre. I want to discuss a shortcoming that may pose a serious risk of data loss: &lt;b&gt;&lt;i&gt;if you loose a single OST with any attached storage, you will lose all data stored on that OST&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Lustre cannot cope with the loss of a single OST! Even if you buy fully redundant hardware, with double RAID controllers, ECC memory, double PSU, etc, even then, if the motherboard gets fried, you will loose data. Surely not everything, but let's say 'just' 8 TB maybe?&lt;br /&gt;&lt;br /&gt;I guess the risk is assumed to be low, because of the wide scale deployment of Lustre. Deployed by people who actually use it and have way more experience and knowledge than me about this whole stuff.  So maybe I'm pointing out risks that are just very small. But I have seen server systems fail this bad as described. I don't think the risk, especially at this scale, is not that small.&lt;br /&gt;&lt;br /&gt;I am certainly &lt;a href="http://www.mail-archive.com/lustre-discuss@clusterfs.com/msg01048.html"&gt;not the first&lt;/a&gt; to &lt;a href="http://comments.gmane.org/gmane.comp.file-systems.lustre.user/9501"&gt;point out this risk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The solution for Lustre to became truly awesome is to implement some kind of network based RAID 6 striping so you could loose one or even two OSTs and not have any impact on availability except maybe for performance. But it doesn't (yet).&lt;br /&gt;&lt;br /&gt;This implies that you have to create your OSTs super-reliable, which would be very expensive (does not scale). Or have some very high-capacity backup solution, which would be able to restore some data. But you would have downtime.&lt;br /&gt;&lt;br /&gt;So my question to you is: is there an actual scalable filesystem as Lustre that actually is capable of withstanding the failure of a single storage building block? If you have something to point out, please do.&lt;br /&gt;&lt;br /&gt;BTW: please note that the loss of an OSS can be overcome because another OSS can take over the OSTs of a failed OSS.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7169990868656836021?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7169990868656836021/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7169990868656836021' title='4 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7169990868656836021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7169990868656836021'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/07/lustre-and-risk-of-serious-data-loss.html' title='Lustre and the risk of Serious Data Loss'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1tZXi-PpPDE/TC-5EukzR8I/AAAAAAAAACQ/nkTgUuuvS-w/s72-c/lustre-schema.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1767299843515091420</id><published>2010-06-12T09:37:00.000-07:00</published><updated>2010-07-03T02:09:04.049-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux djbdns caching forwarding dns server bernstein'/><title type='text'>Secure caching DNS server on Linux with DJBDNS</title><content type='html'>The most commonly used DNS server software is ISC BIND, the "Berkeley Internet Name Daemon". However, this software has a bad security track record and is in my opinion a pain to configure.&lt;br /&gt;&lt;br /&gt;Mr. D.J. Bernstein developed "djbdns", which comes with a guarantee: if anyone finds a security vulnerability within djbdns, you will get &lt;a href="http://cr.yp.to/djbdns/guarantee.html"&gt;one thousand dollars&lt;/a&gt;. This price has been claimed &lt;a href="http://article.gmane.org/gmane.network.djbdns/13864"&gt;once&lt;/a&gt;. But djbdns has a far better track record than BIND.&lt;br /&gt;&lt;br /&gt;Well, attaching your own name to your DNS implementation and tying &amp;nbsp;a price to it if someone finds a vulnerability in it, does show some confidence. But there is more to it. D.J. Bernstein already pointed out some important security risks regarding DNS and made djbdns immune against them, even before it became &lt;a href="http://en.wikipedia.org/wiki/DNS_cache_poisoning"&gt;a serious world-wide security issue&lt;/a&gt;. However, djbdns is to this day vulnerable to a variant of this type of attack and the dbndns package is as of 2010 &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=516394"&gt;still not patched&lt;/a&gt;. Although the risk is small, you must be aware of this. I still think that djbdns is less of a security risk, especially regarding buffer overflows, but it is up to you to decide which risk you want to take.&lt;br /&gt;&lt;br /&gt;The nice thing about djbdns is that it consists of several separate programs, that each perform a dedicated task. This is in stark contrast with BIND, which is one single program that performs all DNS functionality. One can argue that djbdns is far more simpler and &lt;a href="http://cr.yp.to/djbdns/blurb/easeofuse.html"&gt;easy to use&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So this post is about setting up djbdns on a Debian Linux host as a forwarding server, thus a 'DNS cache'. This is often used to speed up DNS queries. Clients do not have to connect to the DNS server of your ISP but can use your local DNS server. This server will also cache the results of queries, so it will reduce the number of DNS queries that will be sent out to your ISP DNS server or the Internet.&lt;br /&gt;&lt;br /&gt;Debian Lenny has a patched version of djbdns in its repository. The applied patch adds IPV6 support to djbdns. This is how you install it:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;apt-get install dbndns&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The dbndns package is actually a fork of the original djbdns software. Now the program we need to configure is called 'dnscache', which only does one thing: performing recursive DNS queries. This is exactly what we want.&lt;br /&gt;&lt;br /&gt;To keep things secure, the djbdns software must not be run with superuser (root) privileges, so two accounts must be made: one for the service, and one for logging.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;groupadd dnscache&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;useradd -g dnscache dnscache&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;useradd -g dnscache dnscachelog&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The next step is to configure the dnscache software like this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;dnscache-conf dnscache dnscachelog /etc/dnscache 192.168.0.10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first two options tell dnscache which system user accounts to use for this service. The /etc/dnscache directory stores the dnscache configuration. The last option specifies which IP address to listen on. If you don't specify an IP address, localhost (127.0.0.1) is used. If you want to run a forwarding DNS server for your local network, you need to make dnscache listen on the IP address on your local network, as in the example.&lt;br /&gt;&lt;br /&gt;Djbdns relies on daemontools and in order to be started by daemontools we need to perform one last step:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;ln -s /etc/dnscace /etc/service/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Within a couple of seconds, the dnscache software will be started by the daemontools software. You can check it out like this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;svstat /etc/service/dnscache&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A positive result will look like this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;/etc/service/dnscache: up (pid 6560) 159 seconds&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However, the cache cannot be used just yet. Dnscache is governed by some text-based configuration files in the /etc/dnscache directory. For example, the ./env/IP file contains the IP address that we configured previously on which the service will listen.&lt;br /&gt;&lt;br /&gt;By default, only localhost will be able to access the dnscache. To allow access to all clients on the local network you have to create a file with the name of the network in ./root/ip/. If your network is 192.168.0.0/24 (thus 254 hosts), create a file named 192.168.0:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;Mini:/etc/dnscache/root/ip# pwd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;/etc/dnscache/root/ip&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;Mini:/etc/dnscache/root/ip# ls&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;192.168.0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now clients will be able to use the dnscache. Now you are running a simple forwarding DNS server and it probably took you under ten minutes to configure it. Although djbdns is &lt;a href="http://security-tracker.debian.org/tracker/CVE-2008-4392"&gt;not very well maintained&lt;/a&gt;&amp;nbsp;in Debian Lenny, there is currently not a really good alternative for BIND. PowerDNS is &lt;a href="http://lwn.net/Articles/368833/"&gt;not very secure&lt;/a&gt;&amp;nbsp;&amp;nbsp;(buffer overflows) and djbdns / dbndns has in more than 10 years never been affected by this type of vulnerability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1767299843515091420?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1767299843515091420/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1767299843515091420' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1767299843515091420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1767299843515091420'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/06/secure-dns-server-on-debian-linux-with.html' title='Secure caching DNS server on Linux with DJBDNS'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5811976137922747311</id><published>2010-05-23T12:11:00.001-07:00</published><updated>2010-12-27T01:32:02.628-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux mdadm raid chunk size benchmark performance'/><title type='text'>Linux RAID level and chunk size: the benchmarks</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Introduction&lt;/span&gt;&lt;/div&gt;&lt;div&gt;When configuring a Linux RAID array, the chunk size needs to get chosen. But what is the chunk size?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When you write data to a RAID array that implements striping (level 0, 5, 6, 10 and so on), the chunk of data sent to the array is broken down in to pieces, each part written to a single drive in the array. This is how striping improves performance. The data is written in parallel to the drive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The chunk size determines how large such a piece will be for a single drive. For example: if you choose a chunk size of  64 KB, a 256 KB file will use four chunks. Assuming that you have setup a 4 drive RAID 0 array, the four chunks are each written to a separate drive, exactly what we want. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This also makes clear that when choosing the wrong chunk size, performance may suffer. If the chunk size would be 256 KB, the file would be written to a single drive, thus the RAID striping wouldn't provide any benefit, unless manny of such files would be written to the array, in which case the different drives would handle different files. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;In this article, I will provide some benchmarks that focus on sequential read and write performance. Thus, these benchmarks won't be of much importance if the array must sustain a random IO workload and needs high random iops.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Test setup&lt;/b&gt;&lt;/div&gt;&lt;div&gt;All benchmarks are performed with a consumer grade system consisting of these parts:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Processor: AMD Athlon X2 BE-2300, running at 1.9 GHz.&lt;/div&gt;&lt;div&gt;RAM: 2 GB&lt;/div&gt;&lt;div&gt;Disks: SAMSUNG HD501LJ (500GB, 7200 RPM)&lt;/div&gt;&lt;div&gt;SATA controller: Highpoint RocketRaid 2320 (non-raid mode)&lt;/div&gt;&lt;div&gt;Tests are performed with an array of 4 and an array of 6 drives.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;All drives are attached to the Highpoint controller. The controller is not used for RAID, only to supply sufficient SATA ports. Linux software RAID with mdadm is used.&lt;/li&gt;&lt;li&gt;A single drive provides a read speed of 85 MB/s and a write speed of 88 MB/s&lt;/li&gt;&lt;li&gt;The RAID levels 0, 5, 6 and 10 are tested.&lt;/li&gt;&lt;li&gt;Chunk sizes starting from 4K to 1024K are tested.&lt;/li&gt;&lt;li&gt;XFS is used as the test file system.&lt;/li&gt;&lt;li&gt;Data is read from/written to a 10 GB file.&lt;/li&gt;&lt;li&gt;The theoretical max through put of a 4 drive array is 340 MB/s. A 6 drive array should be able to sustain 510 MB/s.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;About the data:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;All tests have been performed by a Bash shell script that accumulated all data, there was no human intervention when acquiring data.&lt;/li&gt;&lt;li&gt;All values are based on the average of five runs. After each run, the RAID array is destroyed, re-created and formatted.&lt;/li&gt;&lt;li&gt;For every RAID level + chunk size, five tests are performed and averaged.&lt;/li&gt;&lt;li&gt;Data transfer speed is measured using the 'dd' utility with the option bs=1M.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Test results&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Results of the tests performed with four drives:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/4drives.png"&gt;&lt;img src="http://members.multiweb.nl/nan1/img/4drives.png" border="0" alt="" style="cursor: pointer; width: 400px; height: 717px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Test results with six drives:&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/6drives.png"&gt;&lt;img src="http://members.multiweb.nl/nan1/img/6drives.png" border="0" alt="" style="cursor: pointer; width: 400px; height: 956px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Analysis and conclusion&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Based on the test results, several observations can be made. The first one is that RAID levels with parity, such as RAID 5 and 6, seem to favor a smaller chunk size of 64 KB.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The RAID levels that only perform striping, such as RAID 0 and 10, prefer a larger chunk size, with an optimum of 256 KB or even 512 KB. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;It is also noteworthy that RAID 5 and RAID 6 performance don't differ that much. &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Furthermore, the theoretical transfer rates that should be achieved based on the performance of a single drive, are not met. The cause is unknown to me, but overhead and the relatively weak CPU may have a part in this. Also, the XFS file system may play a role in this. Overall, it seems that on this system, software RAID does not seem to scale well. Since my big storage monster (as seen on the left) is able to perform way better, I suspect that it is a hardware issue.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Update: the main reason there is no higher transfer rate beyond 350 MB/s is because the M2A-VM consumer-grade motherboard can't go any faster.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5811976137922747311?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5811976137922747311/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5811976137922747311' title='11 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5811976137922747311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5811976137922747311'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/05/raid-level-and-chunk-size-benchmarks.html' title='Linux RAID level and chunk size: the benchmarks'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3815904594441591174</id><published>2010-04-20T13:56:00.000-07:00</published><updated>2010-04-20T14:01:52.874-07:00</updated><title type='text'>Tool of the month: iftop - advanced bandwidth monitoring</title><content type='html'>&lt;div&gt;The utility &lt;a href="http://www.ex-parrot.com/pdw/iftop/"&gt;iftop&lt;/a&gt; allows you to monitor bandwidth usage. It is in some sense similar to tools like iptraf, dstat and bwm-ng. Iftop is more special than those. Because iftop lets you monitor the speed of individual TCP / UDP connections. Basically, you will be able to determine how much traffic is flowing between two hosts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ex-parrot.com/pdw/iftop/"&gt;It is definitely worth a try.&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1tZXi-PpPDE/S84VUImskgI/AAAAAAAAAB4/9TufBPvzAmw/s1600/88469-iftop-47912.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_1tZXi-PpPDE/S84VUImskgI/AAAAAAAAAB4/9TufBPvzAmw/s400/88469-iftop-47912.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5462326833698345474" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3815904594441591174?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3815904594441591174/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3815904594441591174' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3815904594441591174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3815904594441591174'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/04/tool-of-month-iftop-advanced-bandwidth.html' title='Tool of the month: iftop - advanced bandwidth monitoring'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1tZXi-PpPDE/S84VUImskgI/AAAAAAAAAB4/9TufBPvzAmw/s72-c/88469-iftop-47912.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1224535166528983896</id><published>2010-04-10T11:05:00.000-07:00</published><updated>2010-04-10T11:10:13.576-07:00</updated><title type='text'>WFS - WAN Failover Script now available</title><content type='html'>&lt;div&gt;Since I could not find a WAN failover script for Linux to my likening, I wrote one myself. If you have any use for it: I put it on a Google code project.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WFS tests the availability of your primary WAN connection and switches to your secondary / backup connection when a failure is detected. When in failover mode, WFS continues to monitor the availability of the primary WAN connection and once it becomes available again, it switches back. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For more information and a download, please take a look at the project:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://code.google.com/p/wanfailoverscript/"&gt;http://code.google.com/p/wanfailoverscript/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1224535166528983896?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1224535166528983896/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1224535166528983896' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1224535166528983896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1224535166528983896'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/04/wfs-wan-failover-script-now-available.html' title='WFS - WAN Failover Script now available'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3902830926349741670</id><published>2010-04-07T11:51:00.001-07:00</published><updated>2010-04-07T12:03:20.644-07:00</updated><title type='text'>HP Procurve "auto DoS" feature causing network problems</title><content type='html'>A feature on more recent HP Procurve models (18xx series, such as 1810G etc.) is called "Auto DoS". You can find it in the section "Security" and then "Advanced security". &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you enable the Auto DoS feature, traffic is blocked based on one of these conditions:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;the source port (TCP / UDP) is identical to the destination port (NTP, SYSLOG, etc)&lt;/li&gt;&lt;li&gt;the source port (TCP / UDP) is 'privileged' thus in the range of 1 -1023.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This will cause all kinds of problems, but first this: "Why on earth is a Layer 2 device filtering on Layer 3?". This is just insane. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;NTP does not work any more. Syslog traffic will not arive. VPN traffic may not arrive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This issue cost me a lot of time to solve. I first blamed our Firewall, but the actual traffic arrived on the tagged trunk port on the affected switch. The traffic somehow was not sent to the switch port on which the destination device was connected. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Affected products:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" border-collapse: collapse; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size:12px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;HP ProCurve 1810G - &lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;J9449A ( 8 ports )  and &lt;/span&gt;&lt;span class="Apple-style-span"  style="border-collapse: separate;  white-space: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size:11px;"&gt;&lt;span class="Apple-style-span"  style="font-family:'lucida grande';"&gt;J9450A ( 24 ports )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3902830926349741670?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3902830926349741670/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3902830926349741670' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3902830926349741670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3902830926349741670'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/04/hp-procurve-auto-dos-feature-causing.html' title='HP Procurve &quot;auto DoS&quot; feature causing network problems'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6939252754661084032</id><published>2010-04-03T16:02:00.000-07:00</published><updated>2010-04-04T10:31:29.881-07:00</updated><title type='text'>RAID array size and rebuild speed</title><content type='html'>When a disk fails of a RAID 5 array, you are no longer protected against (another) disk failure and thus data loss. During this rebuild time, you are vulnerable. The longer it takes to rebuild your array, the longer you are vulnerable. Especially during a disk-intensive period, because the array must be reconstructed. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When one disk fails of a RAID 6 array, you are still protected against data loss because the array can take a second disk failure. So RAID 6 is almost always the better choice. Especially with large disks (1+ TB), because the rebuild time largely depends on the size of a single disk, not on the size of the entire RAID array.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, there is one catch. The size of the RAID array matters when it becomes big, 10+ drives or more. No matter if you use hardware- or software-based  RAID, the processor must read the contents of all drives simultaneously and use that information to rebuild the replaced drive. When creating a large RAID array, such as in my storage array, with 20 disks, the check and rebuild of the array becomes CPU-bound. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is because the CPU must process 1,1 GB/s (as in gigabyte!) of data and use that data stream to rebuild that single drive. Using 1 TB drives, it checks or rebuilds the array at about 50 MB/s, which is less than half what the drives are capable of (100+ MB/s). Top shows that indeed the CPU is almost saturated (95%). Please note that a check or rebuild of my storage server takes about 5 hours currently, but that could be way shorter if the CPU was not saturated. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My array is not for professional use and fast rebuild times are not that of an issue. But if you're more serious about your setup, it may be advised to create more smaller RAID vollumes and glue them together using LVM or some similar solution.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6939252754661084032?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6939252754661084032/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6939252754661084032' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6939252754661084032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6939252754661084032'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/04/raid-array-size-and-rebuild-speed.html' title='RAID array size and rebuild speed'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1055847849074975878</id><published>2010-03-22T10:01:00.000-07:00</published><updated>2010-03-22T10:19:30.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux monitor files directories asynchronous'/><title type='text'>Linux: monitor a directory for files</title><content type='html'>Inotify is a mechanism in the Linux kernel that reports when a file system event occurs.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The inotifywait comand line utility can be used in shell scripts to monitor directories for new files. It can also be used to monitor files for changes. Inotifywait must be installed and is often not part of the base installation of your Linux distro. However, if you need to monitor a directory or some task like that, it is worth the effort. (apt-get install inotify-tools). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is how you use it:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;inotifywait -m -r -e close_write /tmp/ | while read LINE; do echo $LINE | awk '{ print $1 $3 }'; done&lt;/blockquote&gt;Let's dissect this example one part at a time. The most interesting part is this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;inotifywait -m -r -e close_write /tmp/&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;What happens here? First, inotifywait monitors the /tmp directory. The monitoring mode is specified with the -m option, otherwise inotifywait would exit after the first event. The -r option specifies recursion, beware of large directory trees. The -e option is the most important part. You only want to be notified of new files if they are complete. So only after a close_write event should your script be notified of an event. A 'create' event for example, should not cause your script to perform any action, because the file would not be ready yet. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The remaining part of the example is just to get output like this:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;/tmp/test1234/blablaf&lt;/div&gt;&lt;div&gt;/tmp/test123&lt;/div&gt;&lt;div&gt;/tmp/random.bin&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt; This output can be used to use as an argument to other scripts or functions, in order to perform some kind of action on this file.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This mechanism is specific to Linux. So it is not a OS independent solution.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1055847849074975878?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1055847849074975878/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1055847849074975878' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1055847849074975878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1055847849074975878'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/03/linux-monitor-directory-for-files.html' title='Linux: monitor a directory for files'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7683339962302918369</id><published>2010-03-18T01:23:00.000-07:00</published><updated>2010-03-18T01:35:25.306-07:00</updated><title type='text'>Syslog: the hidden security risk</title><content type='html'>People sometimes forget that there are also a number of UDP-based services that may pose a threat to the security of your systems. SNMP is a well-known service, notorious for being configured with a default password (or community string).&lt;br /&gt;&lt;br /&gt;But there is another service that is often not seen as a risk. This is the syslog service. Syslog is used on virtually all UNIX-like platform for logging messages of the system to one or more log files to disk. The syslog service often listens on the network, on UDP-port 514. Please note that syslog does &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;perform any authentication&lt;/span&gt; of data that is sent to it.&lt;br /&gt;&lt;br /&gt;So what does this mean?&lt;br /&gt;&lt;br /&gt;An attacker can:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a denial-of-service condition (DoS) by sending large amounts of data to the syslog service, filling up disk space.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Once the disk is full, logs can no longer be saved, thus any attack that would leave a trail within the logs would go unnoticed.&lt;/li&gt;&lt;li&gt;by sending large amounts of specially crafted messages, an attacker can cause chaos if logs are monitored by intrusion detection systems or other systems that create alerts.&lt;/li&gt;&lt;/ol&gt;How to attack? Just use netcat:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;nc -u &lt;target&gt; [IP-address] 514&lt;/target&gt;&lt;/blockquote&gt;&lt;br /&gt;Once you are connected, anything you type will be logged in a log file.&lt;br /&gt;&lt;br /&gt;How to mitigate this issue?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Firewall access to UDP-port 514&lt;/li&gt;&lt;li&gt;Make sure that the syslog service does not listen on the network if not required, only on localhost.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7683339962302918369?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7683339962302918369/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7683339962302918369' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7683339962302918369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7683339962302918369'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/03/syslog-hidden-security-risk.html' title='Syslog: the hidden security risk'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3185646071313168364</id><published>2010-02-22T14:50:00.000-08:00</published><updated>2010-02-22T15:07:24.304-08:00</updated><title type='text'>Ubuntu and full disk encryption (FDE)</title><content type='html'>Ubuntu is based on Debian Linux. As part of a regular Debian installation, you can choose to create an encrypted disk volume based on LUKS. This is different from the option within the Ubuntu installation to encrypt home directories. To be able to install Ubuntu and use full disk encryption, you need to download the &lt;a href="http://www.ubuntu.com/getubuntu/downloadmirrors#alternate"&gt;alternate install CD / DVD&lt;/a&gt;.  Only this version of Ubuntu supports LUKS as an installation option.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You will have either two options: &lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;use the default choice, creating a swap partition, boot partition and the encrypted root file system on top of LVM;&lt;/li&gt;&lt;li&gt;create separate crypted partitions yourself manualy.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Personaly I don't care for separate partitions and use the provided automatic option. If you do care, &lt;a href="http://learninginlinux.wordpress.com/2008/04/23/installing-ubuntu-804-with-full-disk-encryption/"&gt;please read this blog for more info&lt;/a&gt;. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3185646071313168364?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3185646071313168364/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3185646071313168364' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3185646071313168364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3185646071313168364'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/02/ubuntu-and-full-disk-encryption-fde.html' title='Ubuntu and full disk encryption (FDE)'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2397757891352432845</id><published>2010-02-18T13:41:00.000-08:00</published><updated>2010-02-18T14:14:08.783-08:00</updated><title type='text'>Scanning many hosts in parallel with Nmap using PPSS</title><content type='html'>&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:'Lucida Grande';font-size:11px;"&gt;Scanning a large number of hosts using Nmap often takes a lot of time. During this time, no output is written to a file or disk. Only when Nmap is finished, is all output written to the output file.   Often, I want to start processing results of hosts that have already been scanned. Often, the trick is to split the input file with all the hosts and start multiple Nmap instances by hand using the different input files. This is rather cumbersome.   Now what I really want is that I get the results of a scan of a particular host immediately available as soon as it's finished. Here is where PPSS comes in.   PPSS can start Nmap scans and proces a list of hosts as contained in an input file. PPSS will only start a predefined max number of simultaneous scans in parallel, as not to overwhelm the scanner, network or target hosts.   This is an example on how PPSS can be used to obtain results immediately:  &lt;blockquote&gt;./ppss -f hosts.txt -c 'nmap -n -v -sS -A -p- -oN "$ITEM" "$ITEM"' -p 4&lt;/blockquote&gt;Where hosts.txt contains IP-addresses, networks or domain names like:&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;192.168.0.1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;192.168.0.2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;192.168.0.3&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:'Lucida Grande';font-size:11px;"&gt;192.168.1.1-254&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;www.google.nl&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:'Lucida Grande';font-size:11px;"&gt;The 'ITEM' part is the fun bit. In this example, multiple instances of Nmap will scan a single hosts. The output is written to a file  called "$ITEM", which is of course substituted for the IP-address or domain name as read from hosts.txt. The second "$ITEM" is the argument to Nmap which tells which host to scan. The -p 4 option tells PPSS to run 4 nmap scans simultaneously at all times. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:11px;"&gt;You will end up with a large number of output files, one per host. As soon as a scan is finished on one host, you can start processing the results, instead of waiting for that big scan to finish. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2397757891352432845?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2397757891352432845/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2397757891352432845' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2397757891352432845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2397757891352432845'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/02/scanning-hosts-with-nmap-using-ppss.html' title='Scanning many hosts in parallel with Nmap using PPSS'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-982045054813576899</id><published>2010-02-10T15:59:00.000-08:00</published><updated>2010-02-11T11:34:19.401-08:00</updated><title type='text'>Corsair CM PSU-750HX seems ok</title><content type='html'>I had to replace my Coolermaster PSU and after some searching on the interweb, I chose the Corsair CMPSU-750HX. One of the reasons is that Corsair states that this PSU can withstand 50 degree Celcius in continuous operation on full load. &lt;br /&gt;&lt;br /&gt;The package is very, clean, with all the cables in some neat pouch and the PSU itself also in a neat bag. You pay quite some money, but it at least suggest quality. The modular design with the modular kables is excellent. &lt;br /&gt;&lt;br /&gt;Personally, I think that PSUs with multiple 12v rails are not that usefull. This particular PSU has just one single 12v rail that can be loaded up to full capacity of the PSU. I think this makes the design easier and if you are running heavy systems that have short spikes (starting al drives) this is ideal.&lt;br /&gt;&lt;br /&gt;I hope this one lasts longer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-982045054813576899?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/982045054813576899/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=982045054813576899' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/982045054813576899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/982045054813576899'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/02/corsair-cmpsu-750hx-seems-ok.html' title='Corsair CM PSU-750HX seems ok'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-785206662823077781</id><published>2010-02-09T16:46:00.000-08:00</published><updated>2010-02-09T16:56:30.348-08:00</updated><title type='text'>Smoking coolermaster Silent Pro M 600W TN6M50</title><content type='html'>So I was just messing around on my work station, when suddenly I smelled the smell any person familiar with electronics fears. The smell of some electrical component burning.&lt;br /&gt;&lt;br /&gt;The whole upper floor smelled like something was smoldering. So I shut down both my storage servers. After half an hour I still hadn't found the source of the smell, but it definitely was my 18 TB NAS. &lt;br /&gt;&lt;br /&gt;So I switched it back on to see if I could determine the cause. The smell became stronger and within the strike light of my flash light, I saw small strands of grey smoke slowly twirling out of the Coolermaster Silent Pro M 600W power supply. &lt;br /&gt;&lt;br /&gt;That was the moment I decided to turn the system off immediately. I know this kind of thing can happen. But it is still very bad for such a component to crap out on me like that. &lt;br /&gt;&lt;br /&gt;Needless to say that I don't want a replacement of this model in my server. I will now try my luck with the Corsair CMPSU-750HX 750Watt PSU. &lt;br /&gt;&lt;br /&gt;Based on a single experience it cannot be concluded that this Coolermaster PSU is a bad one that should be avoided. But the only moving part of a PSU is the (big) fan. What must be wrong with it that it decided to start smoking?&lt;br /&gt;&lt;br /&gt;For reasons of availability, a redundant power supply should be used, but that is just too expensive for my taste ($500+).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-785206662823077781?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/785206662823077781/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=785206662823077781' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/785206662823077781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/785206662823077781'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/02/smoking-coolermaster-silent-pro-m-600w.html' title='Smoking coolermaster Silent Pro M 600W TN6M50'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2981923248438246807</id><published>2010-01-31T11:55:00.000-08:00</published><updated>2010-01-31T12:11:34.258-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone ipad freedom'/><title type='text'>Is the iPhone OS a threat to our freedom?</title><content type='html'>There is one fundamental flaw with both the iPhone and the iPad. As a user, you do not have full control over your device. You can only install or run software that is approved by Apple.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is something that is unprecedented. All major platforms, Windows, Linux, Mac OS X do provide the user with full control over what programs can be run or not.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is this a bad thing? Are you trading your freedom for some luxurious gadget such as the iPhone or the iPad?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I say no. People are over reacting.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You would trade in your freedom and become 'owned' by Apple, if an iPhone or iPad is your sole computing device. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, everybody also has a computer at home, that is still under your full control.Since the iPhone and iPad is just an auxiliary device (although quite powerful), you are still free.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most importantly, I think it is about the content, not the device. Do you retain control over your own content, such as music, files and e-mail? I think so. I think that on this level, which is most crucial, Apple does not restrict people on iPhones or iPads in any way. And that is what matters most I think. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2981923248438246807?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2981923248438246807/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2981923248438246807' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2981923248438246807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2981923248438246807'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/01/is-iphone-os-threat-to-our-freedom.html' title='Is the iPhone OS a threat to our freedom?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-47950726012064060</id><published>2010-01-30T02:50:00.000-08:00</published><updated>2010-01-30T03:29:44.899-08:00</updated><title type='text'>Why the iPad will be a breakthrough in human computing</title><content type='html'>The fact is that computers aren't made for humans. Computers are just made, and humans have to adjust to them. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem is that most people that are not into technology just don't understand how computers work. Should I single click of double click? Click left or right?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only people that can work with some ease on computers are people with a  more than average interest in technology. Ordinary people often have to fight great battles to get the job done. The therm 'ordinary' does not justice to these people, because technologists seem to forget that &lt;a href="http://speirs.org/blog/2010/1/29/future-shock.html"&gt;they are the people that actually do something useful.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iPad is the first personal computer that is actually made for humans that do not have a primary interest in computers. The entire computer is abstracted away to focus on the things you really want to do. People do not need the help of technologists anymore to do the things they want. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iPhone was the first in this new kind of computers, but due to it's size it's still a bit of a gimmick. But it was a revolution within the world of smart phones. It was the first device that was actually usable for non-technologists. And the iPad will be the first 'regular' computer that (hopefully) won't be such a nuisance as current home computers are.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-47950726012064060?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/47950726012064060/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=47950726012064060' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/47950726012064060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/47950726012064060'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/01/why-ipad-will-be-breakthrough-in-human.html' title='Why the iPad will be a breakthrough in human computing'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1381542148072439621</id><published>2010-01-30T02:16:00.000-08:00</published><updated>2010-01-30T02:41:51.367-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ipad iphone kill flash'/><title type='text'>The iPad will be the death of Flash</title><content type='html'>So Apple finally released their tablet computer: the iPad. One of the most debated drawbacks is that it lacks support for Adobe Flash. The iPhone does not support Flash either, and since the iPad is based on the iPhone OS, this should not come as a surprise.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now many people see this as a serious problem. &lt;a href="http://www.kungfugrippe.com/post/360209059/the-flash-blog-the-ipad-provides-the-ultimate"&gt;There are a slew of websites that cannot be viewed on an iPad for this reason&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, the thing is this: Flash sucks. It is a proprietary technology under the control of Adobe and the only reason it is currently popular is that it provides a kind of standard for video playback across all browsers and operating systems. But it still sucks. It crashes. It is shit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The iPhone is immensely popular, despite the lack of flash. The iPhone user base is huge. By using Flash in your website, you are excluding a large population of potential visitors. So this is what will happen: websites will start dumping Flash. The iPhone and the iPad will together kill Flash. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And that is a good thing for everybody, especially for proponents of open standards and open formats. Oh irony, that it will take a closed proprietary platform to do so. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1381542148072439621?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1381542148072439621/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1381542148072439621' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1381542148072439621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1381542148072439621'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/01/ipad-will-be-death-of-flash.html' title='The iPad will be the death of Flash'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-51193972817189284</id><published>2010-01-23T02:13:00.000-08:00</published><updated>2010-01-23T15:06:45.175-08:00</updated><title type='text'>Mounting a file system or partition from a disk image</title><content type='html'>You cannot just make a disk copy with dd and then just mount it as a regular disk. You must know where the partition starts on the disk. So first, you need to get the partition table with sfdisk:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sfdisk -l -uS image_file.dd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The output is something like:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;Disk /mnt/image/image_file.dd: 9729 cylinders, 255 heads, 63 sectors/track&lt;br /&gt;Warning: The partition table looks like it was made&lt;br /&gt;for C/H/S=*/240/63 (instead of 9729/255/63).&lt;br /&gt;For this listing I'll assume that geometry.&lt;br /&gt;Units = sectors of 512 bytes, counting from 0&lt;br /&gt;&lt;br /&gt;Device Boot    Start       End   #sectors  Id  System&lt;br /&gt;/mnt/image/simon-besmet.img1            63   8497439    8497377   b  W95 FAT32&lt;br /&gt;/mnt/image/simon-besmet.img2   *   8497440 156280319  147782880   7  HPFS/NTFS&lt;br /&gt;/mnt/image/simon-besmet.img3             0         -          0   0  Empty&lt;br /&gt;/mnt/image/simon-besmet.img4             0         -          0   0  Empty&lt;/span&gt;&lt;/blockquote&gt;Next, we need to calculate the actual starting point of the partition. The #sector number is in sectors, which contain 512 bytes. So in this case, the starting point of the NTFS partition is 8497440 x 512 = &lt;span class="Apple-style-span" style="font-weight: bold; "&gt;4350689280&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;To mount the image, enter the following command, using the calculated offset:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mount -o loop,offset=4350689280 /mnt/image/disk_image.dd /mnt/disk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Source:&lt;br /&gt;&lt;br /&gt;http://lists.samba.org/archive/linux/2005-April/013444.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-51193972817189284?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/51193972817189284/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=51193972817189284' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/51193972817189284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/51193972817189284'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/01/mounting-file-system-from-disk-image.html' title='Mounting a file system or partition from a disk image'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2263949025845592398</id><published>2010-01-02T19:12:00.000-08:00</published><updated>2010-01-02T19:21:50.846-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux hard disk drive temperature smartmontools script colour  layout  graphic representation'/><title type='text'>Linux: show graphical layout of disk temperatures</title><content type='html'>To get a visual representation of hard drive temperatures, I wrote a small script. The output of this script looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/drivetempcolour.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 130px; height: 82px;" src="http://members.multiweb.nl/nan1/img/drivetempcolour.jpg" alt="" border="0" /&gt;&lt;/a&gt;This output is tailored to the exact disk lay-out of my storage server.  However,  it is also usable for other servers. You have to edit the lay-out depending on the system.&lt;br /&gt;&lt;br /&gt;This script assumes that you have smartmontools installed on your system. It uses smartctl to obtain the drive temperatures.&lt;br /&gt;&lt;br /&gt;The script can be found &lt;a href="http://members.multiweb.nl/nan1/got/show-hdd-temp.sh"&gt;here&lt;/a&gt; or &lt;a href="http://members.multiweb.nl/nan1/got/show-hdd-temp.tgz"&gt;here in tgz format&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2263949025845592398?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2263949025845592398/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2263949025845592398' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2263949025845592398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2263949025845592398'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2010/01/linux-show-graphical-layout-of-disk.html' title='Linux: show graphical layout of disk temperatures'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5775915931838925015</id><published>2009-12-22T11:12:00.000-08:00</published><updated>2009-12-22T11:31:33.011-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data recovery gpart linux partition search'/><title type='text'>Recovering a lost partition using gpart</title><content type='html'>Even today people do not understand how important it is for the safety of your data to make backups. I was asked to perform some data recovery on a hard drive of an old computer, which still contained important documents and photo's.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first thing I did was to make a disk image with ddrescue. I always work with the image and not with the original drive, to prevent any risk of accidentally messing things up for good. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ddrescue -r 2 -v if=/dev/sdf of=/storage/image/diskofperson.dd bs=1M&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, I tried using gparted on this file but got this error:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Welcome to GNU Parted! Type 'help' to view a list of commands.&lt;/div&gt;&lt;div&gt;(parted) p                                                                &lt;/div&gt;&lt;div&gt;Error: /storage/image/diskofperson.dd: unrecognised disk label                  &lt;/div&gt;&lt;div&gt;(parted) quit   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also fdisk -l didn't work: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disk /storage/image/diskofperson.dd doesn't contain a valid partition table&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It seemed that the partition table was gone. I used the utility testdisk to recover this partition, to no avail. Why this tool didn't work is beyond me. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I found a very old utility called 'gpart' that just searches a disk for existing partitions. I just want to know the starting offset of the relevant partition.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I ran:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;gpart -g /storage/image/diskofperson.dd&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And I got nothing useful, although a partition was found:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Begin scan...&lt;/div&gt;&lt;div&gt;Possible partition(DOS FAT), size(57255mb), offset(0mb)&lt;/div&gt;&lt;div&gt;End scan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I ran the command again with more verbosity:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;gpart -g /storage/image/diskofperson.dd&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;&lt;div&gt;Begin scan...&lt;/div&gt;&lt;div&gt;Possible partition(DOS FAT), size(57255mb), offset(0mb)&lt;/div&gt;&lt;div&gt;   type: 011(0x0B)(DOS or Windows 95 with 32 bit FAT)&lt;/div&gt;&lt;div&gt;   size: 57255mb #s(117258372) s(63-117258434)&lt;/div&gt;&lt;div&gt;   chs:  (1023/255/0)-(1023/255/0)d (0/0/0)-(0/0/0)r&lt;/div&gt;&lt;div&gt;   hex:  00 FF C0 FF 0B FF C0 FF 3F 00 00 00 84 38 FD 06&lt;/div&gt;&lt;div&gt;End scan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This time I got something useful. The s(63-117258434) part shows the starting sector, which is 63. A sector is 512 bytes, so the exact starting offset of the partition is 32256.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So to mount this partition, just issue:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;mount -o loop,ro,offset=32256 /storage/image/diskofperson.dd /mnt/recovery&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And voilá, access to the filesystem has been obtained.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/storage/image/jdiskofperson.dd on /mnt/recovery type vfat (ro,loop=/dev/loop0,offset=32256)&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5775915931838925015?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5775915931838925015/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5775915931838925015' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5775915931838925015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5775915931838925015'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/12/recovering-lost-partition-using-gpart.html' title='Recovering a lost partition using gpart'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5505798647368986253</id><published>2009-12-20T07:18:00.000-08:00</published><updated>2009-12-20T07:34:21.211-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian wake on lan wol realtek r8168 r8169'/><title type='text'>Wake On Lan not working with realtek r8168 card</title><content type='html'>After messing around with different kernels on Debian Lenny, I noticed that my system did no longer respond to WOL packets. The system is using an on-board Realtek R8168 chip which supports wake on lan. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After searching and reading i found the problem. The system is using an r8168 chip, but the driver that is loaded by Linux is the r8169 driver. If the r8168 driver is loaded, as it should be, then WOL is working again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;See also &lt;a href="https://bugs.launchpad.net/linux/+bug/160413"&gt;this information&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The trick is to blacklist the r8169 module. To do so, edit the /etc/moprobe.d/blacklist file and add a line reading 'blacklist r8169'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To make &lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;this&lt;/span&gt; permanent, issue the following commands as root or with sudo: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Courier"&gt;depmod -a&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Courier"&gt;mkinitramfs -o /boot/initrd.img-$(uname -r) $(uname -r)&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Courier"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;After a reboot, wake on lan should be working again.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5505798647368986253?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5505798647368986253/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5505798647368986253' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5505798647368986253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5505798647368986253'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/12/problem-with-wake-on-lan-wol-and-r8168.html' title='Wake On Lan not working with realtek r8168 card'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1007081357822896626</id><published>2009-12-17T08:47:00.001-08:00</published><updated>2009-12-17T09:02:41.065-08:00</updated><title type='text'>Shunit2, unit testing for shell scripts</title><content type='html'>This may be of interest to people who are as stupid as I am and write elaborate shell scripts instead of using a proper scripting language such as Python or Ruby. No I am deliberately not mentioning Perl here.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, testing is always an issue. With PPSS, I encountered many times that some change broke something in another place. Testing if some change screwed things up manually is just tedious and a pain. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As any person who is semi-serious about programming should have done already, I started to write some unit tests. For bash scripts, there is this unit test framework called &lt;a href="http://code.google.com/p/shunit2/"&gt;Sunit2&lt;/a&gt;. It takes some effort to write tests. But once you have written some tests and witness how the tests that passed before now fail after you changed some code is priceless. Because often, you would not have found the issue before a long time.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1007081357822896626?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1007081357822896626/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1007081357822896626' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1007081357822896626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1007081357822896626'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/12/shunit2-unit-testing-for-shell-scripts.html' title='Shunit2, unit testing for shell scripts'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7005521742424409750</id><published>2009-12-03T10:42:00.001-08:00</published><updated>2009-12-03T10:50:23.253-08:00</updated><title type='text'>Google DNS - what to think of it?</title><content type='html'>Google now provide an open DNS service. At first I was scared that they use their service to get information about users. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, their &lt;a href="http://code.google.com/intl/nl-NL/speed/public-dns/privacy.html"&gt;privacy statement&lt;/a&gt; tells us that no personal identifiable information is stored for longer than 48 hours. The permanent logs do not contain such information. The most notable information that is stored permanently is the requested domain. The other thing is that they record the location of the request on the city level.  And even that info is only stored for two weeks. After that, only a small random sample of info is stored for permanent storage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The main question is now: who do you trust more: Google or your ISP. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be honest, I think I trust Google more than my ISP. I don't think my ISP adheres to the same privacy policy.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7005521742424409750?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7005521742424409750/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7005521742424409750' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7005521742424409750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7005521742424409750'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/12/google-dns-what-to-think-of-it.html' title='Google DNS - what to think of it?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-4620621592383962984</id><published>2009-12-03T09:12:00.000-08:00</published><updated>2009-12-03T09:16:12.937-08:00</updated><title type='text'>Convert dos file to linux format wit vim</title><content type='html'>If you have some file that has been saved on a (Win)do(w)s host you may notice that all lines end with ^M.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To fix this, you can use the tool dos2unix. If however this tool is not at your disposal, you may have a problem. If vim is available, you do not have a problem:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The trick is to delete all occurances of ^M with this line:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;:%s/ctrl-v ctrl-m//g&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This will look like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;:%s/^M//g&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just save the file and you're done.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-4620621592383962984?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/4620621592383962984/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=4620621592383962984' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4620621592383962984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4620621592383962984'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/12/convert-dos-file-to-linux-format-wit.html' title='Convert dos file to linux format wit vim'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7386869818166316586</id><published>2009-11-30T05:03:00.000-08:00</published><updated>2009-11-30T05:23:27.898-08:00</updated><title type='text'>Which file system for a large storage array under Linux?</title><content type='html'>There are many file systems available under Linux, however only a few of them can be used for a large storage array. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am assuming that you want to create a single file system. I don't care if you use LVM or other layers beneath, this is about which file system to use. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will discuss each file system in short.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- EXT3&lt;/div&gt;&lt;div&gt;Old and trusted. but slow, wastes tremendous amounts of free space and has an 16 TB limit. Not recommended. At 16 TB, you will lose significant amounts of free space.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- JFS&lt;/div&gt;&lt;div&gt;Developed by IBM, it seems an ok file system and it supports 16+ TB file systems. However it is abandoned by IBM and does not seem to have a future. The reason I did not choose JFS is because it does not seem to be in wide spread use and therefore, and I do not want to take any risk in this regard. I might encounter some rare bug because I would be one of the few Linux jfs users that creates 16+ TB file systems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- XFS&lt;/div&gt;&lt;div&gt;A file systems that works. Supports 16+ TB file systems and is widely used. It has some drawbacks, such as data loss (files are zeroed)  when something goes wrong (powerloss) however, nobody that is interested in creating a large filesystem is going to run the box without a UPS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Reiserfs&lt;/div&gt;&lt;div&gt;The guy who designed and wrote it is in jail for killing his wife. Not much future here, i suppose. Also, it does not support file systems bigger than 16 TB.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Reiser4&lt;/div&gt;&lt;div&gt;Some new version of Reiserfs which is still not available as part of a stable Linux kernel.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- EXT4&lt;/div&gt;&lt;div&gt;Ext3 upgraded to current days need, although with a draw back. On paper, it supports 16 TB+ &lt;/div&gt;&lt;div&gt;file system, but currently, in practice, it does not. I found out the hard way and had to reformat my array with another file system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My choice:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Honestly, there is not much of an option currently under Linux other than XFS. In the past, I had some quirks with file names that contained strange characters causing trouble. However, I never lost any data whatsoever. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Currently, what I'm really hoping for is ZFS for Linux or a stable version of btrfs. These are truly modern day file systems with support for snapshots, etc. But this is still a dream. Until then, I will stick with XFS. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7386869818166316586?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7386869818166316586/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7386869818166316586' title='3 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7386869818166316586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7386869818166316586'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/which-file-system-for-large-storage.html' title='Which file system for a large storage array under Linux?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2003726526763978748</id><published>2009-11-30T03:44:00.000-08:00</published><updated>2009-11-30T03:57:27.796-08:00</updated><title type='text'>Tip of the day: Scrolling in GNU screen</title><content type='html'>Just the answer: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By default, on Debian, the scroll back buffer is about 1K lines. This can be changed in the .screenrc file in your home directory. The following example sets the scroll back buffer to 5K lines. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;defscrollback 5000&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Set the scroll back buffer on the fly with:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First enter the command line mode:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ctrl + a, :&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then enter:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;scrollback 2000&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To set the scroll back buffer to 2000 lines.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To actually scroll back, the actuall stuff why you may be reading this post:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First enter copy mode:&lt;/div&gt;&lt;div&gt;ctrl + a, [&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Use standard VI controls to navigate through the lines (h j k l).&lt;/div&gt;&lt;div&gt;Use ctrl+b to scroll a full page up&lt;/div&gt;&lt;div&gt;Use ctrl+f to scroll a full page down.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For more details, please visit&lt;a href="http://www.samsarin.com/blog/2007/03/11/gnu-screen-working-with-the-scrollback-buffer/"&gt; this link&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2003726526763978748?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2003726526763978748/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2003726526763978748' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2003726526763978748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2003726526763978748'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/tip-of-day-scrolling-in-gnu-screen.html' title='Tip of the day: Scrolling in GNU screen'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-194062595676608766</id><published>2009-11-22T10:29:00.001-08:00</published><updated>2009-11-22T11:27:09.941-08:00</updated><title type='text'>Gzip with parallel compression support: pigz</title><content type='html'>The speed at which files are compressed with gzip is currently almost always determined by the speed of the CPU. However, standard unix gzip is single-threaded and only uses a single CPU (core). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, the maintainer of the zlib library has released&lt;a href="http://www.zlib.net/pigz/"&gt; 'pigz' or 'pig-zee' &lt;/a&gt;whichs adds just that: support for parallel compression. This dramatically improves the speed at which a file can be gzipped. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this example, a 3 GB compressable file is gzipped:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gzip: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;root@Core7i:~# time gzip pigz.bin&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;real&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;1m58.994s&lt;/div&gt;&lt;div&gt;user&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;1m56.480s&lt;/div&gt;&lt;div&gt;sys&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;0m1.820s&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Pigz:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;root@Core7i:~# time pigz pigz.bin&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;real&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0m31.524s&lt;/div&gt;&lt;div&gt;user&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;2m54.890s&lt;/div&gt;&lt;div&gt;sys&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;0m2.900s&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This simple and a bit unscientific example shows a 400% speed improvement. Since the Core i7 has four real cores, this shows that pigz scales nicely.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-194062595676608766?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/194062595676608766/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=194062595676608766' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/194062595676608766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/194062595676608766'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/gzip-with-parallel-compression-support.html' title='Gzip with parallel compression support: pigz'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-249281400867489109</id><published>2009-11-22T07:19:00.000-08:00</published><updated>2009-11-22T07:42:30.314-08:00</updated><title type='text'>How to determine which process causes IO ?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;There is a nifty little program called 'iotop'. Iotop is part of Debian or Ubuntu and can be installed with a simple apt-get. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you have determined with 'top' that the system is waiting on IO-access, It is nice to know&lt;/div&gt;&lt;div&gt; which process is responsibe for this IO. Therefore, you want a list of processes, just like top provides, but instead of CPU or RAM usage, it shows the IO a process is generating. This is exactly what 'iotop' provides.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is ideal when troubleshooting performance problems caused by heavy IO.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://guichaz.free.fr/iotop/"&gt;http://guichaz.free.fr/iotop/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 334px; height: 220px;" src="http://guichaz.free.fr/iotop/iotop_small.png" border="0" alt="" /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-249281400867489109?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/249281400867489109/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=249281400867489109' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/249281400867489109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/249281400867489109'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/how-to-determine-which-process-causes.html' title='How to determine which process causes IO ?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-685004950214768765</id><published>2009-11-22T04:52:00.000-08:00</published><updated>2009-11-22T05:11:56.854-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wpa cowpatty four-way handshake crack aircrack'/><title type='text'>Making cowpatty recognize a four-way handshake</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: nowrap;font-size:medium;"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;I was unable to get cowpatty working with a packet capture that actually &lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;contains a four-way handshake of a WPA session.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;I got it working like this:&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;First, download cowpatty &lt;a href="http://www.willhackforsushi.com/?page_id=50"&gt;4.6 right here&lt;/a&gt;, within the source directory of cowpatty.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;Extract cowpatty and a&lt;a href="http://proton.cygnusx-1.org/~edgan/cowpatty/cowpatty-4.6-fixup14.patch"&gt;pply this patch&lt;/a&gt; using &lt;a href="http://forum.aircrack-ng.org/index.php?PHPSESSID=9e79f0ff83630bbe6c870b1a9aeef63c&amp;amp;topic=5867.0"&gt;these instructions&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;Then build couwpatty just with 'make' and 'make install'.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;I created a test setup with a known password. However, this patched &lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;version did not find the passphrase using a dictionary file.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;I then used genpmk to create a precomputed hash database like this:&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;genpmk -f ./aircrack-ng-1.0/test/password.lst -d hashes -s default&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;Please note that I added the correct passphrase to this password list to &lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;make sure that cowpatty works.&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;Finally, using the -d option on the hash file, cowpatty &lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px Georgia"&gt;managed to crack the PSK.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-685004950214768765?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/685004950214768765/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=685004950214768765' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/685004950214768765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/685004950214768765'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/making-cowpatty-recoginse-your-four-way.html' title='Making cowpatty recognize a four-way handshake'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-690869875831851764</id><published>2009-11-18T13:09:00.000-08:00</published><updated>2009-11-19T14:00:15.987-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux apcupsd ups script power usage'/><title type='text'>Monitor power usage with your UPS</title><content type='html'>If a system is connected to a UPS (Uninterruptible Power Supply), it is possible to determine how much power it consumes. For this purpose, I wrote a small script: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Host:~# ./ups.sh&lt;/div&gt;&lt;div&gt;---------------------------------&lt;/div&gt;&lt;div&gt;UPS model: Back-UPS RS 1200 LCD &lt;/div&gt;&lt;div&gt;APC model: Back-UPS RS 1200 LC&lt;/div&gt;&lt;div&gt;----------------------------------&lt;/div&gt;&lt;div&gt;Capacity:         720 Watt&lt;/div&gt;&lt;div&gt;Load:              18 Percent&lt;/div&gt;&lt;div&gt;Usage:            129 Watt&lt;/div&gt;&lt;div&gt;Time left:         33 Minutes&lt;/div&gt;&lt;div&gt;Status:        ONLINE &lt;/div&gt;&lt;div&gt;----------------------------------&lt;/div&gt;&lt;div&gt;Host:~# ./ups.sh &lt;/div&gt;&lt;div&gt;----------------------------------&lt;/div&gt;&lt;div&gt;UPS model: Back-UPS RS 1200 LCD &lt;/div&gt;&lt;div&gt;APC model: Back-UPS RS 1200 LC&lt;/div&gt;&lt;div&gt;----------------------------------&lt;/div&gt;&lt;div&gt;Capacity:         720 Watt&lt;/div&gt;&lt;div&gt;Load:              19 Percent&lt;/div&gt;&lt;div&gt;Usage:            136 Watt&lt;/div&gt;&lt;div&gt;Time left:         22 Minutes&lt;/div&gt;&lt;div&gt;Status:        ONBATT &lt;/div&gt;&lt;div&gt;----------------------------------&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;This script assumes that: &lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;You are running a unix&lt;/li&gt;&lt;li&gt;You run apcupsd&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;The script can be downloaded &lt;a href="http://members.multiweb.nl/nan1/got/ups.sh"&gt;here&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-690869875831851764?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/690869875831851764/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=690869875831851764' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/690869875831851764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/690869875831851764'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/monitor-power-usage-with-your-ups.html' title='Monitor power usage with your UPS'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5062840538342273842</id><published>2009-11-14T05:07:00.000-08:00</published><updated>2009-11-16T12:00:19.576-08:00</updated><title type='text'>24 TB based on Norco RPC-4020 and Linux Software RAID</title><content type='html'>Just a quick link: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some person build basically the same setup, including identical controller, providing 28 TB of storage: &lt;a href="http://www.hardforum.com/showthread.php?t=1393939&amp;amp;page=25"&gt;Take a look here&lt;/a&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;The main difference is that this person uses 1.5 TB disk, thus achieving more storage.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5062840538342273842?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5062840538342273842/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5062840538342273842' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5062840538342273842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5062840538342273842'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/28-tb-based-on-norco-rpc-4020-and-linux.html' title='24 TB based on Norco RPC-4020 and Linux Software RAID'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3499622604675401976</id><published>2009-11-11T13:11:00.000-08:00</published><updated>2009-11-27T16:19:54.551-08:00</updated><title type='text'>Debian Linux Preseeding - an installation framework</title><content type='html'>&lt;div&gt;Look Ma! &lt;/div&gt;&lt;div&gt;No hands!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;just watching a system PXE-boot and install itself into a fully operational system is fun. PXE boot and preseeding is not enough however to accomplish this. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By itself, preseeding only installs a basic operating system. Next, you need to configure all sorts of things and services, install additional software, create accounts. etc. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So there is a whole post-install process that you also need to automate. Preseeding by itself, as I understand it, does not seem to be able to do that for you. But you can execute commands at the end of the installation. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, I'd like to point out that the alternative to Debian preseeding is, in my opinion, &lt;a href="http://www.informatik.uni-koeln.de/fai/"&gt;FAI or Fully Automated Installation&lt;/a&gt;. I want to make clear that this is a product with a long history that may better suit your needs. I do not use FAI because I find it way to complicated. It seems very powerful to me, but I don't understand it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I understand preseeding and shell scripts. Putting commands that I would otherwise execute manually are now performed by some shell script. And I think every administrator understands shell scripts and will be able to automate installation with almost no effort by just executing a bunch of shell scripts that install various additional components. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wrote a small installation 'framework' that can be used in conjunction with preseeding to truly fully automate your installation, without the requirement of learning complex stuff like FAI.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, it is not available yet on-line, but as soon as I find the time, a new project will be started and this small installation framework will be available with some example preseed configuration. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In day-to-day operations I use this script to install servers and laptops. Once you see it you will like it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3499622604675401976?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3499622604675401976/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3499622604675401976' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3499622604675401976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3499622604675401976'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/debian-linux-preseeding-installation.html' title='Debian Linux Preseeding - an installation framework'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5700773255435392269</id><published>2009-11-08T17:21:00.000-08:00</published><updated>2009-11-08T18:00:04.983-08:00</updated><title type='text'>Linux Mac Mini - temperature monitoring with lm-sensors</title><content type='html'>&lt;div&gt;This post is about getting temperature monitoring to work with a Mac Mini running Linux.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Using Debian Lenny, out of the box, lm-sensors is not working. No sensors can be found. This is how temperature monitoring and fan speed monitoring can be made to work:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;modprobe applesmc &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you run "sensors-detect" after this, and do a:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;modprobe coretemp&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then "sensors" will give you ouput like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Mini:/sys/devices/platform# sensors&lt;/div&gt;&lt;div&gt;&lt;div&gt;applesmc-isa-0300&lt;/div&gt;&lt;div&gt;Adapter: ISA adapter&lt;/div&gt;&lt;div&gt;Master :    2151 RPM  (min = 1500 RPM)&lt;/div&gt;&lt;div&gt;temp1:       +83.2°C                                    &lt;/div&gt;&lt;div&gt;temp2:       +68.0°C&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;                    &lt;/div&gt;&lt;/div&gt;&lt;div&gt;Some software to control the fan speed:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://stargate.solsys.org/mod.php?mod=faq&amp;amp;op=extlist&amp;amp;topicid=27&amp;amp;expand=yes#118"&gt;http://stargate.solsys.org/mod.php?mod=faq&amp;amp;op=extlist&amp;amp;topicid=27&amp;amp;expand=yes#118&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5700773255435392269?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5700773255435392269/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5700773255435392269' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5700773255435392269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5700773255435392269'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/linux-mac-mini-temperature-monitoring.html' title='Linux Mac Mini - temperature monitoring with lm-sensors'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7875381255916681983</id><published>2009-11-08T12:57:00.000-08:00</published><updated>2009-11-08T13:14:15.453-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac mini boot after power failure power loss reboot'/><title type='text'>Linux on Mac Mini  - boot after power failure</title><content type='html'>When using a Mac Mini as a server or router, it is very nice if the machine automatically boots if a power failure has occurred.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;User chirhoxi on the ubuntu forum found out how this can be achieved:&lt;span class="Apple-style-span"   style="  ;font-family:Verdana, Arial, Tahoma;font-size:12px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=1209576"&gt;http://ubuntuforums.org/showthread.php?t=1209576&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basically you need one of these commands:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Original Mac Mini:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Verdana, Arial, Tahoma;font-size:12px;"&gt;setpci -s 00:03.0 0xa4.b=0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;Newer Mac Mini:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;setpci -s 00:03.0 0x7b.b=19&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Verdana, Arial, Tahoma;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:12px;"&gt;These commands might not work with the latest Mac Minis but the thread discusses how to determine for yourself what the appropriate command is.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7875381255916681983?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7875381255916681983/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7875381255916681983' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7875381255916681983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7875381255916681983'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/mac-mini-on-linux-boot-after-power.html' title='Linux on Mac Mini  - boot after power failure'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6228547819485680418</id><published>2009-11-01T15:22:00.000-08:00</published><updated>2009-11-02T13:11:03.554-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debian Linux Lenny Mac Mini EFI Disk utility Master Boot Record'/><title type='text'>How to run Debian Linux on an Intel based Mac Mini</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The Mac Mini is just a gorgeous device. It is beautiful, small, silent, powerfull yet energy efficient. When idle, it uses around 20 watts. I'm using one of the first Intel-based Minis with an Intel Core Duo chip, running at 1.6 Ghz.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I want to use this mini as an expensive router and download host. I could have used something embedded, such as one of those router boxes that costs about 70 euros, but no, I want to do some more with my router, such as downloading, etc. It is the only device in my house that is allowed to run 24/7 so it has to be a bit more powerful if I want more than just routing. I know that this mini was like 600 euros or something back in the days, and that is quite some money to spend on something that is now only a router. However, when I was still running Mac OS X on it, I didn't do much more with it than I will now, it will actually do more. &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am assuming that you want to run Linux exclusively on the Mac and that Mac OS X will be wiped off. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To get this puppy running Debian Linux (Lenny), you need to first boot the Mac with the (Snow) Leopard OS X boot CD and startup the diskutilily. &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You need to create at least two partitions: one for the root file system and one for swap. The most important step is to select 'options' under the partition layout screen, and select Master Boot Record partitioning instead of the other 2 options. Do NOT use GUID or Apple Partition Map.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 234px;" src="http://2.bp.blogspot.com/_1tZXi-PpPDE/Su4bTt2vZtI/AAAAAAAAAAc/8TGfUprsHvY/s320/mbr.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5399283028804462290" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, boot your regular Debian Linux boot CD, I use the regular network installation CD. When you get to the partitioning screen, do NOT auto-partition the hard disk. Just reconfigure the existing partitions you just made using Diskutility. So the large partition will be configured as "/" and made bootable. The small partition must be configured as swap. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After the installation finishes, just install GRUB in the MBR and reboot. If all went alright, you will see a non-blinking folder on a gray background for a couple of seconds, after which Linux will boot. If you get a blinking gray folder with a question mark, something went wrong. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It seems that if configured properly, after the EFI boot mechanism fails to find a system folder on some Mac partition, the legacy BIOS emulation seems to kick in, and star to search for something to boot. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Mini has only one network card, so another one is necessary to run it as a router. I bought some no brand USB2 to 100 MBIT NIC (Bus 005 Device 003: ID 9710:7830 MosChip Semiconductor MCS7830 Ethernet) which seems to run smoothly. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE: According to Campr, it is possible to replace the Wireless mini PCI-e card with a dual &lt;a href="http://www.globalamericaninc.com/p1507790/1507790_-__Mini-PCI_Express_Dual_Gigabit_LAN_Module/product_info.html"&gt;gigabit card&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I guess you will need to mod the Mini but it will allow true gigabit speeds on all interfaces.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6228547819485680418?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6228547819485680418/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6228547819485680418' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6228547819485680418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6228547819485680418'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/11/how-to-run-debian-linux-on-intel-based.html' title='How to run Debian Linux on an Intel based Mac Mini'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1tZXi-PpPDE/Su4bTt2vZtI/AAAAAAAAAAc/8TGfUprsHvY/s72-c/mbr.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5508086497422014697</id><published>2009-10-30T13:09:00.001-07:00</published><updated>2009-10-30T13:35:28.459-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='default ssl key vendor-supplied key decrypt ssl wireshark'/><title type='text'>The security risk of vendor-supplied default SSL certificates</title><content type='html'>Often, software comes supplied with some default SSL certificate, for testing purposes, such as those 'snake oil' certificates (they are called snake oil certificates for a reason). In practice, I often encounter usage of such certificates. People may seem to think that as long SSL is used, authentication and thus credentials are safe, but nothing could be further from the truth.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you encounter a service that uses a default vendor-supplied SSL certificate, decryption of communication is trivial. Just obtain a copy of this vendor software and grab the private key. This private key can be loaded into Wireshark to decrypt any captured SSL traffic that has been encrypted with this certificate. Please read &lt;a href="http://wiki.wireshark.org/SSL"&gt;this link&lt;/a&gt; about decrypting SSL with Wireshark.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So it is important to always replace default SSL certificates with a freshly generated, no matter if it is self-signed or not.&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5508086497422014697?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5508086497422014697/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5508086497422014697' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5508086497422014697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5508086497422014697'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/10/risk-of-vendor-supplied-default-ssl.html' title='The security risk of vendor-supplied default SSL certificates'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-742908448240496773</id><published>2009-10-05T12:12:00.000-07:00</published><updated>2010-08-11T02:28:43.935-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blu ray dead'/><title type='text'>Blu Ray is dead</title><content type='html'>HD-DVD may be dead, but Blu Ray is just as dead. The whole concept of optical media is dead. Honestly, who is still burning CD's or DVD's nowadays? (If you are, why for Christ sake? I can't think of a single good reason) And at 10 euros ($100) for a single Blu Ray disk, you must be totally bonkers to buy one of them recorders. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I mean, let's face it, CD's were really cool in an age where 650 MB was way more than the 40 or 80 MB hard drive in your computer. It made a difference. That was already less so with a DVD, with a capacity of 'only' 4 GB. However, in the early years of the DVD, you could backup your entire hard drive on two, maybe three disks, since a hard drive averaged around 4 to 10 GB at that time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then finally came Blu Ray and HD-DVD. A whopping 25 GB on a disk. No shit!. You mean, like I need no less than 40 Blu Ray disks (400 euros) and an eon of burning disks to backup one of my 1 TB hard drives that cost me like 70 euros?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What must they have been thinking when they developed Blu Ray? As a backup medium it is useless, but it was ofcourse intended as a carrier for movies, I know. But why should I go outside, through the cold and the rain to go to some shitty video store that only has last years block busters? Why bother with 40 Mbit downstream and the Internet at your disposal? Downloading a movie will take me as much time as going to the video store and selecting something so dreadful even the DVD player will refuse to play it. What else is there to choose from. The Internet provides us with the most rare and obscure but most beautifull movies you ever saw.  And the more main stream movies can be obtained in full HD 1080p. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Current Internet connections are of such quality, that physical media such as Blu Ray disk are becomming irrelevant. A normal DVD is downloaded within 20 minutes at 4 MB/s. And when Internet connections will reach 100 Mbit or 12 MB/s, even a HD 1080p movie will be downloaded within the hour. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Storage is not a problem. If you can store 40 HD movies on a single 1 TB disk, then you will pay 1,5 euros for each movie. Beats any Blu Ray disk in price and time. If you even care about them that much, buy or build a NAS and store them on some redundant storage. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In time people will do with DVDs and CDs what most people already do with CDs: rip them to some format your computer understands (to transfer it to your MP3 player) and get rid of that CD that will become scratched and useless even if you don't touch it. No, you don't want to transcode your HD movies to some iPod or something, but you may want to stream it to  your media player in the living room? A jukebox full of films, just as you have a jukebox full of music. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Give the CD, DVD and Blu Ray a little push, and let them fall into the grave. It is an outdated technology for a problem that existed 10 years ago. The Internet has made it irrelevant. Be done with it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-742908448240496773?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/742908448240496773/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=742908448240496773' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/742908448240496773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/742908448240496773'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/10/blu-ray-is-dead.html' title='Blu Ray is dead'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8931294175498479965</id><published>2009-09-26T12:32:00.000-07:00</published><updated>2009-09-26T12:47:26.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash inter process communication asynchronous FIFO'/><title type='text'>PPSS version 2.30 now operates asynchronous</title><content type='html'>&lt;div&gt;If you background a bash or shell process, how do you determine if it has finished? Since inter process communication is not possible using shell scripts, people often refer to while loops or other polling mechanisms to determine if some process has stopped. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, the one player that knows best if a process has finished is the process itself. So if only this process could tell the parent or other process about this...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution is using a FIFO or 'pipe'. A listener process reads the pipe and executes a command for every message received through this pipe. This was already build-in into PPSS. However, PPSS had this dirty while loop that polls every x seconds to determine if there are still running workers. If not, PPSS finishes itself. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, while loops and polling mechanisms are evil, dirty and bad. The nicest solution is to make PPSS fully asynchronous. To achieve this, every job must tell PPSS that is has finished. PPSS already has this listening process that listens to the pipe for commands. If this channel is used by workers to communicate that a worker is finished, PPSS will know when all workers are finished. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This makes PPSS a lot faster and responsive. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8931294175498479965?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8931294175498479965/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8931294175498479965' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8931294175498479965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8931294175498479965'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/09/ppss-version-230-now-operates.html' title='PPSS version 2.30 now operates asynchronous'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5590646460581443542</id><published>2009-09-20T04:19:00.000-07:00</published><updated>2009-09-20T04:32:50.448-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laptop netbook router battery screen keyboard ion atom'/><title type='text'>Laptop or netbook as router?</title><content type='html'>If you want a router for distribution of internet to your computers at home, there are several options. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. buy some embedded device from Linksys, Draytek, Asus, 3com, ZyXtel or netgear&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This type of hardware is cheap, economical, and gets you up and running in a few minutes. The downside is that you can't do much else with these things. Yes, there are many custom firmwares, which allow you more freedom, but the hardware is often the limiting factor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. convert a regular PC into a router&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want more than just routing, building your own router using a(n) (old) PC is the preferred course of action. The downside is that a PC often uses more 'juice' than an embedded device. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, those new Atom-based PC's may be a very nice option. Just add a second network card, though an USB-port and you have something far more flexible than an embedded router.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. convert a laptop into a router&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It sounds a bit strange and silly at first to use a laptop as a router, but it makes sense when you think of it. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;a. It is economical in terms of power usage&lt;/div&gt;&lt;div&gt;b. It has a build-in UPS called a 'battery'&lt;/div&gt;&lt;div&gt;c. It has a build-in screen and keyboard&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All these things are an advantage regarding option 2. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nowadays you can have a netbook for only 300 euros. It is more expensive than an embedded device, but almost as economical and provides much more performance and flexibility.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've been running an old laptop as a router for 6 months without problems. Unfortunately, the disk died due to old age, but that can happen to any computer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5590646460581443542?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5590646460581443542/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5590646460581443542' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5590646460581443542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5590646460581443542'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/09/laptop-or-netbook-as-router.html' title='Laptop or netbook as router?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1814634398762089875</id><published>2009-09-19T12:17:00.000-07:00</published><updated>2009-09-23T11:22:26.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='energy efficient home server nas htpc router 24/7 wake on lan wol'/><title type='text'>How to build an energy efficient computer for home use</title><content type='html'>&lt;div&gt;In short:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;1. Buy whatever you fucking want. &lt;div&gt;2. Turn the fucking thing off when you're not using it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Long:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;People are spending a lot of time building an energy efficient home computer, that can act as an HTPC, NAS, or whatever. It must consume as little power as possible, because it it will be on 24/7. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why the fuck do you want to leave a system on 24/7 at home? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unless you're unemployed you will be at work most of the time. And during that time, this machine is doing absolutely nothing. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There may only be one system that stays on 24/7 and that is your router, either some embedded router thingy or something based on a low-power PC, but that's about it. Turn every thing else off. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A machine that does 200 Watt idle that is only turned on when necessary will be more energy efficient than your specially build 40 watt NAS  or whatever it is that is running 24/7. Nothing can beat a system that is turned off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you need a system, just use wake-on-lan or WOL to turn the damn thing on. It will be ready in about 2 or 3 minutes and then you can do whatever you want.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fine if you leave a system on that is downloading some stuff during the night or day, but after the download has finished, turn the damn thing off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're honest with yourself and really think about it, there is no need to keep a system on for 24/7.  I know you may come up with excuses, but remember that you still can use your router for that. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;By the way, if you're searching for a really energy efficient computer, buy a Mac Mini. Although quite expensive if you ask me, the're doing 30 watt in idle and almost nothing when sleeping. And if a mac is asleep, it can be woken with WOL and is up in seconds. They make an excelent download server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[EDIT]&lt;/div&gt;&lt;div&gt;There is also the option of S3 or S4 under Linux: suspend to ram or disk. However, your mileage may vary. If it works for you your system will be down and up in seconds. However, my experience is that it very much depends on your hardware if this will work. My Highpoint cards do not seem to like it, my array does not awake and the screen of the system stays blank.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If it works, it is a faster solution than just to turn the system off and on with WOL. My experience is that is seems not that robust. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1814634398762089875?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1814634398762089875/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1814634398762089875' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1814634398762089875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1814634398762089875'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/09/how-to-build-energy-efficient-computer.html' title='How to build an energy efficient computer for home use'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1792336350195457805</id><published>2009-09-14T13:45:00.000-07:00</published><updated>2009-09-14T15:31:27.653-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transcode'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO'/><category scheme='http://www.blogger.com/atom/ns#' term='iPod touch'/><category scheme='http://www.blogger.com/atom/ns#' term='VIDEO_TS'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><category scheme='http://www.blogger.com/atom/ns#' term='Handbrake'/><category scheme='http://www.blogger.com/atom/ns#' term='DVD'/><category scheme='http://www.blogger.com/atom/ns#' term='convert'/><title type='text'>Automatic conversion of DVD to iPhone and ipod touch format</title><content type='html'>If you have some DVD's that you want to convert to your iPhone or iPod touch, there is already a nice solution called 'Handbrake'. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, if you want to convert multiple DVD's and don't want to spend time manually adding each movie or episode to the queue, I might have some solution for you. I've written a script that uses HandBrakeCLI, the command-line version of Handbrake. This script is called "dvd2iphone" and can be downloaded &lt;a href="http://members.multiweb.nl/nan1/got/dvd2iphone.tgz"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This script uses the VIDEO_TS folder or even the ISO image as input, and then processes all movies or episodes that are found, which are automatically named.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be able to use this script, you need the command-line (CLI) version of Handbrake, which can be found &lt;a href="http://handbrake.fr/?article=download"&gt;here&lt;/a&gt;. Place this binary on your system and place the dvd2iphone script in the same directory. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Usage:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;  ./dvd2iphone.sh&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:11px;"&gt;  (INPUT)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: auto;"&gt;&lt;span class="Apple-style-span"   style="font-family:'Lucida Grande', serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:11px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;for example:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  ./dvd2iphone.sh /cdrom/VIDEO_TS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  ./dvd2iphone.sh casablanca.iso&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This script can only process a single VIDEO_TS folder or single ISO at a time. However, you can create a text file containing a list of to-be-processed files and use &lt;a href="http://code.google.com/p/ppss/"&gt;PPSS&lt;/a&gt; on this list, in combination with the dvd2iphone script to automatically process all the DVD's. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Warning; you might want to edit the HandBrake command in the script to select the correct audio track and to add subtitles.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please note that Handbrake can only use up to four cores to encode a single movie. If you have more then four cores available, it may be worthwile to run two instances of Handbrake simultaneously. PPSS is ideal for such a setup. Since my Core 7i 920 emulates 8 logical cores, I can encode two regular DVD's to the iPhone format at a framerate of arount 100 fps, for each DVD, which is 200 fps combined!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will also create another version of this script that will allow you to transcode your DVD's to mp4 format at the same resolution. This allows you to reduce the size of your video collection on disk considerably, without loss of quality.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Although Handbrake is available for Windows, you have to figure out yourself how to run a Bash script under Windows.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1792336350195457805?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1792336350195457805/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1792336350195457805' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1792336350195457805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1792336350195457805'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/09/automatic-conversion-of-dvd-to-iphone.html' title='Automatic conversion of DVD to iPhone and ipod touch format'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8242612797796148413</id><published>2009-09-12T16:53:00.000-07:00</published><updated>2009-09-12T17:05:26.759-07:00</updated><title type='text'>Visual representation of hard drives and their temperature</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;If you build a NAS with many drives, it may be of interest to you which drives get hot and where they are located in the chassis.  My Norco 4020 case has twenty drives in RAID 6, plus two operating system drives in RAID 1.  I wrote a script that shows me the temperature of each drive, positioned in such a way that it represents the actual physical location of the drive in the chassis:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt; -- 30 -- | -- 27 --&lt;/div&gt;&lt;div&gt;| 26 | 27 | 28 | 25 |&lt;/div&gt;&lt;div&gt;| 30 | 32 | 30 | 29 |&lt;/div&gt;&lt;div&gt;| 31 | 33 | 33 | 29 |&lt;/div&gt;&lt;div&gt;| 33 | 32 | 35 | 30 |&lt;/div&gt;&lt;div&gt;| 32 | 34 | 35 | 31 |&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;In this example, you can determine that the top drives seem to stay the coolest. The center and lower drives get hotter. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to use this script, you will have to change it for your own specific setup. You can get it &lt;a href="http://members.multiweb.nl/nan1/got/show-hdd-temp.tgz"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This visual representation would also be nice to identify which drive has failed and where it is located in the chassis.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8242612797796148413?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8242612797796148413/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8242612797796148413' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8242612797796148413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8242612797796148413'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/09/visual-representation-of-hard-drives.html' title='Visual representation of hard drives and their temperature'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6702728588198245157</id><published>2009-08-30T14:16:00.000-07:00</published><updated>2010-02-21T10:52:12.773-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vendor'/><category scheme='http://www.blogger.com/atom/ns#' term='type'/><category scheme='http://www.blogger.com/atom/ns#' term='manufacturer'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='model'/><category scheme='http://www.blogger.com/atom/ns#' term='motherboard'/><title type='text'>Linux: obtain motherboard model / type and vendor</title><content type='html'>If you want to know what motherboard is installed in a system, use the tool dmidecode: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dmidecode |  grep -e "Manufacturer\|Product" | head -n 4 | tail -n 2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result might be something like: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Manufacturer: ASUSTeK Computer INC.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Product Name: P5Q-EM DO&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Manufacturer: ASUSTeK Computer INC.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Product Name: P6T DELUXE&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; Manufacturer: ASUSTeK Computer INC.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Product Name: M2A-VM&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Manufacturer: Apple Computer, Inc.&lt;/div&gt;&lt;div&gt;Product Name: Mac-F4208EC8&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Manufacturer: Compaq&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Product Name: 0688h&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6702728588198245157?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6702728588198245157/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6702728588198245157' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6702728588198245157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6702728588198245157'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/08/linux-obtain-motherboard.html' title='Linux: obtain motherboard model / type and vendor'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3196336896342556303</id><published>2009-08-30T09:26:00.000-07:00</published><updated>2009-08-30T09:34:30.226-07:00</updated><title type='text'>lm-sensors: hardware monitoring with the w83627ehf module</title><content type='html'>&lt;div&gt;I have two systems that use the w83627ehf driver for hardware monitoring. However, if this driver is installed with a regular modprobe like: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;modprobe w83627ehf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result will be: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;FATAL: Error inserting w83627ehf (/lib/modules/2.6.28-1-amd64/kernel/drivers/hwmon/w83627ehf.ko): No such device&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I had this issue with the following mainboards: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Asus P5Q-EM DO (Core 2 duo)&lt;/div&gt;&lt;div&gt;Asus: P6T deluxe (Core 7i)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution is simple, as I found after googling for some time: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;modprobe w83627ehf  force_id=0x8860&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;w83627ehf-isa-0290&lt;/div&gt;&lt;div&gt;Adapter: ISA adapter&lt;/div&gt;&lt;div&gt;VCore:       +0.88 V  (min =  +0.00 V, max =  +1.74 V)   &lt;/div&gt;&lt;div&gt;in1:        +11.67 V  (min =  +0.00 V, max =  +5.49 V)   ALARM&lt;/div&gt;&lt;div&gt;AVCC:        +3.34 V  (min =  +0.40 V, max =  +0.03 V)   ALARM&lt;/div&gt;&lt;div&gt;3VCC:        +3.31 V  (min =  +1.15 V, max =  +0.58 V)   ALARM&lt;/div&gt;&lt;div&gt;in4:         +1.65 V  (min =  +0.54 V, max =  +0.22 V)   ALARM&lt;/div&gt;&lt;div&gt;in5:         +2.04 V  (min =  +0.71 V, max =  +0.11 V)   ALARM&lt;/div&gt;&lt;div&gt;in6:         +3.79 V  (min =  +0.10 V, max =  +2.30 V)   ALARM&lt;/div&gt;&lt;div&gt;VSB:         +3.38 V  (min =  +0.45 V, max =  +2.43 V)   ALARM&lt;/div&gt;&lt;div&gt;VBAT:        +3.30 V  (min =  +0.67 V, max =  +0.77 V)   ALARM&lt;/div&gt;&lt;div&gt;in9:         +0.00 V  (min =  +1.10 V, max =  +0.57 V)   ALARM&lt;/div&gt;&lt;div&gt;Case Fan:      0 RPM  (min =  104 RPM, div = 128)  ALARM&lt;/div&gt;&lt;div&gt;CPU Fan:       0 RPM  (min = 42187 RPM, div = 32)  ALARM&lt;/div&gt;&lt;div&gt;Aux Fan:       0 RPM  (min =  162 RPM, div = 128)  ALARM&lt;/div&gt;&lt;div&gt;fan4:          0 RPM  (min = 42187 RPM, div = 32)  ALARM&lt;/div&gt;&lt;div&gt;fan5:          0 RPM  (min = 42187 RPM, div = 32)  ALARM&lt;/div&gt;&lt;div&gt;Sys Temp:    +40.0°C  (high =  +4.0°C, hyst =  +0.0°C)  ALARM  sensor = thermistor&lt;/div&gt;&lt;div&gt;CPU Temp:    +42.0°C  (high = +80.0°C, hyst = +75.0°C)  sensor = diode&lt;/div&gt;&lt;div&gt;AUX Temp:    +30.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = thermistor&lt;/div&gt;&lt;div&gt;cpu0_vid:   +0.000 V&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3196336896342556303?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3196336896342556303/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3196336896342556303' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3196336896342556303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3196336896342556303'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/08/lm-sensors-hardware-monitoring-with.html' title='lm-sensors: hardware monitoring with the w83627ehf module'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2333375794232012181</id><published>2009-08-21T08:49:00.000-07:00</published><updated>2009-08-21T08:59:42.579-07:00</updated><title type='text'>Using ncat to provide SSL-support to non-ssl capable software</title><content type='html'>Sometimes, people are using software that does not support encrypted connections using SSL. To provide SSL-support to such a client, ncat can be used. Ncat is part of nmap, the famous port-scanner.&lt;br /&gt;&lt;br /&gt;The main principle is that the non-ssl capable software does not connect to the SSL-based service, but to the local host. Ncat will be listening on the localhost and will setup an SSL-connection with the SSL-based service on behalf of the non-ssl capable software.&lt;br /&gt;&lt;br /&gt;This simple command allows an application to browse to port 80, and perform regular HTTP-request, while in fact, they are encapsulated within a SSL-connection:&lt;br /&gt;&lt;br /&gt;ncat -l 80 -c "ncat &lt;ip-address&gt;&lt;port&gt;(ip-address) (port) --ssl"&lt;br /&gt;&lt;br /&gt;The -l option specifies the local port on which the SSL-tunnel will be listening. The ip-address and port refer to the SSL-based service.&lt;br /&gt;&lt;br /&gt;So if the client connects to 127.0.0.1 on port 80 it will actually connect through the SSL-tunnel to the external service.&lt;br /&gt;&lt;br /&gt;Often stunnel is used for this job but this software craps out on debian Etch with some error like:&lt;br /&gt;&lt;br /&gt;SSL routines:SSL3_GET_RECORD:bad decompression&lt;br /&gt;&lt;br /&gt;But ncat is an excellent alternative.&lt;/port&gt;&lt;/ip-address&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2333375794232012181?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2333375794232012181/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2333375794232012181' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2333375794232012181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2333375794232012181'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/08/using-ncat-to-provide-ssl-support-to.html' title='Using ncat to provide SSL-support to non-ssl capable software'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5310908482269520336</id><published>2009-08-18T14:19:00.000-07:00</published><updated>2009-08-18T14:23:39.735-07:00</updated><title type='text'>Howto get the hard disk size under Linux?</title><content type='html'>Q: How do I obtain the capacity of a hard drive under Linux? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A: There is no single tool for this job, but it seems that Fdisk is just fine: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;server:~# fdisk -l 2&gt; /dev/null | grep Disk | grep -v identifier &lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Disk /dev/sda: 500.0 GB, 500028145664 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdb: 500.0 GB, 500028145664 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdc: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdd: 500.0 GB, 500028145664 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sde: 500.0 GB, 500028145664 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/hda: 80.0 GB, 80026361856 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/md5: 1500.0 GB, 1500084240384 bytes&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The nice thing about using fdisk is that it automatically lists the size of all block devices.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a list of my NAS, mentioned earlier.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Beast:~# fdisk -l 2&gt; /dev/null | grep Disk | grep -v identifier&lt;/div&gt;&lt;div&gt;Disk /dev/sda: 60.0 GB, 60011642880 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdb: 60.0 GB, 60011642880 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sde: 1000.2 GB, 1000204886016 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdf: 1000.2 GB, 1000204886016 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/md0: 57.9 GB, 57996345344 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/md1: 2015 MB, 2015100928 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdg: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdh: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdi: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdj: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdk: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdl: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdm: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdn: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdo: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdp: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdq: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdr: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sds: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdt: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdu: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/sdv: 1000.1 GB, 1000123400192 bytes&lt;/div&gt;&lt;div&gt;Disk /dev/md5: 18002.2 GB, 18002220023808 bytes&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5310908482269520336?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5310908482269520336/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5310908482269520336' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5310908482269520336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5310908482269520336'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/08/howto-get-hard-disk-size-under-linux.html' title='Howto get the hard disk size under Linux?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-4145665959825165117</id><published>2009-07-21T14:08:00.001-07:00</published><updated>2011-01-03T16:47:20.768-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='norco RPC-4020 Linux RAID 6 MDADM 20 disk 18 TB'/><title type='text'>20 disk 18 TB RAID 6 storage based on Debian Linux</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;This blog has been relocated to &lt;/span&gt;&lt;a href="http://louwrentius.com/blog/2009/07/20-disk-18-tb-raid-6-storage-based-on-debian-linux/"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;louwrentius.com&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 100%;"&gt;This is my NAS storage server based on Debian Linux, software RAID and 20 one terrabyte hard drives. It provides a total of 18 terrabytes of storage in one single array.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-size: 85%;"&gt;&lt;a href="http://members.multiweb.nl/nan1/img/norco05.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5437755852432838722" src="http://3.bp.blogspot.com/_1tZXi-PpPDE/S3bKIyePkEI/AAAAAAAAABo/mLUkOXM2_j4/s400/norco05-sm.jpg" style="cursor: pointer; display: block; height: 266px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.nobrtable br { display: none }&lt;/style&gt;&lt;br /&gt;&lt;div class="nobrtable"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="1" style="width: 450px;"&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;col width="85*"&gt;&lt;/col&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Case:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Norco RPC-4020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Processor:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Core 2 duo E7400 @ 2.8GHz&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RAM:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4 GB&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Motherboard:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Asus P5Q-EM DO&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;LAN:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Intel Gigabit&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;PSU:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;s&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Coolermaster 600 Watt&lt;/span&gt;&lt;/s&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; Corsair CMPSU-750HX 750 Watt (Coolermaster died)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Controller: &lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;HighPoint RocketRAID 2340 (16) and on-board controller (6).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Disks:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;20 x Samsung Spinpoint F1, 1 TB(array) and 2 x FUJITSU MHY2060BH (60 GB)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Arrays:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Boot 2x 60 GB RAID 1 and 20 x 1 TB RAID 6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RAID setup:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Linux software RAID using MDADM.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;RAM:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;4 GB&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Read performance:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;1.2 GB/s&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Write performance:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;350 MB/s.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;OS:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Linux Debian Lenny 64-bit (backported)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Filesystem:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;XFS (can handle &amp;gt; 16 TB partitions.)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Rebuild time:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;about 5 hours.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;UPS:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Back-UPS RS 1200 LCD using Apcupsd&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Idle power usage:&lt;/span&gt;&lt;/td&gt;&lt;td georgia="" style="font-family: georgia;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;about &amp;nbsp;220 Watt&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://members.multiweb.nl/nan1/img/norco04.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5437756585220876322" src="http://3.bp.blogspot.com/_1tZXi-PpPDE/S3bKzcUhqCI/AAAAAAAAABw/cXMrSb3aFWU/s400/norco04-sm.jpg" style="cursor: pointer; display: block; height: 266px; margin: 0px auto 10px; text-align: center; width: 400px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-weight: bold;"&gt;RAID 6 array details:&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana; font-size: 85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="font-family: verdana;"&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;/dev/md0:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;        Version : 00.90&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;  Creation Time : Sat Jul 18 14:01:24 2009&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;     Raid Level : raid6&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;     Array Size : 17580292992 (16765.87 GiB 18002.22 GB)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;  Used Dev Size : 976682944 (931.44 GiB 1000.12 GB)&lt;/span&gt;&lt;/div&gt;&lt;div face="verdana"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;   Raid Devices : 20&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: courier new;"&gt;&lt;span class="Apple-style-span" style="font-size: 100%;"&gt;  Total Devices : 20&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EGLaFiXHegw&amp;amp;hl=nl_NL&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/EGLaFiXHegw&amp;amp;hl=nl_NL&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-4145665959825165117?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/4145665959825165117/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=4145665959825165117' title='25 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4145665959825165117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4145665959825165117'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/07/20-disk-18-tb-raid-6-storage-based-on.html' title='20 disk 18 TB RAID 6 storage based on Debian Linux'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1tZXi-PpPDE/S3bKIyePkEI/AAAAAAAAABo/mLUkOXM2_j4/s72-c/norco05-sm.jpg' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-458998001090865835</id><published>2009-07-21T13:13:00.000-07:00</published><updated>2009-07-21T13:20:29.316-07:00</updated><title type='text'>HighPoint RocketRAID and staggered spinup with Samsung F1</title><content type='html'>I have experienced problems using a HighPoint RocketRaid 2320 and 2340 when they are using 'staggered spinup' in combination with Samsung Spinpoint F1, 1 (one) terrabyte disks. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem is that the F1 disks spinup very slowly and often seem to 'hang' while making ticking noises that will scare any computer user to death. When, after ages, you have the luck that no disks keeps hanging during startup, the first thing to do is to disable staggered spinup. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, if staggered spinup is not used and all disks will spinup together, please note that you will need a strong PSU to handle the short peak load. For example, starting up 20 (twenty) disks will briefly generate a load of 550 Watt on my APC ups, according to its display. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I estimate that during startup, each disk is roughly consuming 20 Watt. Take this all into account when deciding which type of disks and controllers you will be using.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-458998001090865835?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/458998001090865835/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=458998001090865835' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/458998001090865835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/458998001090865835'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/07/highpoint-rocketraid-and-staggered.html' title='HighPoint RocketRAID and staggered spinup with Samsung F1'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3807014697883245684</id><published>2009-07-05T15:45:00.000-07:00</published><updated>2009-07-06T13:44:14.446-07:00</updated><title type='text'>8 TB RAID 6 Linux software RAID using EXT4</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style=" line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Case: Norco RPC-4020&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="  line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Mobo: Asus P5Q-EM DO ( 6x sata)&lt;br /&gt;CPU: Core 2 Duo E7400&lt;br /&gt;RAM: 4 GB&lt;br /&gt;Controller; HighPoint RocketRAID 2314 (16x poorten)&lt;br /&gt;PSU: CooMas Silent Pro M 600W ATX2 (definitely not overkill)&lt;br /&gt;HD: Samsung 1 TB SAT2 HD103UJ (10x)&lt;br /&gt;OS: Debian Lenny with custom kernel (backported)&lt;br /&gt;FS: EXT4&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="  line-height: 19px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;RAID config: &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;10 disk RAID 6&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; based on Linux software RAID.&lt;br /&gt;Performance: &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Read: 850 MB/s Write: 300 MB/s&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;Capacity: 7,5 GiB or 8 GB.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" line-height: 19px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I am very pleased with the result. Points that should be improved are the temperature and noise. The PSU is a major overkill since this puppy draws less than 200 watt.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=" line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="  line-height: normal; "&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/norco03.jpg" style="text-decoration: none;"&gt;&lt;img src="http://members.multiweb.nl/nan1/img/norco03.jpg" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 640px; height: 425px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, -webkit-fantasy;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, fantasy;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/norco02.jpg"&gt;&lt;img src="http://members.multiweb.nl/nan1/img/norco02.jpg" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 640px; height: 425px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Bunny:~# ./show-hdd-temp.sh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Device &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; Temperature&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;----------------------------&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sda &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 32 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdb &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 34 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdc &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 33 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdd &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 36 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sde &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 34 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdf &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 33 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdg &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 38 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdh &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 39 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdi &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 37 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdj &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 36 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;/dev/sdk &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; 35 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;Personalities : [raid6] [raid5] [raid4] &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;md0 : active raid6 sdj[10] sdb[0] sdl[9] sdk[8] sdg[7] sdf[6] sdi[5] sdh[4] sde[3] sdd[2] sdc[1]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      7813463552 blocks super 0.91 level 6, 64k chunk, algorithm 2 [11/11] [UUUUUUUUUUU]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      [======&gt;..............]  reshape = 30.1% (294904524/976682944) finish=585.3min speed=19413K/sec&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3807014697883245684?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3807014697883245684/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3807014697883245684' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3807014697883245684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3807014697883245684'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/07/nas-is-ready.html' title='8 TB RAID 6 Linux software RAID using EXT4'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7825115978772425640</id><published>2009-06-28T15:43:00.000-07:00</published><updated>2009-09-12T16:51:18.057-07:00</updated><title type='text'>Script that shows ETA of RAID rebuild / reshape</title><content type='html'>I made a small script that converts the output of `cat /proc/mdstat` to an actual date and time telling you when the RAID rebuild / reshape is finished.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://members.multiweb.nl/nan1/got/raid-rebuild-eta.tgz"&gt;This is the link to the correct version of the script.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Example: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;debian:~# ./raid-rebuild-eta.sh &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;----------------------------------------------&lt;/div&gt;&lt;div&gt;Estimated time of finishing rebuild / reshape:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mon Jun 29 00:45:07 CEST 2009&lt;/div&gt;&lt;div&gt;----------------------------------------------&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7825115978772425640?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7825115978772425640/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7825115978772425640' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7825115978772425640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7825115978772425640'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/06/script-that-shows-eta-of-raid-rebuild.html' title='Script that shows ETA of RAID rebuild / reshape'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3145958155740218461</id><published>2009-06-28T12:32:00.001-07:00</published><updated>2009-09-14T15:36:19.341-07:00</updated><title type='text'>Linux RAID 6 performance using software RAID</title><content type='html'>So after toying around with RAID 0 just for fun, time to get serious. I created a RAID 6 of 10 x 1 TB disks. This gives me raw device &lt;b&gt;&lt;i&gt;read speeds of 850 MB/s&lt;/i&gt;&lt;/b&gt; and &lt;b&gt;&lt;i&gt;write speeds of 300 MB/s&lt;/i&gt;&lt;/b&gt;. I think this is exactly what should be expected, but boy it is damn fast. Especially the write speed surprises me. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still, if I format the device using EXT4, write speed stays the same. However, read speed drop to about 350 MB/s. I don't understand why. Maybe some misalignment? I don't know. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The issue with the dropped read speed is due to an incorrect chunk size of the array. The array now consists of 20 drives, providing 18 TB of storage using XFS. Read speads exceed 1.1 GB/s (that is not a typo) and write speeds are about 350 MB/s. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3145958155740218461?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3145958155740218461/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3145958155740218461' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3145958155740218461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3145958155740218461'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/06/linux-raid-6-performance-using-software.html' title='Linux RAID 6 performance using software RAID'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2181279751434382459</id><published>2009-06-26T16:58:00.001-07:00</published><updated>2009-06-27T00:30:06.884-07:00</updated><title type='text'>1.0 GB/s using Linux software RAID</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;I filled the Norco case with hardware. It is now up and running, based on Debian Linux (Lenny). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I immediately performed some initial tests with software RAID 0. The results are just astounding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;debian:~# dd if=/dev/md0 of=/dev/null bs=1M count=50000&lt;/div&gt;&lt;div&gt;&lt;div&gt;50000+0 records in&lt;/div&gt;&lt;div&gt;50000+0 records out&lt;/div&gt;&lt;div&gt;52428800000 bytes (52 GB) copied, 50.9222 s, 1.0 GB/s&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;This is correct. &lt;b&gt;1 Gigabyte per second&lt;/b&gt; using 10 Samsung Spinpoint F1's connected to the motherboard (4) and to the Highpoint Rocketraid 2340 (6).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2181279751434382459?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2181279751434382459/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2181279751434382459' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2181279751434382459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2181279751434382459'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/06/11-gbs-using-linux-software-raid.html' title='1.0 GB/s using Linux software RAID'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5361020581808954159</id><published>2009-06-16T12:47:00.001-07:00</published><updated>2009-06-16T12:52:46.469-07:00</updated><title type='text'>Got myself a Norco RPC-4020</title><content type='html'>&lt;div&gt;I've got this fetish for storage. So I bought a case that gives me some room for future expantion. The current 6 TB RAID 6  storage server does not have any room for expantion. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This Norco RPC-4020 case with 20 hot swap drive bays does however. Don't know what to fill it with yet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/norco4020.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 399px;" src="http://members.multiweb.nl/nan1/img/norco4020.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5361020581808954159?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5361020581808954159/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5361020581808954159' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5361020581808954159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5361020581808954159'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/06/got-myself-norco-rpc-4020.html' title='Got myself a Norco RPC-4020'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-361002397610786210</id><published>2009-05-31T13:22:00.000-07:00</published><updated>2009-06-01T17:10:26.992-07:00</updated><title type='text'>Bash Shell Function Library (BSFL) released.</title><content type='html'>&lt;span class="Apple-style-span"   style="  ;font-family:arial;font-size:13px;"&gt;The Bash Shell Function Library (BSFL) is a small Bash script that acts as a library for bash scripts. It provides a couple of functions that makes the lives of most people using shell scripts a bit easier.&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/bsfl1.png"&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:7;"&gt;&lt;span class="Apple-style-span"  style="font-size:48px;"&gt;&lt;span class="Apple-style-span"   style="  ;font-family:Georgia;font-size:16px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://members.multiweb.nl/nan1/img/bsfl2.png"&gt;&lt;img src="http://members.multiweb.nl/nan1/img/bsfl2.png" border="0" alt="" style="cursor: pointer; width: 398px; height: 172px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:7;"&gt;&lt;span class="Apple-style-span"  style="font-size:48px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"    style="font-family:arial;font-size:100%;color:#000000;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;The purpose of this library is to provide pre-build functions for actions that often need to be performed, focussing on error-checking and logging. In this example, a test-script is written that demonstrates the functions the library provides.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial;font-size:7;"&gt;&lt;span class="Apple-style-span"  style="font-size:48px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The project can be found at &lt;a href="http://code.google.com/p/bsfl/"&gt;this location.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-361002397610786210?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/361002397610786210/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=361002397610786210' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/361002397610786210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/361002397610786210'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/05/bash-shell-function-librar-bsfl.html' title='Bash Shell Function Library (BSFL) released.'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7292075504516270196</id><published>2009-05-02T15:24:00.001-07:00</published><updated>2009-05-03T08:49:35.180-07:00</updated><title type='text'>Tip of the day for every Linux or Unix user: brace expantion</title><content type='html'>&lt;p&gt;Searching the web I discovered some really nice feature of the unix shell, which I didn't know about.&lt;br /&gt;&lt;br /&gt;Try this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier"&gt;touch foobar.conf&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Now try this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier"&gt;cp foobar.conf{,.bak}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;It is equivalent to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier"&gt;cp foobar.conf foobar.conf.bak&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This is also the easiest way to create sequences. Do not use 'seq' since you cannot rely on it being installed.&lt;span style="font-family:Courier"&gt;&lt;br /&gt;&lt;br /&gt;bash-3.2$ echo {1..10}&lt;br /&gt;1 2 3 4 5 6 7 8 9 10&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Please visit &lt;a href="http://f241vc15.wordpress.com/2008/02/29/doing-cool-things-in-bash-and-in-linux/"&gt;this location&lt;/a&gt; for additional examples.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7292075504516270196?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7292075504516270196/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7292075504516270196' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7292075504516270196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7292075504516270196'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/05/tip-of-day-for-every-linux-or-unix-user.html' title='Tip of the day for every Linux or Unix user: brace expantion'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-4885712445457658262</id><published>2009-04-30T11:20:00.001-07:00</published><updated>2009-05-02T15:42:40.072-07:00</updated><title type='text'>The Dirtiest Computer In The World</title><content type='html'>&lt;br /&gt;    &lt;p align="justify"&gt;I helped a family the other day with a malfunctioning computer. The system had a tendency to shutdown at random during games.&lt;br /&gt;&lt;br /&gt;Hmm...&lt;br /&gt;&lt;br /&gt;It didn't take long to discover why.&lt;br /&gt;&lt;br /&gt;&lt;img border="0" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 213px;" alt="" src="http://members.multiweb.nl/nan1/img/dirty/Thumbnails/10.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;I think this is probably one of the filthiest computer in the world. &lt;br /&gt;&lt;br /&gt;More photos at &lt;a href="http://members.multiweb.nl/nan1/img/dirty/"&gt;http://members.multiweb.nl/nan1/img/dirty/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Smoking doesn't only kill people, it seems.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-4885712445457658262?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/4885712445457658262/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=4885712445457658262' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4885712445457658262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4885712445457658262'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/04/dirtiest-computer-in-world.html' title='The Dirtiest Computer In The World'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-670945680147423220</id><published>2009-04-26T15:38:00.000-07:00</published><updated>2009-05-01T04:39:49.450-07:00</updated><title type='text'>Compatibility Highpoint RocketRAID 2320 and Samsung Spinpoint F1</title><content type='html'>&lt;div&gt;There are some reports about incompatibility between RAID controllers and Samsung Spinpoint F1 drives. I have no troubles with my 0.5 and 1.0 TB drives from Samsung using mentioned controller. See below:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Controller 1: RocketRAID 232x SATA Controller&lt;div&gt;------------------------------------------------&lt;/div&gt;&lt;div&gt;1/1/1 SAMSUNG HD103UJ 1000123MB, Normal &lt;/div&gt;&lt;div&gt;1/2/1 SAMSUNG HD103UJ 1000123MB, Normal&lt;/div&gt;&lt;div&gt;1/3/1 SAMSUNG HD103UJ 1000123MB, Normal &lt;/div&gt;&lt;div&gt;1/4/1 SAMSUNG HD103UJ 1000123MB, Normal &lt;/div&gt;&lt;div&gt;1/5/1 SAMSUNG HD501LJ 500028MB, Normal &lt;/div&gt;&lt;div&gt;1/6/1 SAMSUNG HD501LJ 500028MB, Normal&lt;/div&gt;&lt;div&gt;1/7/1 SAMSUNG HD501LJ 500028MB, Normal&lt;/div&gt;&lt;div&gt;1/8/1 SAMSUNG HD501LJ 500028MB, Normal&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-670945680147423220?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/670945680147423220/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=670945680147423220' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/670945680147423220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/670945680147423220'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/04/compatibility-highpoint-rocketraid-2320.html' title='Compatibility Highpoint RocketRAID 2320 and Samsung Spinpoint F1'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8073424045679129885</id><published>2009-04-25T09:30:00.000-07:00</published><updated>2009-04-26T15:37:49.282-07:00</updated><title type='text'>Automated install of Debian Linux based on PXE net booting</title><content type='html'>Every honest and good system administrator is continue bussy with automating his work. For two reasons:&lt;div&gt;&lt;ol&gt;&lt;li&gt;Repeating the same task over and over again is friggin boring. A system administrator has better things to do, such as drinking coffee.  &lt;/li&gt;&lt;li&gt;Humans make mistakes, especially if boring. Computers do not.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;If a computer can do a certain job, it wil do it always faster and better than a human. Automating system installation is both more time efficient and allows you to deliver a constant quality. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Netbooting or PXE booting&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Regarding the installation of hosts, the holy grail of automated installation is netbooting or PXE booting. Almost every system today contains a network interface card that supports booting over the network. A system obtains instructions from the local DHCP server where to obtain an operating system kernel. This kernel is obtained using TFTP and then loaded. From then on, the operating system takes over and the installation continues, for example based on Debian preseeding and/or FAI.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to prepare for netbooting&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The following requirements must be met:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;a DHCP server must be available&lt;/li&gt;&lt;li&gt;a TFTP server must be avaialble&lt;/li&gt;&lt;li&gt;the correct files for netbooting must be in place&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Configuring the DHCP server&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The following two lines must be added to the 'subnet' section of your DHCP server configuration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;  filename "pxelinux.0";&lt;/div&gt;&lt;div&gt;  next-server 10.0.0.1;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The 'next-server' section specifies the IP-address of the system that is running the TFTP server, so change it based on your configuration, this is just an example.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't forget to restart the DHCP server daemon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Configuring the TFTP server&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, make sure you install "tftpd-hpa" since the standard "tftpd" server does not seem to support the "tsize" option.  Then, edit /etc/defaults/tftpd-hpa like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;RUN_DAEMON="yes"&lt;/div&gt;&lt;div&gt;OPTIONS="-l -a &lt;ip&gt; -R 30000:30100 -s /var/lib/tftpboot"&lt;/ip&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do not run the TFTP server from inetd because the above lines provide more control over how the server behaves, especially in regard to firewalls.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The -R option specifies the port-range used for data transfers. This port range should also be configured within your firewall configuration. Watch out! Do not allow TFTP access from the Internet. TFTP requires NO authentication and is very insecure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Start the TFTPD server with:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; /etc/init.d/tftpd-hpa start&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Install the files required for netbooting&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The fun thing is that Debian provides a complete package for netbooting.  So cd to /var/lib/tftpboot and enter:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;wget http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then extract the contents of netboot.tar.tz like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;tar xzf netboot.tar.gz&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That is all there is to it. If you start a host and make it boot using PXE, it will show you the regular installation menu that is also shown when a system is booted from a regular Debian installation CD-ROM. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, if you want automated installation and not use this boot menu, first cd to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;/var/lib/tftpboot/debian-installer/i386/boot-screens&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then edit syslinux.cfg and comment this rule out:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;default debian-installer/i386/boot-screens/vesamenu.c32&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to use preseeding, first edit adtxt.cfg and goto label auto. Edit label auto like this:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;label auto&lt;/div&gt;&lt;div&gt;&lt;div&gt;        menu label ^Automated install&lt;/div&gt;&lt;div&gt;        kernel debian-installer/i386/linux&lt;/div&gt;&lt;div&gt;        append auto=true priority=critical vga=normal initrd=debian-installer/i386/initrd.gz url=http://(IP-address)&lt;ip-address&gt;/preseed/preseed.cfg -- quiet&lt;/ip-address&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The IP-address section should point towards the preseed server that is hosting the preseed configuration file.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Last, edit txt.cfg. Change 'default install' to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;default auto&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I always though that PXE booting was a pain to setup. However, I got it working within 60 minutes &lt;a href="http://www.debian-administration.org/articles/478"&gt;using this howto&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8073424045679129885?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8073424045679129885/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8073424045679129885' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8073424045679129885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8073424045679129885'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/04/automated-install-of-debian-linux-based.html' title='Automated install of Debian Linux based on PXE net booting'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2394113048917556376</id><published>2009-04-22T16:10:00.000-07:00</published><updated>2009-09-30T14:26:05.766-07:00</updated><title type='text'>FFmpeg performance on a Core i7 920 @ 3.6 Ghz</title><content type='html'>&lt;div&gt;The system i'm running is a Core i7 920 @ 3.6 Ghz.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am transcoding a DVD (Grave Of The Fire Flies) to iPod format (640x480 x264). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thread support is enabled, to FFmpeg uses about 250% CPU. That's 2.5 of the 4 cores available. If possible, I would have liked to see it use all four to the max.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any way. I use these settings: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;FFmpeg version SVN-r18628&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ffmpeg -i $1 -pass 1 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre normal -vpre ipod640 -s 640x480 -b 512k -bt 512k -threads 0 -f mp4 $2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With these settings, I get an encoding speed of fps=193. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't know how that stacks up against other systems. It seems fast to me though. In effect, the system is playing the DVD at 7.6 times the speed of the movie (25 fps?). So encoding is 88 minutes / 7.6 = 11.45 minutes for encoding a DVD to iPod x264.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2394113048917556376?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2394113048917556376/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2394113048917556376' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2394113048917556376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2394113048917556376'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/04/ffmpeg-performance-on-core-7i-920-36.html' title='FFmpeg performance on a Core i7 920 @ 3.6 Ghz'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6336545626776199336</id><published>2009-03-29T14:49:00.000-07:00</published><updated>2009-03-31T14:23:03.118-07:00</updated><title type='text'>How to escape file names in bash shell scripts</title><content type='html'>After fighting with Bash for quite some time, I found out that the following code provides a nice basis for escaping special characters. Ofcource it is not complete, but the most important characters are filtered.&lt;div&gt;&lt;br /&gt;If anybody has a better solution, please let me know. It works and it is readable but not pretty.&lt;br /&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;FILE_ESCAPED=`echo "$FILE" | \&lt;br /&gt;      sed s/\\ /\\\\\\\\\\\\\\ /g | \&lt;br /&gt;      sed s/\\'/\\\\\\\\\\\\\\'/g | \&lt;br /&gt;      sed s/\&amp;amp;/\\\\\\\\\\\\\\&amp;amp;/g | \&lt;br /&gt;      sed s/\;/\\\\\\\\\\\\\\;/g | \&lt;br /&gt;      sed s/\(/\\\\\\\\\\(/g | \&lt;br /&gt;      sed s/\)/\\\\\\\\\\)/g `&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6336545626776199336?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6336545626776199336/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6336545626776199336' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6336545626776199336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6336545626776199336'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/03/how-to-escape-filenames-in-bash-shell.html' title='How to escape file names in bash shell scripts'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8805995050157933488</id><published>2009-03-12T15:05:00.000-07:00</published><updated>2009-03-12T15:18:46.450-07:00</updated><title type='text'>Distributed Parallel Processing Shell Script (PPSS) released</title><content type='html'>I'd like to announce the release of the distributed version of the Parallel Processing Shell Script (&lt;a href="http://code.google.com/p/ppss"&gt;PPSS&lt;/a&gt;). PPSS is a bash script that allows you to run commands in parallel. It is written to make use of current multi-core CPUs. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The new distributed version of PPSS allows you to run PPSS on multiple hosts, that simultaneously work on a single group of files or other items. A central server is used for file locking. This way, nodes know which files are 'locked' by other nodes and/or have already been processed. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PPSS is written to be very easy to use. You can be up and running on a single host within 5 minutes. Distributed usage requires the (one-time) setup of some SSH accounts on your nodes and server, but that's about it. Please take a look at distributed PPSS for yourself at:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/ppss"&gt;http://code.google.com/p/ppss&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I used distributed PPSS to encode 400 GB of WAV files to MP3 using 4 computer systems. A total of 14 cores where available to PPSS to encode those files using Lame. However, PPSS is not limited to encoding WAV files. To the contrary, it is written to execute whatever command you want to execute. Gzip a bunch of files in parallel? No problem. It is totally up to your imagination.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8805995050157933488?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8805995050157933488/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8805995050157933488' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8805995050157933488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8805995050157933488'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/03/distributed-parallel-processing-shell.html' title='Distributed Parallel Processing Shell Script (PPSS) released'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6990787092011009538</id><published>2009-03-04T13:19:00.000-08:00</published><updated>2009-09-30T14:28:44.872-07:00</updated><title type='text'>Core i7 920 @ 3,6 Ghz is a true beast!</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Even today, Core 2 Duo processors clocked at 2 ghz are no slugs. However, the Core i7 920 is of a different kind. First, it is not only clocked at a higher speed (default 2,8 Ghz),  it is also a quad-core processor. Thanks to the re-introduction of hyperthreading, this processor can handle 8 parallel proceses simultaneously. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Just how fast a Core i7 can be, especially if overclocked to 3,6 Ghz shows this diagram:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:66,11,11,12&amp;amp;chs=350x150&amp;amp;chl=Core%207i%20|AMD|iMac|Mac%20Mini&amp;amp;noncense=test.png"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:66,11,11,12&amp;amp;chs=350x150&amp;amp;chl=Core%207i%20|AMD|iMac|Mac%20Mini&amp;amp;noncense=test.png" border="0" alt="" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 350px; height: 150px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Using my still in development version of PPSS, four systems processed 400 GB of WAV files and converted them to MP3. This simple pie-chart shows that the Core i7 on it's own, using 8 parallel processes, managed to process 2/3 of the files. The Core i7 was way faster than the other 3 systems combined! This is marvelous, I think. And it seems all due to Hyperthreading. If an additional duo core system would have been added, the other systems combined would have also 8 parallel threads available and would have processed roughly 50% of the items. However, please note that the Core i7 is a quad core processor and has 'only' four physical cores...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6990787092011009538?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6990787092011009538/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6990787092011009538' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6990787092011009538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6990787092011009538'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/03/core-7i-36-ghz-is-true-beast.html' title='Core i7 920 @ 3,6 Ghz is a true beast!'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3941501049491990805</id><published>2009-02-22T11:38:00.000-08:00</published><updated>2009-02-22T12:26:14.422-08:00</updated><title type='text'>Linux: unattended installation with Debian preseeding</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Debian Linux provides a mechanism to install the operating system without user intervention. This mechanism is called 'preseeding' and is similar to Red Hat Kick Start and Sun Solaris Jump Start.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The basic idea is that the installer is fed a recipe, according to which the system is installed. This recipe can be fed by a floppy, usb stick, cdrom, or through a web server over the network. To use such a recipe, just boot from a Debian CD-rom and issue the following command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Floppy based:&lt;/span&gt; (you really shouldn't be using those anymore) &lt;/div&gt;&lt;div&gt;Boot: auto file=/floppy/preseed.cfg&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;USB stick based:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Boot: auto file=/hd-media/preseed.cfg&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Network based:&lt;/span&gt; &lt;/div&gt;&lt;div&gt;Boot: auto url=http://internal.web.server.com/preseed.cfg&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only work you have to do is to create a preseed configuration file. This is really simple, since preseeding is well-documented and preseed configuration files are easy to understand.&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Times;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;d-i &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;debian-installer/country &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;string US &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;d-i &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;debian-installer/locale &lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;string en_US.UTF-8  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;d-i &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mirror/country &lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;string manual &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;d-i &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mirror/http/hostname &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;string ftp.uk.debian.org &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;d-i &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;mirror/http/directory &lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;string /debian &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;base-config &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;apt-setup/hostname &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;string ftp.uk.debian.org &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;base-config &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;apt-setup/directory &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;string /debian&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Times;"&gt;&lt;pre style="word-wrap: break-word; white-space: pre-wrap; "&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;As you can see, it is just a text-based file that configures some variables that are used during installation. It is basically an answer file. Questions that are asked by the installer during installation are answered with the preseed file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a full example, take a look &lt;a href="http://hands.com/d-i/lenny/preseed.cfg"&gt;here.&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Very extensive documentation can be found &lt;a href="http://d-i.alioth.debian.org/manual/en.i386/apb.html"&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A  minimal debian installation without support for X can be installed within 2.5 minutes, assuming a network-based installation (tested in VMware Workstation). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please note that if your company uses Debian Linux not only for servers but also for desktops / laptops, preseeding is an ideal solution to provide your users with a new and fresh installation whenever they want. Users or sysadmins shouldn't be bussy manually installing these systems. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have implemented Debian Preseeding to create a fully unattended and automated installation of laptops, based on &lt;a href="http://en.wikipedia.org/wiki/Linux_Unified_Key_Setup"&gt;LUKS full disk encryption&lt;/a&gt;, which is supported by the Debian installer (!), with all required software installed. All additional software is installed with a custom installation framework based on shell-scripts. The installation framework makes sure that if anything goes wrong during installation, it is noticed. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unattended installation allows system administrators to quickly deploy new installations and guarantee that such installations are 100% correct. They rule out the human factor, which tends to introduce random errors. So take a look at Debian Preseeding and decide for yourself how useful it is.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3941501049491990805?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3941501049491990805/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3941501049491990805' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3941501049491990805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3941501049491990805'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/02/linux-unattended-installation-with.html' title='Linux: unattended installation with Debian preseeding'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8432667889198935750</id><published>2009-02-16T11:38:00.000-08:00</published><updated>2009-02-16T12:18:06.971-08:00</updated><title type='text'>Why Debian/Ubuntu Linux is to be preferred</title><content type='html'>There are many Linux distributions around. However, I always come back to just one: Debian. The reason why so many people use Debian is the same reason I like it so much: software management.  With good old apt-get or the new aptitude, software is installed within minutes. Due to the vast amount of software available even the most obscure software can be installed without resorting to manually downloading and compiling.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the most important aspect of Debian is it's mantra of stability. It is build for servers. For people who don't want to take risks and prefer stability and security above anything else. This is also the main gripe most people have about Debian: it is often not very up-to-date regarding drivers or the latest software versions.  If that is a problem, there is still the possibility to run the testing branch of Debian, exchanging the risk on things getting broken or unstable for the availability of newer software.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a part-time system administrator, one of the most ideal components of Debian is its installer. Especially the "preseeding" bit. Preseeding is for Debian what Kickstart is for Red Hat and Jump start is for Sun Solaris. It allows a full unattended installation of Debian Linux on any hardware without ever touching your keyboard. This isn't new, but it is much more user friendly as opposed to, for example, kick start. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Debian Preseeding is very well documented and can easily be extended to run your own scripts after installation for some post-configuration.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I currently use it to install hosts by booting them with an USB stick and using a network install. Not only are network installs often the fastest solution, assuming that a local Debian mirror is available, the system is also direct up-to-date. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Abount preseeding:&lt;/div&gt;&lt;div&gt;&lt;a href="http://d-i.alioth.debian.org/manual/en.i386/apb.html"&gt;http://d-i.alioth.debian.org/manual/en.i386/apb.html&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wiki.debian.org/DebianInstaller/Preseed"&gt;http://wiki.debian.org/DebianInstaller/Preseed&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;About setting up a local Debian mirror (requires about 50 GB of storage space on a web server) &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.howtoforge.com/local_debian_ubuntu_mirror"&gt;http://www.howtoforge.com/local_debian_ubuntu_mirror&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8432667889198935750?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8432667889198935750/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8432667889198935750' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8432667889198935750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8432667889198935750'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/02/why-debianubuntu-linux-is-to-be.html' title='Why Debian/Ubuntu Linux is to be preferred'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-4680727336345412537</id><published>2009-02-01T14:49:00.000-08:00</published><updated>2009-02-01T15:01:26.922-08:00</updated><title type='text'>Why I still won't switch to Linux and keep my Mac</title><content type='html'>The current state of Linux is amazing. If we take a look at, for example, Ubuntu Linux, we have to admit that the Linux desktop is really becoming a nice, user-friendly environment. I'm truly starting to like what I see. I considered whiping Mac OS X from my macbook, but there are some reasons why I won't. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- I like to mess around in Adobe Photoshop now and then. There is no serious Linux alternative.&lt;/div&gt;&lt;div&gt;- I've got an iPhone, so now i'm 'stuck' with iTunes. I really like my iPhone btw.&lt;/div&gt;&lt;div&gt;- I really like iPhoto, it is very easy to use and archive my photo's.&lt;/div&gt;&lt;div&gt;- My entire music collection is in iTunes -&gt; especially the song ratings are important.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Maybe those reasons can be overcome. But for day-to-day usage, I still prefer Mac OS X above Linux. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-4680727336345412537?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/4680727336345412537/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=4680727336345412537' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4680727336345412537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/4680727336345412537'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/02/why-i-still-wont-switch-to-linux-and.html' title='Why I still won&apos;t switch to Linux and keep my Mac'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3685282279575448276</id><published>2009-01-13T02:35:00.000-08:00</published><updated>2009-01-13T02:39:51.079-08:00</updated><title type='text'>Unattended automatic installation of Linux nvidia binary driver</title><content type='html'>As part of an unattended installation, it was necessary to install a binary nvidia graphics driver. This is a manual proces by default. However, it can be done fully automatic:&lt;br /&gt;&lt;br /&gt;*prerequisite:* install xserver-xorg-dev package or similar xorg development package.&lt;br /&gt;&lt;br /&gt;  sh NVIDIA-&lt;version&gt;.run -q -a -n -X -s&lt;br /&gt;&lt;br /&gt;That's all there is to it. The -q option means quiet, the -a option means accept licence, the -n action suppresses questions, the -X option updates the xorg.conf file and the -s option disables the ncurses interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3685282279575448276?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3685282279575448276/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3685282279575448276' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3685282279575448276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3685282279575448276'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/01/unattended-automatic-installation-of.html' title='Unattended automatic installation of Linux nvidia binary driver'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5476407302606173589</id><published>2009-01-02T17:51:00.000-08:00</published><updated>2009-01-02T17:54:17.698-08:00</updated><title type='text'>Release of PPSS - the Parallel Processing Shell Script</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; "&gt;&lt;a name="PPSS_-_Parallel_Processing_Shell_Script"&gt;&lt;p style="max-width: 65em; "&gt;PPSS is a shell script that processess files or other items in parallel. It is designed to make use of the current multi-core CPUs. It will detect the number of available CPUs and start a thread for each CPU core. &lt;/p&gt;&lt;/a&gt;&lt;p style="max-width: 65em; "&gt;&lt;a name="PPSS_-_Parallel_Processing_Shell_Script"&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; "&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: 13px; "&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a name="PPSS_-_Parallel_Processing_Shell_Script"&gt;&lt;/a&gt;&lt;/p&gt;&lt;a name="PPSS_-_Parallel_Processing_Shell_Script"&gt;&lt;p style="max-width: 65em; display: inline !important; "&gt;This script is build with the goal to be very easy to use. Also, it must be robust (atomic), and portable. It employs a locking mechanism and runs on Linux and Mac OS X. It should work on other Unix-like operating system that support the bash shell.&lt;/p&gt;&lt;/a&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="max-width: 65em; "&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; "&gt;Please visit &lt;a href="http://code.google.com/p/ppss/"&gt;http://code.google.com/p/ppss/&lt;/a&gt; for a download.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5476407302606173589?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5476407302606173589/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5476407302606173589' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5476407302606173589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5476407302606173589'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2009/01/release-of-ppss-parallel-processing.html' title='Release of PPSS - the Parallel Processing Shell Script'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5699200429320301350</id><published>2008-12-27T16:26:00.001-08:00</published><updated>2008-12-28T04:02:42.328-08:00</updated><title type='text'>Benefits of hyperthreading on a Core 7i processor</title><content type='html'>I had some wave files that I wanted to encode to mp3. I wrote a small parallel processing framework for this job. It executes parallel jobs so I can benefit from the 4 cores + 4 virtual cores of my new Core 7i 920 processor. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The framework is based on some shell scripts ru&lt;/div&gt;&lt;div&gt;nning on Linux (or probably any other unix) and Lame.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to test how much impact hyperthreading has on parallel performance. Hyperthreading has a bit of a bad reputation, dating back from the P4 erra. Lots of 'hype' but no significant performance gain. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I ran some test with hyperthreading enabled and disabled (within the bios). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In this test I used 16 wav files and encoded them to mp3 with Lame under Linux. The data in the table are raw measurements.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 339px; height: 130px;" src="http://home.quicknet.nl/mw/prive/nan1/got/ht1.png" border="0" alt="" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see, the benefit of HT is there and can improve processing speed with up to 24 percent. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As more threads are run simultaneously, processing speed is significantly improved comparted to non-HT. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5699200429320301350?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5699200429320301350/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5699200429320301350' title='4 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5699200429320301350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5699200429320301350'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/12/why-hyperthreading-on-core-7i-nehalem.html' title='Benefits of hyperthreading on a Core 7i processor'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3754989483229247640</id><published>2008-12-24T08:49:00.000-08:00</published><updated>2008-12-26T08:21:10.036-08:00</updated><title type='text'>Rebooting results in degraded RAID array using Debian Lenny</title><content type='html'>As described earlier, I setup a RAID 6 array consisting of physical 1 TB disk and 'virtual' 1 TB disks that are in fact two 0.5 TB disks in RAID 0. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to upgrade to Lenny because the new kernel that ships with Lenny supports growing a RAID 6 array. After installing Lenny the RAID 0 devices were running smootly, but not recognised as part of the RAID 6. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the array was running in degraded mode. That is bad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Lenny, a new version of mdadm is used that requires the presense of the mdadm.conf file. The mdadm.conf file contains these lines: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;#DEVICE partitions&lt;/div&gt;&lt;div&gt;#DEVICE /dev/md*&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After I uncommented the "DEVICE /dev/md*" line and generated a new initramfs file with:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;update-initramfs -u &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The RAID 0 drives were recognised as part of a RAID array and everything was OK again. So mdadm must be instructed to check if /dev/md? devices are a member of a RAID array. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I guess this is also relevant if you are running a RAID 10 based on a mirrored stripe or a striped mirror.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3754989483229247640?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3754989483229247640/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3754989483229247640' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3754989483229247640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3754989483229247640'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/12/debian-lenny-and-mdadm-software-raid.html' title='Rebooting results in degraded RAID array using Debian Lenny'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-8374193483516066141</id><published>2008-12-20T14:15:00.000-08:00</published><updated>2008-12-20T14:20:53.633-08:00</updated><title type='text'>Calculating EXT2 EXT3 EXT4 stride size when using RAID</title><content type='html'>&lt;div&gt;When formatting a RAID device with an EXT filesystem, it is always advised to specify a stride size. The format utility will take this stride size into account when formatting a device. The stride size is the number you get when you divide the 'chunck' size, as specified with MDADM by the filesystem block size (almost always 4K).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So a 128 KB chunck size gives you a stride of 32. A nice and simple utility to calculate your stride can be found here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://busybox.net/~aldot/mkfs_stride.html"&gt;http://busybox.net/~aldot/mkfs_stride.html&lt;br /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please note that the stripe-with option does not seem to work on Debian Etch. Maybe because that option is too old or too new.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-8374193483516066141?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/8374193483516066141/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=8374193483516066141' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8374193483516066141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/8374193483516066141'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/12/calculating-ext2-ext3-ext4-stride-size.html' title='Calculating EXT2 EXT3 EXT4 stride size when using RAID'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-3913253000811366154</id><published>2008-11-21T01:47:00.000-08:00</published><updated>2009-10-17T15:56:39.390-07:00</updated><title type='text'>Did you know that RDP is as insecure as telnet?</title><content type='html'>&lt;span class="Apple-style-span"   style=";font-family:Helvetica;font-size:12;"&gt;&lt;div style=""&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Microsoft developed the remote desktop protocol in order to allow remote GUI-based access to hosts. It is easy to pick on Microsoft and I do respect what they have accomplished, however, it may not come as a surprise that they did it all wrong with RDP in terms of security.&lt;br /&gt;&lt;br /&gt;By default, out-of-the-box, a server or desktop supports RDP with RC4 encryption. Most recent servers and clients support 128-bits encryption. Sounds secure, right? Well, it isn't unfortunately. There are two major security weaknesses that affect the remote desktop protocol. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. &lt;span style="font-weight: bold;"&gt;Keystroke vulnerability&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The original , RDP version 4.0,  is based on the T.128 protocol. Input events, such as keystrokes, are sent to the server with a unique timestamp as specified in the T.128 standard. This means that each message containing an input event is unique and so will be the checksum generated from this input event data. In other words: if two RDP messages contain the same data, they will still be unique because of the timestamp. Microsoft did it right in RDP version 4.0, but there was one drawback: the timestamp generated overhead, making RDP messages relatively large.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So in RDP version 5.0, Microsoft decided to drop the timestamp. Thus, if two RDP messages contain the same data, their checksum will be identical. So if the same key is pressed twice, the two packets that are generated will contain different encrypted data segments but the checksums will be identical. Although it is not clear which key is pressed, if a larger data set is analyzed, patterns can be discovered and an accurate guess can be made to wich keys are pressed. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a nuttshell an attacker that has access to the data stream of an RDP session will be able to decode keystrokes and thus be able to:&lt;br /&gt;&lt;br /&gt;- obtain your username and password, allowing access to the system!&lt;br /&gt;- read what you type.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please visit the following location as it provides a more detailed explanation of this vulnerability:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.xatrix.org/article.php?s=1943"&gt;http://www.xatrix.org/article.php?s=1943&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Man-in-the-middle-attack&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At first, back in 2003, RDP-clients did not verify the identity of the RDP server. So an attacker can easily spoof an identity and perform a man-in-the-middle-attack. Microsoft attempted to fix this vulnerability but did not succeed. Although more recent RDP-clients do verify the identify of the server, it is still possible to spoof this identity. Microsoft uses a fixed hard-coded key to identify the server with. This key resided in a system DLL that is available to the general public. An attacker can easily obtain this key, create a fake identity and still prove to be legitimate since the identity is signed with a trusted key.&lt;br /&gt;&lt;br /&gt;More detailed information:&lt;br /&gt;&lt;a href="http://www.oxid.it/downloads/rdp-gbu.pdf"&gt;http://www.oxid.it/downloads/rdp-gbu.pdf&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Given these vulnerabilities, RDP is, in its default configuration, virtually as insecure as plain old telnet. Think about that the next time you logon with administrator credentials using RDP.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Tool that implements the attacks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The well-known hack-tool Cain &amp;amp; Abel has a build-in RDP man-in-the-midlle implementation. It automatically decrypts (parts of) RDP data packets and reveals the key strokes that are send to a server. So if you don't believe this story and just want to see for yourself how easy such an attack really is, download this tool and test it for yourself.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;To defend against the attacks&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;To protect against this attack, it is strongly advised to implement RDP based on TLS/SSL encryption. Ofcourse, you'll have to install a server-side SSL-certificate and it may be necessary to obtain an official (as in not self-) signed certificate.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet2.microsoft.com/windowsserver/en/library/a92d8eb9-f53d-4e86-ac9b-29fd6146977b1033.mspx?mfr=true"&gt;http://technet2.microsoft.com/windowsserver/en/library/a92d8eb9-f53d-4e86-ac9b-29fd6146977b1033.mspx?mfr=true&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;So please understand the risks of using RDP, especially over the Internet. If TLS is for some reason not an option, use an encrypted VPN-connection to tunnel the RDP-session in, as an added layer of protection. Never use RDP in its default configuration over the interne without additional protection.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT: IN RDP version 6.0 the man-in-the-middle-attack is no longer possible!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;EDIT2: Configure your terminal server to use FIPS compliant encryption. It will use Triple DES encryption even if TLS is not enabled.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"   style="  line-height: 16px; font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;blockquote&gt;After you enable this setting on a Windows Server 2003-based computer, the following is true:&lt;ul style="-webkit-box-sizing: border-box; position: relative; "&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;The RDP channel is encrypted by using the 3DES algorithm in Cipher Block Chaining (CBC) mode with a 168-bit key length.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;The SHA-1 algorithm is used to create message digests.&lt;/li&gt;&lt;li style="-webkit-box-sizing: border-box; position: relative; "&gt;Clients must use the RDP 5.2 client program or a later version to connect.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;So you don't need to use TLS if you want to use a more secure algorithm than RC4.&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-3913253000811366154?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/3913253000811366154/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=3913253000811366154' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3913253000811366154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/3913253000811366154'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/11/did-you-know-that-rdp-is-s-secure-as.html' title='Did you know that RDP is as insecure as telnet?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-7582122260152973795</id><published>2008-11-14T13:16:00.000-08:00</published><updated>2008-11-14T13:24:41.069-08:00</updated><title type='text'>The kind of sound you never want to hear from your computer</title><content type='html'>&lt;div&gt;&lt;a href="http://datacent.com/hard_drive_sounds.php"&gt;The sounds of hard drives that have perished&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These sounds are only frightening or scary if you imagine your precious data only exists on that failing drive. If you make consistent and frequent backups and/or you run a fault-tolerant RAID flavour, it is but a nuisance. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-7582122260152973795?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/7582122260152973795/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=7582122260152973795' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7582122260152973795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/7582122260152973795'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/11/kind-of-sound-you-never-want-to-hear.html' title='The kind of sound you never want to hear from your computer'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-2367110575230523894</id><published>2008-10-05T14:47:00.000-07:00</published><updated>2008-10-18T10:13:06.537-07:00</updated><title type='text'>Is storage really that cheap?</title><content type='html'>Nowadays you can buy a 1 TB harddrive for less than 100 euro's . So I build myself a 4 TB NAS box, which is already 50% full. However, although it is to some degree fault-tollerant by using RAID 6, one mistake or catastrophic hardware faillure and all data is lost.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And that's where the 'problem' start. For every € spend on storage, you may need another € to secure that storage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can choose to take and accept the risk outlined earlier and not to make backups. However, if you do want to make backups of terrabytes of storage, how are you going to pull that off without too much cost? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my opinion, the only reliable and usable solution is to build a second NAS box and sync the two. Ideally, the machines reside at different locations, but hey, I'm talking about a home solution, not a professional environment. Although you might ask why on earth you need 4 TB of space at home.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, the point I'm trying to make is that although storage in itself is cheap, if you want to make backups and really keep your data safe, storage is far more expensive than you might think.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-2367110575230523894?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/2367110575230523894/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=2367110575230523894' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2367110575230523894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/2367110575230523894'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/10/is-storage-really-that-cheap.html' title='Is storage really that cheap?'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-401346283849369029</id><published>2008-09-28T01:06:00.000-07:00</published><updated>2009-12-21T17:06:53.981-08:00</updated><title type='text'>Highpoint RocketRAID 2320 on Debian howto</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Get the 'open source' driver from www.highpoint-tech.com.  (It's not open source, it uses a closed binary driver.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;http://www.highpoint-tech.com/USA/bios_rr2320.htm&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Install the kernel headers if you haven't already&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; apt-get install linux-headers-2.6.18-6-k7&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- extract the downloaded driver with tar xzf &lt;filename&gt;&lt;/filename&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- cd into the product/rr232x/linux directory&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- type 'make'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As of 28 september 2008, this gives no errors. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, a 'make install' will fail. This is cause by the fact that the installation script uses mkinitrd, which is obsolete: the mkinitramfs command should be used. So we have to edit a script. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Update Dec 2009: the latest drivers do not need the following steps anymore. &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- vi osm/linux/install.sh&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- replace all occurrences of mkinitrd with mkinitramfs ( press : and type %s/mkinitrd/mkinitramfs/g and then :wq)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Continue here:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Go back to the product/rr232x/linux directory and type 'make install'.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's it.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-401346283849369029?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/401346283849369029/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=401346283849369029' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/401346283849369029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/401346283849369029'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/09/highpoint-rocketraid-2320-on-debian.html' title='Highpoint RocketRAID 2320 on Debian howto'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-5563076527153113870</id><published>2008-09-12T05:19:00.000-07:00</published><updated>2008-09-12T05:25:29.297-07:00</updated><title type='text'>Server status on your iPhone</title><content type='html'>&lt;div&gt;Totally useless but fun nonetheless. I made an iPhone-compatible webpage showing the current status of my storage server. It is based on some shell scripts and some python, using an iPhone-specific website template.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1tZXi-PpPDE/SMpeZWKzhUI/AAAAAAAAAAU/QvLmmwMNgAA/s1600-h/serverstats.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_1tZXi-PpPDE/SMpeZWKzhUI/AAAAAAAAAAU/QvLmmwMNgAA/s400/serverstats.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5245108505567003970" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-5563076527153113870?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/5563076527153113870/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=5563076527153113870' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5563076527153113870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/5563076527153113870'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/09/serverstatus-on-your-iphone.html' title='Server status on your iPhone'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1tZXi-PpPDE/SMpeZWKzhUI/AAAAAAAAAAU/QvLmmwMNgAA/s72-c/serverstats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-6086011410884375121</id><published>2008-08-10T04:36:00.000-07:00</published><updated>2008-08-10T15:16:30.163-07:00</updated><title type='text'>Building a RAID 6 array of mixed drives</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;To be honest, 4 TB of storage isn't really necessary for home usage. However, I like to collect movies in full DVD or HD quality and so I need some storage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I decided to build myself a NAS box based on Debian Etch. Samba is used to allow clients to access the data. The machine itself was initially based on 4 x 0.5 TB disks using the four SATA ports on the mainboard. With Linux build-in support for software RAID, I created a RAID 5 array, giving me 1.5 TB of storage space. Since a single movie is around 4 GB, the 1.5 TB turned out to become rather tight.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I bought 4 x 1 TB disks and a Highpoint RocketRaid 2320 controller (SATA 4x). I put all 8 disks on this controller.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wanted to create a single RAID 6 array using both the 1 TB disks and the 0.5 TB disks. I didn't want to create two separate array's because although it would have provided additional space, it wouldn't have given me the same safety level as RAID 6 does.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I mainly chose for RAID 6 since I cannot afford a backup solution  for this amount of data. I'm aware that RAID is no substitute for a proper backup, but it's an accepted risk for me.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using both 1 TB disks and 0.5 TB disks, how to create a RAID 6 array using different drive sizes? The solution is fairly simple. Just put two 0.5 TB disks together in one RAID 0 volume and you'll have a 'virtual' 1 TB disk. Since I had four 0.5 TB disks, I could create 2 'virtual' 1 TB disks. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1tZXi-PpPDE/SJ7S_gQ3RyI/AAAAAAAAAAM/1slri-UilCs/s1600-h/raid6scheme.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_1tZXi-PpPDE/SJ7S_gQ3RyI/AAAAAAAAAAM/1slri-UilCs/s320/raid6scheme.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5232851805485352738" /&gt;&lt;/a&gt;The only downside is that I had to skim a little bit of storage capacity of the native 1 TB drives, because 2 x 0.5 TB provides slightly less storage space than a single 1 TB disk. We're talking about something like 50 MB here, so It's not a big deal in my opinion. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The funny thing is that this array actually performs rather well. The disks are connected using a HighPoint RocketRaid 2320 controller. This controller is used just for it's SATA-ports, the on-board RAID functionality is not used. For RAID, I use Linux software RAID, using mdadm. This is how the RAID 6 array looks like:&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;server:~# mdadm --detail /dev/md5&lt;br /&gt;/dev/md5:&lt;br /&gt;    Version : 00.90.03&lt;br /&gt;Creation Time : Thu Jul 24 22:40:26 2008&lt;br /&gt; Raid Level : raid6&lt;br /&gt; Array Size : 3906359808 (3725.40 GiB 4000.11 GB)&lt;br /&gt;Device Size : 976589952 (931.35 GiB 1000.03 GB)&lt;br /&gt;Raid Devices : 6&lt;br /&gt;Total Devices : 6&lt;br /&gt;Preferred Minor : 5&lt;br /&gt;Persistence : Superblock is persistent&lt;br /&gt;&lt;br /&gt;Update Time : Sun Aug 10 15:36:18 2008&lt;br /&gt;      State : clean&lt;br /&gt;Active Devices : 6&lt;br /&gt;Working Devices : 6&lt;br /&gt;Failed Devices : 0&lt;br /&gt;Spare Devices : 0&lt;br /&gt;&lt;br /&gt; Chunk Size : 128K&lt;br /&gt;&lt;br /&gt;       UUID : 0442e8fa:acd9278e:01f9e43d:ac30fbff (local to host server)&lt;br /&gt;     Events : 0.14170&lt;br /&gt;&lt;br /&gt;Number   Major   Minor   RaidDevice State&lt;br /&gt;   0       8        1        0      active sync   /dev/sda1&lt;br /&gt;   1       8       17        1      active sync   /dev/sdb1&lt;br /&gt;   2       8       33        2      active sync   /dev/sdc1&lt;br /&gt;   3       8       49        3      active sync   /dev/sdd1&lt;br /&gt;   4       9        0        4      active sync   /dev/md0&lt;br /&gt;   5       9        1        5      active sync   /dev/md1&lt;/pre&gt;&lt;div&gt;And this is how this array performs:&lt;/div&gt;&lt;pre&gt;server:~# dd if=/storage/test.bin of=/dev/null bs=1M&lt;br /&gt;10000+0 records in&lt;br /&gt;10000+0 records out&lt;br /&gt;10485760000 bytes (10 GB) copied, 45.7107 seconds, 229 MB/s&lt;br /&gt;server:~# dd if=/dev/zero of=/storage/test.bin bs=1M count=10000&lt;br /&gt;10000+0 records in&lt;br /&gt;10000+0 records out&lt;br /&gt;10485760000 bytes (10 GB) copied, 81.0798 seconds, 129 MB/s&lt;/pre&gt;With 229 MB/s read performance and 129 MB/s write performance using RAID 6, I think I should be content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-6086011410884375121?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/6086011410884375121/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=6086011410884375121' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6086011410884375121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/6086011410884375121'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/08/building-raid-6-array-of-mixed-drives.html' title='Building a RAID 6 array of mixed drives'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1tZXi-PpPDE/SJ7S_gQ3RyI/AAAAAAAAAAM/1slri-UilCs/s72-c/raid6scheme.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3150674382612555986.post-1876934975378460280</id><published>2008-08-02T01:55:00.000-07:00</published><updated>2008-08-02T03:53:19.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAID 10'/><category scheme='http://www.blogger.com/atom/ns#' term='disks'/><category scheme='http://www.blogger.com/atom/ns#' term='array'/><category scheme='http://www.blogger.com/atom/ns#' term='RAID 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='storage'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Why RAID 1, 5  and 10 will kill you some day</title><content type='html'>How important is availability of an information system to you and your company? What are the costs of, let's say, a couple of hours downtime and maybe the loss of all the work since the last backup? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Depending on the information system, the impact can be quite grave, I presume. So what are the biggest risks regarding the availability of your systems? Human error is probably number one. Number two might be the hardware.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the most unreliable components of the hardware on which your precious information systems run is the good old hard drive. There are not two but three certainties in life: death, taxes and that sooner or later hard drives will fail.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So back in the eighties (some patent was already awarded back in 1978) some smart people invented RAID. Using RAID, your information system can tollerate a disk faillure, and still continue to operate. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are many different tastes of RAID, so called RAID levels. One of the most populair RAID levels is RAID 1. Two disks acting like 1. If one fails, the other takes over. For performance, you can stack them together and you get RAID 10 arrays. However, 50% of your storage space is waisted because for every n of storage, you need (n / c ) * 2 disks, where c represents the capacity of a single drive.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;RAID level 5 is a more efficient solution. Using this RAID level, only the capacity of one disk is lost in order to provide redundancy. So for every n of storage, you need ( n / c ) + 1 disks. It is easy to see that for larger arrays with more disks, RAID 5 is much more efficient. The downside of RAID 5 is mainly (write) performance, if compared to RAID 10. However, if it is sufficient, that is often not an issue. Hence the popularity of RAID 5. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This story is all about risk vs. costs. And there is a risk using RAID 1 and 5 that can not be neglected that should be pointed out. If a drive fails, redundancy is lost. At that moment, until the faulty drive is replaced you will run the risk of losing the entire RAID array and all data if another disk would fail. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How big is that risk? Well, that is the weakest point of this article. I honestly don't know. There is some anecdotal "evidence" that it occurs occasionally. And it is not that surprising: restoring an array puts extra stress on all de disks involved, which might be fatal for a second drive. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today, RAID arrays of 10+ disks are not a rarity. With that amount of drives, it wouldn't be surprising if, during recovery, a second drive would fail. It's easy: with a 10-disk array the chance that a disk fails is twice that of a 5 disk array. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most common solution is to revert back to RAID 10. RAID 10 consists of disk pairs concatenated to one big virtual disk. RAID 10 can tollerate up to 50% loss of drives if one member of every pair would fail. The caveat is obvious: if a disk fails and the other drive of that pair will fail during recovery, the whole array will be lost. However, compared with RAID 5, the risk is reduced. In degraded mode (non-redundant) any drive failure will destroy a RAID 5 array. RAID 10 can tollerate additional drive failures as long as it is not the drive of the pair that just already lost one. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, although the risk that a second drive failure might destroy your array is greatly reduced using RAID 10 (compared to RAID 5), there is still a risk that the array is lost is the 'wrong' drive fails. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the solution should be that redundancy is not lost if a single drive failure occurs. RAID 6 provides that solution. RAID 6 is in nature identical to RAID 5. However, an additional drive is sacrified for additional redundancy. So for every n of storage, you need ( n / c ) + 2 disks. If you need 10 TB of storage using 1 TB disks, you need 12 disks. If a disk fails, the array is still redundant. Even a second drive can fail and the array will still continue to operate. I think that the chance that a third drive would fail is so low that it is an accepted risk.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For smaller arrays, the risk of a double drive failure might not that high to justify RAID 6, but with larger arrays (more drives) RAID 6 might become a necessity.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So there you have it. With current costs of hard drives and the wide support for RAID 6, it is an option that should be taken into account when designing the hardware platform for an information system. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aftertought: this article is mainly about considering RAID 6 in stead of RAID 5. Raid 5 or 6 may often not be a solution if performance in terms of IO (input/output) is an issue. Please note that when running in degraded mode (a drive failure occurred) the performance penalty on RAID 5 and RAID 6 will be severe (may be 80%). RAID 10 will suffer far less in that regard.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3150674382612555986-1876934975378460280?l=louwrentius.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://louwrentius.blogspot.com/feeds/1876934975378460280/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3150674382612555986&amp;postID=1876934975378460280' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1876934975378460280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3150674382612555986/posts/default/1876934975378460280'/><link rel='alternate' type='text/html' href='http://louwrentius.blogspot.com/2008/08/why-raid-1-and-5-will-kill-you-some-day.html' title='Why RAID 1, 5  and 10 will kill you some day'/><author><name>Q</name><uri>http://www.blogger.com/profile/08967457441008198818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
