<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog blog("Baptiste Wicht"); (Posts about homelab)</title><link>https://baptiste-wicht.com/</link><description></description><atom:link href="https://baptiste-wicht.com/categories/homelab.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Thu, 20 Aug 2026 05:27:32 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Refreshing my homelab</title><link>https://baptiste-wicht.com/posts/2026/08/refreshing-my-homelab.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;Recently, I have bene doing some upgrades and refresh to my homelab rack. Some of these updates are just getting started, but several of these are completed already.&lt;/p&gt;
&lt;p&gt;Snce we moved to the new house, we have 10G internet. So, I upgraded the networking on the rack to be 10G network. This means, two 10G switches and two 10G NIC (Intel) on the firewall server. I also installed one 10G NIC on my desktop computer to get 10G internet. I plan to upgrade the other two servers to 10G ethernet in the next few months. Obviously, I do not really need 10G internet on my computer, but it was fun to achieve that.&lt;/p&gt;
&lt;p&gt;I have also installed a new UPS in the rack. I went with Powerwalker this time because it much more affordable than APC. The reviews on that UPS looked good, so I am trying it. So far, it has been really good. It can keep my homelab running for about 45 minutes. This was necessary multiple times during the installation of our solar panels.&lt;/p&gt;
&lt;p&gt;After many years of service, the hardware in some of the servers needed upgrading. I had some issues on the hardware of the firewall and the main server did not have enough RAM to handle all the services. I was running Openproject and InfluxDB (among others) on the same machine and this did not work well with 4Go of RAM. So, I refreshed the entire hardware and also changed the case. The cases from Norco and Ri-vier were quite nice but also very short so not great for airflow and for extensibility. I switched to Lanberg cases for the servers that were upgraded.&lt;/p&gt;
&lt;p&gt;Talking about servers, I also added a new server for Home Assistant. I got rid of Samsung Smarthings and Hue and replaced everything with Home Assistant. I can now control many things in the house and I have many more plans. I am really impressed by this software, it's nothing short of amazing.&lt;/p&gt;
&lt;p&gt;I also changed my KVM switch. I had an hardware KVM switch with a hardware monitor console. But the keyboard was falling into pieces and the connectivity was ancient (VGA). So I switched to multiple JetKVM. I am very happy about them. They are much easier to setup than piKVM and and they are cheaper. I also ordered a 3D printed rack mount on ebay.&lt;/p&gt;
&lt;p&gt;The next thing I want to refresh is the NAS. The hardware is also in need of a refresh because it still has really old hardware (10+ years old at this point). However, I also want to switch the RAID to ZFS (mostly to learn) instead of LVM + mdadm. But this means either getting rid of a lot of data or replacing all disks. And disks are currently insanely expensive.&lt;/p&gt;
&lt;p&gt;As for software, all servers are still running Gentoo. I am still quite happy about it, even though I would sometimes prefer faster upgrades.&lt;/p&gt;
&lt;p&gt;Here is a picture of the rack in its current state:&lt;/p&gt;
&lt;img alt="/images/homelab_refresh.jpg" src="https://baptiste-wicht.com/images/homelab_refresh.jpg"&gt;
&lt;p&gt;What about you? Do you have a homelab?&lt;/p&gt;</description><category>Home Assistant</category><category>homelab</category><category>Linux</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2026/08/refreshing-my-homelab.html</guid><pubDate>Thu, 20 Aug 2026 04:31:21 GMT</pubDate></item><item><title>How to fix mdadm RAID5 / RAID6 growing stuck at 0K/s ?</title><link>https://baptiste-wicht.com/posts/2017/08/how-to-fix-mdadm-raid5-raid6-growing-stuck-at-0ks.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I just started growing again my RAID6 array from 12 to 13 disks and
I encountered a new issue. The reshape started, but with a speed of 0K/s. After
some searching, I found a very simple solution:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_dc74876bb805490faa855b2122c453d0-1" name="rest_code_dc74876bb805490faa855b2122c453d0-1" href="https://baptiste-wicht.com/posts/2017/08/how-to-fix-mdadm-raid5-raid6-growing-stuck-at-0ks.html#rest_code_dc74876bb805490faa855b2122c453d0-1"&gt;&lt;/a&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;max&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/sys/block/md0/md/sync_max
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And the reshape started directly at 50M/s :)&lt;/p&gt;
&lt;p&gt;The solution is the same if you are growing any type of RAID level with parity
(RAID5, RAID6, ...).&lt;/p&gt;
&lt;p&gt;Normally, the issues I have are related to speed not very good. I've written
a post in the post about
&lt;a class="reference external" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html"&gt;how to speed up RAID5 / RAID6 growing with mdadm&lt;/a&gt;.
Although RAID5 / RAID6 growing, or another reshape operation, will never be very
fast, you can still speed up the process a lot from a few days to a few hours.
Currently, my reshape is working at 48M/s and I'm looking at around 16 hours of
reshape, but I have 13 disks of 3To, so it's not so bad.&lt;/p&gt;
&lt;p&gt;I hope this very simple tip can be helpful to some of you :)&lt;/p&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>Linux</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2017/08/how-to-fix-mdadm-raid5-raid6-growing-stuck-at-0ks.html</guid><pubDate>Sat, 12 Aug 2017 10:28:43 GMT</pubDate></item><item><title>Migrated from owncloud 5 to Nextcloud 11</title><link>https://baptiste-wicht.com/posts/2017/03/migrated-from-owncloud-5-to-nextcloud-11.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;For several years now I've been using Owncloud running on one of my servers.
I'm using simply using as a simple synchronization, I don't use any of the tons
of fancy features they keep adding. Except from several synchronization issues,
I haven't had too much issues with it.&lt;/p&gt;
&lt;p&gt;However, I have had a very bad time with updates of Owncloud. The last time
I tried, already long ago, was to upgrade from 5.0 to 6.0 and I never succeeded
without losing all the configuration and having to do the resync. Therefore,
I've still an Owncloud 5.0 running. From this time, I had to say that I've been
lazy and didn't try again to upgrade it. Recently, I've received several mails
indicating that this is a security threat.&lt;/p&gt;
&lt;p&gt;Since I was not satisfied with updates in Owncloud and its security has been
challenged recently, I figured it would be a good moment to upgrade to Nextcloud
which is a very active fork of Owncloud that was forked by developers of
Owncloud.&lt;/p&gt;
&lt;p&gt;I haven't even tried to do an upgrade from such an old version to the last
version of Nextcloud, it was doomed to fail. Therefore, I made a new clean
installation. Since I only use the sync feature of the tool, it does not really
matter, it is just some time lost to sync everything again, but nothing too bad.&lt;/p&gt;
&lt;p&gt;I configured a new PostgreSQL on one of my servers for the new database and then
installed Nextcloud 11 on Gentoo. It's a bit a pain to have a working Nginx
configuration for Nextcloud, I don't advice to do it by hand, better take one
from the official documentation, you'll also gain some security. One very bad
thing in the installation process is that you cannot choose the database prefix,
it's set like Owncloud. The problem with that is that you cannot install both
Owncloud and Nextcloud on the same database which would be more practical for
testing purpose. It's a bit retarded in my opinion, but not a big problem in the
end. Other than these two points, everything went well and it was installation
pretty nicely. Then, you should have your user ready to go.&lt;/p&gt;
&lt;img alt="Nextcloud view" class="align-center" src="https://baptiste-wicht.com/images/nextcloud.png"&gt;
&lt;p&gt;As for the interface, I don't think there is a lot to tell here. Most of it is
what you would except from this kind of tool. Moreover, I very rarely use the
web interface or any of the feature that are not the sync feature. One thing
that is pretty cool I think is the monitoring graphs in the Admin section of the
interface. You can the number of users connected, the memory used and the CPU
load. It's pretty useful if you share your Nextcloud between a lot of different
users.&lt;/p&gt;
&lt;p&gt;I didn't have any issue with the sync either. I used the nextcloud-client
package on Gentoo directly and it worked perfectly directly. It took about 10
minutes to sync everything again (about 5GB). I'll have to do the same thing on
my other computer as well, but I don't think I'll have any issue.&lt;/p&gt;
&lt;p&gt;So far, I cannot say that this is better than Owncloud, I just hope the next
upgrade will fare better than they did on Owncloud. Moreover, I also hope that
the security that they promise is really here and I won't have any problem with
it. I'll see in the future!&lt;/p&gt;
&lt;p&gt;For more information about nextcloud and owncloud compared to each other, you
can read &lt;a class="reference external" href="https://civihosting.com/blog/nextcloud-vs-owncloud/"&gt;this in-depth comparison&lt;/a&gt;, by David Feldman.&lt;/p&gt;</description><category>Gentoo</category><category>homelab</category><category>Linux</category><category>servers</category><category>Tools</category><guid>https://baptiste-wicht.com/posts/2017/03/migrated-from-owncloud-5-to-nextcloud-11.html</guid><pubDate>Fri, 03 Mar 2017 08:08:58 GMT</pubDate></item><item><title>How to speed up RAID (5-6) growing with mdadm ?</title><link>https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;Yesterday, I added my 11th disk to my RAID 6 array. As the last time it took my more than 20 hours, I spent some time investigating how to speed things up and this post contains some tips on how to achieve good grow performances. With these tips, I have been able to reach a speed of about 55K in average during reshape. It did finish in about 13 hours.&lt;/p&gt;
&lt;p&gt;First, take into account that some of these tips may depend on your configuration. In my case, this server is only used for this RAID, so I don't care if the CPU is used a lot during rebuild or if other processes are suffering from the load. This may not be the case with your configuration. Moreover, I speak only of hard disks, if you use SSD RAID, there are probably better way of tuning the rebuild (or perhaps it is fast enough). Finally, you have know that a RAID reshape is going to be slow, there is no way you'll grow a 10+ RAID array in one hour. G&lt;/p&gt;
&lt;p&gt;In the examples, I use /dev/md0 as the raid array, you'll have to change this to your array name.&lt;/p&gt;
&lt;p&gt;The first 3 tips can be used even after the rebuild has started and you should see the differences in real-time. But, these 3 tips will also be erased after each reboot.&lt;/p&gt;
&lt;section id="increase-speed-limits"&gt;
&lt;h2&gt;Increase speed limits&lt;/h2&gt;
&lt;p&gt;The easiest thing to do is to increase the system speed limits on raid. You can see the current limits on your system by using these commands:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_15af7100a32d4ee592b226da875191a8-1" name="rest_code_15af7100a32d4ee592b226da875191a8-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_15af7100a32d4ee592b226da875191a8-1"&gt;&lt;/a&gt;sysctl&lt;span class="w"&gt; &lt;/span&gt;dev.raid.speed_limit_min
&lt;a id="rest_code_15af7100a32d4ee592b226da875191a8-2" name="rest_code_15af7100a32d4ee592b226da875191a8-2" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_15af7100a32d4ee592b226da875191a8-2"&gt;&lt;/a&gt;sysctl&lt;span class="w"&gt; &lt;/span&gt;dev.raid.speed_limit_max
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;These values are set in Kibibytes per second (KiB/s).&lt;/p&gt;
&lt;p&gt;You can put them to high values:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_b1b9038f38da49d7939fb29870f25ce4-1" name="rest_code_b1b9038f38da49d7939fb29870f25ce4-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_b1b9038f38da49d7939fb29870f25ce4-1"&gt;&lt;/a&gt;sysctl&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;dev.raid.speed_limit_min&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;100000&lt;/span&gt;
&lt;a id="rest_code_b1b9038f38da49d7939fb29870f25ce4-2" name="rest_code_b1b9038f38da49d7939fb29870f25ce4-2" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_b1b9038f38da49d7939fb29870f25ce4-2"&gt;&lt;/a&gt;sysctl&lt;span class="w"&gt; &lt;/span&gt;-w&lt;span class="w"&gt; &lt;/span&gt;dev.raid.speed_limit_max&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;500000&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;At least with these values, you won't be limited by the system.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="increase-stripe-cache-size"&gt;
&lt;h2&gt;Increase stripe cache size&lt;/h2&gt;
&lt;p&gt;By allowing the array to use more memory for its stripe cache, you may improve the performances. In some cases, it can improve performances by up to 6 times. By default, the size of the stripe cache is 256, in pages. By default, Linux uses 4096B pages. If you use 256 pages for the stripe cache and you have 10 disks, the cache would use 10*256*4096=10MiB of RAM. In my case, I have increased it to 4096:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_350a1f1a0dc14c53a617e7e3dae1f619-1" name="rest_code_350a1f1a0dc14c53a617e7e3dae1f619-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_350a1f1a0dc14c53a617e7e3dae1f619-1"&gt;&lt;/a&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4096&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/sys/block/md0/md/stripe_cache_size
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The maximum value is 32768. If you have many disks, this may well take all your available memory. I don't think values higher than 4096 will improve performance, but feel free to try it ;)&lt;/p&gt;
&lt;/section&gt;
&lt;section id="increase-read-ahead"&gt;
&lt;h2&gt;Increase read-ahead&lt;/h2&gt;
&lt;p&gt;If configured too low, the read-ahead of your array may make things slower.&lt;/p&gt;
&lt;p&gt;You can see get the current read-ahead value with this command:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_b9e549dbcde44bc99d362a21491e234f-1" name="rest_code_b9e549dbcde44bc99d362a21491e234f-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_b9e549dbcde44bc99d362a21491e234f-1"&gt;&lt;/a&gt;blockdev&lt;span class="w"&gt; &lt;/span&gt;--getra&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;These values are in 512B sector. You can set it to 32MB to be sure:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_4bcafb4f4df64853b898b18a06104377-1" name="rest_code_4bcafb4f4df64853b898b18a06104377-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_4bcafb4f4df64853b898b18a06104377-1"&gt;&lt;/a&gt;blockdev&lt;span class="w"&gt; &lt;/span&gt;--setra&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;65536&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This can improve the performances, but don't expect this to be a game-changer unless it was configured really low at the first place.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="tip-reshape-stuck-at-0k-s"&gt;
&lt;h2&gt;Tip: Reshape stuck at 0K/s&lt;/h2&gt;
&lt;p&gt;If reshape starts, but with a speed of 0K/s, you can try to issue this simple
command:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_3faf537dc31644d69cd622ae3447aa3c-1" name="rest_code_3faf537dc31644d69cd622ae3447aa3c-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_3faf537dc31644d69cd622ae3447aa3c-1"&gt;&lt;/a&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;max&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/sys/block/md0/md/sync_max
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And the reshape should start directly at your maximum speed.&lt;/p&gt;
&lt;p&gt;The solution is the same if you are growing any type of RAID level with parity
(RAID5, RAID6, ...).&lt;/p&gt;
&lt;/section&gt;
&lt;section id="bonus-speed-up-standard-resync-with-a-write-intent-bitmap"&gt;
&lt;h2&gt;Bonus: Speed up standard resync with a write-intent bitmap&lt;/h2&gt;
&lt;p&gt;Although it won't speed up the growing of your array, this is something that you should do after the rebuild has finished. Write-intent bitmaps is a kind of map of what needs to be resynced. This is of great help in several cases:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;When the computer crash (power shutdown for instance)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If a disk is disconnected, then reconnected.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In these case, it may totally avoid the need of a rebuild which is great in my opinion. Moreover, it does not take any space on the array since it uses space that is not usable by the array.&lt;/p&gt;
&lt;p&gt;Here is how to enable it:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_c6eac1b8336944f6a61c5ffd136a429a-1" name="rest_code_c6eac1b8336944f6a61c5ffd136a429a-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_c6eac1b8336944f6a61c5ffd136a429a-1"&gt;&lt;/a&gt;mdadm&lt;span class="w"&gt; &lt;/span&gt;--grow&lt;span class="w"&gt; &lt;/span&gt;--bitmap&lt;span class="o"&gt;=&lt;/span&gt;internal&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;However, it may cause some write performance degradation. In my case, I haven't seen any noticeable degradation, but if it is the case, you may want to disable it:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_8655cef2437e4b1da48452af36e71ed2-1" name="rest_code_8655cef2437e4b1da48452af36e71ed2-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_8655cef2437e4b1da48452af36e71ed2-1"&gt;&lt;/a&gt;mdadm&lt;span class="w"&gt; &lt;/span&gt;--grow&lt;span class="w"&gt; &lt;/span&gt;--bitmap&lt;span class="o"&gt;=&lt;/span&gt;none&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="bonus-monitor-rebuild-process"&gt;
&lt;h2&gt;Bonus: Monitor rebuild process&lt;/h2&gt;
&lt;p&gt;If you want to monitor the build process, you can use the watch command:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_7d2a7b613300445aad64aacc7912f948-1" name="rest_code_7d2a7b613300445aad64aacc7912f948-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_7d2a7b613300445aad64aacc7912f948-1"&gt;&lt;/a&gt;watch&lt;span class="w"&gt; &lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;/proc/mdstat
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;With that you'll see the rebuild going in real-time.&lt;/p&gt;
&lt;p&gt;You can also monitor the I/O statistics:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_9cdd7ff83ab5469a9c46019ad18d630f-1" name="rest_code_9cdd7ff83ab5469a9c46019ad18d630f-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_9cdd7ff83ab5469a9c46019ad18d630f-1"&gt;&lt;/a&gt;watch&lt;span class="w"&gt; &lt;/span&gt;iostat&lt;span class="w"&gt; &lt;/span&gt;-k&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="bonus-how-to-grow-a-raid-5-6-array"&gt;
&lt;h2&gt;Bonus: How to grow a RAID 5-6 array&lt;/h2&gt;
&lt;p&gt;As a sidenote, this section indicates how to grow an array. If you  want to add the disk /dev/sdl to the array /dev/md0, you'll first have to add it:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_283de717d66641428478458ec2c992c5-1" name="rest_code_283de717d66641428478458ec2c992c5-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_283de717d66641428478458ec2c992c5-1"&gt;&lt;/a&gt;mdadm&lt;span class="w"&gt; &lt;/span&gt;--add&lt;span class="w"&gt; &lt;/span&gt;/dev/md0&lt;span class="w"&gt; &lt;/span&gt;/dev/sdl
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This will add the disk as a spare disk. If you had 5 disks before, you'll want to grow it to 6:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_37a9a901d9ec495cbde1406d2b88029e-1" name="rest_code_37a9a901d9ec495cbde1406d2b88029e-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_37a9a901d9ec495cbde1406d2b88029e-1"&gt;&lt;/a&gt;mdadm&lt;span class="w"&gt; &lt;/span&gt;--grow&lt;span class="w"&gt; &lt;/span&gt;--backup-file&lt;span class="o"&gt;=&lt;/span&gt;/root/grow_md0_backup_file&lt;span class="w"&gt; &lt;/span&gt;--raid-devices&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The backup file must be on another disk of course. The backup file is optional but improves the chance of success if you have a power shutdown or another form of unexpected shutdown. If you know what you're doing, you can grow it without backup-file:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_f370469f9b3b429991fe897b968527a4-1" name="rest_code_f370469f9b3b429991fe897b968527a4-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_f370469f9b3b429991fe897b968527a4-1"&gt;&lt;/a&gt;mdadm&lt;span class="w"&gt; &lt;/span&gt;--grow&lt;span class="w"&gt; &lt;/span&gt;--raid-devices&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This command will return almost instantly, but the actual reshape won't likely be finished for hours (maybe days).&lt;/p&gt;
&lt;p&gt;Once the rebuild is finished, you'll still have to extend the partitions with resize2fs. If you use LVM on top of the array, you'll have to resize the Physical Volume (PV) first:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_2b194c5edb074c0eb83ca5ceab3be604-1" name="rest_code_2b194c5edb074c0eb83ca5ceab3be604-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_2b194c5edb074c0eb83ca5ceab3be604-1"&gt;&lt;/a&gt;pvresize&lt;span class="w"&gt; &lt;/span&gt;/dev/md0
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;and then extend the Logical Volume (s) (LV). For instance, if you want to add 1T to a LV named /dev/vgraid/work:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_b8699ff8f05c4e6889ccbb003dfb0ca4-1" name="rest_code_b8699ff8f05c4e6889ccbb003dfb0ca4-1" href="https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html#rest_code_b8699ff8f05c4e6889ccbb003dfb0ca4-1"&gt;&lt;/a&gt;vgextend&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;-L+1T&lt;span class="w"&gt; &lt;/span&gt;/dev/vgraid/work
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The -r option will automatically resize the underlying filesystem. Otherwise, you'd still have to resize it with resize2fs.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;These are the changes I have found that speed up the reshape process. There are others that you may test in your case. For instance, in some systems disabling NCQ on each disk may help.&lt;/p&gt;
&lt;p&gt;I hope that these tips will help you doing fast rebuilds in your RAID array :)&lt;/p&gt;
&lt;/section&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>Linux</category><category>LVM</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2015/03/how-to-speed-up-raid-5-6-growing-with-mdadm.html</guid><pubDate>Sat, 07 Mar 2015 14:01:56 GMT</pubDate></item><item><title>Ri-Vier RV 2004 Rackmount case Review</title><link>https://baptiste-wicht.com/posts/2014/05/ri-vier-rv-2004-rackmount-case-review.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I ordered a new rackmount case for my third server at home. Previously, I only used Norco cases, but the European distributor of Norco (Ri-vier, Netherlands) decided to switch to using its own cases, the Ri-vier cases. &lt;/p&gt;
&lt;p&gt;Since the shipping fees are very expensive from United States to Switzerland, I decided to stick with Ri-vier for now and try their new cases. &lt;/p&gt;
&lt;p&gt;I ordered and received the RV-2004 case. This is a 2U case with one 5.25" and 4 3.5". It is a very short case. &lt;/p&gt;
&lt;h3&gt;The case&lt;/h3&gt;
&lt;p&gt;Here is a picture of the case: &lt;/p&gt;
&lt;p&gt;&lt;img alt="RV-2004 case" src="https://baptiste-wicht.com/images/RVS-2004_1_LRG.jpg"&gt;&lt;/p&gt;
&lt;p&gt;It looks quite good actually and very like the Norco equivalents. &lt;/p&gt;
&lt;p&gt;And here is the front: &lt;/p&gt;
&lt;p&gt;&lt;img alt="RV-2004 case front view" src="https://baptiste-wicht.com/images/RVS-2004_4_LRG.jpg"&gt;&lt;/p&gt;
&lt;p&gt;You can put a DVD reader on front. There are also two USB ports and several leds. I really don't like the front panel. There a lot of screws that maintain the front panel. Moreover, the part with the buttons and the LEDs is quite hard to put right and seems of really low facture, I haven't been able to make the LEDs work as of now. The buttons have a kind of plastic cap on them, but it is very hard to make them stay on the buttons when you install the front panel. Finally, there are two fans on the front on their own panel. You can remove the fans, but they are so close together, that most silent fans you will buy won't fit side by side. &lt;/p&gt;
&lt;p&gt;And an inner view: &lt;/p&gt;
&lt;p&gt;&lt;img alt="RV-2004 case inner view" src="https://baptiste-wicht.com/images/RVS-2004_7_LRG.jpg"&gt;&lt;/p&gt;
&lt;p&gt;The three hard disk top cases are removable. In my case, I only left one of them for the SSD. The rightmost one is very hard to pull in and out. I don't understand why there are only three removable cases. The fourth disk location cannot be moved. As with all other cases, it it not very practical to install a SSD in it. I ended up screwing the SSD on top of one of the removable bays. &lt;/p&gt;
&lt;p&gt;Without any media drive and only one SSD, there are plenty of space inside the case to put the cables. Even with all the bays used, there would probably be some space left under the drive bays. &lt;/p&gt;
&lt;p&gt;Mouting the motherboard inside the case was really easy, nothing special here. &lt;/p&gt;
&lt;p&gt;This case is only mountable with RVR-20 rails, not with the Norco RL rails. These rails are really worse than the Norco rails. There are extensible, being in three parts, but the extension is not as good as Norco's. If you extend the rails, you have to mount the rails close to the rear of the case. Moreover, the clip on rails to unblock them does not seem to work on my rails. Fortunately, that is not a case I intend to upgrade in the future, so I should not use the rails extensively. &lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;h4&gt;Pros&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Super short&lt;/li&gt;
&lt;li&gt;Cheap&lt;/li&gt;
&lt;li&gt;Enough room on the inside&lt;/li&gt;
&lt;li&gt;Looks quite nice&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Cons&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Fans too close to each other&lt;/li&gt;
&lt;li&gt;Front panel very cheaply built&lt;/li&gt;
&lt;li&gt;Front panel hard to put correctly in place&lt;/li&gt;
&lt;li&gt;One of the removable hard drive internal bays is very hard to move&lt;/li&gt;
&lt;li&gt;Very poor rails&lt;/li&gt;
&lt;li&gt;No documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;To finish, I would say that I'm kind of disappointed with this case. It really feels worse than the Norco equivalent. I'd rather have Norco cases again. The only advantage it has over the Norco one is being cheaper. I'm probably gonna go for a Norco case again for my next server. &lt;/p&gt;</description><category>Hardware</category><category>homelab</category><category>Review</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2014/05/ri-vier-rv-2004-rackmount-case-review.html</guid><pubDate>Sun, 04 May 2014 11:40:31 GMT</pubDate></item><item><title>Home Server Adventure – Step 3</title><link>https://baptiste-wicht.com/posts/2014/01/home-server-adventure-step-3.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;Here are some news about my &lt;a title="Home Server Adventure – Step 2" href="http://www.baptiste-wicht.com/2013/08/home-server-adventure-step-2/"&gt;home server installation project&lt;/a&gt;.In the past, I already installed a server in a custom Norco case. I wanted to replace my QNAP NAS with a better server, the QNAP being too slow and not extensible enough for my needs.&lt;/p&gt;
&lt;p&gt;Here is it how it looks right now (sorry about the photo qualitiy :( my phone does not seem to focus anymore...):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2014/01/asdf1.png"&gt;&lt;img class="size-medium wp-image-2653" alt="My Home Rack of Server" src="https://baptiste-wicht.com/wp-content/uploads/2014/01/asdf1-168x300.png" width="168" height="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So I replaced my QNAP NAS with a custom-built NAS. Again, I bought a NORCO case, the RPC-4220. This case has 20 SATA/SAS bays. I bought it with a replacement of the SAS backplane by a SATA one. I also ordered some fan replacement to make it less noisy. I installed my 6 hard disk in Raid 5, managed with mdadm, with LVM partitions on top of the array.&lt;/p&gt;
&lt;p&gt;I also added an APC UPS which allows me to go through all the minor power issues that there is in my old apartment and which also me about 10 minutes of backup when there is a power outage.&lt;/p&gt;
&lt;p&gt;I haven't added a lot of services on the server. I now run Owncloud on the server and that completely replaces my Dropbox account. I also improved by Sabnzbd installation with other newsgroup automation tools.&lt;/p&gt;
&lt;p&gt;Not directly related to my rack, but I also installed a custom XBMC server for my TV. It reads from the NAS server. And of course, it runs Gentoo too.&lt;/p&gt;
&lt;p&gt;In the future, I'll add a new simple server as a front firewall to manage security a bit more than here and avoid having to configure redirection in my shitty router (which I would like to replace, but there are not a lot of compatible rack router for my ISP unfortunately). It will probably use a Norco case too.&lt;/p&gt;
&lt;p&gt;If you have any question about my build, don't hesitate ;)&lt;/p&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2014/01/home-server-adventure-step-3.html</guid><pubDate>Fri, 10 Jan 2014 12:05:32 GMT</pubDate></item><item><title>Zabbix - Low Level Discovery of cores, CPUs and Hard Disk</title><link>https://baptiste-wicht.com/posts/2013/12/zabbix-low-level-discovery-cores-cpus-hard-disk.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/12/Screenshot-from-2013-12-29-165743-e1388332859892.png"&gt;&lt;img src="https://baptiste-wicht.com/wp-content/uploads/2013/12/Screenshot-from-2013-12-29-165743-e1388332859892-300x151.png" alt="Zabbix SSD Status, configured with Low Level Discovery" width="300" height="151" class="size-medium wp-image-2644"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At home, I'm using Zabbix to monitor my servers, it has plenty of interesting features and can be extended a lot by using User Parameter.&lt;/p&gt;
&lt;p&gt;In this post, I'm gonna talk about Low Level Discovery (LLD). If you are only interested in the final result, go the Conclusion section, you can download my template containing all the rules ;)&lt;/p&gt;
&lt;h4&gt;Low Level Discovery (LLD)&lt;/h4&gt;

&lt;p&gt;LLD is a feature to automatically discover some properties of the monitored host and create items, triggers and graphs.&lt;/p&gt;
&lt;p&gt;By default, Zabbix support three types of item discovery:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Mounted filesystems&lt;/li&gt;
    &lt;li&gt;Network interface&lt;/li&gt;
    &lt;li&gt;SNMP's OIDs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first two are very useful, since they will give you by default, for instance, the free space of each mounted file system or the bandwith going in and out of each network interface. As I only monitor Linux servers, I don't use the last one, but it will eventually interest other people.&lt;/p&gt;
&lt;p&gt;Another very interesting thing about this feature is that you can extend it by discovering more items. In this article, I will show how to discover CPUs, CPU Cores and Hard Disk.&lt;/p&gt;
&lt;p&gt;The most important part of custom discovery is to create a script on the monitored machines that can "discover" something. It can be any executable, the only thing important is that it outputs data in the correct format. I have to say that the format is quite ugly, but that is probably not very important ;) Here is the output of my hard disk discovery script:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="s2"&gt;"data"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sda"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sda"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sdb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sdb"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sdc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sdc"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sdd"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sdd"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sde"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sde"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sdf"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sdf"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"{#DISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"/dev/sdg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s2"&gt;"{#SHORTDISKNAME}"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"sdg"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can have as many keys for each discovered items, but the format must remains the same. In the item, trigger and graph prototypes, you will then use {#DISKNAME} or {#SHORTDISKNAME} to use the discovered values. &lt;/p&gt;
&lt;p&gt;Once you have created your scripts, you have to register it in the zabbix configuration as a user parameter. For instance, if you use the zabbix daemon, you need these lines in /etc/zabbix/zabbix_agentd.conf: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nv"&gt;EnableRemoteCommands&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
...
&lt;span class="nv"&gt;UnsafeUserParameters&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
...
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;discovery.hard_disk,/scripts/discover_hdd.sh
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now, when you will create the discovery rule, you can use discovery.hard_disk as the key. &lt;/p&gt;
&lt;p&gt;A discovery rule in itself is useful without prototypes, you can create three types of prototypes: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Item Prototype: This will create a new item for each discovered entity&lt;/li&gt;
    &lt;li&gt;Trigger Prototype: This will create a new trigger for each discovered entity. &lt;/li&gt;
    &lt;li&gt;Graph Prototype: This will create a graph for each discovered entity. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most useful are by far the item and trigger prototypes. The biggest problem with graphs is that you cannot create an aggregate graph of each discovered items. For instance, if you record the temperature of your CPU cores, you cannot automatically create a graph with the temperature of each discovered cores. For that, you have to create the graph in each host. Which makes, imho, graph prototypes pretty useless. Anyway...&lt;/p&gt;
&lt;p&gt;In the next section, I'll show how I have created discovery rules for Hard Disk, CPU and CPU cores. &lt;/p&gt;
&lt;h4&gt;Discover Hard Disk&lt;/h4&gt;

&lt;p&gt;The discovery script is really simple: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;disks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;ls&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;/dev/sd*&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $NF}'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sed&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'s/[0-9]//g'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;uniq&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"\"data\":["&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;disk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$disks&lt;/span&gt;
&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"    {\"{#DISKNAME}\":\"&lt;/span&gt;&lt;span class="nv"&gt;$disk&lt;/span&gt;&lt;span class="s2"&gt;\",\"{#SHORTDISKNAME}\":\"&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;disk&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;5&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;\"},"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"]"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"}"&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It just lists all the /dev/sdX devices, remove the partition number and remove the duplicates, to have only the hard disk at the end. &lt;/p&gt;
&lt;p&gt;I've created several item prototypes for each hard disk. Here are some examples using S.M.A.R.T. (you can download the template with all the items in the Conclusion section): &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Raw Read Error Rate&lt;/li&gt;
    &lt;li&gt;Spin Up Time&lt;/li&gt;
    &lt;li&gt;SSD Life Left&lt;/li&gt;
    &lt;li&gt;Temperature&lt;/li&gt;
    &lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You may notice that some of them only make sense for SSD (SSD Life Left) and some others do not make any sense for SSD (Spin Up Time). This is not a problem since they will just be marked as Not Supported by Zabbix. &lt;/p&gt;
&lt;p&gt;All these datas are collected using the smartctl utility. &lt;/p&gt;
&lt;p&gt;I've also created some trigger to indicate the coming failure of an hard disk: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;SSD Life Left too low&lt;/li&gt;
    &lt;li&gt;Reallocated Sector Count too low&lt;/li&gt;
    &lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've just used the threshold reported by smartctl, they may be different from one disk manufacturers to another. I don't put a lot of faith on these values, since disk generally fail before going to threshold, but it could be a good indicator anyway. &lt;/p&gt;
&lt;h4&gt;Discover CPUs&lt;/h4&gt;

&lt;p&gt;Here is the script to discover CPUs: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;cpus&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;lscpu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CPU(s):"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $NF}'&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;cpus&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$cpus&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"\"data\":["&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;cpu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$cpus&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"    {\"{#CPUID}\":\"&lt;/span&gt;&lt;span class="nv"&gt;$cpu&lt;/span&gt;&lt;span class="s2"&gt;\"},"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"]"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"}"&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It just uses lscpu and parses its output to find the number of CPU and then create an entry for each CPUs. &lt;/p&gt;
&lt;p&gt;I just have one item for each CPU: The CPU Utilization. &lt;/p&gt;
&lt;p&gt;I haven't created any trigger here. &lt;/p&gt;
&lt;h4&gt;Discover CPU Cores&lt;/h4&gt;

&lt;p&gt;Just before, we discovered the CPUs, but it is also interesting to discover the cores. If you don't have Hyperthreading, the result will be the same. It is especially interesting to get the temperature of each core. Here is the script: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;cores&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;lscpu&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Core(s) per socket:"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $NF}'&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;cores&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$((&lt;/span&gt;&lt;span class="nv"&gt;$cores&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="k"&gt;))&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"{"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"\"data\":["&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;core&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;seq&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$cores&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"    {\"{#COREID}\":\"&lt;/span&gt;&lt;span class="nv"&gt;$core&lt;/span&gt;&lt;span class="s2"&gt;\"},"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"]"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"}"&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;It works in the same way as the previous script. &lt;/p&gt;
&lt;p&gt;I've only created one item prototype, to get the temperature of each core with lm_sensors. &lt;/p&gt;
&lt;h4&gt;Wrap-Up&lt;/h4&gt;

&lt;p&gt;Here are all the UserParameter necessary to make the discovery and the items works: &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="c1"&gt;### System Temperature ###&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;system.temperature.core&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,sensors&lt;span class="p"&gt;|&lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;Core&lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;cut&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"("&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;cut&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"+"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;cut&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;-4
&lt;span class="c1"&gt;### DISK I/O###&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.read.ops&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$4}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.read.ms&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$7}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.write.ops&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$8}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.write.ms&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$11}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.io.active&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$12}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.io.ms&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;y&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$13}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.read.sectors&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$6}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;custom.vfs.dev.write.sectors&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,cat&lt;span class="w"&gt; &lt;/span&gt;/proc/diskstats&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;head&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$10}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;system.smartd_raw&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,sudo&lt;span class="w"&gt; &lt;/span&gt;smartctl&lt;span class="w"&gt; &lt;/span&gt;-A&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tail&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;xargs&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$10}'&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;system.smartd_value&lt;span class="o"&gt;[&lt;/span&gt;*&lt;span class="o"&gt;]&lt;/span&gt;,sudo&lt;span class="w"&gt; &lt;/span&gt;smartctl&lt;span class="w"&gt; &lt;/span&gt;-A&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;egrep&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;tail&lt;span class="w"&gt; &lt;/span&gt;-1&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;xargs&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;awk&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'{print $$4}'&lt;/span&gt;
&lt;span class="c1"&gt;### Discovery ###&lt;/span&gt;
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;discovery.hard_disk,/scripts/discover_hdd.sh
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;discovery.cpus,/scripts/discover_cpus.sh
&lt;span class="nv"&gt;UserParameter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;discovery.cores,/scripts/discover_cores.sh
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;(it must be set in zabbix_agentd.conf)&lt;/p&gt;
&lt;p&gt;You also need to give zabbix the right to use sudo with smartctl. For that, you have to edit your /etc/sudoers file and add this line: &lt;/p&gt;
&lt;pre&gt;ALL ALL=(ALL)NOPASSWD: /usr/sbin/smartctl&lt;/pre&gt;

&lt;h4&gt;Conclusion and Download&lt;/h4&gt;

&lt;p&gt;I hope that this helps some people to use Low Level Discovery in their Zabbix Monitoring Installation. &lt;/p&gt;
&lt;p&gt;LLD eases a lot the creation of multiple items discovery for hosts with different hardware or configuration. However, it has some problems for which I have not yet found a proper solution. First, you have to duplicate the client scripts on each host (or at least have them on a share available from each of them). Then, the configuration of each agent is also duplicated in the configuration of each host. The biggest problem I think is the fact that you cannot automatically create graph with the generated items of each discovered entities. For instance, I had to create a CPU Temperature graph in each of my host. If you have few hosts, like many, it is acceptable, but if you have hundreds of hosts, you just don't do it. &lt;/p&gt;
&lt;p&gt;All the scripts and the template export file are available in the &lt;a href="https://github.com/wichtounet/zabbix-lld" title="zabbix-lld repository"&gt;zabbix-lld&lt;/a&gt; repository. For everything to work, you need the lscpu, lm_sensors and smartmontools utilities. &lt;/p&gt;
&lt;p&gt;If you have any question or if something doesn't work (I don't offer any guarantee, but it should work on most recent Linux machines), don't hesitate to comment on this post.&lt;/p&gt;</description><category>homelab</category><category>Linux</category><category>Others</category><category>servers</category><category>zabbix</category><guid>https://baptiste-wicht.com/posts/2013/12/zabbix-low-level-discovery-cores-cpus-hard-disk.html</guid><pubDate>Mon, 30 Dec 2013 08:12:31 GMT</pubDate></item><item><title>Home Server Adventure - Step 2</title><link>https://baptiste-wicht.com/posts/2013/08/home-server-adventure-step-2.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;If you remember, I talked about &lt;a title="Home Server Adventure – Step 1" href="http://www.baptiste-wicht.com/2013/07/home-server-adventure-step-1/"&gt;my home server project&lt;/a&gt; in a previous post. I had installed an old Dell Poweredge server, a 3com gigabit switch and a monitoring console. The problem with this configuration was that it was too noisy as the rack is installed in my apartment.&lt;/p&gt;
&lt;p&gt;The first thing I did was to &lt;a title="ZyXEL GS1910-24 Managed Gigabit Switch Review" href="http://www.baptiste-wicht.com/2013/07/zyxel-gs1910-managed-gigabit-switch-review/"&gt;replace my old 3Com switch with a Zyxel managed fanless switch&lt;/a&gt;. Being fanless, this switch is completely silent which makes a good difference :)&lt;/p&gt;
&lt;p&gt;After that, I have replaced the Dell server with &lt;a title="Norco RPC 230 Case Review" href="http://www.baptiste-wicht.com/2013/08/norco-rpc-230-case-review/"&gt;a custom installation in a Norco-RPC 230 case&lt;/a&gt;. The basic case comes with two 80mm fans in the front. These two fans are very powerful, but they are quite noisy. I replaced them with two Enermax T.B. Silence 80mm fans. They are almost silent, it is really great. It is probably not enough airflow for a large configuration, but in my case, I think that this will be largely enough.&lt;/p&gt;
&lt;p&gt;I've already installed several services on my server:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Tiny Tiny RSS: a web-based news feed reader and aggregator. I use it to replace Feedly which I was getting less and less fond to.&lt;/li&gt;
    &lt;li&gt;Sabnzbd: I already had this NZB download on my desktop, but now as it is on the server, it can download even when I'm not at home.&lt;/li&gt;
    &lt;li&gt;Zabbix: a monitoring application that manages all my appliances and server (the new server, the NAS, the switch and the router). It is my first attempt with Zabbix. It is a bit cryptic to conigure, but the features are very numerous.&lt;/li&gt;
    &lt;li&gt;Teamspeak and Mumble: They already were installed on the previous server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I plan to install new services on the future, but I have no plans for now.&lt;/p&gt;
&lt;p&gt;Here is a picture of the rack in its current state:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-23-15.31.45.jpg"&gt;&lt;img class="size-medium wp-image-2610" alt="19 Rack" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-23-15.31.45-168x300.jpg" width="168" height="300"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have also installed my router and the NAS on a layer in the rack.&lt;/p&gt;
&lt;p&gt;You can't see it, but I have also added to rackable PDU on the back to have to organize a bit the cables. Even if it still not perfect, it is already better than before.&lt;/p&gt;
&lt;p&gt;For now, I think that my system in in good shape. When I will have some more budget, I will replace QNAP NAS with a custom server, probably again with a Norco case.&lt;/p&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2013/08/home-server-adventure-step-2.html</guid><pubDate>Tue, 27 Aug 2013 07:16:21 GMT</pubDate></item><item><title>Norco RPC 230 Case Review</title><link>https://baptiste-wicht.com/posts/2013/08/norco-rpc-230-case-review.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;As my previous Dell 1U server was &lt;a title="Home Server Adventure – Step 1" href="http://www.baptiste-wicht.com/2013/07/home-server-adventure-step-1/"&gt;too noisy for my home server installation&lt;/a&gt;. I invested in a case, a Norco RPC 230 model. This case is a 2U standard case for 19" rack. It supports micro-ATX motherboard and ATX power supply. These components are easy too find, so that makes it a very interesting case for a home server installation.&lt;/p&gt;
&lt;p&gt;I ordered the case at &lt;a title="Ri-Vier Automatisering" href="https://ri-vier.eu/"&gt;Ri-Vier Automatisering&lt;/a&gt;, which is the Norco european distributor. I directly ordered it with the RL-26 rails for the rack and the ATX power supply that is provided by Ri-Vier. For the case, I also bought a micro-ATX Gigabyte G41M-Combo motherboard. I already had 4GB of DDR2 RAM and a Core 2 Duo processor from a previous configuration. I also took my old 120GB Samung SSD for this server. This would be largely sufficient for what I plan to run on this server.&lt;/p&gt;
&lt;p&gt;The case has four 3.5" drive bays and one 5.25" drive bay. The air flow is provided with two 80mm fans on the front panel.&lt;/p&gt;
&lt;h4&gt;Package&lt;/h4&gt;

&lt;p&gt;I received the package very quickly from Ri-Vier. The case is packaged in double box and everything in the package is well ordered. The power supply was already in the box itself. Here is a picture of the content of the package:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-09.45.14.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2596" alt="2013-08-20 09.45.14" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-09.45.14-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It contains only the case and the necessary screws. The rails are not on this picture, since I already had installed them in my rack. As you see, there are no manual, which may be a bit frustrating. Once you remove the top panel (4 screws to remove), you can see the inside of the case:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-09.54.09.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2595" alt="2013-08-20 09.54.09" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-09.54.09-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On the top are the four bays for the drives. They are removable. As you can see on the picture, the power supply has plenty of cables. I would have expected a power supply with less cables to come with this case as there is not much room.&lt;/p&gt;
&lt;p&gt;Here is a view of the front panel:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.11.22.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2593" alt="2013-08-20 11.11.22" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.11.22-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There are two USB ports on the front, the Power and Reset buttons as well as LEDS.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;

&lt;p&gt;Even without any manual, the installation is fairly easy. The top panel can be removed by unscrewing 4 four screws on the side. I strongly recommend to remove the 4 drive bays before installing the other components to make some room. Once it is done, the motherboard can be screwed in place. The power supply is attached by four screws on the back panel.&lt;/p&gt;
&lt;p&gt;I installed a SSD 2.5" in the leftmost disk bay. I had some issues with this installation as the bays do not have any screws on the side, only on the bottom. They are really not made for anything else than 3.5" drives.&lt;/p&gt;
&lt;p&gt;Here is a picture of my installation once finished:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.11.39.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2592" alt="2013-08-20 11.11.39" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.11.39-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I managed to make it looks nice with the cables, but only because I have not installed any CD-Rom, so I did put a lot of cables in its place.&lt;/p&gt;
&lt;p&gt;Once it is done, I have installed it in my rack. It is not straightforward without a manual, but I was able to screw it to the rails. I did put two screws on each side:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.31.08.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2591" alt="2013-08-20 11.31.08" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.31.08-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once in place, it looks quite good:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.31.51.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2590" alt="2013-08-20 11.31.51" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/2013-08-20-11.31.51-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However, I don't know if I have done something wrong, but the rails are not sliding smoothly, they are blocking at two places and the last part is quite hard to push. Anyway, as I won't be moving it a lot, I think it is ok. You also have to remember that even if it is a short depth case, the RL-26 rails are not short at all, they are not made for short depth racks.&lt;/p&gt;
&lt;p&gt;Once it is launched, the server is quite busy due to the two 80mm fans. However, the airflow is quite strong, which is what most customers want. It is still more silent than my Dell server, but not enough for a home experience. I will try to replace them with more silent fans in the future.&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="line-height: 13px;"&gt;Enough bays for a simple server&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;Support standard formats&lt;/li&gt;
    &lt;li&gt;Enough air flow&lt;/li&gt;
    &lt;li&gt;Very short depth&lt;/li&gt;
    &lt;li&gt;Seems of heavy duty construction&lt;/li&gt;
    &lt;li&gt;Looks nice&lt;/li&gt;
    &lt;li&gt;Not too expensive&lt;/li&gt;
    &lt;li&gt;Should fit in most racks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="line-height: 13px;"&gt;No manuals at all&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;Disk bays not very convenient&lt;/li&gt;
    &lt;li&gt;The provided power supply is not very adapted to the case.&lt;/li&gt;
    &lt;li&gt;The provided rails seems to not slide smoothly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To conclude, I would say that this case is very fit to a custom installation as all the components are standards. I would recommend it for a similar usage than mine.&lt;/p&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>Review</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2013/08/norco-rpc-230-case-review.html</guid><pubDate>Wed, 21 Aug 2013 06:38:03 GMT</pubDate></item><item><title>ZyXEL GS1910-24 Managed Gigabit Switch Review</title><link>https://baptiste-wicht.com/posts/2013/07/zyxel-gs1910-managed-gigabit-switch-review.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;A short time ago, &lt;a title="Home Server Adventure – Step 1" href="http://www.baptiste-wicht.com/2013/07/home-server-adventure-step-1/"&gt;I decided to install servers in a rack at my home&lt;/a&gt;. Although working very well, my 3Com managed was too much noisy for being at home. That is why I decided to change it for fanless switch. After some research, I finally chose a ZyXEL GS1910-24. It is a web-manageable gigabit switch. I chose the 24 ports version. This version has also 4 SFPs that replace 4 normal ports if enabled. I don't think I will ever need the SFPs, but it is nice to know that there are here if necessary. This switch has a lot of cool features, it supports IPV6, QoS, VLANs, filtering, RADIUS and so on.&lt;/p&gt;
&lt;h4&gt;The package&lt;/h4&gt;

&lt;p&gt;The package does not contains a lot of things, but does contain the essential:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="line-height: 13px;"&gt;The switch itself&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;A power code&lt;/li&gt;
    &lt;li&gt;Rack mounting brackets and screws&lt;/li&gt;
    &lt;li&gt;Manuals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a picture on the package:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-11-16.51.47.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2574" alt="2013-07-11 16.51.47" src="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-11-16.51.47-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The switch is really small, twice narrower than my 3Com switch and more than twice lighter.&lt;/p&gt;
&lt;p&gt;Nothing special to say about the package, it is neatly done and has everything that is necessary.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;

&lt;p&gt;The installation inside a rack is really easy. Each bracket is mounted with 4 screws onto the switch and then two screws are holding each bracket into place in the rack. Here is a picture of the rack:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-11-17.07.00.jpg"&gt;&lt;img class="aligncenter size-medium wp-image-2575" alt="2013-07-11 17.07.00" src="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-11-17.07.00-300x168.jpg" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Once you put the power cord, it directly starts up and everything already works fine. The state of each port is represented by a led. Orange indicates a 100Mbit/s connection while green indicates 1Gbit/s connection.&lt;/p&gt;
&lt;p&gt;The switch does not make a single noise and does not vibrate, it is really good&lt;/p&gt;
&lt;h4&gt;Configuration&lt;/h4&gt;

&lt;p&gt;The easiest way to configure the switch is to use the web configurator. By default, the switch IP is 192.168.1.1. As my router had the same IP, I had to disable it temporarily before changing the IP of the switch.&lt;/p&gt;
&lt;p&gt;The web configuration is very complete, you can change absolutely everything from here. You have also access to a lot of monitoring tools from here. The most useful being of course the port monitoring interface:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/07/Screenshot-from-2013-07-11-172745.png"&gt;&lt;img class="aligncenter size-medium wp-image-2576" alt="Port Monitoring" src="https://baptiste-wicht.com/wp-content/uploads/2013/07/Screenshot-from-2013-07-11-172745-300x132.png" width="300" height="132"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I recommend changing the default IP address and the server password as first things on the switch.&lt;/p&gt;
&lt;p&gt;I won't make the list of everything that is configurable on this switch, but the list is pretty impressive.&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;I'm really impressed by this switch. The switch is highly configurable and seems to perfectly fit my need. I would totally recommend this switch for rack installation at home. You can also totally use it as a desktop switch if you needs for a big switch on your desktop too&lt;/p&gt;</description><category>Hardware</category><category>homelab</category><category>Network</category><category>Review</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2013/07/zyxel-gs1910-managed-gigabit-switch-review.html</guid><pubDate>Fri, 12 Jul 2013 06:38:17 GMT</pubDate></item><item><title>Home Server Adventure - Step 1</title><link>https://baptiste-wicht.com/posts/2013/07/home-server-adventure-step-1.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;For years now, I've almost always had a server running at home. First it was an old desktop computer and then it was a QNAP NAS. The problem with the QNAP is that it is not fast at all and not as flexible as I would like it to be. Moreover, I was also running a Teamspeak server on my desktop for when my friends and I were playing together. So I decided to first install a simple server to replace my teamspeak server and I would services of my NAS with my new server. But this time, I decided to go for the complete option: A 19" rack :)&lt;/p&gt;
&lt;h4&gt;Hardware&lt;/h4&gt;

&lt;p&gt;So I bought all I needed to install my 19" rack at home. I bought everything already used on auctions on Ricardo/Anibis (Switzerland Ebay equivalents) and Ebay. Here is what I got:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="line-height: 13px;"&gt;A 19" inch rack with 40 HE of the mark GURTNER + SCHNIEPP AG&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;A old Dell Poweredge 1850 server&lt;/li&gt;
    &lt;li&gt;A 8-ports Compaq KVM switch&lt;/li&gt;
    &lt;li&gt;A monitor/keyboard console for administrating the servers&lt;/li&gt;
    &lt;li&gt;A 3Com managed Gigabit switch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I got that for less than 500$. It is probably possible to get a similar configuration for less than that in the United States.&lt;/p&gt;
&lt;p&gt;Here are some pictures (sorry for the poor quality):&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-05-17.58.322.jpg"&gt;&lt;img class="aligncenter size-large wp-image-2568" alt="2013-07-05 17.58.32" src="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-05-17.58.322-576x1024.jpg" width="576" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-05-17.59.232.jpg"&gt;&lt;img class="aligncenter size-large wp-image-2567" alt="2013-07-05 17.59.23" src="https://baptiste-wicht.com/wp-content/uploads/2013/07/2013-07-05-17.59.232-576x1024.jpg" width="576" height="1024"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For now, it is kind of empty. I will also put my NAS and my internet provider router in the rack in the future.&lt;/p&gt;
&lt;p&gt;A this time, the cables are not very good organized, I will try to purchase some guides to make that look better and I will also try to find a rack PDU to distribute power without cables everywhere.&lt;/p&gt;
&lt;p&gt;I also need to find two 120mm fans for the top of my case to improve air circulation. Very quiet 120mm can be found, so noise won't be a problem I think.&lt;/p&gt;
&lt;p&gt;In the future, I also plan to find an UPS, but they are very expensive, so I will continue looking at auctions for them. The problem being that the battery should not be too old.&lt;/p&gt;
&lt;h4&gt;Software&lt;/h4&gt;

&lt;p&gt;Of course, I've installed Gentoo on the server. At first, I wanted to install a Gentoo Hardened distribution with Selinux, but it turned out that it was too much of a hassle. After more than 10 hours of trying to make it work, I started again and in less than two hours my Gentoo installation was working. I will probably try again in the future, at least to harden the server and I hope it will go with less problems. The server is of course gui-less, only console access is more than sufficient.&lt;/p&gt;
&lt;p&gt;For now on, I have only a Teamspeak server and a Mumble server installed on the server, but I plan to add new services on it, Sabnzb for instance.&lt;/p&gt;
&lt;p&gt;I also installed iptables to add some layer of protection, even if I don't think that it is necessary in my case.&lt;/p&gt;
&lt;p&gt;Finally, I used dyndns to map my public ip to a domain name to make it easier to reach. For now, I haven't installed an update client, but I plan to try ddclient.&lt;/p&gt;
&lt;h4&gt;Problems&lt;/h4&gt;

&lt;p&gt;I made some mistake when choosing the components for my installation. First of all, they are too noisy. The server and the switch are a real problem. They are both made for professional installations. Generally 1U server have very small fans (40mm generally) which are very noisy. So I decided to upgrade my configurations with two changes:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="line-height: 13px;"&gt;I will buy a fanless switch, probably unmanaged. They are plenty of very good fanless switches, even managed one for a reasonable price. I will try to first find a used one on auction, but I may consider buying a new one, as there exists some for about a hundred dollars. &lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;I will replace the Dell server with a custom server. I found some very good cases made by Norco. I'll buy a Micro ATX motherboard and install my old computer configuration (&lt;a title="Why and how I completely left Windows for Linux" href="http://www.baptiste-wicht.com/2013/07/why-how-left-windows-for-linux/"&gt;the one I had before&lt;/a&gt;) on it. It won't cost too much I think, although much more than the 30$ Dell server I have now ;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The other problem being that the Dell server is too deep for my rack, so I can't close the back part as you can see on the pictures, but replacing it with the Norco case will solve the problem :)&lt;/p&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;It might sound crazy to have a complete rack at home, but I thing that it is a great way to experience with servers and network. It is also quite practical if you plan to have several servers.&lt;/p&gt;
&lt;p&gt;I plan to post some posts on the subject on the future, so I hope  that it interests some people.&lt;/p&gt;</description><category>Gentoo</category><category>Hardware</category><category>homelab</category><category>Network</category><category>servers</category><guid>https://baptiste-wicht.com/posts/2013/07/home-server-adventure-step-1.html</guid><pubDate>Mon, 08 Jul 2013 07:02:05 GMT</pubDate></item></channel></rss>